在多存储体条件分支预测器中用于更新事件的随机数产生制造技术

技术编号:14886852 阅读:65 留言:0更新日期:2017-03-25 20:32
一种分支预测器,拥有具有保留预测信息的条目的多个存储体,包含该分支预测器的处理器利用这些分支历史信息来给取指并执行的分支指令进行预测方向。发生在处理器的事件的计数被提供给硬件逻辑,其对该计数的预定比特执行与/或逻辑运算(如XOR)以产生随机值。响应于该处理器确定由分支预测器预测的分支指令的正确方向,该分支预测器使用由硬件逻辑产生的随机值做出关于更新各存储体的决定。分支转移历史的比特连同该计数也可以被用于产生该随机值。计数的事件可以是提交指令的数目或者是处理器或总线时钟周期数。

【技术实现步骤摘要】

本专利技术涉及处理器设计的领域,特别是涉及在多存储体条件分支预测器中用于更新事件的高效随机数产生的分支预测器。
技术介绍
在处理器设计的领域中对分支指令预测器的预测精度要求越来越高是公知的。随着处理器流水级、高速缓存存储器访问延迟和超标量体系结构中的指令发射宽度的增加,该需求更加强烈。分支指令预测器包括预测目标地址,和预测条件分支指令方向,即跳转(taken)或者不跳转。一种流行的条件分支指令方向预测器通常被称为TAGE预测器,这是对几何长度的标签预测器的缩写,这已在由AndreSeznec撰写的各种文献中描述。TAGE预测器包括用于存储分支预测信息的多个存储体(memorybank)。除开一个默认体仅通过程序计数器来索引外,预测器的每个体利用程序计数器和分支转移历史的长度的散列来索引。为了生成用于每个非默认体的索引,不同长度的分支转移历史被散列;即几何长度。此外,每个体的每个条目包括与程序计数器的标签比特进行比较的标签以确定是否在体中发生命中;因此叫做标签。如文献描述的,由Seznec设计的TAGE预测器已经非常成功地进入各种分支预测竞赛。各竞赛是基于分支预测器的软件仿真。TAGE文献描述了各个体按照概率方式更新的各个方法。
技术实现思路
根据本专利技术的一方面,提供一种分支预测器,该分支预测器具有保留预测信息的条目的多个存储体,该预测信息用于预测由包括该分支预测器的处理器取指执行的指令块所包含的分支指令的方向;发生在处理器的事件的计数;硬件逻辑,其对该计数的预定比特执行与/或逻辑运算以产生随机值;以及其中响应于该处理器确定由分支预测器预测的分支指令的正确方向,该分支预测器使用由硬件逻辑产生的随机值做出关于更新各存储体的决定。根据本专利技术的另一方面,提供一种用于操作分支预测器的方法,该分支预测器具有保留预测信息的条目的多个存储体,该预测信息用于预测由包括该分支预测器的处理器取指和执行的分支指令的方向,所述方法包括:维持发生在处理器的事件的计数;对该计数的预定比特执行与/或逻辑运算以产生随机值;以及响应于该处理器确定由分支预测器预测的分支指令的正确方向,使用产生的随机值做出关于更新各存储体的决定。附图说明图1是图示多存储体条件分支指令预测器的框图。图2是图1的存储体的条目的框图。图3是图示图1的分支预测器的操作的流程图。图4是图示根据替代实施例的多体条件分支指令预测器(multi-bankconditionalbranchinstructionpredictor)的框图。图5是图示根据替代实施例的多体条件分支指令预测器的框图。图6是图示分支预测器做出关于更新有用指示符的决定的操作的流程图。具体实施方式现在参考图1,示出了图示多体条件分支指令预测器100,或分支预测器100的框图。分支预测器100被包含在处理器中,用于预测处理器从高速缓存取出的指令字节块中可能的条件指令的分支跳转方向。在一个实施例中,分支预测器100是在常规TAGE预测器上的改进。然而,实施例不限于TAGE预测器,并且实施例可包括其他多体预测器,其利用随机数进行有关更新各体的决定。分支预测器100包括指令计数器102,程序计数器(PC)104,分支转移历史(BHP)106,随机数产生(RNG)逻辑108,散列逻辑,控制逻辑114,比较逻辑116,和多对多路选择器122和存储体124。图1展示了4对多路选择器122和体124,表示为多路选择器0122-0和体0124-0,多路选择器1122-1和体1124-1,多路选择器2122-2和体2124-2,和多路选择器N122-N和体N124-N。体124的数量可以在不同实施例中变化。每个多路选择器122接收两个相应的输入132和134,并产生相应的输出136。每个体124在它索引的输入上接收其相应的多路选择器122的输出136以及来自控制逻辑114的相应条目的更新138,并在其相应的输出139上提供所选择的条目(例如,图2的200)到比较和选择逻辑116。优选的是,PC104是处理器的架构程序计数器,或指令指针,所述处理器指定从指令高速缓存取出该指令字节的块的地址。RNG逻辑108接收指令计数器102和分支转移历史106并在其一个或两个的选择比特上执行一个或多个与/或逻辑运算以生成提供给控制逻辑114的一个或多个随机数148。控制逻辑114使用随机数148进行有关更新存储体124的决定,如本文中更详细描述的。RNG逻辑108包含组合逻辑,其执行在指令计数器102和分支转移历史106的一个或两个的选择比特上的与/或逻辑运算。与/或逻辑运算的示例包括,但不限于:实体的预定比特的选择;包括异或(XOR)、NAND、AND、OR、NOT、循环、移位平移的布尔逻辑运算;和包括加、减、乘、除、取模的算术运算。指令计数器102是计数指令事件的计数器。优选的,指令计数器102每个时钟周期按由处理器提交的架构指令的数量递增。可替代地,指令计数器102每个时钟周期按由处理器提交的微指令的数量递增。此外,下面对应图4和图5中的替代实施例进行描述,其中与指令事件不同的事件的计数的比特被提供给RNG逻辑108用于产生随机数148。指令计数器102比特在图1中表示为IC[x:y],其中[x:y]表示指令计数器102的比特的范围。在一个实施例中,RNG逻辑108通过对比特IC[15:8]和比特IC[7:0]执行布尔异或(XOR)运算以产生8比特结果(如图1的RANDOM1所示)来产生随机数148。分支转移历史106,按照其他术语也称为如全局历史寄存器(GHR),是N比特移位寄存器。当处理器看到条件分支指令,处理器向移位寄存器移入所述条件分支指令的方向,即,跳转或不跳转,其在一个实施例中分别对应于二进制1或0。因此,分支转移历史106跟踪处理器所见的最后N个条件分支的方向历史。在一个实施例中,在指令提交时看到条件分支指令;替换地,如果处理器预测条件分支指令存在于从指令高速缓存取出的指令字节的块中并且其处于在当前PC104值或之后(但是不在其他任何预测跳转的条件分支之后)值的块的位置,则看到条件分支指令。在一个实施例中,N大约是100比特。在图1分支转移历史106比特表示为BHP[x:y],其中[x:y]表示分支转移历史106的比特的范围。在一个实施例中,RNG逻辑108通过对比特IC[15:8]和比特IC[7:0]以及比特BHP[msb:msb-7]执行布尔异或(XOR)运算以产生8比特结果(如图1的RANDOM2所示)来产生随机数148,其中msb表示分支转移历史106的最高有效位。虽然实施例已描述在其中由RNG逻辑108产生的随机数148是8比特,可以设想其他实施例,其中随机数148的大小是不同的,并且使用指令计数器的102和/或分支转移历史106的不同比特。例如,在一个实施例中,随机数148是10比特,例如,RANDOM1=IC[19:10]^IC[9:0]和RANDOM2=IC[19:10]^IC[9:0]^BHP[MSB:MSB-9]。还应该理解的是,除了这里描述的实施例外,指令计数器102和/或分支转移历史106的其它比特可以使用,例如,RANDOM1=IC[22:13]^IC[9:0]和RAND本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201611013466.html" title="在多存储体条件分支预测器中用于更新事件的随机数产生原文来自X技术">在多存储体条件分支预测器中用于更新事件的随机数产生</a>

