CN109634555B - 一种基于注入值的浮点加法尾数快速舍入方法 - Google Patents

一种基于注入值的浮点加法尾数快速舍入方法 Download PDF

Info

Publication number
CN109634555B
CN109634555B CN201811559099.3A CN201811559099A CN109634555B CN 109634555 B CN109634555 B CN 109634555B CN 201811559099 A CN201811559099 A CN 201811559099A CN 109634555 B CN109634555 B CN 109634555B
Authority
CN
China
Prior art keywords
bit
rounding
mantissas
mantissa
value
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
CN201811559099.3A
Other languages
English (en)
Other versions
CN109634555A (zh
Inventor
刘明
高波
周小明
杨欣斌
周彦兵
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.)
Shenzhen Institute of Information Technology
Original Assignee
Shenzhen Institute of Information Technology
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 Shenzhen Institute of Information Technology filed Critical Shenzhen Institute of Information Technology
Priority to CN201811559099.3A priority Critical patent/CN109634555B/zh
Publication of CN109634555A publication Critical patent/CN109634555A/zh
Application granted granted Critical
Publication of CN109634555B publication Critical patent/CN109634555B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49952Sticky bit

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供了一种基于注入值的浮点加法尾数快速舍入方法,包括以下步骤:步骤A1:基于注入值的舍入算法,在浮点数的尾数相加时,在有效尾数相加的过程中,于最低位L位上预先加上一个1,提前算出尾数有效位的和的最低位L为1时的结果;步骤A2:尾数求和使用并行前缀加法器PPA,同时计算出两个有效尾数的和a+b以及加了注入值1的和a+b+1,之后根据最低位L和保护位G、舍入位R、粘滞位S的值从a+b、a+b+1中选择正确的舍入值,a、b分别是两个浮点数移位后的有效尾数。本发明的有益效果是:克服了传统浮点算术运算中尾数的计算舍入延时大的缺点,非常适合高速算术运算单元的实现。

Description

一种基于注入值的浮点加法尾数快速舍入方法
技术领域
本发明涉及浮点加法尾数快速舍入方法,尤其涉及一种基于注入值的浮点加法尾数快速舍入方法。
背景技术
20世纪80年代之前,由于晶体管尺寸较大,单片芯片上无法集成较多的晶体管,所以很多算术计算都是通过算法优化后,转化为整数或定点数来实现。因为整数或定点数需要的晶体管数目较少,功耗小,所以可以在单个芯片上集成一定数量的整数算术单元。因此,学术界和工程上对整数和定点数的算术运算研究的较多,提出了很多较好的算法和结构。相比于浮点数,整数或定点数可以表示的范围非常小,同时,精度不够。复杂的算法经过整数化或定点化后,多出的精度必须舍去,所以导致各种算法的计算结果累计误差很大。
随着集成电路工艺的发展,晶体管的尺寸越来越小,面积呈现几何式的下降,单个芯片上可以集成更多的晶体管,可以实现更加具有复杂功能的算术运算单元,因此浮点运算应运而生,各种浮点算术单元的算法和结构被提出。在工程方面,数字信号处理器DSP和CPU、GPU等开始集成浮点算术单元。
目前,使用最广泛的浮点算术单元有浮点加法器、浮点乘法器、浮点除法器和浮点开平凡单元,一些高级的DSP芯片中甚至包含了浮点余弦、浮点正弦、浮点正切、浮点余切等算术单元。由于浮点数的尾数在运算过程中,会产生多于标准定义的位宽,所以必须对尾数的中间计算结果进行舍入处理。舍入过程一般是将尾数的中间计算结果按照标准定义的规则,在有效尾数的最低位L位上加上一个舍入进位。对于计算机而言,数字是用二进制表示的,因此,需要在L位上确定是否需要加上舍入进位1。这就需要再利用一个整数加法器来完成舍入过程,从而导致了结算过程的增加,反映在电路上,就是增加了电路的延时和增大了电路的面积。
因此,如何提供一种快速的舍入算法,从而减小整个算术运算中尾数计算的这部分时间,是本领域技术人员所亟待解决的技术问题。
发明内容
为了解决现有技术中的问题,本发明提供了一种基于注入值的浮点加法尾数快速舍入方法。
本发明提供了一种基于注入值的浮点加法尾数快速舍入方法,包括以下步骤:
步骤A1:基于注入值的舍入算法,在浮点数的尾数相加时,在有效尾数相加的过程中,于最低位L位上预先加上一个1,提前算出尾数有效位的和的最低位L为1时的结果;
步骤A2:尾数求和使用并行前缀加法器PPA,同时计算出两个有效尾数的和a+b以及加了注入值1的和a+b+1,之后根据最低位L和保护位G、舍入位R、粘滞位S的值从a+b、a+b+1中选择正确的舍入值,a、b分别是两个浮点数移位后的有效尾数。
作为本发明的进一步改进,步骤A1包括以下步骤:
步骤A101:对绝对值较小的浮点数的尾数进行移位后,根据尾数中每一位的权值分离出保护位G、舍入位R,将其余的所有位进行逻辑或运算求得粘滞位S,以及有效尾数b,有效尾数b的最低位为L;
步骤A102:将绝对值较大的浮点数的尾数a和步骤A101中的有效尾数b求和,同时在二者的L位处加上1,即为了舍入提前注入一个进位值;
步骤A103:由于注入值的权重位于两个有效尾数a、b的L位上,注入值1作为加法器的最低位输入,利用对数超前加法器完成。
作为本发明的进一步改进,步骤A2包括以下步骤:
步骤A201:计算两个有效尾数的和a+b的同时,保留两个有效尾数的和a+b的进位链上的每一位进位c,构成了并行前缀加法器PPA;
步骤A202:由于提前加入了注入值1,并行前缀加法器PPA的结果是a+b+1,将a+b+1的值与进位链进行每一位的异或逻辑运算,得到a+b;
步骤A203:根据GRS的值来选择最终的尾数舍入结果,其中,G是保护位、R是舍入位,S是粘滞位,都代表二进制数,G、R、S只能是0或1,所以G、R、S连起来构成一个三位的二进制数GRS,取值范围是十进制数0~7;100表示二进制数,换算成十进制数为4,如果GRS<100,即GRS的十进制数为0、1、2或3,此时G=0,R=0或1,S=0或1,则选择a+b作为最终尾数计算的舍入结果,如果GRS=100,即G=1,R=0,S=0,且a+b+1的L位为0,则选择a+b+1作为最终尾数计算的舍入结果,如果GRS=100,即G=1,R=0,S=0,且a+b+1的L位为1,则选择a+b作为最终尾数计算的舍入结果,如果GRS>100,即GRS为5、6或7,此时G=1,R=0或1,S=0或1,则选择a+b+1作为最终尾数计算的舍入结果。
本发明的有益效果是:通过上述方案,在不增加电路面积的情况下,实现了尾数计算的快速舍入过程,克服了传统浮点算术运算中尾数的计算舍入延时大的缺点,非常适合高速算术运算单元的实现。
附图说明
图1是本发明一种基于注入值的浮点加法尾数快速舍入方法的注入值1提前作为进位输入加到加法器的最低位的示意图。
图2是本发明一种基于注入值的浮点加法尾数快速舍入方法的并行前缀加法器PPA的原理结构图。
具体实施方式
下面结合附图说明及具体实施方式对本发明作进一步说明。
如图1至图2所示,一种基于注入值的浮点加法尾数快速舍入方法,包括以下步骤:
步骤A1:基于注入值的舍入算法,在浮点数的尾数相加时,在有效尾数相加的过程中,于最低位L位上预先加上一个1,提前算出尾数有效位的和的最低位L为1时的结果;
步骤A2:尾数求和使用并行前缀加法器PPA,同时计算出两个有效尾数的和a+b以及加了注入值1的和a+b+1,之后根据最低位L和保护位G、舍入位R、粘滞位S的值从a+b、a+b+1中选择正确的舍入值。
步骤A1包括以下步骤:
步骤A101:对绝对值较小的浮点数的尾数进行移位后,根据尾数中每一位的权值分离出保护位G、舍入位R,将其余的所有位进行逻辑或运算求得粘滞位S,以及有效尾数b,有效尾数b的最低位为L;
步骤A102:将绝对值较大的浮点数的尾数a和步骤A101中的有效尾数b求和,同时在二者的L位处加上1,即为了舍入提前注入一个进位值;
步骤A103:由于注入值的权重位于两个有效尾数a、b的L位上,注入值1作为加法器的最低位输入,利用对数超前加法器完成。
步骤A2包括以下步骤:
步骤A201:计算两个有效尾数的和a+b的同时,保留两个有效尾数的和a+b的进位链上的每一位进位c,构成了并行前缀加法器PPA;
步骤A202:由于提前加入了注入值1,并行前缀加法器PPA的结果是a+b+1,将a+b+1的值与进位链进行每一位的异或逻辑运算,得到a+b;
步骤A203:根据GRS的值来选择最终的尾数舍入结果,其中,G是保护位、R是舍入位,S是粘滞位,都代表二进制数,G、R、S只能是0或1,所以G、R、S连起来构成一个三位的二进制数GRS,取值范围是十进制数0~7;100表示二进制数,换算成十进制数为4,如果GRS<100,即GRS的十进制数为0、1、2或3,此时G=0,R=0或1,S=0或1,则选择a+b作为最终尾数计算的舍入结果,如果GRS=100,即G=1,R=0,S=0,且a+b+1的L位为0,则选择a+b+1作为最终尾数计算的舍入结果,如果GRS=100,即G=1,R=0,S=0,且a+b+1的L位为1,则选择a+b作为最终尾数计算的舍入结果,如果GRS>100,即GRS为5、6或7,此时G=1,R=0或1,S=0或1,则选择a+b+1作为最终尾数计算的舍入结果。
本发明提供了利用并行前缀加法器(PPA)结合注入值算法来加速浮点加法器尾数求和舍入的优化方案,为了实现该方案,运用了以下技术:
1)在有效尾数的最低位L处注入一个值1,即在将浮点数尾数相加的时候,在其有效尾数的最低位处,加上一个进位输入1;
2)使用并行前缀加法器PPA来同时计算两个尾数的和F,以及F+1,其中,F=a+b,a、b分别是两个浮点数移位后的有效尾数;
3)并行前缀加法器PPA相比于普通加法器,其面积只有稍微的增加,延时不变,可以同时计算出F和F+1;
4)根据F+1的最低位L和被移位尾数的保护位G、舍入位R、粘滞位S来选择正确的尾数计算舍入结果。
图1是注入值1提前作为进位输入加到加法器的最低位,两个浮点数的相加,首先根据指数差δ将绝对值较小的浮点数的尾数右移δ位,将右移后的尾数按照尾数的权重分离出有效尾数b和保护位G(guard)、舍入位R(round)。有效尾数b的最低位为L,其权重为2^-L。将绝对值较大的浮点数的尾数a和b按照整数方法相加,同时在该加法器的最低位L处输入一个进位1,即注入值。将R位之后所有的位进行逻辑或运算,求得粘滞位S(sticky)。加法器采用了并行前缀加法器,该加法器可以同时算出两个数的和F以及F+1。按照IEEE754的标准,结合G、R、S和F的最低位L的值从F、F+1中选出正确的舍入结果。选择过程只需要一个多路选择器MUX即可,PPA的作用就是避免使用串行的两个加法器来完成F和F+1的计算。
图2是并行前缀加法器的的原理结构图,并行前缀加法器PPA可以同时完成两个数的和F以及F+1的计算。计算两个数的和,采用普通的加法器来实现;同时该加法器的进位链c全部输出;将进位链c与F+1进行异或运算,得到F。由于已经在加法器的最低位输入了注入值,所以普通加法器的输出为F+1,与进位链进行异或后得到了F。
本发明提供的一种基于注入值的浮点加法尾数快速舍入方法,为浮点加法的算术运算提供了一种快速尾数计算舍入方法。该算法克服了前面浮点算术运算中尾数计算舍入延时大的缺点,非常适合高速算术运算单元的实现。实验结果表明,该算法在不增加电路面积的情况下,实现了尾数计算的快速舍入过程,相比于传统的舍入算法,该算法将尾数计算并舍入的过程的延时减小了大约1/2,使得浮点加法单元的整体延时减小了大约1/3。
本发明提供的一种基于注入值的浮点加法尾数快速舍入方法,在不增加电路面积的情况下,同时计算两个计算结果,分别是F和F+1,不需要使用两个整数加法器;将传统舍入算法中两个串行加法器减小成了一个加法器,极大地减小了尾数求和并舍入过程的延时,提高了浮点加法器的运算速度。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (1)

