【技术实现步骤摘要】
一种应用于处理器的分支预测方法以及分支预测器
[0001]本专利技术涉及计算机体系结构领域,具体来说涉及处理器的分支预测
,更具体地说,涉及一种应用于处理器的分支预测方法以及分支预测器。
技术介绍
[0002]在计算机体系结构中,超标量计算机(即:每一时钟周期可以执行多于一个指令的具有多个处理组件的计算机)可以被用于高级的、计算密集的应用。通常,超标量计算机会采用一个或多个流水线处理器,以更好地处理某些计算密集的计算机程序。
[0003]计算机程序通常包括大量的分支指令,当执行一个分支指令时,需要评估是继续执行存储器中的下一条指令,还是跳转到一条由分支目标地址指定的指令。如果程序运行跳转到分支目标地址指定的分支,则认为一个由分支指令指定的分支被“采纳”(Taken),如果继续执行存储器中的下一条顺序指令,则认为“不采纳”(Not taken)。为了避免因等待对分支指令的实际评估而产生的停滞,现代处理器可采用某种形式的分支预测,借此在流水线中早期预测分支指令的分支行为,通过使用未分配的计算资源(即,流水线)提前开始推测执行相应的分支,可以节省执行时间。因此,在处理器发展进程中,分支预测技术作为提高通用处理器性能的重要方法,一直是业界研究的热点问题,不仅普遍使用在高性能处理器中,在功耗敏感的嵌入式处理器中也被广泛采用。
[0004]分支预测策略的设计和应用是影响处理器性能和开销的重要因素。随着现代处理器朝着深流水、超标量和多核方向发展,分支预测单元发生错误预测导致的惩罚越来越不能被接受。同时,分支预 ...
【技术保护点】
【技术特征摘要】
1.一种应用于处理器的分支预测方法,其特征在于,包括:获取TAGE预测器对分支指令进行分支预测的第一中间参数以及第一预测值;获取GEHL预测器对所述分支指令进行分支预测的第二中间参数以及第二预测值;利用预设的组合预测器根据所述分支指令对应的PC值、第一中间参数、第一预测值、第二中间参数以及第二预测值中的指定比特位按照预定的规则重组确定多个子索引,并基于重组的多个子索引确定对应的第三预测值以及第三预测值的置信度;根据所述分支指令对应的PC值、第三预测值以及第三预测值的置信度生成查询索引,利用所述查询索引从预定的模式历史表中确定分支指令对应的最终预测值。2.根据权利要求1所述的分支预测方法,其特征在于,所述组合预测器被配置为:针对相应子索引设有指示对应子索引的历史分支情况的饱和计数器,并在获取对应分支指令的分支结果后更新该分支指令所关联的子索引对应的饱和计数器;根据一个分支指令对应的多个子索引,基于对应的饱和计数器中的计数值之和确定第三预测值以及第三预测值的置信度。3.根据权利要求2所述的分支预测方法,其特征在于,所述模式历史表通过饱和计数器存储指示相应查询索引对应分支指令的历史分支情况;所述方法包括:基于相应分支指令对应的查询索引从对应饱和计数器中的计数值中确定该分支指令对应的最终预测值;并且当获取到该分支指令的分支结果后根据对应的最终预测值更新该分支指令所关联的查询索引对应的饱和计数器。4.根据权利要求1所述的分支预测方法,其特征在于,第一中间参数包括TAGE预测器对分支指令进行分支预测所对应的提供项、提供项的有效位、候选项;第二中间参数包括GEHL预测器对分支指令进行分支预测所对应的求和结果,该求和结果为GEHL预测器确定第二预测值的参考;每个子索引按照预定的规则选择分支指令对应的PC值、提供项、提供项的有效位、候选项、求和结果中的指定比特位进行拼接得到,并且其中任意两个子索引所利用的指定比特位存在差异。5.根据权利要求4所述的分支预测方法,所述多个子索引包括:第一子索引,由第二预测值、第一预测值、PC值的0
‑
7比特位拼接得到,第二子索引,由提供项的有效位、候选项的0
‑
2位、提供项的0
‑
2位、PC值的0
‑
2位拼接得到,第三子索引,由GEHL预测器的求和结果的0
‑
4位、PC值的0
‑
4位拼接得到,第四子索引,由GEHL预测器的求和结果的0
‑
4位、第二预测值、第一预测值、PC值的0
‑
2位拼接得到,第五子索引,由提供项的有效位、候选项的0
‑
2位、提供项的0
‑
2位、第二预测值、第一预测值、PC值的0位拼接得到。6.根据权利要求5所述的分支预测方法,所述...
【专利技术属性】
技术研发人员:范志华,王铎,汤胜中,李文明,安学军,叶笑春,范东睿,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。