太阳城集团

  • / 20
  • 下载费用:30 金币  

用于从十进制浮点格式转换为压缩十进制格式的机器指令.pdf

摘要
申请专利号:

CN201580052644.8

申请日:

2015.09.15

公开号:

太阳城集团CN106716347A

公开日:

2017.05.24

当前法律状态:

实审

有效性:

审中

法律详情: 实质审查的生效IPC(主分类):G06F 9/302申请日:20150915|||公开
IPC分类号: G06F9/302 主分类号: G06F9/302
申请人: 国际商业机器公司
发明人: J·D·布拉德伯里; S·卡罗格; R·科普兰; M·密特兰
地址: 美国纽约
优先权: 2014.09.30 US 14/502,082
专利代理机构: 北京市中咨律师事务所 11247 代理人: 于静;张亚非
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

太阳城集团CN201580052644.8

授权太阳城集团号:

|||

法律状态太阳城集团日:

2017.06.16|||2017.05.24

法律状态类型:

太阳城集团实质审查的生效|||公开

摘要

太阳城集团提供一种用于执行机器指令以将数据从十进制浮点格式转换为压缩十进制格式的方法。所述方法从在通信上耦合到存储器的处理器的一个或多个寄存器读取十进制浮点格式的数据。所述方法将所述十进制浮点格式的数据转换成压缩十进制格式。所述方法将转换成所述压缩十进制格式的数据写入所述存储器。

权利要求书

1.一种通过执行机器指令将数据从一种格式转换为另一种格式的方法,所述方法包
括:
从在通信上耦合到存储器的处理器的一个或多个寄存器读取十进制浮点格式的数据;
由所述处理器将所述十进制浮点格式的数据转换成压缩十进制格式;以及
将转换成所述压缩十进制格式的数据写入所述存储器。
2.根据权利要求1所述的方法,其中所述一个或多个寄存器是不同于通用寄存器的专
用寄存器。
3.根据权利要求2所述的方法,其中执行所述机器指令,而不在转换所述数据之后将转
换成所述压缩十进制格式的数据写入任何通用寄存器。
4.根据权利要求1所述的方法,其中根据所述机器指令执行所述读取、转换和写入。
5.根据权利要求4所述的方法,
其中所述机器指令包括用于提供操作码的操作码字段,所述操作码指定从所述十进制
浮点格式到所述压缩十进制格式的转换是要执行的任务,
其中如果所述操作码是第一值,则所述机器指令用于将十进制浮点双精度格式的数据
转换为所述压缩十进制格式,
其中如果所述操作码是第二值,则所述机器指令用于将十进制浮点扩展格式的数据转
换为所述压缩十进制格式。
6.根据权利要求4所述的方法,其中所述机器指令包括控制位,其中当将所述控制位设
置为指示所述控制开启的值时,所述转换包括将所述十进制浮点格式的数据的正号编码成
指示被转换成所述压缩十进制格式的数据是无符号数的二进制值。
7.根据权利要求4所述的方法,其中所述机器指令包括控制位,其中当将所述控制位设
置为指示所述控制开启的值并且被转换成所述压缩十进制格式的数据的绝对值为零时,所
述转换包括使用指定符号代码将被转换成所述压缩十进制格式的数据的符号位设置为正
零。
8.一种用于将数据从一种格式转换为另一种格式的计算机程序产品,所述计算机程序
产品包括:
计算机可读存储介质,所述计算机可读存储介质具有随其包含的机器指令,所述机器
指令能够由处理器读取以导致所述处理器执行一种方法,所述方法包括:
从在通信上耦合到存储器的处理器的一个或多个寄存器读取十进制浮点格式的数据;
将所述十进制浮点格式的数据转换成压缩十进制格式;以及
将转换成所述压缩十进制格式的数据写入所述存储器。
9.根据权利要求8所述的计算机程序产品,其中所述一个或多个寄存器是不同于通用
寄存器的专用寄存器。
10.根据权利要求9所述的计算机程序产品,其中执行所述机器指令,而不在转换所述
数据之后将转换成所述压缩十进制格式的数据写入任何通用寄存器。
11.根据权利要求8所述的计算机程序产品,其中根据特定机器指令执行所述读取、转
换和写入。
12.根据权利要求11所述的计算机程序产品,
其中所述特定机器指令包括用于提供操作码的操作码字段,所述操作码指定从所述十
进制浮点格式到所述压缩十进制格式的转换是要执行的任务,
其中如果所述操作码是第一值,则所述特定机器指令用于将十进制浮点双精度格式的
数据转换为所述压缩十进制格式,
其中如果所述操作码是第二值,则所述特定机器指令用于将十进制浮点扩展格式的数
据转换为所述压缩十进制格式。
13.根据权利要求11所述的计算机程序产品,其中所述特定机器指令包括控制位,其中
当将所述控制位设置为指示所述控制开启的值时,所述转换包括将所述十进制浮点格式的
数据的正号编码成指示被转换成所述压缩十进制格式的数据是无符号数的二进制值。
14.根据权利要求11所述的计算机程序产品,其中所述特定机器指令包括控制位,其中
当将所述控制位设置为指示所述控制开启的值并且被转换成所述压缩十进制格式的数据
的绝对值为零时,所述转换包括使用指定符号代码将被转换成所述压缩十进制格式的数据
的符号位设置为正零。
15.一种用于将数据从一种格式转换为另一种格式的计算机系统,包括:
存储器,其在通信上耦合到处理器;以及
所述处理器,其被配置为执行机器指令以执行一种方法,所述方法包括:
从所述处理器的一个或多个寄存器读取十进制浮点格式的数据;
将所述十进制浮点格式的数据转换成压缩十进制格式;以及
将转换成所述压缩十进制格式的数据写入所述存储器。
16.根据权利要求15所述的计算机系统,其中所述一个或多个寄存器是不同于通用寄
存器的专用寄存器。
17.根据权利要求16所述的计算机系统,其中执行所述机器指令,而不在转换所述数据
之后将转换成所述压缩十进制格式的数据写入任何通用寄存器。
18.根据权利要求15所述的计算机系统,
其中所述机器指令包括用于提供操作码的操作码字段,所述操作码指定从所述十进制
浮点格式到所述压缩十进制格式的转换是要执行的任务,
其中如果所述操作码是第一值,则所述机器指令用于将十进制浮点双精度格式的数据
转换为所述压缩十进制格式,
其中如果所述操作码是第二值,则所述机器指令用于将十进制浮点扩展格式的数据转
换为所述压缩十进制格式。
19.根据权利要求15所述的计算机系统,其中所述机器指令包括控制位,其中当将所述
控制位设置为指示所述控制开启的值时,所述转换包括将所述十进制浮点格式的数据的正
号编码成指示被转换成所述压缩十进制格式的数据是无符号数的二进制值。
20.根据权利要求15所述的计算机系统,其中所述机器指令包括控制位,其中当将所述
控制位设置为指示所述控制开启的值并且被转换成所述压缩十进制格式的数据的绝对值
为零时,所述转换包括使用指定符号代码将被转换成所述压缩十进制格式的数据的符号位
设置为正零。

