当前位置: 首页 > 专利查询>英特尔公司专利>正文

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

技术编号:15298249 阅读:66 留言:0更新日期:2017-05-11 22:59
本发明专利技术涉及用于改善连续的事务性存储器区的吞吐量的系统、方法和装置。描述了用于使用TM区指示符(或颜色)来改善TM吞吐量的系统、装置和方法。通过使用TM区指示符,较年轻的TM区可以在等待较老的区提交的时候使这些较年轻的TM区的指令被引退。

System, method and device for improving throughput of a contiguous transactional memory area

The present invention relates to a system, method, and device for improving throughput of a contiguous transactional memory area. Systems, devices, and methods for improving TM throughput using TM zone indicators (or colors) are described. By using the TM indicator, the younger TM can when waiting for the older submitted make these younger TM instructions are retired.

【技术实现步骤摘要】
本申请是申请日为2013年6月14日申请号为第201380057489.X号专利技术名称为“用于改善连续的事务性存储器区的吞吐量的系统、方法和装置”的中国专利申请的分案申请。
技术介绍
事务性存储器的自然实现方案是要求在引退作为较年轻事务的部分的指令之前,较老的事务就提交。然而,在无序处理器中,通常情况是:较年轻事务中显著数量的操作在等待较老的事务提交的时候就已经完成了执行。例如,较老的事务中的单个存储可能需要数百个周期以等待存储器进行响应。在这期间,无序机器可能已经执行了较年轻事务中的全部指令。当该较老的事务最终提交时,现在有积压的指令要从该较年轻的事务中引退。附图说明在所附附图中以示例方式而非限制方式说明本专利技术,在附图中,类似的参考标号指示类似的元件,其中:图1示出根据本专利技术的实施例的处理器核100的多个部分的框图。图2示出写入时复制(COW)缓冲器的实施例。图3示出允许标记存储器状态的数据高速缓存的实施例。图4示出示例性ROB。图5示出将TM区指示符用于加载指令的实施例。图6示出将TM区指示符用于存储指令的实施例。图7示出将TM区指示符用于算术指令的实施例。图8是根据本专利技术的一个实施例的寄存器架构800的框图。图9A是示出根据本专利技术的多个实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图。图9B是示出根据本专利技术的多个实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。图10A-B示出更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块之一(包括相同类型和/或不同类型的其他核)。图11是根据本专利技术的多个实施例可具有多于一个的核、可具有集成存储器控制器、并且可具有集成图形器件的处理器1100的框图。图12-15是示例性计算机架构的框图。图16是根据本专利技术的各实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。具体实施方式在以下描述中,陈述了多个具体细节。然而,应当理解,可不通过这些具体细节来实施本专利技术的实施例。在其他实例中,未详细示出公知的电路、结构以及技术,以免使对本描述的理解模糊。说明书中提到“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可以不一定包括该特定特征、结构,或特征。此外,此类短语不一定是指同一实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。示例性处理器核图1示出根据本专利技术的实施例的处理器核100的多个部分的框图。在一个实施例中,图1中所示的多个箭头示出经过核100的指令流。可在诸如参考图1所讨论的单个集成电路芯片(或管芯)上实现一个或多个处理器核(例如,处理器核100)。此外,该芯片可包括一个或多个共享的和/或私有的高速缓存(例如,高速缓存)、互连、存储器控制器或其他组件。在实施例中,可将图1中所示的处理器核100用于执行包括对应于虚拟化事务模式、非虚拟化(或受限的)事务模式和非事务模式的那些线程的一种或多种类型的线程。如图1中所示,处理器核100可包括取出单元102,其用于从指令高速缓存101中取出指令,以便由核100执行。可从L1指令高速缓存101或诸如存储器164和/或存储设备之类的任何存储设备中取出这些指令。核100也可包括用于对被取出的指令进行解码的解码单元104。例如,解码单元104可将被取出的指令解码为多个uop(微操作)。此外,核100可包括调度单元106。该调度单元106可执行与存储被解码的指令(例如,从解码单元104接收到的指令)相关联的各种操作,直到这些指令准备好分派为止(例如,直到被解码指令的所有的源值变得可用)。在一个实施例中,该调度单元106可将被解码的指令调度和/或发布(或分派)到执行单元108,以便执行。该执行单元108可在(例如,由解码单元104)解码并(例如,由调度单元106)分派指令之后,执行这些被分派的指令。在实施例中,该执行单元108可包括多于一个的执行单元,例如,存储器执行单元、整数执行单元、浮点执行单元或其他执行单元。此外,该执行单元108可无序地执行指令。因此,在一个实施例中,该处理器核100可以是无序处理器核。核100也可包括引退单元110。该引退单元110可以在指令被提交之后引退被执行的指令。在实施例中,引退这些被执行的指令会导致:通过对这些指令的执行,提交处理器状态;解除分配由这些指令使用的物理寄存器,等等。如图1中所示,核100可附加地包括追踪高速缓存或微代码只读存储器(uROM)111,其用于存储微代码和/或追踪已被取出(例如,由取出单元102取出)的指令。可将存储在该uROM111中的微代码用于配置核100的各种硬件组件。在实施例中,可通过与该处理器核100通信的另一组件(例如,所讨论的计算机可读介质或其他存储设备)来加载被存储在该uROM111中的微代码。核100也可包括重排序缓冲器(ROB)112,其用于存储关于用于由处理器核100的各种组件访问的进行中指令(或uop)的信息。核100可进一步包括RAT(寄存器别名表)114,其用于保持逻辑(或架构)寄存器(例如,由软件指令的操作数所标识的那些寄存器)到对应的物理寄存器的映射。在一个实施例中,该RAT114中的每一个字段可包括被分配到每一个物理寄存器的ROB标识符。此外,加载缓冲器116和存储缓冲器118(可在本文中将它们统称为存储器顺序缓冲器(MOB))可分别存储还未被加载或未被写回到主存储器(例如,在该处理器核100外部的、诸如存储器164之类的存储器)中的待处理(pending)的存储器操作。MOB逻辑119可执行与本文所讨论的缓冲器116和118有关的各种操作。此外,处理器核100可包括总线单元120,其用于允许经由一个或多个总线的、在处理器核100的多个组件和其他组件之间的通信。一个或多个填充缓冲器122可在将接收到的数据存储到高速缓存162中之前,临时地存储(例如,在总线上)从存储器164接收到的数据。在一个实施例中,可将一个或多个事务状态寄存器160包括在核100中。每一个事务状态寄存器160可对应于正在核100上执行的事务。第一事务可在第二事务的事务状态寄存器160中存储值,以指示该第二事务将中止(例如,由于向该第一事务分配了比该第二事务更高的优先级以例如避免冲突)。在实施例中,每一个事务可监测其各自的状态寄存器160以确定其是否应当中止。例如,可将状态寄存器160用于即使在可能将事务挂起的情形下(例如,临时将该事务切换到核(100)之外)也中止该事务。这可允许其他事务不必等待明确的中止而继续进行。同样,可在存储器中(例如,高速缓存162和/或存储器164中)而不是硬件寄存器中实现该状态寄存器160。下列讨论伴随用于使用TM区标识符(或颜色)来改善TM吞吐量的技术的详细实施例。最初的讨论将在高层级上讨论对TM区标识符和通常用于改善吞吐量的各种组件的使用。随后,详述处理事务的加载和存储的更具体的示例。区指示来自相同线程的多个事务性存储器例程可在给定的本文档来自技高网...
用于改善连续的事务性存储器区的吞吐量的系统、方法和装置

【技术保护点】
一种系统,包括:多个核,用于执行同时多线程化,所述核中的至少一个核用于执行多个线程的指令的无序指令执行;要在所述核中的两个或更多个核之间共享的至少一个共享高速缓存电路;所述核中的至少一个核包括:指令取出电路,用于取出所述线程中的一个或多个线程的指令;指令解码电路,用于解码所述指令;寄存器重命名电路,用于重命名寄存器组的寄存器;指令高速缓存,用于存储要被执行的指令;数据高速缓存,用于存储数据;至少一个缓冲器,用于存储与加载指令和存储指令相关联的条目;事务处理电路,用于处理指令的事务区,所述指令包括与第一事务区相关联的加载指令和存储指令中的一个或多个,所述事务处理电路用于处理事务开始指令与事务结束指令,所述事务开始指令指示指令的所述事务区的开始,所述事务结束指令指示指令的所述事务区的结束;所述事务处理电路用于分配事务标识符以便在事务区之间区分;事务检查点电路,用于响应于指令的所述事务区的所述开始而存储架构状态;事务状态电路,用于存储与第一事务相关联的可编程失败指示,其中所述第一事务基于其相关联的失败指示来失败或继续,且其中所述可编程失败指示用于响应于所述第一事务加载的数据被第二事务修改而指示失败;以及用于响应于所述第一事务的失败来恢复所述事务检查点电路所存储的架构状态的电路;存储器控制器,用于将所述核耦合至系统存储器;以及至少一个共享高速缓存,用于在所述核中的两个或更多个核之间共享。...

【技术特征摘要】
2012.11.30 US 13/691,2181.一种系统,包括:多个核,用于执行同时多线程化,所述核中的至少一个核用于执行多个线程的指令的无序指令执行;要在所述核中的两个或更多个核之间共享的至少一个共享高速缓存电路;所述核中的至少一个核包括:指令取出电路,用于取出所述线程中的一个或多个线程的指令;指令解码电路,用于解码所述指令;寄存器重命名电路,用于重命名寄存器组的寄存器;指令高速缓存,用于存储要被执行的指令;数据高速缓存,用于存储数据;至少一个缓冲器,用于存储与加载指令和存储指令相关联的条目;事务处理电路,用于处理指令的事务区,所述指令包括与第一事务区相关联的加载指令和存储指令中的一个或多个,所述事务处理电路用于处理事务开始指令与事务结束指令,所述事务开始指令指示指令的所述事务区的开始,所述事务结束指令指示指令的所述事务区的结束;所述事务处理电路用于分配事务标识符以便在事务区之间区分;事务检查点电路,用于响应于指令的所述事务区的所述开始而存储架构状态;事务状态电路,用于存储与第一事务相关联的可编程失败指示,其中所述第一事务基于其相关联的失败指示来失败或继续,且其中所述可编程失败指示用于响应于所述第一事务加载的数据被第二事务修改而指示失败;以及用于响应于所述第一事务的失败来恢复所述事务检查点电路所存储的架构状态的电路;存储器控制器,用于将所述核耦合至系统存储器;以及至少一个共享高速缓存,用于在所述核中的两个或更多个核之间共享。2.如权利要求1所述的系统,其特征在于还包括:加速器接口电路,用于将所述核中的一个或多个核耦合至加速器设备。3.如权利要求1所述的系统,其特征在于,所述数据高速缓存对于每个高速缓存行包括至少一个位,所述至少一个位在所述事务区从所述高速缓存行推测性地读取数据时被设置,所述至少一个位可用于将所述高速缓存行标识为被所述事务区使用。4.如权利要求3所述的系统,其特征在于,所述至少一个位响应于所述事务区的完成而被清除。5.如权利要求1所述的系统,其特征在于还包括高速外围组件互连(PCIe)电路。6.如权利要求1所述的系统,其特征在于还包括:与所述核中的一个或多个核耦合的至少一个存储设备。7.如权利要求1所述的系统,其特征在于还包括:与所述核中的一个或多个核耦合的至少一个通信设备。8.如权利要求1所述的系统,其特征在于,所述系统存储器包括动态随机存取存储器。9.如权利要求1所述的系统,其特征在于还包括:与所述加速器接口电路耦合的一个或多个加速器设备。10.如权利要求9所述的系统,其特征在于,所述一个或多个加速器设备包括现场可编程门阵列(FPGA)设备。11.如权利要求1所述的系统,其特征在于还包括:图形电路,用于执行图形处理操作。12.一种系统,包括:多个核的同时多线程化装置,用于执行多个线程的无序指令执行;要在所述核中的两个或更多个核之间共享的共享高速缓存装置;所述核中的至少一个核包括:指令取出装置,用于取出所述线程中的一个或多个线程的指令;指令解码装置,用于解码所述指令;寄存器重命名装置,用于重命名寄存器组的寄存器;指令高速缓存装置,用于存储要被执行的指令;数据高速缓存装置,用于存储数据;加载/存储缓冲器装置,用于存储与加载指令和存储指令相关联的条目;事务处理装置,用于处理指令的事务区,所述指令包括与第一事务区相关联的加载指令和存储指令中的一个或多个,所述事务处理装置用于处理事务开始指令与事务结束指令,所述事务开始指令指示指令的所述事务区...

【专利技术属性】
技术研发人员:O·M·沙克R·拉吉瓦尔P·卡普瑞奥利M·M·艾尔奥图姆
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1