用于挽救部分执行的硬件事务的方法和系统技术方案

技术编号:13899326 阅读:58 留言:0更新日期:2016-10-25 12:03
本公开涉及挽救硬件事务。事务性存储器系统挽救部分执行的硬件事务。为了硬件事务的代码区域的事务性执行,事务性存储器系统的处理器确定关于将要失败处理程序的信息。处理器保存硬件事务的状态信息,该状态信息可用来确定硬件事务要被挽救还是中止。处理器在硬件事务的事务性执行期间检测将要失败条件。基于该检测,处理器利用关于将要失败处理程序的信息执行将要失败处理程序,将要失败处理程序确定硬件事务要被挽救还是中止。

【技术实现步骤摘要】
【国外来华专利技术】
本公开一般而言涉及事务性执行,并且更具体而言涉及挽救部分执行的硬件事务。
技术介绍
芯片上中央处理单元(CPU)核心的数量和连接到共享存储器的CPU核心的数量继续显著增长,以支持日益增加的工作负荷容量需求。合作以处理相同工作负荷的CPU的不断增加的数量对软件可伸缩性置以显著的负担;例如,受传统信号灯保护的共享队列或数据结构变成热点并导致次线性的n路缩放曲线。传统上这已经通过在软件中实现细粒度的锁定以及利用硬件中更低的等待时间/更高的带宽互连被抵消。实现细粒度的锁定以提高软件可伸缩性会非常复杂且容易出错,并且以今天的CPU频率,硬件互连的等待时间受芯片和系统的物理尺寸以及受光的速度的限制。硬件事务性存储器(HTM,或者在本讨论中,简称为TM)的实现已被引入,其中被称为事务的一组指令以原子的方式对存储器中的数据结构操作,如由其它中央处理单元(CPU)和I/O子系统看到的(在其它文献中,原子操作也被称为“块流(block current)”或“序列化的”)。事务在未获得锁的情况下乐观地执行,但是,对于正在执行的事务,如果对存储器位置的操作与对同一存储器位置的另一操作冲突,则可能需要中止并重试事务执行。先前,已经提出了软件事务性存储器实现,以支持软件事务性存储器(TM)。但是,硬件TM可以提供优于软件TM的改进的性能方面和易用性。于2005年7月29日提交的标题为“Direct-Update Software Transactional Memory”的美国专利公开No.2007/0028056教导了事
务性存储器编程接口,它允许线程直接和安全地访问事务中的一个或多个共享存储器位置,同时维护控制结构来管理由一个或多个其它并发线程对那些相同位置的存储器访问。由线程访问的每个存储器位置与登记记录关联,并且每个线程维护其存储器访问的事务日志。在事务中,读操作直接对存储器位置执行并且写操作直接对存储器位置尝试,这与一些中间缓冲区相反。线程可以检测存储器位置的登记记录与该线程的事务日志之间的不一致性,以确定事务中的存储器访问是否不可靠并且该事务是否应当被重新尝试。于2009年11月6日提交的标题为“Hybrid Transactional Memory System(HybridTM)and Method”的美国专利公开No.2011/0119452教导了一种计算机处理系统,该系统具有存储器和用于利用计算机程序处理数据的处理设施,该系统是混合事务性存储器多处理机系统,其具有经由高速互连元件耦合到系统物理存储器阵列的模块1…n,即I/O设备。CPU就像在多芯片模块中一样与微处理器集成,该微处理器包含或者在CPU模块中耦合到辅助线程设施,以及存储器控制器、高速缓存控制器、高速缓冲存储器和构成CPU的部分的其它组件,所述CPU的部分连接到在体系架构和操作系统下运转的高速互连,以便将计算机系统的元件与物理存储器、各种I/O设备和系统的其它CPU互连。目前的混合事务性存储器元件支持具有简单/成本高效的硬件设计的事务存储器系统,其可以处理有限的硬件资源,但具有事务设施控制逻辑的系统提供仍然可以允许事务参照现有的库并允许程序员在他们的事务内部包括对现有软件库的调用并且不会让用户代码使用第二个基于锁的解决方案的备份辅助线程。
技术实现思路
本公开的实施例提供了一种用于挽救部分执行的硬件事务的事务性存储器系统的方法、计算机系统和计算机程序产品。事务性存储器系统的处理器为了硬件事务的代码区域的事务性执行而确定关于将要失败处理程序的信息。处理器保存硬件事务的状态信息,该状态信息
可用来确定硬件事务是要被挽救还是中止。处理器在硬件事务的事务性执行期间检测将要失败条件。基于检测,处理器利用关于将要失败处理程序的信息执行将要失败处理程序,将要失败处理程序确定硬件事务是要被挽救还是中止。附图说明所公开的实施例的一个或多个方面在本说明书结论处的权利要求书中特别指出并作为例子明确地要求保护。结合附图,所公开的实施例的前述和其它目的、特征和优点从以下详细描述中显而易见,其中:图1和2绘出了根据本公开的实施例的示例多核心事务性存储器环境的框图;图3绘出了根据本公开的实施例的包括示例CPU的示例组件的框图;图4绘出了根据本公开的实施例的示出用于在检测到失败时挽救部分执行的硬件事务的实施例的流程图;图5绘出了示出本专利技术的实施例的流程图;图6绘出了示出本专利技术的实施例的流程图;图7绘出了示出本专利技术的实施例的流程图;图8绘出了示出本专利技术的实施例的流程图;图9绘出了示出本专利技术的实施例的流程图;及图10绘出了根据本公开的实施例的计算机系统的功能框图。具体实施方式过去,计算机系统或处理器只有单个处理器(又名处理单元或中央处理单元)。处理器包括指令处理单元(IPU)、分支单元、存储器控制单元等。此类处理器一次能够执行程序的单个线程。开发出了可以通过在处理器上分派要执行的程序一段时间、然后在处理器上分派要执行的另一个程序另一段时间来时间共享处理器的操作系统。随着技术的发展,存储器子系统高速缓存常常被添加到处理器,以及包
括转换后备缓冲区(TLB)的复杂动态地址转换。IPU本身常常被称为处理器。随着技术继续发展,整个处理器可以在单个半导体芯片或管芯中包装,这种处理器被称为微处理器。然后开发出了结合多个IPU的处理器,这种处理器常常被称为多处理器。多处理器计算机系统(处理器)的每一个这种处理器可以包括个别的或共享的高速缓存、存储器接口、系统总线、地址转换机制等。虚拟机和指令集体系架构(ISA)仿真器向处理器添加了一层软件,这层软件通过在单个硬件处理器中对单个IPU的时间片使用为虚拟机提供多个“虚拟处理器”(又名处理器)。随着技术进一步发展,多线程处理器被开发出来,使得具有单个多线程IPU的单个硬件处理器能够提供同时执行不同程序的线程的能力,从而多线程处理器的每个线程对操作系统看起来就像是处理器。随着技术进一步发展,有可能把多个处理器(每个都具有IPU)放在单个半导体芯片或管芯上。这些处理器被称为处理器核心或仅仅核心。因此,例如,诸如处理器、中央处理单元、处理单元、微处理器、核心、处理器核心、处理器线程和线程之类的术语常常可以互换使用。在不背离本文教导的情况下,本文实施例的各方面可以由包括以上示出的那些的任何或全部处理器实现。其中当术语“线程”或“处理器线程”在本文中被使用时,预期在处理器线程实现中可具有该实施例的特定优点。在基于的实施例中的事务执行在2012年2月的“Architecture Instruction Set Extensions Programming Reference”319433-012A,第8章中部分地教导了多线程应用可以利用不断增加数量的CPU核心来实现更高的性能。但是,多线程应用的编写要求程序员理解并考虑多个线程之间的数据共享。对共享数据的访问通常要求同步机制。这些同步机制被用来确保多个线程通过序列化被应用到共享数据的操作来更新共享数据,这常常是通过使用由锁保护的临界区段。由于序列化限制并发
性,因此程序员尽量限制由于同步造成的开销。事务性同步扩展(TSX)允许处理器动态确定线程是否需要本文档来自技高网
...

