CN116940927A - 十进制缩放和转换和拆分到十六进制浮点指令 - Google Patents

十进制缩放和转换和拆分到十六进制浮点指令 Download PDF

Info

Publication number
CN116940927A
CN116940927A CN202280017298.XA CN202280017298A CN116940927A CN 116940927 A CN116940927 A CN 116940927A CN 202280017298 A CN202280017298 A CN 202280017298A CN 116940927 A CN116940927 A CN 116940927A
Authority
CN
China
Prior art keywords
result
format
scaling
computer
splitting
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.)
Pending
Application number
CN202280017298.XA
Other languages
English (en)
Inventor
E·施瓦尔茨
P·莱贝尔
K·谢尔姆
S·米勒
R·科普兰
郭欣
C·里彻特纳
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 CN116940927A publication Critical patent/CN116940927A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/3001Arithmetic instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Debugging And Monitoring (AREA)

Abstract

执行用于执行缩放、转换和拆分操作的指令。执行指令包括以一种格式缩放输入值以提供缩放结果。从一种格式转换缩放结果以提供另一种格式的转换结果。将转换结果分成多个部分,并且将多个部分中的一个或多个部分放置在选择的位置。

Description

十进制缩放和转换和拆分到十六进制浮点指令
技术领域
一个或多个方面一般涉及促进计算环境内的处理,并且特别地涉及改进该处理。
背景技术
在计算环境内执行的应用提供由多种类型的技术使用的许多操作,包括但不限于工程、制造、医疗技术、汽车技术、计算机处理等。以诸如COBOL的编程语言编写的这些应用在执行操作时经常执行复杂的计算。计算包括例如幂函数和/或指数函数,其通常需要将数据从一种格式(例如,二进制编码的十进制)转换为另一种格式(例如,十六进制浮点),反之亦然。
为了使应用执行从一种格式到另一种格式的转换,执行各种步骤。例如,为了从二进制编码的十进制转换成十六进制浮点,应用包括将二进制编码的十进制数转换成整数然后将整数转换成十六进制浮点的步骤。此外,这些步骤中的每一个可以包括子步骤。这是耗时的,影响计算环境的性能,并且影响计算机资源的可用性。
发明内容
通过提供一种用于促进计算环境内的处理的计算机程序产品,克服了现有技术的缺点,并且提供了附加的优点。该计算机程序产品包括一个或多个计算机可读存储介质和共同存储在该一个或多个计算机可读存储介质上以执行方法的程序指令。该方法包括执行指令以执行缩放、转换和拆分操作。执行指令包括缩放一种格式的输入值以提供缩放结果,转换一种格式的缩放结果以提供另一种格式的转换结果,将转换结果拆分成多个部分,以及将多个部分中的一个或多个部分放置在所选择的位置。
通过使用单个指令来执行缩放、转换和拆分操作,提高了性能,并且减少了资源的利用。通过使用单个架构化指令来执行缩放、转换和拆分操作,可以比使用软件范例更有效地执行某些任务,例如缩放、转换和拆分操作。缩放、转换和拆分操作执行得更快,从而减少了执行时间,并改进了处理器和/或整体系统性能。
在一个示例中,一种格式是十进制格式,而另一种格式是十六进制浮点格式。作为示例,十进制格式是二进制编码的十进制格式。十六进制浮点格式提供增强的精度,这对于各种技术是有益的,从而改进准确度和/或性能。
在一个示例中,缩放包括确定缩放因子,并且在缩放输入值时使用缩放因子以提供缩放结果。确定缩放因子包括例如使用指令的操作数获得缩放值以及使用缩放值来确定缩放因子。使用缩放因子包括将输入值乘以缩放因子以获得缩放结果。
作为示例,该缩放通过隔离数的某些数字以指示要截断或舍入该数中的所选择的位置来促进将一种格式(例如十进制)的值转换成另一种格式(例如十六进制浮点)。
在一个示例中,拆分包括对转换结果进行标准化以获得第一标准化结果,并截断第一标准化结果以获得另一种格式的短格式的一个结果。在一个示例中,拆分还包括从转换结果中减去一个结果以提供差,标准化该差以提供第二标准化结果,以及截断第二标准化结果以获得另一种格式的长格式的另一结果。
通过将十六进制浮点数分成更小的部分,可独立地使用更小的部分,和/或可将更小的部分加在一起以提供更高精度的结果。
作为示例,放置包括将一个结果放置在所选择的位置的一部分中,并将另一结果放置在所选择的位置的另一部分中。所选择的位置的该一部分包括例如由指令指定的寄存器的第一所选择的比特,并且所选择的位置的另一部分包括由指令指定的寄存器的第二所选择的比特。
在一个示例中,确定一个结果的符号以及另一结果的符号。一个结果的符号和另一个结果的符号被放置在所选择的位置。
本文还描述并要求保护与一个或多个方面相关的计算机实现的方法和系统。此外,本文还描述并要求保护与一个或多个方面相关的服务。
通过本文所述的技术实现了额外的特征和优点。在本文中详细描述其它实施例和方面,且被视为所主张的方面的一部分。
附图说明
在说明书结尾处的权利要求中作为示例特别指出并清楚地要求了一个或多个方面。从结合附图的以下详细描述中,一个或多个方面的前述和目的、特征和优点将变得显而易见,在附图中:
图1A描绘了用于结合和使用本发明的一个或多个方面的计算环境的一个示例;
图1B描绘了根据本发明的一个或多个方面的图1A的处理器的进一步细节;
图2描绘了根据本发明的一个或多个方面的十进制缩放和转换和拆分到十六进制浮点指令的格式的一个示例;
图3描绘了根据本发明的一个或多个方面的与执行十进制缩放和转换和拆分到十六进制浮点指令相关联的处理的一个示例;
图4描绘了根据本发明的一个或多个方面的与十进制缩放和转换和拆分到十六进制浮点指令的缩放操作相关联的处理的一个示例;
图5描绘了根据本发明的一个或多个方面的执行十进制缩放和转换和拆分到十六进制浮点指令的转换操作的处理逻辑的一个示例;
图6描绘了根据本发明的一个或多个方面的与十进制缩放和转换和拆分到十六进制浮点指令的拆分操作相关联的处理的一个示例;
图7描绘了根据本发明的一个或多个方面的与十进制缩放和转换和拆分到十六进制浮点指令的放置操作相关联的处理的一个示例;
图8A-8B描绘了根据本发明的一个或多个方面的促进计算环境内的处理的一个示例;
图9A描绘了用于结合和使用本发明的一个或多个方面的计算环境的另一示例;
图9B描绘了根据本发明的一个或多个方面的图9A的存储器的进一步细节的一个示例;
图9C描绘了根据本发明的一个或多个方面的图9A的存储器的进一步细节的另一示例;
图10A描绘了结合和使用本发明的一个或多个方面的计算环境的又一示例;
图10B描绘了根据本发明一个或多个方面的图10A的存储器的进一步细节;
图11描绘了根据本发明的一个或多个方面的云计算环境的一个实施例;以及
图12描绘了根据本发明的一个或多个方面的抽象模型层的一个示例。
具体实施方式
根据本发明的一个方面,提供了一种促进在计算环境中的处理的能力。作为一个示例,提供单个指令(例如,在硬件/软件接口处的单个架构化的硬件机器指令)以执行缩放、转换和拆分操作。该指令(在此被称为十进制缩放和转换和拆分到十六进制浮点指令)是通用处理器指令集架构(ISA)的一部分,其由处理器(例如通用处理器)上的程序分派。(在另一示例中,指令可以是专用处理器的一部分,例如配置用于某些功能的协处理器。)
作为执行单个指令(例如十进制缩放和转换和拆分到十六进制浮点指令)的一部分,执行各种操作,包括使用缩放因子来缩放输入数据以提供缩放数据、将缩放数据从一种格式(例如二进制编码的十进制)转换成另一种格式(例如十六进制浮点)、以及将结果(例如十六进制浮点数)拆分成多个部分。拆分结果的每个部分可以独立于另一部分使用,和/或可以组合所选择的部分以提供具有更高精度的结果。这些操作中的每一个都作为执行单个指令的一部分来执行,从而提高了系统性能,并减少了系统资源的使用。
在一个示例中,如所指示的,转换是从二进制编码的十进制到十六进制浮点。二进制编码的十进制是十进制数的二进制编码,其中每个十进制数字由固定数量的比特(例如,4或8比特)表示。十六进制浮点是用于编码浮点数的格式。在一个示例中,十六进制浮点数包括符号比特、特性(例如,7比特)和小数(例如,6、14或28比特)。该特性表示有符号指数,并且通过将例如64加到指数值上来获得。该特性的范围是0到127,其对应于例如-64到+63的指数范围。十六进制浮点数的量值是其小数与数16(升至由其特性表示的指数的幂)的乘积。取决于符号比特是例如0或者1,数是正的或负的。
十六进制浮点数可以以多种不同格式表示,包括短格式(例如32比特)、长格式(例如64比特)和扩展格式(例如128比特)。在每种格式中,第一比特(例如,最左边的第一比特,比特0)是符号比特;下一个选择数量的比特(例如7比特)是特性,而在短和长格式中,其余比特是小数,其分别包括例如6位或14位十六进制数字。在扩展格式中,小数是例如28比特小数,并且扩展十六进制浮点数包括两个长格式数,这两个长格式数被称为高阶部分和低阶部分。高阶部分是任何长的十六进制浮点数。高阶部分的小数包含例如28位数的小数的最左边的14个十六进制数字,低阶部分的小数包含例如28位数的小数的最右边的14个十六进制数字。高阶部分的特性和符号是扩展十六进制浮点数的特性和符号,而扩展操作数的低阶部分的特性和符号被忽略。
参考图1A描述了用于结合和使用本发明的一个或多个方面的计算环境的一个实施例。作为示例,计算环境基于由纽约Armonk的国际商业机器公司提供的硬件架构。在2019年九月IBM出版物No.SA22-7832-12第三版的题为“z/Architecture操作原理”的出版物中描述了z/Architecture硬件架构的一个实施例,其全部内容通过引用并入本文。然而,z/Architecture硬件架构仅是一个示例架构;国际商业机器公司和/或其它实体的其它架构和/或其它类型的计算环境可包括和/或使用本发明的一个或多个方面。z/Architecture和IBM是国际商业机器公司在至少一个管辖区的商标或注册商标。
参考图1A,计算环境100包括计算机系统102,例如以通用计算设备的形式示出的。计算机系统102可包括但不限于经由一个或多个总线和/或其它连接110彼此耦合的一个或多个处理器或处理单元104(例如,中央处理单元(CPU))、存储器106(例如,也称为系统存储器、主存储器、主存、中央存储或存储),以及一个或多个输入/输出(I/O)接口108。
总线110表示若干类型的总线结构中的任何的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任何一种的处理器或局部总线。作为示例而非限制,这些架构包括工业标准架构(ISA)、微通道架构(MCA)、增强型ISA(EISA)、视频电子标准协会(VESA)局部总线和外围部分互连(PCI)。
存储器106可包括例如缓存112,诸如共享缓存,其可以耦合到处理器104的本地缓存114。此外,存储器106可包括一个或多个程序或应用116以及至少一个操作系统118。示例操作系统包括由纽约Armonk的国际商业机器公司提供的操作系统。z/OS是国际商业机器公司在至少一个管辖区内的商标或注册商标。也可使用由国际商业机器公司和/或其它实体提供的其它操作系统。存储器106还可包括一个或多个计算机可读程序指令120,其可被配置为执行本发明的方面的实施例的功能。
计算机系统102可经由例如I/O接口108与一个或多个外部设备130通信,外部设备诸如用户终端、带驱动器、指示设备、显示器和一个或多个数据存储设备134等。数据存储设备134可存储一个或多个程序136、一个或多个计算机可读程序指令138和/或数据等。计算机可读程序指令可被配置为执行本发明的各方面的实施例的功能。
计算机系统102还可经由例如I/O接口108与网络接口132通信,这使得计算机系统102能够与一个或多个网络通信,诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,因特网),从而提供与其它计算设备或系统的通信。
计算机系统102可包括和/或耦合到可移动/不可移动、易失性/非易失性计算机系统存储介质。例如,它可包括和/或耦合到不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)、用于从可移动的、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器、和/或用于从可移动的、非易失性光盘(诸如CD-ROM、DVD-ROM或其它光学介质)读取或向其写入的光盘驱动器。可理解,其它硬件和/或软件组件可与计算机系统102结合使用。示例包括但不限于:微码、设备驱动、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据档案存储系统等。
计算机系统102可用许多其它通用或专用计算系统环境或配置来操作。适合与计算机系统102一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机(PC)系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。
在一个示例中,处理器(例如,处理器104)包括用于执行指令的多个功能组件。如图1B所示,这些功能组件包括,例如,用于获取要执行的指令的指令获取组件150;指令解码单元152,用于对所获取的指令进行解码并获得所解码的指令的操作数;一个或多个指令执行组件154,用于执行解码的指令;存储器访问组件156,用于在必要时访问存储器以用于指令执行;以及提供所执行的指令的结果的写回组件158。一个或多个组件可以在指令处理中访问和/或使用一个或多个寄存器160。此外,根据本发明的一个或多个方面,一个或多个组件可包括一个或多个其它组件的至少一部分或访问一个或多个其它组件,该其它组件用于执行例如十进制缩放和转换和拆分到十六进制浮点指令的缩放、转换和/或拆分操作(或可以使用本发明的一个或多个方面的其它处理),如这里所述。一个或多个其它组件包括例如缩放、转换和拆分组件(或一个或多个其它组件)170。
根据本发明的一个方面,提供了一种指令(在此称为十进制缩放和转换和拆分到十六进制浮点指令),以作为执行一个指令的一部分来执行缩放、转换和拆分操作,以将数从一种格式(例如十进制)转换为另一种格式(例如十六进制浮点)。
参考图2描述了用于执行缩放、转换和拆分操作的十进制缩放和转换和拆分到十六进制浮点指令的一个实施例。在一个示例中,使用通用处理器(例如,处理器104)来执行指令。在本文的描述中,指示了特定位置、特定字段和/或字段的特定大小(例如,特定字节和/或比特)。然而,可以提供其它位置、字段和/或大小。此外,尽管可以指定将比特设置为特定值,例如1或0,但是这仅是示例。在其它示例中,可将比特设定为不同值,例如相反值或另一值。许多变化是可能的。
在一个示例中,十进制缩放和转换和拆分到十六进制浮点指令具有VRR-b格式,其指示具有扩展操作码(opcode)的向量寄存器和寄存器操作。在一个实施例中,十进制缩放和转换和拆分到十六进制浮点指令是向量设施的一部分,其提供例如范围从1个到16个元素的固定大小的向量。每个向量包括由在该设施中定义的向量指令操作的数据。在一个实施例中,如果向量由多个元素组成,则每个元素与其它元素并行处理。在一个示例中,直到完成所有元素的处理,发生指令完成。在其它实施例中,部分地并行和/或顺序地处理元件。
在一个实施例中,存在32个向量寄存器,并且其它类型的寄存器可以映射到向量寄存器的象限。例如,寄存器文件(其是中央处理单元(例如,处理器104)中的处理器寄存器的阵列)可包括32个向量寄存器,并且每个寄存器的长度是128比特。16个浮点寄存器(长度为64比特)可覆盖向量寄存器。因此,作为示例,当浮点寄存器2被修改时,向量寄存器2也被修改。用于其它类型的寄存器的其它映射也是可能的。
向量数据例如以与其它数据格式相同的从左到右的顺序出现在存储器中。编号为0-7的数据格式的比特构成存储器中最左边(编号最低)字节位置中的字节,比特8-15构成下一顺序位置中的字节,依此类推。在另一示例中,向量数据可以以另一顺序(诸如从右到左)出现在存储装置中。
如图2所示,在一个示例中,十进制缩放和转换和拆分到十六进制浮点指令200具有多个字段,并且字段可以具有与其相关联的下标编号。与指令的字段相关联的下标编号表示该字段所应用的操作数。例如,与向量寄存器V1相关联的下标编号1指示使用V1指定的寄存器包括第一操作数,等等。寄存器操作数在长度上是一个寄存器,例如128比特。
在一个实施例中,十进制缩放和转换和拆分到十六进制浮点指令200包括操作码(opcode)字段202a、202b(例如,比特0-7和40-47),指示缩放、转换和拆分操作,其中输入数据是例如十进制数(例如,二进制编码的十进制数)并且输出是例如十六进制浮点值;第一向量寄存器(V1)字段204(例如,比特8-11),用于指定第一向量寄存器;第二向量寄存器(V2)字段206(例如,比特12-15),用于指定第二向量寄存器;第三向量寄存器(V3)字段208(例如,比特16-19),用于指定第三向量寄存器;以及寄存器扩展位(RXB)字段210(例如,比特36-39),下面描述其中的每一个。在一个实施例中,字段是彼此分离和独立的;然而,在其它实施例中,可以组合多于一个字段。下面描述关于这些字段的进一步信息。
在一个实施例中,向量寄存器(V1)字段204用于指示要存储第一操作数的向量寄存器。第一操作数是将十进制值缩放和转换为十六进制浮点值并将十六进制浮点值拆分为多个(例如,两个)操作数的结果。第二操作数包含在使用向量寄存器(V2)字段206指定的向量寄存器中,并且是例如使用包含在第三操作数中的无符号整数缩放的有符号压缩十进制数(例如具有例如31数字加符号的二进制编码十进制数),该第三操作数包含在使用向量寄存器(V3)字段208指定的向量寄存器中。
在一个示例中,向量寄存器字段204、206、208中的每一个与RXB字段210一起使用以指定向量寄存器。例如,RXB字段210包括向量寄存器指定操作数的最高有效位。未由指令指定的寄存器指定的比特被保留并设置为零。最高有效位被连接到例如向量寄存器字段的4比特寄存器指定的左侧,以创建5比特向量寄存器指定。
在一个示例中,RXB字段包括4比特(例如,比特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,等等。特别地,对于向量寄存器,例如使用寄存器字段的4比特字段来指定包含操作数的寄存器,其中添加其对应的寄存器扩展位(RXB)作为最高有效位。例如,如果4比特字段是0110并且扩展位是0,则5比特字段00110指示寄存器编号6。在又一实施例中,RXB字段包括附加位,并且多于1比特被用作每个向量或位置的扩展。
在执行十进制缩放和转换和拆分到十六进制浮点指令的一个实施例中,使用第三操作数的选择的位置(例如,字节元素7)中的无符号整数来缩放第二操作数,并且将其转换成十六进制浮点数。第二操作数乘以缩放因子,该缩放因子等于例如10的第三操作数的字节元素7的幂。使用标准化和截断将缩放结果转换成例如十六进制浮点值,将该十六进制浮点值拆分成例如两个十六进制浮点操作数。作为示例,两个十六进制浮点操作数被放置在第一操作数寄存器中。
参考图3-7描述了根据本发明的一个或多个方面的基于执行十进制缩放和转换和拆分到十六进制浮点指令的处理的一个实施例的进一步细节。作为示例,处理器的硬件被用于执行指令。硬件可以在处理器内或耦合到处理器以用于从处理器接收指令,处理器例如获得、解码和设置指令以在硬件上执行。其它变化是可能的。
参考图3,首先,获得(例如,获取、接收、提供等)300并执行310指令,诸如十进制缩放和转换和拆分到十六进制浮点指令。执行包括例如获得指令的第二和第三操作数312。第二操作数例如是从由指令(例如,使用V2字段206)指定的位置(例如,向量寄存器)获得的有符号压缩十进制数,并且第三操作数例如是从由指令(例如,使用V3字段208)指定的位置(例如,向量寄存器)获得的无符号整数。在一个示例中,无符号整数位于第三操作数的字节元素7中。
使用(例如使用V3获得的)例如第三操作数的字节元素7中的无符号整数来缩放第二操作数(例如使用V2获得的有符号压缩十进制数)以获得缩放结果314。
将一种格式(例如十进制,诸如二进制编码的十进制)的缩放结果转换为另一种格式的转换结果316。例如,将缩放的十进制数转换成十六进制浮点数。转换结果被分成多个部分。例如,十六进制浮点数被分成多个(例如,两个)十六进制浮点操作数318,并且这些操作数中的一个或多个(例如,两个操作数)被放置在第一操作数位置(例如,使用V1指定的寄存器)320中。参考图4-6描述了关于缩放、转换、拆分和放置的进一步细节。
首先参考图4,描述了执行第二操作数的缩放(图3的314)的一个实施例。在一个示例中,获得(存储在使用V3指定的向量寄存器中的)第三操作数的选择的部分(例如,字节元素7)的值(称为缩放值)(400)。确定该值是否有效(410)。例如,确定该值是否与预选值具有预定关系,例如,该值是否小于预选值(例如8)?如果该值无效,则处理例如以错误结束。然而,如果该值有效,则处理继续使用该值来确定缩放因子。例如,缩放因子等于10的值的幂(415)。将第二操作数乘以缩放因子以获得缩放结果420。在一个示例中,由于第二操作数是有符号的压缩十进制数,因此以10的幂进行缩放等同于将数字向左移位。该缩放促进将有符号压缩十进制数转换为十六进制浮点数。
然后,将一种格式(例如十进制格式)的缩放结果转换为另一种格式(例如十六进制浮点格式)的转换结果(图3的316)。可使用多种技术来执行转换。在一个示例中,为了将十进制数转换成十六进制数:
十进制数除以16,成为商和余数;
余数乘以16是十六进制数的数字,从最右边的数字开始;
将商除以16以提供另一个商和余数;以及
该过程重复,从余数乘以16开始,直到商为0。
尽管上述技术可用于将十进制数转换为十六进制数,但也可使用其它技术。在一个示例中,硬件逻辑被用于促进转换,从而提高可以执行处理的速度。
参考图5描述了用于执行转换的硬件逻辑的一个示例。参考图5,在一个示例中,二进制编码的十进制数500被输入到该逻辑。最初,从二进制编码的十进制数的最左边的数字开始,选择二进制编码的十进制数的多达4个数字510。将所选择的数字输入到计数器树520,其使用数字的冗余格式和等式来乘以每个数字。在一个示例中,通过移位该数来执行乘法,其中每个幂2乘是该数的移位。
计数器树所使用的等式的一个示例如下,其中(X'+Y')被初始设置为0,并且表示从计数器树中的先前循环得到的值,并且A、B、C、D是二进制编码的十进制(BCD)数的数字。
新的和=X+Y=(X'+Y')*10000+A*1000+B*100+C*10+D
=(X'+Y')*(213+211-28+24)
+A*(29+28+27+26+25+23)
+B*(26+25+22)
+C*(23+21)
+D。
处理在计数器树中循环,直到BCD数的所有数字都被处理。计数器树520的输出被输入到2:1加法器530,其提供以非冗余格式的中间转换结果(例如,中间十六进制浮点数)。加法器530的输出被输入到十六进制标准化器,更新指数逻辑540,其用于标准化加法器的输出并更新指数以提供十六进制浮点数。例如,标准化操作将小数点右边的任何前导零数字向左移动以删除这些数字,并且对于每次移位将指数减一。
这里描述了对8位BCD数的上述处理的一个特定示例。在以下示例中,由于X和Y的实际值是实现特定的(例如,X和Y可以是不同的值,但仍具有相同的和),使用与实现无关的Z。因此,Z=X+Y;Z'=X'+Y';并且Z'被初始化为0。此外,在该示例中,BCD=32610423,因此,最初A=3;B=2;C=6;D=1。
接下来,A=0;B=4;C=2;D=3
十六进制浮点数(在此也称为转换结果)被分成多个部分,例如两个十六进制浮点操作数(图3的318)。如参考图6进一步描述的,例如,十六进制浮点数使用标准化和截断来拆分。在一个实施例中,对十六进制浮点数(又称为转换结果)进行标准化以获得第一标准化结果(600)。将第一标准化结果截断为十六进制浮点短格式,称为短截断结果或高结果(610)。作为示例,十六进制浮点数的小数部分(即特性之后的数字)被标准化(例如,前导零被移除)以提供第一标准化结果,然后截断例如6个数字之后的任何数字(因为它是短格式)。
从转换结果中减去短截断结果以获得差(620)。如本文所述,对该差进行标准化以获得第二标准化结果(630),并且将第二标准化结果截断为十六进制长格式(例如,例如在14个数字之后截断数字,因为它是长格式),称为低结果(640)。高和低结果是根据转换和拆分得到的两个十六进制浮点操作数。在一个示例中,如果低结果等于零,则其被强制为真零。
将一个或多个结果放置在第一操作数位置中。在一个示例中,高和低结果被放置在第一操作数位置(图3的320),如参考图7进一步详细描述的。在一个实施例中,高十六进制浮点短格式结果被转换为十六进制长格式。例如,短结果被放置于第一操作数位置(例如,由V1指定的向量寄存器)的比特0至31中,并且比特32至63在第一操作数位置中被设置为零700。十六进制浮点长格式中的低结果例如被放置在相同位置(例如,相同向量寄存器)的比特64到127中710。
在一个示例中,确定高和低结果的符号720。例如,高结果的符号等于第二操作数的符号码,除了当第二操作数是负零时,则高结果被设置为等于具有正号的零。在一个示例中,低结果的符号等于高结果的符号,除了当低结果被强制为真零且高结果是非零且负时。将所确定的符号放置在第一操作数位置中730。例如,比特0被设置为高结果的符号,比特64被设置为低结果的符号。
在一个示例中,检查第二操作数的数字和符号的有效性。如果有效性检查失败,则识别出通用操作数数据异常。
尽管描述了十进制缩放和转换和拆分到十六进制浮点指令的各种字段和寄存器,但是本发明的一个或多个方面可以使用其它、附加和/或更少的字段和/或寄存器,和/或其它大小的字段和/或寄存器等。许多变化是可能的。例如,可以使用隐式寄存器来代替明确指定的寄存器和/或指令的字段,和/或可以使用明确指定的寄存器和/或字段来代替隐式寄存器和/或字段。其它变化也是可能的。
如本文所描述的,在一个方面,提供单个指令(例如,硬件/软件接口处的单个架构化机器指令,例如十进制缩放和转换和拆分到十六进制浮点指令)以执行十进制数的缩放以提供缩放的十进制数,将缩放的十进制数转换成十六进制浮点数,以及将十六进制浮点数拆分成多个十六进制浮点数。该指令例如是在指令集架构(ISA)中定义的硬件指令,其将一种格式(例如十进制数)的值直接转换成另一种格式(例如十六进制浮点数)的值。该转换是直接从例如十进制数到十六进制浮点数的,而不是从例如十进制到整数并从整数到十六进制浮点的。处理比执行例如二进制编码的十进制乘法或移位、将二进制编码的十进制转换为整数、将整数转换为十六进制浮点以及保留足够的数字以获得短精度高十六进制浮点数和长精度低十六进制浮点数的程序更快且更有效。降低了与执行缩放、转换和拆分操作相关的程序的复杂度。此外,改进了操作的性能,并因此改进了处理器的性能。硬件指令执行减少了执行时间并提高了性能。
通过使用单个指令而不是多个指令来执行例如缩放、转换和拆分,由于不需要多次通过硬件/软件接口而改进了性能。此外,通过作为一个指令的一部分执行处理,处理保持在执行操作的处理单元(例如,浮点处理单元)中,而不需要在完成处理之前更新处理器的寄存器文件的寄存器(即,用于在存储器和功能单元(例如,浮点处理单元)之间存储数据的处理器寄存器阵列)。这改进了执行时间并减少了处理器资源的使用。
在一个示例中,通过将十六进制浮点数拆分成更小的部分(例如,十六进制浮点短高数和十六进制浮点长低数,可以独立使用更小的部分和/或可以将多个更小的部分加在一起以提供更高精度的结果。
本发明的一个或多个方面不可分地依赖于计算机技术,并促进计算机内的处理,从而提高其性能。使用单个架构化机器指令来执行十进制数(例如二进制编码的十进制数)的缩放以获得缩放的十进制数,将缩放的十进制数转换为十六进制浮点数,以及将十六进制浮点数拆分成多个部分,通过降低复杂度、减少资源使用并提高处理速度来改进计算环境内的性能。数据和/或指令可用于许多技术领域,例如计算机处理、医疗处理、工程、汽车技术、制造等。通过提供在转换数据时的优化,通过减少执行时间来改进这些技术领域。
参考图8A-8B描述了与本发明的一个或多个方面相关的促进计算环境内的处理的一个实施例的进一步细节。
参考图8A,在一个实施例中,执行指令以执行缩放、转换和拆分操作800。执行指令包括例如缩放一种格式的输入值以提供缩放结果802,将缩放结果从一种格式转换以提供另一种格式的转换结果804,将转换结果拆分成多个部分806,以及将多个部分中的一个或多个部分放置在选择的位置808。通过使用单个指令来至少执行缩放、转换和拆分操作,提高了性能,并且减少了资源的利用。
在一个示例中,一种格式是十进制格式,而另一种格式是十六进制浮点格式820。作为示例,十进制格式是二进制编码的十进制格式822。十六进制浮点格式提供增强的精度,这对于各种技术是有益的,从而改进准确度和/或性能。
在一个示例中,缩放包括确定缩放因子830,且在缩放输入值时使用缩放因子以提供缩放结果832。确定缩放因子包括例如使用指令的操作数获得缩放值834,并且使用缩放值来确定缩放因子836。输入值乘以缩放因子以获得缩放结果838。
作为示例,该缩放通过隔离数的某些数字以指示要截断或舍入该数中的所选择的位置来促进将一种格式(例如十进制)的值转换成另一种格式(例如十六进制浮点)。
参考图8B,在一个示例中,拆分包括对转换结果进行标准化以获得第一标准化结果850,并截断第一标准化结果以获得另一种格式的短格式的一个结果852。在一个示例中,拆分还包括从转换结果中减去一个结果以提供差854,对该差进行标准化以提供第二标准化结果856,以及截断第二标准化结果以获得另一种格式的长格式的另一结果858。
通过将十六进制浮点数分成更小的部分,可独立地使用更小的部分,和/或可将更小的部分加在一起以提供更高精度的结果。
作为示例,放置包括将一个结果放置在所选择的位置的一部分中860,并且将另一结果放置在所选择的位置的另一部分中862。所选择的位置的该一部分包括例如由指令指定的寄存器的第一所选择的比特864,并且所选择的位置的另一部分包括由指令指定的寄存器的第二所选择的比特866。
在一个示例中,确定一个结果的符号867,确定另一结果的符号868,并且将一个结果的符号和另一结果的符号放置在所选择的位置870中。
其它变化和实施例是可能的。
本发明的各方面可由许多类型的计算环境使用。参考图9A描述了用于结合和使用本发明的一个或多个方面的计算环境的另一示例。作为示例,图9A的计算环境基于由纽约Armonk的国际商业机器公司提供的硬件架构。然而,z/Architecture硬件架构仅是一个示例架构。同样,计算环境可以基于其它架构,包括但不限于/>x86架构、国际商业机器公司的其它架构和/或其它公司的架构。Intel是英特尔公司或其子公司在美国和其它国家的商标或注册商标。
在一个示例中,计算环境10包括中央电子复合体(CEC)11。中央电子复合体11包括多个组件,例如耦合到一个或多个处理器(也称为中央处理单元(CPU))13和输入/输出(I/O)子系统14的存储器12(也称为系统存储器、主存储器、主存、中央存储、存储)。
I/O子系统14可以是中央电子复合体的一部分或者与其分离。它引导主存储器12和耦合到中央电子复合体的输入/输出控制单元15以及输入/输出(I/O)设备16之间的信息流。
可以使用许多类型的I/O设备。一种特定类型是数据存储设备17。数据存储设备17可以存储一个或多个程序18、一个或多个计算机可读程序指令19和/或数据等。计算机可读程序指令可以被配置为执行本发明的各方面的实施例的功能。
中央电子复合体11可包括和/或耦合到可移动/不可移动、易失性/非易失性计算机系统存储介质。例如,它可以包括和/或耦合到不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)、用于从可移动的、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器、和/或用于从可移动的、非易失性光盘(诸如CD-ROM、DVD-ROM或其它光学介质)读取或向其写入的光盘驱动器。可理解,其它硬件和/或软件组件可以与中央电子复合体11结合使用,示例包括但不限于:微码、设备驱动、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据档案存储系统等。
此外,中央电子复合体11可以与许多其它通用或专用计算系统环境或配置一起操作。适合与中央电子复合体11一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机(PC)系统、服务器计算机系统、瘦客户端、胖客户端、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统以及包括任何上述系统或设备的分布式云计算环境等。
中央电子复合体11在一个或多个实施例中提供逻辑分区和/或虚拟化支持。在一个实施例中,如图9B所示,存储器12包括例如一个或多个逻辑分区20、管理逻辑分区的管理程序21、以及处理器固件22,管理程序21的一个示例是由纽约Armonk的国际商业机器公司提供的处理器资源/系统管理器(PR/SMTM)。如这里所使用的,固件包括例如处理器的微代码。它包括例如在实现更高级的机器代码时使用的硬件级指令和/或数据结构。在一个实施例中,它包括例如专有代码,该专有代码通常作为包括可信软件的微代码或底层硬件专用的微代码来传递,并且控制操作系统对系统硬件的访问。PR/SM是国际商业机器公司在至少一个管辖区内的商标或注册商标。
每个逻辑分区20能够作为单独的系统。即,每个逻辑分区可以被独立地重置,运行客户操作系统23(诸如由纽约Armonk的国际商业机器公司提供的操作系统),或其它控制代码24(诸如耦合设施控制代码(CFC)),并与不同的程序25一起操作。在逻辑分区中运行的操作系统或应用程序看似访问完全且完整的系统,但在现实中,仅其一部分可用。尽管z/OS操作系统是作为示例提供的,但是根据本发明的一个或多个方面,也可以使用由国际商业机器公司和/或其它公司提供的其它操作系统。
存储器12耦合到CPU 13(图9A),其是可分配给逻辑分区的物理处理器资源。例如,逻辑分区20包括一个或多个逻辑处理器,每个逻辑处理器代表可被动态分配给逻辑分区的物理处理器资源13的全部或一部分。
在又一实施例中,中央电子复合体提供虚拟机支持(具有或不具有逻辑分区支持)。如图9C所示,中央电子复合体11的存储器12包括例如一个或多个虚拟机26、管理虚拟机的虚拟机管理器(例如管理程序27)以及处理器固件28。管理程序27的一个示例是由纽约Armonk的国际商业机器公司提供的管理程序。管理程序有时被称为主机。z/VM是国际商业机器公司在至少一个管辖权区的商标或注册商标。
中央电子复合体的虚拟机支持提供了操作大量虚拟机26的能力,每个虚拟机能够与不同的程序29一起操作并且运行客户操作系统30,诸如操作系统。每个虚拟机26能够用作单独的系统。也就是说,每个虚拟机可以被独立地重置,运行客户操作系统,并且利用不同的程序来操作。在虚拟机中运行的操作系统或应用程序看似访问整个系统,但是实际上,仅有一部分是可用的。尽管作为示例提供z/VM和Linux,但是根据本发明的一个或多个方面,可以使用其它虚拟机管理器和/或操作系统。注册商标/>是根据来自Linus Torvalds的专有被许可人Linux基金会的分许可人在全球基础上使用的。
参考图10A描述了用于结合和使用本发明的一个或多个方面的计算环境的另一实施例。在该示例中,计算环境36包括经由例如一个或多个总线40和/或其它连接彼此耦合的例如本机中央处理单元(CPU)37、存储器38、以及一个或多个输入/输出设备和/或接口39。作为示例,计算环境36可包括纽约Armonk的国际商业机器公司提供的处理器;加利福尼亚州Palo Alto的惠普公司提供的具有/>II处理器的HPSuperdome;和/或基于由国际商业机器公司、惠普、英特尔公司、甲骨文和/或其它公司提供的架构的其它机器。PowerPC是国际商业机器公司在至少一个管辖区内的商标或注册商标。Itanium是英特尔公司或其子公司在美国和其它国家的商标或注册商标。
本机中央处理单元37包括一个或多个本机寄存器41,诸如在环境内的处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括表示在任何特定时间点的环境状态的信息。
此外,本机中央处理单元37执行存储在存储器38中的指令和代码。在一个特定示例中,中央处理单元执行存储在存储器38中的仿真器代码42。该代码使得在一个架构中配置的计算环境能够仿真另一架构。例如,仿真器代码42允许基于z/Architecture硬件架构之外的架构的机器(诸如PowerPC处理器、HP Superdome服务器或其它)来仿真z/Architecture硬件架构,并且执行基于z/Architecture硬件架构开发的软件和指令。
参考图10B描述了与仿真器代码42有关的进一步细节。存储在存储器38中的客户指令43包括软件指令(例如,与机器指令相关),其被开发为在不同于本机CPU37的架构中执行。例如,客户指令43可以被设计为基于z/Architecture硬件架构在处理器上执行,但是替代地,在本机CPU37上被仿真,其可以是例如Intel Itanium II处理器。在一个示例中,仿真器代码42包括指令获取例程44,以从存储器38获得一个或多个客户指令43,并且可选地为所获得的指令提供本地缓冲。它还包括指令转译例程45,以确定所获得的客户指令的类型,并且将客户指令转译成一个或多个对应的本机指令46。该转译包括例如标识要由客户指令执行的功能以及选择(一个或多个)本机指令来执行该功能。
此外,仿真器代码42包括仿真控制例程47以使得执行本机指令。仿真控制例程47可以使本机CPU37执行仿真一个或多个先前获得的客户指令的本机指令的例程,并且在该执行结束时,将控制返回到指令获取例程以仿真下一个客户指令或一组客户指令的获得。本机指令46的执行可包括将数据从存储器38加载到寄存器中;将数据从寄存器存储回存储器;或者执行由转换例程确定的某种类型的算术或逻辑运算。
例如,每个例程以软件实现,该软件存储在存储器中并由本机中央处理单元37执行。在其它示例中,例程或操作中的一个或多个以固件、硬件、软件或其某种组合实现。被仿真的处理器的寄存器可使用本机CPU的寄存器41或通过使用存储器38中的位置来仿真,在实施例中,客户指令43、本机指令46和仿真器代码42可驻留在相同的存储器中,或者可分配在不同的存储器设备之间。
根据本发明的一个方面,可仿真的一个指令是在此描述的十进制缩放和转换和拆分指令。
上述计算环境仅是可以使用的计算环境的示例。可以使用其它环境,包括但不限于,非分区环境、分区环境、云环境和/或仿真环境;实施例不限于任何一种环境。尽管在此描述了计算环境的各种示例,但是本发明的一个或多个方面可以与许多类型的环境一起使用。这里提供的计算环境仅仅是示例。
每个计算环境能够被配置为包括本发明的一个或多个方面。
一个或多个方面可以涉及云计算。
可理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,该可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监视、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,该软件可包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图11,描述了说明性的云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点52,本地计算设备例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点52可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。可理解,图11中所示的计算设备54A-N的类型仅旨在说明,并且计算节点52和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图12,示出了由云计算环境50(图11)提供的一组功能抽象层。可预先理解,图12中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层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.根据权利要求2所述的计算机程序产品,其中,所述十进制格式是二进制编码的十进制格式。
4.根据前述权利要求中任一项所述的计算机程序产品,其中,所述缩放包括:
确定缩放因子;以及
在缩放所述输入值时使用所述缩放因子以提供所述缩放结果。
5.根据权利要求4所述的计算机程序产品,其中,确定所述缩放因子包括:
使用所述指令的操作数获得缩放值;
使用所述缩放值来确定所述缩放因子;以及
其中,使用所述缩放因子包括将所述输入值乘以所述缩放因子以获得所述缩放结果。
6.根据前述权利要求中任一项所述的计算机程序产品,其中,所述拆分包括:
对所述转换结果进行标准化以得到第一标准化结果;以及
截断所述第一标准化结果以获得所述另一种格式的短格式的一个结果。
7.根据权利要求6所述的计算机程序产品,其中,所述拆分还包括:
从所述转换结果中减去所述一个结果以提供差;
对所述差进行标准化以提供第二标准化结果;以及
截断所述第二标准化结果以获得所述另一种格式的长格式的另一结果。
8.根据权利要求7所述的计算机程序产品,其中,所述放置包括:
将所述一个结果放置在所选择的位置的一部分中;以及
将所述另一结果放置在所选择的位置的另一部分中。
9.根据权利要求8所述的计算机程序产品,其中,所选择的位置的所述一部分包括由所述指令指定的寄存器的第一选择的比特,而且所选择的位置的所述另一部分包括由所述指令指定的所述寄存器的第二选择的比特。
10.根据权利要求8所述的计算机程序产品,其中,执行所述指令还包括:
确定所述一个结果的符号;
确定所述另一结果的符号;以及
将所述一个结果的符号和所述另一个结果的符号放置在所选择的位置。
11.一种用于促进计算环境内的处理的计算机系统,所述计算机系统包括:
存储器;以及
与所述存储器通信的处理器,其中,所述计算机系统被配置为执行一种方法,所述方法包括:
执行指令以执行缩放、转换和拆分操作,执行所述指令包括:
缩放一种格式的输入值以提供缩放结果;
转换所述一种格式的所述缩放结果以提供另一种格式的转换结果;
将所述转换结果拆分成多个部分;以及
将所述多个部分中的一个或多个部分放置在选择的位置。
12.根据权利要求11所述的计算机系统,其中,所述缩放包括:
确定缩放因子;以及
在缩放所述输入值时使用所述缩放因子以提供所述缩放结果。
13.根据权利要求11至12中任一项所述的计算机系统,其中,所述拆分包括:
对所述转换结果进行标准化以得到第一标准化结果;以及
截断所述第一标准化结果以获得所述另一种格式的短格式的一个结果。
14.根据权利要求13所述的计算机系统,其中,所述拆分还包括:
从所述转换结果中减去所述一个结果以提供差;
对所述差进行标准化以提供第二标准化结果;以及
截断所述第二标准化结果以获得所述另一种格式的长格式的另一结果。
15.根据权利要求14所述的计算机系统,其中,所述放置包括:
将所述一个结果放置在所选择的位置的一部分中;以及
将所述另一结果放置在所选择的位置的另一部分中。
16.一种促进计算环境内的处理的计算机实现的方法,所述计算机实现的方法包括:
执行指令以执行缩放、转换和拆分操作,执行所述指令包括:
缩放一种格式的输入值以提供缩放结果;
转换所述一种格式的所述缩放结果以提供另一种格式的转换结果;
将所述转换结果拆分成多个部分;以及
将所述多个部分中的一个或多个部分放置在选择的位置。
17.根据权利要求16所述的计算机实现的方法,其中,所述缩放包括:
确定缩放因子;以及
在缩放所述输入值时使用所述缩放因子以提供所述缩放结果。
18.根据权利要求16至17中任一项所述的计算机实现的方法,其中,所述拆分包括:
对所述转换结果进行标准化以得到第一标准化结果;以及
截断所述第一标准化结果以获得所述另一种格式的短格式的一个结果。
19.根据权利要求18所述的计算机实现的方法,其中,所述拆分还包括:
从所述转换结果中减去所述一个结果以提供差;
对所述差进行标准化以提供第二标准化结果;以及
截断所述第二标准化结果以获得所述另一种格式的长格式的另一结果。
20.根据权利要求19所述的计算机实现的方法,其中,所述放置包括:
将所述一个结果放置在所选择的位置的一部分中;以及
将所述另一结果放置在所选择的位置的另一部分中。
CN202280017298.XA 2021-02-26 2022-02-18 十进制缩放和转换和拆分到十六进制浮点指令 Pending CN116940927A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/186,302 2021-02-26
US17/186,302 US11360769B1 (en) 2021-02-26 2021-02-26 Decimal scale and convert and split to hexadecimal floating point instruction
PCT/EP2022/054049 WO2022179942A1 (en) 2021-02-26 2022-02-18 Decimal scale and convert and split to hexadecimal floating point instruction

Publications (1)

Publication Number Publication Date
CN116940927A true CN116940927A (zh) 2023-10-24

Family

ID=80785318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280017298.XA Pending CN116940927A (zh) 2021-02-26 2022-02-18 十进制缩放和转换和拆分到十六进制浮点指令

Country Status (10)

Country Link
US (1) US11360769B1 (zh)
EP (1) EP4298507A1 (zh)
JP (1) JP2024507650A (zh)
KR (1) KR20230121152A (zh)
CN (1) CN116940927A (zh)
AU (1) AU2022227807A1 (zh)
CA (1) CA3204507A1 (zh)
IL (1) IL302916A (zh)
TW (1) TWI792928B (zh)
WO (1) WO2022179942A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663004B2 (en) 2021-02-26 2023-05-30 International Business Machines Corporation Vector convert hexadecimal floating point to scaled decimal instruction

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3654438A (en) 1969-07-09 1972-04-04 Science Spectrum Hexadecimal/decimal calculator
GB1593839A (en) * 1978-05-26 1981-07-22 Pringle R D Performance testing device
US4347618A (en) * 1980-06-30 1982-08-31 Stephen P. Kavouras Apparatus for processing weather radar information
US4589087A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Condition register architecture for a primitive instruction set machine
JPS61123928A (ja) 1984-09-05 1986-06-11 Hitachi Ltd 浮動小数点データ処理装置
JPH0644714B2 (ja) 1985-02-16 1994-06-08 ソニー株式会社 コ−ド変換装置
US4799181A (en) * 1986-09-30 1989-01-17 Honeywell Bull Inc. BCD arithmetic using binary arithmetic and logical operations
JPH01217622A (ja) 1988-02-26 1989-08-31 Mitsubishi Electric Corp 浮動小数点表現の変換方式
JPH01237822A (ja) 1988-03-18 1989-09-22 Oki Electric Ind Co Ltd 浮動小数点データの十進数変換装置
US5191335A (en) * 1990-11-13 1993-03-02 International Business Machines Corporation Method and apparatus for floating-point data conversion with anomaly handling facility
US5272654A (en) 1991-09-26 1993-12-21 Advanced Micro Devices, Inc. System for converting a floating point signed magnitude binary number to a two's complement binary number
WO1995019006A1 (en) 1994-01-10 1995-07-13 The Dow Chemical Company A massively miltiplexed superscalar harvard architecture computer
US5687359A (en) * 1995-03-31 1997-11-11 International Business Machines Corporation Floating point processor supporting hexadecimal and binary modes using common instructions with memory storing a pair of representations for each value
US5687106A (en) * 1995-03-31 1997-11-11 International Business Machines Corporation Implementation of binary floating point using hexadecimal floating point unit
US6247116B1 (en) 1998-04-30 2001-06-12 Intel Corporation Conversion from packed floating point data to packed 16-bit integer data in different architectural registers
US6265995B1 (en) * 1999-12-24 2001-07-24 Oak Technology, Inc. Method and apparatus for converting between a logical block address (LBA) and a minute second frame (MSF) location on a data carrier such as a CD-ROM
US6591361B1 (en) * 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6671796B1 (en) * 2000-02-25 2003-12-30 Sun Microsystems, Inc. Converting an arbitrary fixed point value to a floating point value
US20030046338A1 (en) * 2001-09-04 2003-03-06 Runkis Walter H. System and method for using programable autonomous network objects to store and deliver content to globally distributed groups of transient users
US7707233B2 (en) 2005-05-19 2010-04-27 Intel Corporation Coverting a number from a first base to a second base
US7840622B2 (en) * 2005-07-25 2010-11-23 International Business Machines Corporation Method and floating point unit to convert a hexadecimal floating point number to a binary floating point number
US8443029B2 (en) 2007-03-01 2013-05-14 International Business Machines Corporation Round for reround mode in a decimal floating point instruction
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US8627050B2 (en) * 2007-10-08 2014-01-07 International Business Machines Corporation Executing perform floating point operation instructions
US9311049B2 (en) * 2009-12-15 2016-04-12 International Business Machines Corporation System to improve numereical conversions and associated methods
US9213523B2 (en) 2012-06-29 2015-12-15 Intel Corporation Double rounded combined floating-point multiply and add
WO2014183195A1 (en) 2013-05-15 2014-11-20 University Of Saskatchewan Decimal floating-point fused multiplier-adder
US9507564B2 (en) 2014-04-14 2016-11-29 Oracle International Corporation Processing fixed and variable length numbers
US9778908B2 (en) 2014-07-02 2017-10-03 Via Alliance Semiconductor Co., Ltd. Temporally split fused multiply-accumulate operation
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
US10241757B2 (en) 2016-09-30 2019-03-26 International Business Machines Corporation Decimal shift and divide instruction
US10228939B2 (en) * 2016-12-14 2019-03-12 Oracle International Corporation Efficient conversion of numbers from database floating point format to binary integer format
US10224954B1 (en) * 2017-09-29 2019-03-05 Intel Corporation Floating point to fixed point conversion
US11175890B2 (en) * 2019-04-30 2021-11-16 International Business Machines Corporation Hexadecimal exponent alignment for binary floating point unit

Also Published As

Publication number Publication date
TW202240382A (zh) 2022-10-16
KR20230121152A (ko) 2023-08-17
CA3204507A1 (en) 2022-09-01
IL302916A (en) 2023-07-01
EP4298507A1 (en) 2024-01-03
TWI792928B (zh) 2023-02-11
WO2022179942A1 (en) 2022-09-01
AU2022227807A1 (en) 2023-07-27
JP2024507650A (ja) 2024-02-21
US11360769B1 (en) 2022-06-14

Similar Documents

Publication Publication Date Title
TWI792928B (zh) 用於十進位制縮放及轉換並拆分為十六進位制浮點指令之電腦程式產品、電腦系統及方法
CN109791479B (zh) 十进制乘法和移位指令
CN109791478B (zh) 十进制移位和除法指令
US11442726B1 (en) Vector pack and unpack instructions
US10990390B2 (en) Decimal load immediate instruction
US11663004B2 (en) Vector convert hexadecimal floating point to scaled decimal instruction
US11531546B2 (en) Hexadecimal floating point multiply and add instruction

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

Country of ref document: HK