CN115617307A - 一种资源复用型超越函数运算实现装置 - Google Patents
一种资源复用型超越函数运算实现装置 Download PDFInfo
- Publication number
- CN115617307A CN115617307A CN202211149857.0A CN202211149857A CN115617307A CN 115617307 A CN115617307 A CN 115617307A CN 202211149857 A CN202211149857 A CN 202211149857A CN 115617307 A CN115617307 A CN 115617307A
- Authority
- CN
- China
- Prior art keywords
- function
- module
- selector
- adder
- type
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明属于超越函数运算技术领域,公开了一种资源复用型超越函数运算实现装置,包括预处理模块、查表模块、计算模块和后处理模块;所述预处理模块根据运算函数的类型做相应的数据处理并将处理得到的多个数据给其他三个模块;所述查表模块根据运算函数的类型查找相应的表,得到多项式系数发送给计算模块;所述计算模块将预处理模块给的处理后的数据和查表模块给的系数进行有限次乘法、加法,并将结果发送给后处理模块;所述后处理模块根据运算函数的类型做相应的数据后处理,得到结果并输出。本发明通过复用加/减法器、乘法器等硬件资源,可实现正弦函数、余弦函数、反正切函数、指数函数、对数函数的计算。
Description
技术领域
本发明属于超越函数运算技术领域,尤其涉及一种资源复用型超越函数运算实现装置。
背景技术
现今超越函数的应用范围越来越广泛,在图像和语音处理、科学计算、数字信号处理和实时电机控制等等中包含有大量三角函数、反三角函数、指数、对数的运算。
这些函数在数学上,明显区别于代数函数,无法通过变量的有限次线性运算得到,被称为超越函数。
使用通用的乘法和加法运算单元执行相应的软件算法来完成超越函数运算需要很长运算时间,并且还会占用大量的运算资源。因此,设计专用于实现超越函数的硬件单元在数据密集型以及实时性应用中具有重要意义。例如TI的TMX320系列DSP芯片,其上有一个专门用于实现超越函数的快速计算单元。
在硬件实现超越函数中主要的方法有级数收敛法、查找表法和CORDIC(Coordinate Rotation Digital Computer,坐标旋转数字计算)算法。其中,采用级数收敛不同的超越函数要采用不同的硬件架构实现,在保证高精度时需要进行很多次级数的叠加,这在硬件资源消耗上是非常大的。采用查找表实现超越函数要存储大量的数据,使得硬件消耗也很大。CORDIC算法的优势在于电路面积小,仅用移位寄存器和加法器/减法器就可以实现计算。但其缺点在于,它的收敛速度较慢,通常一轮迭代只能增加一个有效数字。对于单精度浮点运算,CORDIC算法需要较多的时钟周期才能使结果达到单精度浮点所要求的精度。
发明内容
本发明目的在于提供一种资源复用型超越函数运算实现装置,以解决上述的技术问题。
为解决上述技术问题,本发明的一种资源复用型超越函数运算实现装置的具体技术方案如下:
一种资源复用型超越函数运算实现装置,包括预处理模块、查表模块、计算模块和后处理模块;所述预处理模块根据运算函数的类型做相应的数据处理并将处理得到的多个数据给其他三个模块;所述查表模块根据运算函数的类型查找相应的表,得到多项式系数发送给计算模块;所述计算模块将预处理模块给的处理后的数据和查表模块给的系数进行有限次乘法、加法,并将结果发送给后处理模块;所述后处理模块根据运算函数的类型做相应的数据后处理,得到结果并输出。
进一步的,所述预处理模块包括浮点转定点模块、减法器、第一乘法器、反相器、第一选择器、第二选择器、第三选择器、第四选择器和选择逻辑模块;所述浮点转定点模块输出定点数到第一选择器、第二选择器、反相器及选择逻辑模块;所述选择逻辑模块根据定点数的特征来决定第一选择器的输出;所述减法器用于将要进行对数运算的浮点数的阶码exp减去127得到真实的阶码,并将结果输出给第二选择器;所述第二选择器、第三选择器根据运算的函数类型选择相应的乘数给第一乘法器进行运算;所述第四选择器再根据运算的函数类型输出相应的计算地址给查表模块和待计算数给计算模块;所述预处理模块的其他输出连接到后处理模块。
进一步的,对数函数和指数函数预处理级共用第一乘法器。
进一步的,所述查表模块包括正余弦函数表、反正切函数表、指数函数表、对数函数表和第五选择器;所述正余弦函数表、反正切函数表、指数函数表、对数函数表用于查找并输出二项式y=ax2+bx+c的二次项系数a、一次项系数b和零次项系数c;所述第五选择器根据mode码,从五个输出中选择对应当前指定运算的拟合参数,输出给计算模块使用。
进一步的,所述计算模块的包括第六选择器、加/减法器、第二乘法器、第三乘法器、第一加法器和第二加法器;所述第六选择器根据运算的函数类型输出相应的结果到加/减法器;所述第二乘法器进行a×x运算,所述加/减法器得到(a×x)±b结果;所述第三乘法器得到(a×x+b)×x的运算结果,所述第一加法器得到(a×x+b)×x+c的结果,所述第二加法器用于进行一次四舍五入,并将舍入后的数据输出给后处理模块。
进一步的,所述后处理模块包括第七选择器、第八选择器、定点转浮点模块、第三加法器、第四加法器和符号处理逻辑模块;所述第七选择器根据运算的函数类型输出相应的结果到定点转浮点模块;所述定点转浮点模块用于将计算模块输出的计算结果转为浮点数;所述加法器将对数函数运算计算结果加上exp*ln2;所述第四加法器用于将指数函数运算得到的浮点数的阶码加上ln_add;所述符号处理逻辑模块和第四加法器将输出结果给第八选择器,第八选择器根据运算的函数类型将相应的浮点结果输出,得到运算结果。
进一步的,所述装置和浮点运算硬件连接,实现双曲函数运算。
进一步的,所述装置还包括一个浮点加/减法器和一个浮点乘法器,用于实现双曲函数y=sinh(x)、y=cosh(x)及y=atanh(x)的运算。
附图说明
图1为本发明的超越函数运算实现装置硬件架构示意图;
图2为本发明的预处理模块硬件结构示意图;
图3为本发明的查表模块硬件结构示意图;
图4为本发明的计算模块硬件结构示意图;
图5为本发明的后处理模块硬件结构示意图。
具体实施方式
为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种资源复用型超越函数运算实现装置做进一步详细的描述。
如图1所示,本发明的一种资源复用型超越函数运算实现装置,包括预处理模块、查表模块、计算模块和后处理模块。预处理模块根据运算函数的类型做相应的数据处理并将处理得到的多个数据给其他三个模块;查表模块根据运算函数的类型查找相应的表,得到多项式系数发送给计算模块;计算模块将预处理模块给的处理后的数据和查表模块给的系数进行有限次乘法、加法,并将结果发送给后处理模块;后处理模块根据运算函数的类型做相应的数据后处理,得到结果并输出。
三角函数、以e为底数的指数函数和对数运算都是基于查表法的二阶多项式实现的。
基于正弦和余弦函数的周期性,我们可以将y=sin(πx)和y=cos(πx)的输入压缩至[-1,1)范围内。此外,正弦函数是关于原点中心对称的,而余弦函数是关于y对称的,于是可以将输入数的范围进一步压缩到[0,1)范围内。同时正弦函数的图像在[0,1]范围内的图像关于直线x=0.5轴对称,余弦函数的图像在[0,1]范围内的图像关于点(0.5,0)中心对称,最终可以将运算输入压缩至[0,0.5]。
实际应用场景中,反正切函数的输入并不大,一般在-1到1之间,基于反正切函数的奇函数特性,我们将输入范围压缩至[0,1)。
对于指数函数ex,根据公式(其中i为的整数部分,d为的小数部分)可知,我们可以将y=ex,x∈(-∞,+∞)转化为y=2x,x∈[0,1)的运算。根据IEEE754浮点数表示方法,浮点数a×2i等于a的浮点数表示中的阶码值+i。
整个超越函数运算装置的硬件架构图如图1所示,根据各级功能分为预处理模块(Pre)、查表模块(Lut)、计算模块(Calu)和后处理模块(Post)四个模块,分别完成输入预处理、查拟合参数表、根据拟合参数计算函数值、输出处理四步工作。具体计算结构设计上,本发明的资源复用型超越函数运算实现装置采用了定点算法,相比浮点运算器件,定点器件消耗的资源更少。
预处理模块的硬件架构如图2所示,包括浮点转定点模块、减法器、第一乘法器、反相器、第一选择器、第二选择器、第三选择器、第四选择器和选择逻辑模块。浮点转定点模块输出定点数到第一选择器、第二选择器、反相器及选择逻辑模块。选择逻辑模块根据定点数的特征来决定第一选择器的输出(定点数还是取反后的定点数)。减法器用于将要进行对数运算的浮点数的阶码exp减去127得到真实的阶码(IEEE标准浮点数阶码定义),并将结果输出给第二选择器。因为对数函数和指数函数预处理级需要的乘法器可以共用,所以第二选择器、第三选择器根据运算的函数类型选择相应的乘数给第一乘法器进行运算。第四选择器再根据运算的函数类型输出相应的计算地址给查表模块和待计算数给计算模块。同时预处理模块的其他输出如指数函数的整数部分、对数函数的待加数和浮点数输入的符号位连接到后处理模块。
预处理模块的输入为浮点输入值input和mode。预处理模块根据mode值对输入数据做相应的处理:三角函数将输入数转为定点数后再根据三角恒等变换将输入变换到规定的范围[0,0.5)内,最后将sin_data_qn的高7位、低16位输出到查表模块、计算模块;指数函数先将输入转为定点数后经过第一乘法器进行的乘法,再将8位整数部分exp_int、小数部分exp_data_qn的高7位、低16位分别输出到后处理模块、查表模块、计算模块;对数函数取浮点输入的阶码数exp后进行exp*ln2的乘法并将结果ln_add直接输出给后处理模块,将浮点输入的23位尾数ln_data_qn的高7位、低16位分别输出给查表模块、计算模块。其中,对数函数和指数函数预处理级的需要的乘法器可以共用。
查表模块的硬件架构如图3所示,包括预先生成的四张查找表(正余弦函数表、反正切函数表、指数函数表及对数函数表)和第五选择器。查表模块接收预处理模块给的地址后,从预先生成的四张表中查找并输出二项式y=ax2+bx+c的二次项系数a、一次项系数b和零次项系数c。之后根据mode码,从五个输出中选择对应当前指定运算的拟合参数,输出给计算模块使用。
计算模块的硬件架构如图4所示,包括第六选择器、加/减法器、第二乘法器、第三乘法器、第一加法器和第二加法器。计算模块以定点计算的方式依次完成下列计算:第六选择器根据运算的函数类型输出相应的结果到加/减法器;第二乘法器首先进行a×x运算、加/减法器得到(a×x)±b结果(由于正余弦函数拟合系数中二次项系数均小于零,其余函数二次项系数均大于零,因此当进行正弦函数运算时,进行减法操作,当进行其余函数运算时,进行加法操作)、第三乘法器得到(a×x+b)×x的运算结果、第一加法器得到(a×x+b)×x+c的结果。与单独计算每个项再相加即ax2+bx+c相比,节省了一次乘法。最后截取数据时再用第二加法器进行一次四舍五入提高精度,再将舍入后的数据输出给后处理模块。
后处理模块的硬件架构如图5所示,包括第七选择器、第八选择器、定点转浮点模块、第三加法器、第四加法器和符号处理逻辑模块。第七选择器根据运算的函数类型输出相应的结果到定点转浮点模块;定点转浮点模块将计算模块输出的计算结果(如果是对数函数运算,计算结果要先用第三加法器加上exp*ln2)转为浮点数,将得到的浮点数输出给符号处理逻辑或第四加法器(指数函数运算时)。第四加法器用于将指数函数运算得到的浮点数的阶码加上ln_add(相当于乘以2i)。符号处理逻辑模块和第四加法器将输出结果给第八选择器,第八选择器根据运算的函数类型将相应的浮点结果输出,得到运算结果。
后处理模块接收预处理模块给的符号位、预处理模块的计算结果和计算模块的定点计算结果后,后处理模块根据mode码对接收到的数据做最后相应的处理:三角函数将定点结果转为浮点数与符号位结合后输出;指数函数将定点结果转为浮点数后,阶码部分加上预处理模块给的整数部分阶码并与符号位结合后输出;对数函数将定点结果与预处理模块给的exp*ln2相加后,转为浮点数并与符号位结合后输出。
本发明的资源复用型超越函数运算实现装置可以直接实现三角函数(正余弦函数、反正切函数)、指数函数ex和对数函数ln(x)运算。例如,在实现三角函数运算时,步骤如下:首先预处理模块将输入的定点数转为浮点数,再根据三角函数的性质进行范围的转换,选择数据本身或将其取反后的数进行运算和查表。查表模块根据预处理模块输出的地址进行查表,得到系数后输出给计算模块,计算模块将待计算的数和系数进行有限次定点乘法、定价加法运算后将定点结果输出给后处理模块,后处理模块将得到的定点数转为浮点数后再进行符号逻辑处理后得到最终的浮点运算结果。
除此之外,还可以利用该装置和浮点运算硬件连接,实现双曲函数运算。对于双曲函数,可以用该装置实现上述的指数或对数的运算后,进行相应的浮点加/减/乘法后得到相应的运算结果。
根据公式计算双曲反正切函数时,需要先进行1+x和1-x的浮点加/减法,然后用超越函数计算装置计算ln(1+x)和ln(1-x),再对运算结果进行一次浮点加/减法,最后与常数0.5进行一次浮点乘法得到最终结果。
综上所述,通过复用加/减法器、乘法器等硬件资源,本发明的资源复用型超越函数运算实现装置可实现正弦函数y=sin(πx)、余弦函数y=cos(πx)、反正切函数指数函数y=ex、对数函数y=ln(x)的计算。同时,该装置通过增加一个浮点加/减法器和一个浮点乘法器还可实现双曲函数y=sinh(x)、y=cosh(x)及y=atanh(x)的运算。经验证,该超越函数运算实现装置实现各函数的误差均小于2ulp,满足设计的精度要求;在性能方面,在SMIC40nm工艺下,4-cycle的该超越函数运算实现装置的频率可以达到270MHz。
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (9)
1.一种资源复用型超越函数运算实现装置,其特征在于,包括预处理模块、查表模块、计算模块和后处理模块;所述预处理模块根据运算函数的类型做相应的数据处理并将处理得到的多个数据给其他三个模块;所述查表模块根据运算函数的类型查找相应的表,得到多项式系数发送给计算模块;所述计算模块将预处理模块给的处理后的数据和查表模块给的系数进行有限次乘法、加法,并将结果发送给后处理模块;所述后处理模块根据运算函数的类型做相应的数据后处理,得到结果并输出。
2.根据权利要求1所述的资源复用型超越函数运算实现装置,其特征在于,所述预处理模块包括浮点转定点模块、减法器、第一乘法器、反相器、第一选择器、第二选择器、第三选择器、第四选择器和选择逻辑模块;所述浮点转定点模块输出定点数到第一选择器、第二选择器、反相器及选择逻辑模块;所述选择逻辑模块根据定点数的特征来决定第一选择器的输出;所述减法器用于将要进行对数运算的浮点数的阶码exp减去127得到真实的阶码,并将结果输出给第二选择器;所述第二选择器、第三选择器根据运算的函数类型选择相应的乘数给第一乘法器进行运算;所述第四选择器再根据运算的函数类型输出相应的计算地址给查表模块和待计算数给计算模块;所述预处理模块的其他输出连接到后处理模块。
3.根据权利要求2所述的资源复用型超越函数运算实现装置,其特征在于,对数函数和指数函数预处理级共用第一乘法器。
4.根据权利要求1所述的资源复用型超越函数运算实现装置,其特征在于,所述查表模块包括正余弦函数表、反正切函数表、指数函数表、对数函数表和第五选择器;所述正余弦函数表、反正切函数表、指数函数表、对数函数表用于查找并输出二项式y=ax2+bx+c的二次项系数a、一次项系数b和零次项系数c;所述第五选择器根据mode码,从五个输出中选择对应当前指定运算的拟合参数,输出给计算模块使用。
5.根据权利要求1所述的资源复用型超越函数运算实现装置,其特征在于,所述计算模块的包括第六选择器、加/减法器、第二乘法器、第三乘法器、第一加法器和第二加法器;所述第六选择器根据运算的函数类型输出相应的结果到加/减法器;所述第二乘法器进行a×x运算,所述加/减法器得到(a×x)±b结果;所述第三乘法器得到(a×x+b)×x的运算结果,所述第一加法器得到(a×x+b)×x+c的结果,所述第二加法器用于进行一次四舍五入,并将舍入后的数据输出给后处理模块。
6.根据权利要求1所述的资源复用型超越函数运算实现装置,其特征在于,所述后处理模块包括第七选择器、第八选择器、定点转浮点模块、第三加法器、第四加法器和符号处理逻辑模块;所述第七选择器根据运算的函数类型输出相应的结果到定点转浮点模块;所述定点转浮点模块用于将计算模块输出的计算结果转为浮点数;所述加法器将对数函数运算计算结果加上exp*ln2;所述第四加法器用于将指数函数运算得到的浮点数的阶码加上ln_add;所述符号处理逻辑模块和第四加法器将输出结果给第八选择器,第八选择器根据运算的函数类型将相应的浮点结果输出,得到运算结果。
7.根据权利要求1所述的资源复用型超越函数运算实现装置,其特征在于,所述装置和浮点运算硬件连接,实现双曲函数运算。
9.根据权利要求5所述的资源复用型超越函数运算实现装置,其特征在于,所述装置还包括一个浮点加/减法器和一个浮点乘法器,用于实现双曲函数y=sinh(x)、y=cosh(x)及y=atanh(x)的运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211149857.0A CN115617307A (zh) | 2022-09-21 | 2022-09-21 | 一种资源复用型超越函数运算实现装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211149857.0A CN115617307A (zh) | 2022-09-21 | 2022-09-21 | 一种资源复用型超越函数运算实现装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617307A true CN115617307A (zh) | 2023-01-17 |
Family
ID=84858507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211149857.0A Pending CN115617307A (zh) | 2022-09-21 | 2022-09-21 | 一种资源复用型超越函数运算实现装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617307A (zh) |
-
2022
- 2022-09-21 CN CN202211149857.0A patent/CN115617307A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mohan et al. | Residue Number Systems | |
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
US10949168B2 (en) | Compressing like-magnitude partial products in multiply accumulation | |
CN110888623B (zh) | 数据转换方法、乘法器、加法器、终端设备及存储介质 | |
Linhardt et al. | Digit-by-digit transcendental-function computation | |
Hormigo et al. | Measuring improvement when using HUB formats to implement floating-point systems under round-to-nearest | |
CN110187866B (zh) | 一种基于双曲cordic的对数乘法计算系统及方法 | |
CN115658008A (zh) | 一种资源复用型超越函数运算实现方法 | |
US6182100B1 (en) | Method and system for performing a logarithmic estimation within a data processing system | |
JP4273071B2 (ja) | 除算・開平演算器 | |
CN111984226B (zh) | 一种基于双曲cordic的立方根求解装置及求解方法 | |
JP2822399B2 (ja) | 対数関数演算装置 | |
Kaivani et al. | Improving the speed of decimal division | |
CN115617307A (zh) | 一种资源复用型超越函数运算实现装置 | |
Bajger et al. | Low-error, high-speed approximation of the sigmoid function for large FPGA implementations | |
Lewis | Complex logarithmic number system arithmetic using high-radix redundant CORDIC algorithms | |
CN114860193A (zh) | 一种用于计算Power函数的硬件运算电路及数据处理方法 | |
Strollo et al. | A 430 MHz, 280 mW Processor for the Conversion of Cartesian to Polar Coordinates in 0.25$\mu\hbox {m} $ CMOS | |
CN112783470A (zh) | 一种用于执行浮点对数运算的装置和方法 | |
CN112783471A (zh) | 基于cordic算法的正余弦、反正切函数运算的装置及方法 | |
Vinh et al. | FPGA Implementation of Trigonometric Function Using Loop-Optimized Radix-4 CORDIC | |
Aoki et al. | High-radix CORDIC algorithms for VLSI signal processing | |
Hsiao et al. | Design of a low-cost floating-point programmable vertex processor for mobile graphics applications based on hybrid number system | |
Sharoun | Residue number system (RNS) | |
Low et al. | A fast and compact circuit for integer square root computation based on Mitchell logarithmic method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |