CN114860193A - 一种用于计算Power函数的硬件运算电路及数据处理方法 - Google Patents

一种用于计算Power函数的硬件运算电路及数据处理方法 Download PDF

Info

Publication number
CN114860193A
CN114860193A CN202210429140.5A CN202210429140A CN114860193A CN 114860193 A CN114860193 A CN 114860193A CN 202210429140 A CN202210429140 A CN 202210429140A CN 114860193 A CN114860193 A CN 114860193A
Authority
CN
China
Prior art keywords
multiplier
value
parameter
multiplication
logarithm
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
Application number
CN202210429140.5A
Other languages
English (en)
Inventor
宋宇鲲
程甜甜
韩帅鹏
倪伟
张多利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei University of Technology
Original Assignee
Hefei University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hefei University of Technology filed Critical Hefei University of Technology
Publication of CN114860193A publication Critical patent/CN114860193A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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
    • G06F7/556Logarithmic or exponential functions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本申请公开了一种用于计算Power函数的硬件运算电路及数据处理方法,其中,该硬件运算电路包括:对数计算模块,乘法模块和指数计算模块;对数计算模块被配置为根据第一参数的阶码生成第一中间参数,根据第一参数的尾数,采用查表和对数泰勒级数展开的方式计算第二中间参数,并根据第一中间参数和第二中间参数,生成对数计算结果;乘法模块用于计算对数计算结果与第二参数的乘积,将乘积记作乘法计算结果;指数计算模块被配置为根据乘法模块的乘法计算结果进行指数运算,生成第一参数和第二参数的Power函数运算结果。通过本申请中的技术方案,对Power函数的硬件运算电路进行优化,使其能够提供较高的计算精度、支持更广数据范围、减少资源占用。

Description

