十进制乘法和移位指令制造技术

技术编号:21176232 阅读:21 留言:0更新日期:2019-05-22 12:03
执行用于执行乘法和移位运算的指令。执行包括将由指令获得的第一值和第二值相乘以获得乘积。乘积在指定方向上被移动用户定义的选择的量以提供结果,并将结果放在选定的位置中。该结果被用于计算环境内的处理。

Decimal multiplication and shift instructions

Execute instructions for performing multiplication and shift operations. Execution involves multiplying the first and second values obtained by the instruction to obtain the product. Multiply the amount of selection defined by the mobile user in the specified direction to provide the result and place the result in the selected location. The results are used for processing in computing environments.

【技术实现步骤摘要】
【国外来华专利技术】十进制乘法和移位指令
技术介绍
一个或多个方面一般涉及计算环境内的处理,尤其涉及改进此类处理。在计算环境的处理器内执行的应用程序控制处理器的行为。应用程序是使用编程语言创建的,此类编程语言旨在将指令传递给处理器。存在各种类型的编程语言,并且每种语言可以使用一种或多种类型的编码来表示数据。例如,缩放的十进制整数(也被称为缩放的二进制编码的十进制/缩放的BCD)是许多COBOL和PL/I程序中以及DB2数据库管理系统中的公共数据类型。缩放的BCD数是BCD数加上格式描述符(n.k),其中BCD数被解释为在小数点之前具有n位并且在小数点之后具有k位(即,具有k个分数位),或者要被乘以10-k的十进制整数。对具有同一k参数的缩放的BCD数据执行加法和减法是直接的,因为数据被正确对准并且结果具有相同的分数位数。乘法是更复杂的,因为两个(n.k)数字的全宽中间乘积具有(2n.2k)位,但期望的结果通常是(2n.k)。传统的十进制乘法指令传递最低有效L位,并且可能具有严格的长度限制。用于执行缩放BCD乘法的代码可能相当复杂,需要多次相乘、移位和加法运算。
技术实现思路
通过提供用于促进计算环境中的处理的计算机程序产品,克服了现有技术的缺点并提供了额外的优点。计算机程序产品包括存储介质,存储介质可由处理电路读取并存储用于由处理电路执行以执行方法的指令。方法例如包括获得用于执行的指令,指令用于执行乘法和移位运算。执行指令,并且执行包括将由指令获得的第一值和第二值相乘以获得乘积。乘积在指定方向上以选择的量被移位以提供结果,所选择的量是用户定义的。结果被放在选择的位置中,并被用于计算环境内的处理。使用执行缩放的BCD乘法运算的单个指令通过消除冗长的指令序列并减少要获取、解码和执行的指令的数量来改进性能。作为一个示例,结果包括基于以所选择的量的移位而选择的乘积的多个位。此外,在一个实施例中,执行包括确定结果的符号,并且将符号包括在所选择的位置中,结果和符号提供要在计算环境内的处理中使用的选择的值。在一个实施例中,确定符号包括检查由指令提供的控件。控件例如被提供在指令的掩码字段中。此外,在一个实施例中,执行包括从指令的一个或多个字段获得第一值和第二值,检查第一值和第二值的有效性,以及基于该检查指示第一值和第二值是有效的而执行相乘。在示例中,指定方向是右,所选择的量是从指令的字段中获得的,并且所选择的位置是寄存器,该寄存器是使用指令的至少一个字段来指定的。至少一个字段包括指定寄存器编号的寄存器字段和指定要被附加到寄存器编号的扩展值的扩展字段。本文还描述并要求保护与一个或多个方面有关的方法和系统。此外,本文还描述并可要求保护与一个或多个方面有关的服务。通过本文描述的技术实现了额外的特征和优点。本文详细描述了其它实施例和方面,并且这些实施例和方面被认为是所要求保护的方面的一部分。附图说明在说明书结尾的权利要求中作为示例特别指出并清楚地要求保护一个或多个方面。通过结合附图的以下详细描述,一个或多个方面的前述和目的、特征和优点是显而易见的,在附图中:图1A描绘了结合和使用本专利技术的一个或多个方面的计算环境的一个示例;图1B描绘了根据本专利技术的一方面的图1A中的处理器的进一步细节;图2A描绘了结合和使用本专利技术的一个或多个方面的计算环境的另一示例;图2B描绘了图2A中的存储器的进一步细节;图3A描绘了根据本专利技术的一方面的矢量乘法和移位十进制指令的一个示例;图3B描绘了根据本专利技术的一方面的图3A中的矢量乘法和移位十进制指令的立即字段的控件的一个实施例;图3C描绘了根据本专利技术的一方面的图3A中的矢量乘法和移位十进制指令的掩码字段的控件的一个实施例;图4描绘了根据本专利技术的一方面的执行矢量乘法和移位十进制指令的框图的一个示例。图5A图示了BCD乘法运算的一个示例;图5B图示了BCD乘法运算的另一示例;图5C图示了根据本专利技术的一方面的BCD乘法和移位运算的示例;图6A-6B描绘了根据本专利技术的一方面的促进计算环境中的包括执行矢量乘法和移位十进制指令的处理的一个示例;图7描绘了云计算环境的一个实施例;以及图8描绘了抽象模型层的一个示例。具体实施方式一个或多个方面涉及通过提供用于执行缩放的二进制编码的十进制(BCD)运算的单个指令(例如,在硬件/软件接口处的单个架构机器指令)来替代冗长的指令序列的能力来改进计算环境内的处理。在一个示例中,该指令(在此称为矢量乘法和移位十进制指令)将两个全宽BCD输入(例如,每个31位)相乘,生成全宽中间乘积(例如,62位),然后允许选择中间乘积的多个位(例如,任何31位范围)作为结果。当到指定位数(例如,31位数范围)的任何剩余的数字为非零时,检测到溢出。这也可以看作是对中间乘积应用向右移位:R=(A*B)>>sh,其中sh是移位。该指令允许选择结果作为完整乘积的任意位集,并根据该任意位集执行溢出检查。参考图1A描述结合和使用本专利技术的一个或多个方面的计算环境的一个实施例。在一个示例中,计算环境基于由纽约阿蒙克的国际商业机器公司(InternationalBusinessMachinesCorporation)提供的z/架构(z/Architecture)。在2015年3月的IBM公开号为SA22-7832-10的“z/架构的工作原理(z/ArchitecturePrinciplesofOperation)”中描述了z/架构的一个实施例,其全部内容通过引用并入本文。Z/ARCHITECTURE是美国纽约阿蒙克的国际商业机器公司的注册商标。在另一个示例中,计算环境基于由纽约阿蒙克的国际商业机器公司提供的Power架构。在2015年4月9日的国际商业机器公司的“PowerISATM版本2.07B(PowerISATMVersion2.07B)”中描述了Power架构的一个实施例,其全部内容通过引用并入本文。POWERARCHITECTURE是美国纽约阿蒙克的国际商业机器公司的注册商标。计算环境还可以基于其它架构,包括但不限于Intelx86架构。也存在其它示例。如图1A所示,计算环境100包括例如具有例如计算机系统/服务器12的节点10,其可与许多其它通用或专用计算系统环境或配置一起操作。可适用于与计算机系统/服务器12一起操作的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机(PC)系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括任何上述系统或设备的分布式云计算环境等。计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器12可以在许多计算环境中实践,包括但不限于通过通信网络链接的远程处理设备执行的任务的分布式云计算环境。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。如图1A所示,计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一本文档来自技高网...

