多表分支目标缓冲器制造技术

技术编号:27777589 阅读:67 留言:0更新日期:2021-03-23 13:24
一种处理器[120],包括用于分支预测的两个或更多个分支目标缓冲器(BTB)表[301,302],每个BTB表存储不同目标大小或宽度的条目或存储不同分支类型的条目。每个BTB条目包括至少标签和目标地址。对于仅需要几个目标地址位的某些分支类型,相应BTB表较窄,从而允许按分支指令类型将所述处理器中的更多BTB条目分离到相应BTB表中。增加数量的可用BTB条目存储在处理器中相同或更少的空间中,从而提高指令处理速度。可定义不存储任何目标地址并依靠解码单元来提供所述目标地址的BTB表。

【技术实现步骤摘要】
【国外来华专利技术】多表分支目标缓冲器
技术介绍
处理器中的指令流水线通过在多个流水线级处理指令来提高指令执行吞吐量,在多个流水线级中可并行执行指令流的不同指令。此类流水线通常包括单独单元,所述单独单元用于对指令进行提取、解码、映射和执行然后将结果写入另一单元(诸如寄存器)。流水线的指令提取单元将指令流提供给处理器流水线的下一级。指令提取单元通常使用指令高速缓存,以便保持连续地给流水线的其余部分供应指令。如果处理器一直等到分支在流水线中的执行级中得到解析才在指令提取级中提取下一条指令,则指令流中的分支指令可能会导致流水线停顿。分支预测器可尝试预测是否将采取条件分支。在一些实现方式中,在通过解码和执行分支指令本身来计算分支指令之前,分支预测器使用分支目标预测来预测所采取条件或无条件分支的目标。分支目标可基于与所计算地址的偏移量或通过寄存器的间接引用。常规上,分支目标缓冲器(BTB)是处理器中的存储包括所预测分支目标的分支信息的单个小存储器高速缓存。预测涉及将指令地址与已存储在BTB中的先前执行的指令地址进行比较。预测通常节省处理时间,因为成功的预测允许处理器跳过用于获取目标地址的步骤的执行。处理器通过在BTB中查找下一执行步骤的地址来节省时间。因此,BTB生成目标地址命中的频率直接影响处理器可执行指令的速度。通常,执行速度与BTB可存储的条目数量直接相关。附图说明通过参看附图,可更好地理解本公开,并且本公开的众多特征和优点对本领域技术人员来说是显而易见的。在不同附图中使用相同的附图标记来指示类似或相同项。图1是根据一些实施方案的指令流水线体系结构的框图。图2是根据一些实施方案的处理系统的框图。图3是根据一些实施方案的具有基于目标大小的多个分支目标缓冲器(BTB)表的处理器的框图。图4是根据一些实施方案的具有基于分支类型的多个BTB表的处理器的框图。图5是根据一些实施方案的具有处于不同存储器级别中的多个BTB表的处理器的框图。图6是根据一些实施方案的BTB表的BTB条目的框图。图7是根据一些实施方案的BTB表的BTB条目的框图。图8是根据一些实施方案的BTB表的BTB条目的框图。图9是示出根据一些实施方案的用于按目标地址大小将分支目标地址存储到多个BTB表中的一个中的方法的流程图。图10是示出根据一些实施方案的用于按分支类型将分支目标地址存储到多个BTB表中的一个中的方法的流程图。具体实施方式在处理器中使用分支目标缓冲器(BTB)或BTB表来存储分支信息显著提高处理器速度。常规上,增加BTB中条目数量的唯一方式是增加缓冲器的大小。然而,处理器内的存储元件数量存在限制,包括对BTB的容量的限制,因为增加一些组件(诸如BTB)的本地存储会以处理器中其他组件的速度和物理空间为代价。此外,在设计处理器的体系结构时,需要权衡取舍并考虑各因素。例如,BTB的一些改变实际上在将处理器投入操作时导致处理器更慢。在其他情况下,更大的BTB导致处理器操作期间总体功耗更高,这是不期望的。常规BTB的典型大小是1024个条目,其中每个条目具有例如20个位用于目标地址。然而,并非每个BTB条目都需要使用相同数量的位来在其中保存地址。例如,对于某些地址,分支预测器可能仅需要20个可用位中的5个至10个位,但对于其他地址则可能需要全部20个位,因为目标地址的最高有效位的一部分可在分支信息中编码为与预测地址相比不变。为了增加BTB的容量和实用性,并且使BTB在处理器内的占用面积保持大致相同,在至少一个实施方案中,将BTB分成两个或更多个缓冲器或表。根据某些实施方案,第一缓冲器被设定大小并指定用于短存储器地址,诸如具有6个、8个或其他数量的位的那些地址。第二缓冲器被设定大小并指定用于较长存储器地址,诸如具有14个、16个、18个或20个位的那些地址。一些实现方式利用第三缓冲器,所述第三缓冲器被设定大小并指定用于多种存储器地址长度,诸如具有6个、8个、10个、12个、14个、16个、18个或20个位的那些地址。每个BTB条目还包括标签字段,并且在一些实施方案中,还包括放置到BTB条目中一个或多个单独字段中的其他信息。根据其他实施方案,处理器设计者和体系结构师基于一种或多种指令分支类型来创建并指定多个BTB表,并因此针对分支目标的相应类型创建BTB表。每个BTB条目具有与发现由BTB条目跟踪的分支的成本相关的值。无条件分支可在处理器流水线中由处理器解码器在早期发现,而条件分支可能直到执行时间才被发现。处理器的一些实施方案在一个周期中递送两个或更多个分支预测,并因此递送两个分支目标地址。这多个分支存储在单个BTB条目中。为了考虑BTB条目的各种值,第一BTB例如被创建并指定用于无条件分支,并且第二BTB例如被创建并指定用于单个条件分支,并且第三BTB例如被创建用于记录多个分支的条目。第一BTB表、第二BTB表和第三BTB表中的每一者可具有不同目标地址大小并因此具有不同总体BTB表宽度,从而提供与其中单个BTB具有特定固定宽度和特定固定长度(条目数量)的先前设计相比减少BTB表在处理器中的总体占用面积的机制。将BTB条目划分或放置到两个或更多个BTB表中的这种益处允许处理器设计者相对于彼此或相对于单个常规BTB的常规长度来增大或减小BTB表中的一个或多个的长度。对于三BTB系统,第一BTB表、第二BTB表和第三BTB表可由每个BTB条目可指向的单独目标表进行补充,以便为无法适应相应第一BTB、第二BTB和第三BTB中的条目的大目标地址提供多个另外的地址位。在操作中,并且根据一些实现方式,针对每次BTB查找跨所有BTB缓冲器在处理器中执行BTB查找,从而提供与单个常规BTB缓冲器类似的性能。在某些实现方式中,BTB表包括在单个存储器类型内,或者,然而在其他实现方式中,BTB表跨相对于处理器核的多个存储器、多个存储器类型或多级存储器层次结构的多个存储器级别分布。为了描述的简单起见,在本文中参考各自对应于相对于处理器核或相对于处理器的存储器级别或布局的1级BTB、2级BTB等。每个BTB级别可包括单个BTB表或多个BTB表。在其他实现方式中,可针对单个处理器核在单个存储器高速缓存或存储器级别中构建一个或多个BTB表。在另一些其他实现方式中,BTB表跨处理器核或处理器操作共享。在特定实施方案中,多个BTB级别中的一个由多个处理器核共享,其中处理器核中的每一个包括其自己的一个或多个BTB表。可首先使用与特定核相关联的那些BTB表,并且可视需要将BTB条目逐出到共享BTB表中。处理器具有跨处理器核共享的一个或多个BTB表的益处可被搜索速度、总体处理器速度和总体处理器操作的降低抵消。因此,可向多核处理器的每个单独处理器核提供多个BTB表以获得快速实现方式。在操作中,首先将较低值BTB条目(诸如最近最少使用(LRU)的那些条目)从第一BTB或第一BTB级别逐出到另一BTB或BTB级别(诸如位于同一或另一存储器级别中的BTB)。从第二BTB到第三BTB的逐出也基于LRU进行。各种类型本文档来自技高网...

