事务开始/结束指令制造技术

技术编号:11014067 阅读:164 留言:0更新日期:2015-02-05 21:44
提供了事务开始指令和事务结束指令。根据指令的字段,事务开始指令使得启动被约束或未约束事务。事务结束指令结束由事务开始指令开始的事务。

【技术实现步骤摘要】
【国外来华专利技术】用于在计算环境中执行机器指令的方法和计算机系统
一个或多个方面总体上涉及多处理计算环境,并且具体地说涉及在这样的计算环境内的事务处理。
技术介绍
在多处理器编程中的一个持久挑战是由多个中央处理单元(CPU)对于同一存储位置的更新的持久挑战。包括诸如与的甚至简单的逻辑运算的、更新存储位置的许多指令通过对于该位置的多个访问来如此进行。例如,首先,获取存储位置,并且然后,存储回更新的结果。为了多个CPU安全地更新同一存储位置,对于该位置的访问被串行化。使用由国际商业机器公司先前提供的S/360架构引入的一个指令TESTANDSET指令提供了存储位置的联锁更新。联锁更新表示,如其他CPU和输入/输出(I/O)子系统(例如,信道子系统)所观察,指令的整体存储访问看起来原子地出现。后来,由国际商业机器公司提供的S/370架构引入了COMPAREANDSWAP(比较和交换)和COMPAREDOUBLEANDSWAP(比较加倍和交换)指令,该指令提供了执行联锁更新的更复杂的手段,并且允许通常被称为锁字(或信号量)的部分的实现。近来增加的指令已经提供了另外的联锁更新能力,包括COMPAREANDSWAPANDPURGE(比较和交换和清除)和COMPAREANDSWAPANDSTORE(比较和交换和商店)。然而,所有这些指令提供了仅用于单个存储位置的联锁。更复杂的程序技术可能例如当向双向链表增加元素时要求多个存储位置的联锁更新。在这样的操作中,正向和反向指针都看起来同时被更新,如其他CPU和I/O子系统所观察的那样。为了进行这样的多位置更新,强制程序使用独立的单串行点,诸如锁字。然而,锁字可以提供比所保证者更粗糙的串行水平;例如,锁字串行化以百万计的元素的整个队列,即使仅在更新两个元素。该程序可以将数据结构化以使用更细粒度的串行化(例如,锁点的分级),但是那引入了另外的问题,诸如:如果该分级被违反则导致的可能死锁情况;以及,如果在保持一个或多个锁的同时该程序遭遇错误或如果不能获取该锁则导致的恢复问题。除了上面的情况之外,也存在多个情况,其中,程序可以执行可能或可能不导致异常情况的指令的序列。如果未出现异常情况,则该程序继续;然而,如果识别了异常,则该程序可以采取校正行为来消除异常情况。作为一个示例,可以在例如推测执行、功能的部分联机和/或指针空检查的重新排序中利用这样的执行。Java和所有基于Java的商标和徽标是Oracle和/或其附属公司的商标或注册商标。在诸如由国际商业机器公司提供的IBMz/和其前任的经典操作系统环境中,程序建立恢复环境以截取它可能遇到的任何程序异常情况。通过该程序未截取到异常,则该操作系统通常因为该操作系统未准备好处理的异常而异常地结束该程序。建立和利用这样的环境成本大并且复杂。IBM、z/OS、z/(下面引用)、z/(下面引用)、ProcessorResource/SystemsManagerTM(下面引用)、PowerSystemsTM(下面引用)和System(下面引用)是在世界上许多辖区中注册的国际商业机器公司的商标。因此,在本领域中需要处理上述问题。
技术实现思路
现有技术的缺陷被克服,并且通过提供用于在计算环境中执行机器指令的计算机程序产品来提供优点,所述机器指令用于启动事务,其中,由其他处理器对于所述事务的存储位置的存储使得所述事务中止,并且其中,在所述事务中的通过指令的存储被有效地延迟,直到所选择的事务完成。该计算机程序产品包括计算机可读存储介质,其能够被处理电路读取,并且存储用于由用于执行方法的处理电路执行的指令。所述方法包括例如:处理器获得用于执行的机器指令,对于根据计算机架构的计算机执行定义所述机器指令,所述机器指令包括用于指定事务开始操作的操作码以及用于指定要在事务执行中使用的一个或多个控件的控制字段;并且,所述处理器执行所述机器指令,所述执行包括:从所述指令的字段确定要被所述事务开始指令启动的事务是否是被约束事务或未约束事务;基于所述字段是一个值,启动被约束事务,所述被约束事务具有与其相关联的一个或多个限制,并且将条件代码设置为用于指示所述机器指令的成功执行的值;并且,基于所述字段是另一个值,指定用于存储在中止的未约束事务中的诊断信息的存储位置,启动所述未约束事务,并且将条件代码设置为用于指示所述机器指令的成功执行的值。也描述和在此要求保护与一个或多个实施例相关的方法和系统。而且,也描述和可以在此要求保护了与一个或多个实施例相关的服务。从第一方面看,本专利技术提供了一种在计算环境中执行机器指令的方法,包括:处理器获得用于操作的机器指令,对于根据计算机架构的计算机执行定义所述机器指令,所述机器指令包括用于指定事务开始操作的操作码以及用于指定要在事务执行中使用的一个或多个控件的控制字段;并且,所述处理器执行所述机器指令,所述执行包括:从所述指令的字段确定要被所述事务开始指令启动的事务是否是被约束事务或未约束事务;基于所述字段是一个值,启动被约束事务,所述被约束事务具有与其相关联的一个或多个限制,并且将条件代码设置为用于指示所述机器指令的成功执行的值;并且,基于所述字段是另一个值,指定用于存储在中止的未约束事务中的诊断信息的存储位置,启动所述未约束事务,并且将条件代码设置为用于指示所述机器指令的成功执行的值。从另一个方面看,本专利技术提供了一种用于在计算环境中执行机器指令的计算机系统,所述机器指令用于启动事务,其中,由其他处理器对于所述事务的存储位置的存储使得所述事务中止,并且其中,在所述事务中由指令进行的存储被有效地延迟,直到所选择的事务完成,所述计算机系统包括:存储器;以及,处理器,其与所述存储器进行通信,其中,所述计算机系统被配置为执行一种方法,所述方法包括:处理器获得用于操作的机器指令,对于根据计算机架构的计算机执行定义所述机器指令,所述机器指令包括用于指定事务开始操作的操作码以及用于指定要在事务执行中使用的一个或多个控件的控制字段;并且,所述处理器执行所述机器指令,所述执行包括:从所述指令的字段确定要被所述事务开始指令启动的事务是否是被约束事务或未约束事务;基于所述字段是一个值,启动被约束事务,所述被约束事务具有与其相关联的一个或多个限制,并且将条件代码设置为用于指示所述机器指令的成功执行的值;并且,基于所述字段是另一个值,指定用于存储在中止的未约束事务中的诊断信息的存储位置,启动所述未约束事务,并且将条件代码设置为用于指示所述机器指令的成功执行的值。从另一个方面看,本专利技术提供了一种计算机程序产品,用于在计算环境中执行机器指令,所述机器指令用于启动事务,其中,由其他处理器对于所述事务的存储位置的存储使得所述事务中止,并且其中,在所述事务中由指令进行的存储被有效地延迟,直到所选择的事务完成,所述计算机程序产品包括计算机可读存储介质,其能够被处理电路读取,并且存储用于由用于执行方法的所述处理电路执行的指令,所述方法包括:处理器获得用于操作的机器指令,对于根据计算机架构的计算机执行定义所述机器指令,所述机器指令包括用于指定事务开始操作的操作码以及用于指定要在事务执行中使用的一个或多个控件的控制字段;并且,所述处理器执行所述机器指令,所述执行包括:从所述指令的字段确定要被本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201380027536.html" title="事务开始/结束指令原文来自X技术">事务开始/结束指令</a>

【技术保护点】
一种在计算环境中执行机器指令的方法,所述方法包括:处理器获得用于操作的机器指令,对于根据计算机架构的计算机执行定义所述机器指令,所述机器指令包括:用于指定事务开始操作的操作码;以及用于指定要在事务执行中使用的一个或多个控件的控制字段;并且,所述处理器执行所述机器指令,所述执行包括:从所述指令的字段确定要被所述事务开始指令启动的事务是被约束事务还是未约束事务;基于所述字段是一个值,启动被约束事务,所述被约束事务具有与其相关联的一个或多个限制,并且将条件代码设置为用于指示所述机器指令的成功执行的值;并且,基于所述字段是另一个值,指定用于存储在中止的未约束事务中的诊断信息的存储位置,启动所述未约束事务,并且将条件代码设置为用于指示所述机器指令的成功执行的值。

【技术特征摘要】
【国外来华专利技术】2012.06.15 US 13/524,8451.一种在计算环境中执行机器指令的方法,所述方法包括:处理器获得用于操作的机器指令,对于根据计算机架构的计算机执行定义所述机器指令,所述机器指令包括:用于指定事务开始操作的操作码;以及用于指定要在事务执行中使用的一个或多个控件的控制字段;并且,所述处理器执行所述机器指令,所述执行包括:从所述指令的一个字段确定要被事务开始指令启动的事务是被约束事务还是未约束事务;基于所述一个字段是一个值,启动被约束事务,并且将条件代码设置为用于指示所述机器指令的成功执行的值,其中,所述被约束事务是在被约束事务执行模式中执行的事务,具有与其相关联的一个或多个限制,所述一个或多个限制包括以下的至少之一:可获得一般指令的子集;可以执行有限数量的指令;可以访问有限数量的存储器操作数位置;该事务限于单个嵌套层;并且,基于所述一个字段是另一个值,指定用于存储在中止的未约束事务中的诊断信息的存储位置,启动所述未约束事务,并且将条件代码设置为用于指示所述机器指令的成功执行的值,其中,所述未约束事务是在未约束事务执行模式中执行的事务,所述一个字段指示未约束事务,并且其中,所述机器指令进一步包括要在执行所述事务中使用的基本字段,并且其中,基于所述基本字段包括一个值,由所述基本字段指定的寄存器的内容与位移字段的内容组合,以建立第一操作数地址,所述第一操作数地址指定可用于在中止时存储所述诊断信息的事务诊断块的位置。2.根据权利要求1所述的方法,其中,所述一个字段包括所述操作码。3.根据权利要求1所述的方法,其中,所述控制字段包括下面的部分的一个或多个:通用寄存器存储掩蔽,用于指示要在所述事务的开始处存储并且在中止时恢复的一个或多个对的寄存器;以及允许访问寄存器修改字段,用于控制是否允许所述事务修改访问寄存器。4.根据权利要求3所述的方法,其中,所述一个字段指示未约束事务,并且其中,所述控制字段进一步包括:允许浮点操作字段,用于控制是否允许所述事务执行指定的浮点指令;以及程序中断过滤控制字段,用于控制某些类别的程序中断条件是否导致中断。5.根据权利要求1所述的方法,其中,所述一个或多个限制还包括:在所述事务内的有限数量的指令;在所述事务内的指令要在存储器的预定义区域内;某些预先指定的指令能够被包括在所述事务内,其他被限制;对于所述事务的存储器操作数的访问的限制;所述事务不访问在包含存储器的所述预定义区域的存储器的块中的存储器操作数;所述事务不使用被映射到同一绝对地址的不同逻辑地址访问指令或存储器操作数;并且由所述事务进行的操作数参考要在指定大小内。6.根据在前的权利要求的任何一项所述的方法,其中,所述方法进一步包括:执行另一个机器指令以结束由所述事务开始指令启动的所述事务,所述另一个机器指令包括事务结束指令,所述事务结束指令包括用于指示所述事务结束指令的操作码。7.根据权利要求6所述的方法,其中,所述执行所述另一个机器指令包括:递减事务嵌套深度;确定所述递减的事务嵌套深度是否是0;并且,基于所述递减的事务嵌套深度是0而提交由所述事务进行的存储访问。8.一种用于在计算环境中执行机器指令的计算机系统,所述机器指令用于启动事务,其中,由其他处理器对于所述事务的存储位置的存储使得所述事务中止,并且其中,在所述事务中由指令进行的存储被有效地延迟,直到所选择的事务完成,所述计算机系统包括:存储器;以及,处理器,其与所述存储器进行通信,其中,所述计算机系统被配置为执行一种方法,所述方法包括:处理器获得用于操作的机器指令,对于根据计算机架构的计算机执行定义所述机器指令,所述机器指令包括:用于指定事务开始操作的操作码;以及用于指定要在事务执行中使用的一个或多个控件的控制字段;并且,所述处理器执行所述机器指令,所述执行包括:从所述指令...

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

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

1