一种数据处理方法、装置、处理器及计算机可读存储介质与流程

文档序号:19931890发布日期:2020-02-14 22:06阅读:173来源:国知局
一种数据处理方法、装置、处理器及计算机可读存储介质与流程

本发明涉及神经网络领域,具体涉及一种数据处理方法、装置、处理器以及计算机可读存储介质。



背景技术:

在神经网络的深度学习应用场景中,我们用神经网络来表述输入与输出之间的复杂关系。用数学语言来说,就是用人工神经网络来实现复杂的函数。神经网络由多层的神经元构成,每个神经元中都有一个激活函数,神经元会同时接收多个输入并将它们统一起来,然后使用激活函数处理后进行输出,使输入与输出之间存在一定的映射关系,如果每个神经元中的激活函数均是线性函数,则输入与输出之间的映射关系均是线性的,那么神经网络只是将多个输入经过线性组合再输出,即神经网络缺乏非线性度,对于复杂函数的逼近能力十分有限。

为了让神经网络对于复杂函数的表达能力更加强大,需要引入非线性激活函数进行神经网络的构建。要引入非线性函数用于神经网络,相当于要拟合出非线性函数的函数值。通常来说,现有技术拟合非线性函数的函数值一般采用通用型处理器进行计算,效率低下。即使采用专用的拟合电路,其需要的拟合区间庞大、涉及的拟合参数繁多,导致存储资源开销高、电路面积大,同时其数据处理速度难以满足神经网络的需求。



技术实现要素:

针对上述问题,为满足神经网络对于非线性度的需求,以专用电路结合仅配置了特定拟合区间的拟合运算电路的方案替换配置全区间的拟合运算电路方案为基础,提供了一整套提高神经网络数据处理能力的解决措施,显著减少硬件资源的开销。

为实现上述目的,根据本发明的第一方面,提供一种数据处理方法,该方法应用于神经网络。提供乘法器、拟合运算电路和函数值映射电路,拟合运算电路用于调用拟合参数对数据进行拟合运算;函数值映射电路用于根据索引匹配对应的数值。同时,提供特定函数定义域内的至少一个特定拟合区间,特定拟合区间仅包括非负数,特定拟合区间对应至少一组拟合参数,拟合运算电路仅处理位于特定拟合区间内的数据;并提供输入数据x,输入数据x为标准化的浮点数,输入数据x包括有效数字、指数和符号。本发明提供的数据处理方法包括以下步骤:

步骤s10:获取输入数据x,将其符号固化为正,得到输入数据x的绝对值|x|。

步骤s20:判断绝对值|x|是否位于特定拟合区间;

若绝对值|x|位于特定拟合区间内,使用拟合运算电路对绝对值|x|进行拟合运算得到拟合运算结果,并基于拟合运算结果得到最终运算结果;

若绝对值|x|位于特定拟合区间外,则跳过直接调用拟合运算电路处理绝对值|x|的步骤,执行步骤s30。

步骤s30:对绝对值|x|进行移位处理,得到移位数据x’。移位处理包括,以输入数据x的指数作为绝对值|x|的指数,并获取移位数据x’的指数t,t为整数,然后计算绝对值|x|的指数与指数t的差值,然后基于该差值对绝对值|x|的有效数字进行移位,得到移位数据x’的有效数字。

步骤s40:基于移位数据x’获取拟合部x1和非拟合部x2,拟合部x1与非拟合部x2的和等于移位数据x’。其中,拟合部x1的有效数字等于移位数据x’的有效数字的小数部分加r,拟合部x1位于特定拟合区间内;非拟合部x2的有效数字等于移位数据x’的有效数字的整数部分减r。

步骤s50:使用拟合运算电路对拟合部x1进行拟合运算,得到第一运算结果f(x1);

使用函数值映射电路以非拟合部x2为索引查找映射表,获取对应的第二运算结果f(x2);映射表包括非拟合部x2以及和非拟合部x2对应的所述第二运算结果f(x2)。

步骤s60:使用乘法器接收第一运算结果f(x1)和第二运算结果f(x2)进行乘法运算得到第一乘积,并基于第一乘积得到最终运算结果。

本发明通过将输入数据x分解为拟合部x1和非拟合部x2,并通过不同电路分别对拟合部x1和非拟合部x2进行处理。具体的,通过拟合运算电路对拟合部x1进行拟合运算,得到第一运算结果f(x1);并通过函数值映射电路以非拟合部x2为索引查找映射表,获取第二运算结果f(x2),然后基于第一运算结果f(x1)和第二运算结果f(x2)还原出特定函数的函数拟合值。相比于最接近的现有技术中以覆盖全区间的拟合运算电路进行拟合的具体实现方案,本发明以函数值映射电路配合仅配置了极小特定拟合区间的拟合运算电路,代替配置了高功耗、多部件的全区间拟合区间的拟合运算电路,以大量减少拟合参数的数量,从而减少硬件资源尤其是存储资源的开销。同时,相较于现有技术,本发明提供的仅配置了极小特定拟合区间的拟合运算电路由于拟合参数较少,从而可以缩短拟合运算电路在调用拟合参数时,选择并匹配拟合参数的时间,从而在整体上提高了对于数据的处理速度,该数据处理方法具体应用于神经网络,特别是用于神经网络逼近特定函数的函数值时,使得神经网络对于非线性度的需求得以满足,从而使神经网络对于复杂函数的逼近能力得到进一步提高。

优选的,本发明还提供倒数运算器。在上述步骤s20中,若输入数据x的符号为负,使用倒数运算器对拟合运算结果进行倒数运算以得到最终运算结果;若输入数据x的符号为正,将拟合运算结果作为最终运算结果。为了在完成数据处理的同时进一步节省硬件开销,此处通过仅配置非负区间的拟合运算电路对负数的绝对值进行拟合运算并配合倒数运算器对拟合运算结果进行倒数运算,以代替配置了正负区间的拟合运算电路对负数进行拟合运算,从而减少了将近一半的拟合参数。在硬件层面上,通过增加一个倒数运算器减少了将近一半用于存储拟合参数的存储资源;在逻辑层面上,通过增加一个倒数运算缩短了拟合运算电路匹配拟合参数的时间,从而提高了数据处理方法对于数据的处理速度。

优选的,本发明还提供倒数运算器。在上述步骤s60中,若输入数据x的符号为负,使用倒数运算器接收第一乘积进行倒数运算得到最终运算结果;若输入数据x的符号为正,将第一乘积作为最终运算结果。为了在节省硬件开销的同时,进一步简化运行逻辑和布线,本发明通过仅配置非负区间的拟合运算电路对负数的绝对值进行拟合运算并配合倒数运算器对第一乘积进行倒数运算,以代替配置了正负区间的拟合运算电路对负数进行拟合运算,从而减少了将近一半的拟合参数。在硬件层面上,通过增加一个倒数运算器减少了将近一半用于存储拟合参数的存储资源;在逻辑层面上,通过增加一个倒数运算缩短了拟合运算电路匹配拟合参数的时间,从而提高了数据处理方法对于数据的处理速度。

优选的,上述特定拟合区间包括[0,2t+m],m为正整数。在一种优选的实施方式中,上述r的取值通常为1。因此,由上述拟合部x1的构建方式可知,拟合部x1的有效数字小于2,同时,拟合部x1的指数为t,拟合部x1的符号为正。因此,在本发明优选的二进制神经网络处理系统中保持m为正整数的前提下,拟合部x1必定位于特定拟合区间[0,2t+m],从而不需要对拟合部x1进行额外处理,即可对其进行拟合运算,从而进一步提高本方法对于数据的处理速度,并仅需存储特定拟合区间[0,2t+m]对应的拟合参数,减少存储资源的开销。

更为优选的,上述特定拟合区间包括[2t-n,2t+m],n为非负整数。由上述拟合部x1的构建方式可知,拟合部x1的有效数字大于1,同时,拟合部x1的指数为t,拟合部x1的符号为正。因此,在本发明优选的二进制神经网络处理系统中保持n为非负整数的前提下,拟合部x1必定位于特定拟合区间[2t-n,2t+m],从而更进一步减少拟合参数的数量,以减少存储资源的开销。

更为优选的,m等于1,n等于0。在保证拟合部x1必定位于特定拟合区间的前提下,将特定拟合区间固定在最方便使用的[0,2t+1]或[2t,2t+1],从而将拟合参数的数量减少至局部最优的情形,以减少存储资源的开销。

优选的,上述映射表中的非拟合部x2构成至少一个等差数列,等差数列的公差等于2t。在本发明中,映射表并不需要存储特定函数定义域内的每个非拟合部x2,而仅需存储一些特定的数值。由上述非拟合部x2的构建方式可知,非拟合部x2的有效数字为整数,非拟合部x2的指数为t(t为整数),因此非拟合部x2为整数。同时,配合拟合部x1,映射表中仅需存储一组公差为2t的整数等差数列,即可实现任意输入数据x的处理。因此,通过减少映射表中的拟合部x2的的数据存储量,可以减少存储资源的开销,并能进一步降低函数值映射电路以非拟合部x2为索引查找映射表获取第二运算结果f(x2)的时间,从而加快数据处理方法对于数据的处理速度。

为实现上述目的,根据本发明的第二方面,提供一种数据处理装置。提供特定函数对应的至少一个特定拟合区间,特定拟合区间仅包括非负数,特定拟合区间对应至少一组拟合参数;并提供输入数据x,输入数据x为标准化的浮点数,输入数据x包括有效数字、指数和符号。本发明提供的数据处理装置包括:

取正单元,取正单元用于接收外部传入的输入数据x,并将其符号固化为正,得到输入数据x的绝对值|x|;

判断单元,判断单元与取正单元相连,判断单元用于判断绝对值|x|是否位于特定拟合区间;

移位单元,移位单元与判断单元相连,移位单元用于获取位于特定拟合区间外的绝对值|x|,并对其进行移位处理,得到移位数据x’;

拆分单元,拆分单元与移位单元相连,拆分单元用于获取移位数据x’,并将移位数据x’拆分为拟合部x1和非拟合部x2,拟合部x1与非拟合部x2的和等于所述移位数据x’;

函数值映射电路,函数值映射电路与拆分单元相连,用于获取非拟合部x2,并用于以非拟合部x2为索引查找映射表,最终得到与非拟合部x2对应的第二运算结果f(x2);映射表包括非拟合部x2以及和非拟合部x2对应的第二运算结果f(x2);

拟合运算电路,拟合运算电路用于获取位于特定拟合区间内的绝对值|x|,并调用拟合参数对绝对值|x|进行拟合运算得到拟合运算结果;拟合运算电路还用于获取拟合部x1,并调用拟合参数对拟合部x1进行拟合运算得到第一运算结果f(x1);

乘法器,乘法器与拟合运算电路相连;乘法器用于接收第一运算结果f(x1)以及第二运算结果f(x2)进行乘法运算得到第一乘积;乘法器还用于接收拟合运算结果以及固定数值进行乘法运算得到第二乘积,固定数值等于1;

倒数运算器,倒数运算器与乘法器相连,倒数运算器用于从乘法器获取第一乘积和/或第二乘积,并进行倒数运算。

本发明通过移位单元和拆分单元将输入数据x最终拆解为拟合部x1与非拟合部x2,并通过拟合运算电路和函数值映射电路分别对拟合部x1与非拟合部x2进行处理,得到第一运算结果f(x1)以及第二运算结果f(x2),并基于第一运算结果f(x1)和第二运算结果f(x2)还原特定函数的函数拟合值。因此,通过上述处理过程,本发明以仅配置了极小特定拟合区间的拟合运算电路配合函数值映射电路代替配置了极大拟合区间的拟合运算电路,从而减少拟合参数的数量,从而减少存储资源的开销。本发明还通过设置取正单元和倒数运算器,将为负数的输入数据x固化为正,从而在仅配置了非负区间的拟合运算电路进行拟合运算以及通过函数值映射电路在仅存储了正整数的映射表中进行索引,最终通过倒数运算器基于第一乘积还原得到该输入数据x的函数拟合值。在硬件层面上,通过增加一个倒数运算器减少了将近一半用于存储拟合参数的存储资源;在逻辑层面上,通过增加一个倒数运算缩短了拟合运算电路匹配拟合参数的时间,从而提高了数据处理装置对于数据的处理速度。

优选的,上述数据处理装置还包括第一多路调制器,第一多路调制器包括输出端和至少两个输入端,第一多路调制器的输入端与判断单元相连,第一多路调制器的另一输入端与拆分单元相连,第一多路调制器的输出端与拟合运算电路相连;第一多路调制器用于获取拟合部x1和/或位于特定拟合区间内的绝对值|x|,并择一发送至拟合运算电路。通过设置第一多路调制器,可以在拟合运算电路进行流水化的拟合运算时,避免拟合运算电路同时接收到多个数据造成运算错误,提高装置的稳定性。

优选的,上述数据处理装置还包括第二多路调制器,第二多路调制器包括输出端和至少两个输入端,第二多路调制器的输入端与函数值映射电路相连,第二多路调制器的另一输入端接收上述固定数值,第二多路调制器的输出端与乘法器相连;第二多路调制器用于获取第二运算结果f(x2)和/或固定数值,并择一发送至乘法器。通过设置第二多路调制器,以便选择性地向乘法器发送第二运算结果f(x2)或固定数值,使乘法器接收到的两个输入相对应。

