用于利用锁省略和锁定的选择进行数据共享的自适应处理制造技术

技术编号:14919918 阅读:42 留言:0更新日期:2017-03-30 12:48
在硬件锁省略(HLE)环境中,提供了预测性地确定HLE事务是否应实际获取锁并且非事务性地执行。包括:基于遇到HLE锁获取指令,基于HLE预测器,确定是省略锁并且作为HLE事务继续还是获取锁并且作为非事务继续;基于HLE预测器预测为省略,将锁的地址设定为事务的读取集,并且抑制锁获取指令对锁的任何写入,并且在HLE事务性执行模式中继续,直到遇到xrelease指令或者HLE事务遇到事务性冲突为止,其中,xrelease指令释放锁;以及基于HLE预测器预测为不省略,将HLE锁获取指令视为非HLE锁获取指令且在非事务性模式中继续。

【技术实现步骤摘要】
【国外来华专利技术】
本公开内容一般涉及事务存储器系统,并且更具体地涉及用于通过利用锁省略和锁定的选择自适应地共享数据的方法、计算机程序和计算机系统。
技术介绍
芯片上的中央处理单元(CPU)核的数量和与共享存储器连接的CPU核的数量不断显著增长,以支持增长的工作负载容量要求。协作以处理相同的工作负载的不断增加的CPU数量对软件可伸缩性造成显著的负担;例如,通过传统的信号量保护的共享队列或数据结构变为热点并且导致子线性n路伸缩曲线。传统地,通过在软件中实现更精细粒度的锁定来应对这一点。实现更精细粒度的锁定以提高软件可伸缩性可能是非常复杂且易于出错的,并且按照当今的CPU频率,硬件互连的延迟时间受限于芯片和系统的物理尺寸以及光速。已引入了硬件事务存储器(HTM,或者在本讨论文本中,简称为TM)的实现,其中,在其它中央处理单元(CPU)和I/O子系统看来,一组指令——称为事务——在存储器中的数据结构上以原子的方式操作(在其它文献中,原子操作也称为“块并发”或“串行化”)。事务在不获得锁的情况下乐观地执行,但是,如果在存储器位置上的正在执行的事务的操作与同一存储器位置上的另一操作冲突,那么可能需要中止和重试事务性执行。以前,提出了软件事务存储器实现以支持软件事务存储器(TM)。但是,与软件TM相比,硬件TM可提供改进的性能方面和使用便利性。在2002年8月28日提交的专利技术名称为“Methodandapparatusforthesynchronizationofdistributedcaches”美国专利申请公开No2004/0044850教导了用于分布缓存同步的方法和装置,该专利申请公开的内容通过引用并入本文。具体而言,给出的实施例涉及缓存存储器系统,并且更特别地涉及适于与分布缓存一起使用的分层缓存协议,包含在缓存输入/输出(I/O)集线器内使用。在1994年3月24日提交的专利技术名称为“Partialcachelinewritetransactionsinacomputingsystemwithawritebackcache”的美国专利5586297教导了提出了一种包含存储器、输入/输出适配器和处理器的计算系统,该专利的内容通过引用并入本文。处理器包含其中可存储脏数据的写回缓存。当执行从输入/输出适配器到存储器的一致写入时,数据块从输入/输出适配器被写入到存储器内的存储器位置。数据块包含的数据比写回缓存中的全缓存行少。搜索写回缓存以确定写回缓存是否包含该存储器位置的数据。当搜索确定写回缓存包含该存储器位置的数据时,包含该存储器位置的数据的全缓存行被清除。
技术实现思路
提供一种硬件锁省略(HLE)环境中的用于预测性地确定HLE事务是否应实际获取锁并且非事务性地执行的方法。根据本公开内容的实施例,方法可包括:基于遇到HLE锁获取指令,基于HLE预测器,确定是省略锁并且作为HLE事务继续还是获取锁并且作为非事务继续;基于HLE预测器预测为省略,将锁的地址设定为HLE事务的读取集,并且抑制由锁获取指令对锁的任何写入,并且在HLE事务性执行模式下继续,直到遇到xrelease指令(其中,xrelease指令释放锁)或者HLE事务遇到事务性冲突为止;以及基于HLE预测器预测不省略,将HLE锁获取指令视为非HLE锁获取指令且在非事务性模式中继续。在本公开内容的另一实施例中,可提供硬件锁省略(HLE)环境中的用于预测性地确定HLE事务是否应实际获取锁并且非事务性地执行的计算机程序产品。该计算机程序产品可包含:可通过处理电路读取并且存储供处理电路执行以用于执行包括以下步骤的方法的指令的计算机可读存储介质:基于遇到HLE锁获取指令,基于HLE预测器,确定是省略锁并且作为HLE事务继续还是获取锁并且作为非事务继续;基于HLE预测器预测为省略,将锁的地址设定为事务的读取集,并且抑制由锁获取指令对锁的任何写入,并且在HLE事务性执行模式中继续,直到遇到xrelease指令(其中,xrelease指令释放锁)或者HLE事务遇到事务性冲突为止;以及基于HLE预测器预测不省略,将HLE锁获取指令视为非HLE锁获取指令且在非事务性模式中继续。在本公开内容的另一实施例中,提供硬件锁省略(HLE)环境中的用于预测性地确定HLE事务是否应实际获取锁并且非事务性地执行的计算机系统。该计算机系统可包含:存储器;和与存储器通信的处理器,其中,计算机系统被配置为执行包括以下步骤的方法:基于遇到HLE锁获取指令,基于HLE预测器,确定是省略锁并且作为HLE事务继续还是获取锁并且作为非事务继续;基于HLE预测器预测为省略,将锁的地址设定为事务的读取集,并且抑制由锁获取指令对锁的任何写入,并且在HLE事务性执行模式中继续,直到遇到xrelease指令(其中,xrelease指令释放锁)或者HLE事务遇到事务性冲突为止;以及基于HLE预测器预测为不省略,将HLE锁获取指令视为非HLE锁获取指令且在非事务性模式中继续。附图说明根据要结合附图阅读的本公开内容的解释性的实施例的以下详细描述,这里公开的实施例的特征和优点将变得明显。附图的各种特征没有按比例,因为示图为了阐明,以有利于本领域技术人员结合具体描述理解本公开内容。在附图中:图1和图2示出根据本公开内容的实施例的示例多核事务存储器环境;图3示出根据本公开内容的实施例的示例CPU的示例部件;图4示出根据示例性硬件或软件实施例的用于利用在锁省略与锁定之间的选择来自适应地共享数据的方法的流程图;图5示出在存在HLE支持的环境中实现也称为HLE预测器或硬件锁虚拟器的冲突预测器的流程图;图6示出根据不存在附加的硬件能力的示例性实施例的用于通过利用在锁省略与锁定之间的选择来自适应地共享数据的方法的流程图;图7示出根据具有硬件锁监视的示例性实施例的用于通过利用在锁省略与锁定之间的选择来自适应地共享数据的方法的流程图;图8~9示出自适应地共享数据的示例性流程;和图10是根据图4~7的方法的至少一个示例性实施例的计算机环境的硬件和软件的示意性框图。具体实施方式在历史上,计算机系统或处理器仅具有单个处理器(aka处理单元或中央处理单元)。处理器包含指令处理单元(IPU)、分支单元和存储器控制单元等。这种处理器能够一次执行程序的单个线程。开发了操作系统,该操作系统可通过分配程序在处理器上执行一时间周期,并然后分配另一程序在处理器上执行另一时间周期来时间共享服务器。随着技术演变,常常向处理器以及包含转换后援缓冲器(TLB)的本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/CN105683906.html" title="用于利用锁省略和锁定的选择进行数据共享的自适应处理原文来自X技术">用于利用锁省略和锁定的选择进行数据共享的自适应处理</a>

【技术保护点】
一种硬件锁省略HLE环境中的方法,所述方法用于预测性地确定HLE事务是否应实际获取锁并且非事务性地执行,所述方法包括:基于遇到HLE锁获取指令,基于HLE预测器,确定是省略锁并且作为HLE事务继续还是获取锁并且作为非事务继续;基于HLE预测器预测为省略,将锁的地址设定为HLE事务的读取集,并且抑制锁获取指令对锁的任何写入,并且在HLE事务性执行模式中继续,直到遇到xrelease指令或者HLE事务遇到事务性冲突为止,其中,xrelease指令释放锁;以及基于HLE预测器预测为不省略,将HLE锁获取指令视为非HLE锁获取指令且在非事务性模式中继续。

【技术特征摘要】
【国外来华专利技术】2013.10.14 US 14/052,960;2014.02.27 US 14/191,5811.一种硬件锁省略HLE环境中的方法,所述方法用于预测性地确定HLE事务是否应实际
获取锁并且非事务性地执行,所述方法包括:
基于遇到HLE锁获取指令,基于HLE预测器,确定是省略锁并且作为HLE事务继续还是获
取锁并且作为非事务继续;
基于HLE预测器预测为省略,将锁的地址设定为HLE事务的读取集,并且抑制锁获取指
令对锁的任何写入,并且在HLE事务性执行模式中继续,直到遇到xrelease指令或者HLE事
务遇到事务性冲突为止,其中,xrelease指令释放锁;以及
基于HLE预测器预测为不省略,将HLE锁获取指令视为非HLE锁获取指令且在非事务性
模式中继续。
2.根据权利要求1所述的方法,还包括:
基于对HLE事务的预测的成功来更新HLE预测器,其中HLE预测器预测HLE事务是否可能
中止。
3.根据权利要求1所述的方法,还包括:
基于第一次遇到具有锁地址的HLE事务,将与锁地址相关联的成功HLE事务执行的计数
初始化为零;
基于中止具有锁地址的任何随后HLE事务,递增预测器中与HLE事务的锁地址相关联的
失败HLE事务执行的计数;
基于完成具有锁地址的任何随后HLE事务,递增HLE预测器中与HLE事务的锁地址相关
联的成功HLE事务执行的计数,其中,失败HLE事务性执行的高的计数指示可能中止。
4.根据权利要求1所述的方法,还包括:
在非事务性模式中监视另一处理对锁的尝试访问;和
当检测到所述另一处理的尝试访问时,递增失败HLE事务执行的计数。
5.根据权利要求1所述的方法,还包括:
跟踪时间窗口内的成功HLE事务执行的计数和失败HLE事务执行的计数;
比较在所述时间窗口期间的失败HLE事务执行的计数与失败的阈值数量;以及
基于失败HLE事务执行的计数超过所述失败的阈值数量,将所述时间窗口的剩余部分
缺省到非事务性模式。
6.根据权利要求5所述的方法,还包括:
基于所述时间窗口到期,将成功HLE事务执行的计数和失败HLE事务执行的计数复位为
零。
7.一种硬件锁省略HLE环境中的计算机程序产品,所述计算机程序产品用于预测性地
确定HLE事务是否应实际获取锁并且非事务性地执行,所述计算机程序产品包含:
计算机可读存储介质,所述计算机可读存储介质能通过处理电路读取,并且存储由处
理电路执行以用于执行包括以下步骤的方法的指令:
基于遇到HLE锁获取指令,基于HLE预测器,确定是省略锁并且作为HLE事务继续还是获
取锁并且作为非事务继续;
基于HLE预测器预测为省略,将锁的地址设定为事务的读取集,并且抑制锁获取指令对
锁的任何写入,并且在HLE事务性执行模式中继续,直到遇到xrelease指令或者HLE事务遇
到事务性冲突为止,其中,xrelease指令释放锁;和
基于HLE预测器预测为不省略,将HLE锁获取指令视为非HLE锁获取指令并且在非事务
性模式中继续。
8.根据权利要求7所述的计算机程序产品,还包括:
基于对HLE事务的预测的成功来更新HLE预测器,其中HLE预测器预测HLE是否可能中
止。
9.根据权利要求7所述的计算机程序产品,还包括:
在非事务性模式中监视另一处理对锁的尝试访问;和
当检测到所述另一处理的尝试访问时,递增失败HLE事务执行的计数。
10.根据权利要求7所述的计算机程序产品,还...

【专利技术属性】
技术研发人员:M·K·克施温德M·M·迈克尔V·萨拉普拉岑中龙
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1