【技术保护点】
1.一种处理器[120],其包括:/n指令执行流水线[100];/n第一分支目标缓冲器(BTB)表[301],所述第一BTB表[301]具有第一数量的第一BTB表条目,每个第一BTB表条目包括第一标签[307]和第一目标地址[313],每个第一目标地址具有第一宽度;/n第二BTB表[302],所述第二BTB表[302]具有第二数量的第二BTB表条目,每个第二BTB表条目包括第二标签[308]和第二目标地址[314],每个第二目标地址具有不同于所述第一宽度的第二宽度;/n分支预测器[203],所述分支预测器[203]被配置为提供给定预测地址的所预测目标地址;并且/n其中所述处理器被配置为基于分支指令的分支特性将包括所述第一目标地址的分支描述符存储在所述第一BTB表的第一BTB表条目或所述第二BTB表的第二BTB表条目中。/n

【技术特征摘要】
【国外来华专利技术】20180709 US 16/030,0311.一种处理器[120],其包括:
指令执行流水线[100];
第一分支目标缓冲器(BTB)表[301],所述第一BTB表[301]具有第一数量的第一BTB表条目,每个第一BTB表条目包括第一标签[307]和第一目标地址[313],每个第一目标地址具有第一宽度;
第二BTB表[302],所述第二BTB表[302]具有第二数量的第二BTB表条目,每个第二BTB表条目包括第二标签[308]和第二目标地址[314],每个第二目标地址具有不同于所述第一宽度的第二宽度;
分支预测器[203],所述分支预测器[203]被配置为提供给定预测地址的所预测目标地址;并且
其中所述处理器被配置为基于分支指令的分支特性将包括所述第一目标地址的分支描述符存储在所述第一BTB表的第一BTB表条目或所述第二BTB表的第二BTB表条目中。