一种用于计算Power函数的硬件运算电路及数据处理方法
技术领域
本申请涉及硬件运算电路的技术领域,具体而言,涉及一种用于计算 Power函数的硬件运算电路及一种在工业硬件运算电路中的数据处理方法。
背景技术
Power函数是一种常见的超越函数,表达式为f(x,y)=xy,广泛应用于数字信号处理、人工智能、控制系统和导航系统等多个领域,其中,泰勒级数展开、傅里叶变换等科学计算都能转变成Power函数的综合运算。虽然关于Power函数的软件计算方法已经非常普遍,但是在实际工程应用中,常常需要对Power函数的运算进行专用硬件实现。
例如在相关文献《X-DSP IP核Power函数部件的设计与验证》中,其硬件结构主要分为对数通路、乘法通路以及指数通路。将Power函数通过数学变形转变为
Figure BDA0003609390890000011
利用对数通路计算对数log2 x,再由乘法通路将参数y与对数结果相乘,最后由指数通路计算指数
Figure BDA0003609390890000012
最终得到Power函数结果。通过对输入数据区间进行划分,在每个等分区间内进行多项式逼近,其中,对数部分的逼近多项式采用三次四项式,指数部分采用二次三项式,利用查找表存储多项式系数。
而现有技术中,此类计算Power函数硬件电路通常存在以下问题:
1、由于用查找表存储系数,则存储资源由划分的区间大小和多项式展开的项数决定,通常需要消耗大量的存储资源;
2、由于存储的限制,划分的区间不能无限小,则要满足计算精度就需要较多的多项式展开项数,会带来更大的运算资源消耗和计算延迟。
3、利用切比雪夫算法在不同区间对目标函数逼近的方法,多项式不固定,且乘系数没有硬件技巧可使用,对多项式的实现上可优化空间小,乘加计算过多。
发明内容
本申请的目的在于:对Power函数的硬件运算电路进行优化,使其能够提供较高的计算精度、支持更广数据范围、减少资源占用。
本申请第一方面的技术方案是:提供了一种用于计算Power函数的硬件运算电路,该硬件运算电路包括:对数计算模块,乘法模块和指数计算模块;对数计算模块被配置为根据第一参数x的阶码E生成第一中间参数,根据第一参数x的尾数M,采用查表和对数泰勒级数展开的方式计算第二中间参数,并根据第一中间参数和第二中间参数,生成对数计算结果;乘法模块用于计算对数计算结果与第二参数y的乘积,将乘积记作乘法计算结果w;指数计算模块被配置为根据乘法模块的乘法计算结果w进行指数运算,生成第一参数x和第二参数y的Power函数运算结果,其中,指数运算的底数为2,指数运算的指数为乘法器的乘法计算结果w。
上述任一项技术方案中,进一步地,对数计算模块包括:对数预处理模块,对数泰勒计算单元以及对数后处理模块;对数预处理模块至少包括:对数查表单元,第一乘法器M0,对数组合逻辑单元,第二乘法器M1以及第一加法器A0,其中,对数查表单元被配置为根据第一参数x中尾数M的高q+1位进行第一查表,确定第一查表值e1,并根据第一查表值e1进行第二查表,确定第二查表值ln(f1);第一乘法器M0的输入端连接于对数查表单元,第一乘法器M0的输出端连接于对数组合逻辑单元,第一乘法器M0 被配置为对第一查表值e1进行移位加1的操作结果f1与乘法中间值1.M进行乘法运算,记作第一乘法值c,其中,乘法中间值1.M为1与第一参数x 的尾数M的和值;对数组合逻辑单元被配置为根据第一乘法值c确定第一逻辑值e2以及第二逻辑值f2,其中,对数查表单元还被配置为根据第一逻辑值e2用于通过查表的方式确定第三查表值ln(f2);第二乘法器M1的输入端分别连接于对数组合逻辑单元以及第一乘法器M0的输出端,第二乘法器 M1用于计算第二逻辑值f2与第一乘法值c的乘积,记作第二乘法值k;第一加法器A0的输入端连接于对数查表单元,第一加法器A0被配置为计算第二查表值ln(f1)与第三查表值ln(f2)的和值,记作第一和值;对数泰勒计算单元被配置为根据第二乘法值k计算第二中间参数;对数后处理模块用于根据第一中间参数和第二中间参数,生成对数计算结果。
上述任一项技术方案中,进一步地,对数组合逻辑单元被配置为根据第一乘法值c确定第一逻辑值e2以及第二逻辑值f2,具体包括:步骤A,将第一乘法值c作为输入数据;步骤B,判断输入数据的判断位是否等于1,其中,判断位可以为第一乘法值c中符号位、整数位、符号位和整数位中的一种;若等于1,则在判断位与输入数据的其余位之间增加n个0或者1,以组成输出数据,其中,输出数据为第一逻辑值e2
若不等于1,即为0时,按照判断位、待增加数据、补码数据的形式组成输出数据,其中,待增加数据为n个0或者1,补码数据为输入数据的其余位的补码;步骤C,将第一逻辑值e2作为输入数据,重新执行步骤B,以确定第二逻辑值f2。
上述任一项技术方案中,进一步地,对数后处理模块至少包括:第二加法器A1,第三乘法器M2以及第三加法器A2;第二加法器A1的输入端分别连接于第一加法器A0以及对数泰勒计算单元的输出端,第二加法器A1被配置为计算第一和值与第二中间参数的和值,记作第二和值;第三乘法器M2被配置为计算第二和值与1/ln(2)的乘积,记作第三乘法值;第三加法器A2被配置为计算第一中间参数与第三乘法值的和值,记作对数计算结果。
上述任一项技术方案中,进一步地,硬件运算电路用于计算双精度浮点数,对数泰勒计算单元包括:第一泰勒逻辑单元,第一乘法器组以及第一加法器组;第一泰勒逻辑单元用于根据第二乘法值k,确定第一中间取值 k-1;第一乘法器组包括乘法器M3、乘法器M4、乘法器M5以及乘法器 M6,其中,乘法器M3的两个输入端分别连接于第一泰勒逻辑单元的输出端,乘法器M4的一个输入端连接于第一泰勒逻辑单元的输出端,乘法器 M4的另一个输入端被输入常数1/3,乘法器M5的两个输入端分别连接于乘法器M3的输出端,乘法器M6的一个输入端连接于乘法器M3的输出端,乘法器M6的另一个输入端连接于乘法器M4的输出端;第一加法器组包括加法器A3,加法器A4以及加法器A5,其中,加法器A3的两个输入端分别连接于第一泰勒逻辑单元以及乘法器M3的输出端,加法器A4的两个输入端分别连接于乘法器M5以及乘法器M6的输出端,加法器A5的两个输入端分别连接于加法器A3以及加法器A4的输出端。
上述任一项技术方案中,进一步地,硬件运算电路用于计算单精度浮点数,对数泰勒计算单元包括:第二泰勒逻辑单元,乘法器M7以及加法器 A6;第二泰勒逻辑单元用于根据第二乘法值k,确定第二中间取值k-1;乘法器M7的两个输入端分别连接于第二泰勒逻辑单元的输出端;加法器A6 的一个输入端连接于乘法器M7的输出端,加法器A6的另一个输入端连接于第二泰勒逻辑单元的输出端。
上述任一项技术方案中,进一步地,指数计算模块至少包括:第四乘法器,指数组合逻辑单元,指数泰勒计算模块,第五乘法器以及输出组合逻辑单元;第四乘法器被配置为计算乘法器的乘法计算结果w中的小数部分与ln(2)的乘积,记作第四乘积b;指数组合逻辑单元被配置为根据第四乘积b确定第三逻辑值bl;指数泰勒计算模块被配置为根据第三逻辑值bl计算中间指数值;第五乘法器被配置为计算中间指数值与第四查表值ebm的乘积,记作第五乘积,其中,第四查表值ebm由第四乘积b确定,bm=b-bl;输出组合逻辑单元被配置为根据乘法器的乘法计算结果w中的整数部分与第五乘积,确定第一参数x和第二参数y的Power函数运算结果。
上述任一项技术方案中,进一步地,第一参数x为Power函数的底数,第二参数y为Power函数的指数,第一参数x和第二参数y为64比特浮点型数据。
本申请第二方面的技术方案是:提供了一种基于FPGA的电路板,该电路板中集成有如上述第二方面技术方案中任意一项所述的硬件运算电路及其中的各个模块。
本申请第三方面的技术方案是:提供了一种在工业硬件运算电路中的数据处理方法,该数据处理方法包括:步骤1,根据第一参数x的阶码E 生成第一中间参数,根据第一参数x的尾数M,采用查表和对数泰勒级数展开的方式计算第二中间参数,并根据第一中间参数和第二中间参数,生成对数计算结果;步骤2,计算对数计算结果与第二参数y的乘积,将乘积记作乘法计算结果w;步骤3,根据乘法模块的乘法计算结果w进行指数运算,生成第一参数x和第二参数y的Power函数运算结果,其中,指数运算的底数为2,指数运算的指数为乘法器的乘法计算结果w。
上述任一项技术方案中,进一步地,步骤3具体包括:步骤31,计算乘法器的乘法计算结果w中的小数部分与ln(2)的乘积,记作第四乘积b;步骤32,根据第四乘积b确定第三逻辑值bl;步骤33,根据第三逻辑值bl计算中间指数值;步骤34,计算中间指数值与第四查表值
Figure BDA0003609390890000051
的乘积,记作第五乘积,其中,第四查表值
Figure BDA0003609390890000052
由第四乘积b确定,bm=b-bl;步骤35,根据乘法器的乘法计算结果w中的整数部分与第五乘积,确定第一参数x和第二参数y的Power函数运算结果。
本申请中提到的各个模块可以通过FPGA烧结在电路板中实现,也可以直接在纳米芯片内部集成实现。
本申请的有益效果是:
本申请中的技术方案,通过在硬件运算电路分别设置对数计算模块、乘法模块和指数计算模块,将Power函数拆为对数函数和指数函数实现,利用查找表和泰勒级数展开式相结合的方法进行电路设计,通过数字迭代法和区间划分方法提高计算精度、扩展数据计算范围。该硬件运算电路的硬件资源开销小、计算精度高,支持数据范围广,还可分别计算指数函数和对数函数。
在本申请中的对数计算模块和指数计算模块中,通过对泰勒展开式计算前的预处理,缩小了进入泰勒展开式的数据范围,提高了精度,减少泰勒展开式的项数,进而减少乘加运算,降低延迟、减少运算器的硬件资源消耗,并且根据数据特点和范围设计查找表,减小存储资源。
附图说明
本申请的上述和/或附加方面的优点在结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本申请的一个实施例的用于计算Power函数的硬件运算电路的示意框图;
图2是根据本申请的一个实施例的对数计算模块的示意框图;
图3是根据本申请的一个实施例的第一组合逻辑的实现方式的示意图;
图4是根据本申请的一个实施例的第二组合逻辑的实现方式的示意图;
图5(a)是根据本申请的一个实施例的第一逻辑值e2处理过程的示意图;
图5(b)是根据本申请的一个实施例的第三逻辑值处理过程的示意图;
图5(c)是根据本申请的一个实施例的第一中间取值处理过程的示意图;
图6是根据本申请的一个实施例的第三组合逻辑的实现方式的示意图;
图7(a)是根据本申请的一个实施例的对数计算模块的泰勒级数展开式的结构示意图;
图7(b)是根据本申请的另一个实施例的对数计算模块的泰勒级数展开式的结构示意图;
图8是根据本申请的一个实施例的指数计算模块的示意框图;
图9(a)是根据本申请的一个实施例的指数泰勒计算模块实现的结构示意图;
图9(b)是根据本申请的另一个实施例的指数泰勒计算模块实现的结构示意图;
图10是根据本申请的一个实施例的在工业硬件运算电路中的数据处理方法的示意流程图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互结合。
在下面的描述中,阐述了很多具体细节以便于充分理解本申请,但是,本申请还可以采用其他不同于在此描述的其他方式来实施,因此,本申请的保护范围并不受下面公开的具体实施例的限制。
实施例一:
如图1所示,本实施例提供了一种用于计算Power函数的硬件运算电路,该硬件运算电路包括:对数计算模块100,乘法模块和指数计算模块 200;对数计算模块100被配置为根据第一参数x的阶码E生成第一中间参数,根据第一参数x的尾数M,采用查表和对数泰勒级数展开的方式计算第二中间参数,并根据第一中间参数和第二中间参数,生成对数计算结果;乘法模块用于计算对数计算结果与第二参数y的乘积,将乘积记作乘法计算结果w;指数计算模块200被配置为根据乘法模块的乘法计算结果w进行指数运算,生成第一参数x和第二参数y的Power函数运算结果,其中,指数运算的底数为2,指数运算的指数为乘法器的乘法计算结果w。
本实施例中,第一参数x为Power函数的底数,第二参数y为Power 函数的指数,第一参数x和第二参数y为64比特浮点型数据。
如图2所示,本实施例示出了一种对数计算模块100的实现方式,假定输入x、y为浮点型,x、y属于双精度浮点数表示范围,输出Power函数计算结果也属于双精度浮点数表示范围,且输入x、y和输出均为64比特数据[x63,x62,…x2,x1,x0],输入x、y和输出均为规格化浮点数格式,即[x63]表示符号位S,[x62,x61,…x53,x52]表示阶码E,[x51,x50,…x1,x0]表示尾数M。
进一步的,本实施例中的对数计算模块100包括:对数预处理模块201,对数泰勒计算单元202以及对数后处理模块203;对数预处理模块201至少包括:对数查表单元,第一乘法器M0,对数组合逻辑单元,第二乘法器 M1以及第一加法器A0,其中,对数查表单元被配置为根据第一参数x中尾数M的高q+1位进行第一查表,确定第一查表值e1,并根据第一查表值e1进行第二查表,确定第二查表值ln(f1);第一乘法器M0的输入端连接于对数查表单元,第一乘法器M0的输出端连接于对数组合逻辑单元,第一乘法器M0被配置为对第一查表值e1进行移位加1的操作结果f1与乘法中间值1.M进行乘法运算,记作第一乘法值c,其中,乘法中间值1.M为1与第一参数x的尾数M的和值;对数组合逻辑单元被配置为根据第一乘法值 c确定第一逻辑值e2以及第二逻辑值f2,其中,对数查表单元还被配置为根据第一逻辑值e2用于通过查表的方式确定第三查表值ln(f2);第二乘法器 M1的输入端分别连接于对数组合逻辑单元以及第一乘法器M0的输出端,第二乘法器M1用于计算第二逻辑值f2与第一乘法值c的乘积,记作第二乘法值k;第一加法器A0的输入端连接于对数查表单元,第一加法器A0被配置为计算第二查表值ln(f1)与第三查表值ln(f2)的和值,记作第一和值;
具体的,对数预处理模块201,用于利用数字迭代法对输入的第一参数 x进行预处理,对数预处理模块201的输入为第一参数x,三个输出分别为: k、E-offset和ln(f1)+ln(f2)。
对于第一个输出k,根据第一参数x的浮点数表示形式x=2E-offset×(1.M)的尾数1.M的数据特点,通过对数查表单元中的查找表和“移位+1”操作获取fi,其中,fi是使(1.M)∏fi→1成立的序列。再通过连续乘法使1.M归一化,将归一化后的1.M和fi通过乘法可得到k=1.M×f1×f2
对于第二个输出E-offset,由第一参数x的阶码E通过第一组合逻辑方式得到,第一组合逻辑的实现方式如图3所示,是阶码E的偏置,在双精度浮点数中offset为1023,是一个固定取值。
对于第三个输出ln(f1)+ln(f2),参数e1的求解式子为:
Figure BDA0003609390890000101
r=2q
式中,round()为四舍五入函数,r的取值是64,q为尾数M中的高位。
将提前计算好e1的值存入对数查表单元的查找表中,e1对应表的大小为 128*5bits,其中128为表深度,5为e1的位宽,根据第一参数x的尾数M 中的高位[x51,x50,…x46,x45]作为地址查找得到对应的参数e1;参数f1可以通过参数e1右移位加1得到;提前计算ln(f1)的值存入对数查表单元中的查找表, ln(f1)表大小为32*64bits,其中32为表深度,64为ln(f1)的位宽,根据e1作为地址得到对应的ln(f1);将f1和1.M送入乘法器得到1.M×f1,设定c=1.M×f1,其中1.M是1和x的52位尾数拼接得到的53位数据,c为59位数据。
在上述实施例的一个优选实现方式中,如图4所示,对数组合逻辑单元被配置为根据第一乘法值c,采用第二组合逻辑方式,依次确定第一逻辑值e2以及第二逻辑值f2,其中,第二组合逻辑方式具体包括:
判断输入数据的判断位是否等于1,其中,判断位可以为符号位、整数位、符号位和整数位中的一种;
若等于1,则在判断位与输入数据的其余位之间增加n个0或者1,以组成输出数据;
若不等于1,即为0时,则将输入数据的其余位取补码,并按照判断位、待增加数据、补码数据的形式组成输出数据,其中,待增加数据为n个0 或者1。
具体的,如图5(a)所示,根据第一乘法值c的数值进行第二组合逻辑运算,通过判断和取补得到第一逻辑值e2;第一乘法值c对应图中in,作为输入数据,第一逻辑值e2对应图5(a)中out,作为输出数据,第一乘法值c是正数,符号位为0,根据第一乘法值c的整数位c[58]作为多路选择器的判断位,n=0,N=51,M=46,即当c[58]=1时,e2为{1’b1,c[51:46]},当c[58]=0 时,e2为{1’b0,c[51:46]取补码}。
第二逻辑值f2由第一逻辑值e2进行第二组合逻辑运算,通过移位加1 得到;第一逻辑值e2对应图中的in,第二逻辑值f2对应图中的out,第一逻辑值e2的最高位e2[6]为符号位,根据e2[6]作为多路选择器的判断位,n=6, N=5,M=40,即当e2[6]=0时,第二逻辑值f2为{1’b1,6’b000000,e2[5:0]},当e2[6]=1时,第二逻辑值f2为{1’b0,6’b111111,e2[5:0]取补码}。其中,1’b1 中第一个1表示1位,b表示二进制(h表示十六进制,d表示十进制),第二个1表示二进制数字1;6’b000000同理,表示6位二进制数字”000000”; e2[5:0]表示e2的第0位到第5位,其中低位在右;完整表示f2是一个13 位(1+6+6)的数据,二进制表示为“1000000”和e2的低6位拼接而成。
需要说明的是,上述对数组合逻辑单元可利用Verilog HDL硬件描述语言进行RTL建模,通过FPGA或者ASIC实现。
提前计算ln(f2)的值存入查找表,ln(f2)表大小为128*64bits,其中128 为表深度,64为ln(f2)的位宽,根据e2作为地址得到对应的ln(f2);将ln(f1)和 ln(f2)送入加法器得到ln(f1)+ln(f2);将f2和c=1.M×f1送入乘法器得到 1.M×f1×f2,设定k=1.M×f1×f2
本实施例中,对数泰勒计算单元202被配置为根据第二乘法值k计算第二中间参数;
具体的,对数泰勒计算模块202用于通过对数泰勒级数展开式计算对数预处理模块得到的k的对数值;对数泰勒计算模块202的输入为k,输出为ln(k)。
在本实施例对数泰勒计算模块202的一种实现方式中,如图7(b)所示,当硬件运算电路用于计算双精度浮点数,对数泰勒计算单元202包括:第一泰勒逻辑单元,第一乘法器组以及第一加法器组;第一泰勒逻辑单元用于根据第二乘法值k,确定第一中间取值k-1;第一乘法器组包括乘法器 M3、乘法器M4、乘法器M5以及乘法器M6,其中,乘法器M3的两个输入端分别连接于第一泰勒逻辑单元的输出端,乘法器M4的一个输入端连接于第一泰勒逻辑单元的输出端,乘法器M4的另一个输入端被输入常数1/3,乘法器M5的两个输入端分别连接于乘法器M3的输出端,乘法器M6的一个输入端连接于乘法器M3的输出端,乘法器M6的另一个输入端连接于乘法器M4的输出端;第一加法器组包括加法器A3,加法器A4以及加法器 A5,其中,加法器A3的两个输入端分别连接于第一泰勒逻辑单元以及乘法器M3的输出端,加法器A4的两个输入端分别连接于乘法器M5以及乘法器M6的输出端,加法器A5的两个输入端分别连接于加法器A3以及加法器A4的输出端。
具体的,第一泰勒逻辑单元利用上述第二组合逻辑的方式,根据第二乘法值k,确定第一中间取值k-1;并将第一中间取值k-1记作a。具体过程如图5(c)所示,通过判断k的高位和上述第二组合逻辑的方式得到k-1 的取值,设定a=k-1;k对应图中的in,a对应图中的out,k的最高位k[71] 为符号位,k是正数,符号位为0,k的次高位k[70]为整数位,根据k[71:70] 作为多路选择器的判断位,n=0,N=69,M=0,即当k[71:70]=01时,a为 {2’b00,k[69:0]},当k[71:70]=00时,a为{2’b10,k[69:0]取补码}。
本实施例中,泰勒级数展开式如下:
Figure BDA0003609390890000121
一共4项,用到4次乘法器和3次加法器,分别组成第一乘法器组以及第一加法器组。前两个乘法器M3、M4分别得到a2
Figure BDA0003609390890000122
继续计算,后两个乘法器M5、M6分别得到a4
Figure BDA0003609390890000131
其中,泰勒展开式中的系数
Figure BDA0003609390890000132
Figure BDA0003609390890000133
可以直接移位得到;然后进行加法,加法器A3、A4分别得到
Figure BDA0003609390890000134
Figure BDA0003609390890000135
加法器A5得到最终结果lnk=ln(1.M×f1×f2)。
在本实施例对数泰勒计算模块202的另一种实现方式中,如图7(a) 所示,硬件运算电路用于计算单精度浮点数,对数泰勒计算单元202包括:第二泰勒逻辑单元,乘法器M7以及加法器A6;第二泰勒逻辑单元用于根据第二乘法值k,确定第二中间取值k-1;乘法器M7的两个输入端分别连接于第二泰勒逻辑单元的输出端;加法器A6的一个输入端连接于乘法器 M7的输出端,加法器A6的另一个输入端连接于第二泰勒逻辑单元的输出端。
此时,泰勒级数展开式取2项即可,如下:
Figure BDA0003609390890000136
具体过程不再赘述。
本实施例中,对数后处理模块203用于根据第一中间参数和第二中间参数,生成对数计算结果。
进一步的,对数后处理模块203至少包括:第二加法器A1,第三乘法器M2以及第三加法器A2;第二加法器A1的输入端分别连接于第一加法器A0以及对数泰勒计算单元202的输出端,第二加法器A1被配置为计算第一和值与第二中间参数的和值,记作第二和值;第三乘法器M2被配置为计算第二和值与1/ln(2)的乘积,记作第三乘法值;第三加法器A2被配置为计算第一中间参数与第三乘法值的和值,记作对数计算结果。
具体的,对数后处理模块203用于将对数预处理模块和对数泰勒计算模块得到的中间运算结果进行进一步乘加运算,得到对数计算模块的输出值log2 x。
对数后处理模块203的输入为E-offset、ln(f1)+ln(f2)、ln(k),输出为log2 x;将对数预处理模块201得到的ln(f1)+ln(f2)和对数泰勒计算模块202得到的 lnk一起送入对数后处理模块203的第二加法器A1,第二加法器A1的结果通过第三乘法器M2与
Figure BDA0003609390890000141
相乘,得到
Figure BDA0003609390890000142
然后与对数预处理模块201中得到E-offset的通过第三加法器A2相加得到x 的对数计算结果log2 x。
本实施例中,乘法模块用于计算对数计算结果与第二参数y的乘积,将乘积记作乘法计算结果w。
具体的,乘法模块将对数计算模块100输出值log2 x与Power函数xy中的第二参数(指数)y相乘得到w=y×log2(x),具体过程不再赘述。
在上述是实施例的基础上,本实施例又示出了一种指数计算模块200 的实现方式,该指数计算模块200至少包括:第四乘法器,指数组合逻辑单元,指数泰勒计算模块502,第五乘法器以及输出组合逻辑单元;其中,第四乘法器和指数组合逻辑单元组成数预处理模块501,第五乘法器以及输出组合逻辑单元组成指数后处理模块503。
其中,第四乘法器被配置为计算乘法器的乘法计算结果w中的小数部分与ln(2)的乘积,记作第四乘积b;指数组合逻辑单元被配置为根据第四乘积b确定第三逻辑值bl;指数泰勒计算模块502被配置为根据第三逻辑值bl计算中间指数值;第五乘法器被配置为计算中间指数值与第四查表值
Figure BDA0003609390890000143
的乘积,记作第五乘积,其中,第四查表值
Figure BDA0003609390890000144
由第四乘积b确定,bm=b-bl;输出组合逻辑单元被配置为根据乘法器的乘法计算结果w中的整数部分与第五乘积,确定第一参数x和第二参数y的Power函数运算结果。
具体的,如图8所示,指数预处理模块501的输入为乘法计算结果w,输出为wi、bl
Figure BDA0003609390890000145
首先,通过拆分的形式,将浮点数表示形式的乘法计算结果w拆分成定点表示的整数wi和小数部分wf;将小数部分wf和常数 ln(2)送入第四乘法器M3中,得到第四乘积b=wf×ln(2);提前计算
Figure BDA0003609390890000151
的值存入查找表,
Figure BDA0003609390890000152
表大小为357*64bits,其中357为表深度,64为
Figure BDA0003609390890000153
的位宽,根据第四乘积b作为地址,通过查表的方式得到对应的第四查表值
Figure BDA0003609390890000154
其中,根据第四乘积b的数值进行第二组合逻辑计算得到第三逻辑值bl。根据 b的数据特点,通过组合逻辑将b拆成两部分bm和bl,其中b=bl+bm;并根据b的数据特点,通过查找表获取bm的指数函数值,即第四查表值
Figure BDA0003609390890000155
本实施例中,b对应图5(b)中in,第三逻辑值bl对应图中out,b最高位为符号位,根据b的符号位作为多路选择器的判断位,n=8,N=96,M=0,即当b[106]=0时,第三逻辑值bl为{8’h00,b[96:0]},当b[106]=1时,第三逻辑值bl为{8’h00,b[96:0]取补码}。
上述指数泰勒计算模块502用于通过指数泰勒级数展开式计算指数预处理模块501得到的第三逻辑值bl的指数函数值,即中间指数值。
指数泰勒计算模块502的输入为第三逻辑值bl,输出中间指数值
Figure BDA0003609390890000156
该部分的详细结构如图9(b)所示,以双精度浮点数输入情况为例,泰勒级数展开式如下:
Figure BDA0003609390890000157
一共5项,用到5次乘法器和3次加法器。具体实施过程如下:
如图6所示,利用第三组合逻辑方式,通过bl的数值判断和计算得到1+bl;通过定点形式的bl直接得到双精度浮点数表示的1+bl。根据bl的符号位作为多路选择器的判断位,补全1+bl的11位阶码,根据bl的数值确定1+bl的尾数;
第一次两个乘法器分别得到bl 2
Figure BDA0003609390890000161
继续计算,第二次两个乘法器分别得到bl 4
Figure BDA0003609390890000162
同时进行第一次加法,加法器得到
Figure BDA0003609390890000163
第三次乘法器得到
Figure BDA0003609390890000164
同时第二次一个加法器得到
Figure BDA0003609390890000165
最后加法得到最终结果
Figure BDA0003609390890000166
其中泰勒展开式中的系数
Figure BDA0003609390890000167
可拆成
Figure BDA0003609390890000168
可拆成
Figure BDA0003609390890000169
Figure BDA00036093908900001610
可以直接移位得到。
图9(a)为计算数据为单精度浮点数的情况下指数泰勒计算单元的结构,此时泰勒级数展开式取3项即可,如下:
Figure BDA00036093908900001611
具体过程不再赘述。
上述指数后处理模块503,用于将指数预处理模块和指数泰勒计算模块 502得到的中间运算结果进行进一步乘加运算,得到指数计算模块的输出值 2w,也就是Power函数的最终结果xy
其输入为
Figure BDA00036093908900001612
wi
Figure BDA00036093908900001613
输出为eb;将指数预处理模块501得到的中间计算结果
Figure BDA00036093908900001614
和指数泰勒计算模块502得到的
Figure BDA00036093908900001615
一起送入指数计算模块200 中的乘法器,得到eb,即为
Figure BDA00036093908900001616
指数预处理模块501中得到的w的整数部分wi,作为结果2w的浮点表示形式的阶码,
Figure BDA00036093908900001617
作为尾数,再进行浮点数的规格化处理,得到最终Power函数运算结果xy
实施例二:
在上述实施例的基础上,如图10所示,本实施例提供了一种在工业硬件运算电路中的数据处理方法,该方法适用于硬件运算电路中的数据处理,该硬件运算电路可用于计算Power函数,该方法包括:
步骤1,根据第一参数x的阶码E生成第一中间参数,根据所述第一参数x的尾数M,采用查表和对数泰勒级数展开的方式计算第二中间参数,并根据所述第一中间参数和所述第二中间参数,生成对数计算结果;
具体的,Power函数为f(x,y)=xy(x>0),函数的定义域x、y为实数R,实数域中令f(x,y)=xy有意义的定义域为x>0,底数x可用浮点数形式表示 x=2E-offset×(1.M),其中E为阶码,M为尾数,offset为阶码的偏置,1.M的范围是[1,2)。
对xy进行公式变换
Figure BDA0003609390890000171
拆成对数函数和指数函数的形式计算;
对数函数计算包括:将log2 x进行公式变换,利用数字迭代法对x的尾数1.M进行处理,将处理后的数据代入对数泰勒级数展开式中进行计算,然后代入对数变换后的公式计算得到对数值log2 x;
指数函数计算包括:设定w=y*log2 x,将指数2w进行公式变换,利用区间划分的方法对w进行处理,将处理后的数据代入指数泰勒级数展开式中进行计算,然后代入指数变换后的公式计算得到指数值2w,即为Power 函数最终计算结果xy
具体的,对数计算是计算x的以2为底的对数值log2 x,利用以自然常数e为底的对数泰勒级数展开式进行求解,为保证精度和展开式项数,需要对代入泰勒展开式的数进行处理,先将log2 x做如下变形:
Figure BDA0003609390890000172
进一步缩小ln(1.M)中的1.M数据范围,数字迭代法对1.M进行处理包括:利用数据范围和查找表获取合适的f1和f2令1.M×f1×f2趋向于1,其中 fi=1+ei*r-i,ei是以r=2q为基的数字集,i是迭代次数;
通过一系列乘法使1.M归一化,即(1.M)Πfi→1,其中fi=1+ei*r-i,ei是以r=2q为基的数字集,i是迭代次数;在本实施例中,设定迭代次数i=2,则fi获取过程如下:
Figure BDA0003609390890000181
设定(1.M)×f1=1,则
Figure BDA0003609390890000182
因此
Figure BDA0003609390890000183
其中round是取绝对值后四舍五入的结果,将得到的e1的值带回f1的表达式中计算出f1的值;同理,
Figure BDA0003609390890000184
设定(1.M)×f1×f2=1,则
Figure BDA0003609390890000185
因此
Figure BDA0003609390890000186
将得到的e2的值带回f2的表达式中计算出f2的值;在硬件实现时,e1是通过1.M的数值查表得到, e2是通过(1.M)×f1的数值特点直接得到,然后根据e1和e2分别查表得到ln(f1) 和ln(f2),其中e1、ln(f1)和ln(f2)提前存入查找表中;
设定k=(1.M)×f1×f2,则
Figure BDA0003609390890000187
其中ln(k)用对数泰勒级数展开式进行求解,展开式如下:
Figure BDA0003609390890000188
其中k为数字迭代法对1.M处理后的结果k=1.M×f1×f2
至此,log2 x全部求出,生成对数计算结果。
步骤2,计算对数计算结果与第二参数y的乘积,将乘积记作乘法计算结果w;
步骤3,根据乘法模块的乘法计算结果w进行指数运算,生成第一参数x和第二参数y的Power函数运算结果,其中,指数运算的底数为2,指数运算的指数为乘法器的乘法计算结果w。
进一步的,步骤3具体包括:
步骤31,计算乘法器的乘法计算结果w中的小数部分与ln(2)的乘积,记作第四乘积b;
步骤32,根据第四乘积b确定第三逻辑值bl
步骤33,根据第三逻辑值bl计算中间指数值;
步骤34,计算中间指数值与第四查表值
Figure BDA0003609390890000191
的乘积,记作第五乘积,其中,第四查表值
Figure BDA0003609390890000192
由第四乘积b确定,bm=b-bl
步骤35,根据乘法器的乘法计算结果w中的整数部分与第五乘积,确定第一参数x和第二参数y的Power函数运算结果。
具体的,指数计算是计算以2为底、以w为指数的指数函数2w,其中 w=y×log2 x,y是Power函数f(x,y)=xy的指数;利用以自然常数e为底的指数函数泰勒级数展开式进行求解,为保证精度和展开式项数,需要对代入展开式计算的数进行处理,具体处理工程如下:
利用区间划分法对w进行处理包括:将指数函数的指数w拆成整数wi和小数wf
设定b=wf×ln2;
将[0,1]进行等区间划分,每个区间范围为
Figure BDA0003609390890000193
将b拆为区间端点bm和区间内数据bl
Figure BDA0003609390890000194
通过查找表获得,
Figure BDA0003609390890000195
通过指数泰勒级数展开式获得;
设定bl=b-bm,其中
Figure BDA0003609390890000201
将[-1,1]的区间等分成2t份,实施例中设定p=9,t=512;根据b的数值查表获得
Figure BDA0003609390890000202
bl的指数值
Figure BDA0003609390890000203
通过指数泰勒展开式求解,展开式如下:
Figure BDA0003609390890000204
2w的全部求解如下:
Figure BDA0003609390890000205
至此,2w全部求出,也就是Power函数f(x,y)=xy的结果。
为了验证本实施例中计算Power函数的硬件运算电路的性能,将本实施例中的技术方案与相关文献《X-DSP IP核Power函数部件的设计与验证》中硬件结构作为对比方案,将两者的性能进行对比,如表1所示,需要说明的是,对比方案中仅采用单精度浮点数计算。
表1
Figure BDA0003609390890000206
在单精度下,由表1可知,两种电路精度一致,都为10-7,满足单精度浮点数的精度要求;在运算资源方面,对比方案用了5个加法器和9个乘法器,本实施例设计的电路使用了5个加法器和8个乘法器,本实施例比对比方案减少了7%的运算资源;在存储资源方面,本实施例设计在单精度下计算所需的存储为16.2875k,而对比方案需要36k,本实施例所需的存储资源更少,比对比方案少54.76%;从计算周期来看,本实施例设计与对比方案中均采用乘法器延时2个周期,加法器延时1个周期,从表1中可以看出,本实施例设计的单精度下计算电路计算周期更长,比对比方案长 23.8%。
在双精度下所需要的存储资源,本实施例为32.28125k,相较于对比方案在单精度下的资源减少了10.33%。本实施例计算精度可达10-16,需要9 个加法器和15个乘法器,从输入到输出需要29个周期。
从存储来看,对比方案中的查找表用来存放多项式系数,存储资源统计如下:对数部分将区间分为64份,多项式采用三次四项式,在[1,2)区间内再等分为32份,采用二级查找表,则对数部分存储资源为 (64+32)*4*32=12k;指数部分将区间分为128份,多项式采用二次三项式,考虑到负数情况,用2x和(1/2)x两个函数逼近,指数部分存储资源为 128*3*32*2=24k,对比方案一共消耗36k的存储资源。而本实施例用查找表存储预处理过程中产生的中间数据,对数5.1875k,指数11.1k,共需 16.2875k资源。
通过对上述性能指标进行对比分析,可以发现本实施例在保持高精度计算的同时,可以用更少的存储资源和计算资源,体现了本实施例设计的 Power函数硬件电路的优越性。
以上结合附图详细说明了本申请的技术方案,本申请提出了一种用于计算Power函数的硬件运算电路及数据处理方法,其中,该硬件运算电路包括:对数计算模块,乘法模块和指数计算模块;对数计算模块被配置为根据第一参数x的阶码E生成第一中间参数,根据第一参数x的尾数M,采用查表和对数泰勒级数展开的方式计算第二中间参数,并根据第一中间参数和第二中间参数,生成对数计算结果;乘法模块用于计算对数计算结果与第二参数y的乘积,将乘积记作乘法计算结果w;指数计算模块被配置为根据乘法模块的乘法计算结果w进行指数运算,生成第一参数x和第二参数y的Power函数运算结果,其中,指数运算的底数为2,指数运算的指数为乘法器的乘法计算结果w。通过本申请中的技术方案,对Power函数的硬件运算电路进行优化,使其能够提供较高的计算精度、支持更广数据范围、减少资源占用。
本申请中的步骤可根据实际需求进行顺序调整、合并和删减。
本申请装置中的单元可根据实际需求进行合并、划分和删减。
尽管参考附图详地公开了本申请,但应理解的是,这些描述仅仅是示例性的,并非用来限制本申请的应用。本申请的保护范围由附加权利要求限定,并可包括在不脱离本申请保护范围和精神的情况下针对发明所作的各种变型、改型及等效方案。

Claims (10)

1.一种用于计算Power函数的硬件运算电路,其特征在于,所述硬件运算电路包括:对数计算模块,乘法模块和指数计算模块;
所述对数计算模块被配置为根据第一参数x的阶码E生成第一中间参数,根据所述第一参数x的尾数M,采用查表和对数泰勒级数展开的方式计算第二中间参数,并根据所述第一中间参数和所述第二中间参数,生成对数计算结果;
所述乘法模块用于计算所述对数计算结果与第二参数y的乘积,将所述乘积记作乘法计算结果w;
所述指数计算模块被配置为根据所述乘法模块的乘法计算结果w进行指数运算,生成所述第一参数x和所述第二参数y的Power函数运算结果,
其中,所述指数运算的底数为2,所述指数运算的指数为所述乘法器的乘法计算结果w。
2.如权利要求1所述的用于计算Power函数的硬件运算电路,其特征在于,所述对数计算模块包括:对数预处理模块,对数泰勒计算单元以及对数后处理模块;
所述对数预处理模块至少包括:对数查表单元,第一乘法器M0,对数组合逻辑单元,第二乘法器M1以及第一加法器A0,其中,
所述对数查表单元被配置为根据所述第一参数x中尾数M的高q+1位进行第一查表,确定第一查表值e1,并根据所述第一查表值e1进行第二查表,确定第二查表值ln(f1);
所述第一乘法器M0的输入端连接于所述对数查表单元,所述第一乘法器M0的输出端连接于所述对数组合逻辑单元,所述第一乘法器M0被配置为对所述第一查表值e1进行移位加1的操作结果f1与乘法中间值1.M进行乘法运算,记作第一乘法值c,其中,所述乘法中间值1.M为1与所述第一参数x的尾数M的和值;
所述对数组合逻辑单元被配置为根据所述第一乘法值c确定第一逻辑值e2以及第二逻辑值f2,其中,所述对数查表单元还被配置为根据第一逻辑值e2用于通过查表的方式确定第三查表值ln(f2);
所述第二乘法器M1的输入端分别连接于所述对数组合逻辑单元以及所述第一乘法器M0的输出端,所述第二乘法器M1用于计算所述第二逻辑值f2与第一乘法值c的乘积,记作第二乘法值k;
所述第一加法器A0的输入端连接于所述对数查表单元,所述第一加法器A0被配置为计算所述第二查表值ln(f1)与所述第三查表值ln(f2)的和值,记作第一和值;
所述对数泰勒计算单元被配置为根据所述第二乘法值k计算所述第二中间参数;
所述对数后处理模块用于根据所述第一中间参数和所述第二中间参数,生成所述对数计算结果。
3.如权利要求2所述的用于计算Power函数的硬件运算电路,其特征在于,所述对数组合逻辑单元被配置为根据所述第一乘法值c确定第一逻辑值e2以及第二逻辑值f2,具体包括:
步骤A,将所述第一乘法值c作为输入数据;
步骤B,判断所述输入数据的判断位是否等于1,其中,所述判断位可以为所述第一乘法值c中符号位、整数位、符号位和整数位中的一种;
若等于1,则在所述判断位与所述输入数据的其余位之间增加n个0或者1,以组成输出数据,其中,所述输出数据为所述第一逻辑值e2
若不等于1,即为0时,按照所述判断位、待增加数据、补码数据的形式组成所述输出数据,其中,所述待增加数据为n个0或者1,所述补码数据为所述输入数据的其余位的补码;
步骤C,将所述第一逻辑值e2作为所述输入数据,重新执行步骤B,以确定所述第二逻辑值f2
4.如权利要求2所述的用于计算Power函数的硬件运算电路,其特征在于,所述对数后处理模块至少包括:第二加法器A1,第三乘法器M2以及第三加法器A2;
所述第二加法器A1的输入端分别连接于所述第一加法器A0以及所述对数泰勒计算单元的输出端,所述第二加法器A1被配置为计算所述第一和值与所述第二中间参数的和值,记作第二和值;
所述第三乘法器M2被配置为计算所述第二和值与1/ln(2)的乘积,记作第三乘法值;
所述第三加法器A2被配置为计算所述第一中间参数与所述第三乘法值的和值,记作所述对数计算结果。
5.如权利要求2所述的用于计算Power函数的硬件运算电路,其特征在于,所述硬件运算电路用于计算双精度浮点数,所述对数泰勒计算单元包括:第一泰勒逻辑单元,第一乘法器组以及第一加法器组;
所述第一泰勒逻辑单元用于根据所述第二乘法值k,确定第一中间取值k-1;
所述第一乘法器组包括乘法器M3、乘法器M4、乘法器M5以及乘法器M6,其中,所述乘法器M3的两个输入端分别连接于所述第一泰勒逻辑单元的输出端,所述乘法器M4的一个输入端连接于所述第一泰勒逻辑单元的输出端,所述乘法器M4的另一个输入端被输入常数1/3,所述乘法器M5的两个输入端分别连接于所述乘法器M3的输出端,所述乘法器M6的一个输入端连接于所述乘法器M3的输出端,所述乘法器M6的另一个输入端连接于所述乘法器M4的输出端;
所述第一加法器组包括加法器A3,加法器A4以及加法器A5,其中,所述加法器A3的两个输入端分别连接于所述第一泰勒逻辑单元以及所述乘法器M3的输出端,
所述加法器A4的两个输入端分别连接于所述乘法器M5以及乘法器M6的输出端,
所述加法器A5的两个输入端分别连接于所述加法器A3以及所述加法器A4的输出端。
6.如权利要求2所述的用于计算Power函数的硬件运算电路,其特征在于,所述硬件运算电路用于计算单精度浮点数,所述对数泰勒计算单元包括:第二泰勒逻辑单元,乘法器M7以及加法器A6;
所述第二泰勒逻辑单元用于根据所述第二乘法值k,确定第二中间取值k-1;
所述乘法器M7的两个输入端分别连接于所述第二泰勒逻辑单元的输出端;
所述加法器A6的一个输入端连接于所述乘法器M7的输出端,所述加法器A6的另一个输入端连接于所述第二泰勒逻辑单元的输出端。
7.如权利要求1至6中任一项所述的用于计算Power函数的硬件运算电路,其特征在于,所述指数计算模块至少包括:第四乘法器,指数组合逻辑单元,指数泰勒计算模块,第五乘法器以及输出组合逻辑单元;
所述第四乘法器被配置为计算所述乘法器的乘法计算结果w中的小数部分与ln(2)的乘积,记作第四乘积b;
所述指数组合逻辑单元被配置为根据所述第四乘积b确定第三逻辑值bl
所述指数泰勒计算模块被配置为根据所述第三逻辑值bl计算中间指数值;
所述第五乘法器被配置为计算所述中间指数值与第四查表值
Figure FDA0003609390880000041
的乘积,记作第五乘积,其中,所述第四查表值
Figure FDA0003609390880000042
由所述第四乘积b确定,bm=b-bl
所述输出组合逻辑单元被配置为根据所述乘法器的乘法计算结果w中的整数部分与所述第五乘积,确定所述第一参数x和所述第二参数y的Power函数运算结果,
所述第一参数x为Power函数的底数,所述第二参数y为Power函数的指数,所述第一参数x和所述第二参数y为64比特浮点型数据。
8.一种基于FPGA的电路板,其特征在于,所述电路板中集成有权利要求1-7中任意一项所述的运算电路及其中的各个模块。
9.一种在工业硬件运算电路中的数据处理方法,其特征在于,所述方法包括:
步骤1,根据第一参数x的阶码E生成第一中间参数,根据所述第一参数x的尾数M,采用查表和对数泰勒级数展开的方式计算第二中间参数,并根据所述第一中间参数和所述第二中间参数,生成对数计算结果;
步骤2,计算所述对数计算结果与第二参数y的乘积,将所述乘积记作乘法计算结果w;
步骤3,根据所述乘法模块的乘法计算结果w进行指数运算,生成所述第一参数x和所述第二参数y的Power函数运算结果,
其中,所述指数运算的底数为2,所述指数运算的指数为所述乘法器的乘法计算结果w。
10.如权利要求9所述的在工业硬件运算电路中的数据处理方法,其特征在于,所述步骤3具体包括:
步骤31,计算所述乘法器的乘法计算结果w中的小数部分与ln(2)的乘积,记作第四乘积b;
步骤32,根据所述第四乘积b确定第三逻辑值bl
步骤33,根据所述第三逻辑值bl计算中间指数值;
步骤34,计算所述中间指数值与第四查表值
Figure FDA0003609390880000051
的乘积,记作第五乘积,其中,所述第四查表值
Figure FDA0003609390880000061
由所述第四乘积b确定,bm=b-bl
步骤35,根据所述乘法器的乘法计算结果w中的整数部分与所述第五乘积,确定所述第一参数x和所述第二参数y的Power函数运算结果。
CN202210429140.5A 2022-04-13 2022-04-22 一种用于计算Power函数的硬件运算电路及数据处理方法 Pending CN114860193A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2022103890692 2022-04-13
CN202210389069 2022-04-13

