用于执行算术运算的方法和处理设备.pdf

上传人:r5 文档编号:1294672 上传时间:2018-04-13 格式:PDF 页数:34 大小:2.16MB
返回 下载 相关 举报
摘要
申请专利号:

CN201610751357.2

申请日:

2016.08.29

公开号:

CN106547515A

公开日:

2017.03.29

当前法律状态:

公开

有效性:

审中

法律详情:

公开

IPC分类号:

G06F9/30; G06F9/34; G06F9/38

主分类号:

G06F9/30

申请人:

三星电子株式会社

发明人:

俞炯硕

地址:

韩国京畿道水原市

优先权:

2015.09.18 KR 10-2015-0132608

专利代理机构:

北京铭硕知识产权代理有限公司 11286

代理人:

韩明星;闫红玉

PDF下载: PDF下载
内容摘要

本发明提供一种用于执行算术运算的方法和处理设备。一种由处理设备执行算术运算的方法包括:确定逼近将对变量执行的算术运算的多项式;根据变量所属的变量段,适应性地确定用于对查找表(LUT)进行寻址的高位;通过使用高位的值对LUT进行寻址,来从LUT获得多项式的系数;通过使用系数计算多项式的结果值来执行算术运算。

权利要求书

1.一种由处理设备执行算术运算的方法,所述方法包括:
确定逼近将对变量执行的算术运算的多项式;
根据变量所属的变量段,适应性地确定用于对查找表LUT进行寻址的高位;
通过使用高位的值对LUT进行寻址,来从LUT获得多项式的系数;
通过使用系数计算多项式的结果值来执行算术运算。
2.根据权利要求1所述的方法,其中,适应性地确定高位的步骤包括:使用不一致数量
的高位来设置LUT的地址中的每个地址。
3.根据权利要求1所述的方法,其中,确定多项式的步骤包括:将能够输入到算术运算
的变量不一致地分割为变量段;
适应性地确定高位的步骤包括:使用高位的数量来设置LUT的地址,高位的数量分别对
应于变量段的大小。
4.根据权利要求3所述的方法,其中,变量段的不一致的程度基于多项式和算术运算之
间的误差。
5.根据权利要求4所述的方法,其中,设置LUT的地址的步骤包括:针对误差大的变量段
使用更大数量的高位来设置LUT的地址,针对误差小的变量段使用更小数量的高位来设置
LUT的地址。
6.根据权利要求4所述的方法,其中,变量段的不一致的程度取决于算术运算的类型;
用于设置LUT的地址的高位的数量取决于算术运算的类型。
7.根据权利要求1所述的方法,其中,适应性地确定高位的步骤包括:基于变量所属的
变量段的大小来确定高位的数量。
8.根据权利要求1所述的方法,其中,变量具有n位,高位是n位中的m位高位,其中,n和m
是自然数;
多项式的输入变量是变量的(n-m)位低位的值;
执行算术运算的步骤包括:通过使用输入变量和系数计算多项式的结果值来执行算术
运算。
9.根据权利要求1所述的方法,其中,确定多项式的步骤包括:将能够输入到算术运算
的变量不一致地分割为变量段;
适应性地确定高位的步骤包括:使用高位来将LUT的地址设置为分别与变量段对应。
10.一种用于执行算术运算的处理设备,所述处理设备包括:
多项式转换器,被配置为确定逼近将对变量执行的算术运算的多项式;
寻址单元,被配置为根据变量所属的变量段,适应性地确定用于对查找表LUT进行寻址
的高位;
获得器,被配置为通过使用高位的值对LUT进行寻址,来从LUT获得多项式的系数;
计算器,被配置为通过使用系数计算多项式的结果值来执行算术运算。
11.根据权利要求10所述的处理设备,其中,寻址单元还被配置为包括使用不一致数量
的高位来设置LUT的地址中的每个地址。
12.根据权利要求10所述的处理设备,其中,多项式转换器还被配置为将能够输入到算
术运算的变量不一致地分割为变量段;
寻址单元还被配置为使用高位的数量来设置LUT的地址,高位的数量分别对应于变量
段的大小。
13.根据权利要求10所述的处理设备,其中,寻址单元还被配置为基于变量所属的变量
段的大小来确定高位的数量。
14.根据权利要求10所述的处理设备,其中,变量具有n位,高位是n位中的m位高位,其
中,n和m是自然数;
多项式的输入变量是变量的(n-m)位低位的值;
计算器还被配置为通过使用输入变量和系数计算多项式的结果值来执行算术运算。
15.根据权利要求10所述的处理设备,其中,多项式转换器还被配置为将能够输入到算
术运算的变量不一致地分割为变量段;
寻址单元还被配置为使用高位来将LUT的地址设置为分别与变量段对应。

说明书

用于执行算术运算的方法和处理设备

本申请要求于2015年9月18日提交到韩国知识产权局的第10-2015-0132608号韩
国专利申请的权益,针对所有目的,该韩国专利申请的全部公开通过引用合并于此。

技术领域

本申请涉及用于执行算术运算的处理设备和用该处理设备执行算术运算的方法。

背景技术

在计算环境中,处理器的重要性已经逐渐增加。可使用处理器处理具有高分辨率
的图像或移动图像和复杂的软件算法,并且各种处理器构建技术(诸如,双核处理器、四核
处理器和多线程)的开发直接与相关技术领域(诸如,图像处理领域和软件工程领域)的开
发相关。在计算环境中,处理器用有限的资源进行操作。例如,由于性能瓶颈,导致处理器和
存储器之间的通信带宽有限,并且处理器的能耗限于某个水平或更低。因此,已经进行了在
计算环境的有限资源内增加处理性能的研究。

