一种应用于处理器的分支预测方法以及分支预测器技术

技术编号:36606307 阅读:21 留言:0更新日期:2023-02-04 18:29
本发明专利技术提供了一种应用于处理器的分支预测方法以及分支预测器,该分支预测方法包括:获取TAGE预测器对分支指令进行分支预测的第一中间参数以及第一预测值;获取GEHL预测器对所述分支指令进行分支预测的第二中间参数以及第二预测值;利用预设的组合预测器根据所述分支指令对应的PC值、第一中间参数、第一预测值、第二中间参数以及第二预测值中的指定比特位按照预定的规则重组确定多个子索引,并基于重组的多个子索引确定对应的第三预测值以及第三预测值的置信度;根据所述分支指令对应的PC值、第三预测值以及第三预测值的置信度生成查询索引,利用所述查询索引从预定的模式历史表中确定分支指令对应的最终预测值,从而提升分支预测的精度和处理器效率。分支预测的精度和处理器效率。分支预测的精度和处理器效率。

【技术实现步骤摘要】
一种应用于处理器的分支预测方法以及分支预测器


[0001]本专利技术涉及计算机体系结构领域,具体来说涉及处理器的分支预测
,更具体地说,涉及一种应用于处理器的分支预测方法以及分支预测器。

技术介绍

[0002]在计算机体系结构中,超标量计算机(即:每一时钟周期可以执行多于一个指令的具有多个处理组件的计算机)可以被用于高级的、计算密集的应用。通常,超标量计算机会采用一个或多个流水线处理器,以更好地处理某些计算密集的计算机程序。
[0003]计算机程序通常包括大量的分支指令,当执行一个分支指令时,需要评估是继续执行存储器中的下一条指令,还是跳转到一条由分支目标地址指定的指令。如果程序运行跳转到分支目标地址指定的分支,则认为一个由分支指令指定的分支被“采纳”(Taken),如果继续执行存储器中的下一条顺序指令,则认为“不采纳”(Not taken)。为了避免因等待对分支指令的实际评估而产生的停滞,现代处理器可采用某种形式的分支预测,借此在流水线中早期预测分支指令的分支行为,通过使用未分配的计算资源(即,流水线)提前开始推测执行相应的分支,可以节省执行时间。因此,在处理器发展进程中,分支预测技术作为提高通用处理器性能的重要方法,一直是业界研究的热点问题,不仅普遍使用在高性能处理器中,在功耗敏感的嵌入式处理器中也被广泛采用。
[0004]分支预测策略的设计和应用是影响处理器性能和开销的重要因素。随着现代处理器朝着深流水、超标量和多核方向发展,分支预测单元发生错误预测导致的惩罚越来越不能被接受。同时,分支预测单元本身在处理器前端占据一定面积和功耗开销,这就对分支预测单元的性能和开销设计提出了更高的要求。
[0005]O

GEHL(Optimized GEometric History Length)分支预测器在第一届分支预测大赛提出(Seznec,2004),可有效利用100

200位较长全局历史。O

GEHL预测器是在GEHL预测器的基础上优化而来。大赛中,64Kbits的O

GEHL预测器的预测准确率排名第二,并获得了最佳实践奖。O

GEHL预测器使用成几何序列的历史长度索引预测表,并用类感知器模式计算预测值,在更好地利用存储资源的同时,表现出对历史长度参数选择的较强鲁棒性。对于苛刻的应用程序,O

GEHL预测器中的大部分存储空间专用于相应分支指令的局部历史索引的表;而对不太苛刻的应用程序,则利用多个分支指令公用的非常长的全局历史索引的表。
[0006]TAGE预测器包含多个不同的预测表,不同预测表所使用的索引历史长度不同,且呈指数趋势增长。预测时,同时索引基础预测表和其他预测表,在命中的预测表中选取索引历史最长的预测表的预测结果作为最终预测结果。TAGE预测器提升了预测速度和预测准确率,但硬件设计复杂度较高,面积开销较大。同时,单TAGE预测器使用的地址和历史混合索引机制,不可避免会出现地址冲突导致的干扰,影响预测准确率。
[0007]分支预测机制很大程度上依赖于程序的行为,单机制预测器不会对任何程序都保持较高的准确率。相比于单机制预测器,采用多机制混合分支预测策略是目前高性能处理
器中设计分支预测器的通用做法,使用多机制的混合预测器可以实现更高的预测准确度。但是目前的混合分支预测策略的预测准确性仍有待提高。

技术实现思路

[0008]因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种应用于处理器的分支预测方法以及分支预测器。
[0009]本专利技术的目的是通过以下技术方案实现的:
[0010]根据本专利技术的第一方面,提供一种应用于处理器的分支预测方法,包括:获取TAGE预测器对分支指令进行分支预测的第一中间参数以及第一预测值;获取GEHL预测器对所述分支指令进行分支预测的第二中间参数以及第二预测值;利用预设的组合预测器根据所述分支指令对应的PC值、第一中间参数、第一预测值、第二中间参数以及第二预测值中的指定比特位按照预定的规则重组确定多个子索引,并基于重组的多个子索引确定对应的第三预测值以及第三预测值的置信度;根据所述分支指令对应的PC值、第三预测值以及第三预测值的置信度生成查询索引,利用所述查询索引从预定的模式历史表中确定分支指令对应的最终预测值。
[0011]在本专利技术的一些实施例中,所述组合预测器被配置为:针对相应子索引设有指示对应子索引的历史分支情况的饱和计数器,并在获取对应分支指令的分支结果后更新该分支指令所关联的子索引对应的饱和计数器;根据一个分支指令对应的多个子索引,基于对应的饱和计数器中的计数值之和确定第三预测值以及第三预测值的置信度。
[0012]在本专利技术的一些实施例中,所述模式历史表通过饱和计数器存储指示相应查询索引对应分支指令的历史分支情况;所述方法包括:基于相应分支指令对应的查询索引从对应饱和计数器中的计数值中确定该分支指令对应的最终预测值;并且当获取到该分支指令的分支结果后根据对应的最终预测值更新该分支指令所关联的查询索引对应的饱和计数器。
[0013]在本专利技术的一些实施例中,第一中间参数包括TAGE预测器对分支指令进行分支预测所对应的提供项、提供项的有效位、候选项;第二中间参数包括GEHL预测器对分支指令进行分支预测所对应的求和结果,该求和结果为GEHL预测器确定第二预测值的参考;每个子索引按照预定的规则选择分支指令对应的PC值、提供项、提供项的有效位、候选项、求和结果中的指定比特位进行拼接得到,并且其中任意两个子索引所利用的指定比特位存在差异。
[0014]在本专利技术的一些实施例中,所述多个子索引包括:第一子索引,由第二预测值、第一预测值、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位拼接得到。
[0015]在本专利技术的一些实施例中,所述查询索引的低位至高位依次由第三预测值、第三预测值的置信度以及PC值的0

6位拼接得到。
[0016]在本专利技术的一些实施例中,所述方法还包括:获取预设的感知机预测器根据分支
指令的全局历史以及局部历史的记录对分支指令进行分支预测得到的第四预测值;根据所述分支指令对应的PC值、第三预测值、第三预测值的置信度、第四预测值生成查询索引,基于所述查询索引从预定的模式历史表中确定分支指令对应的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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所述的分支预测方法,所述...

【专利技术属性】
技术研发人员:范志华王铎汤胜中李文明安学军叶笑春范东睿
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1