CN103455305A - 用于浮点加法器的舍入预测方法 - Google Patents
用于浮点加法器的舍入预测方法 Download PDFInfo
- Publication number
- CN103455305A CN103455305A CN2013103797181A CN201310379718A CN103455305A CN 103455305 A CN103455305 A CN 103455305A CN 2013103797181 A CN2013103797181 A CN 2013103797181A CN 201310379718 A CN201310379718 A CN 201310379718A CN 103455305 A CN103455305 A CN 103455305A
- Authority
- CN
- China
- Prior art keywords
- mantissa
- carry
- result
- signal
- sgn
- 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.)
- Granted
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种可以改进加法器性能的用于浮点加法器的舍入预测方法。利用该方法实现的舍入预测单元同加法器的尾数加法器并行工作,产生包含舍入信息的规格化移位控制信号和尾数调整控制信号。后序单元利用规格化移位控制信号对尾数和与指数进行调整,可以得到包含舍入进位信息的规格化结果;再利用尾数调整控制信号对移位后的尾数进行调整,即可得到加法器最终结果。因此,采用此种预测单元的加法器,成功的将“符号确定”和“舍入”操作归入“规格化”操作中,减少加法器中的两级“消耗时间”的操作。该单元的面积以及关键路径延迟并不随着其所处理的操作数精度的增大而增加,因此它特别适用于高精度的加法器以及通过超大规模集成电路实现。
Description
【技术领域】
本发明涉及一种舍入预测方法,具体涉及一种用于浮点加法器的舍入预测方法。
【背景技术】
文献“G.Dimitrakopoulos,K.Galanopoulos,C.Mavrokefalidis,D.Nikolos,Low-power leading-zero counting and anticipation logic for high-speed floating point units,Very Large Scale Integration (VLSI)Systems,IEEE Transactions on,July2008,Volume16,Issue7,pp.837-850.”所涉及的前导0、1预测单元是当今广泛用于提高浮点加法器性能的计算单元。使用该单元的浮点加法器,在实现在计算尾数加法的同时,不必等待尾数加法的计算结果,直接通过对两个操作数尾数值的处理来预测前导0、1的个数,从而将前导0、1检查延时从浮点加法器的关键路径延时中移除。即将“规格化”步骤中的部分操作与尾数加法并行处理,实现对浮点加法器整体性能的提升。
文献“Jun Xu,Hong Wang,Desynchronize A Legacy Floating-Point Adder With Operand-Dependant Delay Elements,Circuits and Systems(ISCAS),IEEE International Symposium on,2011,pp.1427-1430.”为我们介绍了一种双路浮点加法算法。采用此种算法的浮点加法器,其数据通路被分成“CLOSE”和“FAR”两条,每一条通路的关键路径上都只包含一个复杂的右移对位移位单元或者左移规格化移位单元。加法器根据两个浮点数的不同情况在两个通路的结果中进行选择,并计算出浮点加法的 最终结果。
不难看出,以上两种流行的对浮点加法器算法的改进方法中,都是采用了附加计算单元,通过并行计算来缩短浮点加法器的关键路径延时,但是其计算过程非常复杂,而且随着计算精度的提升,其单元面积,功耗,延迟都存在显著增大。
【发明内容】
本发明提供了一种在计算尾数加法的同时,对尾数和进行规格化移位以及相应的指数调整操作进行预测的舍入预测方法。该方法不仅考虑前导0、1在规格化操作过程中的移出,还考虑舍入对尾数和及指数的影响,且其预测过程不依赖加法器输出。利用本发明所提供的舍入预测方法所产生的结果对浮点加法器的尾数和进行规格化处理,可直接得到完成舍入的最终规格化结果。
为达到上述目的,本发明采用的技术方案是:
用于浮点加法器的舍入预测方法,舍入预测单元同加法器的尾数加法器并行工作,产生包含舍入进位信息的规格化移位控制信号和尾数调整控制信号,利用规格化移位控制信号对尾数和与指数进行调整,得到包含舍入进位信息的规格化结果,利用尾数调整控制信号对移位后的尾数进行调整,得到加法器的最终结果。
所述预测方法包括:(1)求取尾数高位进位;(2)根据尾数高位进位进行舍入进位预测;(3)根据步骤(1)和步骤(2)的结果产生和构造包含舍入进位信息的规格化移位控制信号和尾数调整控制信号。
尾数高位进位采用并行与递推算法相结合的方法求取,具体为:
利用并行算法求得c[M-1]和c[M-4],其余尾数高位进位由c[M-1]和c[M-4]递推得到,这里已知,z[0]=0,则:c[M]=g[0]?1:c[M-1], 类似的,c[M-2],c[M-3],由c[M-4]递推得到,则可计算c[M-2],c[M-3]分别为:
c[M-3]=g[3]?1:(c[M-4]&&t[3])
c[M-2]=c_[M-2]?1:(c[M-4]&&t[3]&&t[4])
其中c_[M-2]为加速c[M-2]所构造的中间结果。
所述步骤(2)舍入进位预测的方法为:(2.1)首先根据尾数高位进位判断结果符号sgn;(2.2)确定舍入进位选择信号,使之分别对应结果为正和结果为负的情形;(2.3)根据结果符号sgn以及舍入进位选择信号从舍入进位值中选出舍入进位序列cr[0:1],同理,根据结果符号sgn以及舍入进位选择信号选择尾数高位进位cx;(2.4)根据步骤(2.3)选择的尾数高位进位cx的值判断是否考虑由舍入带来的低位进位cfr对结果的影响;(2.5)判断舍入进位是否可以传递到高位以影响结果。
步骤(2.1)中,根据式sgn=sgn_1?~c[M]:a[N]判断结果符号sgn,其中,sgn_1标记两个操作数是否异号,a[N]为指数较大操作数符号位。
步骤(2.2)中,确定舍入进位选择信号的方法为:
对同号的两个操作数,可直接求出舍入位选择信号c_slctp[0]和c_slctn[0]:c_slctp[0]=sgn_1nor(~rmc[1]),c_slctn[0]=sgn_1nor(~rmc[0]);
当两个操作数异号时,分别求得舍入位选择信号c_slctp[1:3]和c_slctn[1:3]:
其中fzero为前导0预测字段,fone为前导1预测字段;e_p和e_n分别为对应结果为正和结果为负时候的舍入使能信号;则 c_s=sgn?c_slctn:c_slctp确定舍入位选择信号c_s[0:3]。
由舍入带来的低位进位cfr=cx?cr[0]:cr[1],其中:
cx=sgn?((c[M-1]&&c_slctn[0])||(c[M-2]&&c_slctn[1])
||(c[M-3]&&c_slctn[2])||(c[M-4]&&c_slctn[3]))。
:((c[M]&&c_slctp[0])||(c[M-1]&&c_slctp[1])
||(c[M-2]&&c_slctp[2])||(c[M-3]&&c_slctp[3]))
步骤(2.5)的具体方法为:舍入进位是否可以传递到最高位以改变尾数高位进位值,由信号cth表征:cth=tx&&cr[1],其中,tx为预测信号,具体为:
tx=sgn?((t(M-1)n&&c_slctn[0])||(t(M-2)n&&c_slctn[1])||(t(M-3)n&&c_slctn[2])||
(t(M-4)n&&c_slctn[3])):((t(M)p&&c_slctp[1])||(t(M-1)p&&c_slctp[2])||
(t(M-2)p&&c_slctp[3]))
当加法器结果为正时,引入信号t(M-2)p、t(M-1)p和t(M)p来标记舍入进位是否可以传递到高位以改变相应的尾数高位进位;当加法器结果为负时,引入信号t(M-4)n、t(M-3)n,t(M-2)n和t(M-1)n来标记舍入进位是否可以传递到高位以改变相应的尾数高位进位。
步骤(3)中控制信号的产生和构造按照以下步骤进行:
(3.1)规格化控制字段:
构造二进制字符串lout[M+1:0]作为规格化控制字段,使之由一个1和M+1个0组成,其中1的位置为尾数和在规格化移位当中需要移动到最高有效位的那个数位。例如,当lout[0]=1时,尾数和所有有效位全部移动到规格化尾数结果的有效位之外,它左边“0”的个数减去1,即为指数应该减少的值;当其左边没有0时,即lout[M+1]=1时,指数应该加1。
两个操作数异号时,当存在舍入进位时,在求取异号两操作数规格化控制字段时需考虑舍入对前导0、1预测结果纠错信号e_c的影响,得到异号尾数规格化控制纠错信号rr_d。于是异号时,尾数规格化控制序列 lns[M+1:0]可以定义为:
lns[M+1:0]=rr_d?{l,0}:{0,l}
当两个操作数同号时,尾数规格化需考虑是否需要右移1位:同号情况下的尾数规格化控制纠错信号rr_s可由结果符号sgn,尾数高位进位c[M]、c[M-1]以及考虑舍入进位的修正信号rr求得,则同号时,尾数规格化控制序列lss[1:0]可以定义为:
lss[1:0]=rr_s?{1,0}:{0,1}
这里lss只针对两个操作数同号的情况,所以它是同号尾数规格化控制序列的高两位,而其余位置填0即可,则尾数规格化控制序列lout[M+1:0]可求得:
lout[M+1:0]=sgn_1?lns:{lss,M'b0}
(3.2)尾数调整控制字段
若舍入进位为1,则是在尾数进行规格化移位之后,在其最低位上进行加1操作以实现舍入。
步骤(3.2)的实现方法为:构造二进制字符串tgx[M-1:0],使移位后的尾数与tgx[M-1:0]按位异或便可得到尾数舍入后的最终结果;构造tr[M:0],使之对应{T,grs}移入有效位后低位的值;使用c_s从{T,grs}选出tr的值;另外舍入移位情况还与尾数规格化控制信号rr有关,则trx[M-1:0]可由下式计算:
trx[M-1:0]=rr?tr[M:1]:tr[M-1:0]
则可得到tgxa[M-1:0]:
tgxa[0]=cfr
tgxa[i]=&{trx[i-1:0],cfr} (1≤i≤M-1)
当浮点加法器结果为负,且舍入进位改变尾数高位进位时,为保护舍入进位调整之后移入有效位的那位数据,引入ts,则最终的尾数调整字段tgx[M-1:0]可由ts来控制得出:
tgx=ts?(M'b111...110):tgxa。
与现有技术相比,本发明方法至少具有以下优点:舍入预测单元同加法器的尾数加法器并行工作,产生包含舍入信息的规格化移位控制信号和尾数调整控制信号。后序单元利用规格化移位控制信号对尾数和与指数进行调整,可以得到包含舍入进位信息的规格化结果;再利用尾数调整控制信号对移位后的尾数进行调整,即可得到加法器最终结果。因此,采用此种预测单元的加法器,成功的将“符号确定”和“舍入”操作归入“规格化”操作中,减少加法器中的两级“消耗时间”的操作。该单元的面积以及关键路径延迟并不随着其所处理的操作数精度的增大而增加,因此它特别适用于高精度的加法器以及通过超大规模集成电路实现。
【附图说明】
图1-1为传统浮点加法器方法流程图。
图1-2为本发明加法器方法流程图。
【具体实施方式】
下面结合附图对本发明作进一步详细说明。
请参阅图1-2所示,假设两个符合IEEE754标准的N位二进制浮点数a和b为浮点加法器的两个输入操作数,其中包含E位指数和M位尾数。则a和b的符号位分别为a[N-1]和b[N-1],指数部分为a[N-2:N-1-E]和b[N-2:N-1-E],尾数部分为{1,a[M-1:0]}和{1,b[M-1:0]}。对于两个浮点数相加,IEEE754标准规定了四种舍入方法,用一个2位二进制数组rmc[1:0]表征IEEE754标准中规定的浮点加法器的舍入方式,则浮点加法 器动态舍入位取值,舍入取值以及舍入方式之间的关系如表1所示,其中“向-∞”,“向+∞”和“向0”为IEEE754标准中直接舍入的三条舍入规则。
表1
由于本发明涉及的舍入预测算法同浮点加法器尾数加法并行工作,因此本专利说明书只针对两个操作数a和b进入尾数加法器之后的情形进行讨论。用3位二进制字串grs[2:0]记录尾数移出精度范围之外的最高三位作为舍入位。c[M:0]表示尾数加法器相应位置上的进位,s[M:0]表示尾数和。为了实现前导0/1预测,引入六个特征字段:t[0:M],g[0:M],z[0:M],nt[0:M],ng[0:M],nz[0:M]。为了便于处理,该字段采用大端次序,其具体定义如下:
t[i]=ma[M-i]xor mb[M-i]
g[i]=ma[M-i]and mb[M-i] (1)
z[i]=ma[M-i]nor mb[M-i]
nt[i]=ma[M-i]xnor mb[M-i]
ng[i]=ma[M-i]nand mb[M-i] (2)
nz[i]=ma[M-i]or mb[M-i]
其中0≤i≤M。于是前导0预测字段fz[0:M]与前导1预测字段fo[0:M]可定义为:
fz[0:M-1]=nt[0:M-1]&nz[1:M] (3)
fz[M]=t[M]
fo[0:M-1]=nt[0:M-1]&ng[1:M] (4)
fo[M]=nt[M]
fz、fo均采用大端次序。则:
fz1[i]=|fz[0:i] (0≤i≤52) (5)
fo1[i]=|fo[0:i] (0≤i≤52) (6)
1、求取尾数高位进位:
这里尾数高位进位特指那些可能对舍入位有影响的几位尾数高位进位,其中包括c[M:M-4]。
1.1,首先利用并行算法求得尾数高位进位中的c[M-1]和c[M-4],这里已知,z[0]=0,则:
c[M]=g[0]?1:c[M-1] (7)
1.2,c[M-2],c[M-3],由c[M-4]递推得到。递推公式如下:
c[M-(i-1)]=c[M-i]·t[i-1]+g[i-1] (8)
则i=3,i=4时可分别计算c[M-2],c[M-3]:
c[M-3]=g[3]?1:(c[M-4]&&t[3]) (9)
c[M-2]=c_[M-2]?1:(c[M-4]&&t[3]&&t[4]) (10)
其中c_[M-2]为加速c[M-2]所构造的中间结果。
2、舍入进位预测
2.1,定义sgn_1=a[N]^b[N],根据尾数高位进位判断浮点加法器结果的符号sgn为:
sgn=sgn_1?~c[M]:a[N] (11)
2.2,根据浮点加法器结果的符号sgn求舍入进位选择信号c_slctp[0:3]和c_slctn[0:3],使之分别对应结果为正和结果为负的情形。
对同号的两个操作数,c_slctp[0]和c_slctn[0]可定义为:
c_slctp[0]=sgn_1nor(~rmc[1]) (12)
c_slctn[0]=sgn_1nor(~rmc[0]) (13)
当两个操作数异号时,分别求得舍入位选择信号c_slctp[1:3]和c_slctn[1:3]:
其中fzero为前导0预测字段,fone为前导1预测字段;e_p和e_n分别为对应结果为正和结果为负时候的舍入使能信号。此时,由于已经求出sgn,可确定舍入位选择信号c_s[0:3]:
c_s=sgn?c_slctn:c_slctp (20)
2.3,由表3可得正舍入进位取值序列c_rp[0:3]和负舍入进位取值序列c_rn[0:3]。其中,s[0]=ma[0]^mb[0],为最低位尾数和。
表3
根据浮点加法器结果的符号sgn以及舍入进位选择信号c_slctp以及c_slctn选择尾数高位进位cx(尾数高位进位cx即尾数高位进位中真正影响舍入进位的那一个进位):
cx=sgn?((c[M-1]&&c_slctn[0])||(c[M-2]&&c_slctn[1])
||(c[M-3]&&c_slctn[2])||(c[M-4]&&c_slctn[3])) (21)
:((c[M]&&c_slctp[0])||(c[M-1]&&c_slctp[1])
||(c[M-2]&&c_slctp[2])||(c[M-3]&&c_slctp[3]))
同样道理,利用舍入位选择信号在舍入进位取值中选出正负舍入进位序列crp[0:1]和crn[0:1]。根据浮点加法器结果的符号sgn从中选出舍入进位序列cr[0:1]。则舍入进位cfr便可求出:
cfr=cx?cr[0]:cr[1] (22)
2.4,当加法器结果为正时,引入信号t(M-2)p、t(M-1)p和t(M)p来标记舍入进位是否可以传递到高位以改变相应的尾数高位进位,具体地说,当尾数高位进位发生在M-2位时,以信号t(M-2)p标记舍入进位是否可以传递到高位,当尾数高位进位发生在M-1位时,以信号t(M-1)p标记舍入进位是否可以传递到高位,当尾数高位进位发生在M位时,以信号t(M)p标记舍入进位是否可以传递到高位;当加法器结果为负时,引入信号t(M-4)n、t(M-3)n,t(M-2)n和t(M-1)n来标记舍入进位是否可以传递到高位以改变相应的尾数高位进位,具体地说,当尾数高位进位发生在M-4位时,以信号t(M-4)p标记舍入进位是否可以传递到高位,当尾数高位进位发生在M-3位时,以信号t(M-3)p标记舍入进位是否可以传递到高位, 当尾数高位进位发生在M-2位时,以信号t(M-2)p标记舍入进位是否可以传递到高位,当尾数高位进位发生在M-1位时,以信号t(M-1)p标记舍入进位是否可以传递到高位。它们可由特征字段T以及grs按位“与”得到。则可通过舍入位选择和符号预测选出tx:
tx=sgn?((t(M-1)n&&c_slctn[0])||(t(M-2)n&&c_slctn[1])||(t(M-3)n&&c_slctn[2])||
(t(M-4)n&&c_slctn[3])):((t(M)p&&c_slctp[1])||(t(M-1)p&&c_slctp[2])|| (23)
(t(M-2)p&&c_slctp[3]))
舍入进位是否可以传递到特殊位,改变尾数高位进位,进而影响尾数的移位,用信号cth表征:
cth=tx&&cr[1] (24)
则考虑舍入影响的尾数高位进位rrp可计算为:
rrp=cx||cth (25)
于是考虑舍入进位的修正信号rr可由rrp以及预测的结果符号sgn求得。
3,控制信号的产生和构造:
3.1,规格化控制字段:
构造二进制字符串lout[M+1:0]作为规格化控制字段,使之由一个1和M+1个0组成,其中1的位置为尾数和在规格化移位当中需要移动到最高有效位的那个数位。例如,当lout[0]=1时,尾数和所有有效位全部移动到规格化尾数结果的有效位之外,它左边“0”的个数减去1,即为指数应该减少的值;当其左边没有0时,即lout[M+1]=1时,指数应该加1。
其具体构造方法为:
(1)异号尾数规格化控制序列lns[M+1:0]
当两个操作数异号时,sgn_1=1。此时规格化控制字段lns[M+1:0]由前导0、1预测结果通过修正得到(具体修正方法请参见中国专利CN101699390B)。根据尾数最高位进位c[M]可以确定未修正前导0、1预测 字段l[M:0]:
l[0:M]=c[M]?{fz[0],((~fz1[0:M-2])&fz[1:M-1])} (26)
:{0,((~fo1[0:M-1])&fo[1:M])}
把舍入进位信号cfr当做低位进位进行处理,按照中华人民共和国发明专利CN 101699390 B求取前导0、1预测修正信号的方法即可得到异号尾数规格化控制纠错信号rr_d。则异号时,尾数规格化控制序列lns[M+1:0]可以定义为:
lns[M+1:0]=rr_d?{l,0}:{0,l} (27)
(2)同号尾数规格化控制序列lss[1:0]
求出同号情况下的尾数规格化控制纠错信号rr_s=c_s[0]?(sgn^rrp):(sgn?(!c[M-1]):c[M])。则同号时,尾数规格化控制序列lss[1:0]可以定义为:
lss[1:0]=rr_s?{1,0}:{0,1} (28)
即尾数规格化控制序列lout[M+1:0]可求得:
lout[M+1:0]=sgn_1?lns:{lss,M'b0} (29)
4,尾数调整控制字段tgx[M-1:0]
若舍入进位为1,则是在尾数和进行规格化移位之后,在其最低位上进行加1操作以实现舍入。为了实现该操作,构造tgx[M-1:0],使移位后的尾数与tgx[M-1:0]按位异或便可得到尾数和舍入后的最终结果。构造tr[M:0],使之对应{T,grs}移位后低位的值。使用c_s从{T,grs}选出tr的值。另外舍入移位情况还与尾数规格化控制信号rr有关,则trx[M-1:0]可由下式计算:
trx[M-1:0]=rr?tr[M:1]:tr[M-1:0] (30) 则可得到tgxa[M-1:0]:
tgxa[0]=cfr
tgxa[i]=&{trx[i-1:0],cfr} (1≤i≤M-1) (31)
当浮点加法器结果为负,且舍入进位改变尾数高位进位时,为保护舍入进位调整之后移入有效位的那位数据,引入ts。则最终的尾数调整字段tgx[M-1:0]可由ts来控制得出:
tgx=ts?(M'b111...110):tgxa (32)。
Claims (10)
1.用于浮点加法器的舍入预测方法,其特征在于:舍入预测单元同加法器的尾数加法器并行工作,产生包含舍入进位信息的规格化移位控制信号和尾数调整控制信号,利用规格化移位控制信号对尾数和与指数进行调整,得到包含舍入进位信息的规格化结果,利用尾数调整控制信号对移位后的尾数进行调整,得到加法器的最终结果。
2.如权利要求1所述的用于浮点加法器的舍入预测方法,其特征在于:所述预测方法包括:(1)求取尾数高位进位;(2)根据尾数高位进位进行舍入进位预测;(3)根据步骤(1)和步骤(2)的结果产生和构造包含舍入进位信息的规格化移位控制信号和尾数调整控制信号。
3.如权利要求2所述的用于浮点加法器的舍入预测方法,其特征在于:尾数高位进位采用并行与递推算法相结合的方法求取,具体为:
利用并行算法求得c[M-1]和c[M-4],其余尾数高位进位由c[M-1]和c[M-4]递推得到,这里已知,z[0]=0,则:
c[M]=g[0]?1:c[M-1]
类似的,c[M-2],c[M-3],由c[M-4]递推得到,则可计算c[M-2],c[M-3]分别为:
c[M-3]=g[3]?1:(c[M-4]&&t[3])
c[M-2]=c_[M-2]?1:(c[M-4]&&t[3]&&t[4])
其中c_[M-2]为加速c[M-2]所构造的中间结果。
4.如权利要求2所述的用于浮点加法器的舍入预测方法,其特征在于:所述步骤(2)舍入进位预测的方法为:(2.1)首先根据尾数高位进位判断结果符号sgn;(2.2)确定舍入进位选择信号,使之分别对应结果为正和结果为负的情形;(2.3)根据结果符号sgn以及舍入进位选择信号从舍入进位值中选出舍入进位序列cr[0:1],同理,根据结果符号sgn以及舍入进位选择信号选择尾数高位进位cx;(2.4)根据步骤(2.3)选择的尾数高位进位cx的值判断是否考虑由舍入带来的低位进位cfr对结果的影响;(2.5)判断舍入进位是否可以传递到高位以影响结果。
5.如权利要求4所述的用于浮点加法器的舍入预测方法,其特征在于:步骤(2.1)中,根据式sgn=sgn_1?~c[M]:a[N]判断结果符号sgn,其中,sgn_1标记两个操作数是否异号,a[N]为指数较大操作数符号位。
6.如权利要求4所述的用于浮点加法器的舍入预测方法,其特征在于:步骤(2.2)中,确定舍入进位选择信号的方法为:
对同号的两个操作数,可直接求出舍入位选择信号c_slctp[0]和c_slctn[0],使之分别对应结果为正和结果为负的情形:
c_slctp[0]=sgn_1nor(~rmc[1])
c_slctn[0]=sgn_1nor(~rmc[0])
当两个操作数异号时,分别求得舍入位选择信号c_slctp[1:3]和c_slctn[1:3]:
其中fzero为前导0预测字段,fone为前导1预测字段;e_p和e_n分别为对应结果为正和结果为负时候的舍入使能信号,则c_s=sgn?c_slctn:c_slctp,确定舍入位选择信号c_s[0:3]。
7.如权利要求4所述的用于浮点加法器的舍入预测方法,其特征在于:由舍入带来的低位进位:cfr=cx?cr[0]:cr[1],其中:
cx=sgn?((c[M-1]&&c_slctn[0])||(c[M-2]&&c_slctn[1])
||(c[M-3]&&c_slctn[2])||(c[M-4]&&c_slctn[3]))。
:((c[M]&&c_slctp[0])||(c[M-1]&&c_slctp[1])
||(c[M-2]&&c_slctp[2])||(c[M-3]&&c_slctp[3]))
8.如权利要求4所述的用于浮点加法器的舍入预测方法,其特征在于:步骤(2.5)的具体方法为:舍入进位是否可以传递到最高位以改变尾数高位进位值,由信号cth表征:cth=tx&&cr[1],其中,tx为预测信号,具体为:
tx=sgn?((t(M-1)n&&c_slctn[0])||(t(M-2)n&&c_slctn[1])||(t(M-3)n&&c_slctn[2])||
(t(M-4)n&&c_slctn[3])):((t(M)p&&c_slctp[1])||(t(M-1)p&&c_slctp[2])||;
(t(M-2)p&&c_slctp[3]))
当加法器结果为正时,引入信号t(M-2)p、t(M-1)p和t(M)p来标记舍入进位是否可以传递到高位以改变相应的尾数高位进位;当加法器结果为负时,引入信号t(M-4)n、t(M-3)n,t(M-2)n和t(M-1)n来标记舍入进位是否可以传递到高位以改变相应的尾数高位进位。
9.如权利要求2所述的用于浮点加法器的舍入预测方法,其特征在于:步骤(3)中控制信号的产生和构造按照以下步骤进行:
(3.1)规格化控制字段
构造二进制字符串lout[M+1:0]作为规格化控制字段,使之由一个1和M+1个0组成,其中1的位置为尾数和在规格化移位当中需要移动到最高有效位的那个数位,例如,当lout[0]=1时,尾数和所有有效位全部移动到规格化尾数结果的有效位之外,它左边“0”的个数减去1,即为指数应该减少的值;当其左边没有0时,即lout[M+1]=1时,指数应该加1;
两个操作数异号时,当存在舍入进位时,在求取异号两操作数规格化控制字段时需考虑舍入对前导0、1预测结果纠错信号e_c的影响,得到异号尾数规格化控制纠错信号rr_d,于是异号时,尾数规格化控制序列lns[M+1:0]可以定义为:
lns[M+1:0]=rr_d?{l,0}:{0,l}
当两个操作数同号时,尾数规格化需考虑是否需要右移1位:同号情况下的尾数规格化控制纠错信号rr_s可由结果符号sgn,尾数高位进位c[M]、c[M-1]以及考虑舍入进位的修正信号rr求得,则同号时,尾数规格化控制序列lss[1:0]可以定义为:
lss[1:0]=rr_s?{1,0}:{0,1}
这里lss只针对两个操作数同号的情况,所以它是同号尾数规格化控制序列的高两位,而其余位置填0即可,则尾数规格化控制序列lout[M+1:0]可求得:
lout[M+1:0]=sgn_1?lns:{lss,M'b0}
(3.2)尾数调整控制字段
若舍入进位为1,则是在尾数进行规格化移位之后,在其最低位上进行加1操作以实现舍入。
10.如权利要求9所述的用于浮点加法器的舍入预测方法,其特征在于:步骤(3.2)的实现方法为:构造二进制字符串tgx[M-1:0],使移位后的尾数与tgx[M-1:0]按位异或便可得到尾数舍入后的最终结果;构造tr[M:0],使之对应{T,grs}移入有效位后低位的值;使用c_s从{T,grs}选出tr的值;另外舍入移位情况还与尾数规格化控制信号rr有关,则trx[M-1:0]可由下式计算:
trx[M-1:0]=rr?tr[M:1]:tr[M-1:0]
则可得到tgxa[M-1:0]:
tgxa[0]=cfr
tgxa[i]=&{trx[i-1:0],cfr} (1≤i≤M-1)
当浮点加法器结果为负,且舍入进位改变尾数高位进位时,为保护舍入进位调整之后移入有效位的那位数据,引入ts,则最终的尾数调整字段tgx[M-1:0]可由ts来控制得出:
tgx=ts?(M'b111...110):tgxa。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310379718.1A CN103455305B (zh) | 2013-08-27 | 用于浮点加法器的舍入预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310379718.1A CN103455305B (zh) | 2013-08-27 | 用于浮点加法器的舍入预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103455305A true CN103455305A (zh) | 2013-12-18 |
CN103455305B CN103455305B (zh) | 2016-11-30 |
Family
ID=
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106415483A (zh) * | 2014-03-06 | 2017-02-15 | 甲骨文国际公司 | 具有对可变长度数的支持的浮点单元 |
CN106802783A (zh) * | 2017-01-23 | 2017-06-06 | 青岛朗思信息科技有限公司 | 一种小数加法结果圆整方法与装置 |
WO2017185203A1 (zh) * | 2016-04-25 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行多个浮点数相加的装置及方法 |
CN107967132A (zh) * | 2017-11-27 | 2018-04-27 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的加法器和乘法器 |
CN108139885A (zh) * | 2015-10-07 | 2018-06-08 | Arm有限公司 | 浮点数舍入 |
CN109634555A (zh) * | 2018-12-19 | 2019-04-16 | 深圳信息职业技术学院 | 一种基于注入值的浮点加法尾数快速舍入方法 |
CN116643718A (zh) * | 2023-06-16 | 2023-08-25 | 合芯科技有限公司 | 一种流水线结构的浮点融合乘加装置、方法及处理器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080077779A1 (en) * | 2006-09-22 | 2008-03-27 | Ronen Zohar | Performing rounding operations responsive to an instruction |
CN101650642A (zh) * | 2009-09-11 | 2010-02-17 | 杭州中天微系统有限公司 | 基于补码舍入的浮点加法装置 |
CN102004627A (zh) * | 2010-11-01 | 2011-04-06 | 深圳市海思半导体有限公司 | 乘法舍入实现方法和装置 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080077779A1 (en) * | 2006-09-22 | 2008-03-27 | Ronen Zohar | Performing rounding operations responsive to an instruction |
CN101650642A (zh) * | 2009-09-11 | 2010-02-17 | 杭州中天微系统有限公司 | 基于补码舍入的浮点加法装置 |
CN102004627A (zh) * | 2010-11-01 | 2011-04-06 | 深圳市海思半导体有限公司 | 乘法舍入实现方法和装置 |
Non-Patent Citations (4)
Title |
---|
王颖: "高性能CPU中浮点加法器的设计与实现", 《万方学位论文》 * |
陈弦等: "并行浮点加法器架构与核心算法的研究", 《计算机工程与应用》 * |
靳战鹏: "高速浮点加法运算单元的研究与实现", 《万方学位论文》 * |
高正坤: "X处理器的浮点部件设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106415483B (zh) * | 2014-03-06 | 2020-12-29 | 甲骨文国际公司 | 具有对可变长度数的支持的浮点单元 |
CN106415483A (zh) * | 2014-03-06 | 2017-02-15 | 甲骨文国际公司 | 具有对可变长度数的支持的浮点单元 |
CN108139885A (zh) * | 2015-10-07 | 2018-06-08 | Arm有限公司 | 浮点数舍入 |
CN108139885B (zh) * | 2015-10-07 | 2023-04-07 | Arm有限公司 | 浮点数舍入 |
WO2017185203A1 (zh) * | 2016-04-25 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行多个浮点数相加的装置及方法 |
CN106802783A (zh) * | 2017-01-23 | 2017-06-06 | 青岛朗思信息科技有限公司 | 一种小数加法结果圆整方法与装置 |
CN106802783B (zh) * | 2017-01-23 | 2019-04-23 | 青岛专用集成电路设计工程技术研究中心 | 一种小数加法结果圆整方法与装置 |
CN107967132A (zh) * | 2017-11-27 | 2018-04-27 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的加法器和乘法器 |
CN107967132B (zh) * | 2017-11-27 | 2020-07-31 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的加法器和乘法器 |
CN109634555B (zh) * | 2018-12-19 | 2022-11-01 | 深圳信息职业技术学院 | 一种基于注入值的浮点加法尾数快速舍入方法 |
CN109634555A (zh) * | 2018-12-19 | 2019-04-16 | 深圳信息职业技术学院 | 一种基于注入值的浮点加法尾数快速舍入方法 |
CN116643718A (zh) * | 2023-06-16 | 2023-08-25 | 合芯科技有限公司 | 一种流水线结构的浮点融合乘加装置、方法及处理器 |
CN116643718B (zh) * | 2023-06-16 | 2024-02-23 | 合芯科技有限公司 | 一种流水线结构的浮点融合乘加装置、方法及处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101735677B1 (ko) | 부동 소수점의 복합 연산장치 및 그 연산방법 | |
TWI405126B (zh) | 微處理器及其執行指令之方法 | |
CN101263467B (zh) | 浮点规格化和反规格化 | |
CN102629189B (zh) | 基于fpga的流水浮点乘累加方法 | |
CN106126189A (zh) | 微处理器中的方法 | |
CN102566967B (zh) | 一种采用多级流水线结构的高速浮点运算器 | |
JPH07225671A (ja) | 結果正規化機構と動作の方法 | |
US8788561B2 (en) | Arithmetic circuit, arithmetic processing apparatus and method of controlling arithmetic circuit | |
CN106250098A (zh) | 用于在执行浮点运算时控制舍入的装置及方法 | |
CN107305485A (zh) | 一种用于执行多个浮点数相加的装置及方法 | |
CN106970775A (zh) | 一种可重构定浮点通用加法器 | |
CN116643718B (zh) | 一种流水线结构的浮点融合乘加装置、方法及处理器 | |
JPH05216620A (ja) | 浮動小数点を正規化する方法及び回路 | |
WO2017185203A1 (zh) | 一种用于执行多个浮点数相加的装置及方法 | |
US20090300087A1 (en) | Computation processor, information processor, and computing method | |
CN114895871A (zh) | 尾随或前导数字预测器 | |
CN101930354B (zh) | 微处理器及其执行指令的方法 | |
CN103455305A (zh) | 用于浮点加法器的舍入预测方法 | |
US7024439B2 (en) | Leading Zero Anticipatory (LZA) algorithm and logic for high speed arithmetic units | |
JPH09244874A (ja) | 最上位有効ビット位置予測方法 | |
CN103455305B (zh) | 用于浮点加法器的舍入预测方法 | |
US20140059106A1 (en) | Arithmetic circuit for performing division based on restoring division | |
KR101922462B1 (ko) | 데이터 처리장치 및 이진수에 대해 시프트 기능을 수행하는 방법 | |
Zhou et al. | Approximate comparator: Design and analysis | |
US20140059104A1 (en) | Arithmetic circuit for calculating correction value |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161130 Termination date: 20190827 |