发明内容

提供本发明内容来以简化的形式介绍在下面的具体实施方式中进一步描述的对
构思的选择。本发明内容不意在标识所要求保护的主题的关键特征或必要特征,也不意在
用来帮助确定所要求保护的主题的范围。

在一个总体方面,一种由处理设备执行算术运算的方法,包括:确定逼近将对变量
执行的算术运算的多项式;根据变量所属的变量段,适应性地确定用于对查找表(LUT)进行
寻址的高位;通过使用高位的值对LUT进行寻址,来从LUT获得多项式的系数;通过使用系数
计算多项式的结果值来执行算术运算。

适应性地确定高位的步骤还可包括:使用不一致数量的高位来设置LUT的地址中
的每个地址。

确定多项式还的步骤可包括:将能够输入到算术运算的变量不一致地分割为变量
段;适应性地确定高位的步骤还可包括:使用多个高位来设置LUT的地址,的步骤高位分别
对应于变量段的大小。

变量段的不一致的程度可以基于多项式和算术运算之间的误差。

设置LUT的地址的步骤还可包括:针对误差大的变量段使用更大数量的高位来设
置LUT的地址,针对误差小的变量段使用更小数量的高位来设置LUT的地址。

变量段的不一致的程度可取决于算术运算的类型;用于设置LUT的地址的所述多
个高位可取决于算术运算的类型。

适应性地确定高位的步骤还可包括:基于变量所属的变量段的大小来确定高位的
数量。

变量可具有n位,高位可以是n位中的m高位,其中,n和m是自然数;多项式的输入变
量可以是变量的(n-m)位低位的值;执行算术运算的步骤还可包括:通过使用输入变量和系
数计算多项式的结果值来执行算术运算。

算术运算可以是用于评估包括平方根运算、逆平方根运算、倒数运算、对数运算、
指数运算、幂级数运算和三角运算中的任何一个或者任何两个或更多个的任何组合的初等
函数的算术运算。

确定多项式的步骤还可包括:将能够输入到算术运算的变量不一致地分割为变量
段;适应性地确定高位的步骤还可包括使用高位来将LUT的地址设置为分别与变量段对应。

多项式可以是具有(k+1)个系数的k次多项式;(k+1)个系数可被映射到LUT的地址
中的每个地址。

在另一个总体方面,一种非暂时性计算机可读存储介质存储用于致使计算硬件执
行上述方法的指令。

在另一个总体方面,一种用于执行算术运算的处理设备包括:多项式转换器,被配
置为确定逼近将对变量执行的算术运算的多项式;寻址单元,被配置为根据变量所属的变
量段,适应性地确定用于对查找表(LUT)进行寻址的高位;获得器,被配置为通过使用高位
的值对LUT进行寻址,来从LUT获得多项式的系数;计算器,被配置为通过使用系数计算多项
式的结果值来执行算术运算。

寻址单元可还被配置为使用不一致数量的高位来设置LUT的地址中的每个地址。

多项式转换器还可被配置为将能够输入到算术运算的变量不一致地分割为变量
段;寻址单元还可被配置为使用高位的数量来设置LUT的地址,高位的数量分别对应于变量
段的大小。

变量段的不一致的程度可以基于多项式和算术运算之间的误差;寻址单元还可被
配置为针对误差大的变量段使用更大数量的高位来设置LUT的地址,针对误差小的变量段
使用更小数量的高位来设置LUT的地址。

变量段的不一致的程度可取决于算术运算的类型;用于设置LUT的地址的高位的
数量可取决于算术运算的类型。

寻址单元还可被配置为基于变量所属的变量段的大小来确定高位的数量。

变量可具有n位,高位可以是n位中的m位高位,其中,n和m是自然数;多项式的输入
变量可以是变量的(n-m)位低位的值;计算器还可被配置为通过使用输入变量和系数计算
多项式的结果值来执行算术运算。

多项式转换器还可被配置为将能够输入到算术运算的变量不一致地分割为变量
段;寻址单元还可被配置为使用高位来将LUT的地址设置为与变量段对应。

从以下具体实施方式、附图和权利要求,将清楚这些特征和方面。

附图说明

图1是计算系统的示例的框图。

图2是用于描述使用多项式逼近初等函数的示例的示图。

图3A是用于描述逼近用于评估初等函数f(x)的算术运算的示例的示图。

图3B是用于描述用于执行图3A的算术运算的处理设备的示例的示图。

图4A是用于描述逼近用于评估初等函数f(x)的算术运算的另一个示例的示图。

图4B是用于描述用于执行图4A的算术运算的处理设备的另一个示例的示图。

图5是用于描述变量段的大小相同的情况的示例的示图。

图6是处理设备的详细硬件结构的示例的框图。

图7示出查找表(LUT)的示例。

图8是用于描述变量段、高位的数量和地址之间的关系的示例的示图。

图9是用于描述高位的数量和变量段之间的关系的示例的示图。

图10是用于描述由处理设备执行的使用LUT来评估通过逼近算术运算而获得的多
项式的处理的示例的示图。

图11是用于描述从10位变量X获得的将输入到二次多项式的值的示例的示图。

图12示出LUT的另一个示例。

图13是用于描述由处理设备执行的使用LUT来评估通过逼近算术运算而获得的多
项式的处理的另一个示例的示图。

图14是用于描述确定用于设置LUT的地址的高位的数量的方法示例的示图。

图15是用于描述使用固定数量的高位设置LUT的地址的情况的示例的示图。

图16是用于描述在初等函数log2(x)的情况下确定用于设置LUT的地址的高位的
数量的方法示例的示图。

图17是用于描述在初等函数l/x的情况下确定用于设置LUT的地址的高位的数量
的方法示例的示图。

图18是用于描述在初等函数的情况下确定用于设置LUT的地址的高位的数量
的方法示例的示图。

图19是用于描述在初等函数的情况下确定用于设置LUT的地址的高位的数
量的方法示例的示图。

图20是用于描述在初等函数ex的情况下确定用于设置LUT的地址的高位的数量的
方法示例的示图。

图21是用于描述在初等函数sin(x)的情况下确定用于设置LUT的地址的高位的数
量的方法示例的示图。

图22是由执行处理设备执行的算术运算的方法的示例的流程图。

贯穿附图和具体实施方式,相同的参考标号表示相同的元件。附图可不必成比例,
并且为了清楚、说明和方便起见,可夸大附图中元件的相对尺寸、比例和绘示。

具体实施方式

提供以下详细描述来帮助读者获得对在此描述的方法、设备和/或系统的全面理
解。然而,在此描述的方法、设备和/或系统的各种改变、修改及等同物对本领域的普通技术
人员而言将是清楚的。在此描述的操作的顺序仅是示例,并不限于在此阐述的顺序,而是除
了必需按特定顺序发生的操作之外,可如本领域普通技术人员将清楚的那样改变。此外,为
了更加清楚和简明,可省略对本领域的普通技术人员熟知的功能和构造的描述。

在此描述的特征可以以不同的形式被实施,而不解释为受限于在此描述的示例。
相反,提供在此描述的示例将使得本公开将是彻底和完整的,并将本公开的完整范围传达
给本领域的普通技术人员。

在此使用的所有术语(包括描述性术语或技术术语)将被理解为具有它们对于本
领域的普通技术人员而言具有的含义。然而,这些术语可根据本领域的普通技术人员的意
图、判例、或新技术的出现而具有不同的含义。另外,可由申请人任意地选择一些术语,并且
在这种情况下,将在具体实施方式中详细描述这些术语的含义。因此,将基于术语的含义连
同贯穿说明书的描述理解在此使用的术语。

另外,在此使用的术语“包括”及其变型将不被理解为必需包括所述元件或操作中
的全部,可不包括一些元件或操作或者还可包括额外元件或操作。

图1是计算系统1的示例的框图。

参照图1,计算系统1包括中央处理器(CPU)11、图形处理单元(GPU)12和存储器装
置20。CPU 10和GPU 12是处理设备,并且这些处理设备可以是除了CPU 11和GPU 12之外的
其它类型的处理器。图1仅示出与下述的一个或多个示例相关的计算系统1的组件,但本领
域的普通技术人员应该清楚,除了图1中示出的组件之外,计算系统1还可包括其它通用组
件。

计算系统1的示例包括台式计算机、膝上型计算机、智能电话、个人数字助理
(PDA)、便携式媒体播放器、视频游戏控制台、电视机顶盒、平板装置、电子书阅读器和可穿
戴装置,但不限于此。换句话讲,各种设备可被归为计算系统1的类别。

诸如CPU 11和GPU 12的处理设备是执行各种操作的硬件。CPU 11作为控制计算系
统1的整体功能的硬件进行操作,并且控制剩余的组件(即,GPU 12和存储器装置20)。CPU
11执行用于控制计算系统1的功能的各种类型的操作。GPU 12作为控制计算系统1的图形处
理功能的硬件进行操作。换句话讲,GPU 12执行各种类型的图形管线(诸如,开放式图形库
(OpenGL)、DirectX和计算统一装置架构(CUDA)),同时执行与图形管线相关的操作(诸如,
着色操作)。

存储器装置20可以是诸如动态随机存取存储器(DRAM)或静态随机存取存储器
(SRAM)的随机存取存储器(RAM),或者可以是只读存储器(ROM)或电可擦除可编程只读存储
器(EEPROM)。换句话讲,存储器装置20可存储CPU 11或GPU 12已经完成处理的数据(例如,
算术运算的结果),或者可提供将由CPU 11或GPU 12执行的数据(例如,源代码)。

在这个实例中,存储器装置20存储可由诸如CPU 11和GPU 12的处理设备访问的查
找表(LUT)200。CPU 11或GPU 12可访问LUT 200,以获得执行算术运算所需的数据。LUT 200
可以是其中数字数据映射到各地址的表。

算术运算的示例包括平方根运算、逆平方根运算、倒数运算、对数运算、指数运算、
幂级数运算和三角运算,但不限于此。平方根函数、逆平方根函数、倒数函数、对数函数、指
数函数、幂级数函数和三角函数是初等函数,并且CPU 11或GPU 12通过评估这些初等函数
来执行用于计算系统1的函数控制或图形处理的算术运算。

例如,当CPU 11或GPU 12执行特定类型的算术运算时,CPU 11或GPU 12通过参照
LUT 200获得被映射到特定地址的特定数字数据,并且使用该特定数字数据快速地处理特
定类型的算术运算。

