分支目标缓存器分配的制作方法

文档序号:6594331阅读:229来源:国知局
专利名称:分支目标缓存器分配的制作方法
技术领域
本公开一般地涉及半导体处理器,并且更具体地,涉及具有分支目标缓存器的半 导体处理器。
背景技术
分支预测是用于避免或减少处理器空闲时间的常见技术。分支预测通常包括使 用分支目标缓存器(BTB),分支目标缓存器用于存储预期要重新使用的分支信息,以加速 分支指令的执行。BTB条目用于通过将与与分支指令关联的信息高速缓存在BTB条目内 来加速取回(fetching)位于分支目标目的地的分支目标指令的处理过程。在执行分支指 令时,分支指令的目的地(分支目标指令)被加载到处理器内的指令队列中。优选地,用 于所预测的分支的条目是在BTB中,从而使得可以快速地获得分支目标并将其加载到指令 队列中。对于获得并加载不在BTB中的分支目标,花费更长的时间,结果可能存在其中中 央处理单元(CPU)空闲的时钟周期。因此,期望加载BTB以使得每次存在分支时在BTB中 存在命中。这可能很难实现,但是期望具有较少的其中必须从BTB外部获得分支目标的次 数° 在 J. K. L. Lee 禾口 A. J. Smith 所著的"Branch prediction strategies and branch targetbuffer Design" (Computer, 17 (1), January 1984)中呈现了对分支预测问题及 BTB的替代物的概述。也可以将辅助分支预测器结构与BTB组合以便增强分支性能。由于BTB条目包含 分支目标信息以及可选的预测器,因此它们是大的,并且仅可以提供有限数目的条目。为 了辅助分支性能,可以结合BTB使用一个或更多个另外的分支预测器结构,以预测未确定 的条件分支的方向,并允许投机性的取回和预测的分支路径的可选的执行。通常使用的一 种这样的结构是分支历史表(BHT),其包含小预测器的集合。不存储分支目标信息,因此, 对于给定的面积,BHT的容量可以大于BTB。在BHT中,对于每一个分支,或者对于分支结 果的全局历史,存储分支先前的分支结果的历史,并搜索该表以获得分支预测。可以以高 的准确度与适中的成本来构建BHT预测器。注意,利用BHT,执行时间比分支在BTB中命中 的情况的大,但是相对于不使用分支预测器要减小。在S. McFarling所著的"Combining BranchPredictors “ (DEC WRL-TN-36)中可以找到BHT风格的良好的概述以及更加复杂的 结构。除所描述的BTB和BHT结构以外,另一分支加速技术是使用置信预测器。置信 预测器分配置信水平以评估分支预测正确的可能性。可以使用分支预测器置信机制来 基于规定的置信水平修改从分支预测器获得的预测,以便进一步增加分支预测的有效 性。置信预测器还可以用在混合分支预测方案中作为动态选择器。在混合分支预测方案 中,实现多个预测器,并对于每一个分支从预测器中的一个进行选择。该选择可以是基于 置信预测器的,或者基于尝试为每一个分支结果探察最佳预测器的置信逻辑的。可以在 E. Jacobsen,E. Rotenberg,禾口 J. E. Smith所著的〃 Assigning Confidence to Conditional BranchPredictions" (MICR0-29)中找到关于置信预测器和关于置信逻辑的另外的信息。
用于增加分支在BTB中的可能性技术一个技术是BTB具有大的存储容量。增加 BTB的大小增加了 BTB的成本,因此增加了具有该处理器的集成电路的面积。尽管面积增加 可能是小的,但是它可能是显著的,特别是对于低成本处理器。因此,需要这样一种技术,其 不要求BTB中的另外的存储,用于避免或减少其中缓存器加载以分支目标导致其中处理器 空闲的时钟周期的情况。


