一种低成本的单精度初等函数运算加速器的制作方法

文档序号:6399912阅读:354来源:国知局
专利名称:一种低成本的单精度初等函数运算加速器的制作方法
技术领域
本发明涉及一种运算加速器,尤其是一种可以完成多种初等函数运算的加速器,满足单精度浮点数据的精度要求。
背景技术
随着移动设备的迅猛发展,对于移动设备的计算能力也提出了越来越高的要求。而初等函数运算现如今广泛的应用于科学计算,数字信号处理,多媒体图像等领域当中。对于移动设备而言,在满足速度要求的前提下,更注重对于成本的控制。通过硬件实现初等函数的方法主要包括循环迭代法、泰勒级数展开法、分段逼近法等。对于中等程度的精度要求来讲(例如单精度),分段二次逼近法是目前最为有效的方法,且同一种结构能够实现绝大多数的初等函数运算。所谓分段二次逼近法,顾名思义,就是将初等函数曲线在计算范围内等分成η段,每一段都用一个近似的二次多项式曲线进行拟合,在该段中原函数的值就用二次多项式的值代替,使得计算结果逼近真实值。而分段二次逼近法的硬件实现方式,主要由两部分组成。第一部分是通过输入的地址找到查找表中对应分段的二次多项的各次项系数。第二部分则是通过运算模块完成二次多项式的运算,得到最后逼近的结果,一般的设计会用到平方运算器,乘法运算器和加法器,因此具备较大的硬件开销。

发明内容
由于硬件设计对于面积的要求十分苛刻,本发明提出了一种低成本的单精度初等函数运算加速器,利用结构上的复用,有效减少用于计算的硬件面积。本发明解决其技术问题所采用的技术方案为:
一种低成本的单精度初等函数运算加速器,误差可以满足单精度浮点数的要求,主要包含以下两个部分:ROM存储模块作为进行系数查找的查找表,运算模块输出二次多项式的运算结果。所使用的主要运算模块完成的是二次多项式C0+C1X+C2X2的运算,系数CO,Cl和C2值跟据输入的地址从三个查找表输出,在硬件实现运算电路的过程中二次多项式的形式变为C0+(C1+C2X)X,省去了平方运算模块。进一步,由于只需要进行一种运算乘加,可以利用结构的复用来完成,该结构由一个用于进行乘加运算的乘加模块,两个用于选择乘加两次运算时不同的输入值的选择器,一个用于控制运算的控制器和一个用于优化乘法运算结构的Booth编码模块组合。更进一步,控制逻辑需要将第一次乘加的结果回馈上去,作为下次乘加运算的输入。因此控制的任务分为两步,开始时,控制器发出选择信号使得选择器I选通C2,选择器2选通Cl。经过一个时钟周期,得到第一次乘累加结果的寄存输出之后,控制器发出选择信号使得选择器I选通第一次乘累加的结果,选择器2选通CO。最核心的运算单元乘加结构,乘法部分主要将Booth编码后生成的部分积进行相力口,通过华莱士树优化结构,缩短整个运算的延迟。同时将乘加中的加数,作为特殊的一个部分积插入到华莱士的第二层。进一步,由于本发明是针对单精度浮点数据,误差只需要控制在小数点后23位(二进制)。因此加速器的输出值并不需要全精度的加运算结果,对于华莱士树只截取2_3°前部分的数据,可以有效的减少这部分运算电路的面积,所带来的误差可以通过适当增加查找表中的存储系数位宽弥补,所带来的硬件代价相对来说十分小。采用本发明的技术结构,大量的减少了完成二次多项式运算部分带来的硬件开销,有效的节省了成本。


图1是分段二次插值逼近原函数的原理 图2是本发明初等函数运算加速器的整体框 图3是本发明加速器的原理 图4是本发明的乘加模块的华莱士树结构 图5是本发明对部分积数据截取示意图。
具体实施例方式下面结合附图对本发明作进一步描述。参照图f图5,一种低成本的单精度初等函数运算加速器,主要利用分段二次插值法,完成初等函数的逼近,达到单精度浮点数据的精度要求(见图1)。主要由ROM存储模块与二次项式运算电路两大部分组成(见图2)。对于完成特定函数f (X)的加速,首先需要通过输入地址X从ROM存储模块中找到对应的系数值,单精度浮点数输入数据X是其浮点数的尾数部分,总共有23位,高7位输入数据Xl作为分段区间标识选择特定分段中零次项的系数CO,一次项的系数Cl和二次项的系数C2。与此同时,输入数据的后16位经过Booth编码用以优化乘法运算(见图3 )。控制器通过选择器I和选择器2分别选通数据C2和Cl,C2先与Booth编码的数据产生9个部分积,并与Cl 一起构建了简化过的华莱士树(为了节省面积,部分积被截取,见图5),数据从华莱树顶部流到华莱树的底部,最后通过一个全加器得到最后的乘加结果(见图4)。在完成第一次乘加运算C1+C2X之后,控制器通过选择器I和选择器2分别选通第一次乘加后的数据和CO。第一次乘加后的数据和CO以及Booth编码的数据利用相同的电路结构再进行一次乘加运算C0+(C1+C2X)X,由此输出最终的初等函数值,完成整个加速过程。最后的数据的满足单精度浮点数的要求,可以精确到小数点后23位。上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改和改变,都落入本发明的保护范围。
权利要求
1.一种低成本的单精度初等函数运算加速器,包括ROM存储模块以及二次多项式运算模块,其特征在于:所述ROM存储模块包含三个查找表,根据输入的地址数据得到对应的系数;所述二次多项式运算模块,根据输入的数据输出所要求的初等函数的值;所述的二次多项式运算模块通过结构的复用来完成运算,其硬件模块包含一个Booth编码模块,一个乘加模块,两个选择器和一个控制器。
2.如权利要求1所述的一种低成本的单精度初等函数运算加速器,其特征在于:二次多项式运算模块中的控制器通过控制乘加模块,将第一次乘加结果作为第二次乘加运算的输入,控制整个二次多项式运算模块一共完成两次乘加运算,并得到最后的结果。
3.如权利要求1所述的一种低成本的单精度初等函数运算加速器,其特征在于:二次多项式计算模块中的乘加模块有三个输入口,其中两个来自选择器的输出,一个来自Booth编码模块的输出;乘加模块有一个输出口,除了作为最后的输出结果外,还作为第二次乘加的输入之一与其中一个选择器相连。
4.如权利要求1所述的一种低成本的单精度初等函数运算加速器,其特征在于:二次多项式计算模块中的乘加模块,主要的作用是生成部分积,构成华莱士树,进行乘加运算;部分积的数据并不完整,截去了不必要的硬件逻辑,只取了一部分作为乘加运算的硬件结构。
全文摘要
本发明公开了一种低成本的单精度初等函数运算加速器,它是一种能够实现倒数、均方根、均方根倒数、指数、三角函数等多种函数运算的低成本电路结构。加速器首先通过输入的地址找到对应的系数,再通过二次多项式运算模块输出最终的初等函数值,并且本发明在二次多项式运算模块中采用了复用乘累加结构,可以有效的减少运算部分的硬件面积。
文档编号G06F17/10GK103176948SQ20131006744
公开日2013年6月26日 申请日期2013年3月4日 优先权日2013年3月4日
发明者沈海斌, 牛涛, 解志超 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1