CN109791489A - 执行符号操作十进制指令 - Google Patents

执行符号操作十进制指令 Download PDF

Info

Publication number
CN109791489A
CN109791489A CN201780058817.6A CN201780058817A CN109791489A CN 109791489 A CN109791489 A CN 109791489A CN 201780058817 A CN201780058817 A CN 201780058817A CN 109791489 A CN109791489 A CN 109791489A
Authority
CN
China
Prior art keywords
instruction
symbol
computer
described instruction
input operand
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
Application number
CN201780058817.6A
Other languages
English (en)
Other versions
CN109791489B (zh
Inventor
R·科普兰
S·M·穆勒
J·布拉德伯里
T·斯莱格尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN109791489A publication Critical patent/CN109791489A/zh
Application granted granted Critical
Publication of CN109791489B publication Critical patent/CN109791489B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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 for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Complex Calculations (AREA)

Abstract

用于执行针对指令配置的多个符号操作中的符号操作的指令。执行该指令,并且该执行包括选择输入操作数的至少一部分作为要置放在选择位置的结果。该选择基于对指令的控制,其中,控制指示要被选择为结果的输入操作数的用户定义大小。基于多个标准确定结果的符号,所述标准包括基于指令的控制所获得的结果的值,该值具有关于选定值的第一特定关系或第二特定关系。结果和符号存储在选择位置,以提供用于计算环境内的处理的有符号输出。

Description

执行符号操作十进制指令
技术领域
一般而言,一个或多个方面涉及计算环境内的处理,尤其涉及改进这种处理。
背景技术
在计算环境的处理器内执行的应用程序控制处理器的行为。应用程序使用编程语言创建,这些编程语言被设计为将指令传递给处理器。存在各种类型的编程语言,并且每种语言可以使用一种或多种类型的编码来表示数据。
例如,二进制编码的十进制(BCD)是采用编程语言COBOL和PL/I的本机数据类型编码,并且也是DB2数据库管理系统中的受支持的数据类型。通过语言和类库扩展,其它语言(如C和)也支持某些形式的BCD数据类型。Java和所有基于Java的商标和徽标是甲骨文和/或其附属公司的商标或注册商标。
一种计算BCD类型(压缩十进制)具有编码,该编码指定在每4位存储中编码一个十进制数字,除了最低有效字节的最低有效4位之外,在该最低有效4位中编码4个数字符号码。符号码可以是覆盖十六进制值0xA到0xF的任何非数字4位值。例如,值+123可以在两个存储字节中被编码为十六进制12 3C。
分区十进制的显示BCD类型也共享这种类型的符号编码。采用分区十进制的值+123在三个存储字节中被编码为十六进制F1 F2 C3。符号码覆盖最低有效字节的最高有效4位。
符号码到符号值的映射如下:
0xA:+
0XB:-
0xC:+(所选择的正编码)
0xD:-(所选择的负编码)
0xE:+
0xF:+(所选择的无符号编码)
如上所述,某些符号码被指定为规范编码或选定编码。这意味着尽管输入中接受了这些符号中的任何一个,但编译器生成的代码应在输出上仅生成选定编码(即,根据数据类型的声明方式-有符号变量使用0xC或0xD,而无符号变量使用0xF)。
无符号变量不是“没有符号的(signless)”,反而它们可以在输入上具有任何编码(甚至是负编码),但是为了遵守语言规则,编译器生成的代码应该在输出上生成0xF符号码以用于表达式(除了算术表达式之外,还包括简单的移动和事先比较)。
为了针对输出数据执行符号操作,使用多个指令。对于编译器的挑战是如何有效地生成代码以涵盖针对有符号和无符号变量类型和操作(例如移动,求补,取非,绝对值)的许多组合的无数可能编码。
对于硬件设计的相关挑战是如何紧凑地编码所有这些各种可能性以适应指令编码限制,并且还不破坏具有许多现有和未来指令的体系结构中的固定的一组可能的操作编码。
由于BCD变量传统上是通过存储到存储(SS)指令来操作的,因此设置符号码通常涉及额外的存储器操作,这可能减慢现代无序(OOO)处理器的速度。
另一个挑战是如何在异常情况下对产生兼容结果敏感。例如,如果输入符号码是不合法的(例如,无符号变量的符号码位置中的数字),则一种语言或环境可能指示硬件异常始终需要,但对于严格兼容,在其它情况下非法编码应该被忽略并被视为无符号(因为值+相对-对于无符号变量实际上不存在问题)。
因此,本领域需要解决上述问题。
发明内容
从第一方面来看,本发明提供了一种促进计算环境内的处理的计算机实现的方法,该计算机实现的方法包括:获得用于执行的指令,该指令为执行针对所述指令配置的多个符号操作中的符号操作;以及执行该指令,所述执行包括:选择输入操作数的至少一部分作为置放在选择位置的结果,所述选择基于所述指令的控制,所述指令的控制指示要被选择为结果的输入操作数的用户定义的大小;基于多个标准确定所述结果的符号,所述多个标准包括基于对指令的控制所获得的结果的值,该值具有关于选定值的第一特定关系或第二特定关系;以及将该结果和符号存储在选择位置,以提供用于计算环境内的处理的有符号输出。
从另一方面来看,本发明提供了一种用于促进计算环境内的处理的计算机系统,该计算机系统包括:存储器;与所述存储器通信的处理器,其中,所述计算机系统被配置为执行方法,所述方法包括:获得用于执行的指令,所述指令为执行针对所述指令配置的多个符号操作中的符号操作;以及执行该指令,所述执行包括:选择输入操作数的至少一部分作为要置放在选择位置的结果,所述选择基于所述指令的控制,所述指令的控制指示要被选择为结果的输入操作数的用户定义的大小;基于多个标准确定结果的符号,所述多个标准包括基于指令的控制所获得的结果的值,该值具有关于选定值的第一特定关系或第二特定关系;以及将该结果和符号存储在选择位置,以提供用于计算环境内的处理的有符号输出。
从另一方面来看,本发明提供了一种用于促进计算环境内的处理的计算机程序产品,该计算机程序产品包括可由处理电路读取的计算机可读存储介质,并存储由处理电路执行的指令,以执行用于执行本发明的步骤的方法。
从另一方面来看,本发明提供了一种存储在计算机可读介质上并可加载到数字计算机的内部存储器中的计算机程序,该计算机程序包括软件代码部分,当所述程序在计算机上运行时,该软件代码部分用于执行本发明的步骤。
从另一方面来看,本发明提供了存储在计算机可读介质上并加载到本发明的系统的内部存储器中的计算机程序,该计算机包括程序软件代码部分,当所述程序在系统上运行时,该软件代码部分用于执行本发明的步骤。
通过提供用于促进计算环境中的处理的计算机程序产品,克服了现有技术的缺点并提供了额外的优点。该计算机程序产品包括存储介质,该存储介质可由处理电路读取并存储用于由处理电路执行以执行方法的指令。该方法包括,例如,获得用于执行的指令,该指令为执行针对该指令配置的多个符号操作的符号操作。执行该指令,并且执行包括选择输入操作数的至少一部分作为要置放在选择位置的结果。该选择基于指令的控制,指令的控制指示要被选择为结果的输入操作数的用户定义的大小。基于多个标准确定结果的符号,所述标准包括基于指令的控制所获得的结果的值,该值具有关于选定值的第一特定关系或第二特定关系。该结果和符号存储在选择位置,以提供用于计算环境内的处理的有符号输出。
使用一个单指令(例如,体系结构机器指令)而不是多个指令来执行符号操作减少了要获取,解码和执行的指令的数量,并且改进了系统处理和性能。
作为示例,第一特定关系为相等,第二特定关系为不等,并且所选值为零。
在一个实施例中,输入操作数的该至少一部分包括输入操作数的多个选择数字,该多个选择数字由指令的控制指定。例如,该多个选择数字包括输入操作数的最右侧的多个数字。
作为一个示例,控制被设置在指令的立即字段中。
此外,在一个实施例中,多个标准还包括要执行的符号操作。然而,在进一步的实施例中,多个标准还包括从标准组中选择的至少一个标准,标准组包括:要执行的符号操作,输入操作数的符号,以及指令的正符号码控制。
作为示例,该多个符号操作包括维持,求补,强制为正和强制为负。
另外,在一个实施例中,执行还包括基于指令的另一控制指示要检查有效性,检查输入操作数的符号的有效性。
在一个示例中,选择位置是寄存器,使用指令的至少一个字段来指定寄存器。该至少一个字段包括例如指定寄存器编号的寄存器字段和指定要附加到寄存器编号的扩展值的扩展字段。
本文还描述并要求保护与一个或多个方面有关的方法和系统。此外,还描述并且可能在此要求保护与一个或多个方面有关的服务。
通过本文描述的技术实现了额外的特征和优点。在此详细描述了其它实施例和方面,并且这些实施例和方面被认为是所要求保护的方面的一部分。
附图说明
在说明书结论处的权利要求中,一个或多个方面作为示例被特别指出并清楚地被要求保护。通过以下结合附图的详细描述,一个或多个方面的前述和目的,特征和优点是显而易见的,其中:
图1A描绘了结合和使用本发明的一个或多个方面的计算环境的一个示例;
图1B描绘了根据本发明的一个方面的图1 A中的处理器的进一步细节;
图2A描绘了结合和使用本发明的一个或多个方面的计算环境的另一示例;
图2B描绘了图2 A中的存储器的进一步细节;
图3A描绘了根据本发明的一个方面的矢量执行符号操作十进制指令的一个示例;
图3B描绘了根据本发明的一个方面的图3 A中的矢量执行符号操作十进制指令的立即字段的控制的一个实施例;
图3C描绘了根据本发明的一个方面的图3 A中的矢量执行符号操作十进制指令的掩码字段的一个实施例;
图3D描绘了根据本发明的一个方面的图3 A中的矢量执行符号操作十进制指令的另一个立即字段的控制的一个实施例;
图4描绘了根据本发明的一个方面的用于不同符号操作和结果的结果符号码的表的一个示例;
图5描绘了根据本发明的一个方面的与矢量执行符号操作十进制指令相关联的处理的一个示例;
图6A-6B描绘了根据本发明的一个方面的促进计算环境中的处理的一个示例,该处理包括执行矢量执行符号操作十进制指令;
图7描绘了云计算环境的一个实施例;以及
图8描绘了抽象模型层的一个示例。
具体实施方式
一个或多个方面涉及通过提供用于替换要使用的多个指令以采用单个指令(例如,在硬件/软件接口处的单个体系结构机器指令)来执行符号操作的能力来改进计算环境内的处理。在一个示例中,该指令(在此称为矢量执行符号操作十进制指令)灵活且紧凑地处理各种符号设置和异常保持/抑制行为。
参考图1描述了结合和使用本发明的一个或多个方面的计算环境的一个实施例。在一个示例中,计算环境基于由纽约阿蒙克的国际商业机器公司提供的z/体系结构。在2015年3月的IBM公开号为SA22-7832-10的“z/Architecture Principles of Operation(z/体系结构的工作原理)”,中描述了z/体系结构的一个实施例。
在另一个示例中,计算环境基于由纽约阿蒙克的国际商业机器公司提供的Power体系结构。在2015年4月9日的国际商业机器公司的“Power ISA TM Version 2.07B(PowerISA TM版本2.07B)”,中描述了Power体系结构的一个实施例。
计算环境还可以基于其它体系结构,包括但不限于英特尔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;和/或基于由国际商业机器公司、惠普,英特尔,甲骨文或其它公司提供的体系结构的其它机器。IBM,PowerPC,pSeries,Power体系结构,z系统,z/体系结构是国际商业机器公司在全球许多管辖区域注册的商标。
本机中央处理单元202包括一个或多个本机寄存器210,诸如在该环境内处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括代表任何特定时间点的环境状态的信息。
此外,本机中央处理单元202执行存储在存储器204中的指令和代码。在一个特定示例中,中央处理单元执行存储在存储器204中的仿真器代码212。该代码使得在一个体系结构中配置的计算环境能够仿真另一种体系结构。例如,仿真器代码212允许基于除z/体系结构之外的体系结构的机器(诸如PowerPC处理器,服务器,HP Superdome服务器或其它)仿真z/体系结构并执行基于z/体系结构开发的软件和指令。
参考图2B描述与仿真器代码212有关的进一步细节。存储在存储器204中的访客指令250包括被开发为在不同于本机CPU202的体系结构中执行的软件指令(例如,与机器指令相关)。例如,访客指令250可能已经被设计为在z/体系结构处理器上执行,但是相反地,其在本机CPU202上进行仿真,本机CPU202可以是例如英特尔安腾II处理器。在一个示例中,仿真器代码212包括指令获取例程252以从存储器204获得一个或多个访客指令250,并且可选地为所获得的指令提供本地缓存。它还包括指令转换例程254,以确定已获得的访客指令的类型,并将访客指令转换成一个或多个相应的本机指令256。该转换包括:例如,识别要由访客指令执行的功能,并选择执行该功能的本机指令。
此外,仿真器212包括仿真控制例程260以使本机指令被执行。仿真控制例程260可以使本机CPU202执行仿真一个或多个先前获得的访客指令的本机指令的例程,并且在这种执行结束时,将控制返回到指令获得例程以仿真下一个访客指令或一组访客指示的获得。本机指令256的执行可以包括:将数据从存储器204加载到寄存器中;将数据从寄存器存储回存储器;或者执行如由转换例程确定的某种类型的算术或逻辑运算。
每个例程例如以软件实现,该软件存储在存储器中并由本机中央处理单元202执行。在其它示例中,一个或多个例程或操作以固件、硬件、软件或它们的一些组合实现。可以使用本机CPU的寄存器210或通过使用存储器204中的位置来仿真仿真处理器的寄存器。在实施例中,访客指令250,本机指令256和仿真器代码212可以驻留在相同的存储器中或者可以分配在不同的存储器设备中。
如本文所使用的,固件包括例如处理器的微代码,毫代码和/或宏代码。例如,它包括用于实现更高级机器代码的硬件级指令和/或数据结构。在一个实施例中,它包括,例如,通常作为微代码传送的专有代码,其包括特定于底层硬件的可信软件或微代码,并控制对系统硬件的操作系统访问。
已获得、转换并执行的访客指令250例如是本文描述的矢量执行符号操作十进制指令。具有一种体系结构(例如,z/体系结构)的指令从存储器中获取、转换并表示为一系列的具有另一种体系结构的本机指令256(例如,PowerPC,pSeries,英特尔等)。然后执行这些本机指令。
如本文所示,对于有符号和无符号变量类型和操作(例如,移动,求补,取非,绝对值等)的各种组合存在许多可能的编码。对于编译器的一个挑战是如何有效地生成代码以涵盖许多可能的编码。对于硬件设计的相关挑战是如何紧凑地编码所有这些各种可能性以适应指令编码限制,并且还不破坏具有许多现有和未来指令的体系结构中的固定的一组可能的操作编码。
由于BCD变量传统上是通过存储到存储(SS)指令来操作的,因此设置符号码通常涉及额外的存储器内操作,这可能减慢现代无序(OOO)处理器的速度。
另一个挑战是如何在异常情况下对产生兼容结果敏感。例如,如果输入符号码是不合法的(例如,无符号变量的符号码位置中的数字),则一种语言或环境可能指示提供硬件异常,但对于严格兼容,在其它情况下,非法编码将被忽略,并且只被视为无符号(因为值+相对-对于无符号变量实际上不存在问题)。
即使对于从一个变量到另一个变量的简单移动,许多符号设置操作使用至少两个机器指令:用于移动数据的一个指令,用于设置符号的一个或多个后续指令。由于在数据移动之前不能设置符号,因此建立了数据依赖性,这可以进一步减慢OOO处理器的速度。
作为示例,当要扩展无符号变量时,一个序列是使用ZAP指令进行加宽,然后使用OI(OR立即)或MVN(移动数字)将符号设置为0xF(因为ZAP将仅设置0xC或0xD)。这已经是两条指令了。此外,由于ZAP验证输入符号码,因此即使不能使用该序列,因为如果输入符号码不合法,则可能发生不希望的硬件异常。相反,使用更长且更昂贵的序列以实现这种类型的无符号变量扩展行为的兼容性。
因此,根据本发明的一个或多个方面,提供指令(例如,硬件/软件接口处的单个体系结构机器指令)以灵活且紧凑地处理各种符号设置和异常维持/抑制行为。该指令(在此称为矢量执行符号操作十进制指令)具有输入和一个输出操作数,以及执行许多符号操作和设置的能力,作为从输入到输出的数据移动的一部分(而不是一个后期操作)。
在实施例中,指令具有灵活的符号控制和符号验证控制,以允许在例如无效符号码的例外情况下微调执行符号操作行为。在另一实施例中,指令还可包括控制或可访问控制以选择性地检查数值数字的有效性。其它变化也是可能的。
矢量执行符号操作十进制指令编码具有若干部分,这些部分组合以紧凑地实现用于大范围操作和输入/输出类型的灵活和细粒度符号设置控制。
这些部分包括,例如:
1)指定输入和输出操作数。例如,操作数在寄存器中指定;然而,存储器内编码(例如,指定基数+位移)也是可能的实施例,以及其它实施例。
2)结果数字计数(RDC):指定输入操作数中最右侧的多少数字置放到输出操作数位置的数字(例如,1到31或1到64,取决于允许的最大大小)。截断和扩展操作二者都是可能的。如果根据系统设置丢失有效数字,则可能会引发溢出指示。
3)符号操作(SO):指令编码的这一部分确定正在执行的特定符号操作。例如,SO可以表示:
-发生了简单的移动,因此应该从输入到输出维持符号码;
-应从输入到输出求补符号码(从正切换到负,或从负切换到正);
-无论输入符号值如何,输入符号码都应在输出被强制为正(即绝对值类型操作);
-无论输入符号值如何,输入符号码都应在输出被强制为负。
4)正符号码(PC):指令编码的这一部分控制输出符号码(对于为正的结果值)是否应编码为0xF(二进制1111)或0xC(二进制1100)。
5)输入操作数符号验证(SV):指令编码的这一部分控制是否应对强制为正和强制为负符号操作进行符号验证(以及非法符号码的相应硬件异常)。该控制允许进行执行符号十进制操作的用户在存在可能的非法符号编码时维持严格的异常兼容性。例如,当执行二进制转换(有时称为二进制优化)时,可以使用这种类型的控制,其中即使在存在非法代码/数据的情况下也要维持对原始行为的严格兼容性。在一个实施例中,用于强制为正和强制为负操作的设置SV=0指示跳过有效性检查,而SV=1指示检查无效符号(并且在该实施例中,对于固有使用而不是以某种方式重写输入符号码的符号操作发生有效性检查)。
6)条件代码集(CS):矢量执行符号运算十进制指令还允许用户请求根据最终结果值来设置条件代码。提供指示结果值为零,小于零和大于零的设置,以及提供是否存在溢出(有效数字的截断)的指示,作为操作的一部分。
在一个实施例中,所有上述设置可以被编码为编码文本中的正好6个字节(其还包括下面描述的操作码和RXB),编码文本中的剩余若干比特用于将来的增强功能。
在一个示例中,通过例如符号操作(SO),第二操作数符号,结果数字计数(RDC)和正符号码(PC)设置的组合来确定结果符号码。
下面描述矢量执行符号操作十进制指令的设置和附加细节。在一个实施例中,矢量执行符号操作十进制指令是矢量设施的一部分,其提供例如范围从一到十六个元素的固定大小的矢量。每个矢量包括由该设施中定义的矢量指令操作的数据。在一个实施例中,如果矢量由多个元素组成,则每个元素与其它元素并行处理。在完成所有元素的处理之前,不会发生指令完成。在其它实施例中,元件部分地并行和/或顺序地处理。
矢量指令可以实现为各种体系结构的一部分,包括但不限于z/体系结构,Power体系结构,x86,IA-32,IA-64等。尽管本文描述的实施例是针对z/体系结构的,但是本文描述的矢量指令和一个或多个其它方面可以基于许多其它体系结构。z/体系结构只是一个例子。
在矢量设施被实现为z/体系结构的一部分以使用矢量寄存器和指令的一个实施例中,矢量启用控制和指定控制寄存器(例如,控制寄存器0)中的寄存器控制被设置为例如一。如果安装了矢量设施并且在没有启用控制集的情况下执行矢量指令,则识别数据异常。如果未安装矢量设施并执行矢量指令,则识别操作异常。
在一个实施例中,存在32个矢量寄存器,并且其它类型的寄存器可以映射到矢量寄存器的象限。例如,寄存器文件可以包括32个矢量寄存器,每个寄存器的长度为128位。16个浮点寄存器(长度为64位)可以覆盖矢量寄存器。因此,作为示例,当修改浮点寄存器2时,也修改矢量寄存器2。针对其它类型的寄存器的其它映射也是可能的。
矢量数据例如,以与其它数据格式相同的从左到右的顺序出现在存储中。编号为0-7的数据格式的位构成存储中最左侧(最低编号)字节位置的字节,位8-15构成下一个连续位置中的字节,依此类推。在另一示例中,矢量数据可以以另一序列(例如从右到左)出现在存储中。
参考图3A-3D描述矢量执行符号操作十进制指令的一个示例。如图所示,该指令具有多个字段,并且字段可以具有与其相关联的下标编号。与指令的字段相关联的下标编号表示该字段应用的操作数。例如,与矢量寄存器V1相关联的下标编号1表示V1中的寄存器包括第一操作数,依此类推。寄存器操作数在长度为一个寄存器,其例如是128位。
参考图3A,在一个实施例中,矢量执行符号操作十进制指令300包括:操作码字段302a、302b,其指示矢量执行符号操作十进制操作;第一矢量寄存器字段304,其用于指定第一矢量寄存器(V1);第二矢量寄存器字段306,其用于指定第二矢量寄存器(V2);第一立即字段(I4)308;掩模字段(M5)310;第二立即字段(I3)312;寄存器扩展位(RXB)字段314,下面将描述它们中的每一个。在一个实施例中,这些字段是分开的并且彼此独立;然而,在其它实施例中,可以组合多于一个字段。关于这些字段的进一步信息如下所述。
矢量寄存器字段304用于指示用于存储第一操作数的矢量寄存器,第一操作数包括由指令生成的修改符号和第二操作数中的指定数量的数字。操作数和结果例如是有符号压缩十进制格式。在一个示例中,在有符号压缩十进制格式中,每个字节包含两个十进制数字(D),除了最右侧的字节,其包含十进制数字右侧的符号(S)。
第二操作数(即,输入操作数)被包含在使用矢量寄存器字段306指定的矢量寄存器中。在一个示例中,矢量寄存器字段304、306中的每一个与RXB字段314一起用于指定矢量寄存器。
例如,RXB字段314包括针对矢量寄存器指定的操作数的最高有效位。未由指令指定的针对寄存器指定的位被保留并设置为零。例如,将最高有效位连接到矢量寄存器字段的四位寄存器指定的左侧,以创建五位矢量寄存器指定。
在一个示例中,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字段包括附加位,并且多于一位被用作针对每个矢量或位置的扩展。
立即(I4)字段308指定包括多个控制的第四操作数。例如,如图3B所示,I4字段308包括以下内容:
·保留:位0-3被忽略,但它们要包含零;否则,该程序将来可能无法兼容运行。
·符号操作(SO)342:位4-5指定用于确定结果符号码的符号操作。如图4中所指定的,结果符号码是例如SO控制、第二操作数符号、第二操作数数字、RDC控制和PC位的函数。
·正符号码(PC)344:当位6为一时,在结果为正时使用符号码1111。当位6为零时,在结果为正时使用符号码1100。
·操作数2符号验证(SV)346:如果第7位为一且SO控制指定强制为正或强制为负,则检查第二操作数符号码的有效性。如果位7为零且SO控制指定强制为正或强制为负,则不检查第二操作数符号码的有效性。当SO控制指定维持或求补符号时,无论SV位值如何,都检查第二操作数符号码的有效性。
如图3C所示,在一个示例中,M5字段310包括以下控制:
·保留:位0-2被忽略,并且包含零;否则,该程序将来可能无法兼容运行。
·条件代码集(CS)348:当位3为零时,条件代码未设置并保持不变。当位3为一时,条件代码按照下面的结果条件代码部分中规定的进行设置。
结果条件代码:
当CS位为一时,在一个示例中,条件代码设置如下:
0结果为零;没有溢出
1结果小于零;没有溢出
2结果大于零;没有溢出
3溢出
当CS位为零时,条件代码保持不变。
如图3D所示,在一个示例中,I3字段312包括以下控制:
·保留:位0-2被保留,并且包含零。否则,识别规范异常。
·结果数字计数(RDC)350:位3-7包含无符号二进制数,其指定要置放在第一操作数中的第二操作数的最右侧数字的数量。在一个示例中,如果第二操作数的幅度大于可以用指定的数字数量来表示的最大十进制数,则发生十进制溢出,如果十进制溢出掩码为一,则发生针对十进制溢出的程序中断。在一个实施例中,如果RDC字段为零,则识别规范异常。
尽管描述了各种字段和寄存器,但是本发明的一个或多个方面可以使用其它,附加或更少的字段或寄存器,或其它大小的字段或寄存器等。许多变体是可能的。例如,可以使用隐含寄存器而不是指令的明确指定的寄存器或字段。此外,可以使用除矢量寄存器之外的寄存器。另外,在其它实施例中,可以选择其它数字,例如最左侧的数字或另一个子集。同样,其它变化也是可能的。
在矢量执行符号操作十进制指令的一个实施例的操作中,第二操作数的修改符号和指定数量的最右侧的数字被置放在第一操作数位置中,其它数字被设置为零。在一个示例中,操作数和结果采用有符号压缩十进制格式。
如果RDC控制没有指定足够的数字来包含第二操作数的所有最左侧的非零数字,则发生十进制溢出。操作完成。通过忽略溢出数字获得结果,并且如果条件代码集(CS)标志是一,则设置条件代码3。如果例如程序状态字中的十进制溢出掩码是一,则发生针对十进制溢出的程序中断。
如果RDC控制指定小于例如三十一个数字,则将零置放于第一操作数的剩余的最左侧数字中。
在一个示例中,检查第二操作数的所有数字码的有效性。除非符号操作(SO)控制指定结果符号被强制为正或强制为负,并且操作数2符号验证(SV)控制为零,否则检查第二操作数的符号码的有效性。
如在图4中所指定的,结果符号码是例如SO控制、第二操作数符号、第二操作数数字、结果数字计数(RDC)控制、和正符号码(PC)控制的函数。例如,如果SO(400)=00,则应用RDC之后的第二操作数的数字的值(402)为非零,第二操作数符号(V2)(404)为正,并且PC(406)为一,结果符号码(408)是十六进制F(正)410。另外,它表示在该示例中,对输入操作数符号码执行412有效性检查。
尽管提供了各种示例,但是在不脱离所要求保护的方面的范围的情况下,可以进行变化。例如,在其它实施例中,包括在由指令使用的寄存器和/或字段中的值可以位于其它位置,例如存储器位置等。许多其它变体是可能的。
参考图5描述关于与执行矢量执行符号操作十进制指令相关联的处理的进一步细节。该处理由至少一个处理器执行。
参考图5,首先获得第二操作数的值,步骤500。在一个示例中,第二操作数的值包括多个数字,并且确定这些数字是否有效,查询502。如果数字是无效的,则完成矢量执行符号操作十进制指令的处理。但是,如果数字是有效的,则继续处理,从I3字段获得结果数字计数,步骤504。此外,选择第二操作数的至少一部分,步骤506。例如,选择在结果数字计数中指示的所述数量的最右侧数字。第二操作数的选定部分被置放在选择位置,步骤508。在一个示例中,选择位置是使用V1字段指定的寄存器。在另一示例中,选择位置在存储器中或另一个位置中。此外,确定第二操作数的选定部分的符号,步骤510。在一个示例中,使用多个标准来确定符号,包括例如在I4字段中指定的符号操作;应用RDC后的结果幅度;第二操作数的符号;以及I4中指定的正符号码的值。基于这些标准,获得结果符号码,如图4所示。然后将结果符号码与指定数量的最右侧数字一起置放在选择位置,步骤512。在一个例子中,指定数量的最右侧数字和符号码被置放在有符号压缩十进制格式中。
这里描述的是用于使用单个体系结构指令来执行符号操作的设施。该指令替换一个或多个指令序列,并改善计算机处理和性能。在一个示例中,提供了一种能够紧凑且有效地设置用于压缩十进制数的符号码的能力。
单个指令(例如,单个体系结构指令)可以处理例如以下情况:移动数据加上将符号设置到0xC,0xD或0xF;在可选地设置或保留符号的同时截断数据;禁止对不受信任的输入数据进行验证的能力(作为示例,这是二进制优化用例中的兼容性选项);符号求补;和可选的条件代码设置。某些语言在溢出时提供机器异常,但其它语言(例如,COBOL)使用条件代码进行用户定义的操作。
现在重新讨论使用ZAP/OI序列进行无符号变量扩展的上述示例。通过将RDC设置为所需的较宽结果大小,将SO设置为强制为正,将SV设置为0以跳过符号有效性检查,现在可以采用矢量执行符号操作十进制指令实现此行为。现在,在单个指令中实现了期望的和完全兼容的行为。
参考图6A-6B描述关于促进计算环境中的处理的进一步细节,包括执行执行符号操作的指令。
参考图6A,在一个实施例中,通过至少一个处理器获得执行针对该指令配置的多个符号操作中的符号操作的指令,步骤600,并执行该指令,步骤602。该执行包括例如选择输入操作数的至少一部分作为置放在选择位置的结果,步骤604。该选择基于指令的控制(606),指令的控制指示要被选为结果的输入操作数的用户定义大小(608)。基于多个标准确定结果的符号,步骤610。多个标准包括,例如,基于指令的控制所获得的结果的值,该值具有关于选定值的第一特定关系或第二特定关系(612)。该结果和符号存储在选择位置,以提供用于计算环境内的处理的有符号输出,步骤614。
作为示例,第一特定关系为相等,第二特定关系为不等,并且选定值为零(616)。
此外,在一个示例中,输入操作数的该至少一部分包括输入操作数的多个选择数字(例如,多个最右侧的数字),由指令的控制来指定该多个选择数字(618)。此外,参考图6B,在一个实施例中,在指令的立即字段中提供控制(620)。
此外,在一个示例中,多个标准还包括要执行的符号操作(622)。此外,在另一示例中,多个标准包括从包括要执行的符号操作,输入操作数的符号和指令的正符号码控制的标准组中选择的至少一个标准(624)。
作为一个示例,多个有符号操作包括维持,求补,强制为正和强制为负(626)。
在另一实施例中,执行还包括基于指令的另一控制指示要检查有效性,检查输入操作数的符号的有效性,步骤628。
此外,在一个示例中,选择位置是寄存器,使用指令的至少一个字段来指定寄存器(630)。该至少一个字段包括指定寄存器编号的寄存器字段和指定要附加到寄存器编号的扩展值的扩展字段(632)。
一个或多个方面可以涉及云计算
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。图1A中描绘的节点10便是这样的一个节点。
云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
现在参考图7,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图7显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图8,其中显示了云计算环境50(图7)提供的一组功能抽象层。首先应当理解,图8所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层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 (19)