说明书

用于从十进制浮点格式转换为压缩十进制格式的机器指令

相关申请的交叉引用

本申请涉及同时提交的标题为“MACHINE INSTRUCTIONS FOR CONVERTING TO
DECIMAL FLOATING POINT FORMAT FROM PACKED DECIMAL FORMAT(用于从压缩十进制格式
转换为十进制浮点格式的机器指令)”的美国专利申请14/502030,此专利申请在此全部引
入作为参考。

背景技术

本发明一般地涉及将数据从一种格式转换为另一种格式,并且更具体地说,涉及
通过执行机器指令在压缩十进制格式与十进制浮点格式之间转换数据。

通常,用于处理以压缩十进制格式存储在数据库中的数字十进制(即,基数10)数
据的运算直接针对存储装置运行。这些运算被称为存储到存储十进制运算。存储到存储运
算的性能受存储接口的延迟的限制,因为依赖于来自上一个运算的结果的每个运算必须等
待,直到结果被写出到存储器该运算才可以开始。随着存储延迟与处理器速度之间的差距
继续增加,这些运算的相对性能继续降低。

发明内容

本发明的各个方面包括一种用于执行机器指令的计算机程序产品、方法和系统。
根据本发明的一个方面,提供一种通过执行机器指令将数据从一种格式转换为另一种格式
的方法。所述方法从在通信上耦合到存储器的处理器的一个或多个寄存器读取十进制浮点
格式的数据。所述方法将所述十进制浮点格式的数据转换成压缩十进制格式。所述方法将
转换成所述压缩十进制格式的数据写入所述存储器。

根据本发明的另一个方面,提供一种用于将数据从一种格式转换为另一种格式的
计算机程序产品。所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介
质具有随其包含的机器指令。可由处理器读取的所述机器指令导致所述处理电路执行一种
方法。所述方法从在通信上耦合到存储器的所述处理器的一个或多个寄存器读取十进制浮
点格式的数据。所述方法将所述十进制浮点格式的数据转换成压缩十进制格式。所述方法
将转换成所述压缩十进制格式的数据写入所述存储器。

根据本发明的另一方面,提供一种用于将一种格式的数据转换为另一种格式的计
算机系统。所述计算机系统包括在通信上耦合到处理器的存储器。所述计算机系统进一步
包括所述处理器,其被配置为执行机器指令以便执行一种方法。所述方法从所述处理器的
一个或多个寄存器读取十进制浮点格式的数据。所述方法将所述十进制浮点格式的数据转
换成压缩十进制格式。所述方法将转换成所述压缩十进制格式的数据写入所述存储器。

附图说明

现在将仅通过实例的方式参考附图描述本发明的实施例,这些附图是:

图1示出根据本发明的一个实施例的计算机系统的框图;

图2示出根据本发明的一个实施例的机器指令的格式;

图3示出根据本发明的一个实施例的用于转换数据的过程流程;

图4示出根据本发明的一个实施例的机器指令的格式;以及

图5示出根据本发明的一个实施例的用于转换数据的过程流程。

具体实施方式

用于浮点数的IEEE标准(IEEE 754-2008)包括用于十进制浮点运算和数字格式的
标准。该标准已被常规计算系统支持。但是,在这些常规计算系统中,浮点运算不能非常好
地与压缩十进制格式的数据交互。这是因为用于处理压缩十进制格式的数据的软件例程必
须被手动开发并且因此不会可靠地用于这些系统,并且还因为没有将数据从压缩十进制格
式转换为十进制浮点格式的有效方式。

