处理器流水线中的间接跳转的提取级处置制造技术

技术编号:35678421 阅读:13 留言:0更新日期:2022-11-23 14:18
公开了用于处理器流水线中的间接跳转的提取级处置的系统和方法。例如,一种方法包括:检测由处理器核提取的指令序列,其中,指令序列包括第一指令随后是作为间接跳转指令的第二指令,该第一指令具有取决于第一指令的立即数字段和程序计数器值的结果;响应于检测到指令序列,防止间接跳转目标预测器电路生成第二指令的目标地址预测;以及响应于检测到指令序列,在将第一指令发布到处理器核的流水线的执行级之前确定第二指令的目标地址。行级之前确定第二指令的目标地址。行级之前确定第二指令的目标地址。

【技术实现步骤摘要】
【国外来华专利技术】处理器流水线中的间接跳转的提取级处置


[0001]本专利技术涉及处理器流水线(pipeline)中的间接跳转的提取级处置。

技术介绍

[0002]为了提高性能,流水线化的处理器可以包括间接跳转目标预测器,该间接跳转目标预测器生成间接跳转指令的目标地址的预测,该预测可以取决于直到间接跳转指令到达处理器流水线的后一级才可能变得可用的数据。目标地址预测可用于提取即将到来的指令,同时等待间接跳转指令通过流水线并被引退。目标地址的错误预测可能导致问题,包括间接跳转目标预测器的状态的性能惩罚和污染。
附图说明
[0003]当结合附图阅读时,最好从以下详细描述中理解本公开。要强调的是,根据惯例,附图的各种特征不是按比例的。相反,为了清楚起见,各种特征的尺寸被任意地扩大或缩小。
[0004]图1是用于使用处理器流水线中的间接跳转的提取级处置来执行指令的集成电路的示例的框图。
[0005]图2是用于使用间接跳转的提取级处置来执行指令的处理器流水线的一部分的示例的框图。
[0006]图3是指令序列的示例的存储器映射,所述指令序列包括具有取决于第一指令的立即数字段以及程序计数器值的结果的第一指令,随后是作为间接跳转指令的第二指令。
[0007]图4是用于间接跳转的提取级处置的过程的示例的流程图。
[0008]图5是用于确定间接跳转指令的目标地址的过程的示例的流程图,该间接跳转指令取决于程序计数器和指令序列的一个或多个立即数。
[0009]图6是用于在没有间接跳转的情况下选择性地禁用间接跳转目标预测器电路的过程的示例的流程图。
具体实施方式
[0010]概述
[0011]本文描述了用于处理器流水线中的间接跳转的提取级处置的系统和方法。在一些处理器架构中,可以使用包括间接跳转指令的指令序列来指定大虚拟地址空间中的目标地址。序列中的较早指令可以将立即数值添加到程序计数器值。然后可以将结果添加到包括在间接跳转指令中的第二立即数(immediate),并移位以允许相对于程序计数器值的大范围的跳转。该指令序列形成立即跳转,可以基于立即数及程序计数器值来确定对该立即中转的目标地址,所述程序计数器值为将在处理器流水线的提取级中可用的信息。例如,在RISC

V指令集中,包括AUIPC指令和随后的JALR指令的指令序列形成立即跳转。然而,间接跳转目标预测器电路可以为指令序列的间接跳转指令生成目标地址预测。这可能浪费间接
跳转目标预测器电路中的功率,并且还可能导致目标地址的偶然误预测,这导致性能惩罚和/或污染间接跳转目标预测器电路的预测器状态。
[0012]一些实施方式通过将电路添加到处理器核以检测形成立即跳转的这些指令序列且确定处理器流水线的提取级中的指令序列的间接跳转的目标地址来解决或减轻这些问题。例如,所确定的目标地址可以被插入提取目标队列中且用于代替来自处理器核的间接跳转目标预测器电路的目标地址预测。在一些实施方式中,当正在提取指令序列的间接跳转指令时,可以禁用间接跳转目标预测器电路,以防止间接跳转目标预测器电路浪费生成间接跳转指令的目标地址预测的功率。例如,可以在具有多个提取级的流水线的较早级中检测指令序列,诸如当将指令的高速缓存行S被加载到L1指令高速缓存中时。该早期检测可以允许生成立即跳转提示,所述立即跳转提示将足够早地可用以在从L1指令高速缓存读出指令序列时控制间接跳转目标预测器电路的启用输入且禁用间接跳转目标预测器电路。
[0013]用于降低间接跳转目标预测器电路中的功耗的另一技术是在高速缓存行被加载到L1指令高速缓存中时检测高速缓存行中间接跳转指令的存在或不存在,以生成间接跳转提示,该间接跳转提示可以在处理器流水线的后面的提取级中使用以启用或禁用间接跳转目标预测器电路。也就是说,如果在高速缓存行中没有检测到间接跳转指令,则当从高速缓存行读出指令时禁用间接跳转目标预测器电路。该技术可以与上文和本文其他地方描述的立即跳转处置组合。例如,如果间接跳转提示指示不存在间接跳转指令或者立即跳转提示指示存在形成立即跳转的指令序列,则可以将间接跳转目标预测器电路的启用输入设置为不活动电平。
[0014]在一些实施方式中,用于处理器流水线中的间接跳转的提取级处置的技术可用于实现优于常规处理器的一个或多个优点。例如,本文描述的结构和技术可以降低处理器核中的功耗,降低间接跳转目标预测器电路的预测器状态的污染,和/或改善处理器核的性能。
[0015]如本文所使用的,术语“电路”是指被构造为实现一个或多个功能的电子组件(例如,晶体管、电阻器、电容器和/或电感器)的装置。例如,电路可以包括互连以形成共同实现逻辑功能的逻辑门的一个或多个晶体管。
[0016]细节
[0017]图1是用于使用处理器流水线中的间接跳转的提取级处置来执行指令的集成电路110的示例的框图。集成电路110包括处理器核120。处理器核120包括处理器流水线130,所述处理器流水线包括间接跳转目标预测器电路132,所述间接跳转目标预测器电路被配置为生成对所提取的间接跳转指令的目标地址的预测。处理器核120包括一个或多个寄存器堆(register file)140,其包括程序计数器142。处理器核120包括L1指令高速缓存150和L1数据高速缓存152。集成电路110包括外部存储器系统160,其可以包括存储指令和数据的存储器和/或提供对集成电路外部的存储指令和/或数据的存储器162的访问。处理器核120包括立即跳转处置器电路170,其可以被配置为检测包括间接跳转指令的指令序列,所述间接跳转指令具有可以基于流水线130的提取级中可用的信息确定的目标地址,并且在流水线的提取级中确定该目标地址以代替目标地址的预测而使用。处理器核120包括间接跳转检测器电路180,其可以被配置为在间接中转指令被加载到L1指令高速缓存150中时检查高速缓存行中的间接跳转指令,并且在从L1指令高速缓存150读取无间接跳转的高速缓存行时
禁用间接跳转目标预测器电路132以省电。集成电路110可以提供优于常规处理器架构的优点,诸如例如避免目标地址的误预测和间接跳转预测器的所得污染和性能降级,和/或功耗节省。例如,集成电路110可以实现图4的过程400。例如,集成电路110可以实现图6的过程600。
[0018]集成电路110包括处理器核120,处理器核120包括被配置为执行指令的处理器流水线130。流水线130包括被配置为从集成电路110的存储器系统检索指令的一个或多个提取级。例如,流水线130可以经由L1指令高速缓存150提取指令。例如,流水线130可以包括图2的处理器流水线200。流水线130可以包括附加级,诸如解码级、重命名级、分派级、发布级、执行级、存储器访问级和回写级。例如,处理器核120可以包括被配置为执行RISC V指令集的指令的流水线130。
[0019]集成电路110包括流水线130的提取级中的间接跳转目标预测器电路132,其被配置为生成对所提取间接跳转指令的目标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于执行指令的集成电路,包括:处理器核,所述处理器核包括被配置为执行指令的流水线;所述流水线的提取级中的间接跳转目标预测器电路,所述间接跳转目标预测器电路被配置为生成对所提取的间接跳转指令的目标地址的预测;以及立即跳转处置器电路,所述立即跳转处置器电路被配置为:检测由所述处理器核提取的指令序列,其中,所述指令序列包括第一指令随后是作为间接跳转指令的第二指令,所述第一指令具有取决于所述第一指令的立即数字段和程序计数器值的结果;响应于检测到所述指令序列,防止所述间接跳转目标预测器电路生成对所述第二指令的目标地址预测;以及响应于检测到所述指令序列,在将所述第一指令发布到所述流水线的执行级之前确定所述第二指令的目标地址。2.根据权利要求1所述的集成电路,其中,所述立即跳转处置器电路在所述指令序列进入包括所述间接跳转目标预测器电路的所述提取级之前检测所述指令序列,以及所述立即跳转处置器电路被配置为:响应于检测到所述指令序列,禁用所述间接跳转预测器电路。3.根据权利要求1所述的集成电路,其中,所述流水线包括多个提取级,所述立即跳转处置器电路在所述指令序列通过在所述流水线中比包括所述间接跳转目标预测器电路的提取级更早的早期提取级时检测所述指令序列,并且所述立即跳转处置器电路被配置为:响应于检测到所述指令序列,禁用所述间接跳转预测器电路。4.根据权利要求1至3中的任一项所述的集成电路,其中,所述立即跳转处置器电路被配置为更新指令高速缓存标签中的状态位,这使得当所述第二指令进入包括所述间接跳转目标预测器电路的所述流水线的所述提取级时所述间接跳转目标预测器电路被禁用。5.根据权利要求1至3中的任一项所述的集成电路,其中,所述立即跳转处置器电路被配置为更新指令高速缓存通路预测器中的状态位,这使得当所述第二指令进入包括所述间接跳转目标预测器电路的所述流水线的所述提取级时所述间接跳转目标预测器电路被禁用。6.根据权利要求1至5中的任一项所述的集成电路,其中,所述立即跳转处置器电路被配置为当指令经由存储器总线被输入到指令高速缓存时,通过扫描出现在所述存储器总线上的值来检测所述指令序列。7.根据权利要求1至5中的任一项所述的集成电路,其中,所述立即跳转处置器电路被配置为通过扫描存储在指令高速缓存的高速缓存行中的值来检测所述指令序列。8.根据权利要求1至7中的任一项所述的集成电路,其中,所述立即跳转处置器电路被配置为将所述目标地址写入提取目标队列,所述提取目标队列被配置为从所述间接跳转目标预测器电路接收预测。9.根据权利要求1至8中的任一项所述的集成电路,其中,在所述第一指令到达所述流水线的解码级之前确定所述第二指令的所述目标地址。10.根据权利要求1至9中的任一项所述的集成电路,其中,所述处理器核被配置为执行RISC V指令集的指令,并且所述第一指令是AUIPC指令,而所述第二指令是JALR指令。
11.一种方法,包括:检测由所述处理器核提取的指令序列,其中,所述指令序列包括第一指令随后是作为间接跳转指令的第二指令,所述第一指令具有取决于所述第一指令的立即数字段和程序计数器值的结果;响应于检测到所述指令序列,防止间接跳转目标预测器电路生成对所述第二指令的目标地址预测;以及响应于检测到所述指令序列,在将所述第一指令发布到所述处理器核的流水线的执行级之前确定所述第二指令的目标地址。12.根据权利要求11所述的方法,其中,在所述指令序列进入包括所述间接跳转目标预测器电路的所述提取级之前检测所述指令序列,并且其中,防止所述间接跳转目标预测器电路生成所述第二指令的目标地址预测包括:响应于检测到所述指令序列,禁用所述间接跳转预测器电路。13.根据权利要求11所述的方法,其中,所述流水线包括多个提取级,在所述指令序列通过在所述流水线中比包括所述间接跳转目标预测器电路的提取级更早的早期提取级时检测所述指令序列,并且其中,防止所述间接跳转目标预测器电路生成所述第二指令的目标地址预测包括:响应于检测到所述指令序列,禁用所述间接跳转预测器电路。14.根据权利要求11至13中的任一项所述的方法,其中,防止所述间接跳转目标预测器电路生成所述第二指令的目标地址预测包括:更新指令高速缓存标签中的状态位,这使得当所述第二指令进入包括所述间接跳转目标预测器电路的所述流水线的级时所述间接跳转目标预测器电路被禁用。15.根据权利要求11至13中的任一项所述的方法,其中,防止所述间接跳转目标预测器电路生成所述第二指令的目标地址预测包括:更新指令高速缓存通路预测器中的状态位,这使得当所述第二指令进入包括所述间接跳转目标预测器电路的所述流水线的级时所述间接跳转...

【专利技术属性】
技术研发人员:乔舒亚
申请(专利权)人:斯法夫股份有限公司
类型:发明
国别省市:

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

1