图2是用于描述使用多项式逼近初等函数的示例的示图。

就性能、功耗和面积(PPA)而言,如果在处理设备内设置用于直接评估初等函数
(诸如,平方根运算、逆平方根运算、倒数运算、对数运算、指数运算、幂级数运算和三角运
算)的电路(硬件逻辑),则可能不是有效的。另外,即使可以以软件级处理这些初等函数,由
于在源代码中调用指令并且在源代码中包括一些转移语句,因此PPA也可能不是有效的。因
此,可通过多项式逼近这些初等函数,并且多项式可被评估以增加处理设备的处理性能。

参照图2,通过k次多项式逼近目标初等函数201(即,Y=f(x)),其中,k表示自然
数。例如,通过二次多项式202(即,aX'2+bX'+c)逼近目标初等函数201。因为通过二次多项
式202逼近目标初等函数201,所以存在误差205。因此,通过减小误差205,可获得评估目标
初等函数201的准确结果。

图3A是用于描述逼近用于评估初等函数301(即,f(x))的算术运算的示例的示图。

参照图3A,通过多个不同的二次多项式303至二次多项式306来逼近用于评估初等
函数301的算术运算。详细地讲,初等函数301(即,算术运算)具有变量X,并且变量X被分成
变量段①、②、③和④。在变量段①中,通过二次多项式303(即,a1X'2+b1X'+c1)逼近初等函
数301,在变量段②中,通过二次多项式304(即,a2X'2+b2X'+c2)逼近初等函数301,在变量段
③中,通过二次多项式305(即,a3X'2+b3X'+c3)逼近初等函数301,在变量段④中,通过二次
多项式306(即,a4X'2+b4X'+c4)逼近初等函数301。变量X'是通过如以下将说明地通过排除
变量X的高位从变量X派生的变量,并且被输入以评估二次多项式303至二次多项式306。

在这个实例中,术语“变量段”表示通过分割可输入到算术运算的变量范围而获得
的段,这些变量段的大小是不一致的。如图3A中所示,变量段①、②、③和④的大小是不一致
的。变量段①、②、③和④的大小是基于算术运算和二次多项式303至二次多项式306之间的
误差的大小,并且当误差大时,变量段的大小小,而当误差小时,变量段的大小大。

图3B是用于描述用于执行图3A的算术运算的处理设备的示例的示图。

参照图3A,二次多项式303至二次多项式306的系数a1至c4被存储在LUT 310中。处
理设备通过访问LUT 310,从LUT 310获得与初等函数301的变量X1、X2、X3等对应的系数,并
且使用获得的系数来评估二次多项式303至二次多项式306,从而执行初等函数301的算术
运算。

处理设备使用对应于变量的地址对LUT 310进行寻址。例如,当变量X1属于变量段
①时,处理设备通过使用对应于变量段①的地址Addr.i对LUT 310进行寻址来获得系数a1
b1和c1。另外,当变量X2对应于变量段②时,处理设备通过使用对应于变量段②的地址
Addr.i对LUT 310进行寻址来获得系数a2、b2和c2

图4A是用于描述逼近用于评估初等函数401(即,f(x))的算术运算的另一个示例
的示图。图4B是用于描述用于执行图4A的算术运算的处理设备的另一个示例的示图。

参照图4A,通过多个三次多项式403至三次多项式406逼近用于评估初等函数401
的算术运算。初等函数401(即,算术运算)具有变量X,并且变量X被分割为变量段
如上所述,变量段的大小是不一致的。变量段
的大小是基于算术运算和三次多项式403至三次多项式406之间的误差
的大小,并且当误差大时,变量段的大小小,而当误差小时,变量段的大小大。

参照图4B,处理设备通过访问LUT 410,从LUT 410获得与初等函数401的变量X1
X2、X3等对应的系数,并且使用获得的系数来评估三次多项式403至三次多项式406,从而执
行初等函数401的算术运算。

换句话讲,参照图3A至图4B,处理设备可在不顾及多项式的方次的情况下以类似
方式执行通过多项式逼近的算术运算。

图5是用于描述变量段的大小相同的情况的示例的示图。

参照图5,不同于以上参照图3A和图4A描述的示例,图5中的变量段的大小是相同
的。在上述初等函数的类型的图表中,存在曲线段和收敛于特定值的收敛段。当曲线段和收
敛段具有相同大小时,曲线段中的初等函数和逼近初等函数的多项式之间的误差大于收敛
段中的初等函数和逼近初等函数的多项式之间的误差。因此,当变量段的大小相同时,由于
曲线段中的误差大,导致难以获得算术运算的准确结果。然而,在本申请中描述的示例中,
在考虑到初等函数和逼近初等函数的多项式之间的误差的情况下,变量段的大小是不一致
的。

图6是处理设备10的详细硬件结构的示例的框图。

参照图6,处理设备10包括多项式转换器110、寻址单元120、获得器130和计算器
140。图6仅示出与以下描述的一个或多个示例相关的处理设备10的组件,但本领域的普通
技术人员应该清楚,除了图6中示出的组件之外,处理设备10还可包括通用组件。

处理设备10可以是图1的CPU 11、图1的GPU 12、另一种类型的处理器或它们的组
合。

多项式转换器110确定逼近将要对变量执行的算术运算的多项式。多项式转换器
110确定逼近算术运算的多项式的方次。在下述的示例中,为了方便描述,通过二次多项式
或三次多项式来逼近算术运算,但示例不限于此。

寻址单元120根据变量所属的变量段,适应性地确定用于对存储在存储器装置20
中的LUT(例如,图1的LUT 200)进行寻址的高位。例如,当变量是n位(其中,n是自然数)时,
寻址单元120根据这n位所属的变量段来确定这n位中的m个高位(其中,m是自然数)。适应性
地确定高位的含义是,根据变量段确定的高位的数量可适应性地变化。因此,可用“动态地”
取代术语“适应性地”。

寻址单元120根据变量所属的变量段的大小来确定高位的数量。例如,当变量段具
有大的大小时,寻址单元120确定数量小的高位,而当变量段具有小的大小时,寻址单元120
确定数量大的高位。

寻址单元120确定对LUT进行寻址的高位。换句话讲,寻址单元120使用确定的高位
对LUT进行寻址。

现在,将描述LUT。LUT的地址分别对应于变量段,并且使用不一致数量的高位来设
置。换句话讲,分别使用与通过多项式转换器110不一致地将可输入算术运算的变量分割为
变量段而获得的变量段的大小对应的高位的数量来设置LUT的地址。变量段的不一致程度
基于(如以上参照图3A和图4A描述的)算术运算和逼近算术运算的多项式之间的误差。当误
差大时,使用较大数量的高位来设置LUT的地址,而当误差小时,使用较小数量的高位来设
置LUT的地址。

当多项式是k次多项式时,k次多项式的(k+1)个系数被映射到LUT的地址中的每个
地址。例如,对于二次多项式而言,三个系数被映射到LUT的一个地址,而对于三次多项式而
言,四个系数被映射到LUT的一个地址。在图1中,一个LUT被存储在存储器装置20中,但存储
器装置20可根据算术运算的类型和逼近算术运算的多项式的方次来存储不同LUT。

变量段的不一致程度可根据算术运算的类型(例如,基于算术运算是否是对数运
算、平方根运算等)而改变。因此,用作LUT的地址的高位的数量可根据算术运算的类型而改
变。

以下,将详细描述寻址单元120如何使用LUT来确定高位的数量。

获得器130通过使用适应性地确定的高位的值对LUT进行寻址,来从LUT中获得多
项式的系数。例如,参照图3A和图3B,当通过多项式转换器110确定的多项式是二次多项式
303至二次多项式306时,获得器130从LUT 310获得二次多项式303至二次多项式306的系数
a1至c4

计算器140使用系数来计算多项式的结果值,从而执行算术运算。换句话讲,多项
式的结果值被视为执行算术运算的结果。如上所述,当变量具有n位并且高位是n位中的m位
时,多项式的输入变量X'具有变量中的(n-m)低位的值。计算器140通过使用输入变量X'和
系数计算多项式的结果值来执行算术运算。

LUT被预先存储在存储器装置20中。如上所述,存储器装置20可根据算术运算或根
据多项式的方次来存储各种LUT。在存储在存储器装置20中的LUT中,将被用作地址的高位
的数量和系数值可根据计算系统1的使用环境而改变。换句话讲,LUT中的数据可由用户来
改变,LUT的结构并不受限制。然而,LUT的地址被设置成使得高位的数量是不一致的。

图7示出LUT 701的示例。

参照图7,LUT 701包括地址项和系数项。例如,当LUT 701用于二次多项式时,二次
多项式的三个系数被映射到LUT 701的一个地址。例如,当处理设备10的寻址单元120请求
地址Add.i.处的数据时,获得器130从LUT 701获得系数a1、b1和c1。然而,图7的LUT 701仅是
示例,LUT 710的结构可有所不同。因此,本申请中描述的示例中的LUT不限于图7的LUT
701。

图8是用于描述变量段、高位的数量和地址之间的关系的示例的示图。

参照图8,算术运算是初等函数log2(x)。可输入到初等函数log2(x)的变量被分割
为具有不一致大小的变量段801至变量段803。如上所述,在初等函数log2(x)中,变量被分
割为对应于陡峭曲线段的变量段801、对应于柔和曲线段的变量段802和对应于收敛段的变
量段803。为了方便描述,不描述除了变量段801至变量段803之外的图8中的那些段。

变量段801至变量段803的大小基于初等函数log2(x)和将被用于逼近初等函数
log2(x)的多项式而被定义。例如,当通过一个多项式逼近变量段801和802时,相比于变量
段803,误差大。因此,通过两个多项式逼近变量段801和802以减小误差。变量段801比变量
段802小,以进一步减小误差。因此,变量2-n-4和变量2-n-1之间的变量被分成具有不一致大小
的变量段801至变量段803。

由于变量段801至变量段803的大小不一致,因此变量段801至变量段803中包括的
变量的数量也互不相同。因此,当变量段的大小大时,将用作地址的高位的数量小,而当变
量段的大小小时,将用作地址的高位的数量大。换句话讲,可根据变量段801至变量段803的
不一致大小推断出将用作地址的高位的数量是不一致的。例如,参照候选变量列表810,对
应于变量段801的高位是“000001”,对应于变量段802的高位是“00001”,对应于变量段803
的高位是“0001”。

根据初等函数log2(x)的LUT寻址820,当2-n-4≤X<2-n-3时,变量X属于变量段801并
且针对与高位“000001”对应的地址Add.i执行寻址,当2-n-3≤X<2-n-2时,变量X属于变量段
802并且针对与高位“00001”对应的地址Add.i+1执行寻址,当2-n-2≤X<2-n-1时,变量X属于变
量段803并且针对与高位“0001”对应的地址Add.i+2执行寻址。

