【技术实现步骤摘要】
用于促进分支预测单元的改善的带宽的设备、方法和系统
背景
1.
[0001]本公开总体上涉及处理器技术、分支预测技术和分支偏移预测技术。
2.
技术介绍
[0002]一些中央处理器单元(central processor unit,CPU)核心利用推测性执行以避免管线暂缓并实现更好的性能,这允许执行继续而无需等待对分支目标的体系结构解析。分支预测技术利用数字电路,该数字电路在分支指令被执行之前猜测分支将去往哪条路。正确的预测/猜测改善指令管线中的流。
[0003]一般而言,存在两种分支预测:针对条件分支的分支预测,其可被理解为将分支预测为“被采用”相对于“不被采用”;以及针对非条件分支的分支目标预测,既包括直接分支也包括间接分支。间接分支预测是总体分支预测的重要部分,因为间接分支典型地在其目标解析中涉及较高的等待时间,尤其是对于存储器间接分支,其目标需要从特定的存储器位置来取得(fetch)。分支预测单元(branch prediction unit,BPU)通过在预测点之前基于分支指令指针(instruction pointer,IP)、分支类型和控制流历史(也称为分支历史)为CPU的前端(front
‑
end,FE)提供预测的目标来支持推测性执行。
附图说明
[0004]以示例方式且非限制方式在附图的各图中图示本专利技术的各实施例,在附图中:
[0005]图1A示出图示根据实施例的用于基于分支预测来执行指令的处理器的特征的功能框图。
[0006]图1B ...
【技术保护点】
【技术特征摘要】
1.一种用于执行指令的处理器,所述处理器包括:第一预测电路,所述第一预测电路用于检测包括第一分支预测的N个分支预测的实例,其中N是大于1的整数,其中所述第一预测电路用于检测所述实例包括所述第一预测电路用于在分支预测周期序列中的第一周期中标识所述N个分支预测中的每个分支预测,其中所述N个分支预测中的一个或多个分支预测各自基于所述N个分支预测中相应的另一个分支预测;控制器电路,所述控制器电路耦合至所述第一预测电路,其中基于所述实例,所述控制器电路用于:向执行管线指示所述N个分支预测中的每个分支预测;以及基于与所述第一分支预测相对应的置信度度量来确定是否将所述第一分支预测发送至预测单元;以及第二预测电路,所述第二预测电路耦合至所述控制器电路,其中,在所述第一分支预测被发送至所述预测单元的情况下,所述第二预测电路用于:执行对所述第一分支预测的有效性状况的评估;以及基于所述有效性状况来确定是否提供用于清除所述执行管线的状态的信号。2.如权利要求1所述的处理器,其中,所述第一分支预测与第一分支指令相对应,并且其中,所述第二预测电路用于执行所述评估包括所述第二预测电路用于:基于所述第一指令来生成第二分支预测;以及确定所述第一分支预测是否与所述第二分支预测一致。3.如权利要求1或权利要求2中任一项所述的处理器,其中,所述控制器电路进一步用于:检测所述第一分支预测的成功后果;以及基于所述成功后果,更新所述置信度度量的值以指示所述第一分支预测的提高的置信度。4.如权利要求1至3中任一项所述的处理器,其中,所述控制器电路进一步用于:检测所述第一分支预测的不成功后果;以及基于所述不成功后果,更新所述置信度度量的值以指示所述第一分支预测的降低的置信度。5.如权利要求1至4中任一项所述的处理器,其中,所述第二预测电路进一步用于在预测从缓冲器被解除缓冲之后接收所述预测;并且其中,所述处理器进一步包括:缓冲器管理器电路,所述缓冲器管理器电路用于将所述第一分支预测指引至所述第二预测电路,其中,基于所述缓冲器为空的确定,所述缓冲器管理器电路用于经由绕过所述缓冲器的路径将所述第一分支预测传输至所述第二预测电路。6.如权利要求1至5中任一项所述的处理器,其中,所述控制器电路用于经由缓冲器将所述第一分支预测发送至所述第二预测电路,其中,所述处理器进一步包括缓冲器管理器电路,所述缓冲器管理器电路用于:检测其中对所述缓冲器的利用高于阈值水平的状况;以及基于所述状况来生成用于降低所述执行管线的操作速率的信号。
7.如权利要求6所述的处理器,其中,所述缓冲器管理器电路用于检测所述状况包括所述缓冲器管理器电路用于检测所述缓冲器当前已满,并且其中,所述信号用于至少暂时地停止由所述执行管线对指令的执行。8.如权利要求7所述的处理器,其中,所述缓冲器管理器电路用于检测所述状况包括所述缓冲器管理器电路用于检测入列至所述缓冲器的预测的总数量当前大于阈值数量并且当前还小于所述缓冲器能够容纳的预测的最大可能数量;并且其中,基于所述信号,所述执行管线用于转变至指令执行的正速率。9.如权利要求1至5中任一项所述的处理器,进一步包括选择器电路,其中,所述控制器电路用于向所述执行管线指示所述N个分支预测中的每个分支预测包括:所述控制器电路用于发信号通知所述选择器电路选择所述N个分支预测中的一个分支预测的指示而不是不同于所述N个分支预测中的任何分支预测的预测的指示。10.一种在处理器处用于执行指令的方法,所述方法包括:检测包括第一分支预测的N个分支预测的实例,其中N是大于1的整数,其中检测所述实例包括在分支预测周期序列中的第一周期中标识所述N个分支预测中的每个分支预测,其中所述N个分支预测中的一个或多个分支预测各自基于所述N个分支预测中相应的另一个分支预测;基于所述实例来进行以下步骤:向执行管线指示所述N个分支预测中的每个分支预测;标识与所述第一分支预测相对应的置信度度量;以及基于所述置信度度量,确定是否将所述第一分支预测发送至预测单元;以及在所述第一分支预测被发送至所述预测单元的情况下进行以下步骤:执行评估,以确定所述第一分支预测的有效性状况;以及基于所述有效性状况,确定是否提供用于清除所述执行管线的状态的信号。11.如权利要求10所述的方法,其中,所述第一分支预测与第一分支指令相对应,所述方法进一步包括:将所述第一分支预测发送至所述预测单元;以及执行所述评估,包括:利用所述预测单元基于所述第一指令来生成第二分支预测;以及确定所述第一分支预测是否与所述第二分支预测一致。12.如权利要求10或权利要求...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。