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

用于硬件锁省略(HLE)的后期锁获取机制制造技术

技术编号:7837724 阅读:210 留言:0更新日期:2012-10-12 02:31
本发明专利技术描述了一种用于硬件锁省略(HLE)的后期锁获取机制,其中描述了用于后期锁获取机制的方法和装置。响应于检测到后期锁获取事件,如计时器期满、填满的高速缓存集合以及不可撤回事件,可启动后期锁获取。停止连贯的临界段直到利用与连贯的临界段操作相关联的访问缓冲器项的字段来完成后期锁获取。

【技术实现步骤摘要】

本专利技术涉及处理器执行领域,并且尤其涉及获取用于代码段执行的锁定。
技术介绍
在半导体处理和逻辑设计方面的进步已经允许在集成电路器件中可存在的逻辑数量上的增加。结果,计算机系统配置已经从系统中的单个或者多个集成电路演进成存在于单个集成电路上的多核以及多逻辑处理器。处理器或者集成电路通常包括单个处理器管 芯,其中处理器管芯可包括任意数量的核或者逻辑处理器。在集成电路上的核以及逻辑处理器数量的不断增加使得能够执行更多的软件线程。然而,可同时执行的软件线程数量上的增加已经造成了关于使诸软件线程间共享的数据同步的问题。一种在多核或者多逻辑处理器系统中访问共享数据的常用解决方案包括利用锁来确保对共享数据多个访问上的互斥。然而,执行多个软件线程的日益增加的能力潜在可能导致错误竞争和执行的串行化。例如,考虑一种持有共享数据的散列表。利用锁系统,程序员就可对整个散列表加锁,从而允许一个线程访问整个散列表。然而,其它线程的吞吐量和性能潜在可能受到不利影响,因为在锁被释放之前他们不能访问散列表中的任何项。或者,散列表中的每个项可被加锁。然而,这增加了编程复杂度,因为程序员不得不考虑在散列表之内更多的锁。另一种数据同步技术包括使用事务性存储器(TM)。通常事务性执行包括投机地执行多个微操作,操作,或者指令的编组。在上面的例子中,两个线程皆在散列表内执行,且其访问被监控/跟踪。如果两个线程访问/改变相同的项,则可能中断这两个事务中的一个来解决冲突。然而,一些应用程序可能不能利用事务性存储器编程,结果,通常称为硬件锁省略(HLE)的硬件数据同步技术被用于取消锁以获得类似于事务性存储器的同步效果。结果,HLE能够检测并且预侧代码的临界段。但是,对于事务性存储器或者通过HLE在临界段的执行期间,当HLE预侧不正确的时候,试探性访问跟踪使存储器溢出,或者遇到不可取消事件,通常,中断并且重新开始临界段。然而,中断临界段可能浪费了在中断之前所执行的操作执行周期。附图说明本专利技术通过举例进行说明并且不希望受到附形的限制。图I示出包括后期锁获取机制的多处理部件处理器的实施例。图2示出对于临界段执行后期锁获取的逻辑的实施例。图3a示出对于当前临界段执行后期锁获取方法的流程图的实施例。图3b示出在对于当前临界段的后期锁获取期间停止后续临界段操作方法的流程图的实施例。图3c示出在对于当前临界段的后期锁获取期间停止后续临界段操作方法的流程图的另一个实施例。详细说明在下面的说明中,阐述了很多特定的细节,比如硬件锁省略(HLE)的特定硬件支持的例子、特定的跟踪/元数据方法、处理器中局部/存储器的特定类型、以及存储器存取和位置的特定类型等等,以便提供对本专利技术的彻底理解。但是,本领域技术人员将会明白可不必采用这些细节来实施本专利技术。在其它的例子中,没有详细地描述公知的组件或者方法,比如软件中临界段的编码,临界段的划界,特定的多核和多线程处理器体系结构,中断生成/处理,高速缓存组织,和微处理器特定的操作细节,以免带来对本专利技术不必要的混淆。此处所描述的方法和装置是用于在临界段执行期间的后期锁(Iate-Iock)获取的方案。具体地说,主要关于多核处理器计算机系统来讨论后期锁获取方案。但是,用于后期锁获取方案的方法和装置并不因此受限,因为它们可能在任何集成电路装置或者系统上或与其相关联以及与诸如执行临界段的硬件/软件线程的其它资源结合地实现,所述集成电路装置或者系统比如为蜂窝电话,个人数字助理,嵌入式控制器,移动式平台,桌面平台,和服务器平台。此外,还关于在硬件锁省略(HLE)期间的临界段执行来主要地讨论后期锁获取方案。然而,在任何临界段执行方案期间,比如在事务性执行期间,都可使用后期锁的获取。参考图1,示出多核处理器100的实施例,其能够执行用于临界段的后期锁获取。如图所示,物理处理器100包括任何数量的处理部件。处理部件指代线程、进程、上下文、逻辑处理器、硬件线程、核和/或任何可能共享对处理器资源访问的处理部件,比如保留单元、执行单元、流水线和上级高速缓存/存储器。物理处理器通常指代集成电路,其可包括许任何数量的处理部件,比如核或者硬件线程。核通常指代位于集成电路上能够维持独立体系结构状态的逻辑,其中每一个独立维持的体系结构状态都与至少一些专用执行资源有关。与核相反,硬件线程通常指代位于集成电路上能够维持独立体系结构状态的任何逻辑,其中独立维持的体系结构状态共享对执行资源的访问。如图I中所示出的,物理处理器100包括双核,核101和102,它们共享对上级高速缓存110的访问。此外,核101包括两个硬件线程IOla和IOlb,而核102包括两个硬件线程102a和102b。因此,诸如操作系统或者应用程序的软件实体可能将处理器100视为四个独立的处理器,同时处理器100能够执行四个软件线程。如同所看见的,当某些资源是共享的而其它资源专用于一个体系结构状态的时候,硬件线程和核的术语之间的界线是重叠的。然而通常,操作系统将核和硬件线程视为独立的逻辑处理器,其中操作系统能够独立地在每个逻辑处理器上调度操作。因此,处理部件包括任何能够维持上下文的上述实体,比如核,线程,硬件线程,逻辑处理机,虚拟机,或者其它的处理资源。在一个实施例中,处理器100是能够并行地执行多个线程的多核处理器。这里,第一线程与体系结构状态寄存器IOla相关联,第二线程与体系结构状态寄存器IOlb相关联,第三线程与体系结构状态寄存器102a相关联,并且第四线程与体系结构状态寄存器102b、相关联。在一个实施例中,对处理器100中的处理部件的参考,包括对核101和102、以及线程101a、101b、102a和102b的参考。在另一个实施例中,处理部件指的是在处理域的层级中在相同级别上的元件。例如,核101和102位于相同的域级别中,线程IOla和IOlb位于核101中的相同域级别中,而线程101a、101b、102a和102b位于核101和102中的相同域级别中。尽管处理器100可包括不对称的核,即具有不同配置、功能单元和/或逻辑的核,但是在图I中示出对称的核。结果,将不会详细地讨论示出为与核101相同的核102,以避免使说明模糊不清。如同所说明的,在体系结构状态寄存器IOlb中复制了体系结构状态寄存器101a,因此能够为处理部件IOla和处理部件IOlb存储独立的体系结构状态/上下文。还可能为 线程IOla和IOlb复制其它较小的资源,比如指令指针和在重命名分配器逻辑130中的重命名逻辑。可通过分割来共享一些资源,比如在重排序/退役单元135中的重排序缓冲器、ILTB 120、加载/存储缓冲器180以及队列。可彻底地共享其它的资源,比如通用内部寄存器、页表基址寄存器、低级数据-高速缓存以及数据-TLB 110、执行单元140以及无序单元135。注意可以任何共享核101资源的方式来实现线程。总线接口模块105和诸如系统存储器175、芯片组、北桥或其它的集成电路等处理器100外部的设备通信。存储器175可专用于处理器100或被系统中的其它设备共享。存储器175的例子包括动态随机存取存储器(DRAM),静态RAM(SRAM),非易失性存储器(NV存储器),以及长期存储器。通常地,总线接口单元1本文档来自技高网...

