CN109716332A - 分段多项式评估指令 - Google Patents

分段多项式评估指令 Download PDF

Info

Publication number
CN109716332A
CN109716332A CN201780056480.5A CN201780056480A CN109716332A CN 109716332 A CN109716332 A CN 109716332A CN 201780056480 A CN201780056480 A CN 201780056480A CN 109716332 A CN109716332 A CN 109716332A
Authority
CN
China
Prior art keywords
input
coefficient
partial
multinomial
value
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
CN201780056480.5A
Other languages
English (en)
Inventor
E·马胡林
D·霍伊尔
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN109716332A publication Critical patent/CN109716332A/zh
Pending legal-status Critical Current

Links

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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5354Using table lookup, e.g. for digit selection in division by digit recurrence

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Advance Control (AREA)

Abstract

一种方法包含在处理器处检索用于对多项式执行第一分段霍纳方法运算的第一指令,且执行所述第一指令。执行所述第一指令导致所述处理器执行操作,所述操作包含基于第一函数输入的区间访问一或多个查找表,以确定所述第一输入范围的所述多项式的第一系数。所述操作还包含确定所述第一分段霍纳方法运算的第一局部多项式输出。确定所述第一局部多项式输出包含将第一局部多项式输入与所述第一函数输入相乘,来产生第一局部值,且将所述第一系数与所述第一局部值相加以确定所述第一局部多项式输出。

Description