本发明的实施例有效地在压缩十进制格式与十进制浮点格式之间转换数据,而没
有与存储到存储运算关联的存储开销。具体地说,本发明的实施例提供用于将数据从压缩
十进制格式转换为十进制浮点格式的两个示例性机器指令。这两个示例性指令在此被称为
长转换自压缩指令(CDPT,long Convert from Packed instruction)和扩展转换自压缩指
令(CXPT,extended Convert from Packed instruction)。CDPT用于从存储器读取压缩十
进制格式的数据(例如,多达16位),将该数据转换成具有零指数的适当十进制浮点格式,并
且将十进制浮点格式的数据写入目标浮点寄存器。CXPT用于从存储器读取压缩十进制格式
的数据(例如,多达34位),将该数据转换成具有零指数的适当十进制浮点格式,并且将十进
制浮点格式的数据写入目标浮点寄存器对。

本发明的实施例进一步提供用于将数据从十进制浮点格式转换为压缩十进制格
式的指令的两个其它示例性机器指令。这两个示例性指令在此被称为长转换为压缩指令
(CPDT,long Convert to Packed instruction)和扩展转换为压缩指令(CPXT,extended
Convert to Packed instruction)。CPDT用于从指定浮点寄存器读取十进制浮点格式的数
据,将指定浮点寄存器中的数据的尾数转换为压缩十进制格式,并且将数据写入目标存储
位置。CPXT用于将浮点寄存器对中的扩展精度十进制浮点数据转换为压缩十进制格式,并
且将该数据存储到目标存储位置。

如本领域中已知的,在压缩十进制格式中,数字以一系列8位字节来表示,其中每
个字节的四位被分配给单个十进制数(digit),从而允许每个字节表示两个十进制数。4位
模式中的一个被分配给符号(正或负)。压缩十进制数可以是任何指定长度,直到适用的语
言所施加的限制,且认为在某个固定位置具有隐式小数点。

如本领域中已知的,十进制浮点格式旨在用于与压缩十进制格式不同的用途。使
用不同的更紧凑的表示在十进制浮点格式中编码十进制数。十进制浮点数据可以以三种数
据格式中的任一种表示:短、长或扩展。三种数据格式中的每一种的内容表示编码太阳城集团。分
配特殊代码以便将有限数与NaN(非数字)和无穷大区分开。对于有限数,在格式中使用偏置
指数。对于三种格式中的每一种,针对右单位视图指数(right-units-view exponents)使
用不同于左单位视图指数(left-units-view exponents)的偏差。偏置指数是无符号数。使
用组合字段中的有效位(significand)的最左侧位来编码偏置指数。在编码后的尾随有效
位字段中编码有效位的剩余位。

当将十进制浮点短格式的操作数(即,数据)加载到浮点寄存器中时,操作数占用
寄存器的左半部分,并且右半部分保持不变。当将十进制浮点双精度格式(即,十进制浮点
长格式)的操作数加载到浮点寄存器中时,操作数占用整个寄存器。十进制浮点扩展格式的
操作数占用一个浮点寄存器对。最左侧64位占用该对的整个较低编号的寄存器,并且最右
侧64位占用整个较高编号的寄存器。符号位在每种格式的位0中,并且例如对于正号为0而
对于负号为1。

对于有限数,组合字段包括偏置指数和有效位的最左侧数位;对于NaN和无穷大,
组合字段包括用于标识NaN和无穷大的代码。当格式的位1-5在00000-11101的范围内时,操
作数是有限数。偏置指数的两个最左侧位和有效位的最左侧数位以格式的位1-5来编码。位
6到组合字段的末尾包括偏置指数的其余部分。当格式字段的位1-5为11110时,操作数为无
穷大。格式的位5右侧的组合字段中的所有位构成无穷大的保留字段。在源无穷大中接受保
留字段中的非零值;在结果无穷大中将保留字段设置为0。当格式的位1-5为11111时,操作
数为NaN,并且位6(被称为SNaN位)进一步将QNaN(安静NaN)与SNaN(信令NaN)区分开。如果
位6为0,则它为QNaN;否则为SNaN。格式的位6右侧的组合字段中的所有位构成NaN的保留字
段。在源NaN中接受保留字段中的非零值;在结果NaN中将保留字段设置为0。

图1示出根据本发明的某些实施例的用于有效地在压缩十进制格式与十进制浮点
格式之间转换数据的系统100。具体地说,该图示出系统100包括处理器105、存储器110和输
入/输出(I/O)接口115,此外还包括为使例示和描述简单而未被示出的其它组件(例如,网
络接口)。应该理解,那些其它组件对于理解本发明的各种实施例不是必需的。处理器105、
存储器110和I/O接口115经由一个或多个总线120彼此耦接。

如本领域中已知的,处理器或处理器系列(例如8086和x86系列或IBM System z服
务器系列的处理器)具有它自己的机器指令集。例如,在IBM出版物z/Architecture
Principles of Operation(z/架构操作原理)(SA22-7832-09,第10版,2012年9月,其全部
内容在此引入作为参考)中给出了IBM System z服务器系列的指令集(被称为z/
Architecture指令集)。机器指令是通过设计对应于到机器的不同命令的位模式。在大多数
情况下,指令集特定于使用相同架构的一类处理器。机器指令集可以具有相同长度的所有
指令,或者该集合可以具有可变长度指令。大多数指令具有一个或多个操作码字段,这些字
段指定基本指令类型(例如算术、逻辑、跳转等)和实际运算(例如加法或比较);以及其它字
段,其它字段可以给出操作数(多个)的类型、寻址模式(多个)、寻址偏移(多个)或索引,或
者实际值本身。即,每个机器指令用于针对寄存器或存储器中的数据单元执行非常特定的
任务,例如加载、跳转或算术逻辑单元(ALU)运算。