1.一种促进计算环境内的处理的计算机实现的方法,所述计算机实现的方法包括:获得用于执行的指令,所述指令为执行针对所述指令配置的多个符号操作中的符号操作;以及
执行所述指令,所述执行包括:
选择输入操作数的至少一部分作为置放在选择位置的结果,所述选择基于所述指令的控制,所述指令的控制指示要被选择为所述结果的所述输入操作数的用户定义的大小;
基于多个标准来确定所述结果的符号,所述多个标准包括基于所述指令的所述控制所获得的所述结果的值,所述值具有关于选定值的第一特定关系或第二特定关系;以及
将所述结果和所述符号存储在所述选择位置以提供用于所述计算环境内的处理的有符号输出。
2.根据权利要求1所述的计算机实现的方法,其中,所述第一特定关系为相等,所述第二特定关系为不等,并且所述选定值为零。
3.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述输入操作数的所述至少一部分包括所述输入操作数的多个选择数字,所述多个选择数字由所述指令的所述控制指定。
4.根据权利要求3所述的计算机实现的方法,其中,所述多个选择数字包括所述输入操作数的最右侧的多个数字。
5.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述控制被设置在所述指令的立即字段中。
6.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述多个标准还包括要执行的符号操作。
7.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述多个标准还包括从标准组中选择的至少一个标准,所述标准组包括:要执行的符号操作,所述输入操作数的符号,以及所述指令的正符号码控制。
8.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述多个符号操作包括维持,求补,强制为正和强制为负。
9.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述执行还包括:基于所述指令的另一控制指示要检查有效性,检查所述输入操作数的符号的有效性。
10.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述选择位置是寄存器,所述寄存器使用所述指令的至少一个字段来指定。
11.根据权利要求10所述的计算机实现的方法,其中,所述至少一个字段包括指定寄存器编号的寄存器字段和指定要附加到寄存器编号的扩展值的扩展字段。
12.一种用于促进计算环境内的处理的计算机系统,所述计算机系统包括:
存储器;和
处理器,其与所述存储器通信,其中,所述计算机系统被配置为执行方法,所述方法包括:
获得用于执行的指令,所述指令为执行针对所述指令配置的多个符号操作中的符号操作;以及
执行所述指令,所述执行包括:
选择输入操作数的至少一部分作为置放在选择位置的结果,所述选择基于所述指令的控制,所述指令的所述控制指示要被选择为所述结果的所述输入操作数的用户定义的大小;
基于多个标准来确定所述结果的符号,所述多个标准包括基于所述指令的所述控制所获得的所述结果的值,所述值具有关于选定值的第一特定关系或第二特定关系;以及
将所述结果和所述符号存储在所述选择位置以提供用于所述计算环境内的处理的有符号输出。
13.根据权利要求12所述的计算机系统,其中,所述第一特定关系为相等,所述第二特定关系为不等,并且所述选定值为零。
14.根据权利要求12或13所述的计算机系统,其中,所述输入操作数的所述至少一部分包括所述输入操作数的多个选择数字,所述多个选择数字由所述指令的所述控制指定,并且其中,所述多个选择数字包括所述输入操作数的最右侧的多个数字。
15.根据权利要求12至14中任一项所述的计算机系统,其中,所述多个标准还包括从标准组中选择的至少一个标准,所述标准组包括:要执行的符号操作,所述输入操作数的符号,以及所述指令的正符号码控制。
16.根据权利要求12至15中任一项所述的计算机系统,其中,所述执行还包括:基于所述指令的另一控制指示要检查有效性,检查所述输入操作数的符号的有效性。
17.一种用于促进计算环境内的处理的计算机程序产品,所述计算机程序产品包括:
一种计算机可读存储介质,其可由处理电路读取并存储用于由所述处理电路执行的指令,以执行根据权利要求1至11中任一项所述的方法。
18.一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,所述计算机程序包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行根据权利要求1至11中任一项所述的方法。
19.一种存储在计算机可读介质上并加载到根据权利要求12至16中任一项所述的系统的内部存储器中的计算机程序,所述计算机程序包括软件代码部分,当所述程序在所述系统上运行时,所述软件代码部分用于执行根据权利要求1至11中任一项所述的方法。
CN201780058817.6A 2016-09-30 2017-09-22 用于促进计算环境内的处理的方法和计算机系统 Active CN109791489B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/281,173 US10175946B2 (en) 2016-09-30 2016-09-30 Perform sign operation decimal instruction
US15/281,173 2016-09-30
PCT/EP2017/074091 WO2018060102A1 (en) 2016-09-30 2017-09-22 Perform sign operation decimal instruction

Publications (2)

Publication Number Publication Date
CN109791489A true CN109791489A (zh) 2019-05-21
CN109791489B CN109791489B (zh) 2023-08-11

Family

ID=60191332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780058817.6A Active CN109791489B (zh) 2016-09-30 2017-09-22 用于促进计算环境内的处理的方法和计算机系统

Country Status (17)

Country Link
US (2) US10175946B2 (zh)
EP (1) EP3519942B1 (zh)
JP (1) JP7021408B2 (zh)
KR (1) KR102238189B1 (zh)
CN (1) CN109791489B (zh)
AU (1) AU2017333837B2 (zh)
BR (1) BR112019006626A2 (zh)
CA (1) CA3036125A1 (zh)
ES (1) ES2965065T3 (zh)
HU (1) HUE064386T2 (zh)
IL (1) IL265549B (zh)
MX (1) MX2019003606A (zh)
PL (1) PL3519942T3 (zh)
RU (1) RU2718968C1 (zh)
TW (1) TWI651649B (zh)
WO (1) WO2018060102A1 (zh)
ZA (1) ZA201902529B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10175946B2 (en) * 2016-09-30 2019-01-08 International Business Machines Corporation Perform sign operation decimal instruction
US11099853B2 (en) 2019-02-15 2021-08-24 International Business Machines Corporation Digit validation check control in instruction execution
US11023205B2 (en) * 2019-02-15 2021-06-01 International Business Machines Corporation Negative zero control in instruction execution
US11836459B2 (en) * 2021-03-30 2023-12-05 Apple Inc. Floating-point division circuitry with subnormal support

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101911016A (zh) * 2008-01-11 2010-12-08 国际商业机器公司 执行相对指令
CN104025044A (zh) * 2011-12-29 2014-09-03 国际商业机器公司 从区位格式转换为十进制浮点格式
CN104025043A (zh) * 2011-12-29 2014-09-03 国际商业机器公司 从十进制浮点格式转换为区位格式
US20160092162A1 (en) * 2014-09-30 2016-03-31 International Business Machines Corporation Machine instructions for converting to decimal floating point format from packed decimal format
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

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1405049A1 (ru) * 1985-10-31 1988-06-23 Предприятие П/Я Р-6886 Устройство дл суммировани двух чисел с плавающей зап той
JP2826927B2 (ja) * 1992-09-19 1998-11-18 株式会社ピーエフユー 演算処理装置および処理方法
RU2143726C1 (ru) * 1997-07-15 1999-12-27 Козлов Михаил Кириллович Формульный процессор с командоподобными логическими управляющими элементами
JP3886870B2 (ja) * 2002-09-06 2007-02-28 株式会社ルネサステクノロジ データ処理装置
US7424501B2 (en) * 2003-06-30 2008-09-09 Intel Corporation Nonlinear filtering and deblocking applications utilizing SIMD sign and absolute value operations
US7797366B2 (en) * 2006-02-15 2010-09-14 Qualcomm Incorporated Power-efficient sign extension for booth multiplication methods and systems
US8560591B2 (en) 2007-04-25 2013-10-15 International Business Machines Corporation Detection of potential need to use a larger data format in performing floating point operations
US8190664B2 (en) 2007-04-26 2012-05-29 International Business Machines Corporation Employing a mask field of an instruction to encode a sign of a result of the instruction
JP2009110353A (ja) 2007-10-31 2009-05-21 Hitachi Ltd マイクロコントローラ及び制御システム
US8495125B2 (en) * 2009-05-27 2013-07-23 Microchip Technology Incorporated DSP engine with implicit mixed sign operands
TWI419481B (zh) * 2009-12-31 2013-12-11 Nat Univ Tsing Hua 低密度奇偶檢查碼編解碼器及其方法
US9588762B2 (en) * 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
US9916185B2 (en) * 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US9858058B2 (en) * 2014-03-31 2018-01-02 International Business Machines Corporation Partition mobility for partitions with extended code
US10127015B2 (en) * 2016-09-30 2018-11-13 International Business Machines Corporation Decimal multiply and shift instruction
US10175946B2 (en) * 2016-09-30 2019-01-08 International Business Machines Corporation Perform sign operation decimal instruction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101911016A (zh) * 2008-01-11 2010-12-08 国际商业机器公司 执行相对指令
CN104025044A (zh) * 2011-12-29 2014-09-03 国际商业机器公司 从区位格式转换为十进制浮点格式
CN104025043A (zh) * 2011-12-29 2014-09-03 国际商业机器公司 从十进制浮点格式转换为区位格式
US20160092162A1 (en) * 2014-09-30 2016-03-31 International Business Machines Corporation Machine instructions for converting to decimal floating point format from packed decimal format
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM: "IBM Z-Architecture Principles of OperationSA22-7832-10", 《HTTP://PUBLIBFI.BOULDER.IBM.COM/EPUBS/PDF/DZ9ZR010.PDF》 *

Also Published As

Publication number Publication date
HUE064386T2 (hu) 2024-03-28
ES2965065T3 (es) 2024-04-10
JP7021408B2 (ja) 2022-02-17
AU2017333837B2 (en) 2020-07-16
KR20190058502A (ko) 2019-05-29
BR112019006626A2 (pt) 2019-07-02
EP3519942B1 (en) 2023-11-08
IL265549A (en) 2019-05-30
IL265549B (en) 2022-08-01
PL3519942T3 (pl) 2024-02-26
WO2018060102A1 (en) 2018-04-05
MX2019003606A (es) 2019-06-17
EP3519942A1 (en) 2019-08-07
KR102238189B1 (ko) 2021-04-09
CN109791489B (zh) 2023-08-11
EP3519942C0 (en) 2023-11-08
TW201816601A (zh) 2018-05-01
US20180095726A1 (en) 2018-04-05
ZA201902529B (en) 2022-04-28
US10346134B2 (en) 2019-07-09
JP2019532415A (ja) 2019-11-07
US20180095727A1 (en) 2018-04-05
CA3036125A1 (en) 2018-04-05
RU2718968C1 (ru) 2020-04-15
AU2017333837A1 (en) 2019-04-04
US10175946B2 (en) 2019-01-08
TWI651649B (zh) 2019-02-21

Similar Documents

Publication Publication Date Title
US9959102B2 (en) Layered vector architecture compatibility for cross-system portability
CN109791489A (zh) 执行符号操作十进制指令
CN109891387B (zh) 具有可选择比较属性的浮点指令的方法、系统及存储介质
CN113439257A (zh) 指令执行中的负零控制
US10620952B2 (en) Conversion of boolean conditions
CN109791479B (zh) 十进制乘法和移位指令
CN109791478B (zh) 十进制移位和除法指令
CN109791491A (zh) 十进制加载立即指令

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: 40004088

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant