除法函数处理电路、方法、芯片以及系统与流程

文档序号:16086805发布日期:2018-11-27 22:31阅读:346来源:国知局
本申请涉及数据处理
技术领域
,特别是涉及一种除法函数处理电路、方法、芯片以及系统。
背景技术
:基本算术运算是数学计算的基础,也是计算机进行复杂计算的前提,除法函数作为一类最基本的算术运算函数,它在数字信号处理、图像处理、坐标轴转换以及科学计算中都有广泛而且重要的应用。传统技术中针对除法函数的计算方法常采用查找表和牛顿-拉夫生方法处理,其中牛顿-拉夫生方法是乘法技术的一种,它是一种线性化的方法,通过把非线性的问题转换为线性方程来进行求解。然而,传统技术在使用查找表和牛顿-拉夫生方法进行除法函数计算时,为了提升计算精度,查找表会很大,在硬件电路设计中会使用很多的存储器资源,并且,该方法在高精度计算中需要进行多次迭代,因此乘法器等硬件资源需求较大,从而导致计算成本高。技术实现要素:基于此,有必要针对上述技术问题,提供一种能够减少硬件资源消耗,降低计算成本的除法函数处理电路、方法、芯片以及系统。一种除法函数处理电路,包括第一函数电路、第二函数电路以及第一乘法器;所述第一函数电路,用于获取待处理除法函数的变量值,并运行二阶函数处理模型以得到二阶函数值,所述二阶函数处理模型为平方多项式,表征变量值与二阶函数值的对应关系;所述第二函数电路,用于获取所述待处理除法函数的变量值,并运行二阶非线性插值函数处理模型以得到二阶非线性插值函数值,所述二阶非线性插值函数处理模型为平方多项式,表征变量值与二阶非线性插值函数值的对应关系;所述二阶函数值与所述二阶非线性插值函数值的乘积与所述待处理除法函数的结果值的误差在预设精度范围内;所述第一乘法器,用于获取所述二阶函数值与所述二阶非线性插值函数值的乘积,并将所述乘积作为所述待处理除法函数的结果值输出。在一个实施例中,所述第一函数电路包括第一加法器、第一平方器、第一右移器和第二加法器;所述第一加法器的输入端用于获取待处理除法函数的变量值,所述第一加法器的输出端连接所述第一平方器的输入端,所述第一平方器的输出端连接所述第一右移器的输入端,所述第一右移器的输出端连接所述第二加法器的输入端,所述第二加法器的输出端连接所述第一乘法器的第一输入端。在一个实施例中,所述第二函数电路包括存储器、第三加法器、第二平方器、第二乘法器及第四加法器;所述存储器包括第一存储单元、第二存储单元以及第三存储单元;所述第一存储单元、所述第二存储单元及所述第三存储单元的输入端以及所述第三加法器的第一输入端用于获取待处理除法函数的变量值;所述第一存储单元的输出端连接所述第二乘法器的第一输入端,所述第二存储单元的输出端连接所述第三加法器的第二输入端,所述第三加法器的输出端连接所述第二平方器的输入端,所述第二平方器的输出端连接所述第二乘法器的第二输入端;所述第二乘法器的输出端连接所述第四加法器的第一输入端,所述第三存储单元的输出端连接所述第四加法器的第二输入端,所述第四加法器的输出端连接所述第一乘法器的第二输入端。一种除法函数处理方法,包括以下步骤:获取待处理除法函数的变量值;将所述变量值输入二阶函数处理模型,得到二阶函数值,所述二阶函数处理模型为平方多项式,表征变量值与二阶函数值的对应关系;将所述变量值输入二阶非线性插值函数处理模型,得到二阶非线性插值函数值,所述二阶非线性插值函数处理模型为平方多项式,表征变量值与二阶非线性插值函数值的对应关系;所述二阶函数值与所述二阶非线性插值函数值的乘积与所述待处理除法函数的结果值的误差在预设精度范围内;获取所述二阶函数值与所述二阶非线性插值函数值的乘积,将所述乘积作为所述待处理除法函数的结果值输出。在一个实施例中,所述获取待处理除法函数的变量值的步骤之前,还包括:对所述待处理除法函数进行变换处理,得到落入预设范围内的所述变量值。在一个实施例中,所述将所述变量值输入二阶函数处理模型,得到二阶函数值的步骤中,所述二阶函数处理模型基于以下步骤,得到所述二阶函数值:对所述变量值与预设的第一常数项进行求和运算,得到第一平方底数项;对所述第一平方底数项进行平方运算,得到第一平方项;对所述第一平方项与预设的第一平方系数项进行乘法运算,得到处理后的第一平方项;对所述处理后的第一平方项与预设的第二常数项进行求和运算,得到所述二阶函数值。在一个实施例中,所述预设的第一常数项为所述预设的第一平方系数项为所述预设的第二常数项为在一个实施例中,所述将所述变量值输入二阶非线性插值函数处理模型,得到二阶非线性插值函数值的步骤中,所述二阶非线性插值函数处理模型基于以下步骤,得到所述二阶非线性插值函数值:根据所述变量值得到插值节点;对所述插值节点与预设的第三常数项进行求和运算,得到第二平方底数项;对所述第二平方底数项进行平方运算,得到第二平方项;对所述第二平方项与预设的第二平方系数项进行乘法运算,得到处理后的第二平方项;对所述处理后的第二平方项与预设的第四常数项进行求和运算,得到所述二阶非线性插值函数值。一种除法函数处理芯片,包括上述除法函数处理电路。一种除法函数处理系统,包括上位机、输入电路、输出电路以及上述除法函数处理芯片;所述除法函数处理芯片连接所述上位机、所述输入电路以及所述输出电路。上述除法函数处理电路、方法、芯片以及系统,该除法函数处理电路包括第一函数电路、第二函数电路以及第一乘法器;第一函数电路,用于获取待处理除法函数的变量值,并运行二阶函数处理模型以得到二阶函数值,二阶函数处理模型为平方多项式,表征变量值与二阶函数值的对应关系;第二函数电路,用于获取待处理除法函数的变量值,并运行二阶非线性插值函数处理模型以得到二阶非线性插值函数值,二阶非线性插值函数处理模型为平方多项式,表征变量值与二阶非线性插值函数值的对应关系;二阶函数值与二阶非线性插值函数值的乘积与待处理除法函数的结果值的误差在预设精度范围内;第一乘法器,用于获取二阶函数值与二阶非线性插值函数值的乘积,并将乘积作为待处理除法函数的结果值输出。通过利用二阶函数处理模型与二阶非线性插值函数处理模型来对待处理除法函数进行计算,从而可以对待处理除法函数进行高精度近似计算处理,此外,在函数电路中采用平方多项式形式的运算处理方法,通过平方运算可以减少乘法器的使用,从而减少硬件资源消耗,降低计算成本。附图说明图1为传统技术中基于查找表和牛顿-拉夫生方法的除法函数硬件处理电路;图2为一个实施例中除法函数处理方法的流程示意图;图3为另一个实施例中除法函数处理方法的流程示意图;图4为一个实施例中二阶函数处理模型得到二阶函数值的流程示意图;图5为一个实施例中二阶非线性插值函数处理模型得到二阶非线性插值函数值的流程示意图;图6为在一个实施例中除法函数处理方法的硬件处理流程示意图;图7为一个实施例中除法函数处理电路的结构示意图;图8为一个具体应用实例中硬件电路处理方案的结构示意图;图9为一个具体应用实例中的处理框图;图10为一个实施例中除法函数处理系统的结构示意图;图11为一个实施例中除法函数处理装置的结构示意图;图12为另一个实施例中除法函数处理装置的结构示意图;图13为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基本算术运算是数学计算的基础,也是计算机进行复杂计算的前提,其中,除法函数作为一类最基本的算术运算函数,它在数字信号处理、图像处理、坐标轴转换以及科学计算中都有广泛而且重要的应用。随着工艺技术的进步,处理器的性能也在逐渐提升,然而,处理器在进行除法函数运算时其运算过程依然需要耗费大量的计算时间,例如,一个浮点除法可能需要20到30个计算周期,而乘法器只需要4到5个计算周期,浮点除法的计算周期要远高于同数量的乘法器的计算周期。传统技术中针对除法函数的计算方法常采用查找表和牛顿-拉夫生(Newton-Raphson)方法处理,其中牛顿-拉夫生方法是乘法技术的一种,它是一种线性化的方法,通过把非线性的问题转换为线性方程来进行求解。具体地,基于牛顿-拉夫生的除法函数处理方法表述如下:设方程f(y)=0有近似根yn,将函数f(y)在yn处作一阶展开有式(1)成立。当f(y)=0时,可以得到式(2),即可推出式(3)为一阶牛顿迭代法的迭代公式。一阶牛顿法具有平方的收敛特性,事实上如果对式(1)作更高阶的近似,则可以得到高阶牛顿法,相应的其收敛特性也会更快,但其复杂度更高。通常采用式(3)的一阶牛顿法作为除法函数的基本迭代公式。f(y)≈f(yn)+f′(yn)(y-yn)(1)f(yn)+f′(yn)(y-yn)=0(2)yn+1=yn-f′(yn)/f(yn)(3)基于牛顿-拉夫生的方法如式(3)所示,可以进一步导出除法函数的牛顿迭代公式。令待求解的除法函数为其中x(0<x<1)为输入数据,y为输出数据。则可以构建出相应的除法函数f(y)如式(4)所示。把式(4)代入式(3)即可以得到除法函数的迭代公式,如式(5)所示。式(5)中n代表迭代的次数,y0即为将要进行迭代的初值。恰当的初值选取有利于加速除法函数的收敛速度。yn+1=yn(2-xyn)(5)查找表技术是一项非常有效的近似计算技术,它唯一的不足是当算术运算函数的计算精度很高时,它所需要的存储器资源以指数方式增长。为了克服此种不足,常采用查找表与乘法技术相结合的方法,以查找表技术获取一个函数计算的初值,然后以乘法迭代技术来提高函数的计算精度。设查找表的大小为2h×m位,则算术运算函数输入数据(1<Ti<2)和输出数据(0.5<To<1)的二进制格式可以分别表示为式(6)和式(7)。由于式中输入数据的最高有效位为1而输出数据的最高位部分恒为0.1,因此在存储的时候并不需要存入查找表以便节省存储资源。由此可以得到除法的查找表基于地址i的入口为式(8),其中表示向下取整,取位数m+1位。传统技术中的除法函数硬件处理电路如图1所示,传统技术通过查找表获取除法函数的计算初值,然后通过迭代过程来提升其计算精度,图1中仅给出了一次迭代过程的硬件电路结构,当需要提升计算精度时,可以重复该迭代过程。通常有两种方式,其一为重复利用该迭代电路结构,以时间换资源,但该方法增加了数据的刷新时间间隔,从而降低了吞吐量。其二为设计流水线电路结构,以资源换效率,通过复用该迭代电路结构来获得计算吞吐量的提升。上述基于查找表和牛顿-拉夫生方法的除法函数计算方法中主要存在两个方面的不足:首先,为了提升除法函数的计算精度,查找表会很大,因而在硬件电路设计中会使用很多的存储器资源,不利于成本的降低;其次,该方法在高精度计算中需要进行多次迭代,在保证计算吞吐量的情况下会消耗很多乘法器等硬件资源,同样不利于成本的降低。本申请针对传统技术的不足,提出了一种除法函数处理方法,通过利用二阶函数处理模型与二阶非线性插值函数处理模型来对待处理除法函数进行计算,从而可以对待处理除法函数进行高精度近似计算,此外,通过采用平方多项式形式的处理模型,可以减少乘法器的使用,从而减少硬件资源消耗,降低计算成本。在一个实施例中,如图2所示,提供一种除法函数处理方法,适用于除法函数芯片进行除法计算。该除法函数处理方法包括以下步骤:步骤S200,获取待处理除法函数的变量值。本实施例中除法函数处理方法能够处理的除法函数并不能穷举,例如,待处理除法函数可为或上述仅仅列举了其中两种待处理除法函数的公式。步骤S300,将变量值输入二阶函数处理模型,得到二阶函数值。其中,二阶函数处理模型为平方多项式,表征变量值与二阶函数值的对应关系。二阶函数处理模型可以采用平方多项式形式的s1(x)表示。步骤S400,将变量值输入二阶非线性插值函数处理模型,得到二阶非线性插值函数值。其中,二阶非线性插值函数处理模型为平方多项式,表征变量值与二阶非线性插值函数值的对应关系。二阶非线性插值函数处理模型可以采用平方多项式形式的s2(x)表示。二阶函数值与二阶非线性插值函数值的乘积与待处理除法函数的结果值的误差在预设精度范围内。步骤S500,获取二阶函数值与二阶非线性插值函数值的乘积,将乘积作为待处理除法函数的结果值输出。具体地,本步骤中除法函数计算方法如式(9)所示,它通过采用两个子函数相乘来对原始函数进行精确计算。forg(x)=s1(x)*s2(x)1≤x<1,1≤f<1(9)式中forg(x)即为处理除法函数,s1(x)为二阶函数处理模型中的平方多项式形式的函数,s1(x)表征变量值与二阶函数值的对应关系,s2(x)为二阶非线性插值函数处理模型中的平方多项式形式的函数,s2(x)表征变量值与二阶非线性插值函数值的对应关系。对于s1(x)及s2(x)来说,其函数形式具体可以为s(x)=m(x+n)2+q的形式,s(x)=m(x+n)2+q的运算过程包括一个乘法运算,一个乘方运算以及两个加法运算,相对应的,要实现该运算过程,需要一个乘法器,一个乘方器以及两个加法器。若s1(x)及s2(x)采用s(x)=mx2+nx+q的形式,其运算过程包括两个乘法运算,一个乘方运算以及两个加法运算,相对应的,要实现该运算过程,则需要两个乘法器,一个乘方器以及两个加法器,由此可以看出,采用s(x)=m(x+n)2+q形式的形式相较于s(x)=mx2+nx+q的处理形式来说,可以节约一个乘法器资源,从而减少硬件资源消耗。本实施例通过利用二阶函数处理模型与二阶非线性插值函数处理模型来对待处理除法函数进行计算,具体为通过对一个二阶函数值与一个二阶非线性插值函数值的乘积进行计算以获取对待处理除法函数的结果值,从而可以对待处理除法函数进行近似计算,可以保证计算精度,此外,通过采用平方多项式形式的处理模型,可以减少乘法器的使用,从而减少硬件资源消耗,降低计算成本。在一个实施例中,如图3所示,在获取待处理除法函数的变量值的步骤之前,该除法函数处理方法还包括步骤S100,对待处理除法函数进行变换处理,得到落入预设范围内的变量值。具体地,本实施例的除法函数处理方法中的预设范围为(0<x<1),其中x表示变量值,当待处理除法函数的变量值不在(0<x<1)时,需要对除法函数进行数学变换处理,使得变量值在(0<x<1)之内。进一步地,以一具体实例对上述步骤进行说明。对任意的除法函数来说,都可以使用式(10)的进行描述,这是因为任意的输入变量都可以表示为2的倍数(不断地乘以2或者除以2)从而使任意的输入变量变换到[1,2)的范围内。并且,由于乘以2或者除以2在二进制的硬件电路表示中可以方便地用左移或者右移处理,因而硬件处理也非常的简单方便。因此,式(10)便是我们要计算的除法目标函数。例如:十进制的数字6的二进制表示为110,通过对二进制的110进行右移,即去掉110最右边的0得到二进制的11,二进制的11对应十进制的数字3,3为6除以2得到的结果。通过对二进制的110进行左移,即在110最右边补0得到二进制的1100,二进制的1100对应十进制的数字12,12为6乘以2得到的结果。因此,在二进制的硬件电路中,可以通过左移或者右移处理对数字进行乘以2或除以2的处理过程。在本申请的除法函数处理方法中,需要对其的输入及输入变量进行归一化处理,以便满足输入和输出都处于(0,1)的范围内。因此,为了对式(10)所示的除法函数进行计算,首先要对其进行预处理和后处理,以便使待计算的函数(式(11))的变量值处于(0,1)的范围。预处理和后处理方式分别如式(12)和式(13)所示。因此,计算原始除法函数(式(10))的问题可以转换为计算变换之后函数(式(11))的问题。x=v-1(12)y=2z-1(13)在一个实施例中,如图4所示,步骤300中,在进行将变量值输入二阶函数处理模型,得到二阶函数值的步骤时,二阶函数处理模型基于步骤S310至步骤S340的处理过程,得到二阶函数值。步骤S310,对变量值与预设的第一常数项进行求和运算,得到第一平方底数项。在获取变量值x后,将变量值x与预设的第一常数项b进行求和运算,得到第一平方底数项x+b。步骤S320,对第一平方底数项进行平方运算,得到第一平方项。在得到第一平方底数项x+b后,对第一平方底数项x+b进行平方运算,得到第一平方项(x+b)2。步骤S330,对第一平方项与预设的第一平方系数项进行乘法运算,得到处理后的第一平方项。在得到第一平方项(x+b)2后,对第一平方项(x+b)2与预设的第一平方系数项a进行乘法运算,得到处理后的第一平方项a(x+b)2。步骤S340,对处理后的第一平方项与预设的第二常数项进行求和运算,得到二阶函数值。在得到处理后的第一平方项a(x+b)2后,对处理后的第一平方项a(x+b)2与预设的第二常数项c进行求和运算,得到二阶函数值a(x+b)2+c。步骤S300中二阶函数处理模型得到二阶函数值的处理过程可以通过式(14)描述:s1(x)=a(x+b)2+c(14)其中,s1(x)表示二阶函数,b表示预设的第一常数项,a表示预设的第一平方系数项,c表示预设的第二常数项,x表示变量值。需要说明的是,在根据式(14)得到用于处理二阶函数处理模型的硬件电路时,第一常数项、第一平方系数项及第二常数项已被设计在硬件电路内,也就是说,第一常数项、第一平方系数项及第二常数项是二阶函数处理模型内固有的。另外需要说明的是,采用式(14)的公式形式,来得到二阶函数处理模型,根据式(14)设计本申请除法函数处理方法中用于运行二阶函数处理模型的电路,此时,将变量值输入二阶函数处理模型中并输出二阶函数值,相当于将变量值带入式(14)中,得到对应的函数值结果。进一步,本实施例中,二阶函数处理模型得到二阶函数值的处理过程中,预设的第一常数项为预设的第一平方系数项为预设的第二常数项为具体地,式(14)可以表达为式(15):其中,x表示变量值。需要说明的是,采用式(15)的公式形式,来得到二阶函数处理模型,根据式(15)设计本申请除法函数处理方法中用于运行二阶函数处理模型的电路,此时,将变量值输入二阶函数处理模型中并输出二阶函数值,相当于将变量值带入式(15)中,得到s1(x)的函数值。此外,对于第一平方项来说,其第一平方系数项为对其进行除以2的处理过程可以通过右移处理,从而可以减少一个乘法器的使用,降低计算成本。在一个实施例中,如图5所示,步骤S400中,在进行将变量值输入二阶非线性插值函数处理模型,得到二阶非线性插值函数值的步骤时,二阶非线性插值函数处理模型基于步骤S410至步骤S450的处理过程,得到二阶非线性插值函数值。步骤S410,根据变量值得到插值节点。在获取变量值x后,根据变量值x得到插值节点xw。步骤S420,对插值节点与预设的第三常数项进行求和运算,得到第二平方底数项。在得到插值节点xw后,对插值节点xw与预设的第三常数项e进行求和运算,得到第二平方底数项xw+e。步骤S430,对第二平方底数项进行平方运算,得到第二平方项。在得到第二平方底数项xw+e后,对第二平方底数项xw+e进行平方运算,得到第二平方项(xw+e)2。步骤S440,对第二平方项与预设的第二平方系数项进行乘法运算,得到处理后的第二平方项。在得到第二平方项(xw+e)2后,对第二平方项(xw+e)2与预设的第二平方系数项d进行乘法运算,得到处理后的第二平方项d(xw+e)2。步骤S450,对处理后的第二平方项与预设的第四常数项进行求和运算,得到二阶非线性插值函数值。在得到处理后的第二平方项d(xw+e)2后,对处理后的第二平方项d(xw+e)2与预设的第四常数项f进行求和运算,得到二阶非线性插值函数值d(xw+e)2+f。步骤S400中二阶非线性插值函数处理模型得到二阶非线性插值函数值的处理过程可以通过式(16)描述:s2(x)=d(xw+e)2+f(16)其中,s2(x)表示二阶非线性插值函数,xw表示插值节点,e表示预设的第三常数项,d表示预设的第二平方系数项,f表示预设的第四常数项。需要说明的是,采用式(16)的公式形式,来得到二阶非线性插值函数处理模型,根据式(16)设计本申请除法函数处理方法中用于运行二阶非线性插值函数处理模型的电路,此时,将变量值输入二阶非线性插值函数处理模型中并输出二阶非线性插值函数值,相当于将变量值带入式(16)中,得到对应的函数值结果。在另一个实施例中,结合具体系数值,式(16)可以表达为式(17):s2(x)=p2,i(xw+m2,i)2+q2,i(17)其中,s2(x)表示二阶非线性插值函数,i表示第ith个插值间隔(在x的范围区间,总共划分为2n个间隔),m2,i表示预设的第一常数项,p2,i表示预设的第一平方系数项,q2,i表示预设的第二常数项,xw表示插值节点。具体地,插值节点xw通过式(18)计算得到:xw=fract(2n·x)(18)其中,2n表示插值间隔的个数,n表示正整数,fract表示取小数部分函数。第一平方系数项p2,i通过式(19)计算得到:其中,xstart,i和xend,i分别表示第ith个间隔的起点和终点,k2,i表示第ith个间隔的斜率,定义f1(x)=forg(x)/s1(x),斜率k2,i通过式(20)计算得到:k2,i=f1(xstart,i)-f1(xend,i)(20)第一常数项m2,i通过式(21)计算得到:第二常数项q2,i通过式(22)计算得到:在实际的运算过程中,p2,i,m2,i和q2,i等系数预先计算好并存储在存储器资源中,通过选择不同的插值间隔(I=2n)可以对除法函数的计算精度进行控制,同时由于存储的系数(p2,i和q2,i)具有对称的性质,因而仅需要存储一半的系数即可,减少了存储资源,同时,由于采用平方多项式的函数形式,可以降低乘法器资源的使用,从而可以降低硬件处理成本。在一个实施例中,如图6所示,本申请实施例中的除法函数处理方法的硬件实现流程主要包括需求分析阶段610、软件仿真验证阶段620、硬件电路实现阶段630及应用阶段640四个阶段。需求分析阶段610主要是根据项目的需求确定除法函数要求达到的计算精度。软件仿真验证阶段620主要是根据除法函数需要达到的计算精度需求,通过仿真分析确定本申请方法中第二子函数的非线性插值间隔总数量以及硬件电路的输入输出位宽,在此基础上确定p2,i,m2,i和q2,i系数的存储精度及存储值。当完成所有的算法仿真及系数计算后,对硬件电路结构进行设计,并通过软件对硬件电路结构进行仿真分析,验证计算精度是否达到精度要求。若计算精度达不到项目需求,则需要分析影响除法函数硬件电路计算精度的主要因素,并重复上述过程。硬件电路实现阶段630主要是依据电路结构设计采用硬件描述语言进行硬件电路实现,并采用相应的集成电路自动化设计验证工具进行仿真、布局布线等验证。应用阶段640主要是可以把本申请中的除法函数做成单精度或者双精度的IP核,或者基于具体的应用领域做成定点的基于FPGA(FieldProgrammableGateArray,现场可编程门阵列)的加速模块,或者集成到CPU(CentralProcessingUnit,中央处理单元)、SoC(System-on-chip,系统芯片)或者其它专用ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)电路中。本申请技术方法及电路适应范围较广,可以集成到高端复杂集成电路的浮点除法运算中,也可以适应于除法函数的硬件加速处理中,具有广泛的应用前景;该硬件电路实现方案可方便的设计成流水线结构,因而可以支持高速除法函数的计算,可适应于高速、高吞吐量及实时计算处理应用领域。应该理解的是,虽然图2-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。在一个实施例中,如图7所示,提供一种除法函数处理电路,该除法函数处理电路包括第一函数电路710、第二函数电路720以及第一乘法器730。第一乘法器730的第一输入端连接第一函数电路710的输出端,第一乘法器730的第二输入端连接第二函数电路720的输出端。第一函数电路710,用于获取待处理除法函数的变量值,并运行二阶函数处理模型以得到二阶函数值,二阶函数处理模型为平方多项式,表征变量值与二阶函数值的对应关系。第二函数电路720,用于获取待处理除法函数的变量值,并运行二阶非线性插值函数处理模型以得到二阶非线性插值函数值,二阶非线性插值函数处理模型为平方多项式,表征变量值与二阶非线性插值函数值的对应关系。二阶函数值与二阶非线性插值函数值的乘积与待处理除法函数的结果值的误差在预设精度范围内。第一乘法器730,用于获取二阶函数值与二阶非线性插值函数值的乘积,并将乘积作为待处理除法函数的结果值输出。本实施例中,第一函数电路710能够运行本申请实施例中的二阶函数处理模型,第二函数电路720能够运行本申请实施例中的二阶非线性插值函数处理模型。具体地,将待处理除法函数的变量值分别输入第一函数电路710和第二函数电路720后,第一函数电路710输出二阶函数值,第二函数电路720输出二阶非线性插值函数值,二阶函数值和二阶非线性插值函数经第一乘法器730进行乘法运算,输出待处理除法函数的结果值。本实施例中的除法函数处理电路可以集成到高端复杂集成电路的浮点除法运算中,也可以适应于除法函数的硬件加速处理中,具有广泛的应用前景。在一个实施例中,参考图7,第一函数电路710包括第一加法器712、第一平方器714、第一右移器716和第二加法器718。第一加法器712的输入端用于获取待处理除法函数的变量值,第一加法器712的输出端连接第一平方器714的输入端,第一平方器714的输出端连接第一右移器716的输入端,第一右移器716的输出端连接第二加法器718的输入端,第二加法器718的输出端连接第一乘法器730的第一输入端。本实施例中第一函数电路710利用1个平方器资源和2个加法器处理对除法函数的初始近似计算,具有收敛速度快、计算精度较高等特点。在一个实施例中,参考图7,第二函数电路720包括存储器721、第三加法器722、第二平方器723、第二乘法器724及第四加法器725。存储器721包括第一存储单元721a、第二存储单元721b以及第三存储单元721c。第一存储单元721a、第二存储单元721b及第三存储单元721c的输入端以及第三加法器722的第一输入端用于获取待处理除法函数的变量值。第一存储单元721a的输出端连接第二乘法器724的第一输入端,第二存储单元721b的输出端连接第三加法器722的第二输入端,第三加法器722的输出端连接第二平方器723的输入端,第二平方器723的输出端连接第二乘法器724的第二输入端。第二乘法器724的输出端连接第四加法器725的第一输入端,第三存储单元721c的输出端连接第四加法器725的第二输入端,第四加法器725的输出端连接第一乘法器730的第二输入端。本实施例中第二函数电路720利用1个乘法器资源、1个平方器资源和2个加法器资源处理对除法函数的进一步精确计算,计算系数值(p2,i,m2,i和q2,i)预先计算好并存储在存储器资源中,具有计算速度快等特点。需要说明的是,在如图7所示的除法函数处理电路中,加法器为了处理加法运算,乘法器为了处理乘法运行,平方器为了处理平方运算,右移器为了处理缩小二分之一运算。在一个实施例中,提供本申请除法函数处理电路的一个具体应用实例,硬件电路处理方案如图8所示,输入为x,输出为y,采用的非线性插值间隔总数量为16(I=24),其中设定输入数据15位位宽,输出数据16位位宽,其它内部数据位宽如图8中标记数据进行对应的位宽设定。需要指出的是该电路仅仅针对式(11)进行了计算,针对x和y的预处理和后处理需依据式(12)和(13)单独进行处理,处理框图如图9所示。通过仿真分析,该硬件电路的平均计算误差为2.28×10-5,p2,i,m2,i和q2,i的系数设置如表1至表3中的数据所示。表1为p2,i系数设置数据,具体为:存储地址(十进制)存储数据(十六进制)02c9126d222731f241cb51b0619e7196表2为m2,i系数设置数据,具体为:表3为q2,i系数设置数据,具体为:存储地址(十进制)存储数据(十六进制)01d23711cd9121ca8431c8ac41c7b151c74361c72171c71c本申请各实施例中的除法函数处理电路,第一函数电路710利用1个平方器资源和2个加法器处理对除法函数的初始近似计算,具有收敛速度快、计算精度较高等特点;第二函数电路720利用1个乘法器资源、1个平方器资源和2个加法器资源处理对除法函数的进一步精确计算,计算系数值(p2,i,m2,i和q2,i)预先计算好并存储在存储器资源中,具有计算速度快等特点。此外,本申请中的除法函数处理电路可方便的设计成流水线结构,可支持高速除法函数的计算,可适应于高速、高吞吐量及实时计算处理应用领域。在一个实施例中,提供一种除法函数处理芯片,该除法函数处理芯片包括上述各实施例中的除法函数处理电路。具体地,将本申请各实施例中所述的除法函数处理电路集成到芯片中,使得该芯片能够运行本申请方法实施例中所述的除法函数处理方法。本实施例中的除法函数处理芯片,由于采用了上述实施例中的除法函数处理电路,从而可以通过利用二阶函数处理模型与二阶非线性插值函数处理模型来对待处理除法函数进行计算,从而可以对待处理除法函数进行高精度近似计算,此外,通过采用平方多项式形式的处理模型,可以减少乘法器的使用,从而减少硬件资源消耗,降低计算成本。在一个实施例中,如图10所示,提供一种除法函数处理系统,该除法函数处理系统包括上位机82、输入电路84、输出电路86以及上述实施例的除法函数处理芯片88。除法函数处理芯片88连接上位机82、输入电路84以及输出电路86。在该除法函数处理系统中,输入电路84用于向除法函数处理芯片88输入变量值,上位机82用于控制除法函数处理芯片88的工作状态,在除法函数处理芯片88根据输入电路84输入的变量值得到对应结果值后,输出电路86用于输出该结果值。本实施例中的除法函数处理系统,由于采用了上述实施例中的除法函数处理芯片,从而可以通过利用二阶函数处理模型与二阶非线性插值函数处理模型来对待处理除法函数进行计算,从而可以对待处理除法函数进行高精度近似计算,此外,通过采用平方多项式形式的处理模型,可以减少乘法器的使用,从而减少硬件资源消耗,降低计算成本。在一个实施例中,如图11所示,提供一种除法函数处理装置,该除法函数处理装置包括变量值获取模块920,第一处理模块930、第二处理模块940及结果值输出模块950。变量值获取模块920用于获取待处理除法函数的变量值。第一处理模块930用于将变量值输入二阶函数处理模型,得到二阶函数值。其中,二阶函数处理模型为平方多项式,表征变量值与二阶函数值的对应关系。第二处理模块940用于将变量值输入二阶非线性插值函数处理模型,得到二阶非线性插值函数值。其中,二阶非线性插值函数处理模型为平方多项式,表征变量值与二阶非线性插值函数值的对应关系。二阶函数值与二阶非线性插值函数值的乘积与待处理除法函数的结果值的误差在预设精度范围内。结果值输出模块950用于获取二阶函数值与二阶非线性插值函数值的乘积,将乘积作为待处理除法函数的结果值输出。本实施例中的除法函数处理装置通过利用二阶函数处理模型与二阶非线性插值函数处理模型来对待处理除法函数进行计算,从而可以对待处理除法函数进行高精度近似计算,此外,通过采用平方多项式形式的处理模型,可以减少乘法器的使用,从而减少硬件资源消耗,降低计算成本。在另一个实施例中,如图12所示,该除法函数处理装置还包括变换处理模块910,变换处理模块910用于对待处理除法函数进行变换处理,得到落入预设范围内的变量值。关于除法函数硬件处理装置的具体限定可以参见上文中对于除法函数处理方法的限定,在此不再赘述。上述除法函数硬件处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述实施例中的除法函数处理方法。本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取待处理除法函数的变量值。将变量值输入二阶函数处理模型,得到二阶函数值。将变量值输入二阶非线性插值函数处理模型,得到二阶非线性插值函数值。获取二阶函数值与二阶非线性插值函数值的乘积,将乘积作为待处理除法函数的结果值输出。其中,二阶函数处理模型为平方多项式,表征变量值与二阶函数值的对应关系;二阶非线性插值函数处理模型为平方多项式,表征变量值与二阶非线性插值函数值的对应关系;二阶函数值与二阶非线性插值函数值的乘积与待处理除法函数的结果值的误差在预设精度范围内。在一个实施例中,处理器执行计算机程序时还处理以下步骤:对待处理除法函数进行变换处理,得到落入预设范围内的变量值。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待处理除法函数的变量值。将变量值输入二阶函数处理模型,得到二阶函数值。将变量值输入二阶非线性插值函数处理模型,得到二阶非线性插值函数值。获取二阶函数值与二阶非线性插值函数值的乘积,将乘积作为待处理除法函数的结果值输出。其中,二阶函数处理模型为平方多项式,表征变量值与二阶函数值的对应关系;二阶非线性插值函数处理模型为平方多项式,表征变量值与二阶非线性插值函数值的对应关系;二阶函数值与二阶非线性插值函数值的乘积与待处理除法函数的结果值的误差在预设精度范围内。在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对待处理除法函数进行变换处理,得到落入预设范围内的变量值。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1