分段多项式评估指令
相关申请案的交叉引用
本申请案要求2016年9月22日申请的美国专利申请案第15/273,481号的优先权,所述申请案的全部内容以引用的方式并入本文中。
技术领域
本发明大体上涉及用于评估非线性函数的指令。
背景技术
技术进步已经产生更小且更强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如便携式无线电话、个人数字助理(personal digitalassistant;PDA)、平板计算机及寻呼装置,其体积小,重量轻,且易于由用户携带。许多此类计算装置包含并入于其中的其它装置。举例来说,无线电话还可包含数字静态相机、数码摄像机、数字记录器和音频文件播放器。并且,此类计算装置可处理可执行指令,包含软件应用程序,例如可用以存取互联网的网络浏览器应用程序,及利用静态相机或摄像机并提供多媒体播放功能性的多媒体应用程序。
无线装置可包含用于评估非线性函数的处理器。可使用非线性函数处理各种不同应用。可使用非线性函数处理的应用的非限制性实例包含回声抵消应用、图像内插应用、无线通信应用、信号处理应用等。高性能非线性处理可能需要相对大量的处理阶段,其继而可能导致相对较高的功率消耗以及对相对大量硬件组件的使用。
为了说明,处理器可使用查找表估计非线性函数。举例来说,指令可能可执行以导致所述处理器查找表项来估计(例如,评估)非线性函数。然而,供处理器使用的表项数目可能关于待评价函数的位精确度。作为非限制性实例,处理器可能查找大致一千个表项来以高达十位精确度估计非线性函数的值。处理器可能经历相对大量的处理阶段来查找一千个表项。或者,所述处理器可通过应用有限输入范围的多项式估计非线性函数。然而,待评价函数的位精确度可能与多项式的阶数成比例。相比于较低阶多项式(例如,二次多项式),使用较高阶多项式(例如,四阶多项式)对待评价函数实现较高位精确度可能导致相对大量的处理阶段。
发明内容
根据本文所公开的技术的一个实施方案,一种方法包含在处理器处检索用于对多项式执行第一分段霍纳方法运算的第一指令,且执行所述第一指令。执行所述第一指令导致所述处理器执行包含基于对应于第一输入范围的第一函数输入的区间访问一或多个查找表,以确定所述第一输入范围的所述多项式的第一系数的操作。所述操作还包含确定所述第一输入范围的所述第一分段霍纳方法运算的第一局部多项式输出。确定所述第一局部多项式输出包含将第一局部多项式输入与所述第一函数输入相乘,来产生第一局部值,且将所述第一系数与所述第一局部值相加以确定所述第一局部多项式输出。
根据本文所公开的技术的另一实施方案,设备包含存储器,其存储用于对多项式执行第一分段霍纳方法运算的第一指令。所述设备还包含存储一或多个查找表的数据存储区。所述一或多个查找表包含多个输入范围的多项式的系数值。设备进一步包含系数确定电路,其经配置以基于对应于第一输入范围的第一函数输入的区间访问所述一或多个查找表,以确定所述第一输入范围的所述多项式的第一系数。所述设备还包含计算电路,其经配置以将第一局部多项式输入与所述第一函数输入相乘,来产生第一局部值。所述计算电路还被配置成将所述第一系数与所述第一局部值相加,以确定所述第一输入范围的所述第一分段霍纳方法运算的第一局部多项式输出。
根据本文所公开的技术的另一实施方案,非暂时性计算机可读媒体包含用于对多项式执行第一分段霍纳方法运算的第一指令。在由处理器执行时,所述第一指令导致所述处理器执行包含基于对应于第一输入范围的第一函数输入的区间访问一或多个查找表,以确定所述第一输入范围的所述多项式的第一系数的操作。所述操作还包含确定所述第一输入范围的所述第一分段霍纳方法运算的第一局部多项式输出。确定所述第一局部多项式输出包含将第一局部多项式输入与所述第一函数输入相乘,来产生第一局部值,且将所述第一系数与所述第一局部值相加以确定所述第一局部多项式输出。
根据本文所公开的技术的另一实施方案,设备包含用于存储用于对多项式执行第一分段霍纳方法运算的第一指令的装置。所述设备还包含用于存储一或多个查找表的装置。所述一或多个查找表包含用于所述多项式的系数值。所述设备还包含用于基于对应于第一输入范围的第一函数输入的区间访问所述一或多个查找表以确定所述第一输入范围的所述多项式的第一系数的装置。所述设备还包含用于将第一局部多项式输入与所述第一函数输入相乘来产生第一局部值的装置。所述设备还包含用于将所述第一系数与所述第一局部值相加以确定所述第一分段霍纳方法运算的第一局部多项式输出的装置。
附图说明
图1是用于使用分段多项式评估指令评估非线性函数的系统的图解;
图2说明一种用于使用分段多项式评估指令评估非线性函数的方法;以及
图3是包含用于使用分段多项式评估指令评估非线性函数的组件的电子装置的图解。
具体实施方式
参看图1,展示用于使用分段多项式评估指令评估非线性函数的系统100。系统100可实施在移动电话、个人数字助理(PDA)、计算机、笔记本电脑、服务器、娱乐单元、导航装置、音乐播放器、视频播放器、数字视频播放器、数字视频光盘(DVD)、播放器或任何其它装置中。
系统100包含耦合到处理器104的存储器102。根据一个实施方案,处理器104可包含标量处理器。根据另一实施方案,处理器104可包含单指令多数据(a single-instruction-multiple-data;SIMD)处理器。根据一个实施方案,存储器102可以是非暂时性计算机可读媒体,其包含可由处理器104执行的指令。举例来说,存储器102包含第一指令106、第二指令107、第三指令109和第四指令111,其可由处理器104执行来对可用于近似特定输入范围的非线性函数的多项式执行分段霍纳方法运算。
处理器104包含一或多个寄存器110、变换电路112、系数确定电路114、计算电路116,以及数据存储区118(例如,数据库)。尽管数据存储区118展示为包含在处理器104中,但在其它实施方案中,数据存储区118可能与处理器104分离(且对其可访问)。类似地,尽管一或多个寄存器110展示为包含在处理器104中,但在其它实施方案中,一或多个寄存器110可能与处理器104分离(且对其可访问)。在其它实施方案中,处理器104可包含额外(或较少)组件。作为一非限制性实例,在其它实施方案中,处理器104还可包含一或多个算术逻辑单元(arithmetic logic unit;ALU)、一或多个专用执行单元等。尽管处理器104展示为包含变换电路112、系数确定电路114,以及计算电路116,但在其它实施方案中,各电路组件112、114、116的操作可以由单一处理组件执行。
一或多个寄存器110可存储函数数据120。函数数据120包含待由处理器104评估的非线性函数121。举例来说,函数数据120以及非线性函数121可以是通过与非线性函数121关联的应用提供到处理器104的数据的一部分。为了说明,非线性函数121可以是多项式、三角、对数、指数或其它非线性函数,其精确评估在计算上可能是昂贵的,例如由于用于较高精确度评估的大量表项,或由于用于精确近似非线性函数121的高阶多项式评估。非线性函数121可由表达为 的多项式近似。根据实例,多项式p(x)包含n+1个系数(例如,a0、a1、a2、a3、…、an)。然而,为了更精确地使用较低阶多项式近似非线性函数121,可使用分段多项式,其包含对应于(x)的不同区间的多个片段,且对于(x)的每个区间可具有不同系数。近似非线性函数121的精确度可随(x)区间的数目增加而改善。也就是说,可由使用跨越(x)的不同范围的分段多项式近似的更多片段,得到更高的位精确度。
处理器104可经配置以使用不同区间(例如,输入范围)来评估非线性函数121。区间亦可包含在函数数据120中。举例来说,函数数据120包含非线性函数121的第一输入范围122、非线性函数121的第二输入范围124、非线性函数121的第三输入范围126,以及非线性函数121的第N输入范围128。N可为大于零的任何整数值。举例来说,如果N等于十三,那么非线性函数121可包含十三个不同输入范围。如本文所使用,各输入范围122到128可对应于非线性函数121的变量(x)的有限范围。可使用特定位数表达各输入范围122到128。作为非限制性实例,可使用十六个位表达各输入范围122到128。
为便于说明,第一输入范围122可包含零与一之间的(x)值,第二输入范围124可包含一与二之间的(x)值,第三输入范围126可包含二与三之间的(x)值,且第N输入范围128可包含三与四之间的(x)值。应注意以上实例是出于说明性目的,且不应被理解为限制。在其它实例中,各输入范围可包含跨越较短区间的(x)值,以在评估非线性函数121期间获得更高的位精确度。
处理器104可经配置以从存储器102检索第一指令106。在从存储器102检索第一指令106之后,处理器104可经配置以执行第一指令106,来评估非线性函数121。举例来说,变换电路112可经配置以从一或多个寄存器110检索函数数据120。当检索函数数据120时,变换电路112可经配置以将非线性函数121变换为具有一或多个系数的分段多项式132。举例来说,变换电路112可将分段算法应用于非线性函数121,来将非线性函数121变换为分段多项式132。根据一个实施方案,分段算法是基于霍纳方法。为了说明,分段多项式132可表达为p(x)=a0+x(a1+x(a2+x(a3+…+x(an-1+an))))。分段多项式132还可包含n+1个系数(例如,a0、a1、a2、a3、…、an),其包含在非线性函数121中。
因此,变换电路112可使用霍纳方法,来将非线性函数121(或非线性函数121的近似)从单项式形式(例如,变换为计算上高效的形式(例如p(x)=a0+x(a1+x(a2+x(a3+…+x(an-1+anx)))))。变换电路112可产生包含分段多项式132的多项式数据130。多项式数据130可存储在一或多个寄存器110中。
在产生多项式数据130之后,系数确定电路114可经配置以通过执行指令106、107、109、111确定分段多项式132的n+1个系数的值。数据存储区118可包含用于各多项式系数(a0到an)的查找表140。举例来说,系数确定电路114可访问存储在数据存储区118中的一或多个查找表140,来确定特定输入范围的分段多项式132的每一个n+1系数的值。举例来说,一或多个查找表140包含a0查找表、a1查找表、a2查找表、a3查找表以及an查找表。因此,一或多个查找表140的各查找表与分段多项式132中的一或多个系数的不同系数关联。尽管查找表140展示为待存储在数据存储区118中,但在其它实施方案中,查找表140可存储在寄存器(例如,一或多个寄存器110)中。当确定特定输入范围的系数值(a0到an)时,处理器104可将对于特定输入范围所确定的系数应用于分段多项式132,以确定(例如,评估)特定输入范围(例如,区间)处的非线性函数。举例来说,处理器104可将所确定的a0值插入分段多项式132中、将所确定的a1值插入分段多项式132中,等等。
表1说明可以在对应于函数输入(x)的输入范围的n=3的实例中执行的一连串依序运算。
表1的每个行说明在分段霍纳方法的对应运算期间的处理,其中第一运算(运算编号1)包含查找表(LUT)读取来基于函数输入(Ftn.Input)x的输入范围从数据存储区118检索系数a3,以及产生第一运算的第一值a3。局部多项式输入对应于先前运算的值(例如,对于第一运算为0),局部值指示函数输入与局部多项式输入的乘法运算,且运算值指示将检索的系数(例如,a3)与局部值相加的结果。运算值还可被称作“局部多项式输出”。LUT读取以及乘法运算可以并行执行,将结果相加来产生运算值。如下文进一步详细描述,可以响应于执行所述指令106、107、109和111中的对应一个,执行运算1到4中的每一个。
为了说明,当执行第一指令106时,系数确定电路114可检索函数数据120,以确定第一输入范围122的(a3)系数。第一输入范围122可被用作表查找指示符以确定分段多项式132中的(a3)系数的值。举例来说,在确定第一输入范围122后,系数确定电路114可将第一输入范围122的区间或一或多个位(例如,最高有效位(most significant bit;MSB))识别为表查找指示符。举例来说,对应于第一输入范围122的第一函数输入(例如,表示(x)的值的二进制数)可表示处于第一输入范围122内的(x)值,且系数确定电路114可识别第一函数输入的一或多个MSB。系数确定电路114可使用第一函数输入的一或多个MSB访问a3查找表140,以在(x)处于第一输入范围122时对于分段多项式132中的(a3)系数确定第一系数值142。举例来说,所述系数确定电路114可基于a3查找表的表查找操作,确定(a3)系数具有第一输入范围122的第一系数值142。计算电路122可将第一局部多项式输入(例如,在第一运算期间为零)与第一函数输入相乘,来产生第一局部值(例如,零)。计算电路122还可将第一系数值142与第一局部值相加,以确定第一值152(例如,第一局部多项式输出)。因此,第一值152可等于第一系数值142。计算电路116可将计算数据150中的第一值152存储为分段霍纳方法的下一个运算(例如,待在第二迭代中执行的第二运算)的(a3)系数。
在确定(a3)系数之后,处理器104可执行第二指令107以确定第一输入范围122的(a2)系数。第一输入范围122可被用作表查找指示符以确定分段多项式132中的(a2)系数的值。系数确定电路114可使用第一输入范围122的一或多个MSB访问a2查找表140,以在(x)处于第一输入范围122时对于分段多项式132中的(a2)系数确定第二系数值144。举例来说,所述系数确定电路114可基于a2查找表的表查找操作,确定(a2)系数具有第一输入范围124的第二系数值144。在确定第一输入范围122的第二系数值144后,所述计算电路116可将第二局部多项式输入(例如,a3)与第一函数输入(x)相乘,来产生分段多项式132的第二局部值(例如,a3x)。第二局部多项式输入(例如,a3)可对应于第一值152。所述计算电路116还可将第一系数值144(例如,(a2)系数)与第二局部值相加来产生第二运算的第二值154(例如,a2+a3x)。所述第二值154(例如,第二局部多项式输出)可以计算数据150形式存储,以用于分段霍纳方法的下一个运算(例如,待在第三迭代中执行的第三运算)。
在确定(a2)系数之后,处理器104可执行第三指令109以确定第一输入范围122的(a1)系数。第一输入范围122可被用作表查找指示符以确定分段多项式132中的(a1)系数的值。系数确定电路114可使用第一输入范围122的一或多个MSB访问查找表140,以在(x)处于第一输入范围122时对于分段多项式132中的系数确定第三系数a1值146。举例来说,所述系数确定电路114可基于a1查找表的表查找操作,确定(a1)系数具有第一输入范围124的第三系数值146。在确定第一输入范围122的第三系数值146后,所述计算电路116可将第三局部多项式输入(例如,a2+a3x)与第一函数输入(x)相乘,来产生分段多项式132的第二局部值(例如,x(a2+a3x))。第三局部多项式输入可对应于第二值154。计算电路116还可将第三系数值156与第三局部值相加,来产生第三运算的第三值156(例如,a1+x(a2+a3x))。所述第三值156(例如,第三局部多项式输出)可以计算数据150形式存储,以用于分段霍纳方法的下一个运算(例如,待在第四迭代中执行的第四运算)。
在确定(a1)系数之后,处理器104可执行第四指令111以确定第一输入范围122的(a0)系数。第一输入范围122可被用作表查找指示符以确定分段多项式132中的(a0)系数的值。系数确定电路114可使用第一输入范围122的一或多个MSB访问查找表140,以在(x)处于第一输入范围122时对于分段多项式132中的(a0)系数确定第四系数值148。举例来说,系数确定电路114可基于a0查找表处的表查找操作确定(a0)系数具有第一输入范围124的第四系数值148。在确定第一输入范围122的第四系数值148后,所述计算电路116可将第四局部多项式输入(例如,a1+x(a2+a3x))与第一函数输入(x)相乘,来产生分段多项式132的第四局部值(例如,x(a1+x(a2+a3x)))。计算电路116还可将第四系数值158与第四局部值相加,来产生第四运算的第四值(例如,a0+x(a1+x(a2+a3x)))。第四值可以计算数据150形式存储。由于在本实例中,N=3,所以方法可在第四运算之后结束,且第四值(例如,a0+x(a1+x(a2+a3x)))可在第一函数输入(x)处作为非线性函数121的估计值输出。
尽管上文实例对于第一输入范围122描绘n=3的操作,但可以在实施中执行类似操作以确定分段多项式132的额外系数,其中对于第一输入范围122,n>3,来产生高达第N值158的额外值。处理器104可执行不同指令以确定各系数。此外,处理器104可在执行每条指令期间执行与所确定的系数关联的乘法运算(例如,将局部多项式输入与函数输入相乘)以及加法运算(例如,将相乘结果与分段多项式132的前一值相加)。在确定第一输入范围122的最后一个系数之后,结果值(乘法和加法运算之后)可以是非线性函数121对于第一输入范围122的估计值。
在确定第一输入范围122的非线性函数121的估计值之后,处理器104可执行不同指令(根据如上文所描述的类似技术)以确定其它输入范围124、126、128的非线性函数121的估计值。根据另一实施方案,处理器104可使用上述技术(相对于估计第一输入范围122的非线性函数121的值)同时(或并行)估计其它输入范围124、126、128的非线性函数121的值。
因此,图1的系统100可通过使用查找表评估各输入范围122到128的非线性函数121,以确定各输入范围122到128的系数(a0到an),且将系数应用于分段多项式132(例如,呈计算上高效的形式的非线性函数121)。相比于常规查找方法,系统100可通过使用指令106、107、109、111访问查找表140来确定各系数(a0到an)的值,而不是访问查找表来预测非线性函数121的值要在相同精确度内,来减少用于评估非线性函数(例如,非线性函数121)的表项数目。因此,供处理器104使用的表项数目可减少到存在于分段多项式132中的系数的数目与输入范围数目的乘积(而不是供处理器使用的表项数目可能关于经评估函数的位精确度的常规技术)。
此外,相比于跨越输入范围应用多项式的常规技术,处理阶段的数目可能减少。举例来说,第一指令106允许处理器104执行霍纳方法的迭代来评估非线性函数121,且迭代数目(例如,多个乘加运算)可随着多项式的阶数以线性方式增加。此外,在一些实施方案中,查找处理可以与相乘处理(例如,与计算电路116关联的计算操作)并行进行,以减少处理时间。处理阶段的减少可导致减少功率消耗及减少复杂度。相对于图1描述的技术兼容定点数和浮点数。技术同样兼容标量处理和SIMD处理。
参看图2,展示用于执行第一分段霍纳方法运算的方法200的流程图。可使用图1的系统100执行方法200。
方法200包含,在202处,在处理器处检索用于对多项式的第一输入范围执行第一分段霍纳方法运算的第一指令。举例来说,参看图1,处理器104可从存储器102检索第一指令106。在204处,可执行第一指令。举例来说,参看图1,处理器104可执行所述第一指令106,来对多项式的第一输入范围执行第一分段霍纳方法运算。
执行第一指令包含,在206处,基于对应于第一输入范围的第一函数输入的区间访问一或多个查找表,以确定第一输入范围的多项式的第一系数。举例来说,第一输入范围可具有固定二次幂大小,且区间可基于输入函数的一或多个MSB。为了说明,参看图1,对应于第一输入范围122的第一函数输入(例如,二进制数(x))可具有表示第一输入范围122的MSB,且系数确定电路114可识别第一函数输入的一或多个MSB。系数确定电路114可使用第一函数输入的一或多个MSB访问a3查找表140,以在(x)处于第一输入范围122时对于分段多项式132中的(a3)系数确定第一系数值142。举例来说,系数确定电路114可基于a3查找表处的表查找操作确定(a3)系数具有第一输入范围122的第一系数值142。作为另一实例,第一输入范围可具有指数大小,且可至少部分基于第一函数输入的对数确定区间。为了说明,对于固定点,前导零或前导符号计数对应于来自-ceil(log2(value))的偏置,且对于浮点,指数字段偏离ceil(log2(value))。
执行第一指令还包含,在208处,确定第一输入范围的第一分段霍纳方法运算的第一局部多项式输出。确定第一局部多项式输出包含,在210处,将第一局部多项式输入与第一函数输入相乘,来产生第一局部值。举例来说,参看图1,计算电路116可将第一局部多项式输入(例如,对于第一迭代为零)与第一函数输入相乘,来产生第一局部值。根据一个实施方案,将第一函数输入标准化为第一输入范围。方法200还包含,在212处,将第一系数与第一局部值相加,以确定第一局部多项式输出。举例来说,参看图1,计算电路116可将(a3)系数与第一局部多项式值相加,以确定第一值152。
根据一个实施方案,方法200可包含在处理器处检索第二指令,来对多项式的第二输入范围执行第二分段霍纳方法运算。举例来说,处理器104可对于存储器102检索第二指令107。方法200还可包含执行第二指令107。执行所述第二指令107可包含基于第一函数输入的区间访问一或多个查找表140,以确定第一输入范围122的多项式(例如,分段多项式132)的第二系数(例如,(a2)系数)。执行第二指令107还可包含确定第一输入范围122的第二运算的第二局部多项式输出(例如,第二值154)。确定第二局部多项式输出(例如,第二值154)可包含将第二局部多项式输入与第一函数输入相乘,来产生第二局部值。方法200还可包含将第二系数与第二局部值相加,以确定第二局部多项式输出(例如,第二值154)。
根据一个实施方案,方法200可包含至少基于第一值152评估分段多项式。方法200还可包含基于所述分段多项式估计非线性函数。根据一个实施方案,第一输入范围122的大小可不同于第二输入范围124的大小。根据方法200的一个实施方案,第一系数(例如,(a0)系数)可具有与第二系数(例如,(a1)系数)不同的精确度,且第一局部多项式输入可具有与第二局部多项式输入不同的精确度。
根据一个实施方案,方法200可包含将第一输入范围122标准化为特定范围,且基于第一输入范围122将输出去标准化。方法200还可包含将多项式与第二多项式合并,来产生多个多重正交输入函数。
根据方法200的一个实施方案,第一系数、第一值、第一局部值和第一函数输入可以是定点操作数。定点操作数可以是带符号的或无符号的。操作数中的一或多个可能相比于其它操作数具有不同精确度。
根据方法200的一个实施方案,第一系数、第一值、第一局部值和第一函数输入可以是浮点操作数。浮点操作数可具有电气电子工程师学会(Institute of Electrical andElectronics Engineers;IEEE)格式。操作数中的一或多个可能相比于其它操作数具有不同精确度。
在其它实施方案中,第一系数、第一值、第一局部值和第一函数输入中的至少一个可以是复数操作数。在又一实施方案中,第一系数、第一值、第一局部值和第一函数输入可以是多维操作数。
相比于通过使用分段多项式指令106的常规查找方法,图2的方法200可减少用于评估非线性函数(例如,非线性函数121)的表项的数目。举例来说,处理器104可访问查找表140以确定各系数(a0到an)的值,而不是访问整个非线性函数121的查找表。因此,用于表示非线性函数121的表项的数目可减少到存在于分段多项式132中的系数的数目与输入范围的数目的乘积(而不是供处理器使用的表项数目可能按指数律地关于经评估函数的位精确度的常规技术)。
此外,相比于跨越输入范围应用多项式的常规技术,处理阶段的数目可能减少。举例来说,相比于使用单一(非分段)多项式近似非线性函数121获取相同精确度的整体输入范围,使用分段多项式允许使用更少的系数对各输入范围精确近似。可以使用霍纳方法运算实现额外处理节省,来减少在多项式评估期间执行的乘法运算的数目。此外,在一些实施方案中,查找处理可以与相乘处理(例如,与计算电路116关联的计算操作)并行进行,以减少处理时间。根据另一实施方案,可以从乘法中移除用于表查找的输入位,来对于特定乘数大小实现更高的输入精确度。处理阶段的减少可能导致减少功率消耗及减少复杂度。
参考图3,展示电子装置300的框图。作为说明性实例,电子装置300可对应于移动装置(例如蜂窝电话)。在其它实施方案中,电子装置300可对应于计算机(例如服务器、笔记本电脑、平板计算机或台式计算机)、可穿戴式电子装置(例如个人相机、头戴式显示器或手表)、车辆控制系统或控制台、家用电器、机顶盒、娱乐单元、导航装置、个人数字助理(personal digital assistant;PDA)、电视、监视器、调谐器、无线电(例如卫星无线电)、音乐播放器(例如数字音乐播放器或便携式音乐播放器)、视频播放器(例如数字视频播放器,例如数字视频光盘(digital video disc,DVD)播放器或便携式数字视频播放器)、机器人、保健装置、另一电子装置或其组合。
电子装置300包含处理器104,例如数字信号处理器(digital signal processor;DSP)、中央处理单元(central processing unit;CPU)、图形处理单元(graphicsprocessing unit;GPU)、另一处理装置或其组合。处理器104包含一或多个寄存器110、变换电路112、系数确定电路114、计算电路116,以及数据存储区118。一或多个寄存器110存储函数数据120、多项式数据130,以及计算数据150。数据存储区118存储一或多个查找表140。处理器104可以与关于图1所描述基本上类似的方式操作。
电子装置300可进一步包含存储器102。存储器102可耦合到处理器104或集成于所述处理器内。存储器102可包含随机存取存储器(random access memory;RAM)、磁阻随机存取存储器(magnetoresistive random access memory;MRAM)、快闪存储器、只读存储器(read-only memory;ROM)、可编程只读存储器(programmable read-only memory;PROM)、可擦除可编程只读存储器(erasable programmable read-only memory;EPROM)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory;EEPROM)、一或多个寄存器、硬盘、可装卸式磁盘、压缩光盘只读存储器(compact disc read-onlymemory;CD-ROM)、另一存储装置或其组合。存储器102可存储可由处理器310执行的第一指令106和一或多个其它指令368。举例来说,如关于图1所描述,处理器104可执行第一指令106来评估非线性函数。
图3还展示了耦合到处理器104并耦合到显示器328的显示器控制器326。译码器/解码器(编解码器(CODEC))334还可耦合到处理器104。扬声器336及麦克风338可以耦合到编解码器334。图3还指示无线接口340,例如无线控制器及/或收发器,可耦合到处理器104且耦合到天线342。
在一特定实例中,处理器104、显示器控制器326、存储器102、编解码器334和无线接口340包含在系统级封装或芯片上系统装置322中。此外,输入装置330和电源344可耦合到芯片上系统装置322。此外,在特定实例中,如图3中所说明,显示器328、输入装置330、扬声器336、麦克风338、天线342和电源344在芯片上系统装置322外部。然而,显示器328、输入装置330、扬声器336、麦克风338、天线342和电源344中的每一个可耦合到芯片上系统装置322的组件,例如耦合到接口或控制器。
关于所公开的实例,计算机可读媒体(例如,存储器102)存储可由处理器(例如,处理器104)执行的第一指令,来对多项式的第一输入范围执行第一分段霍纳方法运算。举例来说,第一指令可导致处理器104基于第一输入范围的一或多个位访问一或多个查找表,以确定第一输入范围的多项式的第一系数。第一指令还可导致处理器确定第一输入范围的多项式的第一值。确定第一值可包含将多项式的第一局部输入与和第一输入范围关联的第一函数输入相乘,来产生第一局部值,且将所述第一系数与所述第一局部值相加以确定第一值。
结合描述的技术,设备包含用于存储用于对多项式的第一输入范围执行第一分段霍纳方法运算的第一指令的装置。举例来说,用于存储第一指令的装置可包含图1和3的存储器102、一或多个其它装置、电路、模块,或其任何组合。
所述设备还可包含用于存储一或多个查找表的装置。所述一或多个查找表可包含用于所述多项式的系数值。举例来说,用于存储一或多个查找表的装置可包含图1和3的数据存储区118、图1和3的一或多个寄存器110、图1到3的处理器104、一或多个其它装置、电路、模块或其任何组合。
所述设备还可包含用于基于对应于第一输入范围的第一函数输入的区间访问所述一或多个查找表以确定所述第一输入范围的所述多项式的第一系数的装置。举例来说,用于访问的装置可包含图1和3的系数确定电路114、图1和3的处理器104、一或多个其它装置、电路、模块,或其任何组合。
所述设备还可包含用于将第一局部多项式输入与所述第一函数输入相乘来产生第一局部值的装置。举例来说,用于相乘的装置可包含图1和3的计算电路116、图1和3的处理器104、一或多个其它装置、电路、模块,或其任何组合。
所述设备还可包含用于将所述第一系数与所述第一局部值相加以确定所述第一分段霍纳方法运算的第一局部多项式输出的装置。举例来说,用于相加的装置可包含图1和3的计算电路116、图1和3的处理器104、一或多个其它装置、电路、模块、,或其任何组合。
前面所公开的装置和功能可使用计算机文件(例如RTL、GDSII、GERBER等)来设计和表示。所述计算机文件可存储在计算机可读媒体上。一些或所有此类文件可提供给基于此类文件而制造装置的制造操作者。所得产品包含晶片,晶片接着被切割成裸片并封装到集成电路(或“芯片”)中。所述芯片接着用于电子装置中,例如用于图3的电子装置300内。
所属领域的技术人员将进一步了解,结合本文中公开的实施方案所描述的各种说明性逻辑块、配置、模块、电路和算法步骤可以实施为电子硬件、计算机软件或两者的组合。上文已大体在其功能性方面描述各种说明性组件、块、配置、模块、电路和步骤。此类功能性被实施为硬件还是软件取决于特定应用和施加于整个系统上的设计约束。所属领域的技术人员可针对每个特定应用以不同方式来实施所描述的功能性,但此类实施决策不应被解释为会引起脱离本发明的范围。
结合本文中所公开的实施方案而描述的方法或算法的步骤可直接实施于硬件、由处理器执行的软件模块或两者的组合中。软件模块可驻存在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可移除式磁盘、压缩光盘只读存储器(CD-ROM)或此项技术中已知的任何其它形式的非暂时性存储媒体中。示范性非暂时性(例如有形的)存储媒体耦合到处理器,使得处理器可从所述存储媒体读取信息并将信息写入到所述存储媒体。在替代方案中,存储媒体可与处理器成整体。处理器和存储媒体可驻存在专用集成电路(application-specific integrated circuit;ASIC)中。ASIC可驻存在计算装置或用户终端中。在替代方案中,处理器和存储媒体可以作为离散组件驻存于计算装置或用户终端中。
提供所公开的实施方案的先前描述以使所属领域的技术人员能够制作或使用所公开的实施方案。对于所属领域的技术人员来说,对这些实施方案的各种修改将显而易见,且本文中定义的原理可在不脱离本公开的范围的情况下应用于其它实施方案。因此,本公开并非意图限于本文中所展示的实施方案,而应符合与如通过所附权利要求书定义的原理和新颖特征一致的可能的最广范围。

Claims (27)

1.一种方法,其包括:
在处理器处检索用于对多项式执行第一分段霍纳方法运算的第一指令;以及
执行所述第一指令,其中执行所述第一指令导致所述处理器执行包括以下各项的操作:
基于对应于第一输入范围的第一函数输入的区间访问一或多个查找表,以确定所述第一输入范围的所述多项式的第一系数;以及
确定所述第一输入范围的所述第一分段霍纳方法运算的第一局部多项式输出,其中确定所述第一局部多项式输出包括:
将第一局部多项式输入与所述第一函数输入相乘,来产生第一局部值;以及
将所述第一系数与所述第一局部值相加,以确定所述第一局部多项式输出。
2.根据权利要求1所述的方法,其中所述处理器包含单指令多数据SIMD处理器。
3.根据权利要求1所述的方法,其中所述第一输入范围具有固定二次幂大小,且其中所述区间是基于所述第一函数输入的一或多个最高有效位。
4.根据权利要求1所述的方法,其中所述第一输入范围具有指数大小,且其中所述区间至少部分基于所述第一函数输入的对数确定。
5.根据权利要求1所述的方法,其中将所述第一函数输入标准化为所述第一输入范围。
6.根据权利要求1所述的方法,其进一步包括:
在所述处理器处检索用于对所述多项式执行第二分段霍纳方法运算的第二指令;以及
执行所述第二指令,其中执行所述第二指令导致所述处理器执行包括以下各项的操作:
基于所述第一函数输入的所述区间访问所述一或多个查找表,以确定所述第一输入范围的所述多项式的第二系数;以及
确定所述第二运算的第二局部多项式输出,其中确定所述第二局部多项式输出包括:
将第二局部多项式输入与所述第一函数输入相乘,来产生第二局部值,其中所述第二局部多项式输入对应于所述第一局部多项式输出;以及
将所述第二系数与所述第二局部值相加,以确定所述第二局部多项式输出。
7.根据权利要求6所述的方法,其中所述第一系数相比所述第二系数具有不同精确度,或其中所述第一局部多项式输入相比所述第二局部多项式输入具有不同精确度。
8.根据权利要求6所述的方法,其中所述一或多个查找表存储对应于输入区间的多个集合的系数值,且其中输入区间的所述多个集合中的每一个对应于分段多项式的相应阶数。
9.根据权利要求8所述的方法,其中所述第一输入范围的大小不同于第二输入范围的大小。
10.根据权利要求1所述的方法,其进一步包括至少基于所述第一局部多项式输出来评估分段多项式。
11.根据权利要求10所述的方法,其进一步包括基于所述分段多项式估计非线性函数。
12.根据权利要求1所述的方法,其进一步包括:
将第一输入标准化为特定范围;以及
基于所述特定范围将输出去标准化。
13.根据权利要求1所述的方法,其中所述第一系数、所述第一局部多项式输出、所述第一局部值或所述第一函数输入为定点操作数。
14.根据权利要求13所述的方法,其中所述定点操作数中的至少一个是带符号的。
15.根据权利要求13所述的方法,其中所述定点操作数中的至少一个是无符号的。
16.根据权利要求13所述的方法,其中所述第一系数相比所述第一局部多项式输出具有不同精确度。
17.根据权利要求1所述的方法,其中所述第一系数、所述第一局部多项式输出、所述第一局部值或所述第一输入范围为浮点操作数。
18.根据权利要求17所述的方法,其中所述第一系数相比所述第一局部多项式输出具有不同精确度。
19.根据权利要求1所述的方法,其中所述第一系数、所述第一局部多项式输出、所述第一局部值和所述第一函数输入中的至少一个为复数操作数。
20.一种设备,其包括:
存储器,其存储用于对多项式执行第一分段霍纳方法运算的第一指令;
数据存储区,其存储一或多个查找表,所述一或多个查找表包含多个输入范围的所述多项式的系数值;
系数确定电路,其经配置以基于对应于第一输入范围的第一函数输入的区间访问所述一或多个查找表,以确定所述第一输入范围的所述多项式的第一系数;以及
计算电路,其经配置以:
将第一局部多项式输入与所述第一函数输入相乘,来产生第一局部值;以及
将所述第一系数与所述第一局部值相加,以确定所述第一输入范围的所述第一分段霍纳方法运算的第一局部多项式输出。
21.根据权利要求20所述的设备,其中所述计算电路集成到单指令多数据SIMD处理器中。
22.根据权利要求20所述的设备,其中所述第一输入范围具有固定二次幂大小,且其中所述第一函数输入的一或多个位包含所述第一函数输入的一或多个最高有效位。
23.根据权利要求20所述的设备,其中所述第一输入范围具有指数大小,且其中所述区间至少部分基于所述第一函数输入的对数确定。
24.一种非暂时性计算机可读媒体,其包括用于对多项式执行第一分段霍纳方法运算的第一指令,在由处理器执行时,所述第一指令导致所述处理器执行包括以下各项的操作:
基于对应于第一输入范围的第一函数输入的区间访问一或多个查找表,以确定所述第一输入范围的所述多项式的第一系数;以及
确定所述第一输入范围的所述第一分段霍纳方法运算的第一局部多项式输出,其中确定所述第一局部多项式输出包括:
将第一局部多项式输入与所述第一函数输入相乘,来产生第一局部值;以及
将所述第一系数与所述第一局部值相加,以确定所述第一局部多项式输出。
25.根据权利要求24所述的非暂时性计算机可读媒体,其中所述处理器包含单指令多数据SIMD处理器。
26.一种设备,其包括:
用于存储用于对多项式执行第一分段霍纳方法运算的第一指令的装置;
用于存储一或多个查找表的装置,所述一或多个查找表包含所述多项式的系数值;
用于基于对应于第一输入范围的第一函数输入的区间访问所述一或多个查找表以确定所述第一输入范围的所述多项式的第一系数的装置;
用于将第一局部多项式输入与所述第一函数输入相乘来产生第一局部值的装置;以及
用于将所述第一系数与所述第一局部值相加以确定所述第一分段霍纳方法运算的第一局部多项式输出的装置。
27.根据权利要求26所述的设备,其中所述第一输入范围具有固定二次幂大小,且其中所述第一函数输入的一或多个位包含所述第一函数输入的一或多个最高有效位。
CN201780056480.5A 2016-09-22 2017-07-27 分段多项式评估指令 Pending CN109716332A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/273,481 2016-09-22
US15/273,481 US20180081634A1 (en) 2016-09-22 2016-09-22 Piecewise polynomial evaluation instruction
PCT/US2017/044175 WO2018057114A2 (en) 2016-09-22 2017-07-27 Piecewise polynomial evaluation instruction

Publications (1)

Publication Number Publication Date
CN109716332A true CN109716332A (zh) 2019-05-03

Family

ID=59579923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780056480.5A Pending CN109716332A (zh) 2016-09-22 2017-07-27 分段多项式评估指令

Country Status (8)

Country Link
US (1) US20180081634A1 (zh)
EP (1) EP3516535A2 (zh)
KR (1) KR20190055090A (zh)
CN (1) CN109716332A (zh)
AU (1) AU2017330184A1 (zh)
BR (1) BR112019005084A2 (zh)
SG (1) SG11201901236UA (zh)
WO (1) WO2018057114A2 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256978B2 (en) * 2017-07-14 2022-02-22 Intel Corporation Hyperbolic functions for machine learning acceleration
US11327754B2 (en) * 2019-03-27 2022-05-10 Intel Corporation Method and apparatus for approximation using polynomials
US11520562B2 (en) * 2019-08-30 2022-12-06 Intel Corporation System to perform unary functions using range-specific coefficient sets
KR102529602B1 (ko) * 2021-07-19 2023-05-08 주식회사 사피온코리아 멀티레벨 룩업테이블을 이용한 함수근사 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838024A (zh) * 2005-09-09 2006-09-27 威盛电子股份有限公司 对数处理系统和方法
CN1983161A (zh) * 2005-09-28 2007-06-20 英特尔公司 用于扩展函数的增强型浮点单元
CN103959192A (zh) * 2011-12-21 2014-07-30 英特尔公司 用于估算超越函数的数学电路
US20150324949A1 (en) * 2014-05-09 2015-11-12 Samsung Electronics Co., Ltd. Micro-coded transcendental instruction execution

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0411880D0 (en) * 2004-05-27 2004-06-30 Imagination Tech Ltd Method and apparatus for efficient evaluation of "table-based" mathematical functions
US7716268B2 (en) * 2005-03-04 2010-05-11 Hitachi Global Storage Technologies Netherlands B.V. Method and apparatus for providing a processor based nested form polynomial engine
US9223752B2 (en) * 2008-11-28 2015-12-29 Intel Corporation Digital signal processor with one or more non-linear functions using factorized polynomial interpolation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1838024A (zh) * 2005-09-09 2006-09-27 威盛电子股份有限公司 对数处理系统和方法
CN1983161A (zh) * 2005-09-28 2007-06-20 英特尔公司 用于扩展函数的增强型浮点单元
CN103959192A (zh) * 2011-12-21 2014-07-30 英特尔公司 用于估算超越函数的数学电路
US20140222883A1 (en) * 2011-12-21 2014-08-07 Jose-Alejandro Pineiro Math circuit for estimating a transcendental function
US20150324949A1 (en) * 2014-05-09 2015-11-12 Samsung Electronics Co., Ltd. Micro-coded transcendental instruction execution

