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

用于测试事务性执行状态的系统技术方案

技术编号:14992776 阅读:61 留言:0更新日期:2017-04-03 23:19
本申请公开了用于测试事务性执行状态的指令和逻辑。公开了用于测试事务性执行状态的新颖指令、逻辑、方法和装置。实施例包括解码用于开始事务性区域的第一指令。响应于该第一指令,产生用于一组架构状态寄存器的检查点,并追踪来自与该第一指令相关联的事务性区域中的处理元件的存储器访问。然后解码用于检测该事务性区域的事务性执行的第二指令。响应于解码第二指令而执行操作,以确定第二指令的执行上下文是否在该事务性区域之内。然后响应于第二指令而更新第一标志。在一些实施例中,响应于第二指令,可选地更新寄存器,和/或可选地更新第二标志。

【技术实现步骤摘要】
本专利技术专利申请是国际申请号为PCT/US2013/046633,国际申请日为2013年06月19日,进入中国国家阶段的申请号为201380028480.6,名称为“用于测试事务性执行状态的指令和逻辑”的专利技术专利申请的分案申请。相关申请本申请是2012年2月2日提交的指定美国的当前待审的国际申请PCT/US2012/023611的部分继续申请。在先的该国际申请通过引用结合于此,如同其整体记载于本申请中。
本公开一般涉及处理逻辑、微处理器以及相关的指令集架构的领域,这些指令集架构在被处理器或其他处理逻辑所执行时执行逻辑、数学或其他功能性操作。具体地,本公开涉及用于测试事务性执行状态的指令和逻辑。
技术介绍
半导体处理和逻辑设计的进步已允许在集成电路器件上可能存在的逻辑量的增加。因此,计算机系统配置已经从系统中的单个或多个集成电路发展到单个集成电路上存在的多个处理核和多个逻辑处理器。处理器或集成电路通常包括单个处理器管芯,其中处理器管芯可包括任意数量的核或逻辑处理器。集成电路上日益增加的核和逻辑处理器的数量使得更多软件线程能够被并发地执行。然而,可能同时执行的软件线程的数量的增加已造成与同步软件线程之间共享的数据有关的问题。用于访问多核或多逻辑处理器系统中的共享数据的一个常见的解决方案包括使用锁来保证对共享数据的多个访问之间的互斥。然而,不断增加的执行多个软件线程的能力对锁定数据产生瓶颈,导致线程要等待其它线程的完成(使它们的执行串行化),从而降低了使多个线程并发执行的益处。此外,在写入方试图修改数据的情况下,一些只读访问可使用锁来确保数据的互斥,这会带来排斥其它只读访问的不希望有的副作用。例如,考虑保持共享数据的散列表。利用锁系统,编程者可锁定整个散列表,从而允许一个线程访问整个散列表。然而,其它线程的吞吐量和性能可能不利地受影响,因为它们无法访问散列表中的任何条目,直到该锁被释放为止。替代地,散列表中的每个条目可能被锁定,从而导致软件中的许多锁结构。在这样的构造中,可能需要获得许多锁以执行特定任务,这会导致与其它线程的死锁。无论哪种方式,在将该简单示例外推到大的可缩放程序中之后,显然锁竞争、串行化、精细粒度同步以及死锁避免的复杂程度变成编程者的极其繁琐的负担。另一种最近的数据同步技术包括使用事务性存储器(TM)。通常,事务性执行包括原子地执行多个微操作、操作或指令的分组。在上述示例中,两个线程在散列表内执行,并且它们的存储器访问被监控/追踪。如果两个线程访问/改变相同的条目,则可执行冲突化解以确保数据有效性。一种类型的事务性执行包括软件事务性存储器(STM),其中通常在没有硬件支持的情况下在软件中执行对存储器访问、冲突化解、中止任务以及其它事务性任务的追踪。另一类型的事务性执行包括硬件事务性存储器(HTM)系统,其中包括用于支持访问追踪、冲突化解以及其它事务性任务的硬件。类似于事务性存储器的技术包括硬件锁省略(HLE),其中在不使用锁的情况下实验性地执行被锁定的关键区段。如果执行成功(即无冲突),则使结果全局可见。换言之,就像省略了来自关键区段的锁指令的事务那样执行关键区段,而不是执行原子地定义的事务。作为结果,在上述示例中,不是用事务来代替散列表执行,而是试验性地执行由锁指令定义的关键区段。多个线程类似地在散列表中执行,并且它们的访问被监控/追踪。如果这些线程中的任一个对同一条目进行访问/改动,则可执行冲突化解以确保数据有效性。但是如果未检测到冲突,则原子地进行对散列表的更新。如所见,事务性执行和锁省略具有在多个线程中提供更佳性能的潜力。然而,HLE和TM对于微处理器是相对新的研究领域。因此,尚未充分探索或详细研究处理器中的HLE和TM实现方式。附图说明在附图的各图中通过示例而非限制地示出本专利技术。图1示出用于使用指令和逻辑来测试事务性执行状态的计算系统的一个实施例。图2示出用于使用指令和逻辑来测试事务性执行状态的处理器的一个实施例。图3A示出根据一个实施例的用于提供用于测试事务性执行状态的功能的指令编码。图3B示出根据另一实施例的用于提供用于测试事务性执行状态的功能的指令编码。图3C示出根据另一实施例的用于提供用于测试事务性执行状态的功能的指令编码。图3D示出根据另一实施例的用于提供用于测试事务性执行状态的功能的指令编码。图3E示出根据另一实施例的用于提供用于测试事务性执行状态的功能的指令编码。图4A是处理器微架构中用于执行提供用于测试事务性执行状态的功能的指令的一个实施例的框图。图4B示出用于执行提供用于测试事务性执行状态的功能的指令的处理器微架构的一个实施例的要素。图5是用于执行提供用于测试事务性执行状态的功能的指令的处理器的一个实施例的框图。图6是用于执行提供用于测试事务性执行状态的功能的指令的计算机系统的一个实施例的框图。图7是用于执行提供用于测试事务性执行状态的功能的指令的计算机系统的另一实施例的框图。图8是用于执行提供用于测试事务性执行状态的功能的指令的计算机系统的另一实施例的框图。图9是用于执行提供用于测试事务性执行状态的功能的指令的芯片上系统的一个实施例的框图。图10是用于执行提供用于测试事务性执行状态的功能的指令的处理器的实施例的框图。图11是提供用于测试事务性执行状态的功能的IP核开发系统的一个实施例的框图。图12示出提供用于测试事务性执行状态的功能的架构仿真系统的一个实施例。图13示出用于转换提供用于测试事务性执行状态的功能的指令的系统的一个实施例。图14示出提供用于测试事务性执行状态的功能的装置的一个实施例。图15示出用于提供用于测试事务性执行状态的功能的过程的一个实施例的流程图。图16示出用于提供用于测试事务性执行状态的功能的过程的替代实施例的流程图。具体实施方式本申请中公开的用于测试事务性执行状态的指令和逻辑的一些实施例可结合处理器指令集架构(ISA)事务性同步扩展(TSX)来实现。这样的扩展可提供动态地检测在多线程软件环境中何时需要通过锁保护的关键区段的串行化的能力。编程者指定的代码区(称为事务性区域)可事务性地执行。如果该事务性执行成功地完成(即没有来自另一进程或线程的竞争),则在成功完成并从该事务性区域退出时,所有存储器操作或存储器中的数据的修改将如同原子地或同时地发生。硬件锁省略(HLE)是这样本文档来自技高网...