针对图6,当确定具有10位的变量X属于变量段801时,寻址单元120基于候选变量
列表810,确定变量X的6位高位“000001”。然后,获得器130确定对应于高位“000001”的地址
是Addr.i,并且使用地址Addr.i对LUT进行寻址,从而获得变量段801中的逼近初等函数
log2(x)的多项式的系数。

图9是用于描述高位的数量和变量段之间的关系的示例的示图。

如上所述,当变量段的大小增大时,高位的数量减小。另一方面,当变量段的大小
减小时,高位的数量增大。

参照图9,属于变量段901的变量具有3位高位“010”并且针对地址Addr.i'进行寻
址,属于变量段902的变量具有5位高位“11110”并且针对地址Addr.i″进行寻址。从
“0100000000”至“0101111111”的10位变量属于变量段901,从“1111000000”至
“1111011111”的10位变量属于变量段902。换句话讲,由于属于变量段901的变量比属于变
量段902的变量更多,因此变量段901的大小大于变量段902的大小。

如此,通过使用不一致数量的高位来设置LUT的地址,这些地址对应于具有各种大
小的变量段。变量段的不一致程度基于变量段中的算术运算和逼近算术运算的多项式之间
的误差,并且变量段的不一致程度是由想要生成LUT的用户根据算术运算的类型和多项式
的方次而任意限定的因素。

图10是用于描述由图6中的处理设备10执行的使用LUT来评估通过逼近算术运算
而获得的多项式的处理的示例的示图。

参照图10,多项式转换器110首先确定通过二次多项式C0+C1X'+C2X'2来逼近算术
运算f(x)。针对将由处理设备10执行的算术运算输入n位变量X1001。算术运算可以是上述
任一种初等函数。寻址单元120根据n位变量X1001所属的变量段,确定合适数量的高位。获
得器130使用高位的值对LUT1010进行寻址,从而从LUT 1010获得二次多项式C0+C1X'+C2X'2
的系数C0、C1和C2。不同于算术运算的n位变量X 1001,将输入二次多项式C0+C1X'+C2X'2的变
量X'是通过从n位变量X 1001中排除确定的高位而获得的m位低位的值。计算机140通过将
低m位的值求平方来计算变量X'2。最后,计算器140使用系数C0、C1和C2和变量X'和X'2来计算
二次多项式C0+C1X'+C2X'2的结果值,从而执行算术运算。

图11是用于描述从10位变量X获得的将输入到二次多项式的值的示例的示图。

参照图11,假设输入到用于评估初等函数log2(x)的算术运算的10位变量X是
“01001010xx”。寻址单元120根据10位变量X所属的变量段(例如,图9的变量段901)来确定3
位高位“010”。如图9中所述,3位高位“010”对应于LUT的地址Addr.i。获得器130使用地址
Addr.i'对LUT进行寻址,从而从LUT获得二次多项式1100(即,C0+C1X'+C2X'2)的系数ak、bk
ck。7位低位“01010xx”对应于二次多项式1100的输入变量X'。计算器140计算变量X'2,然后
使用系数ak、bk和ck和变量X'和X'2来计算二次多项式1100的结果值,从而执行初等函数log2
(x)的算术运算。

图12示出LUT 1201的另一个示例。

参照图12,不同于图7的LUT 701,LUT 1201用于三次多项式。因此,三次多项式的
四个系数被映射到LUT 1201中的一个地址。如上所述,LUT 701和LUT 1201被预先存储在存
储器装置20中,处理设备10根据由多项式转换器110确定的多项式的方次来使用LUT 701或
1201。尽管在上述示例中使用二次多项式或三次多项式,但示例不限于此。

图13是用于描述由图6中的处理设备10执行的使用LUT来评估通过逼近算术运算
而获得的多项式的处理的另一个示例的示图。

不同于示出评估二次多项式的处理的图10,图13示出评估三次多项式C0+C1X'+
C2X'2+C3X'3的处理。以与图10的处理类似的方式来执行图13的处理,不同的是,另外从LUT
1310获得三次系数C3并且计算器140另外计算变量X'3

图14是用于描述确定用于设置LUT的地址的高位的数量的方法1410和1420的示例
的示图。

参照图14,当变量被分割为具有随着变量值增大而逐渐减小的大小的变量段时,
执行方法1410。因此,当变量值增大时,将用作LUT的地址的高位的数量增大。当变量被分成
具有随着变量值增大而逐渐增大的大小的变量段时,执行方法1420。因此,当变量值增大
时,将用作LUT的地址的高位的数量增小。换句话讲,将用作LUT的地址的高位的数量根据算
术运算的类型、多项式的方次、算术运算的准确度和算术运算的精度而变化。

图15是用于描述使用固定数量的高位设置LUT的地址的情况的示例的示图。

参照图15,使用固定或一致数量的高位设置LUT的地址意味着,变量段的大小是相
同的。如上所述,当在初等函数中变量段的大小相同时,初等函数和多项式之间的误差大和
小的区域共存,因此可难以获得算术运算的准确结果。

图16是用于描述在初等函数log2(x)的情况下确定用于设置LUT的地址的高位的
数量的方法1610的示例的示图。

参照图16,初等函数log2(x)的曲线图1600中的变量被分割为变量段1601至变量
段1603。在曲线图1600中,相比于对应于收敛段的变量段1603的大小,对应于曲线段的变量
段1601的大小相对小。在这个示例中,为了方便起见,使用术语“曲线段”和“收敛段”,但示
例不限于此。

为了设置分别对应于变量段1601的地址,使用5位高位。换句话讲,使用“01000”、
“01001”、“01010”、“01011”、“01100”和“01101”来设置分别对应于变量段1601的地址。换句
话讲,因为变量段1601的大小小于变量段1602和变量段1603的大小,所以使用比用于设置
分别对应于变量段1602和变量段1603的地址更大数量的高位来设置分别对应于变量段
1601的地址。由于变量段1602的大小小于变量段1603的大小,因此使用4位高位来设置分别
对应于变量段1602的地址。使用3位高位来设置与变量段1601至变量段1603之中的大小最
大的变量段1603对应的地址。

变量段1601至变量段1603的大小是不一致的,使得初等函数log2(x)和对应于变
量段1601至变量段1603的多项式之间的误差减小,从而算术运算的准确度或精度增大。因
此,通过在使用n位变量(例如,10位变量)设置将被寻址的LUT的地址的过程中使用不一致
数量的高位,初等函数log2(x)和对应于变量段1601至变量段1603的多项式之间的误差减
小并且算术运算的准确度或精度增大。

在图16中,为了方便描述,示出变量段1601至变量段1603的大小和方法1610,但示
例不限于此。

图17是用于描述在初等函数l/x的情况下确定用于设置LUT的地址的高位的数量
的方法1710的示例的示图。

参照图17,如同图16中,初等函数l/x的曲线图1700中的变量被分割为具有不一致
大小的变量段1701至变量段1703。此外,基于不一致大小的变量段1701至变量段1703,用于
设置LUT的地址的高位的数量是不一致的。在图17中,为了方便描述,示出变量段1701至变
量段1703的不一致大小和方法1710,但示例不限于此。

图18是用于描述在初等函数的情况下确定用于设置LUT的地址的高位的数量
的方法1810的示例的示图。

参照图18,初等函数的曲线图1800中的变量被分割为具有不一致大小的变量
段1801至变量段1803。此外,基于不一致大小的变量段1801至变量段1803,用于设置LUT的
地址的高位的数量是不一致的。在图18中,为了方便描述,示出变量段1801至变量段1803的
不一致大小和方法1810,但示例不限于此。

图19是用于描述在初等函数的情况下确定用于设置LUT的地址的高位的数
量的方法1910的示例的示图。

参照图19,初等函数的曲线图1900中的变量被分割为具有不一致大小的变
量段1901至变量段1903。此外,基于不一致大小的变量段1901至变量段1903,用于设置LUT
的地址的高位的数量是不一致的。在图19中,为了方便描述,示出变量段1901至变量段1903
的不一致大小和方法1910,但示例不限于此。

图20是用于描述在初等函数ex的情况下确定用于设置LUT的地址的高位的数量的
方法2010的示例的示图。

参照图20,初等函数ex的曲线图2000中的变量被分割为具有不一致大小的变量段
2001至变量段2003。此外,基于不一致大小的变量段2001至变量段2003,用于设置LUT的地
址的高位的数量也是不一致的。在图20中,为了方便描述,示出变量段2001至变量段2003的
不一致大小和方法2010,但示例不限于此。

图21是用于描述在初等函数sin(x)的情况下确定用于设置LUT的地址的高位的数
量的方法2110的示例的示图。

参照图21,初等函数sin(x)的曲线图2100中的变量被分割为具有不一致大小的变
量段2101至变量段2103。此外,基于不一致大小的变量段2101至变量段2103,用于设置LUT
的地址的高位的数量是不一致的。在图21中,为了方便描述,示出变量段2101至变量段2103
的不一致大小和方法2110,但示例不限于此。

在图16至图21中,对应于特定初等函数的曲线段和收敛段的变量段被设置成具有
不一致大小,以不一致地确定用于确定LUT的地址的高位的数量。然而,本领域的普通技术
人员应该清楚,除了以上参照图16至图21描述的初等函数之外,该技术还可应用于其它类
型的初等函数。

图6中的存储器装置20基于上述确定高位的数量的方法(例如,方法1610至2110)
来存储包括地址的LUT。此外,图6中的寻址单元120基于这些方法(例如,方法1610至2110)
在输入用于算术运算的变量时确定用于对LUT进行寻址的高位。

图22是执行由图6中的处理设备10执行的算术运算的方法的示例的流程图。参照
图22,该方法包括由处理设备10顺序执行的上述操作。因此,即使以下省略了上述细节,上
述细节也适用于图22的方法。

在操作2201中,多项式转换器110确定逼近将对变量执行的算术运算的多项式。

在操作2202中,寻址单元120根据变量所属的变量段,适应性地确定用于对LUT(例
如,图1的LUT 200)进行寻址的高位。

在操作2203中,获得器130通过使用高位的值对LUT进行寻址,从LUT获得多项式的
系数。

在操作2204中,计算器140通过使用这些系数计算多项式的结果值来执行算术运
算。

如上所述,通过不一致地设置将用于对LUT进行寻址的高位的数量,算术运算和逼
近算术运算的多项式之间的误差减小,从而处理设备能够准确并且精确地执行算术运算。

通过硬件组件实现执行在此针对图1至图22描述的操作的图1中示出的计算系统
1、中央处理器(CPU)11、图形处理单元(GPU)12、存储器装置20和LUT 200、图3B中示出的LUT
310、图4B中示出的LUT、图6中示出的处理设备10、多项式转换器110、寻址单元120、获得器
130、计算器140和存储器装置20、图10中示出的寻址单元120、计算器140和LUT 1010、图13
中示出的寻址单元120、计算器140和LUT 1310。硬件组件的示例包括控制器、传感器、发生
器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、触发器、积分器和本领
域的普通技术人员已知的任何其它电子组件。在一个示例中,通过计算硬件(例如,通过一
个或多个处理器或计算机)实现硬件组件。通过一个或多个处理元件(诸如,逻辑门阵列、控
制器和算术逻辑单元、数字信号处理器、微计算机、可编程逻辑控制器、现场可编程门阵列、
可编程逻辑阵列、微处理器或能够以限定方式响应于并且执行指令以实现期望结果的本领
域的普通技术人员已知的任何其它装置或装置的组合)实现处理器或计算机。在一个示例
中,处理器或计算机包括或者连接到存储由处理器或计算机执行的指令或软件的一个或多
个存储器。由处理器或计算机实现的硬件组件执行指令或软件(诸如,操作系统(OS)和在OS
上运行的一个或多个软件应用),以执行在此针对图1至图22描述的操作。硬件组件还响应
于指令或软件的执行来访问、操纵、处理、创建并且存储数据。为了简便起见,单数术语“处
理器”或“计算机”可用于描述在此描述的示例,但在其它示例中,使用多个处理器或计算
机,或者处理器或计算机包括多个处理元件、或多种类型的处理元件或这二者。在一个示例
中,硬件组件包括多个处理器,并且在另一个示例中,硬件组件包括一个处理器和一个控制
器。硬件组件具有不同处理配置中的任一个或多个,不同处理配置的示例包括单个处理器、
独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指
令单数据(MISD)多处理和多指令多数据(MIMD)多处理。

可由如上所述的执行指令或软件以执行这里描述的操作的计算硬件(例如,由一
个或多个处理器或计算机)来执行图22中示出的执行这里描述的操作的方法。

用于控制处理器或计算机以实现硬件组件并且执行如上所述的方法的指令或软
件被编写为计算机程序、代码段、指令或它们的任何组合,以独立地或共同地指示或配置处
理器或计算机作为用于执行由硬件组件执行的操作和如上所述的方法的机器或专用计算
机进行操作。。在一个示例中,指令或软件包括由处理器或计算机直接执行的机器代码(诸
如,编译器产生的机器代码)。在另一个示例中,指令或软件包括由处理器或计算机使用解
释器执行的更高级代码。本领域的普通技术编程人员可容易地基于附图中示出的框图和流
程图以及说明书中的对应描述来编写指令或软件,附图中示出的框图和流程图以及说明书
中的对应描述公开了用于执行由硬件组件执行的操作和如上所述的方法的算法。

用于控制处理器或计算机来实现硬件组件并且执行如上所述方法的指令或软件
和任何关联的数据、数据文件和数据结构被记录、存储或固定在一个或多个非暂时性计算
机可读存储介质的中或上。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随
机存取存储器(RAM)、闪存存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+
R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁-光数据存储装
置、光学数据存储装置、硬盘、固态盘和本领域的普通技术人员已知的能够将指令或软件以
及任何关联的数据、数据文件和数据结构以非暂态方式存储并且将指令或软件以及任何关
联的数据、数据文件和数据结构提供到处理器或计算机使得处理器或计算机可执行指令的
任何装置。在一个示例中,指令或软件以及任何关联的数据、数据文件和数据结构分布于联
网计算机系统,使得由处理器或计算机以分布方式存储、访问并执行指令和软件以及任何
关联的数据、数据文件和数据结构。

虽然本公开包括具体示例,但本领域的普通技术人员将清楚,在不脱离权利要求
及其等同物的精神和范围的情况下,在这些示例中可进行形式和细节上的各种改变。在此
描述的示例将被视为只是描述含义的,而不是出于限制目的。对每个示例中的特征或方面
的描述将被视为可适用于其它示例中的类似特征或方面。如果所描述技术以不同次序执
行,和/或如果所描述系统、构架、装置或电路中的组件以不同方式组合和/或被其它组件或
它们的等同物取代或补充,则可实现合适的结果。因此,本公开的范围不由具体实施方式限
定,而是由权利要求及其等同物限定,并且在权利要求书及其等同物的范围内的所有变形
将被理解为被包括在本公开中。

用于执行算术运算的方法和处理设备.pdf_第1页
第1页 / 共34页
用于执行算术运算的方法和处理设备.pdf_第2页
第2页 / 共34页
用于执行算术运算的方法和处理设备.pdf_第3页
第3页 / 共34页
点击查看更多>>
资源描述

《用于执行算术运算的方法和处理设备.pdf》由会员分享,可在线阅读,更多相关《用于执行算术运算的方法和处理设备.pdf(34页珍藏版)》请在专利查询网上搜索。

本发明提供一种用于执行算术运算的方法和处理设备。一种由处理设备执行算术运算的方法包括:确定逼近将对变量执行的算术运算的多项式;根据变量所属的变量段,适应性地确定用于对查找表(LUT)进行寻址的高位;通过使用高位的值对LUT进行寻址,来从LUT获得多项式的系数;通过使用系数计算多项式的结果值来执行算术运算。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1