当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于缓解前端分支重引导的分支预取机制制造技术

技术编号:33074884 阅读:15 留言:0更新日期:2022-04-15 10:10
本公开涉及用于缓解前端分支重引导的分支预取机制。描述了与用于缓解前端分支重引导的分支预取机制有关的方法和装置。在一实施例中,对缓存中的条目进行预解码以生成预解码的分支操作。该条目与冷分支操作相关联,其中该冷分支操作对应于在存储在指令缓存中之后第一次检测到的操作,并且其中该冷分支操作由于其被存储在缓存行中的如下位置而保持未解码:该位置在该缓存行中的分支操作的后续位置之前。响应于冷分支操作在指令缓存中的缓存行填充操作,在分支预取缓冲器(BPB)中存储预解码的分支操作。也公开并且要求保护了其他实施例。例。例。

【技术实现步骤摘要】
用于缓解前端分支重引导的分支预取机制


[0001]本公开总体涉及电子学的领域。更具体而言,一些实施例涉及用于缓解前端分支重引导(branch resteer)的分支预取(branch prefetch)机制的技术。

技术介绍

[0002]为了提高性能,一些处理器利用推测性处理(有时也被称为无序(Out

Of

Order,OOO)处理器),这种处理尝试预测正在执行的程序的未来进程,以例如通过采用并行性来加快其执行。预测最终可能正确,也可能不正确。当预测正确时,程序的执行时间可能比采用非推测性处理时更短。然而,当预测不正确时,处理器必须重引导分支操作,并且将其状态恢复到误预测之前的点,这就造成了效率低下。
[0003]此外,尽管最近在微处理器设计方面取得了进展,但即使在多核心时代,实现很高的单线程性能仍然是一个重大挑战。对于新兴的数据中心和云应用,大量的处理器周期(约30%)在处理器的前端引擎中损失,其中很大一部分(约35%)可能是由分支重引导引起的。

技术实现思路

[0004]根据本公开的一个方面,提供了一种装置,包括:预解码电路,用于对缓存中的条目进行预解码以生成预解码的分支操作,所述条目与冷分支操作相关联,其中所述冷分支操作对应于在存储在指令缓存中之后第一次检测到的操作,并且其中所述冷分支操作由于其被存储在缓存行中的如下位置而保持未解码:该位置在所述缓存行中的分支操作的后续位置之前;以及分支预取缓冲器(BPB),用于响应于所述冷分支操作在指令缓存中的缓存行填充操作而存储所述预解码的分支操作。
[0005]根据本公开的另一方面,提供了一种系统,包括:存储器,用于存储一个或多个指令;具有一个或多个核心的处理器,用于执行所述一个或多个指令;预解码电路,用于对缓存中的条目进行预解码以生成预解码的分支操作,所述条目与冷分支操作相关联,其中所述冷分支操作对应于在存储在指令缓存中之后第一次检测到的操作,并且其中所述冷分支操作由于其被存储在缓存行中的如下位置而保持未解码:该位置在该缓存行中的分支操作的后续位置之前;以及分支预取缓冲器(BPB),用于响应于所述冷分支操作在指令缓存中的缓存行填充操作而存储所述预解码的分支操作。
附图说明
[0006]为了使得本文记载的这些实施例的特征可被详细理解,通过参考实施例可进行对实施例的更具体描述,实施例中的一些在附图中图示。然而,要注意,附图只是图示了典型实施例并且因此不应被认为是限制其范围。
[0007]图1根据一实施例图示了缓存行中的分支操作的阴影CALL(Shadow Call)。
[0008]图2根据一实施例图示了检测分支预取缓冲器的使用的微基准的样本伪代码。
[0009]图3根据一实施例图示了可被用于实现具有分支预取缓冲器的分支预测单元的处
理器的各种组件的框图。
[0010]图4根据一实施例图示了两阶段预解码算法的样本数据。
[0011]图5根据一实施例图示了反向字节标记算法的样本伪代码。
[0012]图6和图7根据一些实施例图示了用于比较不同的分支预取缓冲器分配/大小和替换策略的数据样本图。
[0013]图8A是根据实施例图示出示范性有序管线和示范性寄存器重命名、无序发出/执行管线两者的框图。
[0014]图8B是根据实施例图示出要被包括在处理器中的有序体系结构核心的示范性实施例和示范性寄存器重命名、无序发出/执行体系结构核心两者的框图。
[0015]图9图示了根据一实施例的SOC(片上系统)封装的框图。
[0016]图10是根据一实施例的处理系统的框图。
[0017]图11是根据一些实施例的具有一个或多个处理器核心的处理器的实施例的框图。
[0018]图12是根据一实施例的图形处理器的框图。
具体实施方式
[0019]在以下描述中,阐述了许多具体细节以提供对各种实施例的透彻理解。然而,没有这些具体细节也可以实现各种实施例。在其他情况下,没有详细描述公知的方法、过程、组件和电路,以免模糊特定实施例。另外,可使用各种手段来执行实施例的各种方面,例如集成半导体电路(“硬件”),被组织成一个或多个程序的计算机可读指令(“软件”),或者硬件和软件的某种组合。对于本公开而言,提及“逻辑”应指硬件、软件、固件或者其某种组合。
[0020]如上所述,即使在多核心时代,实现很高的单线程性能仍然是一个重大挑战。对于新兴的数据中心和云应用,大量的处理器周期(约30%)在处理器的前端引擎中损失,其中很大一部分(约35%)可能是由分支重引导引起的。正如本文所论述的,“分支重引导”一般是指将管线重新导向正确的路径,这可能是由于分支误预测引起的。更具体而言,分支预测器根据其预测来指导处理器管线走向某个控制流路径。在管线的后期,存在检查以确保预测是正确的。如果预测不正确,则进行检查之处的上游管线需要被冲刷,然后被重引导到正确的控制流路径。对于上述的新兴应用,主要的挑战在于其大的代码足迹和相关联的大量跳转目标,这些大量跳转目标很容易具有数百万个分支,远远超过当前的分支目标缓冲器(Branch Target Buffer,BTB)的大小,而BTB只能容纳几千个跳转目标。有可能增大BTB的大小,以及添加BTB的层次体系,并且从较高级别的BTB预取到较低级别的BTB。虽然可以增大BTB的大小/层次体系来扩展跳转目标,但更大的/扩展的BTB会产生其他效率低下问题,例如制造成本、增大足迹和/或与搜索更大的BTB相关联的延迟。
[0021]为此,一些实施例提供了用于缓解前端分支重引导的分支预取机制的技术。更具体而言,一个或多个实施例为具有预解码比特的处理器提供了一种后向解码逻辑/机制。另一实施例利用预解码比特来对字节进行预解码,以便找到插入到BTB中的分支,从而避免不必要的重引导。一般而言,分支预测器单元/逻辑位于处理器管线的前端,并且只有指令地址要处理(即,它还没有指令,因为那些指令只有在指令字节被取得和解码之后才会被下游知道)。分支目标缓冲器(或者说“BTB”)是一个缓存,当用指令地址来查询该缓存时,它将返回该地址是否有与之相关联的分支。此外,它还可返回分支预测器单元进行其工作所需要
的关于该分支的其他信息,例如分支类型(例如,CALL、RETURN或者JUMP)和预测将采取的该分支的目标。BTB可被添加到处理器的前端(例如,图8B的前端830)以协助分支预测操作。
[0022]此外,有相当一部分的分支重引导可能是由于“冷”CALL和RETURN引起的,即,第一次看到的CALL或RETURN,并且这种CALL或RETURN命中了指令缓存(Instruction Cache,IC),但还没有被解码,因为它们位于在缓存行中间跳转的分支的阴影中。为此,在一实施例中,这些“冷”分支在指令缓存填充发生之前被预解码,然后预解码的分支操作被插入到分支预取缓冲器(branch prefetch buffer,BPB)中。在一些实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种装置,包括:预解码电路,用于对缓存中的条目进行预解码以生成预解码的分支操作,所述条目与冷分支操作相关联,其中所述冷分支操作对应于在存储在指令缓存中之后第一次检测到的操作,并且其中所述冷分支操作由于其被存储在缓存行中的如下位置而保持未解码:该位置在所述缓存行中的分支操作的后续位置之前;以及分支预取缓冲器(BPB),用于响应于所述冷分支操作在指令缓存中的缓存行填充操作而存储所述预解码的分支操作。2.如权利要求1所述的装置,其中所述预解码电路从紧挨在入口地址的第一字节之前的字节开始对所述缓存的一个或多个条目进行预解码。3.如权利要求2所述的装置,其中所述预解码电路在两个阶段中对所述缓存的一个或多个条目进行预解码。4.如权利要求3所述的装置,其中所述两个阶段包括:第一阶段,用于计算与所述冷分支操作相对应的指令的长度;以及第二阶段,用于从紧挨在所述入口地址的第一字节之前的字节开始按相反顺序标记与所述冷分支操作相对应的所述指令的第一字节。5.如权利要求1所述的装置,其中所述BPB耦合到分支目标缓冲器(BTB),其中所述BTB存储与被采取的一个或多个分支及其目标地址相对应的信息。6.如权利要求5所述的装置,其中在指向所述BTB的请求发生未命中时,所述请求将被所述BPB来服务。7.如权利要求5所述的装置,其中在指向所述BTB的请求命中时,相应的BPB条目将被存储在所述BTB中。8.如权利要求1所述的装置,其中所述BPB和分支目标缓冲器(BTB)响应于查找请求而被并行查找。9.如权利要求1所述的装置,其中所述缓存包括中间级缓存(MLC)或第2级(L2)缓存。10.如权利要求1所述的装置,其中所述预解码的分支操作将被存储在所述指令缓存中。11.如权利要求1所述的装置,其中所述缓存行被存储在所述缓...

【专利技术属性】
技术研发人员:吉尔斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1