利用用于聚结内存事务的指示的方法和系统的制作方法

文档序号:8395768
利用用于聚结内存事务的指示的方法和系统的制作方法
【技术领域】
[0001] 本公开总体涉及事务内存(TM)执行领域,并且更具体而言涉及修改用于将多个 内存事务处理为单个事务的代码。
【背景技术】
[0002] 芯片上的中央处理单元(CPU)核的数量以及与共享内存相连的CPU核的数量继 续显著增长以便支持日益增长的工作负载容量的需要。合作起来处理相同工作负载的CPU 的日益增长的数量给软件可缩放性(scalability)带来的重大的负担,例如,由传统旗语 (semaphore)保护的共享队列或数据结构成为热点并且导致子线性n路比例(scaling)曲 线。
[0003] 传统上,这通过在软件中实现更好粒度锁定以及在硬件中采用更低延迟/更高带 宽互联来对付。实现更好粒度锁定来改善软件可缩放性可能会非常复杂并且容易出错,并 且在当今的CPU频率上,硬件互联的延迟受到芯片和系统的物理尺寸以及光速的限制。
[0004] 现在已经引入了硬件事务内存(HTM,或本讨论中简称为TM)的实现方式,其中一 组指令一也称之为事务一以内存的数据结构上的原子方式运行(在其他文献中,原子操作 也被称为"块并行(block concurrent)"或"串行化"),如其它中央处理单元(CPU)以及1/ 〇子系统所看到的。乐观地,事务可以在不获得锁定的情况下执行,但是,如果内存位置上的 执行事务的操作与在相同内存位置上的另一个操作冲突,则可能需要中止或重试该事务执 行。先前,已经提出了一些软件事务内存事项方式来支持人软件事务内存(TM)。但是,硬件 TM也能够提供改善性能方案并且易于在软件TM上使用。
[0005] 在此通过引用整体包含在本申请中的、与2001年5月11日申请标题为"Nested Transactions in a File System(文件系统中的嵌套事务)"的美国专利US7, 185, 005教 导了一些技术,其被提供用于在电子文件系统中执行作为嵌套事务的操作。根据一个方面, 接收用于执行一个或多个文件系统操作的命令。响应于该命令,执行包括所述一个或多个 文件系统操作的多个操作。执行所述多个操作包括(1)执行所述多个操作中的作为第一事 务的部分的第一子集;以及(2)执行所述多个操作中的作为嵌套在第一事务中的第二事务 的部分的第二子集。
[0006] 在此通过引用整体包含在本申请中的、与2005年12月30日申请标题为 "software Assisted Nested Hardware Transactions (软件帮助的嵌套硬件事务)"的美 国专利US7, 730, 286教导了一用于有效执行嵌套事务的方法和装置。提供了用于执行事务 的硬件支持。此外,通过使用紧接于本地内存中的当前嵌套事务之前登录先前值以及存储 与事务的层级相关联的处理器的堆栈,嵌套事务被潜在有效地执行。一旦在嵌套事务内有 失败、中止、或无效事件/访问,在该嵌套事务的执行期间被写入的变脸或内存位置的状态 则回滚到紧接于所述嵌套事务之前,而不是一直回到变量或内存位置在封入(enclosing) 事务之前的原始状态。因此,可以在封入事务内重新执行嵌套事务,而无需弄平(flatten) 所述封入的和嵌套的事务来重新执行所有事情。

【发明内容】

[0007] 本公开的实施例提供了一种用于事务内存系统的方法、计算机系统以及计算机程 序产品,其用用于聚结最外面事务的指示。所述聚结使得针对第一事务的内存存储数据到 内存的提交在第二事务的事务执行(TX)末端处进行。所述事务内存系统的处理器执行一 个或多个聚结指令,用于控制多个最外面事务的聚结。基于执行一个或多个聚结指令,由处 理器确定两个最外面事务是否将被聚结。基于确定两个最外面事务将被聚结,由处理器将 包括在多个最外面事务中的至少两个最外面事务聚结。
【附图说明】
[0008] 本公开的实施例的一个或多个方面被具体指出并且被要求保护为在本说明书的 结论处的权利要求书中的实例。本公开实施例的前述以及其它目的、特征以及优点根据结 合附图所进行的下述描述而更清楚,其中:
[0009] 图1和2描绘了根据本公开的实施例的示例性多核事务内存环境的框图;
[0010] 图3描绘了包括根据本公开的实施例的实例CPU的实例组件的框图;
[0011] 图4图释了根据本公开的实施例的聚结控制器执行的操作活动,该聚结控制器控 制一个最外面事务与另一个的聚结
[0012] 图5图释了根据本公开的实施例被执行用于聚结多个最外面事务的操作活动;
[0013] 图6图释了根据本公开的实施例的通过一种使用事务历史和标志来指导未来聚 结活动的动态预测的操作活动;
[0014] 图7图释了根据本公开的实施例由识别和处理控制事务聚结活动的指示符的控 制指示符执行的操作活动;
[0015] 图8图释了根据本公开的实施例由优化多个最外面事务的聚结以便使得性能增 益最大化的聚结优化器执行操作活动;
[0016] 图9描绘了根据本公开的实施例支持聚结优化器的执行的JavaK'运行时间环境 (JRE)的实例组件;
[0017] 图10描绘了根据本公开的实施例正在执行聚结控制、动态预测、控制指示符以及 聚结优化器的计算设备的组件以及被执行用于最外面事务的聚结的操作活动的任何软件 方面的框图;
[0018] 图11描绘了根据本公开的各个实施例的图10的一处理器的部分存在的各种硬件 构件;
[0019] 图12描绘了根据本公开的实施例用于帮助读取器识别嵌套事务和聚结最外面事 务之间的差别的事务嵌套的实例;
[0020] 图13图释了根据本公开的实施例由执行事务聚结处理的方面的动态编译器执行 的操作活动的方法;
[0021] 图14描绘了根据本公开的实施例的流程图,其图释了利用用于聚结最外面事务 指示的实施例;
[0022] 图15描绘了图释本公开的实施例的流程图;
[0023] 图16描绘了图释本公开的实施例的流程图;
[0024] 图17描绘了图释本公开的实施例的流程图;
[0025] 图18描绘了图释本公开的实施例的流程图;
[0026] 图19描绘了图释本公开的实施例的流程图;
[0027] 图20描绘了图释本公开的实施例的流程图;
[0028] 图21描绘了图释本公开的实施例的流程图;
[0029] 图22描绘了图释本公开的实施例的流程图。
【具体实施方式】
[0030] 从历史上看,计算机系统或处理其只具有单一处理器(也成为处理单元或中央处 理单元)。处理器包括指令处理单元(IPU)、分支单元、内存控制单元等。这样的处理器能 够一次执行程序的单个线程。现在开发了一些操作系统,其能够通过分派一个成组在一段 时间内在处理器上执行而随后分派另一程序在另一段时间内在处理器上执行来对处理器 进行时间共享(time-share)。随着技术的改进,经常将内存子系统超高速缓存器添加到处 理器以及包括转换后备缓冲器(translation lookaside buffer (TLB))的复杂动态地址转 换。IPU本身通常被称为处理器。随着技术的继续演进,整个处理器可以被包封在单
再多了解一些
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1