CN109791491A - 十进制加载立即指令 - Google Patents
十进制加载立即指令 Download PDFInfo
- Publication number
- CN109791491A CN109791491A CN201780060017.8A CN201780060017A CN109791491A CN 109791491 A CN109791491 A CN 109791491A CN 201780060017 A CN201780060017 A CN 201780060017A CN 109791491 A CN109791491 A CN 109791491A
- Authority
- CN
- China
- Prior art keywords
- register
- instruction
- symbol
- described instruction
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 17
- 230000006835 compression Effects 0.000 claims description 16
- 238000007906 compression Methods 0.000 claims description 16
- 238000006073 displacement reaction Methods 0.000 claims description 13
- 238000007689 inspection Methods 0.000 claims description 4
- 230000001737 promoting effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 210000001519 tissue Anatomy 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241000270708 Testudinidae Species 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 210000003811 finger Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- VIKNJXKGJWUCNN-XGXHKTLJSA-N norethisterone Chemical compound O=C1CC[C@@H]2[C@H]3CC[C@](C)([C@](CC4)(O)C#C)[C@@H]4[C@@H]3CCC2=C1 VIKNJXKGJWUCNN-XGXHKTLJSA-N 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/4915—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
- Calculators And Similar Devices (AREA)
Abstract
指令生成用于计算环境内的处理的值。所述指令获得与所述指令相关联的符号控制,并将所述指令的输入值在指定方向上位移选定的量以提供结果。所述结果被置放在寄存器中的第一指定位置,并且基于符号控制的符号被置放在寄存器的第二指定位置。所述结果和所述符号提供用于计算环境内的处理的有符号值。
Description
背景技术
一个或多个方面一般涉及计算环境内的处理,尤其涉及改进这种处理。
在计算环境的处理器内执行的应用程序控制处理器的行为。应用程序使用编程语言创建,这些编程语言被设计为将指令传递给处理器。
存在各种类型的编程语言,每种语言可以使用一种或多种类型的编码来表示数据。例如,COBOL和PL/I编程语言使用二进制编码的十进制(BCD)来编码十进制数。在一个示例中,采用BCD编码,每个十进制数字由固定数量的位表示,例如4位。
十进制数字可以包含多达31个数字,以及符号数字。这表示存储器中的16字节的值。许多计算使用小常量执行。为了将常数加载到寄存器中,它从存储器中加载。因此,会产生指令延迟,使用存储器带宽,并且增加二进制可执行文件中的数据大小。
发明内容
通过提供用于促进计算环境中的处理的计算机程序产品,克服了现有技术的缺点并提供了额外的优点。该计算机程序产品包括存储介质,该存储介质可由处理电路读取并存储用于由处理电路执行以执行方法的指令。该方法包括,例如,获得用于执行的指令,该指令用于生成用于在计算环境内进行处理的值,该指令具有与其相关联的符号控制,该符号控制用于提供由该指令生成的值的符号。执行该指令,并且该执行包括获得符号控制;将指令提供的输入值在指定方向上位移选定的量以提供结果;将结果置放在寄存器的第一指定地点;并且基于符号控制,将符号包括在寄存器的第二指定位置,该结果和符号提供用于计算环境内的处理的有符号值。
通过使用该指令来生成诸如常量的值,该值被生成而不从存储器加载该值。因此,在计算环境内有助于处理并且提高了性能。减少了指令延迟,使用更少的内存带宽和/或减少了二进制可执行文件中的数据大小。
在一个实施例中,获得符号控制包括从指令的字段获得符号控制,并且其中基于符号控制是第一值,符号为正,而基于符号控制是第二值,符号为负。
作为进一步的实施例,该执行包括从指令的字段获得输入值,检查输入值的有效性,以及基于检查指示输入值有效,实施位移。
此外,在一个实施例中,该执行包括从指令的字段获得所述选定的量。
在一个示例中,指定的方向为左。另外,第一指定位置是寄存器中具有有符号压缩十进制格式的幅度的位置。
此外,可以使用指令的至少一个字段来指定寄存器。作为示例,该至少一个字段包括指定寄存器编号的寄存器字段以及指定要附加到寄存器编号的扩展值的扩展字段。
作为一个实施例,该结果的置放还包括将零置放于寄存器的第三指定位置。第三指定位置包括例如寄存器的一个或多个最左侧位置。
本文还描述并要求保护与一个或多个方面有关的方法和系统。此外,还描述了与一个或多个方面有关的服务,并且可以在此要求保护。
通过本文描述的技术实现了额外的特征和优点。在此详细描述了其它实施例和方面,并且这些实施例和方面被认为是所要求保护的方面的一部分。
附图说明
现在将仅通过示例并参考以下附图公开本发明的优选实施例:
图1A描绘了结合和使用本发明的一个或多个实施例的计算环境的一个示例;
图1B描绘了根据本发明的实施例的图1A中的处理器的进一步细节;
图2A描绘了结合和使用本发明的一个或多个实施例的计算环境的另一示例;
图2B描绘了根据本发明的实施例的图2A中的存储器的进一步细节;
图3A描绘了根据本发明的实施例的矢量加载立即十进制指令的一个示例;
图3B描绘了根据本发明的实施例的图3A中的矢量加载立即十进制指令的立即字段的控制;
图4描绘了根据本发明的实施例的矢量加载立即十进制指令的执行的框图的一个示例;
图5A-5B描绘了根据本发明实施例的与矢量加载立即十进制指令相关联的处理的一个示例;
图6描绘了云计算环境的一个实施例;以及
图7描绘了抽象模型层的一个示例。
具体实施方式
一个或多个实施例涉及通过提供用于生成值(例如,诸如有符号压缩十进制的常量)而不从存储器加载值的能力来改进计算环境内的处理。在一个示例中,该能力包括用于生成值的指令(例如,体系结构机器指令),在此称为矢量加载立即十进制指令。在一个示例中,该指令包括用于为由指令生成的值提供符号的符号控制。该指令生成值(例如,诸如有符号压缩十进制的常量)而不从存储器加载值,从而减少指令等待时间并提高计算机性能,减少存储器带宽和/或减少二进制可执行文件中的数据大小。
参考图1A描述结合和使用本发明的一个或多个实施例的计算环境的一个示例。在一个示例中,计算环境基于由纽约阿蒙克的国际商业机器公司提供的z/体系结构。在2015年3月的IBM公开号为SA22-7832-10的“z/Architecture Principles of Operation(z/体系结构的工作原理)”中描述了z/体系结构的一个实施例,其全部内容通过引用合并于此。Z/ARCHITECTURE是美国纽约阿蒙克的国际商业机器公司的注册商标。
在另一个示例中,计算环境基于由纽约阿蒙克的国际商业机器公司提供的Power体系结构。在2015年4月9日的国际商业机器公司的“Power ISA TM Version 2.07B(PowerISA TM版本2.07B)”中描述了Power体系结构的一个实施例,其全部内容通过引用合并于此。POWER ARCHITECTURE是美国纽约阿蒙克的国际商业机器公司的注册商标。
计算环境还可以基于其它体系结构,包括但不限于英特尔x86体系结构。也存在其它例子。
如图1A所示,计算环境100包括例如具有例如计算机系统/服务器12的节点10,其可与许多其它通用或专用计算系统环境或配置一起操作。可适于与计算机系统/服务器12一起操作的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机(PC)系统、服务器计算机系统、瘦客户访客、厚客户机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括任何上述系统或设备的分布式云计算环境等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在许多计算环境中实践,包括但不限于通过通信网络链接的远程处理设备执行任务的分布式云计算环境。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质上。
如图1A所示,计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16,系统存储器28,以及将包括系统存储器28的各种系统组件耦接到处理器16的总线18。
总线18表示几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及处理器或使用多种总线体系结构中的任何总线体系结构的局域总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线,微通道体系结构(MCA)总线,增强型ISA(EISA)总线,视频电子标准协会(VESA)局域总线和外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,它包括易失性和非易失性介质,可移动和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统34可以用于读写不可移动的、非易失性磁介质(未示出并且通常称为“硬盘驱动器”)。尽管未示出,但是可以提供用于对可移动非易失性磁盘(例如,“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(诸如CD-ROM,DVD-ROM或其它光学介质)读写的光盘驱动器。在这种情况下,每个驱动器可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置为执行本发明的实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40以及作为示例而非限制的操作系统、一个或多个应用程序、其它程序模块和程序数据可以存储在存储器28中。操作系统、一个或多个应用程序,其它程序模块和程序数据中的每一个或它们的某种组合可以包括网络环境的实现。程序模块42通常执行如本文所述的本发明实施例中的功能和/或方法。
计算机系统/服务器12还可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信;还可与一个或多个使得用户能够与计算机系统/服务器12交互的设备通信;和/或与使得计算机系统/服务器12能够与一个或多个其它计算设备进行通信的任何设备(例如,网卡,调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口22进行。此外,计算机系统/服务器12还可以通过网络适配器20与一个或多个网络(例如局域网(LAN),广域网(WAN),和/或公共网络(例如,因特网))通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它组件通信。应该理解,尽管未示出,但是其它硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码,设备驱动器,冗余处理单元,外部磁盘驱动阵列,RAID系统,磁带驱动器和数据备份存储系统等。
在一个示例中,处理器16包括用于执行指令的多个功能组件。如图1B所示,这些功能组件包括:例如,用于获取要执行的指令的指令获取组件120;用于解码所获取的指令并获得解码指令的操作数的指令解码单元122;用于执行解码指令的指令执行组件124;在需要的情况下,访问用于指令执行的存储器的存储器访问组件126;以及提供执行指令的结果的写回组件130。根据本发明的实施例,如下面进一步描述的,这些组件中的一个或多个可用于生成值(例如,常量)136。
在一个实施例中,处理器16还包括由一个或多个功能组件使用的一个或多个寄存器140。
参考图2A描述了结合和使用一个或多个实施例的计算环境的另一示例。在该示例中,计算环境200包括:例如,本机中央处理单元(CPU)202,存储器204,以及经由例如一个或多个总线208和/或其它连接而彼此耦接的一个或多个输入/输出设备和/或接口206。作为示例,计算环境200可以包括:由纽约阿蒙克的国际商业机器公司提供的PowerPC处理器或pSeries服务器;配备由加利福尼亚州帕洛阿尔托的惠普公司提供的英特尔安腾II处理器的HP Superdome;和/或基于由国际商业机器公司、惠普,英特尔,甲骨文或其它公司提供的体系结构的其它机器。
本机中央处理单元202包括一个或多个本机寄存器210,诸如在该环境内处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括代表任何特定时间点的环境状态的信息。
此外,本机中央处理单元202执行存储在存储器204中的指令和代码。在一个特定示例中,中央处理单元执行存储在存储器204中的仿真器代码212。该代码使得在一个体系结构中配置的计算环境能够仿真另一种体系结构。例如,仿真器代码212允许基于除z/体系结构之外的体系结构的机器(诸如PowerPC处理器,pSeries服务器,HP Superdome服务器或其它)仿真z/体系结构并执行基于z/体系结构开发的软件和指令。
参考图2B描述与仿真器代码212有关的进一步细节。存储在存储器204中的访客指令250包括被开发为在不同于本机CPU 202的体系结构中执行的软件指令(例如,与机器指令相关)。例如,访客指令250可能已经被设计为在z/体系结构处理器上执行,但是相反地,其在本机CPU 202上进行仿真,本机CPU 202可以是例如英特尔安腾II处理器。在一个示例中,仿真器代码212包括指令获取例程252以从存储器204获得一个或多个访客指令250,并且可选地为所获得的指令提供本地缓存。它还包括指令转换例程254,以确定已获得的访客指令的类型,并将访客指令转换成一个或多个相应的本机指令256。该转换包括:例如,识别要由访客指令执行的功能,并选择执行该功能的本机指令。
此外,仿真器212包括仿真控制例程260以使本机指令被执行。仿真控制例程260可以使本机CPU 202执行仿真一个或多个先前获得的访客指令的本机指令的例程,并且在这种执行结束时,将控制返回到指令获得例程以仿真下一个访客指令或一组访客指示的获得。本机指令256的执行可以包括:将数据从存储器204加载到寄存器中;将数据从寄存器存储回存储器;或者执行如由转换例程确定的某种类型的算术或逻辑运算。
每个例程例如以软件实现,该软件存储在存储器中并由本机中央处理单元202执行。在其它示例中,一个或多个例程或操作以固件、硬件、软件或它们的一些组合实现。可以使用本机CPU的寄存器210或通过使用存储器204中的位置来仿真仿真处理器的寄存器。在实施例中,访客指令250,本机指令256和仿真器代码212可以驻留在相同的存储器中或者可以分配在不同的存储器设备中。
如本文所使用的,固件包括例如处理器的微代码,毫代码和/或宏代码。例如,它包括用于实现更高级机器代码的硬件级指令和/或数据结构。在一个实施例中,它包括,例如,通常作为微代码传送的专有代码,其包括特定于底层硬件的可信软件或微代码,并控制对系统硬件的操作系统访问。
已获得、转换并执行的访客指令250例如是本文描述的矢量加载立即十进制指令。具有一种体系结构(例如,z/体系结构)的指令从存储器中获取、转换并表示为一系列的具有另一种体系结构的本机指令256(例如,PowerPC,pSeries,英特尔等)。然后执行这些本机指令。
本文描述了与矢量加载立即十进制指令的一个实施例有关的细节,包括指令的字段和通过(在本机或仿真系统中的)处理器的执行。根据本发明的实施例,矢量加载立即十进制指令用于在没有从存储器加载值的情况下生成值(例如,常量)。这通过消除内存访问以获得常量来减少指令延迟,减少内存带宽的使用以及减少二进制可执行文件中的数据大小,从而提高了计算机性能。因此,本发明的实施例与计算机技术和计算机处理的改进密不可分。
在一个实施例中,矢量加载立即十进制指令是矢量设施的一部分,其提供例如范围从一到十六个元素的固定大小的矢量。每个矢量包括由该设施中定义的矢量指令操作的数据。在一个实施例中,如果矢量由多个元素组成,则每个元素与其它元素并行处理。在完成所有元素的处理之前,不会发生指令完成。在其它实施例中,元件部分地并行和/或顺序地处理。
矢量指令可以实现为各种体系结构的一部分,包括但不限于z/体系结构,Power体系结构,x86,IA-32,IA-64等。尽管本文描述的实施例是针对z/体系结构的,但是本文描述的矢量指令和一个或多个其它方面可以基于许多其它体系结构。z/体系结构只是一个例子。
在矢量设施被实现为z/体系结构的一部分以使用矢量寄存器和指令的一个实施例中,矢量启用控制和指定控制寄存器(例如,控制寄存器0)中的寄存器控制被设置为例如一。如果安装了矢量设施并且在没有启用控制集的情况下执行矢量指令,则识别数据异常。如果未安装矢量设施并执行矢量指令,则识别操作异常。
在一个实施例中,存在32个矢量寄存器,并且其它类型的寄存器可以映射到矢量寄存器的象限。例如,寄存器文件可以包括32个矢量寄存器,每个寄存器的长度为128位。16个浮点寄存器(长度为64位)可以覆盖矢量寄存器。因此,作为示例,当修改浮点寄存器2时,也修改矢量寄存器2。针对其它类型的寄存器的其它映射也是可能的。
矢量数据例如,以与其它数据格式相同的从左到右的顺序出现在存储中。编号为0-7的数据格式的位构成存储中最左侧(最低编号)字节位置的字节,位8-15构成下一个连续位置中的字节,依此类推。在另一示例中,矢量数据可以以另一序列(例如从右到左)出现在存储中。
参考图3A-3B描述矢量加载立即十进制指令的一个示例。如图所示,该指令具有多个字段,并且字段可以具有与其相关联的下标编号。与指令的字段相关联的下标编号表示该字段应用的操作数。例如,与矢量寄存器V1相关联的下标编号1表示V1中的寄存器包括第一操作数,依此类推。寄存器操作数的长度是一个寄存器,其例如是128位。
参考图3A,在一个实施例中,矢量加载立即十进制指令300包括:指示矢量加载立即十进制运算的操作码字段302a、302b;指定矢量寄存器(V1)的矢量寄存器字段304,;第一立即字段(I2)306;第二立即字段(I3)308;寄存器扩展位(RXB)字段310,下面将描述其中的每一个。在一个实施例中,字段是分开的并且彼此独立;然而,在其它实施例中,可以组合多于一个的字段。下面描述关于这些字段的进一步信息。
矢量寄存器字段304用于指示要存储第一操作数的矢量寄存器,第一操作数是值,例如有符号压缩十进制格式的常量。在一个示例中,矢量寄存器字段304与RXB字段310一起用于指定矢量寄存器。
例如,RXB字段310包括用于矢量寄存器指定的操作数的最高有效位。未由指令指定的用于寄存器指定的位被保留并设置为零。例如,将最高有效位连接到矢量寄存器字段的四位寄存器指定的左侧,以创建五位矢量寄存器指定。
在一个示例中,RXB字段包括四个位(例如,位0-3),并且如下定义该位:
0-指令的第一矢量寄存器指定的最高有效位(例如,在位8-11中)。
1-指令的第二矢量寄存器指定的最高有效位(例如,在位12-15中),如果有的话。
2-指令的第三矢量寄存器指定的最高有效位(例如,在位16-19中),如果有的话。
3-指令的第四矢量寄存器指定的最高有效位(例如,在位32-35中),如果有的话。
例如,取决于寄存器编号,每个位由汇编器设置为0或1。例如,对于寄存器0-15,该位被设置为0;对于寄存器16-31,该位设置为1,等。
在一个实施例中,每个RXB位是用于包括一个或多个矢量寄存器的指令中的特定位置的扩展位。例如,RXB的位0是位置8-11的扩展位,其被分配给例如V1等。特别地,对于矢量寄存器,使用例如寄存器字段的四位字段来指定包含操作数的寄存器,其中添加其对应的寄存器扩展位(RXB)作为最高有效位。例如,如果四位字段是0110并且扩展位是0,则五位字段00110指示寄存器编号6。在进一步的实施例中,RXB字段包括附加位,并且多于一位被用作针对每个矢量或位置的扩展。
I2字段306包括第二操作数,其例如具有多个十进制数字(例如,4)。另外,I3字段308包括第三操作数,其包括多个控制。例如,I3字段308包括如图3B所示的以下内容:
*符号控制(SC)320:当I3字段308的位0为零时,结果为正,符号码为1100。当I3字段308的位0为1时,结果为负,符号码为1101。
*位移量(SHAMT)330:I3字段308的位1-3指定三位无符号二进制数,其指定在指定方向上(例如,左)位移第二操作数的位数。
尽管描述了各种字段和寄存器,但是本发明的一个或多个实施例可以使用其它,附加或更少的字段或寄存器,或其它大小的字段或寄存器等。许多变体是可能的。例如,可以使用隐含寄存器而不是指令的明确指定的寄存器或字段。此外,可以使用除了矢量寄存器之外的寄存器。同样,其它变化也是可能的。
在指令的操作中,第二操作数的四个十进制数字(例如,二进制编码的十进制(BCD)数字)向左位移指定的位数,并且在右侧与指定的符号连结,形成置放在第一操作数位置的有符号压缩十进制格式数。
在一个示例中,在有符号压缩十进制格式中,每个字节包含两个十进制数字(D),除了最右侧的字节,其包含十进制数字右侧的符号(S)。使用操作数执行十进制算术,并生成具有有符号压缩十进制格式的结果。
有符号压缩十进制操作数和十进制算术指令的结果可以高达例如16字节(31个数字和符号)。编辑指令可以从一个或多个可变长度的十进制数中获取多达256个十进制数字,每个十进制数字都具有有符号压缩十进制格式。
参考图4描述关于指令的操作的进一步细节。在一个示例中,图4的逻辑由处理器执行。
参考图4,首先,获得第二操作数的四个十进制数字(例如,BCD数字),在此称为输入值,步骤400。在一个示例中,检查第二操作数的数字的有效性,查询402。如果一个或多个数字无效,则处理完成,并且在一个示例中可以指示错误。然而,如果第二操作数的数字有效,则继续处理以获得由指令的第三操作数(I3 308)提供的位移量330和符号控制320,步骤404。四位数的第二操作数在指定位移方向(例如,左)位移由I3 308中指定的位移量(SHAMT)控制330所指定的数子位置的数量,以获得结果,步骤406。针对空出的数字位置提供零。
在进一步的实施例中,位移可以在右移和/或位移的方向可以通过指令的控制来选择。其它变化是可能的。
结果(例如,位移的值)被置放在第一指定位置的第一操作数中,步骤408。例如,将结果置放于第一操作数的有符号压缩十进制格式的幅度中。另外,将零置放于第一操作数的所选剩余位置,例如剩余的最左侧的数字,步骤410。此外,将结果的符号码置放在第一操作数的第二指定位置,步骤412。作为示例,结果的符号码由I3字段的符号控制320确定,并置放在右侧位置的第一操作数中。因此,第一操作数包括第二操作数的四个十进制数字,它们向左位移指定的数字位数,并且具有在右侧连结的符号。
如本文所述,提供了一个指令,该指令采用多个BCD数字(例如,4)并将它们位移以产生多达31位的数字。符号数字由指示正或负的单个位控制。这允许创建各种常量(例如,以有符号压缩十进制格式)而无需从存储器加载它们。由于BCD编号中的固定点可以在任何点,因此常量被位移到适当的位置。得到的有符号值(例如,常量)可以用在计算环境内的处理中,包括在用于许多应用程序的计算中。
参考图5A-5B描述与执行用于生成要在计算环境内的处理中使用的值的指令有关的进一步细节。
参考图5A,首先,获得指令,用于执行,步骤500。该指令为生成用于计算环境内的处理的值(例如,具有有符号压缩十进制格式的常量),并且其与符号控制相关联,用于提供由指令生成的值的符号。该指令被执行,步骤502。执行包括例如获得符号控制,步骤504,以及将由指令提供的输入值在指定方向(例如,左)上位移选定量以提供结果,STEP 506。此外,执行包括将结果置放在寄存器中的第一指定位置,步骤508,并且基于符号控制将符号包括在寄存器的第二指定位置,该结果和该符号提供在计算环境中用于处理的有符号值,步骤510。
作为一个示例,获得符号控制包括从指令的字段获得符号控制,步骤512,并且其中基于符号控制是第一值,符号为正,而基于符号控制是第二值,符号为负。
在一个实施例中,执行还包括从指令的字段获得输入值,步骤514,检查输入值的有效性,步骤516,以及基于该检查指示输入值有效,执行位移,步骤518。在再进一步的实施例中,执行还包括从指令的字段获得所述选定的量,步骤520。
作为示例,第一指定位置是寄存器中的具有有符号压缩十进制格式的幅度的位置530(图5B);使用指令的至少一个字段指定寄存器532;所述至少一个字段包括指定寄存器编号的寄存器字段和指定要附加到寄存器编号的扩展值的扩展字段534。
在一个实施例中,结果的放置还包括将零置放于寄存器的第三指定位置;第三指定位置包括寄存器的一个或多个最左侧位置,步骤536。
这里描述的是用于使用例如体系结构指令来生成值(例如,常量)而不从存储器加载值的设施,以便改进计算机处理和性能。尽管提供了各种示例,但是在不脱离所要求保护的方面的精神的情况下可以进行变化。
一个或多个方面可以涉及云计算。
应当预先理解,尽管本公开包括关于云计算的详细描述,但是本文所述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是服务交付的模型,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源能够以最小的管理成本或与服务提供商进行最少的交互来快速部署和释放。可配置计算资源例如是:网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务。这种云模型可以包括至少五个特征,至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供商进行人为交互的情况下,能够单方面自动地按需部署计算能力,诸如服务器时间和网络存储。
广泛的网络接入:计算能力通过网络获得,并通过标准机制访问,该标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如,移动电话,膝上型电脑和PDA)的使用。
资源池:提供商的计算资源被归入资源池,以使用多租户模式为多个消费者提供服务,其中根据需求动态分配和重新分配不同的实体资源和虚拟资源。通常消费者不能控制或者并不知晓所提供的资源的确切位置,但是可能能够在更高抽象级别(例如,国家,州或数据中心)指定位置,因此具有位置无关性。
迅速弹性:可以迅速、有弹性地(有时是自动地)部署计算能力,以快速扩展,并且能迅速释放来快速缩小。对于消费者来说,用于部署的可用计算能力通常显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如,存储,处理,带宽和活跃用户帐户)的某种抽象级别的计量能力来自动控制和优化资源使用。可以监视,控制和报告资源使用,从而为所使用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用提供商在云基础架构上运行的应用。可以通过诸如网络浏览器(例如,基于网络的电子邮件)的瘦客户机接口从各种客户机设备访问应用。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统、存储、甚至单个应用能力,可能的例外是有限的特定于用户的应用配置设置。
平台即服务(PaaS):提供给消费者的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用由提供商支持的编程语言和工具创建。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统或存储,但可以控制已部署的应用以及可能的应用托管环境配置。
基础架构即服务(IaaS):提供给消费者的能力是部署处理、存储、网络和其它基础计算资源,其中消费者能够部署和运行任意软件,该软件可以包括操作系统和应用。消费者既不管理也不控制底层云基础设施,而是控制操作系统,存储,部署的应用,以及可能对选择的网络组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础架构仅为组织运行。它可以由组织或第三方管理,可以存在于该组织内部或外部。
共同体云:云基础架构由多个组织共享,并支持具有共同利害关系(例如,任务使命,安全要求,策略和合规考虑)的特定共同体。它可能由组织或第三方管理,并且可能存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供,并由销售云服务的组织所有。
混合云:云基础架构由两个或多个云(私有云,共同体云或公共云)组成,这些云仍然是独特的实体,但通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态,低耦合性,模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础设施。一个这样的节点是图1A中描绘的节点10。
计算节点10仅是合适的云计算节点的一个示例,并且不旨在对本文描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,云计算节点10能够实现和/或执行上文阐述的任何功能。
现在参考图6,描绘了示意性的云计算环境50。如图所示,云计算环境50包括云的消费者使用本地计算设备可以与其通信的一个或多个计算节点10,本地计算设备例如是个人数字助理(PDA)或蜂窝电话54A,台式计算机54B,膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以在一个或多个网络中物理地或虚拟地分组(未示出),例如如上所述的私有云,共同体云,公共云或混合云,或其组合。这样,云的消费者无需维护本地计算设备上的资源就能够允许云计算环境50提供基础架构即服务、平台即服务和/或软件即服务。应该理解,图6中所示的计算设备54A-N的类型仅仅是示意性的,而计算节点10和云计算环境50可以(例如,使用网络浏览器)通过任何类型的网络和/或网络可寻址连接与任何类型的计算设备通信。
现在参考图7,示出了由云计算环境50(图6)提供的一组功能抽象层。应该事先理解图7中所示的组件、层和功能仅仅是示意性的,并且本发明的实施例不限于此。如图所示,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括主机61;基于RISC(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟层70提供抽象层,从该抽象层可以提供以下虚拟实体的示例:虚拟服务器71;虚拟存储72;虚拟网络73(包括虚拟私有网络);虚拟应用和操作系统74;和虚拟客户端75。
在一个示例中,管理层80可以提供下面描述的功能。资源供应功能81提供用于在云计算环境内执行任务的计算资源和其它资源的动态获取。计量和定价功能82在云计算环境内对资源的使用进行成本跟踪,并且提供用于消费这些资源的帐单或发票。在一个示例中,这些资源可以包括应用软件许可。安全功能为云的消费者和任务提供身份认证,以及为数据和其它资源提供保护。用户门户功能83为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84提供云计算资源的分配和管理,以满足所需的服务水平。服务水平协议(SLA)计划和履行功能85为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:地图绘制与导航91;软件开发和生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;和指令处理96。
本发明可以是任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。该计算机程序产品可以包括一个计算机可读存储介质(或多个计算机可读存储介质),其上具有计算机可读程序指令,用于使处理器执行本发明的各方面。
计算机可读存储介质可以是有形设备,其可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、诸如在其上记录有指令的打孔卡或凹槽内凸起结构的机械编码装置、以及前述的任何合适的组合。这里使用的计算机可读存储介质不应被解释为瞬时信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆传递的光脉冲)或通过电线传输的电信号。
这里描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网,局域网,广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括诸如Smalltalk,C++等的面向对象的编程语言,以及诸如“C”编程语言或类似编程语言的过程编程语言。计算机可读程序指令可以完全在用户的计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分地在用户计算机上并且部分地在远程计算机上执行、或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者,可以连接到外部计算机(例如,利用互联网服务提供商来通过互联网连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化定制电子电路,该电子电路执行计算机可读程序指令,以便执行本发明的各方面。
这里参考根据本发明实施例的方法,装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将理解,流程图图示和/或框图中的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器来生产出机器,以使得通过计算机的处理器或其它可编程数据处理装置执行的指令创建用于实现流程图和/或一个框图块或多个框图块中所指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,这些计算机可读程序指令可以使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,以使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或一个框图块或多个框图块中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机,其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,这样在计算机、其它可编程装置或其它设备上执行的指令实现在流程图和/或一个框图块或多个框图块中指定的功能/动作。
附图中的流程图和框图示出根据本发明的各种实施例的系统,方法和计算机程序产品的可能实施方式的体系结构,功能和操作。在这方面,流程图或框图中的每个框可以表示模块、程序段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所标注的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上并行地执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行特定功能或动作,或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
除了上述之外,可以由提供客户环境管理的服务提供商提供、给予、部署、管理、服务一个或多个方面。例如,服务提供商可以创建、维护、支持计算机代码和/或为一个或多个客户执行一个或多个方面的计算机基础设施。作为回报,服务提供商可以例如根据订阅和/或费用协议从客户接收付款。附加地或替代地,服务提供商可以从向一个或多个第三方销售广告内容来接收付款。
在一个方面,可以部署应用程序以执行一个或多个实施例。作为一个示例,应用程序的部署包括提供可操作以执行一个或多个实施例的计算机基础结构。
作为另一方面,可以部署计算基础设施,包括将计算机可读代码集成到计算系统中,其中与计算系统结合的代码能够执行一个或多个实施例。
作为又一方面,可以提供一种用于集成计算基础设施的过程,包括将计算机可读代码集成到计算机系统中。该计算机系统包括计算机可读介质,其中该计算机介质包括一个或多个实施例。与计算机系统结合的代码能够执行一个或多个实施例。
尽管以上描述了各种实施例,但这些仅是示例。例如,具有其它体系结构的计算环境可用于合并和使用一个或多个实施例。此外,可以使用不同的指令,指令格式,指令字段和/或指令值。许多变化是可能的。
此外,其它类型的计算环境可以受益并被使用。作为示例,适用于存储和/或执行程序代码的数据处理系统是可用的,其包括通过系统总线直接或间接耦接到存储器元件的至少两个处理器。存储器元件包括例如在程序代码的实际执行期间使用的本地存储器,大容量存储和高速缓存存储器,该高速缓存存储器提供至少一些程序代码的临时存储,以便减少执行期间必须从大容量存储重新取回代码的次数。
输入/输出或I/O设备(包括但不限于键盘,显示器,指示设备,DASD,磁带,CD,DVD,拇指驱动器和其它存储介质等)可以直接耦接到系统或通过介入I/O控制器而耦接到系统。网络适配器还可以耦接到系统,以使数据处理系统能够通过介入私有或公共网络而耦接到其它数据处理系统或远程打印机或存储设备。调制解调器,电缆调制解调器和以太网卡只是可用类型的网络适配器中的一小部分。
这里使用的术语仅出于描述特定实施例的目的,并不意图限制本发明。如这里所使用的,单数形式“一”,“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或者添加一个或多个其它特征、整数、步骤、操作、元素、组件和/或它们的组合。
以下权利要求中的所有装置或步骤加功能元件的相应结构、材料、动作和等同物(如果有的话)旨在包括如所具体要求保护的用于结合其它要求保护的元件来执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了对一个或多个实施例的描述,但是并不旨在穷举或限制于所公开的形式。许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释各个方面和实际应用,并且使本领域普通技术人员能够理解具有各种修改的各种实施例适合于预期的特定用途。
Claims (20)
1.一种用于促进计算环境内的处理的计算机程序产品,所述计算机程序产品包括:
计算机可读存储介质,其可由处理电路读取并存储用于由所述处理电路执行的指令,所述处理电路用于执行方法,所述方法包括:
获得用于执行的指令,所述指令为生成用于所述计算环境内的处理的值,所述指令具有与其相关联的符号控制,所述符号控制用于提供由所述指令生成的值的符号;
执行所述指令,所述执行包括:
获得所述符号控制;
将所述指令提供的输入值在指定方向上位移选定的量以提供结果;
将所述结果置放在寄存器的第一指定地点;以及
基于所述符号控制,将所述符号包括在所述寄存器的第二指定位置,所述结果和所述符号提供用于所述计算环境内的处理的有符号值。
2.根据权利要求1所述的计算机程序产品,其中,所述获得所述符号控制包括从所述指令的字段获得所述符号控制,其中,基于所述符号控制是第一值,所述符号为正,而基于所述符号控制是第二值,所述符号为负。
3.根据权利要求1所述的计算机程序产品,其中,所述执行还包括:
从所述指令的字段中获得所述输入值;
检查所述输入值的有效性;以及
基于所述检查指示所述输入值有效,实施所述位移。
4.根据权利要求1所述的计算机程序产品,其中,所述指定方向为左。
5.根据权利要求1所述的计算机程序产品,其中,所述执行还包括从所述指令的字段获得所述选定的量。
6.根据权利要求1所述的计算机程序产品,其中,所述第一指定位置是所述寄存器中具有有符号压缩十进制格式的幅度的位置。
7.根据权利要求1所述的计算机程序产品,其中,使用所述指令的至少一个字段来指定所述寄存器。
8.根据权利要求7所述的计算机程序产品,其中,所述至少一个字段包括指定寄存器编号的寄存器字段以及指定要附加到所述寄存器编号的扩展值的扩展字段。
9.根据权利要求1所述的计算机程序产品,其中,所述结果的所述置放还包括将零置放于所述寄存器的第三指定位置。
10.根据权利要求9所述的计算机程序产品,其中,所述第三指定位置包括所述寄存器的一个或多个最左侧位置。
11.一种用于促进计算环境内的处理的计算机系统,所述计算机系统包括:
存储器;以及
处理器,其与所述存储器通信,其中,所述计算机系统被配置为执行方法,所述方法包括:
获得用于执行的指令,所述指令为生成用于所述计算环境内的处理的值,所述指令具有与其相关联的符号控制,所述符号控制用于提供由所述指令生成的值的符号;
执行所述指令,所述执行包括:
获得所述符号控制;
将所述指令提供的输入值在指定方向上位移选定的量以提供结果;
将所述结果置放在寄存器的第一指定地点;以及
基于所述符号控制,将所述符号包括在所述寄存器的第二指定位置,所述结果和所述符号提供用于所述计算环境内的处理的有符号值。
12.根据权利要求11所述的计算机系统,其中,所述获得所述符号控制包括从所述指令的字段获得所述符号控制,其中,基于所述符号控制是第一值,所述符号为正,而基于所述符号控制是第二值,所述符号为负;其中,使用所述指令的至少一个字段来指定所述寄存器;其中,所述指定方向为左;并且其中,所述执行还包括从所述指令的字段获得所述选定的量。
13.根据权利要求11所述的计算机系统,其中,所述执行还包括:
从所述指令的字段中获得所述输入值;
检查所述输入值的有效性;以及
基于所述检查指示所述输入值有效,实施所述位移。
14.根据权利要求11所述的计算机系统,其中,所述第一指定位置是所述寄存器中具有有符号压缩十进制格式的幅度的位置。
15.根据权利要求11所述的计算机系统,其中,所述结果的所述置放还包括将零置放于所述寄存器的第三指定位置。
16.一种促进计算环境内的处理的计算机实现的方法,该计算机实现的方法包括:
由处理器获得用于执行的指令,所述指令为生成用于所述计算环境内的处理的值,所述指令具有与其相关联的符号控制,所述符号控制用于提供由所述指令生成的值的符号;
执行所述指令,所述执行包括:
获得所述符号控制;
将所述指令提供的输入值在指定方向上位移选定的量以提供结果;
将所述结果置放在寄存器的第一指定地点;以及
基于所述符号控制,将所述符号包括在所述寄存器的第二指定位置,所述结果和所述符号提供用于所述计算环境内的处理的有符号值。
17.根据权利要求16所述的计算机实现的方法,其中,所述获得所述符号控制包括从所述指令的字段获得所述符号控制,其中,基于所述符号控制是第一值,所述符号为正,而基于所述符号控制是第二值,所述符号为负;其中,使用所述指令的至少一个字段指定所述寄存器;其中,所述指定方向为左;并且其中,所述执行还包括从所述指令的字段获得所述选定的量。
18.根据权利要求16所述的计算机实现的方法,其中,所述执行还包括:
从所述指令的字段获得所述输入值;
检查所述输入值的有效性;以及
基于所述检查指示所述输入值有效,实施所述位移。
19.根据权利要求16所述的计算机实现的方法,其中,所述第一指定位置是所述寄存器中具有有符号压缩十进制格式的幅度的位置。
20.根据权利要求16所述的计算机实现的方法,其中,所述结果的所述置放还包括将零置放于所述寄存器的第三指定位置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/281,181 | 2016-09-30 | ||
US15/281,181 US10235170B2 (en) | 2016-09-30 | 2016-09-30 | Decimal load immediate instruction |
PCT/EP2017/074347 WO2018060183A1 (en) | 2016-09-30 | 2017-09-26 | Decimal load immediate instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109791491A true CN109791491A (zh) | 2019-05-21 |
CN109791491B CN109791491B (zh) | 2023-08-11 |
Family
ID=59966770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780060017.8A Active CN109791491B (zh) | 2016-09-30 | 2017-09-26 | 用于促进计算环境内的处理的方法和计算机系统 |
Country Status (12)
Country | Link |
---|---|
US (3) | US10235170B2 (zh) |
JP (1) | JP7159154B2 (zh) |
KR (1) | KR102238190B1 (zh) |
CN (1) | CN109791491B (zh) |
AU (1) | AU2017336196B2 (zh) |
BR (1) | BR112019006612A2 (zh) |
CA (1) | CA3036110A1 (zh) |
IL (1) | IL265550B (zh) |
MX (2) | MX2019003612A (zh) |
RU (1) | RU2723663C1 (zh) |
TW (1) | TWI653579B (zh) |
WO (1) | WO2018060183A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10235170B2 (en) * | 2016-09-30 | 2019-03-19 | International Business Machines Corporation | Decimal load immediate instruction |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1230058A (zh) * | 1998-03-18 | 1999-09-29 | 富士通株式会社 | 计算m序列的相移系数的方法 |
US20130212357A1 (en) * | 2012-02-09 | 2013-08-15 | Qualcomm Incorporated | Floating Point Constant Generation Instruction |
US20130246768A1 (en) * | 2012-03-15 | 2013-09-19 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
US20130339328A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
CN104025044A (zh) * | 2011-12-29 | 2014-09-03 | 国际商业机器公司 | 从区位格式转换为十进制浮点格式 |
CN104137058A (zh) * | 2011-12-23 | 2014-11-05 | 英特尔公司 | 用于十进制浮点数据逻辑提取的方法和装置 |
US20160092163A1 (en) * | 2014-09-30 | 2016-03-31 | International Business Machines Corporation | Machine instructions for converting from decimal floating point format to packed decimal format |
JP2016512627A (ja) * | 2013-01-23 | 2016-04-28 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Vectorfloatingpointtestdataclassimmediate命令を処理するためのコンピュータ・システム、コンピュータ・プログラム及び方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0778723B2 (ja) * | 1988-11-08 | 1995-08-23 | 日本電気株式会社 | 情報処理装置 |
JPH06168098A (ja) * | 1992-11-30 | 1994-06-14 | Toshiba Corp | 十進数チェック装置 |
US5940311A (en) | 1996-04-30 | 1999-08-17 | Texas Instruments Incorporated | Immediate floating-point operand reformatting in a microprocessor |
US6067617A (en) * | 1998-04-07 | 2000-05-23 | International Business Machines Corporation | Specialized millicode instructions for packed decimal division |
JP2002073325A (ja) * | 2000-08-25 | 2002-03-12 | Sanyo Electric Co Ltd | データ処理装置及び方法 |
JP2003303100A (ja) | 2002-04-11 | 2003-10-24 | Mitsubishi Electric Corp | 情報処理システムおよび情報処理システム構築方法並びにこれに用いるプログラム |
TWI252430B (en) | 2004-01-19 | 2006-04-01 | Mediatek Inc | Joint adaptive fixed-point representation and related arithmetic and processor thereof |
US20080270495A1 (en) * | 2007-04-26 | 2008-10-30 | International Business Machines Corporation | Insert/extract biased exponent of decimal floating point data |
US8051117B2 (en) | 2007-04-26 | 2011-11-01 | International Business Machines Corporation | Shift significand of decimal floating point data |
JP5387211B2 (ja) | 2009-07-30 | 2014-01-15 | ソニー株式会社 | 線形性改善回路、σδa/d変換器、および受信装置 |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
JP5967618B2 (ja) * | 2013-04-17 | 2016-08-10 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 二進化十進数型変数へのアクセスを有する言語のバイナリコードを最適化する方法、並びにそのコンピュータ及びコンピュータ・プログラム |
US9645820B2 (en) * | 2013-06-27 | 2017-05-09 | Intel Corporation | Apparatus and method to reserve and permute bits in a mask register |
US9465575B2 (en) | 2013-08-05 | 2016-10-11 | Nvidia Corporation | FFMA operations using a multi-step approach to data shifting |
US10345170B2 (en) | 2016-07-06 | 2019-07-09 | Greenlee Tools, Inc. | Gauge device for measuring tension on a pulling rope during a cable pull |
US10235170B2 (en) * | 2016-09-30 | 2019-03-19 | International Business Machines Corporation | Decimal load immediate instruction |
-
2016
- 2016-09-30 US US15/281,181 patent/US10235170B2/en active Active
-
2017
- 2017-09-26 JP JP2019515613A patent/JP7159154B2/ja active Active
- 2017-09-26 MX MX2019003612A patent/MX2019003612A/es unknown
- 2017-09-26 CA CA3036110A patent/CA3036110A1/en active Pending
- 2017-09-26 RU RU2018146212A patent/RU2723663C1/ru active
- 2017-09-26 AU AU2017336196A patent/AU2017336196B2/en active Active
- 2017-09-26 CN CN201780060017.8A patent/CN109791491B/zh active Active
- 2017-09-26 KR KR1020197008944A patent/KR102238190B1/ko active IP Right Grant
- 2017-09-26 WO PCT/EP2017/074347 patent/WO2018060183A1/en active Application Filing
- 2017-09-26 BR BR112019006612A patent/BR112019006612A2/pt unknown
- 2017-09-29 TW TW106133532A patent/TWI653579B/zh active
- 2017-11-08 US US15/806,816 patent/US10430185B2/en active Active
-
2019
- 2019-03-22 IL IL265550A patent/IL265550B/en active IP Right Grant
- 2019-03-28 MX MX2024001562A patent/MX2024001562A/es unknown
- 2019-08-19 US US16/544,038 patent/US10990390B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1230058A (zh) * | 1998-03-18 | 1999-09-29 | 富士通株式会社 | 计算m序列的相移系数的方法 |
CN104137058A (zh) * | 2011-12-23 | 2014-11-05 | 英特尔公司 | 用于十进制浮点数据逻辑提取的方法和装置 |
CN104025044A (zh) * | 2011-12-29 | 2014-09-03 | 国际商业机器公司 | 从区位格式转换为十进制浮点格式 |
US20130212357A1 (en) * | 2012-02-09 | 2013-08-15 | Qualcomm Incorporated | Floating Point Constant Generation Instruction |
US20130246768A1 (en) * | 2012-03-15 | 2013-09-19 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
CN104169877A (zh) * | 2012-03-15 | 2014-11-26 | 国际商业机器公司 | 将不相邻指令区分符变换为相邻指令区分符 |
US20130339328A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
CN104335177A (zh) * | 2012-06-15 | 2015-02-04 | 国际商业机器公司 | 有选择地控制事务处理中的指令执行 |
JP2016512627A (ja) * | 2013-01-23 | 2016-04-28 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Vectorfloatingpointtestdataclassimmediate命令を処理するためのコンピュータ・システム、コンピュータ・プログラム及び方法 |
US20160092163A1 (en) * | 2014-09-30 | 2016-03-31 | International Business Machines Corporation | Machine instructions for converting from decimal floating point format to packed decimal format |
Also Published As
Publication number | Publication date |
---|---|
IL265550B (en) | 2021-02-28 |
US10990390B2 (en) | 2021-04-27 |
KR102238190B1 (ko) | 2021-04-09 |
AU2017336196A1 (en) | 2019-04-04 |
KR20190054087A (ko) | 2019-05-21 |
RU2723663C1 (ru) | 2020-06-17 |
AU2017336196B2 (en) | 2020-07-09 |
MX2019003612A (es) | 2019-06-17 |
JP7159154B2 (ja) | 2022-10-24 |
MX2024001562A (es) | 2024-02-14 |
US20180095757A1 (en) | 2018-04-05 |
WO2018060183A1 (en) | 2018-04-05 |
CA3036110A1 (en) | 2018-04-05 |
US10430185B2 (en) | 2019-10-01 |
TW201816600A (zh) | 2018-05-01 |
US20180095755A1 (en) | 2018-04-05 |
TWI653579B (zh) | 2019-03-11 |
IL265550A (en) | 2019-05-30 |
CN109791491B (zh) | 2023-08-11 |
US20190369993A1 (en) | 2019-12-05 |
US10235170B2 (en) | 2019-03-19 |
JP2019530093A (ja) | 2019-10-17 |
BR112019006612A2 (pt) | 2019-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109891387A (zh) | 具有可选择比较属性的浮点指令 | |
CN109791489A (zh) | 执行符号操作十进制指令 | |
CN110140108A (zh) | 处理兄弟调用 | |
KR102178288B1 (ko) | 십진수 시프트 및 나누기 명령 | |
KR20230122163A (ko) | 16진수 부동 소수점을 스케일된 10진수로의 벡터 변환명령 | |
CN109791479B (zh) | 十进制乘法和移位指令 | |
CN109791491A (zh) | 十进制加载立即指令 | |
WO2023093524A1 (en) | Reducing data format conversion of an accelerator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40003950 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |