一种分支预测器制造技术

技术编号:39327325 阅读:12 留言:0更新日期:2023-11-12 16:04
本发明专利技术提供一种分支预测器,包括分支历史缓冲子系统、分支目标缓冲子系统、分支跳转方向预测器,所述分支历史缓冲子系统用于存储分支预测器进行预测所需要的分支历史信息,通过分支历史信息的条目查看分支指令跳转方向的指示;所述分支目标缓冲子系统分为依次进行被访问的三级单元,包括第一级分支目标缓冲、第二级分支目标缓冲、第三级分支目标缓冲,所述第一级分支目标缓冲中有间接分支目标、其它分支目标两个子模块。本发明专利技术在包含分支类型指令的高性能通用处理器设计中,以精简的微架构和较小的硬件资源开销实现高效的分支预测,可以适配包含分支指令的各种架构,能够显著提升处理器前端运行效率。理器前端运行效率。理器前端运行效率。

【技术实现步骤摘要】
一种分支预测器


[0001]本专利技术涉及一种分支指令执行装置,尤其是涉及一种分支预测器。

技术介绍

[0002]计算机程序的指令序列可以包括各种分支指令。分支指令是计算机程序中的一种指令,它可以使计算机开始执行不同的指令序列,从而偏离其按顺序执行指令的默认行为。例如,可以使用条件跳转指令来实现双向分支(if
…ꢀ
else

)。分支预测器用以预测分支指令是否会跳转。
[0003]分支预测器可以改进指令流水线中的流程。在没有分支预测的情况下,处理器必须等到分支指令(例如,条件跳转指令)通过执行阶段,然后下一条指令才能进入提取阶段。分支预测器通过确定分支(例如,条件跳转)是否更有可能跳转来避免这种等待。然后在最可能的分支处的指令(例如,序列中的下一条指令或不同的指令)被提取并且从预测指令开始的一个或多个指令被推测性地(投机)执行。如果处理器稍后检测到分支预测错误,则刷新流水线(导致投机执行的指令被丢弃)并且流水线以正确的指令重新开始。
[0004]图1是一个处理器实现的装置示例的框图。该装置中的分支预测器提供一个或多个执行单元执行的分支指令跳转地址的预测,预测功能由分支跳转目标预测和分支跳转方向预测两个子系统协同完成,例如,当分支跳转目标预测子系统索引到某个分支指令的跳转目标地址,并且分支跳转方向预测子系统认为当前的分支指令是要跳转的,则分支预测器给出预测的跳转地址。这些地址可以被发送到指令提取单元中的指令缓存,指令缓存在所识别的地址处检索指令(如果在指令缓存中检测到输入地址的命中,则可以直接从指令缓存输出对应的指令,否则指令可以从内存系统的层次结构的较低级别请求,并且在检索时可以从指令缓存中输出)。取出的指令然后被发送到指令译码单元,在那里它们被译码以产生用于控制指令执行单元的操作的控制信号,从而实现所需的操作。
[0005]分支预测器可以在每次取指令时访问以预测接下来即将执行的指令块,预测的提取指令块可以包括存储器地址空间内的一个或多个顺序指令。指令块中的指令条数通常是确定的,例如可以是1,2,4,8,16,32条。
[0006]分支预测器的预测结果(分支跳转地址)由多路复用器输出(多路复用器的另一通路为顺序取指地址),并提供给指令缓存,同时也被提供给分支预测器做新一轮预测。分支预测器的目的是预测是否有任何被预测为跳转的会造成指令流改变的分支指令(即指令的运行顺序不是按照编译后的1、2、3、4、5、6......顺次执行,而是在中间某处跳到其它位置的指令执行,例如1、2、3、4、9、10、11)。如果预测的指令块包括一个或多个这样的分支指令,则识别被预测为跳转的第一条改变指令流的指令的位置,并且该指令的目标地址被用于下一个预测的提取指令块的起始地址。如果在提取指令块内没有识别出这样的分支指令,则下一个提取指令块的起始地址是当前指令块的最后一条指令的地址之后的顺序地址。
[0007]由上文可知,在处理器设计中,如果不加入分支预测器或者分支预测器预测准确率不高的话,都会对处理器性能产生较大影响。
[0008]以下两点是目前业界对于分支预测技术的共识:(1)大部分(可能80%

90%以上)的分支预测错误是由少部分的分支指令造成的(例如具有多个跳转目标地址的间接分支(Indirect Branch),以及伴随较长循环的分支指令等)。
[0009](2)具有较高预测错误率的分支指令通常不会连续均匀分布。
[0010]因此,能够针对上述两点问题进行优化能够显著提升分支预测器的预测准确率。
[0011]当下主流的高性能处理器基本都是基于多级流水线设计的,因此分支预测器中的预测子系统一般相对应地也设计为多级的。如图2所示,一般来说,越是前级的预测对于处理器性能的损伤越小(分支跳转地址对指令提取重定向产生的流水线停顿取决于预测器所处的流水线阶段,例如,如果Level 1预测器的预测结果出在与指令提取单元的流水线第一级相对应的时钟周期,则不会使指令提取流水线停顿;Level3预测器的预测结果出在与指令提取单元的流水线第三级相对应的时钟周期,则当Level 3预测器预测分支指令跳转时,指令提取单元流水线前两级投机执行的部分要被冲刷掉,相应地,指令提取单元流水线要停顿两个时钟周期)。
[0012]目前公开的技术(细节)方案中并没有对上述提出的两个问题(1.大部分(可能80%

90%以上)的分支预测错误是由少部分的分支指令造成的;2.具有较高预测错误率的分支指令通常不会连续均匀分布)提供完美的解决方案。

技术实现思路

[0013]本专利技术提供了一种分支预测器,用于解决上述两个问题,其技术方案如下所述:一种分支预测器,包括分支历史缓冲子系统、分支目标缓冲子系统、分支跳转方向预测器,所述分支历史缓冲子系统用于存储分支预测器进行预测所需要的分支历史信息,通过分支历史信息的条目查看分支指令跳转方向的指示;所述分支目标缓冲子系统分为依次进行被访问的三级单元,包括第一级分支目标缓冲、第二级分支目标缓冲、第三级分支目标缓冲,所述第一级分支目标缓冲中有间接分支目标、其它分支目标两个子模块,分别针对间接分支指令和非间接分支指令进行预测。
[0014]所述分支历史信息是一个或多个全局历史向量或局部历史向量,包括有关当遇到分支指令时程序的状态以及是否跳转分支的信息。
[0015]所述第一级分支目标缓冲最先被访问,第二级分支目标缓冲在第一级分支目标缓冲所在流水线阶段的下一级被访问,第三级分支目标缓冲在第二级分支目标缓冲所在流水线阶段的下一级被访问,并且第一级分支目标缓冲到第三级分支目标缓冲的容量依次递增。
[0016]所述第二级分支目标缓冲、第三级分支目标缓冲的条目相同,包括有效位、标签、分支类型、跳转目标、预测错误计数五项信息;所述有效位表示该条目能够被用于进行预测;所述标签在分支目标缓冲访问时用来进行条目匹配;所述分支类型表示该条目中存储的分支指令是什么类型;所述跳转目标表示该条目中存储的分支指令的跳转地址;所述预测错误计数表示该条目中的分支预测信息预测的准确度,准确度过低的条目会被剔到后级分支目标缓冲中。
[0017]所述第一级分支目标缓冲中的条目内容相比第二级分支目标缓冲、第三级分支目
标缓冲的条目,多出一项“是否跳转”,使用2

bit饱和计数器来预测分支跳转方向。
[0018]还包括高频错误预测分支缓冲,所述高频错误预测分支缓冲用于记录高频错误预测的分支指令对应的正确历史信息以确保该历史信息不被频繁的循环迭代覆盖。
[0019]所有的分支指令信息需要由CPU中相应的指令解析单元处理,所有首次出现的分支指令信息都会被更新进入第三级分支目标缓冲。
[0020]当第三级分支目标缓冲命中并且第一级分支目标缓冲未命中时,对应条目的分支预测信息将被移入第一级分支目标缓冲;当第三级分支目标缓冲条目被占满时又有新的分支指令信息需要被更新,则第三级分支目标缓本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分支预测器,其特征在于:包括分支历史缓冲子系统、分支目标缓冲子系统、分支跳转方向预测器,所述分支历史缓冲子系统用于存储分支预测器进行预测所需要的分支历史信息,通过分支历史信息的条目查看分支指令跳转方向的指示;所述分支目标缓冲子系统分为依次进行被访问的三级单元,包括第一级分支目标缓冲、第二级分支目标缓冲、第三级分支目标缓冲,所述第一级分支目标缓冲中有间接分支目标、其它分支目标两个子模块,分别针对间接分支指令和非间接分支指令进行预测。2.根据权利要求1所述的分支预测器,其特征在于:所述分支历史信息是一个或多个全局历史向量或局部历史向量,包括有关当遇到分支指令时程序的状态以及是否跳转分支的信息。3.根据权利要求1所述的分支预测器,其特征在于:所述第一级分支目标缓冲最先被访问,第二级分支目标缓冲在第一级分支目标缓冲所在流水线阶段的下一级被访问,第三级分支目标缓冲在第二级分支目标缓冲所在流水线阶段的下一级被访问,并且第一级分支目标缓冲到第三级分支目标缓冲的容量依次递增。4.根据权利要求1所述的分支预测器,其特征在于:所述第二级分支目标缓冲、第三级分支目标缓冲的条目相同,包括有效位、标签、分支类型、跳转目标、预测错误计数五项信息;所述有效位表示该条目能够被用于进行预测;所述标签在分支目标缓冲访问时用来进行条目匹配;所述分支类型表示该条目中存储的分支指令是什么类型;所述跳转目标表示该条目中存储的分支指令的跳转地址;所述预测错误计数表示该条目中的分支预测信息预测的准确度,准确度过低的条目会被剔到后级分支目标缓冲中。5.根据权利要求1或4任一所述的分支预测器,其特征在于:所述第一级分支目标缓冲中的条目内容相比第二级分支目标缓冲、第三级分支目标缓冲的条目,多出一项“是否跳转”,使用2

bit饱和计数器来预测分支跳转方向。6.根据权利要求1所述的分支预测器,其特征在于:还包括高频错误预测分支缓冲,所述高频错误预...

【专利技术属性】
技术研发人员:李东声
申请(专利权)人:北京数渡信息科技有限公司
类型:发明
国别省市:

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

1