【技术保护点】
一种分支预测器,包括:具有保留预测信息的条目的多个存储体,该预测信息用于预测由包括该分支预测器的处理器取指和执行的指令块所包含的分支指令的方向;发生在处理器的事件的计数;硬件逻辑,其对该计数的预定比特执行与/或逻辑运算以产生随机值;以及其中响应于该处理器确定由分支预测器预测的分支指令的正确方向,该分支预测器使用由硬件逻辑产生的随机值做出关于更新各存储体的决定。

【技术特征摘要】
1.一种分支预测器,包括:具有保留预测信息的条目的多个存储体,该预测信息用于预测由包括该分支预测器的处理器取指和执行的指令块所包含的分支指令的方向;发生在处理器的事件的计数;硬件逻辑,其对该计数的预定比特执行与/或逻辑运算以产生随机值;以及其中响应于该处理器确定由分支预测器预测的分支指令的正确方向,该分支预测器使用由硬件逻辑产生的随机值做出关于更新各存储体的决定。2.如权利要求1所述的分支预测器,进一步包括:分支转移历史,其指定该处理器遇到的分支指令的方向的历史;以及其中该硬件逻辑除了对该计数的预定比特执行与/或逻辑运算外,还对分支转移历史的预定比特执行与/或逻辑运算以产生该随机值。3.如权利要求1所述的分支预测器,进一步包括:其中与/或逻辑运算包括该计数的第一部分比特和该计数器的第二部分比特的布尔异或(XOR)运算。4.如权利要求1所述的分支预测器,进一步包括:其中计数的事件包括通过处理器提交的指令条数。5.如权利要求1所述的分支预测器,进一步包括:其中计数的事件包括两倍于处理器时钟周期的外部总线时钟周期的数目。6.如权利要求1所述的分支预测器,进一步包括:其中计数的事件包括处理器的时钟的周期。7.如权利要求1所述的分支预测器,进一步包括:其中该随机值来自可能的值的集合;其中当由分支预测器预测的方向与正确方向匹配时,如果该随机值是可能的值的集合的预定子集之一则分支预测器在多个存储体的一个或多个中分配新的条目,否则不在多个存储体的一个或多个中分配新的条目。8.如权利要求1所述的分支预测器,进一步包括:其中该随机值来自可能的值的集合;其中当由分支预测器预测的方向不与正确方向匹配时,如果该随机值是可能的值的集合的预定子集之一则分支预测器在多个存储体的多于一个中分配新的条目,否则在多个存储体的一个中分配新的条目。9.如权利要求1所述的分支预测器,进一步包括:其中该随机值来自可能的值的集合;其中多个存储体的每个体接收使用不同长度的分支转移历史计算的索引,并且多个存储体的每个体具有一编号,并且体编号从最短长度向最长长度顺序增加;以及其中多个存储体中的每个条目包括一指示符,其指示该条目在预测分支指令的方向中趋于有用;其中当响应于处理器确定其方向由具有体编号X的多个存储体的第一体预测的分支指令的正确方向在多个体中分配条目时,如果该随机值是可能的值的集合的预定子集之一则分支预测器开始搜索要在编号X+1的体分配的非有用条目,否则开始搜索要在编号X+2的体分配的非有用条目。10.如权利要求1所述的分支预测器,进一步包括:其中多个存储体中的每个条目包括一指示符,其指示该条目在预测分支指令的方向中趋于有用;计数器,按照指示符指示其条目趋于有用的体的数量递增并且按照指示符指示其条目不趋于有用的体的数量递减;以及其中当计数器具有大于或等于随机值的值时,该分支预测器概率递减该指示符。11.一种用于操作分支预测器的方法,该分支预测器具有保留预测信息的条目的多个存储体,该预测信息用于预测由包括该分支预测器的处理器取指和执行的分支指令的方向,所述方法包括:维持发生在处理器的事件的计数;对该计数的预定比特执行与/或逻辑运算以产生随机值;以及响应于该...

【专利技术属性】
技术研发人员:王小玲陈国华杨梦晨
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海;31

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

1