【技术保护点】
一种系统,包括:多个处理器;处理器互连,用于通信地耦合所述处理器中的两个处理器;系统存储器,包括动态随机存取存储器,通信地耦合至所述两个处理器;所述多个处理器中的一个或多个包括:多个多线程核;所述多个多线程核中的一个或多个用于进行多个线程的指令的乱序指令执行,所述多个多线程核中的一个或多个包括:指令取出逻辑,用于取出所述多个线程中的一个或多个的指令,指令解码单元,用于解码所述指令,寄存器重命名逻辑,用于重命名寄存器组内的一个或多个寄存器,指令高速缓存,用于高速缓存待执行的指令,数据高速缓存,用于高速缓存数据,二级(L2)高速缓存单元,用于高速缓存指令和数据,以及执行单元,用于执行指令的事务性执行区域,所述执行单元具有第一指令,所述第一指令用于测试与所述事务性执行区域相关的状态。

【技术特征摘要】
2012.06.29 US 13/538,9511.一种系统,包括:
多个处理器;
处理器互连,用于通信地耦合所述处理器中的两个处理器;
系统存储器,包括动态随机存取存储器,通信地耦合至所述两个处理器;
所述多个处理器中的一个或多个包括:
多个多线程核;
所述多个多线程核中的一个或多个用于进行多个线程的指令的乱序指令执行,所述多
个多线程核中的一个或多个包括:
指令取出逻辑,用于取出所述多个线程中的一个或多个的指令,
指令解码单元,用于解码所述指令,
寄存器重命名逻辑,用于重命名寄存器组内的一个或多个寄存器,
指令高速缓存,用于高速缓存待执行的指令,
数据高速缓存,用于高速缓存数据,
二级(L2)高速缓存单元,用于高速缓存指令和数据,以及
执行单元,用于执行指令的事务性执行区域,所述执行单元具有第一指令,所述第一指
令用于测试与所述事务性执行区域相关的状态。
2.如权利要求1所述的系统,其特征在于,还包括:
加速...

【专利技术属性】
技术研发人员:R·拉吉瓦尔B·L·托尔K·K·赖M·C·梅尔腾M·G·迪克森
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1