处理器106是被配置为执行包括CDPT、CXPT、CPDT和CPXT(图1中未示出)的机器指
令的处理器。即,当执行CDPT或CXPT时,处理器106从存储器110读取压缩十进制格式的数
据,将该数据转换成适当的十进制浮点格式,并且将十进制浮点格式的数据写入寄存器125
的目标浮点寄存器或目标浮点寄存器对。当执行CPDT和CPXT时,处理器106从寄存器125的
源浮点寄存器或浮点寄存器对读取十进制浮点格式的数据,将十进制浮点格式的数据转换
为压缩十进制格式,并且将数据存储到存储器110中的目标存储位置。处理器106的寄存器
125包括一个或多个通用寄存器和/或一个或多个专用寄存器(包括浮点寄存器)。

I/O接口115支持I/O设备到系统100的附接。可以通过I/O接口115附接到系统100
的I/O设备包括键盘和显示器以及盘、直接存取存储设备、光盘和其它存储介质。在某些实
施例中,处理器106经由I/O接口115在系统100外部的存储器(未示出)中存储和取回压缩十
进制格式的数据。

图2示出CPDT和CPXT的一种实例格式200。格式200包括操作码字段205、长度字段
(L2)210、基址寄存器字段(B2)215、位移字段(D2)220、寄存器字段(R1)225、掩码字段(M3)230
以及操作码字段235。操作码字段235是操作码字段205的扩展以便保存较长操作码(例如,2
字节操作码)。在格式200下面示出的数字是位索引。如图所示,某些实施例的格式200具有
48位的长度。

操作码字段205保存指定要执行的运算的操作码(例如,十六进制值)。预定义操作
码(例如,EDAEhex)指定由格式200表示的机器指令是CPDT。另一个预定义操作码(例如,
EDAFhex)指定机器指令是CPXT。当由处理器执行CPDT或CPXT时,处理器将压缩十进制格式的
第二操作数转换为十进制浮点格式。该转换的结果被放置在第一操作数位置(即寄存器或
寄存器对)处。

长度字段210指定第二操作数(即,压缩十进制格式的数据)的长度(例如,以字节
为单位)。在某些实施例中,长度字段210包括用于CPDT的0与8之间(即,长度为1到9字节)的
长度代码,以及用于CPXT的0到17(即,长度为1到18字节)的长度代码。即,长度字段210指示
的字节数对应于压缩十进制格式的数据具有的位数。

基址寄存器字段215指定通用寄存器。由基址寄存器字段215指定的通用寄存器的
内容被与位移字段220的内容相加。位移字段220包括这样的内容:这些内容被与由基址寄
存器字段215指定的通用寄存器的内容相加以形成第二操作数地址。

寄存器字段225指定浮点寄存器。所指定寄存器的内容是第一操作数(即,转换为
十进制浮点格式的数据)。包括第一操作数的寄存器被称为第一操作数位置。

掩码字段230具有四个位(例如,位0到位3)。在某些实施例中,掩码字段230包括符
号控制(例如,位),在一个实例中符号控制是掩码字段230的位0。当符号控制关闭时(例如,
当将符号控制位设置为0时),第二操作数没有符号位,并且十进制浮点第一操作数结果的
符号位被设置为指示正号的值(例如,0)。当符号控制开启时(例如,当将符号控制位设置为
1时),第二操作数包含符号位-第二操作数的最右侧字节的最右侧四个位位置是符号。当第
二操作数的符号位指示正值时,将十进制浮点第一操作数结果的符号位设置为指示正号的
值(例如,0)。当第二操作数的符号字段指示负值时,将十进制浮点第一操作数结果的符号
位设置为指示负号的值(例如,1)。

在某些实施例中,掩码字段230包括忽略符号位控制(例如,位),在一个实例中忽
略符号位控制是掩码字段230的位3。仅当符号控制开启时才使用该忽略符号位控制。当符
号控制关闭时,忽略符号位控制被忽略。当忽略符号位控制关闭时(例如,当将忽略符号位
设置为0时),不采取动作。当忽略符号位控制开启时(例如,当将忽略符号位设置为1时),忽
略第二操作数的符号位。即,不检查第二操作数的符号位的无效性,并且将十进制浮点第一
操作数结果的符号位设置为指示正号的0。

当在第二操作数中检测到无效位或符号代码时,或者当未使用的位不为0时,识别
到异常。如果符号控制和忽略符号位控制为1,则不针对符号位执行符号代码检查。

当检测到异常时,不执行由操作码字段205指定的机器指令。对于CDPT,当长度字
段210大于8时,处理器停止执行该机器指令并且返回异常。对于CXPT,当长度字段210大于
17时或者当寄存器字段225指定无效的浮点寄存器对时,处理器停止执行该机器指令并且
返回异常。

图3示出根据本发明的某些实施例的用于执行机器指令的过程流程。在某些实施
例中,系统100(具体地说图1的处理器105)执行图3中所示的过程流程。

在方框310,处理器105验证所接收的机器指令以便判定是否返回异常并停止执行
该机器指令。具体地说,处理器105判定所接收的机器指令是否满足异常的任何条件。例如,
当操作码字段205指示所接收的机器指令是CDPT时,处理器105判定长度字段210是否大于
8。如果长度字段210大于8,则处理器105确定满足异常条件。此外,当操作码字段205指示所
接收的机器指令是CPXT时,处理器105判定长度字段210是否大于17。如果长度字段210大于
17,则处理器105确定满足异常条件。此外,当操作码字段205指示所接收的机器指令是CPXT
时,处理器105还判定寄存器字段225是否指定了无效的浮点寄存器对。如果寄存器字段225
指定了无效的浮点寄存器对,则处理器105确定满足异常条件。

当处理器105在方框310确定满足异常条件时,处理器105继续到方框320,这将在
下面进一步描述。当处理器105在方框310确定不满足异常条件时,处理器105在方框380停
止执行该机器指令并且返回异常。即,处理器105不执行由所接收的机器指令的操作码字段
205指定的运算。

在方框320,处理器105从存储器110读取如格式200的字段所指定的压缩十进制格
式的数据。在方框330,处理器105检查压缩十进制格式的十进制数的有效性。如果十进制数
无效,则处理器105继续到方框380以便停止执行该机器指令并且返回异常。在方框340,处
理器105检查压缩十进制格式的符号的有效性。如果符号无效,则处理器105继续到方框390
以便停止执行该机器指令并且返回异常。

如果十进制数和压缩十进制格式的符号有效,则处理器105继续到方框350以便将
数据中的数字转换成十进制浮点格式。具体地说,当机器指令是CPDT时,处理器105将数字
转换成十进制浮点双精度格式(即,十进制浮点长格式)。当机器指令是CPXT时,处理器105
将数字转换成十进制浮点扩展格式。

在方框360,处理器105设置用于转换后的数字的符号。具体地说,在某些实施例
中,处理器105检查格式200的符号控制位。当符号控制关闭时,压缩十进制格式的数据没有
符号字段,并且处理器105将十进制浮点数据的符号位设置为指示正号的值(例如,0)。当符
号控制开启时,压缩十进制格式的数据包含符号位。当该符号位指示正值时,处理器105将
十进制浮点数据中的数据的符号位设置为指示正号的值(例如,0)。当符号位指示负值时,
处理器105将十进制浮点数据中的数据的符号位设置为指示负号的值(例如,1)。

在方框360,处理器105还在符号控制开启时检查忽略符号位控制。即,当符号控制
关闭时,处理器105不使用忽略符号位控制。当忽略符号位控制关闭时,处理器105不采取动
作。当忽略符号位控制开启时,忽略压缩十进制格式的数据的符号位。即,处理器105不检查
压缩十进制格式的数据的符号位的无效性,并且将十进制浮点格式的数据的符号位设置为
指示正号的值(例如,0)。

在方框370,处理器105将数据和符号写入十进制浮点格式寄存器(多个)中。具体
地说,当机器指令是CDPT时,处理器105将数据写入目标十进制浮点寄存器中。当机器指令
是CXPT时,处理器105将数据写入处理器105的一对目标十进制浮点寄存器中。

上面详细描述了两个指令CDPT和CXPT,它们提供了显著改善存储到存储十进制运
算的手段。通过诸如加法(AP)、减法(SP)、乘法(MP)或除法(DP)之类的算术运算来操作压缩
十进制格式的数据。这些算术运算必须等待先前操作的存储完成,然后算术运算才能开始,
并且这些算术运算然后将结果存储到存储器。对运算的存储器依赖性主导了性能。诸如比
较、移位和符号操纵之类的其它运算也可以作为基于寄存器的运算而不是作为存储到存储
运算被执行,并且由此提高性能。

采用新指令CDPT和CXPT(例如,重新编译已启用CDPT和CXPT的程序的源代码)会使
用十进制浮点格式等效物(例如,AD/XTR、SD/XTR、MD/XTR、DT/XTR)替换压缩十进制格式的
算术运算,以使得对于要存储或从存储器读取的任何操作数(即,数据)不存在等待。AD/
XTR、SD/XTR、MD/XTR和DT/XTR以与AP、SP、MP或DP相似的太阳城集团量操作,但没有存储开销。

CDPT和CXPT指令提供用于将数据从存储器中的压缩十进制格式直接转换成寄存
器中的十进制浮点格式的有效手段。CDPT和CXPT允许在单个步骤中将数据从压缩十进制格
式转换为十进制浮点格式。通常,压缩十进制格式的数据必须被加载到通用寄存器中,但因
为当前在常规指令集架构中没有长度受控加载,这通常需要字、半字和字节加载操作的混
合。然后能够使用其它机器指令将通用寄存器/通用寄存器对中的压缩十进制格式的数据
转换为目标十进制浮点格式。相比之下,CDPT或CXPT允许在单个步骤中将数据从存储器中
的压缩十进制格式转换为目标寄存器(多个)中的十进制浮点格式。

在某些情况下,存储在盘或磁带上的压缩十进制格式的数据不能具有可信符号。
因此,不能使用CDPT和CXPT指令的常规编译器针对每个操作数插入OR IMMEDIATE(OI)指令
以便强制符号位为Fhex。输入操作数的这种附加清除引入额外的存储延迟。相比之下,采用
CDPT和CXPT使能通过以下方式移除这些OI指令:替代地设置忽略符号位位来作为从压缩十
进制格式到十进制浮点格式的格式转换的一部分而强制产生正值。

除了从压缩转换为十进制浮点指令(CDPT和CXPT)之外,还提供CPDT和CPXT指令。
CPDT和CPXT提供将数据从浮点寄存器或浮点寄存器对中保存的十进制浮点格式转换为压
缩十进制格式并将转换后的数据直接存储到存储器的有效手段。

