基于历史长度自适应的分支预测方法
发布时间:2020-08-18 10:48
【摘要】:通过研究处理器动态分支预测器中预测效率与分支历史长度的关系,针对程序中各分支指令存在不同最优历史长度的规律,提出一种搜索各分支指令最佳历史长度的分支预测方法.该方法通过实时监测分支指令的预测准确率,在分支预测表硬件资源不变的情况下动态调整预测器的历史长度,以适应程序的动态运行特征.实验结果表明,在相同硬件资源下,文中方法相对于Gshare预测器错误率降低15.8%,相对于Bi-mode预测器预测错误率降低10.3%.
【图文】:
不相同,可见预测器需要动态逡逑30^0邋|j邋j邋I邋I邋|丨_邋!逦适应不同程序的不同特性才能获得最优预测效率.逡逑20.0邋|丨.I邋I邋I丨邋|邋|逦3)本文方法逡逑100邋!|邋I邋1邋|邋;邋|逦基于上述分析,针对程序中不同分支对历史逡逑2邋4邋6邋8邋10邋12邋14邋16邋18逦长度需求的不同,本文提出历史长度动态自适应逡逑历史长度逦的两级分支预测方法.其核心思想为:根据程序中逡逑">95%;邋=80% ̄95%;逦不同分支指令对历史长度的需求按组对分支指令逡逑图2理想分支预测,各历史长度下预测率区间逦进行实时监测,根据分支指令预测错误率动态调逡逑整分支指令所使用的历史长度,为各分支指令选逡逑进一步,本文分析了邋Gshare预测器历史长度逦取最优历史长度;进一步,当分支指令之间发生逡逑与预测率的关系.图3所示为Gshare预测器固定分逦破坏性别名时,通过自动调整分支历史长度避开逡逑支模式表项数量为16邋K时,不同全局历史长度下逦与其他指令之间的别名,从而提升整体预测精度.逡逑^12逦-13邋?邋?逡逑?■邋11邋■邋?邋?逦#邋12邋-邋气逡逑m逦g邋11邋-邋w邋^逡逑M邋10逦M邋in逡逑m逦腠邋io.逡逑9邋L__,_,_,__._._.__■■_■_■-逦9L_.__._■_■_■ ̄ ̄-逡逑2邋3邋4邋5邋6邋7邋8邋9邋10邋11邋12邋13邋14逦2邋3邋4邋5邋6邋7邋8邋9邋10邋11邋12邋13邋14逡逑历史长度逦历史长度逡逑a邋cjpeg程序逦b邋tblook程序逡逑8.2逦10邋?逡逑I邋8逦s邋8逡逑g邋?逦g邋7逡逑M邋1A逦M逡逑
历史逡逑2邋4邋6邋8邋10邋12邋14邋16邋18逦长度需求的不同,本文提出历史长度动态自适应逡逑历史长度逦的两级分支预测方法.其核心思想为:根据程序中逡逑">95%;邋=80% ̄95%;逦不同分支指令对历史长度的需求按组对分支指令逡逑图2理想分支预测,各历史长度下预测率区间逦进行实时监测,根据分支指令预测错误率动态调逡逑整分支指令所使用的历史长度,为各分支指令选逡逑进一步,本文分析了邋Gshare预测器历史长度逦取最优历史长度;进一步,当分支指令之间发生逡逑与预测率的关系.图3所示为Gshare预测器固定分逦破坏性别名时,通过自动调整分支历史长度避开逡逑支模式表项数量为16邋K时,不同全局历史长度下逦与其他指令之间的别名,从而提升整体预测精度.逡逑^12逦-13邋?邋?逡逑?■邋11邋■邋?邋?逦#邋12邋-邋气逡逑m逦g邋11邋-邋w邋^逡逑M邋10逦M邋in逡逑m逦腠邋io.逡逑9邋L__,_,_,__._._.__■■_■_■-逦9L_.__._■_■_■ ̄ ̄-逡逑2邋3邋4邋5邋6邋7邋8邋9邋10邋11邋12邋13邋14逦2邋3邋4邋5邋6邋7邋8邋9邋10邋11邋12邋13邋14逡逑历史长度逦历史长度逡逑a邋cjpeg程序逦b邋tblook程序逡逑8.2逦10邋?逡逑I邋8逦s邋8逡逑g邋?逦g邋7逡逑M邋1A逦M逡逑m逦m邋6邋.逡逑7邋Q邋逦i逦i逦i逦‘邋‘逦I逦i逦i逦i逦i逦i逦i逦i逦逦5邋 ̄i逦i逦i逦i逦i逦i逦i逦i逦i逦i逦i逦i逦i逦逡逑2邋3邋4邋5邋6邋7邋8邋9邋10邋11邋12邋13邋14逦2邋3邋4邋5邋6邋7邋8邋9
768逦计算机辅助设计与图形学学报逦第27卷逡逑误率是否小于上一历史长度错误率(算法1中第⑧逦其他实验参数为128个分支错误监测表项、10%的逡逑行),如果小于,则继续减小历史长度,反之则增逦错误阈值、历史长度收敛步长2位(每次调整2位逡逑加历史长度.收敛方向的实现如图5所示,使用最逦历史长度).图6a显示分支监测窗口大小从128扩逡逑近收敛方向与错误次数和最近错误次数的大于关逦大到512,分支预测错误率下降较为明显(约为逡逑系求异或即可得到.最后,还需更新如下内容以开逦0.5%),到512个表项时预测效果基本达到饱和,逡逑始下一次监测:将错误统计表中的值更新到最近历逦鉴于硬件成本与分支预测效率,本文选取128个表逡逑史错误次数表中;将访问次数表中的访问次数清0;逦项作为监测窗口大小.分支错误阈值大小同样影逡逑将错误统计表的值清0.通过这种方式实现分支历逦响本实验的抗干扰能力,图6b所示为不同错误阈逡逑史表中的历史长度修改功能,并作用于该分支以逦值下的分支错误率变化,其他实验参数为128个分逡逑后的访问.逦支错误监测表项、128个分支访问窗口、历史长度逡逑收敛步长为2.实验发现,较小的错误阈值下实验逡逑3邋实验与分析逦效果并不理想,较小的错误阈值抗干扰能力较弱,逡逑增大错误阈值虽然预测错误率略有反复,但仍呈逡逑本文以国产32位高性能嵌入式处理器CK810[18]逦现下降的趋势,当错误阈值设为13%时,预测精度逡逑为实验平台,以国际主流的嵌入式基准测试程序逦较优.错误监测表数量确定本文方法的监测粒度,逡逑EEMBC为测试对象,表1所示为测试基准程序简逦影响其自适应特性.图6c所示为不同错误监测表逡逑介.本文分别选取1
【图文】:
不相同,可见预测器需要动态逡逑30^0邋|j邋j邋I邋I邋|丨_邋!逦适应不同程序的不同特性才能获得最优预测效率.逡逑20.0邋|丨.I邋I邋I丨邋|邋|逦3)本文方法逡逑100邋!|邋I邋1邋|邋;邋|逦基于上述分析,针对程序中不同分支对历史逡逑2邋4邋6邋8邋10邋12邋14邋16邋18逦长度需求的不同,本文提出历史长度动态自适应逡逑历史长度逦的两级分支预测方法.其核心思想为:根据程序中逡逑">95%;邋=80% ̄95%;逦不同分支指令对历史长度的需求按组对分支指令逡逑图2理想分支预测,各历史长度下预测率区间逦进行实时监测,根据分支指令预测错误率动态调逡逑整分支指令所使用的历史长度,为各分支指令选逡逑进一步,本文分析了邋Gshare预测器历史长度逦取最优历史长度;进一步,当分支指令之间发生逡逑与预测率的关系.图3所示为Gshare预测器固定分逦破坏性别名时,通过自动调整分支历史长度避开逡逑支模式表项数量为16邋K时,不同全局历史长度下逦与其他指令之间的别名,从而提升整体预测精度.逡逑^12逦-13邋?邋?逡逑?■邋11邋■邋?邋?逦#邋12邋-邋气逡逑m逦g邋11邋-邋w邋^逡逑M邋10逦M邋in逡逑m逦腠邋io.逡逑9邋L__,_,_,__._._.__■■_■_■-逦9L_.__._■_■_■ ̄ ̄-逡逑2邋3邋4邋5邋6邋7邋8邋9邋10邋11邋12邋13邋14逦2邋3邋4邋5邋6邋7邋8邋9邋10邋11邋12邋13邋14逡逑历史长度逦历史长度逡逑a邋cjpeg程序逦b邋tblook程序逡逑8.2逦10邋?逡逑I邋8逦s邋8逡逑g邋?逦g邋7逡逑M邋1A逦M逡逑
历史逡逑2邋4邋6邋8邋10邋12邋14邋16邋18逦长度需求的不同,本文提出历史长度动态自适应逡逑历史长度逦的两级分支预测方法.其核心思想为:根据程序中逡逑">95%;邋=80% ̄95%;逦不同分支指令对历史长度的需求按组对分支指令逡逑图2理想分支预测,各历史长度下预测率区间逦进行实时监测,根据分支指令预测错误率动态调逡逑整分支指令所使用的历史长度,为各分支指令选逡逑进一步,本文分析了邋Gshare预测器历史长度逦取最优历史长度;进一步,当分支指令之间发生逡逑与预测率的关系.图3所示为Gshare预测器固定分逦破坏性别名时,通过自动调整分支历史长度避开逡逑支模式表项数量为16邋K时,不同全局历史长度下逦与其他指令之间的别名,从而提升整体预测精度.逡逑^12逦-13邋?邋?逡逑?■邋11邋■邋?邋?逦#邋12邋-邋气逡逑m逦g邋11邋-邋w邋^逡逑M邋10逦M邋in逡逑m逦腠邋io.逡逑9邋L__,_,_,__._._.__■■_■_■-逦9L_.__._■_■_■ ̄ ̄-逡逑2邋3邋4邋5邋6邋7邋8邋9邋10邋11邋12邋13邋14逦2邋3邋4邋5邋6邋7邋8邋9邋10邋11邋12邋13邋14逡逑历史长度逦历史长度逡逑a邋cjpeg程序逦b邋tblook程序逡逑8.2逦10邋?逡逑I邋8逦s邋8逡逑g邋?逦g邋7逡逑M邋1A逦M逡逑m逦m邋6邋.逡逑7邋Q邋逦i逦i逦i逦‘邋‘逦I逦i逦i逦i逦i逦i逦i逦i逦逦5邋 ̄i逦i逦i逦i逦i逦i逦i逦i逦i逦i逦i逦i逦i逦逡逑2邋3邋4邋5邋6邋7邋8邋9邋10邋11邋12邋13邋14逦2邋3邋4邋5邋6邋7邋8邋9
768逦计算机辅助设计与图形学学报逦第27卷逡逑误率是否小于上一历史长度错误率(算法1中第⑧逦其他实验参数为128个分支错误监测表项、10%的逡逑行),如果小于,则继续减小历史长度,反之则增逦错误阈值、历史长度收敛步长2位(每次调整2位逡逑加历史长度.收敛方向的实现如图5所示,使用最逦历史长度).图6a显示分支监测窗口大小从128扩逡逑近收敛方向与错误次数和最近错误次数的大于关逦大到512,分支预测错误率下降较为明显(约为逡逑系求异或即可得到.最后,还需更新如下内容以开逦0.5%),到512个表项时预测效果基本达到饱和,逡逑始下一次监测:将错误统计表中的值更新到最近历逦鉴于硬件成本与分支预测效率,本文选取128个表逡逑史错误次数表中;将访问次数表中的访问次数清0;逦项作为监测窗口大小.分支错误阈值大小同样影逡逑将错误统计表的值清0.通过这种方式实现分支历逦响本实验的抗干扰能力,图6b所示为不同错误阈逡逑史表中的历史长度修改功能,并作用于该分支以逦值下的分支错误率变化,其他实验参数为128个分逡逑后的访问.逦支错误监测表项、128个分支访问窗口、历史长度逡逑收敛步长为2.实验发现,较小的错误阈值下实验逡逑3邋实验与分析逦效果并不理想,较小的错误阈值抗干扰能力较弱,逡逑增大错误阈值虽然预测错误率略有反复,但仍呈逡逑本文以国产32位高性能嵌入式处理器CK810[18]逦现下降的趋势,当错误阈值设为13%时,预测精度逡逑为实验平台,以国际主流的嵌入式基准测试程序逦较优.错误监测表数量确定本文方法的监测粒度,逡逑EEMBC为测试对象,表1所示为测试基准程序简逦影响其自适应特性.图6c所示为不同错误监测表逡逑介.本文分别选取1
【参考文献】
相关期刊论文 前2条
1 苟鹏飞;王诗博;杨兵;喻明艳;;改进的基于O-GEHL预测技术的EDGE块预测器[J];电子科技大学学报;2012年02期
2 陈晨;陈志坚;孟建熠;严晓浪;;基于预测极性动态变换的分支预测框架研究[J];电子与信息学报;2013年04期
【相似文献】
相关期刊论文 前10条
1 陈晨;陈志坚;孟建熠;严晓浪;;基于预测极性动态变换的分支预测框架研究[J];电子与信息学报;2013年04期
2 焦永,陈跃跃;复合分支预测中选择算法的研究[J];计算机应用研究;2005年04期
3 肖泽强;;动态分支预测技术分析与量化研究[J];信息技术;2011年03期
4 靳文兵;石峰;左琦;张杨;;提前分支预测结构及算法研究[J];计算机研究与发展;2013年10期
5 马鹏;方晓e
本文编号:2796128
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2796128.html