Also Published As

Publication number Publication date
SG11201901236UA (en) 2019-04-29
BR112019005084A2 (pt) 2019-06-04
EP3516535A2 (en) 2019-07-31
WO2018057114A3 (en) 2018-05-11
WO2018057114A2 (en) 2018-03-29
AU2017330184A1 (en) 2019-03-07
KR20190055090A (ko) 2019-05-22
US20180081634A1 (en) 2018-03-22

Similar Documents

Publication Publication Date Title
US20190340214A1 (en) Information processing method, information processing apparatus, and computer-readable recording medium
CN109716332A (zh) 分段多项式评估指令
CA3083043C (en) System and method of floating point multiply operation processing
KR100955557B1 (ko) 선택가능 준정밀도를 가진 부동―소수점 프로세서
US20160313976A1 (en) High performance division and root computation unit
TW200919304A (en) Apparatus and method for performing magnitude detection for arithmetic operations
US20190065146A1 (en) Providing efficient floating-point operations using matrix processors in processor-based systems
US20230117042A1 (en) Implementation of discrete fourier-related transforms in hardware
KR20210126506A (ko) 부동 소수점의 내적을 계산하는 컴퓨팅 유닛 아키텍쳐 및 그에 따른 방법
CN116610840A (zh) 一种相似数据搜索方法、系统及电子设备
Kulshreshtha et al. CORDIC-based high throughput sliding DFT architecture with reduced error-accumulation
TW202333041A (zh) 執行浮點運算的系統及方法
CN109478199B (zh) 分段线性逼近的系统及方法
US20160041947A1 (en) Implementing a square root operation in a computer system
Naga Sravanthi et al. Design and performance analysis of rounding approximate multiplier for signal processing applications
US8713085B1 (en) Systems and methods for a signed magnitude adder in one's complement logic
Low et al. A new RNS scaler for {2 n− 1, 2 n, 2 n+ 1}
Kulkarni et al. Designing of radix-2 butterfly for digital signal processor for FFT computation
TW201423438A (zh) 數位訊號處理裝置及其處理方法
CN111581590B (zh) 一种基于定点数变量的积分计算方法及装置
US20200394251A1 (en) Fast fourier transform device for analyzing specific frequency components of input signal
CN109690956A (zh) 邻接存储器地址处的数据存储
US9454345B1 (en) Apparatus for faster division
Roy Division and Modulus Operation
Anusha et al. The Journey of Logarithm Multiplier: Approach, Development and Future Scope

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40000796

Country of ref document: HK

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190503