支持混合模式的分支历史计数器制造技术

技术编号:24330666 阅读:91 留言:0更新日期:2020-05-29 19:29
本发明专利技术公开了支持混合模式的分支历史计数器,采用3位分支历史位,在程序运行时根据条件分支的数量动态决定其运行模式,包括两种针对分支历史位的判断和更新方法:映射到分支历史位上的是一条条件分支指令,则对分支历史位的判断和更新方法与一个3位的常规分支历史计数器相同;映射到分支历史位上的是2条条件分支指令,则对分支历史位的判断和更新方法相当于2个2位的分支历史计数器,实现了即可支持一个条件分支,也可支持两个条件分支混合模式;本发明专利技术充分利用了分支历史位,避免了对分支历史位的浪费;本发明专利技术实现简单,不需要对占用面积最大的分支历史表进行改动。

Branch history counter supporting mixed mode

【技术实现步骤摘要】
支持混合模式的分支历史计数器
本专利技术涉及分支历史计数器
,具体为支持混合模式的分支历史计数器。
技术介绍
现代处理器普遍采用分支预测技术在分支指令执行前对分支的方向和目标地址进行预测,如果预测为跳转,根据预测的地址提前取指以避免分支发生时产生流水线气泡影响性能。分支预测的原理是保存分支指令的历史信息,当再次遇到同一条分支指令时,根据保存的历史信息预测分支指令这次的行为。一般来说,程序中的分支指令中所占比例最大的是条件分支指令,这种指令根据对跳转条件的判断,决定是否发生跳转。分支指令发生跳转时的目标地址可以通过将分支指令的PC加上指令中携带的立即数而得到,不需要保存历史信息进行预测,而只需要保存是否发生跳转的历史信息。对条件分支指令,其是否进行跳转的历史信息保存在分支历史表中。当对条件分支指令进行预测时,根据它的地址从分支历史表中得到分支历史位,根据分支历史位的值进行预测;而在分支指令执行完成后根据结果对分支历史位进行更新使其能反映最新的分支指令行为。对分支历史位的更新由分支历史计数器完成,最常见的分支历史计数器如图1所示。条件分支指令因为可能不发生跳转,因此需要一次对多条条件分支预测进行预测:先预测第一条条件分支指令是否跳转,如果预测为不跳转,则会继续预测后面的指令是否跳转。传统的分支预测器处理在处理这个问题时,会在分支历史表中的表项中针对每一条可能是条件分支的指令设置独立的分支历史位,并分别使用相应的分支历史计数器进行更新。在传统技术中,每个分支历史计数器只能针对一条分支历史指令,因此如果CPU可以同时处理更多的指令,就必须根据可能遇到的最大数量的条件分支指令来设置相应数量的分支历史位和分支历史计数器,这会造成很大的浪费,因为绝大多数情况下不会每条指令都是分支指令,而且前面的分支发生跳转时,后面的分支是否跳转已无意义,但是传统方法还是会记录此时后面的分支是否跳转的无效信息。
技术实现思路
本专利技术的目的在于提供支持混合模式的分支历史计数器,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:支持混合模式的分支历史计数器,采用3位分支历史位,在程序运行时根据条件分支的数量动态决定其运行模式,包括两种针对分支历史位的判断和更新方法:映射到分支历史位上的是一条条件分支指令,则对分支历史位的判断和更新方法与一个3位的常规分支历史计数器相同;映射到分支历史位上的是2条条件分支指令,则对分支历史位的判断和更新方法相当于2个2位的分支历史计数器。优选的,在针对2条条件分支指令进行预测时,包括三种预测结果:两个分支都不跳转:对应预测结果FF;第一个分支跳转:跳转发生时分支后的指令会被取消,第二个分支是否跳转已经已经没有意义,对应预测结果TX;第一个分支不跳转,第二个分支跳转:对应预测结果FT。优选的,针对上述三种预测结果,由3位历史位表示的8个状态被分成了4组:第一组:000和001,预测结果为FF,在分支结果连续为FF时达到000稳定状态;第二组:010和011,预测结果为FT,在分支结果连续为FT时达到011稳定状态;第三组:100和101,预测结果为FT,在分支结果连续为FT时达到100稳定状态;第四组:110和111,预测结果为TX,在分支结果连续为TX时达到111稳定状态。优选的,针对上述四个稳定状态:000、011、100和111,进一步地,可以把上述四组两两组合形成三个等效2位分支历史计数器。优选的,状态000~011:可看作在第一个分支不跳转的前提下对第二个分支进行预测,当第二个分支跳转时(FT),计数值+1,饱和到011;在第二个分支不跳转时(FF),计数值-1,饱和到000。优选的,状态100~111:可看作两个分支至少有一个跳转的情况下进行预测,当第一个分支跳转时(TX),计数值+1,饱和到111;在第一个分支不跳转而第二个分支跳转时(FT),计数值-1,饱和到100。优选的,状态000~001&110~111:可看作在第二个分支不跳转的前提下对第一个分支是否跳转的预测,当第一个分支跳转时(TX),计数值+1,饱和到111;在没有分支跳转时(FF),计数值-1,饱和到000。与现有技术相比,本专利技术的有益效果是:本方案设计了支持混合模式的分支历史计数器,采用3位分支历史位实现了即可支持一个条件分支,也可支持两个条件分支混合模式预测;本专利技术充分利用了分支历史位,避免了对分支历史位的浪费,在预测一个条件分支时,可使用全部的分支历史位,而预测两个条件分支时,又使用3位分支历史位实现了三个等效的2位分支历史计数器从而对条件分支分别进行预测;本专利技术实现简单,不需要对占用面积最大的分支历史表进行改动,只需要对分支历史计数器和预测逻辑进行改动,主要改动在分支历史计数器上面,但这是对分支历史记录表的更新,不是分支预测的关键路径。附图说明图1为本专利技术中传统的2位分支历史计数器;图2为本专利技术中一个条件分支时的状态控制;图3为本专利技术中两个条件分支时的状态控制;图4为本专利技术中等效的2位分支历史计数器。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1、图2、图3和图4,本专利技术提供一种技术方案:支持混合模式的分支历史计数器,采用3位分支历史位,在程序运行时根据条件分支的数量动态决定其运行模式,包括两种针对分支历史位的判断和更新方法:映射到分支历史位上的是一条条件分支指令,则对分支历史位的判断和更新方法与一个3位的常规分支历史计数器相同,利用3位的常规分支历史计数器的判断和更新方法能够完成记录一个条件分支的历史信息,同时不存在对分支历史位和分支历史计数器的浪费;当映射到分支历史位上的是2条条件分支指令,则对分支历史位的判断和更新方法相当于2个2位的分支历史计数器,对比来说现有技术需要4位分支历史位才能对两个条件分支实现2位的分支历史计数器,且当只有一个条件分支时,只有一个2位分支位是有效的,另外2位分支历史位被浪费了。在针对2条条件分支指令进行预测时,包括三种预测结果:两个分支都不跳转:对应预测结果FF;第一个分支跳转:跳转发生时分支后的指令会被取消,第二个分支是否跳转已经已经没有意义,对应预测结果TX;第一个分支不跳转,第二个分支跳转:对应预测结果FT。针对上述三种预测结果,由3位历史位表示的8个状态被分成了4组:第一组:000和001,预测结果为FF,在分支结果连续为FF时达到000稳定状态;第二组:010和011,预测结果为FT,在分支结果连续为FT时达到011稳定状态;第三组:100和本文档来自技高网
...

