包括用于早期远分支预测的影子缓存的单周期多分支预测制造技术

技术编号:9037476 阅读:199 留言:0更新日期:2013-08-15 04:14
本发明专利技术公开了一种标识指令的方法,该方法包括:访问包括多个分支指令的多个指令。对于多个分支指令中的每个分支指令,生成相应的第一掩码,该第一掩码代表如果采用分支则执行的指令。生成相应的第二掩码,该第二掩码代表如果不采用分支则执行的指令。接收预测输出,该预测输出包括对于每个分支指令的相应的分支预测。对于每个分支指令,使用该预测输出以从相应的第一掩码和第二掩码之中选择相应的结果掩码。对于每个分支指令,如果预测先前分支越过后续分支而分支,则使所述后续分支的结果掩码无效。对所有结果掩码执行逻辑操作以产生最终掩码。使用该最终掩码以选择用于执行的指令子集。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术总体涉及数字计算机系统,更具体地涉及一种用于选择包括指令序列的指令的系统和方法。
技术介绍
改进计算机架构性能是困难的任务。已经通过频率缩放、单指令多数据(SMD)、超长指令字(VLIW)、多线程和多处理器技术寻求改进。这些方法主要以提高程序执行的吞吐量为目标。这些技术中的许多技术要求软件显式地揭示并行性。与此相反,频率缩放对吞吐量和延时两者进行提高而无需并行性的软件显式注释。近来,频率缩放遭遇功率壁垒,因此通过频率缩放的改进是困难的。因此,除非表达大量的显式软件并行化,否则难以增加吞吐量。关于单线程程序执行,程序执行由规定程序控制流程的分支指令所控制。程序指令序列当分支指令是有条件的或者分支目标是间接的时是动态的。在这些情况下,对于处理器的提取逻辑而言,对于条件分支发现是否采用分支。这使提取逻辑能够引入如下指令的序列,这些指令紧随分支目标或者紧随分支指令本身。然而问题在于,在提取阶段,分支的条件的结果在分支本身执行之前是未知的。在尝试克服该问题时,现有技术设计已经实现分支预测逻辑以预测分支的结果。在微处理器的提取阶段,预测的结果使提取逻辑能够预期从何处带来下一指令序列。然而问题仍然存在,因为如果在相同周期中要处理多于一个的条件分支,则提取阶段的逻辑很快变得非常复杂。原因在于该处理需要本质上是顺序的。需要首先处理当前分支以便知道从何处带来下一指令序列。 该方面可能引起序列中的下一分支被跳过。因而提取阶段中的处理分支的顺序本质给微处理器的单线程执行速度施加了性能瓶颈。
技术实现思路
本专利技术的实施例实现一种使微处理器的提取逻辑的并行化成为可能以在每个单周期中处理多个分支的算法(例如,方法和装置)。该算法还基于也在该单周期内的分支预测而形成最终的指令序列。在一个实施例中,本专利技术实现为一种标识预测的执行路径的指令的方法。该方法包括访问包括多个分支指令的多个指令。对于多个分支指令中的每个分支指令,生成相应的第一掩码,该第一掩码代表如果采用所述分支则执行的指令。生成相应的第二掩码,该第二掩码代表如果不采用所述分支则执行的指令。接收预测输出,该预测输出包括对于所述多个分支指令中的每个分支指令的相应的分支预测。对于所述多个分支指令中的每个分支指令,使用所述预测输出以从所述相应的第一掩码和第二掩码之中选择相应的结果掩码。对于每个分支指令,如果预测先前分支越过后续分支而分支,则使所述后续分支的结果掩码无效。对所有结果掩码执行逻辑操作以产生最终掩码。基于所述最终掩码从所述多个指令选择用于执行的指令子集。前文是概要并且因此必然地包含细节的简化、概括和省略;因而,本领域技术人员将理解该概要仅是说明性的而并非旨在是以任何方式进行限制的。如仅由权利要求所限定的,本专利技术的其它方面、专利技术特征和优点将在下文阐述的非限制性的详细描述中变得显而易见。附图说明在附图的各图中通过示例而非通过限制来图示本专利技术,在附图中,相同附图标记指代相同单元。图1示出由本专利技术的一个实施例操作的示例性指令序列。图2示出根据本专利技术的一个实施例所图示的具有用于每个分支的相应代码段的顺序指令。图3示出根据本专利技术的一个实施例的用于标识和提取指令的过程的步骤的概况流程图,这些指令包括具有多个分支的指令序列的执行路径。图4示出根据本专利技术的一个实施例的图示用于标识和提取指令的过程的操作的流程图,这些指令 包括具有多个分支的指令序列的执行路径。图5示出根据本专利技术的一个实施例的远分支缓存和远跳转目标指令缓存。图6示出根据本专利技术的一个实施例的示例性微处理器流水线的示图。具体实施例方式虽然已经结合一个实施例描述本专利技术,但是本专利技术并非旨在限于这里阐述的具体形式。恰好相反,它旨在覆盖如可以被合理地包括在如由所附权利要求限定的本专利技术的范围内的这样的备选、修改和等效物。在下文的详细描述中,已经阐述许多具体细节(诸如具体方法顺序、结构、单元和连接)。然而将理解,无需利用这些和其它具体细节以实现本专利技术的实施例。在其它情况下,已经省略或者尚未特别详细地描述公知结构、单元或者连接以避免不必要地使本描述难以理解。在说明书内对“一个实施例”或者“实施例”的引用旨在指示结合该实施例所描述的特定特征、结构或者特性包含于本专利技术的至少一个实施例中。在说明书内各处出现的短语“在一个实施例中”不必都指代相同的实施例,也不必是与其它实施例互斥的单独的或者备选的实施例。另外,描述了各种特征,这些特征可以由一些实施例而不由其它实施例展示出来。类似地,描述了各种要求,这些要求可以是对于一些实施例但并不对于其它实施例的要求。依据对计算机存储器内的数据位的操作的流程、步骤、逻辑块、处理和其它符号表示而呈现下文详细描述的一些部分。这些描述和表示是数据处理领域的那些技术人员用来向本领域其他技术人员最有效地传达他们的工作实质的手段。这里,流程、计算机执行的步骤、逻辑块、过程等一般设想是导致期望结果的步骤或者指令的自一致序列。步骤是需要物理操控物理量的步骤。通常(尽管不一定),这些量采用计算机可读存储介质的电信号或者磁信号的形式并且能够在计算机系统中被存储、传送、组合、比较和以别的方式被操控。主要出于普遍使用的原因,将这些信号称为位、值、单元、符号、字符、项、数等已经被证实有时是方便的。然而应当谨记,所有这些术语和相似术语将与适当物理量相关联,并且仅为应用于这些量的方便标签。除非如从下文讨论中显而易见地另有具体明示,贯穿本专利技术而理解的是,利用诸如“处理”或者“访问”或者“写入”或者“存储”或者“复制”等术语的讨论指的是计算机系统或者相似电子计算设备的动作和过程,该电子计算设备对被表示为计算机系统的寄存器和存储器以及其它计算机可读介质内的物理(电子)量的数据进行操纵并变换成同样地被表示为计算机系统存储器或寄存器或者其他此类信息存储、传输或显示设备内的物理量的其他数据。本专利技术的实施例实现一种使微处理器的提取逻辑的并行化成为可能以在每个单周期中处理多个分支的算法(例如,方法和装置)。该算法还基于也在该单周期内的分支预测而形成最终的指令序列。执行该任务而无需以顺序方式处理分支(例如,不以每周期一个分支的速率逐个分支地处理指令序列)。反而,本专利技术的实施例使得每周期多个分支的处理速率成为可能,由此使得大量指令提取和分配带宽成为可能。应当注意,单个分支指令的处理可以不在单周期内完成,然而处理器硬件可以每个周期处理多个分支,由此实现每周期多个分支的吞吐量。以该方式,分支处理速率是每个周期,但是延时在单周期内不是必需的。图1和图2示出由本专利技术的实施例操作的示例性指令序列。随后,图3示出根据本专利技术的一个实施例的用于标识和提取指令的过程的步骤的概况流程图,这些指令包括具有多个分支的指令序列中的执行路径。图1示出由本专利技术的一个实施例操作的示例性指令序列。如图1中所示,指令序列100包括从图1的顶部进行至底部的16个指令。如图1中可见,序列100包括四个分支指令 101-104。本专利技术的实施例的一个目的是在每个单周期中处理整组指令。根据不同实施例,这些指令可以包括原生指令(例如,微处理器架构的原生指令,诸如x86指令、MIPS指令等)。备选地,这些指令可以包括微代码。在一个实施例中,在相同单周期中处理整组16个指令。如前所述,指令序列包括的分本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:M·阿布达拉
申请(专利权)人:索夫特机械公司
类型:
国别省市:

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

1