论文部分内容阅读
分支预测器是影响现代深流水多发射微处理器的重要部件。提高分支预测准确率不仅能通过降低错误预测惩罚延迟来增加流水线的吞吐率,还可以减少错误路径上指令执行以节省能耗。即便是较小的分支预测准确率提升,在巨大的指令基数下,也能为微处理器带来巨大的性能提升。本文就当今最优秀的TAGE分支预测器在微处理器中的实现做了设计空间探索和优化,具体工作和创新点如下:1.对复杂的TAGE分支预测器在各尺寸RAM条件下做了设计空间探索。首先对TAGE的设计参数探索问题进行了定义和分析;然后,基于trace驱动模拟,改进PSO算法对具体参数进行了高效地探索,在各个尺寸RAM限制下都探索到了高预测准确率的设计参数序列。在探索过程中发现,针对本文选取的trace,该算法在1.5KB RAM下探索到的TAGE能达到较好的准确率,RAM资源从8KB减少到1.5KB,预测准确率损失较小。同时,1.5KB RAM下的TAGE比1.5KB的Bi-Mode有63.41%的错误预测率提升。0.25KB下探索到的TAGE和4KB GShare预测器有相当的预测准确率。2.基于分支预测大赛的模拟环境,提出了一款基于trace驱动,结合预测准确率、功耗和面积作为评价指标的的快速分支预测模拟器BPSim。利用BPSim,在各个RAM尺寸和GHR长度输入下,自动探索出了综合性能优越的分支预测器设计参数。3.设计了SimpleBP,一款基于trace驱动的轻量级分支预测模拟器。它利用SystemC语言在时钟周期粒度模拟分支预测器,并引入CACTI工具来评估面积和功耗。使用SimpleBP,本文首先在64Kbits存储预算中进行新配置选项(反馈延迟,取指宽度和RAM端口数量)的硬件设计分析。实验结果表明,当反馈延迟增加时,相对于立即反馈,预测准确率损失小于2%。在相同的RAM面积下,当取指宽度修改后,各种trace显示不同的准确率变化。当用于双端口的面积被用以构建更多的子预测器项数时,准确率提高了2.45%。然后,考虑到这些新增硬件选项,本文通过SimpleBP对RAM大小和子预测数量进行了高效优化探索。