一种基于注入值的浮点加法尾数快速舍入方法与流程

文档序号:17441008发布日期:2019-04-17 04:45阅读:998来源:国知局
一种基于注入值的浮点加法尾数快速舍入方法与流程

本发明涉及浮点加法尾数快速舍入方法,尤其涉及一种基于注入值的浮点加法尾数快速舍入方法。



背景技术:

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,不需要使用两个整数加法器;将传统舍入算法中两个串行加法器减小成了一个加法器,极大地减小了尾数求和并舍入过程的延时,提高了浮点加法器的运算速度。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1