一种浮点数乘法的舍入方法及装置的制造方法

文档序号:8318929阅读:485来源:国知局
一种浮点数乘法的舍入方法及装置的制造方法
【技术领域】
[0001] 本发明属于集成电路设计中的浮点乘法运算技术领域,确切地说,属于IEEE 754 标准的浮点乘法的尾数舍入技术领域。
【背景技术】
[0002] 随着数字信号处理技术的不断发展,人们对数据的精确性和处理实时性要求日益 提高。浮点数据运算已经被数字信号处理(DSP)领域广泛采用。
[0003] 浮点乘法器是DSP处理器和高性能计算系统的重要组成部分,有研宄表明,在涉 及浮点的操作中,有31%左右是乘法操作。在以往的设计中,浮点乘法是整个系统的关键路 径所在,主要原因为浮点乘法器进行尾数处理时间较长。
[0004] IEEE 754定义的浮点表示由符号位,带偏移指数部分和尾数部分组成。浮点乘法 可以分为三部分:符号位异或,指数相加与尾数相乘。这三部分运算可以并行计算,并在相 应阶段做出调整。因为在浮点表示中,尾数位宽固定,尾数相乘后的结果须舍弃一部分,对 此,IEEE 754标准定义了四种舍入模式:就近舍入,向零舍入,向正无穷舍入和向负无穷舍 入。在尾数的处理中,何处是临界的舍入点与尾数相乘的结果有关,这也是浮点乘法中最易 出错和最耗时的部分。
[0005] 所以,本发明提出一种适用于IEEE 754标准的单双精度各种舍入模式的快速浮 点乘法舍入装置,以提高浮点乘法器的性能。

【发明内容】

[0006] (一)要解决的技术问题
[0007] 有鉴于此,本发明的主要目的在于提供一种快速浮点乘法舍入装置,通过归纳 IEEE 754的舍入模式和在尾数处理中部分积压缩时提前引入一个与舍入相关的特殊值,简 化后续尾数舍入。
[0008] (二)技术方案
[0009] 本发明提出了一种浮点数乘法的舍入方法,其特征在于,在进行部分积压缩时,弓丨 入预定数据作为部分积参与部分积压缩;所述预定数据根据浮点乘法结果的舍入方式不同 而不同,具体如下取值:
[0010] (1)舍入是向零舍入时,特殊数为0 ;
[0011] (2)舍入是就近取偶舍入时,特殊数为2N1
[0012] (3)舍入是向正无穷舍入时,如果结果的符号位是正,取值为2M-1,否则是0 ;
[0013] (4)舍入是向负无穷舍入时,如果结果的符号位是负,取值为2M-1,否则是0 ;
[0014] 其中,N表示浮点数尾数的长度。
[0015] 本发明还提出了一种浮点数乘法的舍入装置,其特征在于,包括:
[0016] 部分积压缩模块,其在进行部分积压缩时,引入预定数据作为部分积参与部分积 压缩;所述预定数据根据浮点乘法结果的舍入方式不同而不同,具体如下取值:
[0017] (1)舍入是向零舍入时,特殊数为0 ;
[0018] (2)舍入是就近取偶舍入时,特殊数为2N1
[0019] (3)舍入是向正无穷舍入时,如果结果的符号位是正,取值为2M-1,否则是0 ;
[0020] (4)舍入是向负无穷舍入时,如果结果的符号位是负,取值为2M-1,否则是0 ;
[0021] 其中,N表示浮点数尾数的长度。
[0022] (三)有益效果
[0023] 从上述技术方案可以看出,本发明具有以下有益效果:
[0024] 本发明完全适用于IEEE 754单、双精度及扩展精度四种舍入模式的乘法舍入,由 于在部分积压缩阶段提前引入一个与舍入相关的特殊值,简化了后续尾数计算阶段的逻 辑。该特殊值产生的负面影响,如面积、延迟等相比于其带来的性能提高可以忽略不计。实 践证明,采用该装置的浮点乘法器能显著提高性能。
【附图说明】
[0025] 图1是现有技术中12X5行列乘法计算过程示意图;;
[0026] 图2是现有技术中16行部分积利用华莱士树结构压缩为2个部分积过程的示意 图;
[0027] 图3是现有技术中全加器的结构示意图;
[0028] 图4是现有技术中半加器结构示意图;
[0029] 图5是本发明中引入特殊数据后17行部分积利用华莱士树结构压缩为2个部分 积过程的示意图;
[0030] 图6是本发明中浮点数乘法的舍入装置结构示意图;
[0031] 图7是本发明具体实施例中浮点数乘法的舍入装置结构示意图;
【具体实施方式】
[0032] 为使本发明的目的、技术方案和优点更加清楚明白,以下以IEEE 754单精度浮点 乘法器舍入作为具体实施案例,对本发明进一步详细说明。
[0033] 本发明提出了一种针对浮点乘法有效的舍入方法,其包括:
[0034] 在进行部分积压缩时,引入特殊数据作为部分积参与部分积压缩;所述特殊数据 根据浮点乘法结果的舍入方式不同而不同,具体如下取值:
[0035] (1)舍入是向零舍入时,特殊数为0 ;
[0036] (2)舍入是就近取偶舍入时,特殊数为2,
[0037] (3)舍入是向正无穷舍入时,如果结果的符号位是正,取值为2M-1,否则是0 ;
[0038] (4)舍入是向负无穷舍入时,如果结果的符号位是负,取值为2M-1,否则是0 ;
[0039] 其中,N表示浮点数尾数的长度。
[0040] 本发明提出的上述方法能够实现IEEE 754标准定义的四种舍入:就近舍入,向零 舍入,向正无穷舍入和向负无穷舍入,其中的向正无穷舍入和向负无穷舍入在舍入时与结 果的正负有关,可以转换为向零舍入和向无穷舍入进行处理。
[0041] 输入数据可以是规格化数也可以是非规格化数,当输入数据是非规格化数时,可 以通过扩展指数表示范围,转换成规格化数处理。
[0042] 用N表示浮点数尾数总长度,本发明在传统的部分积压缩基础上,引入一个特殊 数据同时参与压缩,获取两个部分积Sum和Carry,这个特殊数的产生、压缩引起的面积、延 迟等代价非常小,与其带来的性能提高相比可以忽略。
[0043] 两个N位的尾数相乘,其中N为自然数,结果至多是2N位,所以中间结果只保留所 需的2N位,超出范围的直接舍去,对最终结果没有影响。并且由于处理的是规格化数,结果 位数从0开始编号,结果的第2N-1位和第2N-2位至少有一位是1。
[0044] 下面就现有技术中的浮点数乘法运算与本发明的浮点数乘法运算进行比较说明。
[0045] 现有技术中,如图1所示,以简单乘法12X5为例,介绍部分积及部分积压缩的过 程,其进行行列乘法的过程中,先生成4项每项4位的部分积,然后对这些部分积适当移位 对齐后求和,可并行进行压缩得到两个结果Sum和Carry,然后对Sum和Carry进行求和, 得到最终结果。数据压缩过程为:第一行部分积1100、第二行部分积〇〇〇〇、第三行部分积 1100对齐后进行3 : 2压缩,得到部分积000100和11100,与第四行部分积进行对齐后压 缩,得到Sum和Carry :0000100和011100,将此两个数进行对齐后相加,得到最终的计算结 果00111100,以上部分积压缩过程中所述位宽不等长,在实际运算中会根据具体算法对位 宽进行处理,比如补0操作。
[0046] 以上所述部分积压缩过程可以通过多种形式完成,比如华莱士树压缩,以16行部 分积压缩为2个部分积为例,示意如图2所示。
[0047] 华莱士树压缩,其并行地对部分积求和而非顺序地求和,为了将16个部分积输入 减少到2个部分积输出,华莱士树需要
【主权项】
1. 一种浮点数乘法的舍入方法,其特征在于,在进行部分积压缩时,引入预定数据作为 部分积参与部分积压缩;所述预定数据根据浮点乘法结果的舍入方式不同而不同,具体如 下取值: (1) 舍入是向零舍入时,特殊数为O ; (2) 舍入是就近取偶舍入时,特殊数为2N1 (3) 舍入是向正无穷舍入时,如果结果的符号位是正,取值为2N4-1,否则是O ; (4) 舍入是向负无穷舍入时,如果结果的符号位是负,取值为2^-1,否则是O ; 其中,N表示浮点数尾数的长度。
2. 如权利要求1所述的方法,其特征在于:所述预定数据作为部分积的一行与其他部 分积同时进行压缩。
3. 如权利要求1或2所述的方法,其特征在于:在引入预定数据参与部分积压缩得到 的部分积压缩结果为两个2N位的和与进位,该方法还包括: 将所述两个2N位的和与进位的高N+1位输入至半加器进行运算,得到两个N位宽的第 一结果和一个1位宽的第二结果; 将所述两个2N位的和与进位的低N-I位输入至加法器进行运算,得到第N-I位的进位 Carry [N-1]、第N-2位的和Round以及第N-3位至第O位的加法结果,并将所述加法结果进 行或操作得到或结果Sticky ; 将所述两个N位宽的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1