2.如权利要求1所述的处理器,其中所述分支特性是分支目标地址大小。


3.如权利要求1所述的处理器,其中所述分支特性是分支类型。


4.如权利要求3所述的处理器,其中所述第一BTB表条目被配置用于跳转分支指令、调用分支指令、返回分支指令和条件分支指令中的至少一者。


5.如权利要求1所述的处理器,其中所述分支特性是存储在所述BTB条目中的分支的数量。


6.如权利要求1所述的处理器,其中所述分支特性是所述BTB条目的线程标识符。


7.如权利要求1所述的处理器,其还包括:
第一存储器级别高速缓存和第二存储器级别高速缓存;并且
其中所述第一BTB表和所述第二BTB表包括在所述处理器的同一存储器级别高速缓存中。


8.如权利要求1所述的处理器,其中:
所述第一BTB表的所述第一BTB表条目是N路关联的以用于预测查找;并且
所述第二BTB表的所述第二BTB表条目是M路关联的以用于预测查找,其中M和N大于或等于一并且M不同于N。


9.如权利要求1所述的处理器,其中所述第一BTB表条目的所述第一数量不同于所述第二BTB表条目的所述第二数量。


10.如权利要求1所述的处理器,其中:
所述BTB表条目中的每一个包括最近使用状态位,所述最近使用状态位在组内将所述相应BTB条目标记为最近最多使用(MRU)状态和最近最少使用(LRU)状态中的一者;并且
所述处理器被配置为基于所述最近使用状态位的状态根据更换策略逐出组内的BTB条目。


11.一种方法,其包括:...

【专利技术属性】
技术研发人员:托马斯·克卢库尔安东尼·贾维斯
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国;US

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

1