1.一种基于注入值的浮点加法尾数快速舍入方法,其特征在于:包括以下步骤:
步骤A1:基于注入值的舍入算法,在浮点数的尾数相加时,在有效尾数相加的过程中,于最低位L位上预先加上一个1,提前算出尾数有效位的和的最低位L为1时的结果;
步骤A2:尾数求和使用并行前缀加法器PPA,同时计算出两个有效尾数的和a+b以及加了注入值1的和a+b+1,之后根据最低位L和保护位G、舍入位R、粘滞位S的值从a+b、a+b+1中选择正确的舍入值,a、b分别是两个浮点数移位后的有效尾数;
步骤A1包括以下步骤:
步骤A101:对绝对值较小的浮点数的尾数进行移位后,根据尾数中每一位的权值分离出保护位G、舍入位R,将其余的所有位进行逻辑或运算求得粘滞位S,以及有效尾数b,有效尾数b的最低位为L;
步骤A102:将绝对值较大的浮点数的尾数a和步骤A101中的有效尾数b求和,同时在二者的L位处加上1,即为了舍入提前注入一个进位值;
步骤A103:由于注入值的权重位于两个有效尾数a、b的L位上,注入值1作为加法器的最低位输入,利用对数超前加法器完成;
步骤A2包括以下步骤:
步骤A201:计算两个有效尾数的和a+b的同时,保留两个有效尾数的和a+b的进位链上的每一位进位c,构成了并行前缀加法器PPA;
步骤A202:由于提前加入了注入值1,并行前缀加法器PPA的结果是a+b+1,将a+b+1的值与进位链进行每一位的异或逻辑运算,得到a+b;
步骤A203:根据GRS的值来选择最终的尾数舍入结果,其中,G是保护位、R是舍入位,S是粘滞位,都代表二进制数,G、R、S只能是0或1,所以G、R、S连起来构成一个三位的二进制数GRS,取值范围是十进制数0~7;100表示二进制数,换算成十进制数为4,如果GRS<100,即GRS的十进制数为0、1、2或3,此时G=0,R=0或1,S=0或1,则选择a+b作为最终尾数计算的舍入结果,如果GRS=100,即G=1,R=0,S=0,且a+b+1的L位为0,则选择a+b+1作为最终尾数计算的舍入结果,如果GRS=100,即G=1,R=0,S=0,且a+b+1的L位为1,则选择a+b作为最终尾数计算的舍入结果,如果GRS>100,即GRS为5、6或7,此时G=1,R=0或1,S=0或1,则选择a+b+1作为最终尾数计算的舍入结果。
CN201811559099.3A 2018-12-19 2018-12-19 一种基于注入值的浮点加法尾数快速舍入方法 Active CN109634555B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811559099.3A CN109634555B (zh) 2018-12-19 2018-12-19 一种基于注入值的浮点加法尾数快速舍入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811559099.3A CN109634555B (zh) 2018-12-19 2018-12-19 一种基于注入值的浮点加法尾数快速舍入方法

