CN103176948B - 一种低成本的单精度初等函数运算加速器 - Google Patents
一种低成本的单精度初等函数运算加速器 Download PDFInfo
- Publication number
- CN103176948B CN103176948B CN201310067447.6A CN201310067447A CN103176948B CN 103176948 B CN103176948 B CN 103176948B CN 201310067447 A CN201310067447 A CN 201310067447A CN 103176948 B CN103176948 B CN 103176948B
- Authority
- CN
- China
- Prior art keywords
- multiply
- module
- add
- quadratic polynomial
- computing module
- 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.)
- Expired - Fee Related
Links
- 230000006870 function Effects 0.000 claims description 15
- 238000000034 method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种低成本的单精度初等函数运算加速器,它是一种能够实现倒数、均方根、均方根倒数、指数、三角函数等多种函数运算的低成本电路结构。加速器首先通过输入的地址找到对应的系数,再通过二次多项式运算模块输出最终的初等函数值,并且本发明在二次多项式运算模块中采用了复用乘累加结构,可以有效的减少运算部分的硬件面积。
Description
技术领域
本发明涉及一种运算加速器,尤其是一种可以完成多种初等函数运算的加速器,满足单精度浮点数据的精度要求。
背景技术
随着移动设备的迅猛发展,对于移动设备的计算能力也提出了越来越高的要求。而初等函数运算现如今广泛的应用于科学计算,数字信号处理,多媒体图像等领域当中。对于移动设备而言,在满足速度要求的前提下,更注重对于成本的控制。
通过硬件实现初等函数的方法主要包括循环迭代法、泰勒级数展开法、分段逼近法等。对于中等程度的精度要求来讲(例如单精度),分段二次逼近法是目前最为有效的方法,且同一种结构能够实现绝大多数的初等函数运算。所谓分段二次逼近法,顾名思义,就是将初等函数曲线在计算范围内等分成n段,每一段都用一个近似的二次多项式曲线进行拟合,在该段中原函数的值就用二次多项式的值代替,使得计算结果逼近真实值。而分段二次逼近法的硬件实现方式,主要由两部分组成。第一部分是通过输入的地址找到查找表中对应分段的二次多项的各次项系数。第二部分则是通过运算模块完成二次多项式的运算,得到最后逼近的结果,一般的设计会用到平方运算器,乘法运算器和加法器,因此具备较大的硬件开销。
发明内容
由于硬件设计对于面积的要求十分苛刻,本发明提出了一种低成本的单精度初等函数运算加速器,利用结构上的复用,有效减少用于计算的硬件面积。
本发明解决其技术问题所采用的技术方案为:
一种低成本的单精度初等函数运算加速器,误差可以满足单精度浮点数的要求,主要包含以下两个部分:ROM存储模块作为进行系数查找的查找表,运算模块输出二次多项式的运算结果。
所使用的主要运算模块完成的是二次多项式C0+C1X+C2X2的运算,系数C0,C1和C2值跟据输入的地址从三个查找表输出,在硬件实现运算电路的过程中二次多项式的形式变为C0+(C1+C2X)X,省去了平方运算模块。
进一步,由于只需要进行一种运算乘加,可以利用结构的复用来完成,该结构由一个用于进行乘加运算的乘加模块,两个用于选择乘加两次运算时不同的输入值的选择器,一个用于控制运算的控制器和一个用于优化乘法运算结构的Booth编码模块组合。
更进一步,控制逻辑需要将第一次乘加的结果回馈上去,作为下次乘加运算的输入。因此控制的任务分为两步,开始时,控制器发出选择信号使得选择器1选通C2,选择器2选通C1。经过一个时钟周期,得到第一次乘累加结果的寄存输出之后,控制器发出选择信号使得选择器1选通第一次乘累加的结果,选择器2选通C0。
最核心的运算单元乘加结构,乘法部分主要将Booth编码后生成的部分积进行相加,通过华莱士树优化结构,缩短整个运算的延迟。同时将乘加中的加数,作为特殊的一个部分积插入到华莱士的第二层。
进一步,由于本发明是针对单精度浮点数据,误差只需要控制在小数点后23位(二进制)。因此加速器的输出值并不需要全精度的加运算结果,对于华莱士树只截取2-30前部分的数据,可以有效的减少这部分运算电路的面积,所带来的误差可以通过适当增加查找表中的存储系数位宽弥补,所带来的硬件代价相对来说十分小。
采用本发明的技术结构,大量的减少了完成二次多项式运算部分带来的硬件开销,有效的节省了成本。
附图说明
图1是分段二次插值逼近原函数的原理图;
图2是本发明初等函数运算加速器的整体框图;
图3是本发明加速器的原理图;
图4是本发明的乘加模块的华莱士树结构图;
图5是本发明对部分积数据截取示意图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图5,一种低成本的单精度初等函数运算加速器,主要利用分段二次插值法,完成初等函数的逼近,达到单精度浮点数据的精度要求(见图1)。主要由ROM存储模块与二次项式运算电路两大部分组成(见图2)。
对于完成特定函数f(X)的加速,首先需要通过输入地址X从ROM存储模块中找到对应的系数值,单精度浮点数输入数据X是其浮点数的尾数部分,总共有23位,高7位输入数据X1作为分段区间标识选择特定分段中零次项的系数C0,一次项的系数C1和二次项的系数C2。与此同时,输入数据的后16位经过Booth编码用以优化乘法运算(见图3)。
控制器通过选择器1和选择器2分别选通数据C2和C1,C2先与Booth编码的数据产生9个部分积,并与C1一起构建了简化过的华莱士树(为了节省面积,部分积被截取,见图5),数据从华莱树顶部流到华莱树的底部,最后通过一个全加器得到最后的乘加结果(见图4)。
在完成第一次乘加运算C1+C2X之后,控制器通过选择器1和选择器2分别选通第一次乘加后的数据和C0。第一次乘加后的数据和C0以及Booth编码的数据利用相同的电路结构再进行一次乘加运算C0+(C1+C2X)X,由此输出最终的初等函数值,完成整个加速过程。最后的数据的满足单精度浮点数的要求,可以精确到小数点后23位。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改和改变,都落入本发明的保护范围。
Claims (1)
1.一种低成本的单精度初等函数运算加速器,包括ROM存储模块以及二次多项式运算模块,其特征在于:所述ROM存储模块包含三个查找表,根据输入的地址数据得到对应的系数;所述二次多项式运算模块,根据输入的数据输出所要求的初等函数的值;所述的二次多项式运算模块通过结构的复用来完成运算,其硬件模块包含一个Booth编码模块,一个乘加模块,两个选择器和一个控制器;
所述的二次多项式运算模块中的控制器通过控制乘加模块,将第一次乘加结果作为第二次乘加运算的输入,控制整个二次多项式运算模块一共完成两次乘加运算,并得到最后的结果;
所述的二次多项式运算模块中的乘加模块有三个输入口,其中两个来自选择器的输出,一个来自Booth编码模块的输出;乘加模块有一个输出口,除了作为最后的输出结果外,还作为第二次乘加的输入之一与其中一个选择器相连;
所述的二次多项式运算模块中的乘加模块,主要的作用是生成部分积,构成华莱士树,进行乘加运算;部分积的数据并不完整,截去了不必要的硬件逻辑,只取了一部分作为乘加运算的硬件结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310067447.6A CN103176948B (zh) | 2013-03-04 | 2013-03-04 | 一种低成本的单精度初等函数运算加速器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310067447.6A CN103176948B (zh) | 2013-03-04 | 2013-03-04 | 一种低成本的单精度初等函数运算加速器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103176948A CN103176948A (zh) | 2013-06-26 |
CN103176948B true CN103176948B (zh) | 2016-06-29 |
Family
ID=48636834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310067447.6A Expired - Fee Related CN103176948B (zh) | 2013-03-04 | 2013-03-04 | 一种低成本的单精度初等函数运算加速器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103176948B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150019604A1 (en) * | 2013-07-10 | 2015-01-15 | Texas Instruments Deutschland Gmbh | Function accelerator |
CN104317550A (zh) * | 2014-09-28 | 2015-01-28 | 中国兵器工业集团第二一四研究所苏州研发中心 | Mems温度补偿运算电路 |
CN105354006B (zh) * | 2015-11-27 | 2017-11-21 | 中国科学院计算技术研究所 | 一种非线性函数的快速运算装置及其方法 |
WO2017185203A1 (zh) * | 2016-04-25 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行多个浮点数相加的装置及方法 |
CN110209375B (zh) * | 2019-05-30 | 2021-03-26 | 浙江大学 | 一种基于radix-4编码和差分权重存储的乘累加电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63240626A (ja) * | 1987-03-27 | 1988-10-06 | Nec Corp | 関数演算器 |
EP0441121A2 (en) * | 1990-01-08 | 1991-08-14 | Nec Corporation | Arithmetic operation apparatus for elementary function |
RU2136041C1 (ru) * | 1996-06-04 | 1999-08-27 | Муромский институт Владимирского государственного технического университета | Устройство для вычисления элементарных функций таблично-алгоритмическим методом |
CN101449239A (zh) * | 2006-05-25 | 2009-06-03 | 高通股份有限公司 | 具有算术及初等函数单元的图形处理器 |
-
2013
- 2013-03-04 CN CN201310067447.6A patent/CN103176948B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63240626A (ja) * | 1987-03-27 | 1988-10-06 | Nec Corp | 関数演算器 |
EP0441121A2 (en) * | 1990-01-08 | 1991-08-14 | Nec Corporation | Arithmetic operation apparatus for elementary function |
RU2136041C1 (ru) * | 1996-06-04 | 1999-08-27 | Муромский институт Владимирского государственного технического университета | Устройство для вычисления элементарных функций таблично-алгоритмическим методом |
CN101449239A (zh) * | 2006-05-25 | 2009-06-03 | 高通股份有限公司 | 具有算术及初等函数单元的图形处理器 |
Non-Patent Citations (4)
Title |
---|
Algorithms and Architectures for Elementary Function Computation;Pineiro J.A.;《PhD Dissertation, Department of Electronics and Computation, University of Santiago de Compostela》;20031231;27-31,57-79 * |
An improved Micro-Architecture for Function Approximation Using Piecewise Quadratic Interpolation;Shai Erez,et al.,;《IEEE TRANSACTION ON COMPUTERS》;20081231;422-426 * |
Fast Evaluation of the Elementary Functions in Single Precision;W.F. WONG,et al.,;《IEEE TRANSACTIONS ON COMPUTERS》;19950331;第44卷(第3期);453-457 * |
基于硬件的二阶插值单精度函数近似;梁政等;《微电子与计算机》;20020930(第9期);28-30 * |
Also Published As
Publication number | Publication date |
---|---|
CN103176948A (zh) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103176948B (zh) | 一种低成本的单精度初等函数运算加速器 | |
CN103176767B (zh) | 一种低功耗高吞吐的浮点数乘累加单元的实现方法 | |
US3648038A (en) | Apparatus and method for obtaining the reciprocal of a number and the quotient of two numbers | |
CN106126189A (zh) | 微处理器中的方法 | |
CN104375802A (zh) | 一种乘除法器及运算方法 | |
CN107305485A (zh) | 一种用于执行多个浮点数相加的装置及方法 | |
CN105183425B (zh) | 一种具有高精度低复杂度特性的固定位宽乘法器 | |
CN103135960A (zh) | 一种基于fpga的集成浮点运算器的设计方法 | |
CN105426156A (zh) | 一种高性能非精确乘法器及其应用方法 | |
Malík | High throughput floating point exponential function implemented in FPGA | |
CN110187866A (zh) | 一种基于双曲cordic的对数乘法计算系统及方法 | |
CN102253822B (zh) | 一种模(2^n-3)乘法器 | |
CN103955585A (zh) | 一种适用于低功耗容错电路的fir滤波器结构 | |
CN111984226A (zh) | 一种基于双曲cordic的立方根求解装置及求解方法 | |
CN116933840A (zh) | 支持可变指数位宽的多精度Posit编解码运算装置及方法 | |
Daud et al. | Hybrid modified booth encoded algorithm-carry save adder fast multiplier | |
Buddhe et al. | Design and verification of dadda algorithm based binary floating point multiplier | |
Nandal et al. | Booth multiplier using reversible logic with low power and reduced logical complexity | |
CN104238992A (zh) | 一种高性能非精确浮点加法器及其应用方法 | |
Fathi et al. | Ultra high speed modified booth encoding architecture for high speed parallel accumulations | |
CN103699729B (zh) | 模乘法器 | |
CN204143432U (zh) | 一种乘除法器 | |
CN111506293B (zh) | 一种基于srt算法的高基除法器电路 | |
Ortiz et al. | A study on the design of floating-point functions in FPGAs | |
Lastras et al. | A logarithmic approach to energy-efficient GPU arithmetic for mobile devices |
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 |
Granted publication date: 20160629 Termination date: 20190304 |
|
CF01 | Termination of patent right due to non-payment of annual fee |