用于改善连续的事务性存储器区的吞吐量的系统、方法和装置的制造方法

文档序号:8947440阅读:431来源:国知局
用于改善连续的事务性存储器区的吞吐量的系统、方法和装置的制造方法
【专利说明】用于改善连续的事务性存储器区的吞吐量的系统、方法和 装置
【背景技术】
[0001] 事务性存储器的自然实现方案是要求在引退作为较年轻事务的部分的指令之前, 较老的事务就提交。然而,在无序处理器中,通常情况是:较年轻事务中显著数量的操作在 等待较老的事务提交的时候就已经完成了执行。例如,较老的事务中的单个存储可能需要 数百个周期以等待存储器进行响应。在这期间,无序机器可能已经执行了较年轻事务中的 全部指令。当该较老的事务最终提交时,现在有积压的指令要从该较年轻的事务中引退。
【附图说明】
[0002] 在所附附图中以示例方式而非限制方式说明本发明,在附图中,类似的参考标号 指示类似的元件,其中:
[0003] 图1示出根据本发明的实施例的处理器核100的多个部分的框图。
[0004] 图2示出写入时复制(COW)缓冲器的实施例。
[0005] 图3示出允许标记存储器状态的数据高速缓存的实施例。
[0006] 图4示出示例性ROB。
[0007] 图5示出将TM区指示符用于加载指令的实施例。
[0008] 图6示出将TM区指示符用于存储指令的实施例。
[0009] 图7示出将TM区指示符用于算术指令的实施例。
[0010] 图8是根据本发明的一个实施例的寄存器架构800的框图。
[0011] 图9A是示出根据本发明的多个实施例的示例性有序流水线和示例性的寄存器重 命名的无序发布/执行流水线的框图。
[0012] 图9B是示出根据本发明的多个实施例的要包括在处理器中的有序架构核的示例 性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。
[0013] 图10A-B示出更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块 之一(包括相同类型和/或不同类型的其他核)。
[0014] 图11是根据本发明的多个实施例可具有多于一个的核、可具有集成存储器控制 器、并且可具有集成图形器件的处理器1100的框图。
[0015] 图12-15是示例性计算机架构的框图。
[0016] 图16是根据本发明的各实施例的对照使用软件指令转换器将源指令集中的二进 制指令转换成目标指令集中的二进制指令的框图。
【具体实施方式】
[0017] 在以下描述中,陈述了多个具体细节。然而,应当理解,可不通过这些具体细节来 实施本发明的实施例。在其他实例中,未详细示出公知的电路、结构以及技术,以免使对本 描述的理解模糊。
[0018] 说明书中提到" 一个实施例"、"实施例"、"示例实施例"等指示所描述的实施例可 包括特定特征、结构或特性,但是,每一个实施例可以不一定包括该特定特征、结构,或特 征。此外,此类短语不一定是指同一实施例。此外,当结合实施例描述特定的特征、结构或 特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本 领域技术人员的知识范围之内的。
[0019] 示例件处理器核
[0020] 图1示出根据本发明的实施例的处理器核100的多个部分的框图。在一个实施例 中,图1中所示的多个箭头示出经过核100的指令流。可在诸如参考图1所讨论的单个集 成电路芯片(或管芯)上实现一个或多个处理器核(例如,处理器核100)。此外,该芯片可 包括一个或多个共享的和/或私有的高速缓存(例如,高速缓存)、互连、存储器控制器或其 他组件。在实施例中,可将图1中所示的处理器核100用于执行包括对应于虚拟化事务模 式、非虚拟化(或受限的)事务模式和非事务模式的那些线程的一种或多种类型的线程。
[0021] 如图1中所示,处理器核100可包括取出单元102,其用于从指令高速缓存101中 取出指令,以便由核100执行。可从Ll指令高速缓存101或诸如存储器164和/或存储设 备之类的任何存储设备中取出这些指令。核100也可包括用于对被取出的指令进行解码的 解码单元104。例如,解码单元104可将被取出的指令解码为多个 U0p(微操作)。此外,核 100可包括调度单元106。该调度单元106可执行与存储被解码的指令(例如,从解码单元 104接收到的指令)相关联的各种操作,直到这些指令准备好分派为止(例如,直到被解码 指令的所有的源值变得可用)。在一个实施例中,该调度单元106可将被解码的指令调度 和/或发布(或分派)到执行单元108,以便执行。该执行单元108可在(例如,由解码单 元104)解码并(例如,由调度单元106)分派指令之后,执行这些被分派的指令。在实施例 中,该执行单元108可包括多于一个的执行单元,例如,存储器执行单元、整数执行单元、浮 点执行单元或其他执行单元。此外,该执行单元108可无序地执行指令。因此,在一个实施 例中,该处理器核100可以是无序处理器核。核100也可包括引退单元110。该引退单元 110可以在指令被提交之后引退被执行的指令。在实施例中,引退这些被执行的指令会导 致:通过对这些指令的执行,提交处理器状态;解除分配由这些指令使用的物理寄存器,等 等。
[0022] 如图1中所示,核100可附加地包括追踪高速缓存或微代码只读存储器 (uROM) 111,其用于存储微代码和/或追踪已被取出(例如,由取出单元102取出)的指令。 可将存储在该uROM 111中的微代码用于配置核100的各种硬件组件。在实施例中,可通过 与该处理器核100通信的另一组件(例如,所讨论的计算机可读介质或其他存储设备)来 加载被存储在该uROM 111中的微代码。核100也可包括重排序缓冲器(ROB) 112,其用于存 储关于用于由处理器核100的各种组件访问的进行中指令(或uop)的信息。核100可进 一步包括RAT(寄存器别名表)114,其用于保持逻辑(或架构)寄存器(例如,由软件指令 的操作数所标识的那些寄存器)到对应的物理寄存器的映射。在一个实施例中,该RAT 114 中的每一个字段可包括被分配到每一个物理寄存器的ROB标识符。此外,加载缓冲器116 和存储缓冲器118(可在本文中将它们统称为存储器顺序缓冲器(MOB))可分别存储还未被 加载或未被写回到主存储器(例如,在该处理器核100外部的、诸如存储器164之类的存储 器)中的待处理(pending)的存储器操作。MOB逻辑119可执行与本文所讨论的缓冲器116 和118有关的各种操作。此外,处理器核100可包括总线单元120,其用于允许经由一个或 多个总线的、在处理器核100的多个组件和其他组件之间的通信。一个或多个填充缓冲器 122可在将接收到的数据存储到高速缓存162中之前,临时地存储(例如,在总线上)从存 储器164接收到的数据。
[0023] 在一个实施例中,可将一个或多个事务状态寄存器160包括在核100中。每一个 事务状态寄存器160可对应于正在核100上执行的事务。第一事务可在第二事务的事务状 态寄存器160中存储值,以指示该第二事务将中止(例如,由于向该第一事务分配了比该第 二事务更高的优先级以例如避免冲突)。在实施例中,每一个事务可监测其各自的状态寄 存器160以确定其是否应当中止。例如,可将状态寄存器160用于即使在可能将事务挂起 的情形下(例如,临时将该事务切换到核(100)之外)也中止该事务。这可允许其他事务 不必等待明确的中止而继续进行。同样,可在存储器中(例如,高速缓存162和/或存储器 164中)而不是硬件寄存器中实现该状态寄存器160。
[0024] 下列讨论伴随用于使用TM区标识符(或颜色)来改善TM吞吐量的技术的详细实 施例。最初的讨论将在高层级上讨论对TM区标识符和通常用于改善吞吐量的各种组件的 使用。随后,详述处理事务的加载和存储的更具体的示例。
[0025] 冈指示
[0026] 来自相同线程的多个事务性存储器例程可在给定的时刻在处理器上运行,并且可 被逐一排序。贯穿本说明书的通篇,将这些例程称为"区"("region")。在实施例中,通 过开始和结束指令(例如,XBEGIN和XEND)来描绘事务。如本文中所详述的那样,可将TM 区指示符用于将来自一个TM区的指令与来自另一 TM区的那些指令区分开来。可在流水线 中的许多不同点处动态地或在运行时(runtime)之前静态地将该指示符分配到指令(宏指 令或微操作)中。流水线的分配级是无序执行之前的一个点(在此处,指令仍被视为是有 序的),因此,该分配级可提供用该分配级的TM区指示符来标记指令的机会时间。在本级 期间,作出关于如下的决定:要使用什么存储位置(例如,MOB的加载或存储缓冲器中的位 置);对由指令使用的物理寄存器的分配(这可包括寄存器重命名);以及要使用哪个功能 单元(如果有必要)。然而,也可利用诸如取出级、解码级等的其他级。无论将哪个级用于 TM区指示符的标记操作,都将TM区指示符信息置于重排序缓冲器(ROB) 112中。
[0027] 本文详述了指示将"η"用作连续的事务性存储器区(允许指令从这些区中引退) 的数量的TM区的示例。例如,当η = 3时,向来自第一 TM区的指令分配颜色0 ;向下一区的 指令分配颜色1 ;向下一区的指令分配颜色2 ;并且向下一区的指令分配颜色0,以此类推。 由此,该TM区指示分配级(例如,分配)不阻止指令或TM,而仅仅以轮循(round-robin)方 式分配TM区颜色。由于时序的原因,实现方案可选择复制流水线中别处的颜色信息。例如, 如将在稍后讨论的那样,可以用它们的颜色来标记加载缓冲器条目以便于在数据高速缓存 (D-高速缓存)中设置正确的(相关联的)读取位(R-位),等等。
[0028] 用于回滚的检杳点橾作
[0029] TM需要用于对寄存器进行检查点操作(checkpointing)的方法,使得可在中止事 务的情况下恢复寄存器状态。在处理器(在其中,将架构寄存器重命名为物理寄存器)中, 这可以通过在该处理器的物理寄存器中保留该架构寄存器的事务前(pre-transactional) 值并且向TM区中的、覆写该处理器的指令分配新的物理寄存器来实现。通常,事务不能够 释放物理寄存器以由包括其他事务中的那些指令的其他指令使用。将保持从经检查点操作 的架构寄存器到物理寄存器的映射的结构称为写入时复制(cow)缓冲器。在一些实施例 中,该COW是引退单元110的部分。
[0030] 为了支持保持多个寄存器检查点的能力,可外加标记TM区之间的分隔的中间指 针来使用该COW结构。在图2中示出示例性C0W。如图所示,COW存储用于已经(按时间顺 序)引退但还未被提交的指令的寄存器。
[0031] 使用先前η = 3的示例,在所示出的COW中,存在三个TM区。在图中示出多个指 针,并且这些指针描绘TM区。第一指针EO标识COW中最后被提交的指令的位置。注意,存 在一些已经被提交但还未被解除分配以供处理器使用的寄存器。可在任何时候收回这些寄 存器。
[0032] 第二指针El
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1