Publications (1)

Publication Number Publication Date
CN114860193A true CN114860193A (zh) 2022-08-05

Family

ID=82633266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210429140.5A Pending CN114860193A (zh) 2022-04-13 2022-04-22 一种用于计算Power函数的硬件运算电路及数据处理方法

Country Status (1)

Country Link
CN (1) CN114860193A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115469829A (zh) * 2022-10-28 2022-12-13 摩尔线程智能科技(北京)有限责任公司 运算装置和基于运算电路的指数运算方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115469829A (zh) * 2022-10-28 2022-12-13 摩尔线程智能科技(北京)有限责任公司 运算装置和基于运算电路的指数运算方法

Similar Documents

Publication Publication Date Title
CN112740171B (zh) 乘法和累加电路
CN110852434B (zh) 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置
CN107305484B (zh) 一种非线性函数运算装置及方法
US9552189B1 (en) Embedded floating-point operator circuitry
Walters et al. Efficient function approximation using truncated multipliers and squarers
Li et al. Efficient FPGA implementation of softmax function for DNN applications
CN110888623B (zh) 数据转换方法、乘法器、加法器、终端设备及存储介质
US5337266A (en) Method and apparatus for fast logarithmic addition and subtraction
CN114341796A (zh) 带符号多字乘法器
CN110187866B (zh) 一种基于双曲cordic的对数乘法计算系统及方法
CN114860193A (zh) 一种用于计算Power函数的硬件运算电路及数据处理方法
Rekha et al. FPGA implementation of exponential function using cordic IP core for extended input range
Menon et al. Implementation of 24 Bit high speed floating point Vedic multiplier
CN107220025B (zh) 处理乘加运算的装置和处理乘加运算的方法
Singh et al. Design and synthesis of goldschmidt algorithm based floating point divider on FPGA
CN111984226B (zh) 一种基于双曲cordic的立方根求解装置及求解方法
CN116166217A (zh) 执行浮点操作的系统和方法
CN115658008A (zh) 一种资源复用型超越函数运算实现方法
CN114691082A (zh) 乘法器电路、芯片、电子设备及计算机可读存储介质
Hass Synthesizing optimal fixed-point arithmetic for embedded signal processing
Wires et al. Reciprocal and reciprocal square root units with operand modification and multiplication
KR20010067226A (ko) 인터폴레이션 방법 및 장치
Chang et al. Fixed-point computing element design for transcendental functions and primary operations in speech processing
Iyer et al. Generalised Algorithm for Multiplying Binary Numbers Via Vedic Mathematics
CN115840555A (zh) 基于对数运算系统的小型浮点运算单元及其在fpga中的应用

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