优选的,上述数据处理装置还包括第三多路调制器,第三多路调制器包括输出端和至少两个输入端;第三多路调制器的输入端与乘法器相连,该输入端用于获取第一乘积和/或第二乘积作为输入,第三多路调制器的另一输入端与倒数运算器相连,该输入端用于获取第一乘积的倒数和/或第二乘积的倒数作为输入;第三多路调制器用于从上述输入中择一发送至其输出端作为最终运算结果输出。

为实现上述目的,根据本发明的第三方面,本发明提供一种计算机可读存储介质,该可读存储介质上存储有程序代码,该程序代码被处理器执行时,实现上述第一方面中的数据处理方法的步骤。

为实现上述目的,根据本发明的第四方面,本发明提供一种处理器,该处理器包括上述第二方面中的数据处理装置。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种数据处理方法的流程示意图;

图2是本发明实施例提供的一种数据处理装置的结构示意图;

图3是本发明实施例提供的一种拟合参数表;

图4是本发明实施例提供的另一种拟合参数表;

图5是本发明实施例提供的一种映射表;

图6是本发明实施例提供的另一种拟合参数表;

图7是本发明实施例提供的另一种映射表;

图8是本发明实施例提供的一种数据处理设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。术语“至少一个”的含义是一个或一个以上,术语“多个”的含义是两个或两个以上,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,当一个元件被称作与另一个或多个元件“耦合”、“连接”时,它可以是一个元件直接连接到另一个或多个元件,也可以是间接连接至该另一个或多个元件。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

请参见图1,是发明实施例提供的一种数据处理方法的流程示意图。具体的,包括如下步骤。

步骤s1:获取输入数据x,并得到输入数据x的绝对值|x|。输入数据x为标准化的浮点数,包括有效数字、指数和符号。在本发明一种优选的实施方式中,输入数据x可以为ieee-754浮点数。

步骤s2:判断绝对值|x|是否位于特定拟合区间。若绝对值|x|位于特定拟合区间内,执行步骤s3;若绝对值|x|位于特定拟合区间外,执行步骤s4。

步骤s3:调用特定拟合区间对应的拟合参数对绝对值|x|进行拟合运算得到拟合运算结果。

步骤s4:对绝对值|x|进行移位处理得到移位数据x’。移位处理包括,以输入数据x的指数作为绝对值|x|的指数,并获取移位数据x’的指数t,t为整数,然后计算绝对值|x|的指数与指数t的差值,然后基于该差值对绝对值|x|的有效数字进行移位,得到移位数据x’的有效数字。具体的,可以将绝对值|x|的指数减去移位数据x’的指数t,得到差值,若差值大于零,将绝对值|x|的有效数字进行左移,左移的位数等于差值;若差值小于零,将绝对值|x|的有效数字进行右移,右移的位数等于差值。在其它一些实施方式中,还可以将移位数据x’的指数t减去绝对值|x|的指数得到差值,若差值小于零,将绝对值|x|的有效数字进行左移,左移的位数等于差值;若差值大于零,将绝对值|x|的有效数字进行右移,右移的位数等于差值。

步骤s5:对移位数据x’进行拆分处理得到拟合部x1和非拟合部x2,拟合部x1与非拟合部x2的和等于移位数据x’。其中,拟合部x1的有效数字等于移位数据x’的有效数字的小数部分加r,拟合部x1位于特定拟合区间内;非拟合部x2的有效数字等于移位数据x’的有效数字的整数部分减r。在本发明一种优选的实施方式中,r等于1。

步骤s6:对拟合部x1和非拟合部x2分别进行处理,得到第一运算结果f(x1)和第二运算结果f(x2)。具体的,使用拟合运算电路调用拟合参数对拟合部x1进行拟合运算,得到第一运算结果f(x1);并使用函数值映射电路以非拟合部x2为索引查找映射表,最终得到与非拟合部x2对应的第二运算结果f(x2)。其中,映射表包括非拟合部x2以及和非拟合部x2对应的第二运算结果f(x2)。在一种优选的实施方式中,函数值映射电路以非拟合部x2整体作为索引查找映射表。在其它一些实施方式中,也可以将非拟合部x2中的某几位作为索引查找映射表。

步骤s7:使用乘法器接收第一运算结果f(x1)和第二运算结果f(x2)进行乘法运算得到第一乘积。

步骤s8:判断输入数据x是否为正数。若输入数据x为负数,执行步骤s9;若输入数据x为正数,执行步骤s10。

步骤s9:将上述步骤s3中的拟合运算结果或上述步骤s7的第一乘积进行取倒操作,得到它们的倒数。

步骤s10:输出最终运算结果。具体的,若输入数据x为正数,将拟合运算结果的数值作为最终运算结果,或将第一乘积作为最终运算结果;若输入数据x为负数,将拟合运算结果的数值的倒数作为最终运算结果,或将第一乘积的倒数作为最终运算结果。

现有技术往往将一个较大的区间配置为拟合区间,例如,在ieee-754单精度浮点数的系统中对函数2x进行拟合,由于ieee-754单精度浮点数所能表示的最大值为2127,因此往往将拟合区间配置为[-127,127],而为了保证拟合的精度要求,通常将拟合区间划分为多个子区间。若每隔0.1划分一个子区间,那拟合区间[-127,127]将可以划分为2540个子区间,因此,理论上需要2540组拟合参数来实现函数的拟合,对于存储资源占用的极大。而在本发明中,对函数2x进行拟合运算,仅需将特定拟合区间设定为[0,2],以同样的方式对[0,2]进行划分,可知一共为20个子区间,因此,只需要20组拟合参数即可完成2x1在[0,2]的拟合运算,之后通过函数值映射电路以非拟合部x2为索引查找映射表得到2x2的真值,并将二者相乘得到2x1+x2,即还原出了输入数据x在[-127,127]的函数拟合值。

从存储资源的角度来看,节省了约2520组拟合参数的存储资源开销。在对拟合精度有较高要求的系统中,通常将子区间划分间隔设定在0.1或更小;当以0.1作为共同的最小子区间标准时,本发明相比现有技术至少节约了两个数量级的拟合参数,因此本发明对于存储资源的节省是十分可观的。若不使用存储资源存储拟合参数,而是将拟合参数固化于电路之中,则相对于现有技术需要固化2540余组拟合参数而言,本发明可以大幅度减少电路的面积与功耗。

此外,为了调用对应的拟合参数进行拟合运算,需要判断输入数据x位于哪一子区间,因此,现有技术理论上需要log22540个门电路(gate)进行子区间的判断,而本发明仅需log220个门电路。因此,本发明的电路面积明显小于现有技术。同时,在流水化的拟合运算中,本发明由于使用较少的门电路进行判断,电路延迟(即拟合部x1匹配对应拟合参数的时间)显著低于现有技术。

由于映射表中预先存储的第二运算结果f(x2)十分接近真值,所以本发明通过第二运算结果f(x2)对输入数据x的函数拟合值进行还原具有拟合精度高的优势。

在本发明一些实施方式中,特定拟合区间可以设置为[0,2t+m],m为正整数。在本发明另一种实施方式中,特定拟合区间还可以设置为[2t-n,2t+m],n为非负整数。在本发明的一种优选实施方式中,通常取m为1,取n为0。在本发明一些实施方式中,特定拟合区间还可以配置为开区间或半开半闭区间。

例如,当移位数据x’的指数t等于2时,特定拟合区间可以设置为[0,8],也可以设置为(0,8]或者(0,8)等等。又例如,当移位数据x’的指数t等于0时,特定拟合区间可以设置为[1,2],[1,2),(1,2)等等,此处不再赘述。在本发明一种优选的实施方式中,特定拟合区间包括多个子区间,这些子区间均对应一组拟合参数。

在本发明一种优选的实施方式中,上述映射表中的非拟合部x2构成至少一个等差数列,公差为2t。应当注意的是,公差等于2t还是等于-2t,取决于如何定义等差数列的首项和末项。因此,公差等于-2t的等差数列应视为与本发明实质相同的技术方案。

例如,在移位数据x’的指数t等于2时,映射表中的非拟合部x2可以构成一个等差数列为{4,8,12,…,76,80,…},等差数列的末项可根据系统可表示的最大值确定。例如,单精度浮点数可表示的最大值为2127,若映射表表示的是ex的映射关系,由于e88已经超过了2127,结合上述特定拟合区间[0,8],为使能够拟合的最大值达到e88,等差数列的末项取应取80。

请参见图2,是本发明实施例提供的一种数据处理装置200的结构示意图。数据处理装置200包括:判断单元210、移位单元220、拆分单元230、函数值映射电路240、拟合运算电路250、乘法器260、倒数运算器270、取正单元280、第一多路调制器291、第二多路调制器292以及第三多路调制器293。

取正单元280与判断单元210相连;判断单元210与移位单元220相连;移位单元220与拆分单元230相连;拆分单元230与函数值映射电路240相连;第一多路调制器291的其中一个输入端与判断单元210相连,另一个输入端与拆分单元230相连,第一多路调制器291的输出端与拟合运算电路250相连;第二多路调制器292的其中一个输入端与函数值映射电路240相连,另一输入端接收固定数值1,其输出端与乘法器260相连;乘法器260还与拟合运算电路250以及倒数运算器270分别相连;第三多路调制器293的其中一个输入端与乘法器260相连,第三多路调制器293的另一个输入端与倒数运算器270相连。

其中,取正单元280用于接收输入数据x,并取输入数据x的绝对值|x|。

判断单元210用于接收绝对值|x|,并判断绝对值|x|是否位于特定拟合区间。若绝对值|x|位于特定拟合区间内,判断单元210将绝对值|x|发送至第一多路调制器291;若输入数据|x|位于特定拟合区间外,判断单元210将绝对值|x|发送至移位单元220。

移位单元220用于对绝对值|x|进行移位处理,得到移位数据x’,并将移位数据x’发送至拆分单元230。

拆分单元230用于将移位数据x’拆分为拟合部x1和非拟合部x2,拟合部x1与非拟合部x2的和等于移位数据x’。然后将拟合部x1发送至第一多路调制器291,并将非拟合部x2发送至函数值映射电路240。

函数值映射电路240以非拟合部x2为索引查找映射表,最终得到与非拟合部x2对应的第二运算结果f(x2),并将第二运算结果f(x2)发送至第二多路调制器292。

第一多路调制器291用于从接收到的位于特定拟合区间内的绝对值|x|和/或拟合部x1中择一发送至拟合运算电路250。

拟合运算电路250用于接收位于特定拟合区间内的绝对值|x|进行拟合运算得到拟合运算结果;拟合运算电路250还用于接收拟合部x1进行拟合运算得到第一运算结果f(x1)。在本发明一种优选的实施方式中,拟合运算电路包括乘法器和加法器,使用乘法器和加法器的配合,以进行多项式拟合运算。在其他一些实施方式中,也可以使用乘加器代替乘法器和加法器进行多项式运算。在一种优选的实施方式中,多项式拟合运算为二项式拟合运算,但本发明对于拟合运算的项次并不作具体限定。

第二多路调制器292用于从接收到的第二运算结果f(x2)和/或固定数值1中择一发送至乘法器260。显而易见的是,该固定数值可以为浮点型也可以为整型。

乘法器260用于接收第一运算结果f(x1)和第二运算结果f(x2)进行乘法运算得到第一乘积;乘法器260还用于接收固定数值和拟合运算结果进行乘法运算得到第二乘积。

倒数运算器270用于接收第一乘积进行倒数运算得到其倒数;倒数运算器270还用于接收第二乘积进行倒数运算得到其倒数。

第三多路调制器293的一个输入端用于接收第一乘积和/或第二乘积;第三多路调制器293的另一个输入端用于接收第一乘积的倒数和/或第二乘积的倒数。第三多路调制器293选择其中一个输入作为最终运算结果从其输出端输出。

经过一定选择从而将多个数据通道的数据传送到唯一的公共通道上,以实现数据选择功能的逻辑电路均可视为对多路调制器(multiplexer)的简单置换。例如数据选择器、多路选择器均可用于代替上述多路调制器。

在上述提及的技术方案中,拟合运算电路250将拟合运算结果发送至乘法器260与固定数值相乘得到第二乘积,乘法器260再将该第二乘积发送至倒数运算器270和第三多路调制器293,因此,第三多路调制器293接收的两个输入分别为第二乘积和第二乘积的倒数。

在本发明其它一些实施方式中,可以采用另一技术方案代替上述过程。例如,拟合运算电路250还与倒数运算器270以及第三多路调制器分别293相连,因此,拟合运算电路250可将拟合运算结果发送至倒数运算器270进行倒数运算,并可将拟合运算结果发送至第三多路调制器293,因此第三多路调制器293接收的两个输入分别为拟合运算结果和拟合运算结果的倒数。

显而易见的,由于固定数值等于1,因此,第一乘积在数值上等于拟合运算结果,第一乘积的倒数在数值上等于拟合运算结果的倒数。因此,上述两种实施方式中,第三多路调制器293接收的两个输入在数值上是相等的,能够实现实质相同的技术效果,应视为本发明的简单置换。

为了便于理解,下面以上述数据处理装置200结合具体的函数和输入数据,阐述数据处理的具体过程。

提供用于拟合的函数为ex,设定特定拟合区间为(0,8],该特定拟合区间被划分为多个子区间,每个子区间对应一组拟合参数。请参见图3,为本实施例提供的部分拟合参数。

提供一个ieee-754浮点数-8作为输入数据,其有效数字为1,指数为3,符号为负,可表示为-1*23(以二进制进行表示)。

取正单元280接收到输入数据-8,将其符号固化为正,得到其绝对值8,可表示为1*23(以二进制进行表示)。

判断单元210接收绝对值8,判断其位于特定拟合区间(0,8],将其发送至第一多路调制器291,第一多路调制器291将其发送至拟合运算电路250。

拟合运算电路250接收绝对值8,判断其位于特定拟合区间的子区间(6,8],调用拟合参数a、拟合参数b以及拟合参数c对其进行二项式拟合运算,得到拟合运算结果。其中,拟合参数a为1400,拟合参数b为-19400,拟合参数c为68800,进行二项式拟合运算的公式为ax2+bx+c。因此,可得拟合运算结果为3200。应当理解的是,为保证拟合运算的精度,拟合参数需经过多次迭代或调试。本实施例示为了示例性说明拟合运算过程,给出了用于演示的试算拟合参数,不应将其理解为本发明实际使用时最优情形下的的拟合参数。

乘法器260获取该拟合运算结果,并从第二多路调制器292获取固定数值(等于1),将二者相乘得到二者的乘积,并将该乘积发送至倒数运算器270。在其它一些实施方式中,乘法器250可直接将拟合运算结果发送至倒数运算器270,实现的方式包括将拟合运算电路250与倒数运算器270相连,由于拟合运算结果与该乘积在数值上是相等的,因此倒数运算器270在上述两种实施方式中接受的数值并无本质区别。

倒数运算器270将接收到的乘积进行倒数运算,得到其倒数等于0.0003125,并通过第三多路调制器293将该倒数作为最终运算结果输出。

在本发明另一种实施方式中,提供用于拟合运算的函数为2x,设定特定拟合区间为[4,8],该特定拟合区间被划分为多个子区间,每个子区间对应一组拟合参数。请参见图4,为本实施例提供的部分拟合参数。

提供一个输入数据为8.5,其有效数字为1.0001,指数为3,符号为正,可表示为1.0001*23(以二进制进行表示)。

取正单元280接收输入数据8.5,将其符号固化为正,得到绝对值8.5。应当注意的是,由于输入数据8.5的符号已为正,所以输入数据8.5与绝对值8.5均表示为1.0001*23(以二进制进行表示)。

判断单元210接收绝对值8.5,判断其不位于特定拟合区间[4,8],将其发送至移位单元220。

移位单元220将绝对值8.5进行移位得到移位数据。具体的,可以设置移位数据的指数为2。首先,将绝对值8.5的指数减去移位数据的指数得到差值为1,然后将绝对值8.5的有效数字左移1位,得到移位数据的有效数字。因此,移位数据可表示为10.001*22(以二进制进行表示)。

拆分单元230获取该移位数据,并拆分为拟合部和非拟合部。具体的,将移位数据的有效数字的小数部分加1,作为拟合部的有效数字,因此,拟合部可表示为1.001*22(以二进制进行表示,相当于十进制的4.5)。将移位数据的有效数字的整数部分减1,作为非拟合部的有效数字,因此,非拟合部可表示为1*22(以二进制进行表示,相当于十进制的4)。

拆分单元230通过第一多路调制器291将拟合部发送至拟合运算电路250,拟合运算电路250判断1.001*22位于特定拟合区间的子区间[4,5),调用拟合参数对其进行拟合运算,得到第一运算结果。其中,拟合参数a等于21,拟合参数b等于-150,拟合参数c等于280,进行二项式拟合运算的公式为ax2+bx+c,因此,可得第一运算结果为30.25。应当理解的是,为保证拟合运算的精度,拟合参数需经过多次迭代或调试。本实施例示出的拟合参数仅为了示例性的说明拟合运算过程,给出了用于演示的试算拟合参数,不应将其理解为本发明实际使用时最优情形下的的拟合参数。

拆分单元230还将非拟合部发送至函数值映射电路240,函数值映射电路240以非拟合部1*22(相当于十进制的4)为索引查找映射表,得到对应的第二运算结果等于16。请参见图5,是本发明实施例提供的一种映射表。该映射表包括非拟合部以及和非拟合一一对应的第二运算结果,非拟合部构成一个首项为0,末项为80且公差为4的等差数列。在其它一些实施方式中,映射表可以省略其中若干项,也可以增加若干项数据。

第二多路调制器292获取该第二运算结果并将其发送至乘法器260,乘法器260还获取上述第一运算结果,并将二者相乘得到乘积等于484。由于输入数据8.5为正数,因此,通过第三多路调制器293将该乘积作为最终运算结果输出。

在本发明另一种实施例中,提供用于拟合的函数为ex,设定特定拟合区间为(0,2),该特定拟合区间被划分为多个子区间,每个子区间对应一组拟合参数。请参见图6,为本实施例提供的部分拟合参数。

提供输入数据等于-10.5,其有效数字为1.0101、指数为3且符号为负,可表示为-1.0101*23(以二进制进行表示)。

取正单元280接收该输入数据,将其符号固化为正,得到绝对值10.5,可表示为1.0101*23(以二进制进行表示)。

判断单元210接收到上述绝对值,判断其位于特定拟合区间(0,2)外,将其发送至移位单元220。移位单元220对其进行移位,得到移位数据。具体的,可将移位数据的指数设置为0。首先,将绝对值10.5的指数减去移位数据的指数得到差值为3,将输入数据的有效数字左移3位作为移位数据的有效数字。因此,移位数据可表示为1010.1*20(以二进制进行表示)。

拆分单元230获取该移位数据,将其拆分成拟合部和非拟合部。具体的,将移位数据的有效数字的小数部分加1作为拟合部,因此,拟合部可表示为1.1*20(以二进制进行表示,相当于十进制的1.5)。将移位数据的有效数字的整数部分减1作为非拟合部,因此,非拟合部可表示为1001*20(以二进制进行表示,相当于十进制的9)。

拟合运算电路250通过第一多路调制器291,获取上述拟合部,并判断其位于特定拟合区间的子区间(1,2)内,调用拟合参数a、拟合参数b以及拟合参数c进行拟合运算,得到第一运算结果。其中,拟合参数a等于1.5,拟合参数b等于-1.5,拟合参数c等于3,进行二项式拟合运算的公式为ax2+bx+c,因此,可得第一运算结果为4.125。应当理解的是,为保证拟合运算的精度,拟合参数需经过多次迭代或调试。本实施例示出的拟合参数仅为了示例性的说明拟合运算过程,给出了用于演示的试算拟合参数,不应将其理解为本发明实际使用时最优情形下的的拟合参数。

函数值映射电路240接收上述非拟合部,并基于该非拟合部(相当于十进制的9)查找映射表,最终得到与非拟合部对应第二运算结果。映射表存储的非拟合部及其对应的第二运算结果的对应关系请参见图7。该映射表包括非拟合部以及和非拟合部一一对应的第二运算结果,非拟合部构成一个等差数列,该等差数列的首项为3、末项为86、公差为1。在其它一些实施方式中,映射表可以省略其中若干项数据,也可以增加若干项数据。

乘法器260从拟合运算电路250中获取第一运算结果,并通过第二多路调制器292从函数值映射电路240中获取第二运算结果。乘法器260将获取的第一运算结果和第二运算结果相乘,得到二者的乘积等于33425.22120124852。

倒数运算单元270获取上述乘积进行倒数运算,得到其倒数等于0.0000299175。由于输入数据为负数,通过第三多路调制器293将该倒数作为最终运算结果输出。

显而易见的,移位数据的指数并不局限于上述示出的2或0,而是可以根据实际实施进行调整。类似的,特定拟合区间的选择并不局限于上述示出的情形,而是可以根据移位数据的指数进行确定,确定特定拟合区间的方式已在上文中详细描述,此处不再赘述。进行拟合的函数也不仅限于上述实施例所示出的ex或2x。在其它一些实施方式中,进行拟合的函数可以为任意指数函数。

上述拟合参数表中示出的拟合参数和子区间的划分仅为示例性的数据,而不能将其理解成本发明对拟合参数或各个拟合子区间的具体限定。拟合参数或子区间的范围,可根据对于拟合精度的需求进行调整。类似的,映射表中的非拟合部和第二运算结果也为示例性的数据。

请参见图8,是本发明实施例提供的一种数据处理设备800的结构示意图。如图8所示的数据处理设备800包括一个或多个处理器810、通信接口820和存储器830。处理器810、通信接口820和存储器830可通过总线方式连接,也可通过无线传输等其他手段实现通信。本发明实施例以通过总线840连接为例。其中,该存储器830用于程序代码,该处理器810具有前述实施例中揭示的数据处理装置,用于执行该存储器830存储的程序代码,该程序代码被处理器810执行时,实现上述实施例所揭示的数据处理方法的步骤。

应当理解,在本发明实施例中,所称处理器810可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

通信接口820可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块或装置设备进行通信。例如,本申请实施例中通信接口820具体可用于接收用户输入的输入数据;或者接收外部设备的数据等。

存储器830可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器还可以包括上述种类的存储器的组合。

需要说明的,图8仅仅是本发明实施例的一种可能的实现方式,实际应用中,数据处理设备还可以包括更多或更少的部件,这里不作限制。关于本发明实施例中未示出或未描述的内容,可参见前述方法实施例中的相关阐述,这里不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及实施步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个数据处理设备中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等),执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1