CN1933334B - 从比例二进制编码十进制转换到十进制浮点的系统和方法 - Google Patents

从比例二进制编码十进制转换到十进制浮点的系统和方法 Download PDF

Info

Publication number
CN1933334B
CN1933334B CN2006101216206A CN200610121620A CN1933334B CN 1933334 B CN1933334 B CN 1933334B CN 2006101216206 A CN2006101216206 A CN 2006101216206A CN 200610121620 A CN200610121620 A CN 200610121620A CN 1933334 B CN1933334 B CN 1933334B
Authority
CN
China
Prior art keywords
numeral
sbcd
coefficient
dfp
bcd
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.)
Active
Application number
CN2006101216206A
Other languages
English (en)
Other versions
CN1933334A (zh
Inventor
史蒂文·R.·加洛
谢乐尔·H.·温内拉塞恩
埃里克·M.·施瓦兹
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 CN1933334A publication Critical patent/CN1933334A/zh
Application granted granted Critical
Publication of CN1933334B publication Critical patent/CN1933334B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • H03M7/04Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种用于从比例二进制编码十进制(SBCD)转换到十进制浮点(DFP)的系统和方法。该系统包括用于接收SBCD数字的指数部分和SBCD数字的系数部分的一个或多个的机制。该系统还包括用于对SBCD数字的系数部分执行系数压缩以创建DFP数字的系数部分的机制以及用于执行包括将SBCD数字的指数部分插入到DFP数字的指数部分的指数插入的机制中的至少一种机制。

Description

从比例二进制编码十进制转换到十进制浮点的系统和方法
商标
Figure S061C1620620060901D000011
是International Business Machines Corporation,Armonk,New York,U.S.A.的注册商标,这里所使用的S/390,Z900和z990以及其他名称可能是International Business MachinesCorporation或其他公司的注册商标、商标或产品名称。
技术领域
本发明涉及十进制浮点(DFP)数字,具体来说,涉及从比例二进制编码十进制(SBCD)浮点数字转换为DFP数字。
背景技术
DFP已经用于计算器许多年,但是成为IEEE标准(754R浮点标准)的一部分还是第一次。如IEEE 754R标准所定义的DFP格式包括:32位单精度格式、64位双精度格式,以及128位扩展精度格式。此新标准为计算机设计者提供了开发为此新标准优化的特定操作的装置。在操作数的标准化之前,不可能开发用于加速这种计算的特定操作。对于某些商业工作负荷,软件中的DFP操作的模拟可以占处理时间的主导地位。
随着新标准的出现,以及十进制算术运算广泛应用于财务计算,需要以高性能实现这些操作。
发明内容
本发明的示范性实施例包括用于从比例二进制编码十进制(scaled binary coded decimal)(SBCD)转换到十进制浮点(DFP)的系统。该系统包括用于接收SBCD数字的指数部分和SBCD数字的系数部分的一个或多个的机制。该系统还包括用于对SBCD数字的系数部分执行系数压缩以创建DFP数字的系数部分的机制以及用于执行包括将SBCD数字的指数部分插入到DFP数字的指数部分的指数插入的机制中的至少一种机制。
另外的示范性实施例包括用于从SBCD转换到DFP的方法。该方法包括用于接收SBCD数字的指数部分和SBCD数字的系数部分的一个或多个的机制。该方法还包括对SBCD数字的系数部分执行系数压缩以创建DFP数字的系数部分以及执行包括将SBCD数字的指数部分插入到DFP数字的指数部分的指数插入中的至少一种。
其他示范性实施例包括用于从SBCD转换到DFP的系统。该系统包括用于接收SBCD数字的指数部分和SBCD数字的系数部分的一个或多个的机制。SBCD数字的指数部分是二进制,SBCD数字的系数部分是BCD。该系统还包括用于对SBCD数字的系数部分执行系数压缩以创建DFP数字的系数部分的机制,或者用于执行包括将SBCD数字的指数部分插入到DFP数字的指数部分的指数插入的机制中的任何一种。用于执行系数压缩的机制是通过双精度硬件来实现的。SBCD数字是单精度、双精度或扩展精度。执行系数压缩的过程包括确定在SBCD数字的系数部分是否有无效BCD位,并响应确定存在无效BCD位的情况,设置条件码。执行压缩的过程还包括确定SBCD数字是否为特殊数字,并响应确定SBCD数字是特殊数字的情况,设置第二条件码。执行指数插入的过程包括响应SBCD指数包含负值,创建DFP特殊数字。
通过本本发明的技术,来实现其他特征和优点。这里将详细描述本发明的其他实施例和方面,它们被视为所声明的发明的一部分。为了更好地了解本发明具有的优点和特征,请参阅说明书和附图。
附图说明
在本说明书结尾的权利要求书中,特别指出了并明确声明了被视为本发明的主题。通过下面的结合附图对上述发明进行的详细说明,可以更好地理解上述发明的前述和其他目的、特征和优点,其中:
图1是根据本发明的示范性实施例的用于实现从BCD到DPD的系数压缩的示范性硬件图表;
图2是根据本发明的示范性实施例的用于将34 BCD位系数转换为四倍精度DFP操作数的过程的方框图;
图3是根据本发明的示范性实施例的用于将SBCD数字的指数部分转换为DFP数字的示范性硬件图表;
图4是根据本发明的示范性实施例的用于实现从BCD到DPD的系数扩展的示范性硬件图表;
图5是根据本发明的示范性实施例的用于将四倍精度DFP操作数转换为34 BCD位系数的过程的方框图;
图6是根据本发明的示范性实施例的用于实现将DFP数字转换为SBCD数字的提取指数部分的示范性硬件图表。
详细的描述通过参考图形说明了本发明的示范性实施例,以及优点和特征。
具体实施方式
本发明的示范性实施例包括用于在DFP数字和SBCD数字之间相互转换系数的操作。实施例支持三种不同DFP格式(单精度-32位、双精度-64位,以及扩展精度128位)。此外,示范性实施例还设置可使处理器快速地检测源操作数何时包含无效数据或特殊数字,如:无穷大、安静NaN(Not-A-Number)(qNaN)和信号NaN(Not-A-Number)(sNaN)。本发明的示范性实施例还描述了用于提取和设置三种不同DFP格式的DFP数字的指数字段的操作。由这些操作使用在插入和提取指令之间兼容的数字格式来处理特殊数字。设置了条件码,以使处理器快速地检测何时已经处理了特殊数字。
示范性实施例包括从SBCD数字(包括BCD系数和二进制指数两者)到DFP数字的转换和从DFP数字到SBCD数字的转换两者。从SBCD数字到DFP数字的转换包括压缩BCD系数和将SBCD指数插入到DFP数字中。从DFP数字到SBCD数字的转换包括将DFP系数扩展为BCD系数和将DFP指数提取到SBCD二进制指数两者。
下面的表1显示了SBCD数字的三种不同格式。这里所使用的术语SBCD数字是指包括以BCD表示的系数和以二进制表示的指数以及可选的一位符号字段。
表1.SBCD数字格式
格式    每一个字段中的位数
          符号  指数    系数
单精度    1     8       28(7位)
双精度    1     10      64(16位)
扩展精度  1     14      136(34位)
下面的表2显示了DFP数字的三种不同格式。符号字段(表2中标记为“S”)表示操作数的符号,组合字段(表2中标记为“C”)包含系数的上面的最高有效位(MSD)和编码为五位编码格式的两个最高指数位,偏置指数连续字段(表2中标记为“BEC”)包含指数的几乎所有位,但是,两个最高位除外,系数连续字段(表2中标记为“CC”)包含密集紧缩十进制(DPD)格式的系数的几乎所有位,但是,MSD除外。
表2.           DFP数字格式
格式           每一个字段中的位数
               S       C      BEC       CC
单精度         1       5      6         20
双精度         1       5      8         50
扩展精度       1       5      12        110
如前所述,组合字段包含系数的上面的MSD和以五位编码格式编码的两个最高指数位。
下面的表3显示了如IEEE 754R标准所描述的此五个位编码,其中,d0、d1、d2、d3来自于系数的MSD的BCD编码,b0,b1是指数的两个最高位。
表3.    组合字段的编码
条件    组合字段编码
MSD=0到7           b0,b1,d1,d2,d3
MSD=8或9           1,1,b0,b1,d3
无穷大              1,1,1,1,0
NaN                 1,1,1,1,1
示范性实施例使用组合字段来快速识别诸如qNaN、sNaN和无穷大值(但不仅限于这些值)之类的特殊数字。可以通过检查组合字段中的位,来检测特殊数字。
压缩系数(BCD到DFP)
压缩操作主要处理包含系数数据的最高有效位(以及指数数据的两个最高有效位)的组合字段,以及包含压缩成20、50或110 DPD位的系数的剩余7、15或33 BCD位的系数连续字段,具体情况取决于目标DFP格式。压缩操作获得BCD系数,并创建DPD系数,用于存储在DFP数字中,并从基于系数的最有效BCD位的值生成5位组合字段。这也被称为从BCD压缩(CBCDR)。
CBCDR操作可以作为计算机指令来实现,该指令从源操作数获得16 BCD系数位,并将最右边15位压缩成DPD位,并将它们写入到目标寄存器的最右边的50位。最上面的位被编码为组合字段,假设指数值为0,并写入到目标寄存器中。目标寄存器(对于双精度操作数,BEC)的符号字段和位6到13分别是正和0。如果源寄存器包含无效BCD数字码,那么,条件码被设置为1,否则,设置条件码0。基于有效十进制数据设置条件码,可以不需要额外的指令来专门验证源数据,对于典型的处理器,节省了大量的周期和指令。
图1描述了根据本发明的示范性实施例的用于实现将系数从BCD压缩为DFP(即,CBCDR指令)的示范性硬件图表。图1包括16位BCD系数102,作为到有效数位检测块110,BCD到组合字段编码器108,以及多个BCD到DPD编码器106的输入。多个BCD到DPD编码器106这里也被称为一个DPD到BCD编码器库。响应确定BCD系数操作数102是否为有效BCD数字,设置条件码112。在示范性实施例中,如果SBCD系数102是有效BCD数字,则条件码被设置为0,如果BCD系数102包含无效BCD数字,则被设置为1。
BCD到DPD编码器106各自将三个BCD位(12位)BCD系数102压缩为10位DPD。对SBCD系数102的所有位进行压缩,但是MSD除外。对于双精度数,压缩的系数存储在DFP数字104a的五十个最低有效位中。BCD到组合字段编码器108基于SBCD数字的系数的MSD创建前面所描述的5位组合字段。组合字段存储在DFP数字104a的第二到第六位中。
对于双精度格式的操作数,从图1中所描述的处理输出的64位DFP数字104a包括64位,最高有效位中的符号位(位0),下五个最高有效位中的组合字段(位1-5),偏置指数连续字段中的零(位6-13),以及系数连续字段中的压缩系数(位14-63)。
如上所述,CBCDR操作是为双精度DFP操作数设计的,这种操作数预计是用于工作负荷中的最常见的操作数。然而,也可以使用这些指令来处理扩展精度操作数。图2中描述了将34位BCD系数压缩为扩展格式DFP数字的过程。
将34位BCD系数转换为四倍精度DFP操作数的过程包括一系列移位、合并,以及CBCDR操作。位于左边的第一源寄存器202(34位BCD系数的低阶位)被压缩为DPD格式的50位,并写入到位于右边的第一中间寄存器208。第二源寄存器204(34位BCD系数的第2到18位)向左移位一个位,来自第一源寄存器202的MSD被合并到空出的最右边的位。然后,将此数据压缩为50位DPD数据,并写入到第二中间寄存器210。
接下来,第三个源寄存器206被移位,直到它对齐,第二源寄存器204中的未处理的二位数(第0到1位)被合并到被移位的第三源操作数数据的右边。如参考CBCDR指令所描述的,进行最后的压缩,以便对MSD进行处理,以便它与目标寄存器的组合字段对齐。将结果写入到第三中间寄存器212。最后一个步骤是将中间寄存器208、210、212中的数据对齐,将它合并到目标寄存器对214中,符号位和偏置指数连续字段分别被设置为正和0。
标记为216的箭头所描述的处理是前面参考图1所描述的CBCDR操作。此处理可以由连续地执行的相同硬件/软件指令来执行,和/或通过拥有三套并行地执行的相同硬件/软件指令,以在第一中间寄存器208、第二中间寄存器210和第三中间寄存器212中产生结果。此外,还可以使用相同CBCDR操作来压缩单精度格式的数字。对于针对十进制浮点数字的IEEE 754R指定的三个精度中的任何一种精度,可以使用相同硬件(例如,64位硬件)和/或软件(例如,微码)来进行压缩。
插入指数(BCD数字DFP)
用于将二进制指数从SBCD数字插入到DFP数字的指令主要处理组合字段和偏置指数连续字段,该字段根据格式,包含指数数据的剩余6、8或12位。三个插入指数指令包括insert exponentsingle precision、insert exponent double precision,以及insertexponent extended precision。这些指令中的每一个指令都从源寄存器中读取二进制整数,其值是将要插入到目标寄存器中的DFP数字中的偏置指数。读取在目标寄存器中编码的系数的MSD,以确定应该如何对组合字段进行编码。然后,更新组合字段和指数连续字段。更新过程将目标寄存器中的目标DFP数字的指数值设置为源寄存器中包含的值。
如果源寄存器是负的(位0=1),那么,目标寄存器将用特殊数字更新。在示范性实施例中,使用最小的两个有效位来确定目标寄存器是否用表示无穷大(位62:63=11′b)、qNaN(位62:63=10′b)或sNan(位62=0′b)的值来更新。
图3描述了根据本发明的示范性实施例的用于实现从SBCD数字的二进制指数部分转换为DFP数字的指数部分的指数插入的示范性硬件图表。图3描述了64位二进制指数302,以及从参考图1所描述的处理输出的64位DFP数字104a。图3中所描述的处理的输出是更新的64位DFP数字104b,包括对组合和偏置指数连续字段的更新。如果二进制指数是负的(位0是值“1”),64位二进制指数302的操作数位0、62和63被输入到特殊数字生成器306,以生成特殊值无穷大、qNaN和sNaN,如前面所讨论的。组合字段生成器308接收6位(位50-51和54-57)二进制指数302(来自特殊数字生成器306),操作数大小304,以及DFP数字104a。组合字段生成器308生成结果(组合字段)的位1到5和指数连续字段的第一位,并将结果写入到64位DFP数字104b。图3中的处理也包括指数连续字段生成器310,用于更新DFP数字104b的偏置指数连续字段。在示范性实施例中,特殊数字生成器306的输出被输入到指数连续字段生成器310。如果特殊数字生成器306指出DFP数字是qNaN,那么,指数连续字段生成器310用“0”改写指数字段的最高有效位(第6位)。如果特殊数字生成器306指出DFP数字是sNaN,那么,指数连续字段生成器310用“1”改写指数字段的最高有效位(第6位)。
扩展系数(DFP到BCD)
扩展到BCD操作获得源寄存器中的双精度DFP数字,并将作为DPD和组合字段存储的DFP数字的系数位转换为BCD系数,再将其写入到目标寄存器中。如果源操作数是诸如无穷大、qNaN或sNaN之类的特殊数字,则将0写入到目标寄存器的MSD中,并可以相应地设置条件码(无穷大=1、qNaN=2、sNaN=3)。此操作也被称为提取到BCD操作(EBCDR)。
图4描述了根据本发明的示范性实施例的用于实现EBCDR过程的示范性硬件图表。图4包括了64位DFP数字104b,作为到可选特殊数字检测器406,组合字段到BCD解码器404和到多个DPD到BCD解码器402的输入。响应确定DFP数字104b的系数部分是否为特殊数字,设置条件码112。在示范性实施例中,如果系数为普通值,则条件码被设置为0,如果系数为无穷大,则被设置为1,如果系数为qNaN,则被设置为2,如果系数为sNaN,则被设置为3。
DPD到BCD解码器402各自将DPD的10位扩展为三个BCD位(12位)。对DFP数字104b中的系数连续字段中的所有位进行解码。对于双精度数字,扩展的SBCD系数连续字段作为16位BCD系数102的15个最低有效位存储。组合字段到BCD解码器404接收DFP数字104b的5位组合字段108,并创建BCD系数的MSD。
如上所述,EBCDR操作是为双精度DFP操作数设计的,这种操作数预计是用于工作负荷中的最常见的操作数。然而,如图5所描述的,也可以使用这些指令来处理扩展精度操作数。图5中所描述的用于将四倍精度DFP数字转换为34位BCD系数的过程包括一系列移位、合并,和EBCDR扩展步骤。
图5中所描述的过程开始将第一源寄存器502的低阶50位(DFP扩展精度操作的低阶50位)转换(例如,使用图4中所描述的EBCDR过程)为第一中间寄存器508中的BCD数据的15位。第二源寄存器504的系数连续字段(DFP扩展精度操作数的高阶64位)向左移位14位,第一源寄存器502中的未处理的位被合并到它们的右边。第二扩展指令(例如,EBCDR)将15个另外的BCD位写入到第二中间寄存器510中。然后,系数连续字段向右移位10位,并存储在第三源寄存器506中。最后的扩展指令(例如,EBCDR)将剩余的4个BCD位写入到第三中间寄存器512中。最后,三个中间寄存器508 510 512中的34 BCD位数据被对齐,并被合并到为此操作分配的三个目标寄存器514中。
标记为516的箭头所描述的处理是前面参考图4所描述的EBCDR操作。此处理可以由连续地执行的相同硬件/软件指令来执行,和/或通过拥有三套并行地执行的相同硬件/软件指令,以在第一中间寄存器508、第二中间寄存器510和第三中间寄存器512中产生结果。此外,还可以使用相同EBCDR操作来压缩单精度格式的数字。对于针对十进制浮点数字的IEEE 754R指定的三个精度中的任何一种精度,可以使用相同硬件(例如,64位硬件)和/或软件(例如,微码)来进行压缩。
提取指数(DFP到SBCD)
指数提取指令(每一个格式一个)从源寄存器中读取DFP数字的较高的双字。对于单精度和双精度,这包含整个DFP数字。对于普通数字,操作从编码组合字段和偏置指数连续字段中提取偏置指数,并将条件码设置为零。如果源DFP数字是无穷大,那么,SBCD指数被设置为-1,并设置条件码1。如果源DFP数字是qNaN,那么,SBCD指数被设置为-2,并设置条件码2。如果源DFP数字是sNaN,那么,SBCD指数被设置为-3,并设置条件码3。如此使用条件码可使处理器快速地检测何时在处理特殊的数字,并且不需要特殊指令来检测这些特殊情况。
图6描述了用于为从DFP数字104b转换为二进制指数302而实现指数提取的示范性硬件图表。图6描述了作为输入的64位DFP数字(或扩展精度的DFP数字的上半部)104b和操作数大小304。特殊数字检测器406基于组合字段的值和偏置指数连续字段的第一位寻找如上文所描述的特殊的数字。特殊数字检测器406设置条件码112,并将状态输出到指数提取器602。指数提取器602基于组合字段和偏置指数连续字段操作数大小304确定二进制指数302,并从特殊数字检测器406输出。
本发明的示范性实施例允许这里所描述的过程(系数压缩、系数扩展、指数插入和指数提取)分别地执行。例如,如果已知数据集包含相同的指数值(即,用于添加已知以便士表示的集中的数据值那么,不需要提取指数所需的额外的处理和寄存器使用。另一个示例可以是用来将数据库从SBCD转换为DFP的例程,不需要转换过程将DFP转换回SBCD。另一个示例是检查特殊值,只需要提取指数过程,以获取必要的条件码。串行地执行每一个转换操作的选项也使得系统所需的硬件减少,因为所有操作都可以使用相同的中间寄存器。此性能对复杂性的折衷对于所需要的硬件可用的面积或功率受到限制的硬件实现方式是重要的。
本发明的示范性实施例提供了支持三种IEEE 754R标准DFP格式的四种转换操作。操作包括系数压缩、系数扩展、指数插入和指数提取。这里所描述的示范性实施例可以在使用最低限度的额外数据流硬件的标准超标量微处理器中使用。此外,利用一般情况通过结果值和/或条件码,检测和报告特殊的数字。此外,还通过条件码报告无效的十进制数据。
本发明的特征可以以软件、固件、硬件或其某些组合来实现。
作为一个示例,本发明的一个或多个方面可以包括在具有计算机可使用的介质的产品中(例如,一个或多个计算机程序产品)。介质中包含了用于提供和促进本发明的特征的计算机可读取的程序代码装置。产品可以作为计算机系统的一部分或单独地销售。
另外,可以提供至少一个由机器可读取的程序存储设备,其中可触摸地包含了由机器可执行的至少一个指令程序以执行本发明的特征。
这里所描述的图表只是示例。在不偏离本发明的精神的情况下,对这里所描述的这些图表或步骤(或操作)可以有许多更改。例如,可以以不同顺序执行各个步骤,也可以添加、删除或修改步骤。所有这些变化被视为带有权利要求的本发明的一部分。
尽管描述了本发明的优选实施例,但是,可以理解,那些本领域普通技术人员可以理解,可以作出落入随后的权利要求的范围内的各种改善和提高。这些权利要求应该被理解为适当地维护首先描述的发明的保护范围。

Claims (16)

1.一种用于从比例二进制编码十进制SBCD转换到十进制浮点DFP的系统,该系统包括:
用于接收SBCD数字的指数部分和SBCD数字的系数部分的一个或多个的机制,其中SBCD数字的指数部分是二进制,SBCD数字的系数部分是BCD;以及
用于对SBCD数字的系数部分执行系数压缩以创建DFP数字的系数部分的机制以及用于执行包括将SBCD数字的指数部分插入到DFP数字的指数部分的指数插入的机制中的至少一种机制,
其中,用于执行系数压缩的机制包括一个或多个BCD到密集紧缩十进制DPD转换器库,系数压缩包括使用一个或多个BCD到DPD转换器库将SBCD数字的系数部分从BCD转换为DPD,以及用于将SBCD数字的BCD系数部分的最高有效位插入到DFP数字的组合字段中的机制,以及
其中,插入包括将SBCD数字的指数部分的两个最高有效位和SBCD数字的系数部分的最高有效位编码为组合字段,并将SBCD数字的指数部分的剩余位插入到DFP数字的指数部分。
2.根据权利要求1所述的系统,其中,使用一个BCD到DPD转换器的库两次或更多次,以转换BCD系数部分。
3.根据权利要求1所述的系统,其中,编码导致指出DFP数字是否为特殊数字的组合字段。
4.根据权利要求1所述的系统,其中,DFP数字是单精度。
5.根据权利要求1所述的系统,其中,DFP数字是双精度。
6.根据权利要求1所述的系统,其中,DFP数字是扩展精度。
7.根据权利要求1所述的系统,其中,至少一个机制只包括用于执行系数压缩的机制。
8.根据权利要求1所述的系统,其中,至少一个机制只包括用于执行指数插入的机制。
9.根据权利要求1所述的系统,至少一个机制包括用于执行系数压缩的机制和用于执行指数插入的机制两种机制。
10.根据权利要求1所述的系统,进一步包括用于基于SBCD数字的系数部分是否为有效BCD数字来设置条件码的机制。
11.一种用于从SBCD转换到DFP的方法,该方法包括:
接收SBCD数字的指数部分和SBCD数字的系数部分的一个或多个,其中,SBCD数字的指数部分是二进制,SBCD数字的系数部分是BCD;
对SBCD数字的系数部分执行系数压缩以创建DFP数字的系数部分以及执行包括将SBCD数字的指数部分插入到DFP数字的指数部分的指数插入中的至少一种,
其中,系数压缩包括使用一个或多个BCD到密集紧缩十进制DPD转换器库将SBCD数字的系数部分从BCD转换为DPD,以及用于将SBCD数字的BCD系数部分的最高有效位插入到DFP数字的组合字段中的机制,以及
其中,插入过程包括将SBCD数字的指数部分的两个最高有效位和SBCD数字的系数部分的最高有效位编码为组合字段,并将SBCD数字的指数部分的剩余位插入到DFP数字的指数部分。
12.根据权利要求11所述的方法,其中,执行过程包括只执行系数压缩。
13.根据权利要求11所述的方法,其中,执行过程包括执行只指数插入。
14.根据权利要求11所述的方法,其中,执行过程包括执行系数压缩和指数插入两种。
15.根据权利要求11所述的方法,其中,编码导致指出DFP数字是否为特殊数字的组合字段。
16.一种用于从比例二进制编码十进制SBCD转换到十进制浮点DFP的系统,该系统包括:
用于接收SBCD数字的指数部分和SBCD数字的系数部分的一个或多个的机制,其中SBCD数字的指数部分是二进制,SBCD数字的系数部分是BCD;以及
用于对SBCD数字的系数部分执行系数压缩以创建DFP数字的系数部分的机制以及用于执行包括将SBCD数字的指数部分插入到DFP数字的指数部分的指数插入的机制中的至少一种机制;其中:
用于执行系数压缩的机制是通过双精度硬件来实现的;
SBCD数字是单精度、双精度或扩展精度;
执行系数压缩包括:
确定在SBCD数字的系数部分中是否有无效BCD位,并响应确定存在无效BCD位的情况,设置条件码;以及
确定SBCD数字是否为特殊数字,并响应确定SBCD数字是特殊数字的情况,设置第二条件码;以及
执行指数插入的过程包括响应SBCD指数包含负值,创建DFP特殊数字。
CN2006101216206A 2005-09-15 2006-08-23 从比例二进制编码十进制转换到十进制浮点的系统和方法 Active CN1933334B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/227,515 2005-09-15
US11/227,515 US7698352B2 (en) 2005-09-15 2005-09-15 System and method for converting from scaled binary coded decimal into decimal floating point

Publications (2)

Publication Number Publication Date
CN1933334A CN1933334A (zh) 2007-03-21
CN1933334B true CN1933334B (zh) 2010-12-08

Family

ID=37856570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101216206A Active CN1933334B (zh) 2005-09-15 2006-08-23 从比例二进制编码十进制转换到十进制浮点的系统和方法

Country Status (2)

Country Link
US (1) US7698352B2 (zh)
CN (1) CN1933334B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007174312A (ja) * 2005-12-22 2007-07-05 Sanyo Electric Co Ltd 符号化回路およびデジタル信号処理回路
US7797360B2 (en) * 2006-04-06 2010-09-14 Sap Ag Sortable floating point numbers
US7991811B2 (en) * 2007-04-17 2011-08-02 International Business Machines Corporation Method and system for optimizing floating point conversion between different bases
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
US8051117B2 (en) 2007-04-26 2011-11-01 International Business Machines Corporation Shift significand of decimal floating point data
US8051118B2 (en) * 2007-04-26 2011-11-01 International Business Machines Corporation Composition of decimal floating point data
US20080270495A1 (en) * 2007-04-26 2008-10-30 International Business Machines Corporation Insert/extract biased exponent of decimal floating point data
US8286061B2 (en) * 2009-05-27 2012-10-09 International Business Machines Corporation Error detection using parity compensation in binary coded decimal and densely packed decimal conversions
WO2013003479A2 (en) 2011-06-30 2013-01-03 Samplify Systems, Inc. Compression of floating-point data
US9335993B2 (en) 2011-12-29 2016-05-10 International Business Machines Corporation Convert from zoned format to decimal floating point format
US9329861B2 (en) * 2011-12-29 2016-05-03 International Business Machines Corporation Convert to zoned format from decimal floating point format
US9104473B2 (en) 2012-03-30 2015-08-11 Altera Corporation Conversion and compression of floating-point and integer data
US9143159B2 (en) 2012-10-04 2015-09-22 Silminds, Inc. DPD/BCD to BID converters
US9134958B2 (en) 2012-10-22 2015-09-15 Silminds, Inc. Bid to BCD/DPD converters
CN110427172A (zh) * 2019-08-01 2019-11-08 龙芯中科(合肥)技术有限公司 浮点数处理方法、装置、设备及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1276563A (zh) * 2000-06-29 2000-12-13 谢建平 将联网的计算机和智能终端的地址统一编制和分配的方法
WO2004104918A2 (en) * 2003-05-20 2004-12-02 Council Of Scientific And Industrial Research Dna based number system and arithmetic
CN1568012A (zh) * 2001-11-27 2005-01-19 三星电子株式会社 用于编码和解码关键字数据的装置和方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3934462A (en) 1974-09-06 1976-01-27 American Hospital Supply Corporation Automatic computing ocular tonometer system
US4075679A (en) 1975-12-08 1978-02-21 Hewlett-Packard Company Programmable calculator
US4429370A (en) 1981-04-23 1984-01-31 Data General Corporation Arithmetic unit for use in a data processing system for computing exponent results and detecting overflow and underflow conditions thereof
US4442498A (en) 1981-04-23 1984-04-10 Josh Rosen Arithmetic unit for use in data processing systems
US4799181A (en) 1986-09-30 1989-01-17 Honeywell Bull Inc. BCD arithmetic using binary arithmetic and logical operations
US4975868A (en) 1989-04-17 1990-12-04 International Business Machines Corporation Floating-point processor having pre-adjusted exponent bias for multiplication and division
US4983966A (en) * 1990-01-26 1991-01-08 Westinghouse Electric Corp. High-speed universal scaler
JP2605916B2 (ja) 1990-03-19 1997-04-30 ヤマハ株式会社 波形信号発生装置
JPH05216620A (ja) 1991-10-31 1993-08-27 Internatl Business Mach Corp <Ibm> 浮動小数点を正規化する方法及び回路
US5481489A (en) 1992-08-31 1996-01-02 Fujitsu Limited Method of and apparatus for discriminating NaN
US5268855A (en) 1992-09-14 1993-12-07 Hewlett-Packard Company Common format for encoding both single and double precision floating point numbers
US5729228A (en) 1995-07-06 1998-03-17 International Business Machines Corp. Parallel compression and decompression using a cooperative dictionary
JPH0962863A (ja) 1995-08-22 1997-03-07 Fujitsu Ltd 3次元画像表示用zソート法及びこれを用いた図形データソート装置
JPH0969781A (ja) 1995-08-31 1997-03-11 Nippon Steel Corp オーディオデータ符号化装置
US5696711A (en) 1995-12-22 1997-12-09 Intel Corporation Apparatus and method for performing variable precision floating point rounding operations
JP3276852B2 (ja) 1996-07-17 2002-04-22 株式会社ミツトヨ 符号変換回路
US6098192A (en) 1997-09-17 2000-08-01 Cirrus Logic, Inc. Cost reduced finite field processor for error correction in computer storage devices
WO2001008001A1 (en) 1999-07-23 2001-02-01 Trustees Of Boston University Integer discrete cosine transform using integer operations
US6369725B1 (en) 2000-09-26 2002-04-09 International Business Machines Corporation Method for binary to decimal conversion
US6898615B2 (en) 2000-07-24 2005-05-24 Matsushita Electric Industrial Co., Ltd. Signal processing unit and signal processing method including using an exponent part and a mantissa part for power generation
US6681237B1 (en) 2000-09-07 2004-01-20 International Business Machines Corporation Exponentiation circuit for graphics adapter
US6745220B1 (en) 2000-11-21 2004-06-01 Matsushita Electric Industrial Co., Ltd. Efficient exponentiation method and apparatus
GB0102154D0 (en) 2001-01-27 2001-03-14 Ibm Decimal to binary coder/decoder
US7330864B2 (en) 2001-03-01 2008-02-12 Microsoft Corporation System and method for using native floating point microprocessor instructions to manipulate 16-bit floating point data representations
US7634599B2 (en) 2001-06-29 2009-12-15 Hewlett-Packard Development Company, Lp. Method for improving inline compression bandwidth for high speed buses
GB0124882D0 (en) 2001-10-17 2001-12-05 Koninkl Philips Electronics Nv Improved variable length decoder
US7546328B2 (en) 2004-08-31 2009-06-09 Wisconsin Alumni Research Foundation Decimal floating-point adder
US7467174B2 (en) 2004-09-23 2008-12-16 Wisconsin Alumni Research Foundation Processing unit having decimal floating-point divider using Newton-Raphson iteration
US7707233B2 (en) 2005-05-19 2010-04-27 Intel Corporation Coverting a number from a first base to a second base

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1276563A (zh) * 2000-06-29 2000-12-13 谢建平 将联网的计算机和智能终端的地址统一编制和分配的方法
CN1568012A (zh) * 2001-11-27 2005-01-19 三星电子株式会社 用于编码和解码关键字数据的装置和方法
WO2004104918A2 (en) * 2003-05-20 2004-12-02 Council Of Scientific And Industrial Research Dna based number system and arithmetic

Also Published As

Publication number Publication date
US7698352B2 (en) 2010-04-13
CN1933334A (zh) 2007-03-21
US20070061388A1 (en) 2007-03-15

Similar Documents

Publication Publication Date Title
CN1933334B (zh) 从比例二进制编码十进制转换到十进制浮点的系统和方法
CN1945981B (zh) 从十进制浮点转换到比例二进制编码十进制的系统和方法
US9690580B2 (en) Decomposition of decimal floating point data
US9804823B2 (en) Shift significand of decimal floating point data
US8195727B2 (en) Convert significand of decimal floating point data from packed decimal format
US7400271B2 (en) Method and apparatus for processing character streams
CN100541422C (zh) 用于执行具有取整和移位的组合型高位乘法的方法和装置
US8468184B2 (en) Extract biased exponent of decimal floating point data
CN102473093A (zh) 对多个通道中的紧缩数据解压缩
MX2014007914A (es) Metodo para convertir de formato zonificado a formato de punto flotante decimal.
CN111124495B (zh) 一种数据处理方法、解码电路及处理器
CN102141903B (zh) 用于16/32位混合指令的对称编码装置与译码装置
US9143159B2 (en) DPD/BCD to BID converters
Schulte et al. Performance evaluation of decimal floating-point arithmetic
KR20210124347A (ko) 앵커 데이터 요소 변환
Janani et al. Power of CLZ instruction in numerical computations
Yixiong et al. Notice of Retraction: A Research and Design of Decimal Floating Multiplier Based on FPGA

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant