[发明专利]一种双精度浮点数除法器的设计方法及除法器有效
申请号: | 201410036165.4 | 申请日: | 2014-01-24 |
公开(公告)号: | CN103809930B | 公开(公告)日: | 2017-05-03 |
发明(设计)人: | 郭炜;崔鲁平;李光赫;魏继增 | 申请(专利权)人: | 天津大学 |
主分类号: | G06F7/535 | 分类号: | G06F7/535;G06F17/50 |
代理公司: | 天津市北洋有限责任专利代理事务所12201 | 代理人: | 杜文茹 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 精度 浮点 法器 设计 方法 | ||
技术领域
本发明涉及一种除法器。特别是涉及一种高性能、低面积开销的双精度浮点数除法器的设计方法及除法器。
背景技术
除法算法主要分为两种:一种是慢速算法,一种是快速算法。慢速算法是一种基于数位迭代的方法,每次迭代产生一位商位,收敛速度为线性收敛。恢复余数法、不恢复余数法及SRT法都属于慢速算法。快速算法通常使用查表法得到一个接近商值的种子值,以乘法作为基本的迭代步骤,每次迭代产生多个商位,收敛速度为对数收敛。Newton-Raphson和Goldschmidt都属于快速算法。
由IEEE-754标准对双精度浮点数的定义得知,一个双精度浮点数占64bit,其中1位符号位,11位指数位,52位尾数位(加上隐含的前导1则为53位)。两双精度浮点数相除得到的结果,尾数部分的取值范围为(0.5,2),因此要确保尾数部分的最终误差ε<2-54,这样才能保证最终的尾数是精确的结果。
高性能双精度浮点除法器的一种广泛被认可的设计方法是先通过二次逼近查表法得到被除数X(以Y/X为例)倒数的种子值Rf,该种子值是1/X的近似值,精度为30bit。得到种子值之后再通过一次Goldschmidt的方法,具体来讲是一次乘法运算和两次乘加运算,得到最终的结果。
在实际的应用中,相比较于乘法和加法来讲除法并不是一种常见的操作,如果用上述方法设计双精度浮点除法器,其面积开销会远大于设计乘法器和加法器所带来的面积开销,分析得知,主要的面积开销在于通过二次逼近法得到的查找表的面积(31Kb),一个53x30乘法器面积,一个53x30的乘加单元面积和56x28的乘加单元的面积。虽然该方法可以实现完全流水,但是由于除法操作的较少使用,使得在实际应用中不能发挥该双精度浮点除法器的性能优势。
发明内容
本发明所要解决的技术问题是,提供一种能够减少双精度浮点除法器的面积开销又满足应用需求的双精度浮点数除法器的设计方法及除法器。
本发明所采用的技术方案是:一种双精度浮点数除法器的设计方法,包括:
第一阶段,采用最小最大二次多项式逼近算法计算倒数函数1/X的种子值Rf,基中,X为除数的53位尾数部分;
第二阶段,基于硬件复用方法的两次Goldschmidt迭代,得到最终精确的结果。
第一阶段包括如下步骤:
1)将53位尾数X被分成三个部分:高位部分X1,中间部分X2和低位部分X3,得到,
X1=[1.x1x2x3...xm1]
X2=[xm1+1........xm2]×2-m1
X3=[xm2+1.........xn]×2-m2
对于倒数函数1/X通过如下公式进行计算,
X-1≈C0+C1X2+C2X22(1)
其中,系数C0,C1,C2通过软件Maple获得,在Maple中通过调用Remez算法来实现最小最大算法,从而得到三个系数C0、C1和C2,并将三个系数C0,C1,C2存入系数查找表;
2)采用高位部分X1进行查表,得到C0、C1和C2的位宽,同时对中间部分X2进行基数为4的Booth编码,以及求中间部分X2的平方值和对所述该平方值进行Booth编码;
3)将用两个部分积产生模块分别产生C1X2和C2X22的部分积与查表得到的C0,采用三级4:2CSA树得到最终种子值的CARRY和SUM项;
4)采用一个超前进位加法器CLA对最终种子值的CARRY和SUM项进行相加,得到输出结果倒数函数1/X的种子值Rf。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410036165.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:使用输入时间信息的随机数生成设备和方法
- 下一篇:信息处理方法和信息处理设备