一种多层级混合算法过滤式分支预测方法及预测系统技术方案

技术编号:34400509 阅读:36 留言:0更新日期:2022-08-03 21:39
本发明专利技术公开一种多层级混合算法过滤式分支预测方法及预测系统,其方法包括:S1:设置两级分支目标预测表,分别为第一级分支目标预测表与第二级分支目标预测表;S2:任一分支指令访问第一级分支目标预测表,并判断第一级分支目标预测表是否命中,如果第一级分支目标预测表命中,则进入S3;如果第一级分支目标预测表没有命中,则进入S4;S3:判断当前预测的分支指令是否被第一级分支目标预测表过滤掉,如果被过滤掉,则进入S4;反之,则以第一级分支目标预测表提供的预测结果作为对应分支指令的预测地址;S4:访问第二级分支目标预测表,并以第二级分支目标预测表提供的预测结果作为对应分支指令的预测地址。支指令的预测地址。支指令的预测地址。

【技术实现步骤摘要】
一种多层级混合算法过滤式分支预测方法及预测系统


[0001]本专利技术涉及计算机系统
,具体而言,涉及一种多层级混合算法过滤式分支预测方法及预测系统。

技术介绍

[0002]现代处理器普遍采用分支预测技术在分支指令执行前对分支的方向和目标地址进行预测,如果预测为跳转,则根据预测的地址提前取指以避免分支发生时产生流水线气泡影响性能。其中分支预测的原理是保存分支指令的历史信息,当再次遇到同一条分支指令时,根据保存的历史信息预测分支指令这次的行为。
[0003]分支指令对性能的影响主要来自两部分:第一部分来自于对分支预测所消耗的时间也就是对预测表的访问和仲裁消耗的时间,因为在得到预测结果之前,处理器无法得到后续的指令地址,通常来说,根据不同复杂度的分支预测算法,第一部分会引入1~3个流水线气泡;第二部分来自于预测器对分支的方向或者地址预测错误,那么意味着流水线会一直在路径上执行,直到拿到分支指令的执行结果。分支预测带来的性能影响主要由流水线深度决定。通常来说,现代高性能超标量处理器遇到分支预测错误会引入10~20个流水线气泡。
[0004]因此,在分支预测器设计时,需要权衡以上两部分。为了提高分支预测率,通常会使用更加复杂的分支预测算法,那么势必会增加分支预测所需要的时间(即前述分支指令对性能的影响的第一部分),除此之外也会增大分支预测器的功耗与面积。所以传统的预测器通常会采用一个比较折中的办法将分支预测的时间控制在2个气泡内,用以达到可以接受的预测准确率,但是这种方法对不同的分支采用相同的预测,没有考虑分支之间的不同。
[0005]图1为一现有技术的分支预测流水线示意图,如图1所示,其将预测器分成第一级和第二级,通过较小的第一级的预测器进行前期分支预测以减少预测时间,通过较大的第二级的预测器进行后期分支预测以提高预测的准确率。但是图1所示的预测方式并未对分支预测难度进行区分,故而两级预测器中的两个预测表需要同时对所有的分支进行预测,因此,其预测器的功耗依然无法降低。

技术实现思路

[0006]为了解决上述问题,本专利技术提供一种多层级混合算法过滤式分支预测方法及预测系统,通过使用两种复杂度的预测算法,针对比较“容易”预测的分支,使用第一级即复杂度较低的预测算法实现的预测器对该分支进行预测。由于第一级算法简单,可以快速的拿到预测结果(1个流水线气泡),由于该分支指令“容易”预测,也能够实现足够高的预测准确率;同时第一级预测器需要筛选出“不容易”预测的分支指令,而针对“不容易”预测的指令,开启第二级即复杂度较高的预测器对该分支进行预测,第二级指令的预测时间需要引入2个流水线气泡,但是由于对此类指令进行了过滤,所以此类指令的数量很少,故而对处理器性能的影响很小。因此本专利技术能够更好地兼顾预测时间和正确率,且由于引入过滤机制,通
过两个预测器能够更有针对性的预测,从而提高准确率和资源的使用率,有效降低处理器的功耗。
[0007]为达到上述目的,本专利技术提供了一种多层级混合算法过滤式分支预测方法,其包括:
[0008]步骤S1:设置两级分支目标预测表,分别为第一级分支目标预测表与第二级分支目标预测表;
[0009]步骤S2:任一分支指令访问第一级分支目标预测表,并判断第一级分支目标预测表是否命中,
[0010]如果第一级分支目标预测表命中,则进入步骤S3;
[0011]如果第一级分支目标预测表没有命中,则进入步骤S4;
[0012]步骤S3:判断当前预测的分支指令是否被第一级分支目标预测表过滤掉,如果被过滤掉,则进入步骤S4;反之,则以第一级分支目标预测表提供的预测结果作为对应分支指令的预测地址;
[0013]步骤S4:访问第二级分支目标预测表,并以第二级分支目标预测表提供的预测结果作为对应分支指令的预测地址。
[0014]在本专利技术一实施例中,其中,在步骤S2中还包括:
[0015]在第一级分支目标预测表中设置索引,且索引用于匹配分支指令的地址;
[0016]在第一级分支目标预测表中提供可信度预测,用于进行预测难度过滤;
[0017]第一级分支目标预测表采用PLRU替换策略,用于保留最近被执行的分支指令的历史记录。
[0018]在本专利技术一实施例中,其中,所述第一级分支目标预测表的数据结构包括16个项,分别为Entry0~Entry15,每一项包括FullTag、predTarget、Conf、Vld与PLRU,其中:
[0019]FullTag为用于进行地址匹配的部分,第一级分支目标预测表的索引将分支指令地址的高位与FullTag进行匹配比对,如果二者相等则认定为第一级分支目标预测表命中;
[0020]predTarget为记录对应分支指令之前的跳转地址的部分,用于提供对应分支指令的预测地址;
[0021]Conf为提供预测的可信度的部分,其初始值为两位二进制表达10,如果本次预测错误则Conf

1,如果本次预测正确则Conf+1;
[0022]Vld为标识部分,用于标识预测是否有效;
[0023]PLRU为标识各项替换策略的部分,PLRU为四位二进制表达,用于标识16个项的替换顺序。
[0024]在本专利技术一实施例中,其中,所述PLRU替换策略为:当需要建立一个新的第一级分支目标预测表项时,先替换掉最长时间未使用的项,通过四位二进制表达PLRU[3:0]标识16个项的年龄顺序,具体为:
[0025]采用PLRU[0]标识节点L1的年龄信息,如果PLRU[0]==1,则标识LRU的项在Entry{0,1,2,3,4,5,6,7}中;
[0026]采用PLRU[1]标识节点L2的年龄信息,如果PLRU[1]==1,则标识LRU的项在Entry{0,1,2,3,8,9,10,11}中;
[0027]采用PLRU[2]标识节点L3的年龄信息,如果PLRU[2]==1,则标识LRU的项在Entry
{0,1,4,5,8,9,12,13}中;
[0028]采用PLRU[3]标识节点L4的年龄信息,如果PLRU[3]==1,则标识LRU的项在Entry{0,2,4,6,8,10,12,14}中。
[0029]在本专利技术一实施例中,其中,所述第二级分支目标预测表的数据结构包括:
[0030]一PHR;
[0031]至少两个THT,分别为THT0与THT1,其中THT0与THT1分别对应到PHR,且THT1对应PHR位数的长度大于THT0对应PHR位数的长度;
[0032]所述第二级分支目标预测表根据THT0与THT1的命中情况选择最终预测结果并对PHR进行更新,具体为:
[0033]如果THT0与THT1均未命中,则认定为所述第二级分支目标预测表未命中,无预测结果提供;
[0034]如果THT0命中而THT1未命中,则认定为所述第二级分支目标预测表命中,并从THT0中选取预测结果;
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多层级混合算法过滤式分支预测方法,其特征在于,包括:步骤S1:设置两级分支目标预测表,分别为第一级分支目标预测表与第二级分支目标预测表;步骤S2:任一分支指令访问第一级分支目标预测表,并判断第一级分支目标预测表是否命中,如果第一级分支目标预测表命中,则进入步骤S3;如果第一级分支目标预测表没有命中,则进入步骤S4;步骤S3:判断当前预测的分支指令是否被第一级分支目标预测表过滤掉,如果被过滤掉,则进入步骤S4;反之,则以第一级分支目标预测表提供的预测结果作为对应分支指令的预测地址;步骤S4:访问第二级分支目标预测表,并以第二级分支目标预测表提供的预测结果作为对应分支指令的预测地址。2.根据权利要求1所述的分支预测方法,其特征在于,在步骤S2中还包括:在第一级分支目标预测表中设置索引,且索引用于匹配分支指令的地址;在第一级分支目标预测表中提供可信度预测,用于进行预测难度过滤;第一级分支目标预测表采用PLRU替换策略,用于保留最近被执行的分支指令的历史记录。3.根据权利要求2所述的分支预测方法,其特征在于,所述第一级分支目标预测表的数据结构包括16个项,分别为Entry0~Entry15,每一项包括FullTag、predTarget、Conf、Vld与PLRU,其中:FullTag为用于进行地址匹配的部分,第一级分支目标预测表的索引将分支指令地址的高位与FullTag进行匹配比对,如果二者相等则认定为第一级分支目标预测表命中;predTarget为记录对应分支指令之前的跳转地址的部分,用于提供对应分支指令的预测地址;Conf为提供预测的可信度的部分,其初始值为两位二进制表达10,如果本次预测错误则Conf

1,如果本次预测正确则Conf+1;Vld为标识部分,用于标识预测是否有效;PLRU为标识各项替换策略的部分,PLRU为四位二进制表达,用于标识16个项的替换顺序。4.根据权利要求3所述的分支预测方法,其特征在于,所述PLRU替换策略为:当需要建立一个新的第一级分支目标预测表项时,先替换掉最长时间未使用的项,通过四位二进制表达PLRU[3:0]标识16个项的年龄顺序,具体为:采用PLRU[0]标识节点L1的年龄信息,如果PLRU[0]==1,则标识LRU的项在Entry{0,1,2,3,4,5,6,7}中;采用PLRU[1]标识节点L2的年龄信息,如果PLRU[1]==1,则标识LRU的项在Entry{0,1,2,3,8,9,10,11}中;采用PLRU[2]标识节点L3的年龄信息,如果PLRU[2]==1...

【专利技术属性】
技术研发人员:张然王飞范东睿
申请(专利权)人:苏州睿芯集成电路科技有限公司
类型:发明
国别省市:

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

1