CN1933334B - 从比例二进制编码十进制转换到十进制浮点的系统和方法 - Google Patents
从比例二进制编码十进制转换到十进制浮点的系统和方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/02—Conversion 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/04—Conversion 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
商标
是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特殊数字。
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)
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)
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)
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 |
-
2005
- 2005-09-15 US US11/227,515 patent/US7698352B2/en not_active Expired - Fee Related
-
2006
- 2006-08-23 CN CN2006101216206A patent/CN1933334B/zh active Active
Patent Citations (3)
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 |