提供了用于分配分支目标缓存器(BTB)(14)中的条目的数据处理系统(10)和方法。所述方法包括:接收要在数据处理器(40)中执行的分支指令;确定BTB不包括与所述分支指令对应的条目;识别BTB中用于分配的条目,所识别的BTB中的条目包括目标标识符(30)以及对于先前接收的分支指令的第一预测值(32);基于所述第一预测值与第二预测值的比较确定是否将所述分支指令分配到所识别的BTB中的条目,其中所述第二预测值产生自分支历史表(BHT);以及,如果与所述第一预测值相比,所述第二预测值指示更强采用预测,则将所述分支指令分配到所识别的条目。
【技术实现步骤摘要】
【国外来华专利技术】
本公开一般地涉及半导体处理器,并且更具体地,涉及具有分支目标缓存器的半 导体处理器。
技术介绍
分支预测是用于避免或减少处理器空闲时间的常见技术。分支预测通常包括使 用分支目标缓存器(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中是否存在命中。此外,在该条目本文档来自技高网...
【技术保护点】
1.一种分配分支目标缓存器BTB中的多个条目中的条目的方法,所述方法包括:接收要在数据处理器中执行的分支指令;确定BTB不包括与所述分支指令对应的条目;识别BTB中用于分配的条目,所识别的BTB中的条目包括目标标识符以及对于先前接收的分支指令的第一预测值;以及基于所述第一预测值与第二预测值的比较确定是否将所述分支指令分配到所识别的BTB中的条目。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:W·C·莫耶,
申请(专利权)人:飞思卡尔半导体公司,
类型:发明
国别省市:US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。