图4示出CPDT和CPXT的一个实例格式400。格式400包括操作码字段405、长度字段
(L2)410、基址寄存器字段(B2)415、位移字段(D2)420、寄存器字段(R1)425、掩码字段(M3)430
以及操作码字段435。格式400下示出的编号是位索引。如图所示,某些实施例的格式400具
有48位的长度。

操作码字段405保存指定要执行的运算的操作码(例如,十六进制值)。预定义操作
码(例如,EDAChex)指定由格式400表示的机器指令是CPDT。另一个预定义操作码(例如,
EDADhex)指定机器指令是CPXT。当由处理器执行CPDT或CPXT时,处理器将第一操作数(即,十
进制浮点格式的数据)的有效数字和第一操作数的符号位转换为压缩十进制格式。处理器
忽略组合字段中的指数,并且在偏置之前将其视为指数具有为0的值。

长度字段410指定包含第一操作数的最右侧有效数字的字节数量。在某些实施例
中,长度字段410包括用于CPDT的0与8之间(即,长度为1到9字节)的长度代码,以及用于
CPXT的0到17(即,长度为1到18字节)的长度代码。长度字段410指示的字节数量还对应于转
换为压缩十进制格式的数据将具有的位数。当由处理器执行CPDT或CPXT时,处理器将由长
度字段410指示的字节数量放置在第二操作数位置处。如果没有足够的有效数字来填充转
换成压缩十进制格式的数据的所有字节,则处理器将数字0附加到有效数字作为最左侧数
字。

基址寄存器字段415指定通用寄存器。由基址寄存器字段415指定的通用寄存器的
内容被与位移字段420的内容相加。位移字段420包括这样的内容:这些内容被与由基址寄
存器字段415指定的通用寄存器的内容相加以形成第二操作数地址。

寄存器字段425指定寄存器。所指定寄存器的内容是第一操作数(即,十进制浮点
格式的源数据)。包括第一操作数的寄存器被称为第一操作数位置。

掩码字段430具有四个位(例如,位0到位3)。在某些实施例中,掩码字段430包括符
号控制(例如,位),在一个实例中符号控制是掩码字段430的位0。当符号控制开启时(例如,
当将符号控制位设置为1时),第二操作数具有符号位—第二操作数的最右侧字节的最右侧
四个位位置将具有符号。当符号控制关闭时(例如,当将符号控制位设置为0时),第二操作
数没有符号位。

在某些实施例中,掩码字段430包括加号代码控制(例如,位),在一个实例中加号
代码控制是掩码字段430的位2。仅当符号控制开启时才使用该加号代码控制。当符号控制
关闭时,加号代码控制被忽略。当加号代码控制关闭时(例如,当将加号代码控制设置为0
时),加号被编码为指示正号的值(例如,11002或Chex)。当加号代码控制开启时(例如,当将
加号代码控制设置为1时),加号被编码为指示无符号数的值(例如,11112或Fhex)。

在某些实施例中,掩码字段430包括强制加零控制(例如,位),在一个实例中强制
加零控制是掩码字段430的位3。仅当符号控制开启时才使用该强制加零控制。当符号控制
关闭时,强制加零控制被忽略。当强制加零控制关闭(例如,当将强制加零控制设置为0)并
且产生负零的带符号值时,不采取动作。当强制加零控制开启(例如,当将强制加零控制设
置为1)并且要放置在第二操作数位置中的转换结果的绝对值为零时,使用由加号代码控制
指定的符号代码设置转换结果的符号位以便指示正零。

针对任何类型的第一操作数(包括无穷大、QNaN或SNaN)执行CPDT或CPXT而不导致
异常。如果第一操作数是特殊的(即,无穷大、QNaN或SNaN),则附加数字0作为有效数字的最
左侧数字,从而在概念上形成要转换的实际有效数字。指定数量的最右侧实际有效数字和
符号位被转换为压缩十进制格式。转换结果被放置在第二操作数位置处,并且以适当的条
件代码完成CPDT或CPXT的执行。实例条件代码包括:0,其用于指示十进制浮点格式的源数
据为0;1,其用于指示源数据不是特殊的并且小于0;2,其用于指示源数据不是特殊的并且
大于0;以及3,其用于指示源是特殊的—无穷大、QNaN、SNaN或部分结果。

对于任何类型的第一操作数(包括无穷大和NaN),当因为第二操作数字段太短而
使有效位的一个或多个最左侧非零位丢失时,通过忽略溢出位获得转换结果。然后,设置条
件代码3。如果十进制溢出掩码位为1,则发生针对十进制溢出的程序中断。操作数长度本身
不是溢出的指示;非零位必定已在运算期间丢失。

图5示出根据本发明的某些实施例的用于执行机器指令的过程流程。在某些实施
例中,系统100(具体地说图1的处理器105)执行图5中所示的过程流程。

在方框510,处理器105验证所接收的机器指令以便判定是否返回异常并停止执行
该机器指令。具体地说,处理器105判定所接收的机器指令是否满足任何异常条件。例如,当
操作码字段405指示所接收的机器指令是CDPT时,处理器105判定长度字段410是否大于8。
如果长度字段410大于8,则处理器105确定满足异常条件。此外,当操作码字段405指示所接
收的机器指令是CPXT时,处理器105判定长度字段410是否大于17。如果长度字段410大于
17,则处理器105确定满足异常条件。

当处理器105在方框510确定满足异常条件时,处理器105继续到方框520,这将在
下面进一步描述。当处理器105在方框510确定不满足异常条件时,处理器105在方框560停
止执行该机器指令并返回异常。即,处理器105不执行由所接收的机器指令的操作码字段
405指定的运算。

在方框520,处理器105从如由格式400的字段指定的十进制浮点寄存器或十进制
浮点寄存器对读取十进制浮点格式的数据。在方框530,处理器105将十进制浮点格式的数
据中的数字转换成压缩十进制格式。具体地说,如果十进制浮点格式的数据是特殊的(即,
无穷大、QNaN或SNaN),则处理器105附加数字0作为有效数字的最左侧数字。处理器105还将
指定数量的最右侧实际有效数字和符号位转换为压缩十进制格式。

在方框540,处理器105设置用于转换后的数字的符号。具体地说,在某些实施例
中,处理器105检查格式400的符号控制位。当符号控制开启时,处理器105为压缩十进制格
式的转换后数据设置符号位。处理器105在压缩十进制格式的数据的最右侧字节的最右侧
四个位位置中设置符号。当符号控制关闭时,处理器105不为压缩十进制格式的转换后数据
设置符号位。

在方框540,当符号控制开启时,处理器105还检查加号代码控制。即,当符号控制
关闭时,处理器105忽略加号代码控制。当加号代码控制关闭时(例如,当将加号代码控制设
置为0时),处理器105将加号编码为指示正号的值(例如,11002或Chex)。当加号代码控制开
启时(例如,当将加号代码控制设置为开启时),处理器105将加号编码为指示无符号数的值
(例如,11112或Fhex)。

也在方框540,当符号控制开启时,处理器105检查强制加零控制。当符号控制关闭
时,处理器105忽略强制加零控制。当强制加零控制关闭并且产生负零的带符号值时,处理
器105不采取动作。当强制加零控制开启并且转换为压缩十进制格式的数据的绝对值为零
时,处理器105使用由加号代码控制指定的符号代码设置数据的符号位以便指示正零。

在方框550,处理器105将压缩十进制格式的数据写入目标存储位置。在某些实施
例中,处理器105还返回适当的条件代码。

CPDT和CPXT指令提供用于将数据从浮点寄存器或浮点寄存器对中保存的十进制
浮点格式直接转换为压缩十进制格式并将转换后的数据存储到存储器的有效手段。通常,
必须在通用寄存器中将十进制浮点格式的数据转换为压缩十进制格式。然后必须将转换为
压缩十进制格式的数据从通用寄存器存储到存储器,但因为当前在常规指令集架构中没有
长度受控加载,这通常需要字、半字和字节加载操作的混合。相比之下,CDZT或CXZT允许在
单个步骤中将数据从寄存器(多个)中的十进制浮点格式转换为存储器中的压缩十进制格
式。因此,能够提高计算机本身的功能。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形
设备。计算机可读存储介质例如可以是—但不限于—电存储设备、磁存储设备、光存储设
备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更
具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储
器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压
缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存
储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机
可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过
波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的
电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/
处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外
部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关
计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计
算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计
算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、
机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的
任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如
Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机
可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独
立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机
或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包
括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利
用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令
的状态太阳城集团来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可
编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方
面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/
或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/
或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据
处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据
处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功
能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指
令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的
计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中
规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它
设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产
生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的
指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程
序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代
表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用
于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也
可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执
行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或
流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动
作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

出于示例目的给出了对本发明的不同实施例的描述,但所述描述并非旨在是穷举
的或是限于所公开的实施例。在不偏离所述实施例的范围和精神的情况下,对于所属技术
领域的普通技术人员来说许多修改和变化都将是显而易见的。在此使用的术语的选择,旨
在最好地解释实施例的原理、实际应用或对市场中的技术的技术改进,或者使所属技术领
域的其它普通技术人员能理解在此所公开的实施例。

权利要求书(按照条约第19条的修改)

1.一种通过执行机器指令将数据从一种格式转换为另一种格式的方法,所述方法包
括:

从在通信上耦合到存储器的处理器的一个或多个寄存器读取十进制浮点格式的数据;

由所述处理器将所述十进制浮点格式的数据转换成压缩十进制格式;

判定所述机器指令中的忽略符号位位是否被设置为指示应忽略所述机器指令中的符
号控制位的值;

基于判定所述机器指令中的所述忽略符号位位被设置为指示应忽略符号控制位的值,
针对被转换成所述压缩十进制格式的数据强制正值,所述强制包括设置被转换成所述压缩
十进制格式的数据的符号位以指示正值;以及

将转换成所述压缩十进制格式的数据写入所述存储器。

2.根据权利要求1所述的方法,其中所述一个或多个寄存器是专用寄存器。

3.根据权利要求2所述的方法,其中执行所述机器指令,而不在转换所述数据之后将转
换成所述压缩十进制格式的数据写入任何通用寄存器。

4.根据权利要求1所述的方法,其中根据所述机器指令执行所述读取、转换和写入。

5.根据权利要求4所述的方法,

其中所述机器指令包括用于提供操作码的操作码字段,所述操作码指定从所述十进制
浮点格式到所述压缩十进制格式的转换是要执行的任务,

其中如果所述操作码是第一值,则所述机器指令用于将十进制浮点双精度格式的数据
转换为所述压缩十进制格式,

其中如果所述操作码是第二值,则所述机器指令用于将十进制浮点扩展格式的数据转
换为所述压缩十进制格式。