【技术保护点】
1.支持混合模式的分支历史计数器,其特征在于,采用3位分支历史位,在程序运行时根据条件分支的数量动态决定其运行模式,包括两种针对分支历史位的判断和更新方法:/n映射到分支历史位上的是一条条件分支指令,则对分支历史位的判断和更新方法与一个3位的常规分支历史计数器相同;/n映射到分支历史位上的是2条条件分支指令,则对分支历史位的判断和更新方法相当于2个2位的分支历史计数器。/n

【技术特征摘要】
1.支持混合模式的分支历史计数器,其特征在于,采用3位分支历史位,在程序运行时根据条件分支的数量动态决定其运行模式,包括两种针对分支历史位的判断和更新方法:
映射到分支历史位上的是一条条件分支指令,则对分支历史位的判断和更新方法与一个3位的常规分支历史计数器相同;
映射到分支历史位上的是2条条件分支指令,则对分支历史位的判断和更新方法相当于2个2位的分支历史计数器。


2.根据权利要求1所述的支持混合模式的分支历史计数器,其特征在于:在针对2条条件分支指令进行预测时,包括三种预测结果:
两个分支都不跳转:对应预测结果FF;
第一个分支跳转:跳转发生时分支后的指令会被取消,第二个分支是否跳转已经已经没有意义,对应预测结果TX;
第一个分支不跳转,第二个分支跳转:对应预测结果FT。


3.根据权利要求2所述的支持混合模式的分支历史计数器,其特征在于:针对上述三种预测结果,由3位历史位表示的8个状态被分成了4组:
第一组:000和001,预测结果为FF,在分支结果连续为FF时达到000稳定状态;
第二组:010和011,预测结果为FT,在分支结果连续为FT时达到011稳定状态;
第三组:100和101,预测结果为FT,在分支结果连续为FT时达到100稳定状态...

【专利技术属性】
技术研发人员:杨思博蒙思铭于敦山刘刚
申请(专利权)人:江苏华创微系统有限公司中国电子科技集团公司第十四研究所
类型:发明
国别省市:江苏;32

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

1