【技术保护点】
一种用于挽救部分执行的硬件事务的方法,所述方法包括:为了硬件事务的代码区域的事务性执行而由处理器确定关于将要失败处理程序的信息;由处理器保存硬件事务的状态信息,所述状态信息能用来确定硬件事务要被挽救还是中止;由处理器在硬件事务的事务性执行期间检测将要失败条件;及基于所述检测,由处理器利用关于将要失败处理程序的信息执行将要失败处理程序,所述将要失败处理程序确定硬件事务要被挽救还是中止。

【技术特征摘要】
【国外来华专利技术】2014.02.27 US 14/191,7261.一种用于挽救部分执行的硬件事务的方法,所述方法包括:为了硬件事务的代码区域的事务性执行而由处理器确定关于将要失败处理程序的信息;由处理器保存硬件事务的状态信息,所述状态信息能用来确定硬件事务要被挽救还是中止;由处理器在硬件事务的事务性执行期间检测将要失败条件;及基于所述检测,由处理器利用关于将要失败处理程序的信息执行将要失败处理程序,所述将要失败处理程序确定硬件事务要被挽救还是中止。2.如权利要求1所述的方法,其中由处理器确定关于将要失败处理程序的信息包括以下项中的一个或多个:接收提供用于将要失败处理程序的地址的指令、提供将要失败指示符、以及接收将要失败处理程序的地址。3.如权利要求1所述的方法,其中由处理器保存硬件事务的状态信息还包括:在硬件事务的每条指令完成之后保存状态信息。4.如权利要...

【专利技术属性】
技术研发人员:M·M·迈克尔M·K·格史温德H·W·凯恩三世V·萨拉普拉E·M·施瓦兹
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1