【技术保护点】

【技术特征摘要】
2007.11.07 US 11/936,2491.一种设备,包括 解码逻辑,用于识别在临界段的开始处的、获取用于所述临界段的锁的锁指令; 执行逻辑,用于将所述获取用于所述临界段的锁的锁指令的至少一部分省略,将所述锁指令所参考的地址和锁值存储在锁项中,并执行所述临界段而不需要对所述临界段的锁;以及 后期锁获取逻辑,与所述执行逻辑耦合,所述后期锁获取逻辑用于使得所述执行逻辑响应于在所述临界段的未决期间遇到后期锁获取事件时尝试在所述临界段开始之后执行所述获取用于所述临界段的锁的锁指令的至少一部分,而不需要重新开始所述临界段。2.如权利要求I所述的设备,其特征在于,还包括与所述执行逻辑相关联的高速缓存存储器,其中所述锁指令参考所述锁值以及将与高速缓存存储器的线相关联的地址,并且其中所述后期锁获取逻辑用于使得所述执行逻辑尝试执行所述获取用于所述临界段的锁的锁指令包括如果所述高速缓存存储器的线表示所述临界段的锁是可用的,则所述后期锁获取逻辑用于使得所述执行逻辑执行将所述锁值存储到与所述地址相关联的所述高速缓存存储器的线。3.如权利要求2所述的设备,其特征在于,还包括 存储区,耦合到所述执行逻辑和所述后期锁获取逻辑,所述存储区用于将与所述锁值相关联的地址保持在锁项堆栈的锁项中;以及 检测逻辑,耦合到所述解码逻辑和所述执行逻辑,所述检测逻辑用于识别所述锁指令的至少一部分将被省略以及所述执行逻辑省略所述锁指令的至少一部分的原因,其中所述锁指令的至少一部分包括对所述锁值的地址的存储。4.如权利要求3所述的设备,其特征在于,与所述指令逻辑相关联的存储缓冲器用于保持与所述锁值的地址的存储相关的存储缓冲器项,所述存储缓冲器项用于保持阻塞代码字段,其中与所述存储缓冲器相关联的更新逻辑响应于所遇到的后期锁获取事件而将所述阻塞代码字段更新为阻塞值。5.如权利要求4所述的设备,其特征在于,所述更新逻辑响应于后期锁获取逻辑使所述执行逻辑成功地完成对获取用于所述临界段的锁的锁指令的尝试执行,而将所述阻塞代码字段更新为解锁值。6.如权利要求5所述的设备,其特征在于,所述锁指令包括读取修改写入(RMW)指令,且RMW指令的读取操作包括有存储意图的加载(LSI)操作,并且其中所述后期锁获取逻辑使所述执行逻辑成功地完成对获取用于所述临界段的锁的锁指令的尝试执行包括所述后期锁获取逻辑使所述执行逻辑执行所述LSI操作以从所述地址加载一加载值;执行修改操作以将所述加载值从可用值修改为所述锁值;并将所述锁值写入所述地址以获取所述锁。7.如权利要求I所述的设备,其特征在于,所述后期锁获取事件是从包括下述的组中选择的计时器的到期,其指示在预定量的时间内所述解码逻辑没有检测到与所述锁指令相对应的锁释放指令;高速缓存集合中的所有线均包括投机信息的检测;以及不可撤回事件的发生。8.一种装置,包括 处理部件,用于执行当前临界段以及后续临界段,其中所述处理部件进一步用于省略所述当前临界段的开始处以及后续临界段的锁获取; 访问缓冲器,与所述处理部件相关联,所述访问缓冲器用于保持与来自所述后续临界段的访问操作相关联的访问项,所述访问缓冲器项用于括阻塞代码字段,其中响应于所述访问项保持包括阻塞值的阻塞代码字段,而将阻止来自所述后续临界段的访问操作的分派;以及 更新逻辑,与所述访问缓冲器相耦合,所述更新逻辑在所述处理部件省略了用于当前临界段的锁获取之后,响应于所述处理部件尝试用于当前临界段的后期锁获取而更新所述阻塞代码字段为包括阻塞值,而不需要重新开始当前临界 段。9.如权利要求8所述的设备,其特征在于,所述阻塞代码字段用于默认地保持解锁值,其中响应于所述阻塞代码字段包括所述解锁值,所述访问操作无须被分派。10.如权利要求8所述的设备,其特征在于,尝...

【专利技术属性】
技术研发人员:H·阿卡瑞R·拉杰瓦S·T·斯里尼瓦桑
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1