通过示例的方式示出本发明,并且本发明不受附图的限制,在附图中,相同的附图 标记表示类似的元件。图中的元件出于简化和清楚的目的而示出,并且并不必然按比例绘 制。图1是根据一实施例的具有分支目标缓存器(BTB)的处理器的框图;以及图2是在理解图1的处理器的中有用的表。
具体实施例方式在一个方面中,处理器具有分支目标缓存器(BTB),其用于存储预期被预测用于供 处理器使用的分支指令地址。BTB条目包含分支目标信息以及用于相应分支的预测器。在 为在BTB中未中的分支分配BTB中的条目中,当前在BTB中的分支被识别为最可能被取代 的一个,并且可以被称作取代候选者(!^placement candidate) 0与取代候选者关联的是 在未来被使用的可能性。处理器最近已执行了的但是不在BTB中的分支(其可以被称作当 前分支)被考虑用于取代该取代候选者,而不是自动地取代该取代候选者。将取代候选者 的存储的预测信息与当前分支的预测进行比较,并且基于该比较做出分配的决定。如果当 前分支被认为比取代候选者分支更可能被采用,则执行分配并且当前分支取代该取代候选 者。如果取代候选者分支被认为比当前分支更可能被采用,则处理器不执行分配并且取代 候选者被保持在BTB中。在就哪个更可能被使用进行确定中也可以使用预测的置信。这通 过参考附图以及下面的说明将最佳地理解。如在此所使用的,术语“总线”用于表示可以用来传送一个或更多个各种类型的信 息(诸如,数据、地址、控制、或状态)的多个信号或导体。如此处讨论的导体可以参考作为 单个导体、多个导体、单向导体、或双向导体来示出或描述。然而,不同实施例可以改变导体 的实现方式。例如,可以使用分立的单向导体而不是双向导体,反之亦然。此外,可以用串 行地或以时分复用方式传送多个信号的单个导体取代多个导体。同样地,承载多个信号的 单个导体可以被分开成承载这些信号的子集的多种不同导体。因此对于传送信号存在许多 选择。图1所示的是数据处理系统10,其包括处理器40以及总线22。数据处理系统10 可以另外地包括存储器和I/O单元,以及多种其它电路(未示出)。处理器40包括耦合到 总线22的处理逻辑12、BTB 14、BTB控制器16、逻辑18、分支历史表(BHT) 20。处理器40 可以是任何类型的处理器,诸如,例如微处理器、微控制器、数字信号处理器等。在一个实施 例中,处理器40可以称作处理器核。在另一实施例中,处理器40可以是多处理器数据处理 系统中的许多处理器中的一个。此外,处理器40可以是流水线式的处理器,尽管未如此示 出。处理器40可以包括另外的电路,但是为了清楚理解本发明的操作而并未示出。处理逻辑12具有执行单元。BHT 20具有分支历史寄存器沈和置信预测器观。处理逻辑12具有 从执行单元M耦合到BTB控制器16的输出。BTB 14具有耦合到逻辑18的输出。BHT 20 具有耦合到逻辑18的第一输出和从置信预测器观耦合到逻辑18的第二输出。逻辑18具 有耦合到BTB控制器16的输出。在该示例中,BTB可以具有相对小数目的可能的条目,诸 如32个。举例来说,那些条目中的一个在图1中被示出为具有两个部分目标地址30和预 测32。每一个条目还具有分支指令地址(未示出),其被用作用于确定命中的标签(tag) 信息。分支指令地址被用于通过与BTB 14中每一个条目的存储的标签信息进行比较来确 定在BTB 14中是否存在命中。此外,在该条目中可能存在未示出的另外的比特,诸如有效 比特。在该示例中,预测32具有两个比特以指示以下四种情形之一强不采用、弱不采用、 弱采用、以及强采用。通常对于目标地址识别这四种可能性。该两比特预测信息先前在现 有技术中已经使用以帮助预测分支是否将被采用或不采用以及相应地指引指令取回。当在 BTB 14中执行的分支指令命中时,匹配的条目将该分支的目标地址(目标地址30)以及基 于预测32的状态的关于该分支是否将被采用或不采用的预测提供到逻辑18。逻辑18将该 信息提供到处理逻辑12以允许处理逻辑12指引指令取回以及预测的分支路径的执行。在操作中,处理器40根据处理逻辑12中的指令缓存器执行指令。当分支指令(或 者简单地,分支)被解码并开始执行时,这时它成为所述当前分支。在每一分支的执行时, BHT 20基于该分支的结果更新分支历史,包括该分支选择的预测器,以及分支历史寄存器 26。分支历史寄存器沈存储最后N个分支的结果。在一个实施例中,分支历史寄存器沈被 实现为移位寄存器,并且每次执行分支指令时,如果该分支未被采用,则将0的值移位到该 寄存器中,而如果该分支被采用,则将1的值移位到该寄存器中。来自该寄存器的最老的值 被丢弃。因此,分支历史寄存器沈提供了最后N个执行的分支的采用/不采用的历史,提供 了分支行为的全局历史。分支历史寄存器26的大小在不同的实施例中可以改变。在典型 的实施例中,N范围可以从0(在这种情况下,没有实现分支历史寄存器)到小的最大数值, 诸如16。对于其中当前分支不在BTB 14中的情况,BHT 20提供了两比特预测器用于当前 分支,其表示下列四种状态中的一个强不采用、弱不采用、弱采用、以及强采用。BHT 20将 用于当前分支的两比特预测器提供到逻辑18。在操作中,BHT 20存储多个预测器,并且从 BHT中选择用于当前分支的预测器。该选择可以基于分支历史沈中包含的当前分支历史、 基于当前分支的程序计数器值、基于该程序计数器值和分支历史寄存器26的某种组合、或 者以本领域种已知的各种方式来进行。BTB控制器16在BTB 14中的条目当中识别取代候 选者。BTB 14将用于取代候选者的两比特预测器提供到逻辑18。然后,逻辑18确定当前 分支是否比取代候选者更可能被使用。如果当前分支更可能被使用,则BTB控制器执行分 配,并用当前分支取代该取代候选者。BTB控制器响应于处理逻辑12而操作,并因此从处 理逻辑12接收关于当前分支的所需信息。如果取代候选者更可能被使用,则这是不分配情 形,并且取代候选者被保持在BTB 14中,且在BTB 14不对当前分支进行分配。图2中示出了逻辑18决定是否是不分配情形或者是否应当执行分配的基础的一 个示例。图2中示出了一表,其示出了对于取代候选者的四种可能的预测强不采用、弱不 采用、弱采用、以及强采用。对于取代候选者的这四种可能性中的每一个,对于当前分支存 在同样的四种可能性,并且在表中进行了示出。因此,存在所示出的十六种可能的组合,并 且对于每一种组合在表中示出了相应的决定。对于其中取代候选者被预测为强不采用的情况,决定是进行分配而不管当前分支的预测。在这种情况下,对于所述可能性中的三种,当 前分支具有较高的被采用的预测,并且在第四种上持平。由于当前分支比取代候选者更最 近地被采用,因此决定进行分配。对于具有弱不采用预测的取代候选者的情况,决定也是对 于所有四种可能性进行分配。对于该情况的不同决定是合理的可能性。对于其中对于取代 候选者预测是弱不采用而对于当前分支预测是强不采用的情况,该预测对于取代候选者是 稍微更有利的,是一类别不同(one category difference),但是决定仍是进行分配。当前 分支的更最近的执行被认为比稍微的不同更有利。在对于取代候选者分支是弱采用的情 况,除了当前分支是强不采用的情况(这是两类别不同)以外,决定都是分配。对于当前分 支是弱不采用的一类别不同,决定是进行分配。再次地,对于这种情况,不同的决定将被认 为是合理的。对于取代候选者分支具有强采用的预测的情况,仅对于具有弱不采用和强不 采用预测的当前分支决定是进行分配。如在前述的两种情况中那样,在其中存在有利于取 代候选者的一类别不同的情况下,决定是进行分配,但是作出相反的决定也可能是合理的。 本发明构思了作为对图2中的条目进行分配或不分配的决定结果的替代,特别是对于其中 取代候选者分支通过一类别不同而具有更有利的被采用的结果的情况。所述决定可以由逻 辑18实现,并且在某些实施例中,可以实现多个表(诸如图2中所示的表),对于所述表中 的特定条目作出不同的分配决定,并且可以由逻辑18使用动态选择处理来确定在当前分 支在BTB中未中的情况下为当前分支进行分配确定时所依赖的所述多个表中的表。在进行分配决定时的进一步的考虑是考虑BHT 20的置信预测器观所提供的置信 预测器。利用置信预测器进一步修改预测。在图2的表的示例中,对于当前分支,预测被认 为是高度可信的。低的置信度可能改变决定。例如,如果对于对当前分支为弱采用并且对 取代候选者为强采用的预测的置信度为低,则更好的决定可能是不分配。在其中置信度非 常低的情况下,可能甚至使对于其中取代候选者和当前分支都被预测为弱采用的情况的决 定从分配切换到不分配。在某些实施例中,可以利用逻辑18来基于置信预测器观所提供 的置信值改变图2中所示的表中的一个或更多个条目,或者,可以利用逻辑18来在分配决 定的多个表中的一个或多个表当中进行选择。注意,尽管置信预测器观被示出为BHT 20 的一部分,然而,在替代实施例中,置信预测器观可以作为独立结构而存在。在另一替代实 施例中,可以使用多个预测器,而不是单个BHT 20,并且对于当前分支,置信预测器观可以 基于图2中表条目选择多个预测器的多个预测中的一个,作为要用于逻辑18所执行的选择 处理的预测。在又一实施例中,多个预测器中的一个可以具有其自己的取代决定表,并且置 信预测器观对于要用于当前分支的具体预测器的选择也可以选择与该具体的选择的预测 器相关联的特定表以供逻辑18在进行分配确定时使用。用于提供预测的历史方法通常被认为是最准确的,并且添加置信因子在进行决定 时提供了进一步的指引。存在仔细考虑过的提供阈值的其他技术,并且可以提供诸如简化 和速度等方面的优点。所描述的在分配和不分配之间进行决定时将取代候选者的预测与当 前分支的预测进行比较的方法可以受益于使用通过置信方法增强了的历史方法。其他的预 测方案也可以是有效的。在BTB的分配中的改进可以仍利用获得对于当前分支以及对于取 代候选者的预测的另一方法实现。不管所选择的预测方案如何,将取代候选者的预测和当 前分支的预测进行比较以用于决定是否以用于在BTB中未中的当前分支的新条目取代BTB 中的当前条目,都是进一步的改进。
至此应当理解,已经提供了一种分配分支目标缓存器(BTB)中的多个条目中的条 目的方法。所述方法包括接收要在数据处理器中执行的分支指令。所述方法进一步包括 确定BTB不包括与所述分支指令对应的条目。所述方法进一步包括识别BTB中用于分配 的条目,所识别的BTB中的条目包括目标标识符以及对于先前接收的分支指令的第一预测 值。所述方法进一步包括基于所述第一预测值与第二预测值的比较确定是否将所述分支 指令分配到所识别的BTB中的条目。所述方法可以进一步特征在于所述确定步骤进一步 特征在于,所述第二预测值产生自分支历史表(BHT)。所述方法可以进一步包括如果与所 述第一预测值相比,所述第二预测值指示更强采用预测,则将所述分支指令分配到所识别 的条目。所述方法可以进一步包括将多个比特移位到分支历史寄存器中,其中所述多个比 特中的每一比特指示分支指令的结果,并且其中所述多个比特中的一个或多个比特被用在 生成用于对BHT寻址的索引中。所述方法可以进一步包括当作为所述分支指令的结果出 现指令流改变时,更新BHT。所述方法可以进一步特征在于所述第二预测值是基于多个先 前的指令分支的结果的。所述方法可以进一步特征在于所述第二预测值是基于多个先前 的指令分支的结果的。所述方法可以进一步包括基于多个正确的预测,产生预测置信值; 将所述预测置信值与所述第二预测值组合以产生第三预测值;以及利用所述第三预测值确 定是否将所述分支指令分配到所识别的条目。所述方法可以进一步特征在于所述第一预 测值包括两比特预测值,用于指示下列状态中的一个强不采用状态、弱不采用状态、弱采 用状态、以及强采用状态。所述方法可以进一步特征在于所述第二预测值包括两比特预测 值,用于指示下列状态中的一个强不采用状态、弱不采用状态、弱采用状态、以及强采用状 态。还公开了一种在数据处理系统中分配分支目标缓存器(BTB)中的多个条目中的 条目的方法。所述方法包括接收要在所述数据处理系统中执行的多个指令,所述多个指令 包括一个或更多个分支指令。所述方法进一步包括产生分支历史表BHT,其中BHT是基于 在所述多个指令的指令执行期间指令流改变结果的累积的,其中所述指令流改变结果的累 积用于产生第一预测值。所述方法进一步包括接收要在所述数据处理系统中执行的第一 分支指令。所述方法进一步包括确定BTB不包括与所述第一分支指令对应的条目。所述 方法进一步包括识别BTB中用于分配的条目,所识别的BTB中的条目包括用于第二分支指 令的第二预测值。所述方法进一步包括基于所述第一预测值与所述第二预测值的比较确 定是否将所述第一分支指令分配到所识别的BTB中的条目。所述方法进一步包括如果与 所述第二预测值相比,所述第一预测值指示更强采用预测,则将所述第一分支指令分配到 所识别的条目;以及如果与所述第二预测值相比,所述第一预测值指示更强不采用预测,则 不将该条目分配给所述第二分支指令。所述方法可以进一步包括基于所述数据处理系统 中的多个正确的预测产生预测置信值;将所述预测置信值与所述第一预测值组合以产生第 三预测值;以及,利用所述第三预测值确定是否将所述分支指令分配到所识别的条目。所述 方法可以进一步特征在于所述第一预测值包括两比特预测值,用于指示下列状态中的一 个强不采用状态、弱不采用状态、弱采用状态、以及强采用状态。所述方法可以进一步特征 在于所述第二预测值包括两比特预测值,用于指示下列状态中的一个强不采用状态、弱 不采用状态、弱采用状态、以及强采用状态。所述方法可以进一步包括将多个比特移位到 分支历史寄存器中,其中所述多个比特中的每一比特指示分支指令的结果,并且其中所述多个比特中的至少一个被用用于产生用于对BHT寻址的索引。还公开了一种数据处理系统。所述数据处理系统包括处理逻辑,用于执行指令。 所述数据处理系统进一步包括分支目标缓存器BTB,其耦合到所述处理逻辑,所述BTB具 有多个条目,所述多个条目中的条目包括与第一分支指令对应的第一预测值。所述数据处 理系统进一步包括BTB控制器,其耦合到所述BTB,用于选择所述多个条目中要被取代的 条目。所述数据处理系统进一步包括分支历史表(BHT),其耦合到处理逻辑,用于基于所 述多个指令的执行期间指令流改变结果的累积提供第二预测值,所述第二预测值对应于第 二分支指令。所述数据处理系统进一步包括BTB取代分配逻辑,其耦合到所述BTB以接收 所述第一预测值,并耦合到所述BHT以接收所述第二预测值,所述BTB取代分配逻辑用于执 行所述第一预测值与所述第二预测值的比较,以及用于基于所述比较使所述多个条目中的 所述条目分配给所述第二分支指令。所述数据处理系统可以进一步包括置信预测器,其耦 合到所述BTB取代分配逻辑,所述置信预测器用于基于多个正确的分支预测产生预测置信 值,其中所述预测置信值与所述第二预测值组合以产生第三预测值,并且其中所述第三预 测值被用于确定是否将所述多个条目中的所述条目分配给第二分支指令。所述数据处理系 统可以进一步特征在于所述第一预测值包括两比特预测值,用于指示下列状态中的一个 强不采用状态、弱不采用状态、弱采用状态、以及强采用状态。所述数据处理系统可以进一 步特征在于所述第二预测值包括两比特预测值,用于指示下列状态中的一个强不采用 状态、弱不采用状态、弱采用状态、以及强采用状态。所述数据处理系统可以进一步特征在 于所述比较确定如果与所述第一预测值相比所述第二预测值指示更强采用值,对所述第 二分支指令分配所述多个条目中的所述条目。由于实现本发明的设备大部分由对于本领域技术人员已知的电子部件和电路构 成,因此,并未在比如上面所说明的被认为是必要的程度更大的程度上解释电路细节,以便 于理解和领会本发明的基本概念并且不使本发明的教导不清楚或被分散。因此,应当理解,此处所描述的架构仅仅是示例性的,实际上,可以实现许多其它 架构来实现相同功能。在一抽象的但仍是清楚的意义上来说,用于实现相同功能的组件的 任何布置被有效地"关联"以使得实现期望的功能。因此,此处组合来实现特定功能的任 何两个组件可以被看作彼此"关联"以使得实现期望的功能,而不管架构或中间部件。同 样地,如此关联的任何两个部件也可以被视为彼此"操作连接"或"操作耦合"以实现期 望的功能。此外,本领域技术人员将认识到,上面描述的操作的功能之间的界限仅是说明性 的。多个操作的功能可以组合到单个操作中,和/或单个操作的功能可以分布在另外的操 作中。此外,替代的实施例可以包括特定的操作的多个实例,并且操作的顺序在多种其它实 施例中可以改变。尽管此处参考特定实施例描述了本发明,但是可以进行多种修改和改变而不偏离 如下面的权利要求所提出的本发明的范围。例如,BTB14被描述为具有32个条目,然而也 可以使用不同的数目。因此,本申请文件和附图应被认为是说明性的而不是限制性的意思, 并且意图将所有这样的修改包括在本发明的范围内。此处就特定实施例描述的任何益处、 优点、或对问题的解决方案意图不应被认为是任何或全部权利要求的关键的、需要的、或实 质性的特征或要素。
如在此所使用的术语"耦合"意图不应被限制为直接耦合或机械耦合。此外,如在此所使用的术语"a"或"an"( —)被定义为一个或多于一个。此 外,权利要求中引入性的短语诸如"至少一个"和"一个或更多个"的使用不应当被认为 暗示了通过不定冠词"a"或"an"( —)而对另一权利要求要素的引入将含这样引入 的权利要求要素的任何特定权利要求限制到仅包含一个这样的要素的发明,即使在同一 权利要求包括引入性的短语"一个或更多个"或"至少一个"以及不定冠词诸如"a" 或"an"( —)时也是如此。对于定冠词的使用也是如此。除非以另外的方式说明,否则诸如"第一"和"第二"之类的术语被用于任意地 在这样的术语描述的要素之间进行区分。因此,这些术语并不必然意图表示这些要素的时 间上的或其它优先级。
权利要求
1.一种分配分支目标缓存器BTB中的多个条目中的条目的方法,所述方法包括接收要在数据处理器中执行的分支指令;确定BTB不包括与所述分支指令对应的条目;识别BTB中用于分配的条目,所识别的BTB中的条目包括目标标识符以及对于先前接 收的分支指令的第一预测值;以及基于所述第一预测值与第二预测值的比较确定是否将所述分支指令分配到所识别的 BTB中的条目。
2.如权利要求1所述的方法,其中所述确定步骤进一步特征在于所述第二预测值产 生自分支历史表BHT。
3.如权利要求2所述的方法,进一步包括如果与所述第一预测值相比,所述第二预测 值指示更强采用预测,则将所述分支指令分配到所识别的条目。
4.如权利要求2所述的方法,进一步包括将多个比特移位到分支历史寄存器中,其中 所述多个比特中的每一比特指示分支指令的结果,并且其中所述多个比特中的一个或多个 比特被用在生成用于对BHT寻址的索引中。
5.如权利要求2所述的方法,进一步包括当作为所述分支指令的结果出现指令流改 变时,更新BHT。
6.如权利要求1所述的方法,其中所述第二预测值是基于多个先前的指令分支的结果的。
7.如权利要求1所述的方法,其中将所述分支指令分配到所识别的条目进一步包括 如果所述第二预测值指示所述分支不大可能被采用,则不将所述分支指令分配到所识别的 条目。
8.如权利要求1所述的方法,进一步包括基于多个正确的预测,产生预测置信值;将所述预测置信值与所述第二预测值组合以产生第三预测值;以及利用所述第三预测值确定是否将所述分支指令分配到所识别的条目。
9.如权利要求1所述的方法,其中所述第一预测值包括两比特预测值,用于指示下列 状态中的一个强不采用状态、弱不采用状态、弱采用状态、以及强采用状态。
10.如权利要求1所述的方法,其中所述第二预测值包括两比特预测值,用于指示下列 状态中的一个强不采用状态、弱不采用状态、弱采用状态、以及强采用状态。
11.一种在数据处理系统中分配分支目标缓存器BTB中的多个条目中的条目的方法, 所述方法包括接收要在所述数据处理系统中执行的多个指令,所述多个指令包括一个或更多个分支 指令;产生分支历史表BHT,其中BHT是基于在所述多个指令的指令执行期间指令流改变结 果的累积的,其中所述指令流改变结果的累积用于产生第一预测值;接收要在所述数据处理系统中执行的第一分支指令;确定BTB不包括与所述第一分支指令对应的条目;识别BTB中用于分配的条目,所识别的BTB中的条目包括用于第二分支指令的第二预 测值;基于所述第一预测值与所述第二预测值的比较确定是否将所述第一分支指令分配到 所识别的BTB中的条目;以及如果与所述第二预测值相比,所述第一预测值指示更强采用预测,则将所述第一分支 指令分配到所识别的条目;以及如果与所述第二预测值相比,所述第一预测值指示更强不 采用预测,则不将该条目分配给所述第二分支指令。
12.如权利要求11所述的方法,进一步包括基于所述数据处理系统中的多个正确的预测产生预测置信值; 将所述预测置信值与所述第一预测值组合以产生第三预测值;以及 利用所述第三预测值确定是否将所述分支指令分配到所识别的条目。
13.如权利要求11所述的方法,其中所述第一预测值包括两比特预测值,用于指示下 列状态中的一个强不采用状态、弱不采用状态、弱采用状态、以及强采用状态。
14.如权利要求11所述的方法,其中所述第二预测值包括两比特预测值,用于指示下 列状态中的一个强不采用状态、弱不采用状态、弱采用状态、以及强采用状态。
15.如权利要求11所述的方法,进一步包括将多个比特移位到分支历史寄存器中,其 中所述多个比特中的每一比特指示分支指令的结果,并且其中所述多个比特中的至少一个 被用于产生用于对BHT寻址的索引。
16.一种数据处理系统,包括 处理逻辑,用于执行指令;分支目标缓存器BTB,其耦合到所述处理逻辑,所述BTB具有多个条目,所述多个条目 中的条目包括与第一分支指令对应的第一预测值;BTB控制器,其耦合到所述BTB,用于选择所述多个条目中要被取代的条目; 分支历史表BHT,其耦合到处理逻辑,用于基于所述多个指令的执行期间指令流改变结 果的累积提供第二预测值,所述第二预测值对应于第二分支指令;以及BTB取代分配逻辑,其耦合到所述BTB以接收所述第一预测值,并耦合到所述BHT以接 收所述第二预测值,所述BTB取代分配逻辑用于执行所述第一预测值与所述第二预测值的 比较,以及用于基于所述比较使所述多个条目中的所述条目分配给所述第二分支指令。
17.如权利要求16所述的数据处理系统,进一步包括置信预测器,其耦合到所述BTB取 代分配逻辑,所述置信预测器用于基于多个正确的分支预测产生预测置信值,其中所述预 测置信值与所述第二预测值组合以产生第三预测值,并且其中所述第三预测值被用于确定 是否将所述多个条目中的所述条目分配给第二分支指令。
18.如权利要求16所述的数据处理系统,其中所述第一预测值包括两比特预测值,用 于指示下列状态中的一个强不采用状态、弱不采用状态、弱采用状态、以及强采用状态。
19.如权利要求16所述的数据处理系统,其中所述第二预测值包括两比特预测值,用 于指示下列状态中的一个强不采用状态、弱不采用状态、弱采用状态、以及强采用状态。
20.如权利要求16所述的数据处理系统,其中当所述比较确定如果与所述第一预测值相比所述第二预测值指示更强采用值,对所述第二分支指令分配所述多个条目中的所述条目。
全文摘要
提供了用于分配分支目标缓存器(BTB)(14)中的条目的数据处理系统(10)和方法。所述方法包括接收要在数据处理器(40)中执行的分支指令;确定BTB不包括与所述分支指令对应的条目;识别BTB中用于分配的条目,所识别的BTB中的条目包括目标标识符(30)以及对于先前接收的分支指令的第一预测值(32);基于所述第一预测值与第二预测值的比较确定是否将所述分支指令分配到所识别的BTB中的条目,其中所述第二预测值产生自分支历史表(BHT);以及,如果与所述第一预测值相比,所述第二预测值指示更强采用预测,则将所述分支指令分配到所识别的条目。
文档编号G06F9/38GK102112964SQ200980129456
公开日2011年6月29日 申请日期2009年5月11日 优先权日2008年7月29日
发明者J·W·斯考特, W·C·莫耶 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1