128位浮点对数运算单元硬件设计
发布时间:2020-08-08 14:02
【摘要】:在科学计算、气象预测等应用场景中,使用了大量的浮点超越函数计算。目前的硬件处理器还不包含超越函数基本运算硬件单元,仍然采用软件库函数通过迭代逼近等方式将超越函数转化为近似的代数函数进行求解。该类方法往往需要频繁的调用各种浮点运算的子程序,运算效率低下。此外随着科学计算的发展,对计算精度的要求也不断提高,一般的双精度计算已经无法满足军事、天文等领域的应用要求,128位或更高精度的浮点运算的需求不断被提出。随着集成电路生产工艺水平的不断进步,处理器能够集成的电路门数越来越多,单位门数的功耗与面积呈指数递减,超越函数计算的全硬件化成本不断降低。将超越函数算法硬件化作为CPU的协处理器,将成为提高处理器运算性能的一个新方向。对数运算是超越函数中应用最多的函数之一,本文针对128位的高精度浮点对数运算单元完成了硬件IP设计。论文针对CORDIC(COordinate Rotation DIgital Computer)算法进行了分析和改进,设计了一种新的面向128位浮点对数运算的四步并行分支CORDIC算法。128位浮点数包含113位精度位,论文中提出的改进算法支持每步骤完成4位并行计算。提出的改进算法以双曲坐标系下的CORDIC算法作为基础,设定算法中的y恒为负值,将迭代方向的取值由{-1,1}简化为{0,1},并通过并行计算x,y,z的方式每次进行四步迭代方向的预测。由于和y的取值特点,可以直接根据并行计算结果获得下四次迭代方向,根据预测的迭代方向直接选择并行计算结果中正确一组作为当次迭代输出。以这种方式将四次单步迭代合并成一次四步迭代,解决了原有算法需要大量计算周期的缺陷,提高了运行效率。论文在硬件设计过程中采用模块化的设计方式,依照浮点对数运算的特点,将整个浮点对数运算单元的设计分为四个模块,分别为预处理模块、尾数对数运算模块、指数乘法模块以及加法合并输出模块。预处理模块主要负责进行输入浮点数的解码,将浮点计算转化为定点计算,同时对输入的异常数值进行检测并进行处理。尾数对数运算模块作为对数运算单元的核心模块,将四步并行分支CORDIC算法进行了硬件实现,通过并行预测计算的方式提高运算速度。在指数乘法模块的实现中,采用基-8 Booth乘法和超前进位加法的思想设计了高速的专用乘法器,对输入的指数部分进行相应的计算。最后将以上两个模块的结果输入加法合并模块,通过超前进位加法器进行结果合并,然后进行舍入和浮点规范化的处理,得到最终结果。论文硬件设计使用Verilog语言进行硬件建模,利用Synopsys的设计工具在TSMC 65nm工艺下进行了设计的仿真和综合。在测试过程利用python平台生成了2000万组128位浮点随机数据,经测试,所有的计算结果均能达到113位的有效精度,达到计算精度要求。在500MHz的工作频率下,硬件总面积约为0.72mm~2,硬件功耗约为62.38mW,总计算周期仅为37个时钟周期。综上,论文实现了预期目标,完成了128位高精度浮点对数运算单元的设计。
【学位授予单位】:哈尔滨工业大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP332.2
【图文】:
哈尔滨工业大学工程硕士学位论文量 1旋转了θ度角到达末位置 2,那么得到式(2-,可以得到式(2-3)取cos ,我们得到了最终的旋转表达式(2-4),cos 项的作用仅仅是改变了旋转矢量的模长,并为了简化问题,在只考虑旋转角度的情况下将cos 旋转过程区分,将这种简化的旋转模式称为伪旋转2-5)是伪旋转过程的数学表达式。
哈尔滨工业大学工程硕士学位论文表 4-2 中,将所有的 18 个乘法运算按照计算依赖关系分为 3 层,第一只需要进行移位操作就可以完成。第二层需要依赖第一层的计算结果,则需要第二层的计算结果。在这种方式下,最慢的计算结果也只需要一两次加法就可以完成,总共需要 5 次移位运算以及 14 次加法计算。相乘法单元,大大减少了计算成本。oth 编码乘法本二进制乘法按位进行,按照从最低位到最高位的顺序对乘数的每一位断,设定初始部分积为 0,如果乘数的第 位( 从 0 开始计数)为 1,则将左移 位,得到当次部分积,否则当次部分积为 0。最后将所有的部分积到最终的乘法运算结果。这种思想来自竖式算法,易于实现,是硬件的算法基础。由于其逐位判断的特性,导致在数据位宽增加的时候,部数量会线性增加。最终的加法阵列的计算延时将会非常庞大。oth 编码乘法[49]是一种那快速乘法算法,通过对乘数进行编码,从而达部分积数量的目的。式(4-1)为基-4Booth 算法的基本原理。
【学位授予单位】:哈尔滨工业大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP332.2
【图文】:
哈尔滨工业大学工程硕士学位论文量 1旋转了θ度角到达末位置 2,那么得到式(2-,可以得到式(2-3)取cos ,我们得到了最终的旋转表达式(2-4),cos 项的作用仅仅是改变了旋转矢量的模长,并为了简化问题,在只考虑旋转角度的情况下将cos 旋转过程区分,将这种简化的旋转模式称为伪旋转2-5)是伪旋转过程的数学表达式。
哈尔滨工业大学工程硕士学位论文表 4-2 中,将所有的 18 个乘法运算按照计算依赖关系分为 3 层,第一只需要进行移位操作就可以完成。第二层需要依赖第一层的计算结果,则需要第二层的计算结果。在这种方式下,最慢的计算结果也只需要一两次加法就可以完成,总共需要 5 次移位运算以及 14 次加法计算。相乘法单元,大大减少了计算成本。oth 编码乘法本二进制乘法按位进行,按照从最低位到最高位的顺序对乘数的每一位断,设定初始部分积为 0,如果乘数的第 位( 从 0 开始计数)为 1,则将左移 位,得到当次部分积,否则当次部分积为 0。最后将所有的部分积到最终的乘法运算结果。这种思想来自竖式算法,易于实现,是硬件的算法基础。由于其逐位判断的特性,导致在数据位宽增加的时候,部数量会线性增加。最终的加法阵列的计算延时将会非常庞大。oth 编码乘法[49]是一种那快速乘法算法,通过对乘数进行编码,从而达部分积数量的目的。式(4-1)为基-4Booth 算法的基本原理。
【相似文献】
相关期刊论文 前10条
1 K·C·
本文编号:2785663
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2785663.html