买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:公开了一种涉及确定全局分支历史以进行分支预测的方法和处理装置。所述方法包括:将分支签名的第一位移位到当前全局分支历史中;以及在所述分支签名的第二位和所述当前全局分支历史的经移位的位上执行逐位异或XOR函数。通过这种方式,更新所述当前全局分支历史。所述处理装置使用以下项来实施所述方法:移位逻辑,其被配置成存储表示当前全局分支历史的位并将所述位移位;寄存器,其被配置成存储所述当前全局分支历史;判定电路,其被配置成确定分支是否被采用;以及XOR门。
主权项:1.一种确定全局分支历史以进行分支预测的方法,所述方法包括:将分支签名的第一位移位到存储当前全局分支历史的寄存器的最低位中,移位到所述当前全局分支历史中的所述分支签名的所述第一位未被所述当前全局分支历史修改;在所述分支签名的第二位和所述当前全局分支历史的经移位的位之间执行逐位异或函数以生成第三位以存储到存储所述当前全局分支历史的所述寄存器中,从而更新所述当前全局分支历史,其中所述第二位不同于所述第一位并且比所述第一位的次序高,并且其中所述第三位存储在所述寄存器的位位置处,所述位位置比所述分支签名的未被修改的所述第一位被移位到的所述寄存器的所述最低位的次序高;对所述当前全局分支历史的不同位组合执行逐位异或函数以获得第四位,并将所述第四位存储在所述寄存器的比存储所述第三位的位位置更高次序的位位置处,其中执行所述异或函数的所述不同位组合包括所述当前全局分支历史的第一组位和所述当前全局分支历史的第二组更高次序的位;和在比用于存储到所述全局分支历史寄存器中的所述第三位次序高并且比用于存储到所述全局分支历史寄存器中的所述第四位次序低的位置处,将比所述当前全局分支历史的所述最低位次序高的所述当前全局分支历史的位存储到所述全局分支历史寄存器中,所述当前全局分支历史的位比所述全局分支历史的最低位次序高并且比从中获得所述第四位的所述不同位组合的每个位次序低。
全文数据:用于确定分支历史以进行分支预测的方法和装置背景技术在计算机架构中,分支预测器是在确实知道诸如程序或代码中的如果-则-否则结构等分支将走哪条路之前尝试对此进行猜测的数字电路。分支预测器实施分支预测的方法。分支预测改善指令流水线的流动并且在很多微处理器架构中在实现高效性能方面起作用。分支预测是基于分支历史,也就是,采用和未采用给定分支的频率的记录。在全局分支历史中,多个分支的分支历史存储在一组位中。图2示出用于更新全局分支历史的传统类型的处理装置和方法。电路确定是否已发现分支步骤225。当未发现分支时,当前全局历史不变步骤220。当发现分支时,将当前全局分支历史移位一位步骤215;示为左移并且丢掉最旧历史位位3。当前全局分支历史中的最右位被指示是否采用所述分支的位替代步骤230,例如,0是未采用且1是采用。通过这种方式,更新当前全局分支历史。当前分支历史用在分支预测器中以预测分支在将来是否会被采用。附图说明从结合附图通过示例给出的以下描述中可以获得更详细的理解,在附图中:图1是可以实施一个或多个公开方面的示例装置的框图;图2示出被配置成更新全局分支历史的处理装置;图3示出被配置成更新全局分支历史的另一处理装置;图4示出被配置成更新全局分支历史的另一处理装置;图5示出用于确定和更新全局分支历史的方法;并且图6示出用于确定和更新全局分支历史的另一方法。具体实施方式与诸如先前描述的传统全局分支历史方法和装置相对比,所公开的方法和装置改进了定时并且在发现新分支时避免丢失先前的分支预测器训练。所公开的方法和装置还提供能够在不同代码位置处区分相同采用未采用TNT模式的益处。如果所执行的计算机代码含有发现的NT分支,则所公开的方法和装置能够跟踪比传统全局历史更新方法和装置更长的序列。所述方法包括:将分支签名的第一位移位到当前全局分支历史中;以及在所述分支签名的第二位和所述当前全局分支历史的经移位的位上执行逐位异或XOR函数。所述第二位与所述第一位不同。所述分支签名包括识别其分支历史被更新的特定分支的位。所述移位包括丢弃所述当前全局分支历史中的最旧位中的一个或多个。在采用由所述分支签名识别的分支时实施所述移位和所述逐位XOR函数的所述执行。在不采用由所述分支签名识别的分支时不改变所述当前全局分支历史。在实现方式中,所述方法还包括:将所述当前全局分支历史中的一个或多个最新位移位第一数量的位置;将所述当前全局分支历史中的一个或多个最旧位移位第二数量的位置,所述第二数量的位置不同于所述第一数量的位置;以及在移位所述第二数量的位置的位与所述当前全局分支历史中的较新位之间执行逐位XOR函数。在采用由所述分支签名识别的分支时执行所述方法的这些部分,并且在不采用由所述分支签名识别的分支时不改变所述当前全局分支历史。例如,所述第二数量的位置少于所述第一数量的位置例如,所述第一数量的位置是三并且所述第二数量的位置是一。在实现方式中,实施所述方法,使得经更新的当前全局分支历史被包括在两级自适应预测器的第一级中。在实现方式中,被配置成确定和更新全局分支历史以进行分支预测的处理装置包括:移位逻辑,其被配置成将表示当前全局分支历史的位移位;寄存器,其被配置成存储所述当前全局分支历史;判定电路,其被配置成确定分支是否被采用;以及第一多个异或XOR门。在实现方式中,所述对全局分支历史的确定和更新包括:所述移位逻辑将表示当前全局分支历史的位移位并将经移位的位中的一个或多个存储在所述寄存器中;所述寄存器接收并存储分支签名的第一位;所述第一多个XOR门在所述分支签名的第二位和所述当前全局分支历史的经移位的位上执行逐位XOR函数;以及将所述逐位XOR函数的结果存储在所述寄存器中。在实现方式中,所述处理装置被配置成在所述判定电路确定由所述分支签名识别的分支已被采用时确定和更新全局分支历史。在实现方式中,所述处理装置被配置成在所述判定电路确定由所述分支签名识别的分支未被采用时不改变所述当前全局分支历史。在实现方式中,所述处理装置还被配置成执行对分支历史信息和分支签名信息的压缩。在这个实现方式中,所述处理装置被配置成将所述当前全局分支历史中的最新位中的一个或多个移位第一数量的位置,并且将所述当前全局分支历史中的最旧位中的一个或多个移位第二数量的位置,所述第二数量的位置不同于所述第一数量的位置。所述处理装置还包括第二多个XOR门,所述第二多个XOR门被配置成在移位所述第二数量的位置的位与所述当前全局分支历史中的较新位之间执行逐位XOR函数。所述处理装置的这个实现方式也被配置成在所述判定电路确定由所述分支签名识别的分支已被采用时执行对分支历史信息和分支签名信息的压缩。所述处理装置在所述判定电路确定由所述分支签名识别的分支未被采用时不改变所述当前全局分支历史。在被配置成执行压缩的所述处理装置的特定实现方式中,所述第二数量的位置可以少于所述第一数量的位置。所述第一数量的位置可以是三并且所述第二数量的位置可以是一。另一特定实现方式可以包括多级压缩。作为一个示例,所述当前全局分支历史中的较新位可以移位三个位置、较旧位移位两个位置,并且更旧位移位一个位置。为了有效压缩,移位量往往随着所述位的历史年龄增加而减少。所述处理装置包括两级自适应预测器设备,所述两级自适应预测器设备被配置成在第一级中接收经更新的当前全局分支历史。图1是实施一个或多个公开的实施例的示例装置100的框图。装置100的示例包括计算机、游戏装置、手持装置、机顶盒、电视、手机或者平板计算机。装置100包括处理器102、存储器104、存储设备106、一个或多个输入装置108以及一个或多个输出装置110。可选地,装置100包括输入驱动器112和输出驱动器114。应理解,装置100可以包括图1中未示出的另外部件。处理器102包括中央处理单元CPU、图形处理单元GPU、位于相同裸片上的CPU和GPU或者一个或多个处理器核心,其中每个处理器核心可以是CPU或GPU。存储器104位于与处理器102相同的裸片上,或者存储器104与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如,随机存取存储器RAM、动态RAM或高速缓存。存储设备106包括固定或可移动存储设备,例如,硬盘驱动器、固态驱动器、光盘或闪存盘。输入装置108包括键盘、按键、触摸屏、触控板、检测器、麦克风、加速计、陀螺仪、生物特征扫描仪或者网络连接例如,用于发射和或接收无线IEEE802信号的无线局域网卡。输出装置110包括显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线或者网络连接例如,用于发射和或接收无线IEEE802信号的无线局域网卡。输入驱动器112与处理器102和输入装置108通信,并且准许处理器102从输入装置108接收输入。输出驱动器114与处理器102和输出装置110通信,并且准许处理器102将输出发送到输出装置110。应注意,输入驱动器112和输出驱动器114是可选的部件,并且如果输入驱动器112和输出驱动器114不存在,则装置100将以相同的方式操作。图3示出被配置成确定和更新全局分支历史以进行分支预测的电子处理装置300的示例实现方式。电子处理装置300的诸如确切位数等特性不应被视作限制。当前全局分支历史存储为寄存器310中的位序列。在图3中,将当前全局分支历史示为具有八个位,但这个数量不应被视作限制。当发现分支时,由判定电路325作出所述分支是否已被采用的确定。如果所述分支未被采用,则不改变当前全局历史320并且重新存储在寄存器310中。如果所述分支已被采用,则更新当前全局分支历史,如在以下示例中,这不应被视作限制。所述更新开始于移位逻辑315将表示当前全局分支历史的位移位,并且将经移位的位存储在寄存器310中。如图3所示,例如,位0至5向左移位两个位置。在这个过程中,丢弃这个分支历史的较旧位6和7。经移位的位诸如,位2至5中的一个或多个直接存储在寄存器310中。寄存器310接收并存储分支签名的第一位S[1]和S[0],所述签名识别其分支历史被更新的特定分支。作为非限制性示例,分支签名可以像线性地址的最低有效位则简单,或者它可以复杂到第一线性地址部分XOR第二线性地址部分XOR表示分支类型的位XOR表示分支的其他属性的位。如果例如需要4位分支签名,则线性地址LINAD的12个最低有效位可以与表示分支类型的四个位进行XOR,如下:LINAD[11:8]XORLINAD[7:4]XORLINAD[3:0]XOR类型[3:0]。对当前全局分支历史的更新继续到多个XOR门330在分支签名的第二位诸如,S[3]和S[2]和当前全局分支历史的经移位的位诸如,位0和1上执行逐位XOR函数。由这样执行逐位XOR函数产生的位存储在寄存器310中,由此更新存储在寄存器310中的当前全局分支历史。将存储在寄存器310中的全局分支历史传送到分支预测器335,所述分支预测器是使用当前分支历史来预测分支将被采用的可能性的电子电路。在实现方式中,分支预测器335是两级自适应预测器设备,所述两级自适应预测器设备被配置成在它的第一级中接收经更新的当前全局分支历史。替代实现方式可以包括其他类型的分支预测器。图4示出被配置成确定和更新全局分支历史以进行分支预测的电子处理装置400的替代示例实现方式。电子处理装置400的诸如确切位数等特性不应被视作限制。图4的实现方式包括通过可变移位和附加XOR函数对分支历史信息和分支签名信息的压缩。类似于图3的示例,当前全局分支历史存储为寄存器410中的位序列。在图4中,将当前全局分支历史示为具有19个位,但这个数量不应被视作限制。当发现分支时,由判定电路425作出所述分支是否已被采用的确定。如果所述分支未被采用,则不改变当前全局历史420并且重新存储在寄存器410中。如果所述分支已被采用,则更新当前全局分支历史,如在以下示例中,这不应被视作限制。在图4所示的实现方式中,所述更新开始于移位逻辑415将表示当前全局分支历史的位移位,并且将经移位的位存储在寄存器410中。与图3相对比,然而,当前全局分支历史的最新位中的一个或多个被移位第一数量的位置,并且最旧位中的一个或多个被移位第二数量的位置,所述第一数量的位置与所述第二数量的位置不相等。具体地,所述第二数量的位置少于所述第一数量的位置。如图4所示,位0至7向左移位三个位置,而位10至16向左移位一个位置。经移位的位中的一个或多个直接存储到寄存器410中。在图4的示例中,这些位是3至7、15、16和17。在这个过程中,丢弃这个分支历史的最旧位18。类似于图3,寄存器410接收并存储分支签名的第一位S[2]、S[1]和S[0]。类似于图3,对当前全局分支历史的更新继续到第一多个XOR门430在分支签名的第二位在图4的示例中,S[5]、S[4]和S[3]和当前全局分支历史的经移位的位在图4的示例中,位0、1和2上执行逐位XOR函数。由这样执行逐位XOR函数产生的位存储在寄存器410中,作为经更新的当前分支历史的一部分。与图3相对比,图4的装置使用第二多个XOR门433来执行压缩。XOR门433被配置成在移位第二数量的位置的当前全局分支历史位与当前全局分支历史的较新位之间执行逐位XOR函数。由这样执行逐位XOR函数产生的位存储在寄存器410中,以完成对当前全局分支历史的更新。在图4的特定示例中,执行以下XOR函数:10XOR5、11XOR6、12XOR7、13XOR8以及14XOR9。在实现方式中,将存储在寄存器410中的全局分支历史传送到分支预测器435,所述分支预测器使用当前全局分支历史来预测分支将被采用的可能性。在实现方式中,分支预测器435是两级自适应预测器设备,所述两级自适应预测器设备被配置成在它的第一级中接收经更新的当前全局分支历史。替代实现方式可以包括其他类型的分支预测器。图5示出确定全局分支历史以进行分支预测的方法500。所示步骤的确切顺序不必被解释为限制。在代码的执行期间,遇到分支步骤510。作出是否采用这个分支的确定步骤515。当不采用所述分支时,不改变当前全局分支历史步骤520,并且所述方法返回到等待下一个遇到的分支步骤510。当采用所述分支时,更新当前全局分支历史。更新开始于将分支签名的第一位移位到当前全局分支历史中步骤525。所述移位包括丢弃所述当前全局分支历史中的最旧位中的一个或多个。在分支签名的第二位和当前全局分支历史的经移位的位上执行逐位XOR函数步骤530。现在更新了当前全局分支历史并存储在寄存器中,如上所述。所述方法返回到等待下一个遇到的分支步骤510。图6示出确定全局分支历史以进行分支预测的方法的另一实现方式600。所示步骤的确切顺序不必被解释为限制。除了图5所示的方法之外,图6所示的实现方式还包括通过可变移位和附加XOR函数对分支历史信息和分支签名信息的压缩。如在图5中,遇到分支步骤610并且作出这个分支是否已被采用的确定步骤615。如果所述分支未被采用,则如在图5中,不改变当前全局分支历史步骤620,并且所述方法返回到等待遇到下一个分支步骤610。当所述分支被采用时,将当前全局分支历史中的最新位中的一个或多个移位第一数量的位置步骤625。将分支签名的第一位移位到当前全局分支历史中步骤627。在分支签名的第二位和当前全局分支历史的移位第一数量的位置的位上执行独有的XOR函数步骤630。将当前全局分支历史中的最旧位中的一个或多个移位第二数量的位置,所述第二数量的位置不同于所述第一数量的位置步骤635。在特定实现方式中,所述第二数量的位置少于所述第一数量的位置。作为示例,所述第一数量的位置是三并且所述第二数量的位置是一。由于两次移位,丢弃当前全局分支历史中的最旧位中的一个或多个。在当前全局分支历史的移位第二数量的位置的位与当前全局分支历史中的较新位之间执行逐位XOR函数步骤640。当前全局分支历史的经移位的位中的一个或多个在没有进一步处理的情况下变成经更新的分支历史的位。现在更新了当前全局分支历史。在实现方式中,将经更新的全局分支历史存储在寄存器中,如上所述。所述方法返回到等待下一个遇到的分支步骤610。应理解,基于本文中的公开,很多变化是可能的。尽管上文在特定组合中描述了特征和元件,但每个特征或元件可以在没有其他特征和元件的情况下单独使用或者在有或没有其他特征和元件的各种组合中使用。所提供的方法在通用计算机、处理器或处理器核心中实施。合适的处理器包括,例如,通用处理器、专用处理器、传统处理器、数字信号处理器DSP、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路ASIC、现场可编程门阵列FPGA电路、任何其他类型的集成电路IC和或状态机。此类处理器可以通过使用处理硬件描述语言HDL指令和包括网表的其他中间数据的结果来配置制造过程进行制造此类指令能够存储在计算机可读介质上。这样处理的结果可以是掩模件,所述掩模件随后在半导体制造过程中用来制造实现实施例的方面的处理器。本文中提供的方法或流程在合并在非暂时性计算机可读存储介质中的计算机程序、软件或固件中实施,以便由通用计算机或处理器执行。非暂时性计算机可读存储介质的示例包括只读存储器ROM、随机存取存储器RAM、寄存器、高速缓冲存储器、半导体存储器装置、诸如内部硬盘和可移动盘的磁介质、磁光介质以及诸如CD-ROM光盘和数字通用盘DVD的光学介质。
权利要求:1.一种确定全局分支历史以进行分支预测的方法,所述方法包括:将分支签名的第一位移位到当前全局分支历史中;以及在所述分支签名的第二位和所述当前全局分支历史的经移位的位上执行逐位异或XOR函数以更新所述当前全局分支历史,其中所述第二位不同于所述第一位。2.如权利要求1所述的方法,其中所述分支签名包括识别其分支历史被更新的特定分支的位。3.如权利要求1所述的方法,其还包括丢弃所述当前全局分支历史中的一个或多个最旧位。4.如权利要求1所述的方法,其中在采用由所述分支签名识别的分支时实施所述移位和所述逐位XOR函数的所述执行。5.如权利要求1所述的方法,其中在不采用由所述分支签名识别的分支时不改变所述当前全局分支历史。6.如权利要求1所述的方法,其还包括对分支历史信息和分支签名信息的压缩,所述压缩包括:将所述当前全局分支历史中的一个或多个最新位移位第一数量的位置;将所述当前全局分支历史中的一个或多个最旧位移位第二数量的位置,所述第二数量的位置不同于所述第一数量的位置;以及在移位所述第二数量的位置的位与所述当前全局分支历史中的较新位之间执行逐位XOR函数。7.如权利要求6所述的方法,在采用由所述分支签名识别的分支时执行所述方法。8.如权利要求6所述的方法,其中在不采用由所述分支签名识别的分支时不改变所述当前全局分支历史。9.如权利要求6所述的方法,其中所述第二数量的位置少于所述第一数量的位置。10.如权利要求1所述的方法,其中将经更新的当前全局分支历史包括在两级自适应预测器的第一级中。11.一种处理装置,其被配置成确定和更新全局分支历史以进行分支预测,所述处理装置包括:移位逻辑,其被配置成将表示当前全局分支历史的位移位;寄存器,其被配置成存储所述当前全局分支历史;判定电路,其被配置成确定分支是否被采用;以及第一多个异或XOR门;其中所述对全局分支历史的确定和更新包括:所述移位逻辑将表示当前全局分支历史的位移位并且将经移位的位中的一个或多个存储在所述寄存器中;所述寄存器接收并存储分支签名的第一位,所述分支签名包括识别其分支历史被更新的特定分支的位;所述第一多个XOR门在所述分支签名的第二位和所述当前全局分支历史的经移位的位上执行逐位XOR函数,其中所述第二位不同于所述第一位;以及将所述逐位XOR函数的结果存储在所述寄存器中以更新所述当前全局分支历史。12.如权利要求11所述的处理装置,其还被配置成在所述判定电路确定由所述分支签名识别的分支已被采用时确定和更新全局分支历史以进行分支预测。13.如权利要求11所述的处理装置,其还被配置成在所述判定电路确定由所述分支签名识别的分支未被采用时不改变所述当前全局分支历史。14.如权利要求11所述的处理装置,其还被配置成执行对分支历史信息和分支签名信息的压缩,其中:所述移位逻辑被配置成将所述当前全局分支历史中的一个或多个最新位移位第一数量的位置;所述移位逻辑被配置成将所述当前全局分支历史中的一个或多个最旧位移位第二数量的位置,所述第二数量的位置不同于所述第一数量的位置;并且所述处理装置还包括第二多个XOR门,所述第二多个XOR门被配置成在移位所述第二数量的位置的位与所述当前全局分支历史中的较新位之间执行逐位XOR函数。15.如权利要求14所述的处理装置,其还被配置成在所述判定电路确定由所述分支签名识别的分支已被采用时执行对分支历史信息和分支签名信息的压缩。16.如权利要求14所述的处理装置,其还被配置成在所述判定电路确定由所述分支签名识别的分支未被采用时不改变所述当前全局分支历史。17.如权利要求14所述的处理装置,其中所述第二数量的位置少于所述第一数量的位置。18.如权利要求14所述的处理装置,其还包括两级自适应预测器设备,所述两级自适应预测器设备被配置成在第一级中接收经更新的当前全局分支历史。
百度查询: 超威半导体公司 用于确定分支历史以进行分支预测的方法和装置
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。