【技术保护点】
1.一种计算机程序产品,其用于促进计算环境内的处理,所述计算机程序产品包括:计算机可读存储介质,其能够由处理电路读取并存储用于由所述处理电路执行的指令,用于执行包括以下方法的方法:获得用于执行的指令,所述指令用于执行乘法和移位运算;以及执行所述指令,所述执行包括:将由所述指令获得的第一值和第二值相乘以获得乘积;在指定方向上以选择的量移动所述乘积以提供结果,所选择的量是用户定义的;以及将所述结果放在选择的位置中,所述结果被用于所述计算环境内的处理。

【技术特征摘要】
【国外来华专利技术】2016.09.30 US 15/281,2231.一种计算机程序产品,其用于促进计算环境内的处理,所述计算机程序产品包括:计算机可读存储介质,其能够由处理电路读取并存储用于由所述处理电路执行的指令,用于执行包括以下方法的方法:获得用于执行的指令,所述指令用于执行乘法和移位运算;以及执行所述指令,所述执行包括:将由所述指令获得的第一值和第二值相乘以获得乘积;在指定方向上以选择的量移动所述乘积以提供结果,所选择的量是用户定义的;以及将所述结果放在选择的位置中,所述结果被用于所述计算环境内的处理。2.根据权利要求1所述的计算机程序产品,其中,所述结果包括基于所选择的量的移位而选择的所述乘积的多个位。3.根据权利要求1所述的计算机程序产品,其中,所述执行还包括:确定所述结果的符号;以及将所述符号包括在所选择的位置中,所述结果和所述符号提供要在所述计算环境内的处理中使用的选择的值。4.根据权利要求3所述的计算机程序产品,其中,确定所述符号包括检查由所述指令提供的控件。5.根据权利要求4所述的计算机程序产品,其中,所述控件被提供在所述指令的掩码字段中。6.根据权利要求1所述的计算机程序产品,其中,所述执行还包括:从所述指令的一个或多个字段中获得所述第一值和所述第二值;检查所述第一值和所述第二值的有效性;以及基于所述检查指示所述第一值和所述第二值有效,执行所述相乘。7.根据权利要求1所述的计算机程序产品,其中,所述指定方向是右。8.根据权利要求1所述的计算机程序产品,其中,所述执行还包括从所述指令的字段获得所选择的量。9.根据权利要求1所述的计算机程序产品,其中,所选择的位置是寄存器,所述寄存器使用所述指令的至少一个字段来指定。10.根据权利要求9所述的计算机程序产品,其中,所述至少一个字段包括指定寄存器数的寄存器字段和指定要附加到所述寄存器数的扩展值的扩展字段。11.一种计算机系统,其用于促进计算环境内的处理,所述计算机系...

【专利技术属性】
技术研发人员:S·M·穆勒R·科普兰J·布拉德伯里S·卡罗格
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国,US

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

1