非事务储存指令制造技术

技术编号:11024196 阅读:56 留言:0更新日期:2015-02-11 12:48
即使与指令关联的事务中止,事务执行模式下所执行的NONTRANSACTIONAL STORE指令也执行所保留的存储。所述存储包括用户指定的信息,其可以促进中止的事务的调试。

【技术实现步骤摘要】
【国外来华专利技术】非事务存储指令
本专利技术大体上关于多处理计算环境,且尤其关于此类计算环境内的事务处理。
技术介绍
多处理器编程中的持久挑战为由多个中央处理单元(CPU)对同一储存位置的更 新的挑战。更新储存位置的许多指令(甚至包括诸如AND的简单逻辑运算)用对该位置的 多次存取来进行该更新。举例而言,首先提取储存位置,且接着储存回已更新结果。 为了使多个CPU安全地更新同一储存位置,序列化对该位置的存取。用先前由国 际商业机器公司提供的S/360架构引入的一个指令(TEST AND SET指令)提供储存位置的 连锁更新(interlocked update)。连锁更新意谓:如由其他CPU及输入/输出(I/O)子系 统(例如,通道子系统)所观察的那样,指令的整个储存存取看来像是自动地发生的一样。 稍后,由国际商业机器公司提供的S/370架构引入COMPARE AND SWAP及COMPARE DOUBLE AND SWAP指令,该些指令提供执行连锁更新的较精密方式且允许通常被称为锁定字组(或 旗号)的实施。最近新增的指令已提供额外连锁更新能力,包括COMPARE AND SWAP AND PURGE及COMPARE AND SWAP AND STORE。然而,所有该些指令提供用于仅单一储存位置的 连锁。 较复杂的程序技术可需要多个储存位置的连锁更新,诸如,当将一元素新增至一 双向链接清单(doubly-linked list)时。在此类操作中,前向指针及向后指针两者皆看来 像是被同时地更新一样,如由其他CPU及1/0子系统所观察的那样。为了实现此类多重位 置更新,强制程序使用分离的单一序列化点,诸如,锁定字组。然而,锁定字组可提供比所保 证的序列化层级粗略得多的序列化层级;举例而言,锁定字组可序列化数百万个元素的整 个队列,即使仅两个元素正被更新亦如此。程序可结构化数据W使用较精细粒度级序列化 (例如,锁定点阶层),但该引入额外问题,诸如,在违反该阶层时的潜在锁死情形,及在程 序遭遇错误同时保持一或多个锁定时或在不能获取锁定时的复原问题。 除了 W上内容W外,亦存在程序可W执行可能引起或可能不引起异常情况的指令 序列的众多情境。若未发生异常情况,则程序继续;然而,若辨识出异常,则程序可采取校正 动作W消除异常情况。作为一实例,Java可在(例如)理论式执行、函数的部分内嵌和/或 指针空值检查的重新定序中利用此类执行。 在诸如由国际商业机器公司提供的z/OS及其前身的传统操作系统环境中,程序 建立复原环境W拦截程序可遭遇的任何程序异常情况。若程序未拦截到异常,则操作系统 通常针对操作系统未准备好进行处置的异常而例外地终止程序。建立及利用此类环境是昂 贵且复杂的。
技术实现思路
经由提供一种用于执行计算环境内的指令的计算机程序产品而解决先前技术的 缺点且提供优点。该计算机程序产品包括一计算机可读储存介质,该计算机可读储存介质 可由一处理电路读取且储存指令W供该处理电路执行来执行一方法。举例而言,所述方法 包括如下步骤;由处理器获得用于执行的机器指令,所述机器指令是根据计算机架构而对 于计算机运行所限定的,所述机器指令包括;操作码,用于指定非事务存储操作;第一操作 数;W及第二操作数,用于指明用于所述第一操作数的位置;W及由所述处理器执行所述 机器指令,所述执行包括:在所述第二操作数指定的所述位置处非事务地放置所述第一操 作数,其中,无论与所述机器指令关联的事务的中止如何,都保留所述第二操作数处所存储 的信息,并且其中,延迟所述非事务地放置,直到所述处理器的事务执行模式的结束为止。 本文亦描述及主张与一个或多个实施例相关的方法及系统。 贯穿全文实现额外特征及优点。其他实施例及方面在本文中得W详细地描述且被 看作本专利技术的部分。 【附图说明】 现在参照附图将仅通过示例的方式描述本专利技术的实施例,其中: 图1描绘计算环境的一实施例; 图2A描绘事务开始(T邸GIN)指令的一实例; [001引图2B描绘图2A的TBEGIN指令的字段的另外细节的一实施例; 图3A描绘事务开始受限(T邸GINC)指令的一实例; [001引图3B描绘图3A的T邸GINC指令的字段的另外细节的一实施例; [001引图4描绘事务结束(TEND)指令的一实例; 图5描绘事务中止(TABORT)指令的一实例; 图6描绘嵌套事务的一实例; 图 7 描绘 N0NTRANSACTI0NAL STORE(NTSTG)指令的一实例; 图 8 描绘 EXTRACT TRANSACTION 肥STING DEPTH(ETND)指令的一实例; 图9描绘事务诊断区块的一实例; 图10描绘中止的实例原因,连同关联中止码及条件码; 图IlA描述与N0NTRANSACTI0NAL STORE指令关联的逻辑的一实例; 图IlB描述与N0NTRANSACTI0NAL STORE指令关联的附加逻辑的一实例; [00巧]图12描述计算机程序产品的一个实施例; 图13描述主机计算机系统的一个实施例; 图14描绘计算机系统的另外实例; 图15描绘包含计算机网络的计算机系统的另一实例; 图16描绘计算机系统的各种元件的一实施例; 图17A描绘图16的计算机系统的执行单元的一实施例; 图17B描绘图16的计算机系统的分支单元的一实施例; 图17C描绘图16的计算机系统的载入/储存单元的一实施例;及 图18描绘模拟主机计算机系统的一实施例。 【具体实施方式】 根据一个实施例,提供一种事务执行(T幻设施。此设施提供用于指令的事务处 理,且在一个或多个实施例中提供如下文所描述的不同执行模式,W及事务处理的嵌套层 级。 [00巧]事务执行设施引入被称作事务执行(T幻模式的CPU状态。在CPU重设之后,CPU 并不处于TX模式。CPU藉由TRANSACTION BEGIN指令进入TX模式。CPU藉由(a)最外部 TRANSACTION END指令(关于内部指令及外部指令的更多细节如下)或化)正被中止的事 务而离开TX模式。虽然处于TX模式,但由CPU进行的储存存取看来像是区块并行的一样, 如由其他CPU及I/O子系统所观察的那样。储存存取(a)在最外部事务在无中止的情况下 结束时被交付至存储器(亦即,例如,在CPU本地的高速缓存或缓冲器中进行的更新经传播 及储存于真实存储器中且可为其他CPU所见),或化)在事务中止时被舍弃。 事务可为嵌套。亦即,在CPU处于TX模式时,CPU可执行另一 TRANSACTION邸GIN 指令。使CPU进入TX模式的指令被称作最外部TRANSACTION BEGIN ;相似地,程序据称处 于最外部事务。TRANSACTION BEGIN的后续执行被称作内部指令;且程序正执行内部事务。 模型提供最小嵌套深度及模型相依最大嵌套深度。EXTRACT TRANSACTION肥STING DEPTH 指令传回当前嵌套深度值,且在一另外实施例中可传回最大嵌套深度值。此技术使用被称 作扁平化嵌套(flattened nest本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201280073580.html" title="非事务储存指令原文来自X技术">非事务储存指令</a>

【技术保护点】
一种用于执行计算环境内的指令的计算机程序产品,所述计算机程序产品包括可由处理电路读取并且存储用于所述处理电路执行的指令的计算机可读存储介质,以用于执行包括以下步骤的方法:由处理器获得用于执行的机器指令,所述机器指令是根据计算机架构而对于计算机运行所限定的,所述机器指令包括:操作码,用于指定非事务存储操作;第一操作数;以及第二操作数,用于指明用于所述第一操作数的位置;以及由所述处理器执行所述机器指令,所述执行包括:在所述第二操作数指定的所述位置处非事务地放置所述第一操作数,其中,无论与所述机器指令关联的事务的中止如何,都保留所述第二操作数处所存储的信息,并且其中,延迟所述非事务地放置,直到所述处理器的事务执行模式的结束为止。

【技术特征摘要】
【国外来华专利技术】2012.06.15 US 13/524,8871. 一种用于执行计算环境内的指令的计算机程序产品,所述计算机程序产品包括可由 处理电路读取并且存储用于所述处理电路执行的指令的计算机可读存储介质,以用于执行 包括以下步骤的方法: 由处理器获得用于执行的机器指令,所述机器指令是根据计算机架构而对于计算机运 行所限定的,所述机器指令包括: 操作码,用于指定非事务存储操作; 第一操作数;以及 第二操作数,用于指明用于所述第一操作数的位置;以及 由所述处理器执行所述机器指令,所述执行包括: 在所述第二操作数指定的所述位置处非事务地放置所述第一操作数,其中,无论与所 述机器指令关联的事务的中止如何,都保留所述第二操作数处所存储的信息,并且其中,延 迟所述非事务地放置,直到所述处理器的事务执行模式的结束为止。2. 如权利要求1所述的计算机程序产品,其中,所述事务执行模式的结束由与所述机 器指令或中止条件关联的最外部事务的结束引起。3. 如权利要求1所述的计算机程序产品,其中,多个非受限存储显现为对于其它处理 器的同时存储。4. 如权利要求1所述的计算机程序产品,其中,所述方法还包括: 确定所述处理器是否处于事务执行模式下; 基于所述处理器处于所述事务执行模式下,确定所述事务是受限事务还是非受限事 务;以及 基于所述事务是非受限事务下,继续所述机器指令的执行。5. 如权利要求4所述的计算机程序产品,其中,基于所述事务为受限事务,提供程序异 常并且终止所述机器指令的执行。6. 如权利要求4所述的计算机程序产品,其中,基于所述处理器不处于事务执行模式 下,执行所述机器指令作为存储指令。7. 如权利要求1所述的计算机程序产品,其中,以所述机器指令的索引字段指定的寄 存器的内容、所述机器指令的基本字段指定的寄存器的内容和至少一个位移字段的内容的 组合来形成所述第二操作数。8. 如权利要求1所述的计算机程序产品,其中,所述机器指令包括非事务存储指令,并 且其中,所述方法还包括: 基于事务开始指令的执行而发起所述事务,所述事务有效地延迟将事务存储交付至主 存储器,直到所选择的事务完成为止; 基于执行完成选择的事务的执行的事务结束指令而将所述事务存储交付至主存储 器; 基于结束选择的事务的执行的中止而舍弃所述事务性存储;以及 其中,独立于所述交付或所述舍弃而执行所述非事务地放置。9. 如权利要求1所述的计算机程序产品,其中,所述第一操作数包括所述机器指令指 定的寄存器的内容,所述内容是用户指定的。10. 如权利要求1所述的计算机程序产品,其中,所述事务是在非受限事务的嵌套中的 非受限事务。11. 一种用于执行计算环境内的指令的计算机系统,所述计算机系统包括: 存储器;以及 ...

【专利技术属性】
技术研发人员:D格雷纳C雅各比T斯莱格尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1