Publications (2)

Publication Number Publication Date
CN109634555A CN109634555A (zh) 2019-04-16
CN109634555B true CN109634555B (zh) 2022-11-01

Family

ID=66075520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811559099.3A Active CN109634555B (zh) 2018-12-19 2018-12-19 一种基于注入值的浮点加法尾数快速舍入方法

Country Status (1)

Country Link
CN (1) CN109634555B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150319A (en) * 1991-05-03 1992-09-22 Sun Microsystems, Inc. Circuitry for rounding in a floating point multiplier
CN101178645A (zh) * 2007-12-20 2008-05-14 清华大学 一种并行浮点乘加单元
CN103455305A (zh) * 2013-08-27 2013-12-18 西安交通大学 用于浮点加法器的舍入预测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2530989B (en) * 2014-10-06 2016-08-17 Ibm Decimal and binary floating point rounding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150319A (en) * 1991-05-03 1992-09-22 Sun Microsystems, Inc. Circuitry for rounding in a floating point multiplier
CN101178645A (zh) * 2007-12-20 2008-05-14 清华大学 一种并行浮点乘加单元
CN103455305A (zh) * 2013-08-27 2013-12-18 西安交通大学 用于浮点加法器的舍入预测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
浮点乘法器中的舍入方法研究;刘鸿瑾等;《计算机工程与应用》;20060921(第27期);第20-25页 *

Also Published As

Publication number Publication date
CN109634555A (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
CN107305485B (zh) 一种用于执行多个浮点数相加的装置及方法
KR101735677B1 (ko) 부동 소수점의 복합 연산장치 및 그 연산방법
JP4500358B2 (ja) 演算処理装置および演算処理方法
CN115934030A (zh) 算数逻辑单元、浮点数乘法计算的方法及设备
CN101221490B (zh) 一种具有数据前送结构的浮点乘加单元
US5148386A (en) Adder-subtracter for signed absolute values
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
GB2421327A (en) Calculating the number of digits in a quotient for integer division
US20170293471A1 (en) Arithmetic units and related converters
CN116400883A (zh) 一种可切换精度的浮点乘加器
US20060143260A1 (en) Low-power booth array multiplier with bypass circuits
US20070038693A1 (en) Method and Processor for Performing a Floating-Point Instruction Within a Processor
JP2011118633A (ja) 浮動小数点除算器、及びそれを用いた情報処理装置
CN109634555B (zh) 一种基于注入值的浮点加法尾数快速舍入方法
US9720648B2 (en) Optimized structure for hexadecimal and binary multiplier array
CN110727412B (zh) 一种基于掩码的混合浮点乘法低功耗控制方法及装置
US5150319A (en) Circuitry for rounding in a floating point multiplier
US7127483B2 (en) Method and system of a microprocessor subtraction-division floating point divider
US4956802A (en) Method and apparatus for a parallel carry generation adder
US7330867B2 (en) Method and device for floating-point multiplication, and corresponding computer-program product
US6044391A (en) Method of generating the sticky-bit from the input operands
US20240118868A1 (en) Multiplier block for block floating point and floating point values
US5944773A (en) Floating-point multiplier circuit for generating the sticky-bit from the input operands
US20050065991A1 (en) Method and device for floating-point multiplication, and corresponding computer-program product
CN107533462B (zh) 浮点运算装置以及方法

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
GR01 Patent grant
GR01 Patent grant