6.根据权利要求4所述的方法,其中当将所述符号控制位设置为指示所述控制开启的
值时,将所述十进制浮点格式的数据的正号编码成指示被转换成所述压缩十进制格式的数
据是无符号数的二进制值。

7.根据权利要求4所述的方法,其中当将所述符号控制位设置为指示所述控制开启的
值并且被转换成所述压缩十进制格式的数据的绝对值为零时,使用指定符号代码将被转换
成所述压缩十进制格式的数据的符号位设置为正零。

8.一种用于将数据从一种格式转换为另一种格式的计算机程序产品,所述计算机程序
产品包括:

计算机可读存储介质,所述计算机可读存储介质具有随其包含的机器指令,所述机器
指令能够由处理器读取以导致所述处理器执行一种方法,所述方法包括:

从在通信上耦合到存储器的所述处理器的一个或多个寄存器读取十进制浮点格式的
数据;

将所述十进制浮点格式的数据转换成压缩十进制格式;

判定所述机器指令中的忽略符号位位是否被设置为指示应忽略所述机器指令中的符
号控制位的值;

基于判定所述机器指令中的所述忽略符号位位被设置为指示应忽略符号控制位的值,
针对被转换成所述压缩十进制格式的数据强制正值,所述强制包括设置被转换成所述压缩
十进制格式的数据的符号位以指示正值;以及

将转换成所述压缩十进制格式的数据写入所述存储器。

9.根据权利要求8所述的计算机程序产品,其中所述一个或多个寄存器是专用寄存器。

10.根据权利要求9所述的计算机程序产品,其中执行所述机器指令,而不在转换所述
数据之后将转换成所述压缩十进制格式的数据写入任何通用寄存器。

11.根据权利要求8所述的计算机程序产品,其中根据特定机器指令执行所述读取、转
换和写入。

12.根据权利要求11所述的计算机程序产品,

其中所述特定机器指令包括用于提供操作码的操作码字段,所述操作码指定从所述十
进制浮点格式到所述压缩十进制格式的转换是要执行的任务,

其中如果所述操作码是第一值,则所述特定机器指令用于将十进制浮点双精度格式的
数据转换为所述压缩十进制格式,

其中如果所述操作码是第二值,则所述特定机器指令用于将十进制浮点扩展格式的数
据转换为所述压缩十进制格式。

13.根据权利要求11所述的计算机程序产品,其中当将所述符号控制位设置为指示所
述控制开启的值时,将所述十进制浮点格式的数据的正号编码成指示被转换成所述压缩十
进制格式的数据是无符号数的二进制值。

14.根据权利要求11所述的计算机程序产品,其中当将所述符号控制位设置为指示所
述控制开启的值并且被转换成所述压缩十进制格式的数据的绝对值为零时,使用指定符号
代码将被转换成所述压缩十进制格式的数据的符号位设置为正零。

15.一种用于将数据从一种格式转换为另一种格式的计算机系统,包括:

存储器,其在通信上耦合到处理器;以及

所述处理器,其被配置为执行机器指令以执行一种方法,所述方法包括:

从所述处理器的一个或多个寄存器读取十进制浮点格式的数据;

将所述十进制浮点格式的数据转换成压缩十进制格式;

判定所述机器指令中的忽略符号位位是否被设置为指示应忽略所述机器指令中的符
号控制位的值;

基于判定所述机器指令中的所述忽略符号位位被设置为指示应忽略符号控制位的值,
针对被转换成所述压缩十进制格式的数据强制正值,所述强制包括设置被转换成所述压缩
十进制格式的数据的符号位以指示正值;以及

将转换成所述压缩十进制格式的数据写入所述存储器。

16.根据权利要求15所述的计算机系统,其中所述一个或多个寄存器是专用寄存器。

17.根据权利要求16所述的计算机系统,其中执行所述机器指令,而不在转换所述数据
之后将转换成所述压缩十进制格式的数据写入任何通用寄存器。

18.根据权利要求15所述的计算机系统,

其中所述机器指令包括用于提供操作码的操作码字段,所述操作码指定从所述十进制
浮点格式到所述压缩十进制格式的转换是要执行的任务,

其中如果所述操作码是第一值,则所述机器指令用于将十进制浮点双精度格式的数据
转换为所述压缩十进制格式,

其中如果所述操作码是第二值,则所述机器指令用于将十进制浮点扩展格式的数据转
换为所述压缩十进制格式。

19.根据权利要求15所述的计算机系统,其中当将所述符号控制位设置为指示所述控
制开启的值时,将所述十进制浮点格式的数据的正号编码成指示被转换成所述压缩十进制
格式的数据是无符号数的二进制值。

20.根据权利要求15所述的计算机系统,其中当将所述符号控制位设置为指示所述控
制开启的值并且被转换成所述压缩十进制格式的数据的绝对值为零时,使用指定符号代码
将被转换成所述压缩十进制格式的数据的符号位设置为正零。

说明或声明(按照条约第19条的修改)

中国专利局PCT处:

根据PCT条约第19条所作的修改,申请人现对申请文件作如下修改:

用新的权利要求1-20替换原权利要求1-20。

中咨律师事务所

2017年3月28日

关 键 词:
用于 十进制 浮点 格式 转换 压缩 机器 指令
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:用于从十进制浮点格式转换为压缩十进制格式的机器指令.pdf
链接地址:http://zh228.com/p-6059847.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');