CN1838024A - 对数处理系统和方法 - Google Patents
对数处理系统和方法 Download PDFInfo
- Publication number
- CN1838024A CN1838024A CNA2006100753406A CN200610075340A CN1838024A CN 1838024 A CN1838024 A CN 1838024A CN A2006100753406 A CNA2006100753406 A CN A2006100753406A CN 200610075340 A CN200610075340 A CN 200610075340A CN 1838024 A CN1838024 A CN 1838024A
- Authority
- CN
- China
- Prior art keywords
- order
- full precision
- value
- lsb
- significant bit
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/0307—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/544—Methods 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/556—Logarithmic or exponential functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Complex Calculations (AREA)
- Investigating Or Analysing Materials By Optical Means (AREA)
- Analysing Materials By The Use Of Radiation (AREA)
Abstract
本发明揭示对数处理系统和方法。本发明的对数处理系统包含与一对数的各基底函数和导函数对应的两个查表内存,并具有一逻辑电路,用以存取这些查表内存的内容且使用一标准FMAD单元以格式化及正规化被存取的值,以计算此对数。
Description
技术领域
本发明涉及一种处理系统,且特别涉及对数处理系统和方法。
背景技术
在图形及科学应用中经常出现对数计算,一函数的对数可定义为log(x×y)=log(x)+log(y)。而一自然对数值可藉由方程
转换为一以2为底D对数,其中x可为一正规化浮点数值,如x=1.x0x1x3Kxn×2E,经转换后为log2(x)=E+log2(1.x0x1x3Kxn),其中,log2(x)=E+log2(1.x0x1x3Kxn)∈[0,1)。
在一处理系统中,诸如中央处理器(CPU),其对数运算(例如log2(x))实现的机制是通过多项式计算。例如,一最佳计算值可藉由以下7阶极小极大多项式来实现
-3.245537847+(7.133969564+(-7.494129806+(5.781438731+(-2.985020854+(0.9780947497+(-0.1839396192+0.1512535671e-1*x)*x)*x)*x)*x)*x)*x,其最大误差为2.919206449e-7。常见于CPU的多项式法是由7次乘加法运算(multiply and accumulate,MAC)来实现,其中此计算的中间结果要求高精准度。
另一对数运算(例如log2(x),x等于z0+z1)的机制可藉由泰勒级数近似法来实现,诸如方程式(1)中所示的二阶级数:
一泰勒级数近似法典型上由专用硬件实现,迥异于单纯藉由CPU,其原因在于此类运算非属常见且处理器须额外添加数个特定查表。上述二阶泰勒级数近似法的一较佳实施例如图1中所示。
图1为一泰勒级数近似法其处理的相关功能的方块图。意即,图示为处理机制10的各种功能方块,依其所执行的功能代表图1中绘示的硬件装置与或互连组件(诸如总线,导线)。处理机制10包含缓存器14和46、传输方块20和22、查表24-28(例如为表A 24、表B 26和表C 28)、舍入与截位方块30、平方功能方块32、乘法方块34和36、加法方块38和40、减法方块42与中断方块44。任何熟习此技艺者应可了解上述组件和/或其相对功能。鉴此为简洁起见,除下文所述部分,其余相同概念者省略讨论。指定传输方块20至一x,x表示的变量z0对应于缓存器14中尾数的8位最高有效位,此最高8位与z0的各函数(诸如基底与导函数)位于查表24-28中的地址所在相对应。再者,指定传输方块22至一xp,xp表示的变量z1(本发明中亦指称最低有效位来源操作数)与缓存器14中尾数剩余15位最低有效位相对应。缓存器14(如数据输入缓存器)可存放与一函数log2(x)对应的数据,且以单精度(如32位制)IEEE-754浮点格式表示,此格式包括符号位、指数位(如8位)和正规化格式(亦即,隐藏前导1,移除前导0且对应至其指数缩放值)的小数字元或尾数位(如23位)。表A 24与z0的基底函数对应,表B 26与z0的一阶导函数对应,而表C 28与z0的二阶导函数除以2对应。
减少图1中所示处理机制10其复杂度的其一方法为简化方程式(1)。例如,方程式(1)可改写为嵌套形式(Horner′s form):
改写方程式(1)为方程式(2)可排除对平方功能方块32的需求。因此二阶泰勒级数的嵌套形式可藉由执行三次查表和两次乘加运算而实现。图1所示结构的一范例指令集可用于实现泰勒级数,该指令集如下叙述:
(1)FRAC R4:=Normalize((R0 & 0x7FFF)|((((R0 &0x7F800000)>>23)-9)<<23));
(2)LOGTL1R1:=TableLookUp1[R0 & 0x007F8000];
(3)LOGTL2R2:=TableLookUp2[R0 & 0x007F8000];
(4)LOGTL3R3:=TableLookUp3[R0 & 0x007F8000];
(5)FMAD R5:=R2+(R4*R3);
(6)FMAD R6:=R1+(R4*R5);
(7)EXPADDR7:=((R0 & 0x7F800000)>>23)+R6。
指令行(1)提供一指令用以正规化输入。换言之,上述D硬件结合图1是根据IEEE-754浮点格式以执行运算。因此在指令(1)中,尾数的15位最低有效位转换成一正规化浮点数值。在指令(2)-(4)中,R0的一数值则截位(量化)至8位。接着,执行3次查表(f(z0)、f′(z0)和f″(z0)/2),其结果分别存储至对应的缓存器R1、R2和R3中。在指令(5)和(6)中,方程式(2)相对的操作则藉由执行两次浮点混合乘加运算(fusedmultiply-and-add operations,FMAD)。在指令(7)中,加上该指数的对数。
上述的结构和指令集明显存在一些问题。举例,指令(1)和(7)在大多数结构中为非标准化。甚者,所需的指令数目可观(如7个指令)。亦同上文所述,这些操作典型由一专用处理单元实现,若此对数函数较罕用将导致低投资报酬率。有鉴于此,缩减指令集且在一可提供常用硬件设施的结构中实现该操作乃所期望者。
发明内容
本发明提供对数处理系统及方法的实施例,其中,一对数处理方法的实施例包含:执行第一查表以提供其对应的一基底函数全精度格式化基底值;执行第二查表,求得其对应的一阶压缩值(compressed first value)和二阶压缩化约值(compressed factored second value),其中,一阶压缩值与基底函数的一阶导函数对应,而二阶压缩化约值与基底函数的化约二阶导函数(factored second value)对应;解压缩一阶压缩值和二阶压缩化约值;全精度格式化解压缩的一阶值和二阶化约值而得全精度格式化的一阶值和二阶化约值;正规化一最低有效位来源操作数并全精度格式化此正规化的最低有效位来源操作数而得全精度格式化的最低有效位来源操作数;执行全精度格式化一阶值与二阶化约值和全精度格式化的最低有效位来源操作数的第一组合求得第一结果;执行该第一结果与全精度格式化的最低有效位来源操作数和全精度格式化的基底值的第二组合以计算对数函数。
为使本发明的其它系统、方法、特征和优点更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
参照附图可以更清楚地了解本发明,其中,附图的组件并未按比例绘制,而是用以清楚地说明本发明所揭示的系统和方法的原理。此外,在附图中,相同的组件乃以相同的组件符号表示。
图1为执行泰勒级数近似法相关的功能方块图。
图2是本发明的对数处理系统一施例的方块图。
图3至图6为对数处理系统一实施例的功能方块图。
图7为对数处理系统一实施例的功能方块图。
图8为对数处理系统一实施例的功能方块图。
图9为对数处理方法对等于二阶泰勒级数的一实施例的流程图。
图10为对数处理方法对等于一阶泰勒级数的一实施例的流程图。
附图符号说明:
10:处理机制
14、16:缓存器
20、22:传输方块
24、28:查表
30:舍入与截位方块
32:平方功能方块
34、36:乘法方块
38、40:加法方块
42:减法方块
44:中断方块
205:计算核心
207:存取单元
210:高速缓存
220:EU输出单元
225:任务分配器和仲裁器
230:执行单元(EU)槽
235:EU输入单元
240:执行单元(EU)
245:区域内存
300:对数处理系统
302、310、322、340、350:缓存器
304:减法方块
306:中断方块
312、314:传输方块
316:查表0
318:查表1/2
324:FMAD单元
326:正规化(1)方块
328:格式器(2)方块
330:格式器(3)方块
342、344:多路复用器
902:执行第一查表以提供基底函数对应的全精度格式化基底值
904:执行第二查表求得对应的一阶压缩值和二阶压缩化约值,其中,一阶压缩值对应于基底函数的一阶导函数,而二阶压缩化约值对应于基底函数的化约二阶导函数
906:解压缩一阶值和二阶化约值,并以全精度格式化该解压缩的一阶值和二次化约值
908:正规化最低有效位来源操作数且以全精度格式化此正规化最低有效位来源操作数
910:执行全精度格式化一阶值及二次化约值和全精度格式化最低有效位来源操作数的第一组合以形成第一结果
912:执行此第一结果及全精度格式化最低有效位来源操作数和全精度格式化基底值的第二组合,以计算对数函数
1002:执行第一查表以提供基底函数对应的全精度格式化基底值
1004:执行第二查表求得对应的一阶压缩值,该一阶压缩值对应于基底函数的一阶导函数
1006:解压缩一阶值且全精度格式化该解压缩一阶值
1008:正规化最低有效位来源操作数且以全精度格式化该正规化最低有效位来源操作数
1010:组合全精度格式化基底值、全精度格式化一阶值及全精度格式化最低有效位来源操作数,以计算对数函数
具体实施方式
本发明揭示对数处理系统和方法(本发明称作对数处理系统)的各种实施例。此类对数处理系统可减少计算对数(例如为log2(x))所使用的专用逻辑的数量,并且此对数处理系统可善用现有具标准浮点混合乘加(fusedmu1tiply-add,FMAD)硬件的可程序处理单元。为达到此目标,可执行一个或一个以上的对数指令集或方法,此类指令集或方法包含标准FMAD硬件中可支持的“基本”运算。此外,为满足现有处理管线的时程目标亦使用一最小指令集。FMAD硬件的用途为将输入正规化与全精度格式化,及转换浮点数值至标准格式,如IEEE-754格式。请注意,本发明中对于全精度格式化值,应理解成包括正规化单精度、双精度或更高精度的IEEE-754格式。尽管全精度格式化在本发明中揭示于正规化单精度IEEE-754格式的背景下,但熟知本发明所属技术领域的人员应可了解,双精度或更高精度的格式亦可包括在较佳实施例的范畴内,如通过延长表(table)和/或字段(field)的大小。
对数处理系统的某些实施例包含两个用于计算对数的基底函数和导函数的函数表,亦包含多种逻辑单元(如硬件,诸如计数器、线或(wire-OR)电路、前导零(CLZ)计数电路和/或缓存器等)来处理查德表输出(例如为格式化和/或正规化的值)并把处理好的输出供予计算对数所用的标准FMAD硬件。与现有系统相比,该类实施例使用一简化的指令集(例如,相较于传统系统中约7条指令仅需使用3或4条指令)来运算且可避免或缓和专用硬件的使用率。
以下揭示内容描述一处理环境实施例,该环境可实现一个或数个的对数处理系统,随后描述一实现泰勒级数近似法的实施例(亦即,对数处理系统的实施例)。尽管本发明的内容以图形处理的计算核心为背景,但所揭示的实施例基本上可并入到任何执行泰勒级数近似法以计算对数函数的处理环境中。例如,本发明所述的实施例可结合或内置于中央处理器,数字信号处理器与其它各类功能的计算单元。
图2绘示一图形处理单元(graphics processing unit,GPU)计算核心205的方块图。尽管未完全绘示所有图形处理的组件,但图2所示的组件足以让熟知所属技术领域的人员能够了解该类图形处理器和对数处理系统的实施例其相关的一般函数和结构。如图2所示,计算核心205包含一耦接于二级(L2)高速缓存210的内存存取单元(memory access unit)207。该内存存取单元207接收来自例如内存接口单元(未绘示)的L2预取和溢出。L2高速缓存210从输入缓冲器(未绘示)接收预转换顶点(pre-transform vertices)(输入J),并将后转换顶点(post-transform vertices)(输出H)提供至三角属性单元(triangle attribute unit)(未绘示)。
计算核心205亦包含一执行单元(EU)槽230,其包括多个执行单元(EU)240和一个EU控制和区域内存245。在实施例中,每个EU 240包含一对数处理系统300(将进一步叙述于下文),且每个EU 240能在单个时钟周期内处理多条指令。尽管图2中绘示8个EU(标记为EU0到EU7),但知悉本发明的技术领域者应能了解,EU数目无需限制为8个,在某些实施例中可以具有更多或更少的EU。
计算核心205更包含一EU输入单元235和一EU输出单元220,分别提供输入至EU槽230和从EU槽230接收输出。EU输入单元235和EU输出单元220可为纵横交换结构(crossbar)或总线或其它已知输入机制。
EU输入单元235从一输入缓冲器接收预变换顶点(输入B),且将该信息提供给EU槽230以供各EU 240处理。此外,EU输入单元235接收像素封包(输入C)和纹理封包(输入D)且将这些封包传递至EU槽230以供各EU240处理。EU输入单元235亦可从L2高速缓存210接收信息,且必要时将该信息提供给EU槽230。该信息可由高速缓存210、纵横交换结构235提供以及/或从先前运算中产生。在一较佳实施例中,执行log2计算所产生的值可置放在各EU 240的区域缓存器中。
EU输出单元220接收EU槽230的输出,诸如UVRQ和RGBA。这些输出,相异于他者,可被指引回L2高速缓存210,或者可从计算核心205输出(E)至一个写回单元(write-back unit,未绘示),或者可输出(F)到各纹理单元(未绘示)。
计算核心205也包含任务分配器和仲裁器225,其自封包组装器(未绘示)接收标签(tag)/同步信号(synchro)。藉由此输入,任务分配器和仲裁器225可控制EU输入单元235和EU输出单元220。换句话说,任务分配器和仲裁器225可分别控制经过EU输入单元235和EU输出单元220其相对的流入和流出。至于指令的执行可藉由位于每一对数处理系统300(各自相对于EU0至EU7)中的硬件来实施。
图3至图6分别绘示一对数处理系统300(例如300a、300b等)实施例的各类功能方块图,其中系统300提供泰勒级数近似法的改良处理以计算函数f(x)的对数值。请注意,本发明中使用的变量“z”应理解为存储在一个或一个以上的表中的一个“x”(例如为函数f(x)的“x”)值。另外请注意,图3至图6(和图7至图8)所绘示及叙述的功能方块或组件可包含硬件装置,诸如算术逻辑单元(ALU)或其它电路、互连组件(例如为线路、总线)等。由对数处理系统300可观察导出以下各项:
(a)f(x)∈(0,1),f′(x)∈(0.722,1.443)和f″(x)/2∈(-0.181,-0.722)
亦即,各函数和其对数函数的导函数值皆落在一可知范围内。例如,log2函数的一阶导函数落在log2(e)(1.443)与log2(e)/2(0.722)之间。同理,二阶导函数的计算值落在可知范围(0.181至0.722)内。
(b)z1小于2-8(1/256或0.00391)。意即z12小于2-16(1/65536 or0.0000153)。由此可知,仅需存储f″(z0)/2表的7个最高有效位和f′(z0)表的15个最高有效位,二者将在下文中解释。亦即,f′和f″(一阶和二阶导函数)都界定在上文所述的可定义范围内。再者,z0具有8个前导零而z1具有15个前导零。因此,为达到一24位的尾数,仅需存储与f″对应的7位和与f′对应的15位,另以两位存储f″(x)/2的指数,1位存储f′(x)的指数。
假定f′(x)和f″(x)/2的查表都共享相同地址,那么因为两个查表皆符合一般32位字故可相互组合以存储。更深入解释,若CPU或DSP的浮点单元(FPU)符合IEEE-754规范,则输入为正规化数值。若有一表符合该格式,则须以整数或布尔运算来执行解封包和正规化,而导致运算减慢。在此情况下对CPU或DSP的FPU而言,多项式法较适宜,因其仅需存储多项式系数。如此,本实施例毋须如标准协议中使用三次的查表(在先前技术中所描述),仅需执行两次的查表:第一查表(本发明称作LOGTL1)用以查找f(x),而第二查表(本发明称作LOGTL2)用于f′(x)和f″(x)/2的组合查找(本发明将后者称作化约二阶导函数)。
由方程式(2)可得以下方程序(3)和(4):
y=f(z0+(z1×T)) 方程式(4)
如方程式3和4所示,本实施例包含两次FMAD运算。因此,指令集的一实施例(本发明亦称作算法1)可描述如下:
(1)LOGTL1 R1:=TableLookup1[R0 & 0x007F8000];
(2)LOGTL2 R2:=TableLookup2[R0 & 0x007F8000];
(3)CFMAD1 R3:=-NORM(R2[21:10])+(NORM(R0[14:01])*NORM(R2[9:0]));
(4)CFMAD2 R4:=R1+(NORM(R0[14:01])*R3)。
此指令集的描述参照对数处理系统300的实施例及图3至6叙述中相关的各部分(300a-1至300a-4)。图3是对数处理系统300a-1中执行LOGTL1运算部分的方块图。请注意,本发明所述的缓存器(例如为R0-R4)为一般缓存器,可用作各运算的来源缓存器与目的缓存器。如图3所示,对数处理系统300a-1包含缓存器302(输入缓存器R0)和310(R1)、减法方块304、中断方块306、传输方块312(x)和314(xp)以及查表0 316(其功能与f(z0)表的功能对应)。缓存器302中的数据具有一符号位、指数位和尾数。在实施例中,尾数包含23位,其中最高8位[22:15]与查表中f(x)各函数(例如为基底函数和导函数)的地址所在相对应,诸如查表0 316对应至f(x)的基底函数z0。传输方块314传递与z1函数对应的尾数的最低15位(最低有效位来源操作数)。z0函数经计算提供给缓存器310,其对应值以单精度正规化IEEE-754格式存储。
缓存器302中指数部分提供至减法方块304,此减法方块304执行指数值与偏差值127的减法运算,并将所得差值提供至中断方块306。中断方块306从缓存器302接收一符号位,且根据此符号位来设置缓存器310中的符号位和指数位。例如,在下文的伪代码中所示事件的一发生时发送中断信号(“mant”表示尾数而“inf”表示无穷(infinite)):
If(s and exp!=0)result is NaN
If(exp==255 & mant!=0)result is NaN
If(exp==0)result is inf
If(s!=0 and exp==255 and mant==0)result is+inf
图4为对数处理系统300a-2中执行LOGTL2运算部分的方块图,其绘示包含输入缓存器302(R0)、目的缓存器322(R2)和传输方块312和314以及查表1/2 318(其功能与f′(z0)表和f″(z0)/2表对应)。该除以2运算是内建于查表1/2 318的f″(z0)功能中,尽管在某些实施例中该运算可与查表318分离。根据一阶与二阶导函数给定一数值范围,查表1/2 318和缓存器322以压缩化非单精度(非IEEE-754)格式存储其值,详情如下文。如上文所指,传输方块312所传递的最高8位用于寻址查表。一26位的数值回传至缓存器322(如为一32位缓存器),用以响应此查表及计算一阶导函数(f′)与二阶导函数(f″),缓存器322包含查表312传递的位。缓存器322的位配置为较低10位用以保存f″运算的输出而其余16位用以保存f′运算的输出。
如上文所述,f′(x)∈(0.722,1.443),因此,查表1/2 318所对应的函数可以正规化格式、非单精度格式(非IEEE-754)来存储,其中位[22]被设置成1或0,以表示指数中何处需减去1。例如,0.722大于0.5但小于1,因此0.722可以表示成1.xxxx*2^-1,而1和更大的数可以表示成1.xxx*2^0。因此,位[22]可作为指数偏差量,且指数是127(经正规化)且无需存储(仅需存储1位)。这些值可用压缩格式来存储,其中所谓的压缩乃指存储状态,是依正规化格式仅存储与导函数的值对应的某部分尾数(例如为一阶导函数的15位)和表示指数为1或0的1个位。因此,无需以全(例如为单)精度IEEE-754格式存储该一阶导函数值。
类似于上文所述的原因,查表1/2 318中所计算的化约二阶导函数f″(x)/2∈(0.181,-0.722)亦可以压缩格式存储。意即,当藉由改变指数来正规化浮点数时,浮点数呈1.xxxx*2^n的形式。因此,对于IEEE浮点格式而言,指数具有隐含的1,因此无需进行存储(亦即,无需存储前导1)。位[9:7]表示从指数中减去的值。如前所论的f′(x),f″(x)/2处在可定义范围(0.181,-0.722)内。请注意,0.181等于1.0111001*2^-3,0.733等于1.0111000*2^-1。因此,所存储者为指数与127的偏差量(亦即,存储于位[9:7]中落于[1..3]其间的一值)。因此,在实施例中,指数必为127(带偏差)且无需存储到查表1/2 318中。同样地,因为在实施例中f″(x)/2必为负,所以符号位无需存储到查表1/2 318中。如同一阶导函数所对应的值,二阶化约导函数所对应的值可以压缩格式而非全单精度IEEE-754格式存储。
在某些实施例中,与FMAD型运算相比LOG2的利用率相对较低,故可藉由限制发行率(issue rate)以最小化所需的查表数。举例如算法1中所示,可使用4条指令。若LOGTL1和LOGTL2的发行率限制在每N周期1条时,那么单一LOGTL1和LOGTL2单元可由N个单指令多数据(single-instruction,multiple data,SIMD)单元共享。
图5绘示对数处理系统300a-3中执行CFMAD1(修改的FMAD)运算部分的方块图。对数处理系统300a-3包含缓存器322(R2,保存从查表1/2 318所得的压缩值)、缓存器302(R0)、传输方块312和314、FMAD单元324、格式器(2)方块328、格式器(3)方块330和正规化(1)方块326。在一个实施例中,格式器(2)方块328与格式器(3)方块330大体上相同,但与正规化(1)方块326不同。正规化(1)方块326正规化和格式化(为单精度IEEE-754格式)来自缓存器R0 302(经由传输方块314)的最低有效位来源操作数。正规化(1)方块326可包含一前导零计数(CLZ)电路(例如为15位的前导零计数)用以找出缓存器中前导1和一移位电路(例如为用来执行15位左移的多路复用电路)用以将值左移至前导1出现。正规化(1)方块326亦可包含一个计数器(例如用以调整指数值,诸如减去所执行的左移的数目)和一线或(wire-OR)电路(例如用以重建32位浮点值)。因此,在实施例中,正规化(1)方块326包含逻辑,例如为前导零计数电路、移位电路、计数器和线或电路。就CLZ而言,如果CLZ回传值N,那么待正规化的值将移位N+1位且指数减少N+1。请注意,如上文所述,前导1无须存储,因为它已隐含在IEEE-754中。
格式器(2)方块328和格式器(3)方块330解压缩存储在缓存器322(R2)的值,并将解压缩后的值转换成单精度IEEE-754格式。在该数的余数已为前导1格式的情况下,格式器(2)方块328和格式器(3)方块330保存指数偏差量,因而减除提供移位功能的需要。然而,格式器(2)方块328和格式器(3)方块330都需要各自将尾数转换成单精度IEEE-754格式,且最低有效位为0。格式器(2)方块328将符号位设为0,格式器(3)方块330将符号位设为1。因此,在实施例中,格式器方块328和330可分别包含逻辑电路,诸如线或电路和计数器(例如为用来减去或加上指数偏差量,其例如为127)。请注意,正规化(1)方块326可包含格式器方块328、330。
视结构和系统需要而定,正规化(1)方块326及格式器方块328和330可在各处理级中实施。例如,在目的执行管线中,一管线阶段(pipelinestage)存在于修改来源的FMAD运算与操作数提取操作之间。因此,此一管线阶段也可用于正规化及格式化处理,且无需修改FMAD单元324。换言之,对数处理系统300-3可藉于一标准FMAD管线中添加正规化(1)方块326与格式器方块328与330而实现。除缓存器322(R2,其保存LOGTL1运算的输出值(查表1/2 318))外,CFMAD1运算也使用缓存器R0 302(经由传输方块314)和缓存器R3 340。缓存器R0 302保存原始来源操作数,而乘法/加法运算结果则存储在缓存器R3 340内。
正规化(1)方块326以及格式器方块328和330各自可采用两个输入。其中一输入是待正规化/格式化的值,而另一输入是指数调整值。正规化(1)方块326接收8位格式的值127。正规化(1)方块326所实施的15位左移可与指数更新平行处理。缓存器322中查表1/2的值为正规化格式(例如,总有一个未被存储的外显前导1),而此偏差指数为127且未被存储。因此,对等于格式器(2)方块328和格式器(3)方块330操作的函数可实施如下:
Formatter2/Formatter3(Input1,Input2)
BEGIN
Output[31]:=1;
Output[30:23]:=127-Input2;
Output[22:0]:={Input1,0*};
//将0填入最低有效位
END
正规化(1)方块326的输入并未正规化,而是呈现一0.00000000x14x13..x0格式,与格式器(2)方块328和格式器(3)方块330的输入不同。换言之,正规化(1)方块326的输入是以非正规化形式处理(例如非1而为0),且此输入包含在二进制为0其后的前导8位,故最低有效15位(亦即,x14x13..x0)需正规化。因此,一前导1设置机制可实施如下:
Normalizel(Inputl,Input2)
BEGIN
CLZ:=CountLeadingZeros(Input1)+1;
Sign:=0;
EXP:=127-Input2-CLZ;
MANT:=ShiftLeft(Input1,CLZ);
Output[31]:=Sign;
Output[22:0]:={MANT,o*};
//将0填入最低有效位
END
格式器和正规化(326、328和330)的输出乃是提供给标准FMAD单元324,该单元把正规化(1)方块326输出值与格式器(2)方块328输出值相乘,而后将所得结果与格式器(3)方块330输出值相加,最后的总和存储在R3 340中。
图6为对数处理系统300a-4中一执行CFMAD2运算区块的方块图。对数处理系统300a-4包括缓存器302(R0)、310(R1)、340(R3,其保存FMAD单元324对应的CFMAD1运算的输出值)和350(R4,其保存FMAD单元324对应的CFMAD2运算的输出值)。对数处理系统300a-4也包括传输方块312和314、FMAD单元324和正规化(1)方块326。CFMAD2运算为一三来源操作数混合浮点乘加运算。CFMAD2运算包含于正规化(1)方块326正规化缓存器302(R0)的内容来源输入,其中正规化方块326提供FMAD单元324一输出以供与缓存器340(R0)的内容相乘。其相乘的结果加入至来源输入缓存器310(R1)的内容中,并将相加所得结果存储到缓存器350(R4)中。
较低精度的log2(x)运算可以相同的查表和线性内插法(一阶泰勒级数)实现,如以下方程序(5)所示:
y=f(z0)+z1×f′(z0) 方程式(5)
该方程式可以图7所示方法实施。图7为对数处理系统300b中一CFMAD3运算部分实施例的方块图。对数处理系统300b包含与图3至图6所示对数处理系统300a(300a-1到300a-3)相同或类似的硬件组件。对数处理系统300b包含缓存器302、322、340和310、传输方块312和314、正规化(1)方块326和格式器(3)方块330以及FMAD单元324。控制对数处理系统300b操作的指令集(本实施例也称作算法2)实施例如下:
(1)LOGTL1 R1:=TableLookup1[R0 & 0x007F8000];
(2)LOGTL2 R2:=TableLookup2[R0 & 0x007F8000];
(3)CFMAD3 R3:=R1+(NORM(R0[14:01])
*-NORM(R2[21:10]))
因此,对数处理系统300b的另一个实施例包含两次查表和单次FMAD运算。运算格式近似于上文所述的CFMAD2指令,但其中两个来源操作数并未IEEE-754正规化且其结果存储在缓存器R3 340中。因此,定义出一额外指令CFMAD3。
图8绘示对数处理系统300c的部分实施例,此对数系统结合前述实施例(300a和300b)二者的功能。尤其,CFMAD1,CFMAD2和/或CFMAD3运算对应的逻辑基础为图3与图4相关叙述中的LOGTL1与LOGTL2,其操作与各组件亦视为对数系统300c的一部份。对数处理系统300c包括缓存器322(R2,其保存查表1/2 318所得的压缩值)、缓存器340(R3,其保存CFMAD1运算第一结果对应的单精度IEEE-754值)、缓存器310(R1,其保存自查表0 316所得的单精度IEEE-754值)、缓存器302(R0,未绘示,但用于提供传输方块314原始来源操作数)和用于存储CFMAD2运算(或CFMAD3运算)最终结果的缓存器350(R4)。对数处理系统300c也包括转移方块314、FMAD单元324、正规化(1)方块326、格式器(2)方块328与格式器(3)方块330和多路复用器342和344(说明如下)。
在操作过程中,格式器方块328和330的输出值提供至多路复用器342和344,其一实施例中可分别把两个多路复用器建构成2:1和3:1的多路复用器。特别的是,多路复用器342自格式器(3)方块330和缓存器310接收输入,且依据为下文所述的控制输入MADop1与MADop2,提供一输出至FMAD单元324的输入c。多路复用器344自格式器方块(2)328和格式器(3)方块330以及缓存器340接收输入。根据控制输入MADop1和MADop2,多路复用器344提供一输出值至FMAD单元324的输入端b。最后,正规化(1)方块326提供一输出值至FMAD单元324的输入端a。
就CFMAD1运算(如上所述的算法1中)而言且根据提供至多路复用器342和344的控制输入MADop1和MADop2,正规化(1)方块326和格式器方块328和330提供输出值至标准FMAD单元324,该标准FMAD单元324将正规化(1)方块326的输出值与格式器(2)方块328的输出值相乘,再将所得结果和格式器(3)方块330的输出相加。至于CFMAD1运算的结果则暂时存储在缓存器340(R3)中。
CFMAD2运算是一个三来源操作数浮点混合乘加运算。CFMAD2运算于正规化方块326内正规化内容来源输入缓存器302,该正规化(1)方块326提供一输出值至FMAD单元324的输入端a,以与缓存器340(R3)的内容相乘。该相乘的结果与缓存器310(R1)的内容相加,并将相加结果存储至缓存器350(R4)中。
CFMAD3相对的运算是通过自多路复用器342和344与控制输入MADop1与MADop2间选择输入组合而启动。
CFMAD1,CFMAD2与CFMAD3三者的多路复用器组合如下表所述:
MADop1 | MADop2 | |
CFMAD1 | 0 | 0 |
CFMAD2 | 1 | 1 |
CFMAD3 | 1 | 2 |
请注意,值0-2相对于图8中所示多路复用器342和344所示的输入端选择0-2。
由上述可得,一对数处理方法300d实施例包含(如图9中所示):执行第一查表求得对应的一正规化全精度IEEE-754格式化的基底函数(902);执行第二查表求得对应的一阶压缩值与二阶压缩化约值,其中,此一阶压缩值与基底函数的一阶导函数相对应,而此二阶压缩化约值则与基底函数的化约二阶导函数(904)相对应;解压缩该一阶值与二阶化约值,并以全精度(IEEE-754)格式化该解压缩的一阶值和二次化约值(906);正规化一最低有效位来源操作数并以全精度(IEEE-754)格式化此正规化最低有效位来源操作数(908);由执行全精度格式化一阶值与二阶化约值与全精度格式化最低有效位来源操作数的第一组合求得第一结果(910);由执行此第一结果与全精度格式化最低有效位来源操作数和全精度格式化基底值的第二组合以计算对数函数(912)。
由上述可得,一对数处理方法300e的实施例包含(如图10中所示):执行第一查表求得与基底函数对应的正规化全精度IEEE-754格式化基底值(1002);执行第二查表求得对应的一阶压缩值,此一阶压缩值乃与基底函数的一阶导函数相对应(1004);解压缩该一阶值且全精度格式化此解压缩的一阶值(1006);正规化最低有效位来源操作数且全精度格式化此正规化最低有效位来源操作数(1008);以及组合全精度格式化基底值、全精度格式化一阶值与全精度格式化最低有效位来源操作数以计算对数函数(1010)。
图9和图10的流程图中的任何步骤的描述或方块应视为表示代码模块、代码区段或代码的某些部分,而这些代码包括一条或一条以上的可执行指令以实现流程中特定逻辑功能或步骤。本发明所属技术领域的人员皆可了解,其它替代性的实施例也包括在本说明书所揭示内容的较佳实施例的范畴内,而在此范畴内的所绘示或所讨论的操作与步骤可根据功能的不同而以不同的顺序来执行,其中这些顺序包括同时发生或相反的次序。
虽然本发明已以较佳实施例揭露如上,然其用并非限定于本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。
Claims (36)
1.一种用于计算对数函数的方法,包括:
执行第一查表,求得一基底函数对应的全精度格式化基底值;
执行第二查表,求得对应的一阶压缩值,而该一阶压缩值对应于该基底函数的一阶导函数;
解压缩该一阶压缩值;
全精度格式化该解压缩一阶值,以提供一全精度格式化的一阶值;
正规化一最低有效位来源操作数,且以全精度格式化该正规化最低有效位来源操作数以提供一全精度格式化最低有效位来源操作数;以及
执行一组合步骤,组合该全精度格式化基底值、该全精度格式化一阶值与该全精度格式化最低有效位来源操作数,以计算该对数函数。
2.根据权利要求1所述的方法,其中,该组合的步骤包括计算一个一阶泰勒级数。
3.根据权利要求1所述的方法,其中,该组合的步骤包括将该全精度格式化一阶值与该全精度格式化最低有效位来源操作数相乘,而得一乘积,且该组合的步骤更进一步包括将该乘积与该全精度格式化基底值相加。
4.根据权利要求1所述的方法,其中,该基底函数包括一个与该对数函数log 2(x)对应的一阶泰勒级数y=f(z0)+z1×f′(z0),其中,x等于z0+z1。
5.根据权利要求4所述的方法,其中,该最低有效位来源操作数对应于z1,该全精度格式化基底值对应于f(z0),该基底函数的一阶导函数对应于f’(z0)。
6.根据权利要求1所述的方法,其中,以全精度格式化该解压缩一阶值以提供一全精度格式化的一阶值,其步骤包括将该解压缩一阶值转换为正规化IEEE 754格式。
7.根据权利要求1所述的方法,其中,该组合的步骤乃藉由标准混合浮点乘加软件来实施。
8.一种用于计算对数函数的方法,包括:
执行一第一查表,以提供一基底函数对应的一全精度格式化基底值;
执行一第二查表,求得对应的一阶压缩值与二阶压缩化约值,该一阶压缩值对应于该基底函数的一阶导函数,而该二阶压缩化约值对应于该基底函数化约二阶导函数;
解压缩该一阶压缩值与二阶压缩化约值;
全精度格式化该解压缩一阶值和二阶化约值,以提供全精度格式化的一阶值和二阶化约值;
正规化一最低有效位来源操作数并以全精度格式化该正规化最低有效位来源操作数,以提供一全精度格式化最低有效位来源操作数;
执行一第一组合的步骤,组合该全精度格式化一阶值及二阶化约值与该全精度格式化最低有效位来源操作数,以形成一第一结果;以及
执行一第二组合的步骤,组合该第一结果及该全精度格式化最低有效位来源操作数与该全精度格式化的基值,以计算该对数函数。
9.根据权利要求8所述的方法,其中,该第一组合和该第二组合的步骤包括计算一个二阶泰勒级数。
10.根据权利要求8所述的方法,其中,该第一组合的步骤包括将该全精度格式化二阶化约值与该全精度格式化最低有效位来源操作数相乘,且该第一组合的步骤更包括加上该全精度格式化一阶值以形成该第一结果。
11.根据权利要求8所述的方法,其中,该第二组合的步骤包括将该第一结果与该全精度格式化最低有效位来源操作数相乘,且该第二组合的步骤更包括加上该全精度格式化的基值。
12.根据权利要求8所述的方法,其中该基底函数的化约二阶导函数包括该基底函数的一个二阶导函数除以2。
13.根据权利要求8所述的方法,其中,该基底函数包括一个y=f(z0+(z1×T))二阶泰勒级数,其中
且该二阶泰勒级数对等至对数函数log 2(x),其中,x等于z0+z1。
14.根据权利要求13所述的方法,其中,该最低有效位来源操作数对应于z1,该全精度格式化基底值对应于f(z0),该基底函数的一阶导函数对应于f’(z0),该化约二阶导函数对应于f”(z0)/2。
15.根据权利要求8所述的方法,其中,以全精度格式化该解压缩一阶值和二阶化约值提供全精度格式化一阶值和二阶化约值的步骤包括将该解压缩的一阶值和二阶化约值转换成一正规化IEEE 754格式。
16.根据权利要求8所述的方法,其中,该第一组合和该第二组合的步骤乃是藉由标准浮点混合乘加硬件来实施。
17.一种对数处理系统,包括:
一第一查表内存,用以提供与一基底函数对应的一全精度格式化基值;
一第二查表内存,用以提供与该基底函数的一个一阶导函数对应的一个一阶压缩值;
一第一逻辑电路,用以解压缩和全精度格式化该一阶压缩值;
一第二逻辑电路,用以正规化一最低有效位来源操作数和全精度格式化该正规化的最低有效位来源操作数;以及
一混合浮点乘加逻辑电路,用以组合该全精度格式化的基值、该全精度格式化的一阶值与该全精度格式化的最低有效位来源操作数,以计算该对数函数。
18.根据权利要求17所述的系统,其中,该混合浮点乘加逻辑电路用以将该全精度格式化的一阶值与该全精度格式化的最低有效位来源操作数相乘而得到一个乘积,且该混合浮点乘加逻辑电路亦用以相加该乘积与该全精度格式化基底值。
19.根据权利要求18所述的系统,还包括一多路复用逻辑,用以选择正规化、全精度IEEE-754格式化输入至该混合浮点乘加逻辑电路。
20.根据权利要求17所述的系统,其中,该用以解压缩和全精度格式化该一阶压缩值的第一逻辑电路包括计数器硬件与线或电路。
21.根据权利要求17所述的系统,其中,该第二逻辑电路用以正规化一最低有效位来源操作数及以全精度格式化该正规化最低有效位来源操作数乃包括计数器硬件、线或电路、前导零电路和移位电路。
22.根据权利要求17所述的系统,其中,该第一查表内存和该第二查表内存用来分别实施与一第一指令和一第二指令对应的查表。
23.根据权利要求22所述的系统,其中,该正规化用途的第二逻辑电路和该解压缩和全精度格式化用途的第一逻辑电路可与该混合浮点乘加逻辑电路合作,实施一第三指令以响应该查表,来计算该对数函数。
24.根据权利要求23所述的系统,更包括一第一多路复用器和一第二多路复用器,耦接于该正规化用途的第二逻辑电路、该解压缩及全精度格式化用途的第一逻辑电路、存储缓存器与该混合浮点乘加逻辑电路之间,其中,该第一多路复用器和该第二多路复用器可切换开关来选择启动多个指令。
25.根据权利要求17所述的系统,其中,该基底函数包括一与该对数函数log 2(x)对应的一阶泰勒级数y=f(z0)+z1×f′(z0),其中x等于z0+z1。
26.根据权利要求25所述的系统,其中,该最低有效位来源操作数对应于z1,该全精度格式化基底值对应于f(z0),该基底函数的一阶导函数对应于f’(z0)。
27.一种对数处理系统,其包括:
一第一查表内存,以提供与一基底函数对应的一全精度格式化基底值;
一第二查表内存,以提供与该基底函数的一个一阶导函数对应的一个一阶压缩值和与该基底函数的一个化约二阶导函数对应的一个二阶压缩化约值;
一第一逻辑电路,用以解压缩该一阶压缩值和该二阶压缩化约值,以全精度格式化该解压缩一阶值和二阶化约值;
一第二逻辑电路,用以正规化一最低有效位来源操作数,以全精度格式化该正规化最低有效位来源操作数;以及
一混合浮点乘加逻辑电路,用以组合该全精度格式化一阶值及二阶化约值和该全精度格式化最低有效位来源操作数以形成一第一结果,其中,该混合浮点乘加逻辑电路更用来组合该第一结果及该全精度格式化最低有效位来源操作数和该全精度格式化基底值,以计算该对数函数。
28.根据权利要求27所述的系统,其中,该混合浮点乘加逻辑电路用以相乘该全精度格式化二阶化约值与该全精度格式化最低有效位来源操作数,且该混合浮点乘加逻辑电路更可用于加上该全精度格式化一阶值以形成该第一结果。
29.根据权利要求27所述的系统,其中,该混合浮点乘加逻辑电路用以相乘该第一结果与该全精度格式化最低有效位来源操作数,且该混合浮点乘加逻辑电路更用以加上该全精度格式化基底值。
30.根据权利要求27所述的系统,其中该基底函数的该化约二阶导函数包括该基底函数的一个二阶导函数除以2。
31.根据权利要求27所述的系统,其中,该第一查表内存和该第二查表内存用来分别实施与一第一指令和一第二指令对应的查表。
32.根据权利要求31所述的系统,其中,该正规化用途的第二逻辑电路和该解压缩和全精度格式化用途的第一逻辑电路与该混合浮点乘加逻辑电路合作,实施一第三指令以响应该查表,且将所得到结果存储至一第一缓存器中。
33.根据权利要求32所述的系统,其中,该正规化用途的第二逻辑电路和该解压缩和全精度格式化用途的第一逻辑电路可与该混合浮点乘加逻辑电路和该第一缓存器合作,实施一第四指令,以计算该对数函数。
34.根据权利要求33所述的系统,更包括一第一多路复用器和一第二多路复用器,耦接于该正规化用途的第二逻辑电路、该解压缩和全精度格式化用途的第一逻辑电路、该第一缓存器、存储缓存器与该混合浮点乘加逻辑电路之间,其中,该第一多路复用器和该第二多路复用器可切换开关以选择多个指令。
35.根据权利要求27所述的系统,其中,该基底函数包括一个y=f(z0+(z1×T))二阶泰勒级数,其中
且该二阶泰勒级数对应至该对数函数log 2(x),其中,x等于z0+z1。
36.根据权利要求35所述的系统,其中,该最低有效位来源操作数对应于z1,该全精度格式化基底值对应于f(z0),该基底函数的一阶导函数对应于f’(z0),该化约二阶导函数对应于f”(z0)/2。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/223,289 US7539717B2 (en) | 2005-09-09 | 2005-09-09 | Logarithm processing systems and methods |
US11/223,289 | 2005-09-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1838024A true CN1838024A (zh) | 2006-09-27 |
CN100472392C CN100472392C (zh) | 2009-03-25 |
Family
ID=37015439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100753406A Active CN100472392C (zh) | 2005-09-09 | 2006-04-10 | 对数处理系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7539717B2 (zh) |
CN (1) | CN100472392C (zh) |
TW (1) | TWI301578B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598432A (zh) * | 2013-10-30 | 2015-05-06 | 德克萨斯仪器股份有限公司 | 用于求解数学函数的计算机及方法 |
CN108228136A (zh) * | 2017-12-08 | 2018-06-29 | 上海集成电路研发中心有限公司 | 基于优化查找表法的对数函数计算的方法及装置 |
CN109144570A (zh) * | 2011-10-27 | 2019-01-04 | 英特尔公司 | 具有带有复数指数非线性函数的指令集的数字处理器 |
CN109716332A (zh) * | 2016-09-22 | 2019-05-03 | 高通股份有限公司 | 分段多项式评估指令 |
CN111814107A (zh) * | 2020-07-10 | 2020-10-23 | 上海擎昆信息科技有限公司 | 一种高精度实现平方根倒数的计算系统及其计算方法 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050177605A1 (en) * | 2004-02-10 | 2005-08-11 | Intel Corporation | Computation of logarithmic and exponential functions |
US8161090B2 (en) * | 2008-12-05 | 2012-04-17 | Crossfield Technology LLC | Floating-point fused add-subtract unit |
US9170776B2 (en) * | 2009-01-30 | 2015-10-27 | Intel Corporation | Digital signal processor having instruction set with a logarithm function using reduced look-up table |
US8676871B2 (en) * | 2010-09-24 | 2014-03-18 | Intel Corporation | Functional unit capable of executing approximations of functions |
CN103348300B (zh) * | 2011-01-21 | 2016-03-23 | 飞思卡尔半导体公司 | 计算函数的函数值的装置和方法 |
US9753695B2 (en) | 2012-09-04 | 2017-09-05 | Analog Devices Global | Datapath circuit for digital signal processors |
US9372692B2 (en) * | 2012-12-29 | 2016-06-21 | Intel Corporation | Methods, apparatus, instructions, and logic to provide permute controls with leading zero count functionality |
US20140324936A1 (en) * | 2013-04-30 | 2014-10-30 | Texas Instruments Incorporated | Processor for solving mathematical operations |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US10001993B2 (en) | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
DE102014200465A1 (de) * | 2014-01-14 | 2015-07-16 | Robert Bosch Gmbh | Vorrichtung und Verfahren zur Bestimmung eines Schätzwertes des Logarithmus einer Eingangsgröße |
BR112017001981B1 (pt) * | 2014-07-30 | 2023-05-02 | Movidius Limited | Método para gerenciar buffer de instruções, sistema e memória legível por computador relacionados |
CN105701055B (zh) * | 2014-11-26 | 2018-08-28 | 英业达科技有限公司 | 电子装置及其数据传输方法 |
US9772975B2 (en) * | 2015-07-02 | 2017-09-26 | Oracle International Corporation | Hybrid table-lookup algorithm for functions |
JP6497250B2 (ja) * | 2015-07-16 | 2019-04-10 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
TWI583140B (zh) * | 2016-01-29 | 2017-05-11 | 晨星半導體股份有限公司 | 具對數計算功能的解碼模組 |
US10303439B2 (en) * | 2016-04-26 | 2019-05-28 | International Business Machines Corporation | Logarithm and power (exponentiation) computations using modern computer architectures |
US20180217814A1 (en) * | 2017-02-02 | 2018-08-02 | Vivante Corporation | Systems And Methods For Computing Mathematical Functions |
WO2019005165A1 (en) | 2017-06-30 | 2019-01-03 | Intel Corporation | METHOD AND APPARATUS FOR VECTORIZING INDIRECT UPDATING BUCKLES |
US10949766B2 (en) * | 2017-10-15 | 2021-03-16 | Gsi Technology Inc. | Precise exponent and exact softmax computation |
WO2019106415A1 (en) * | 2017-12-01 | 2019-06-06 | Intel Corporation | Logarithmic computation technology that uses derivatives to reduce error |
US10970080B2 (en) | 2018-02-08 | 2021-04-06 | Marvell Asia Pte, Ltd. | Systems and methods for programmable hardware architecture for machine learning |
US11016801B1 (en) | 2018-05-22 | 2021-05-25 | Marvell Asia Pte, Ltd. | Architecture to support color scheme-based synchronization for machine learning |
US10929760B1 (en) * | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Architecture for table-based mathematical operations for inference acceleration in machine learning |
US10929778B1 (en) | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Address interleaving for machine learning |
US10997510B1 (en) | 2018-05-22 | 2021-05-04 | Marvell Asia Pte, Ltd. | Architecture to support tanh and sigmoid operations for inference acceleration in machine learning |
US10891136B1 (en) | 2018-05-22 | 2021-01-12 | Marvell Asia Pte, Ltd. | Data transmission between memory and on chip memory of inference engine for machine learning via a single data gathering instruction |
US10929779B1 (en) | 2018-05-22 | 2021-02-23 | Marvell Asia Pte, Ltd. | Architecture to support synchronization between core and inference engine for machine learning |
GB2582146B (en) | 2019-03-11 | 2021-08-18 | Graphcore Ltd | Execution Unit for Evaluating Functions Using Newton Raphson Iterations |
GB2582144B (en) | 2019-03-11 | 2021-03-10 | Graphcore Ltd | Execution Unit Comprising Processing Pipeline for Evaluating a Plurality of Types of Functions |
GB2582143B (en) * | 2019-03-11 | 2021-03-10 | Graphcore Ltd | Execution unit |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5184347A (en) * | 1991-07-09 | 1993-02-02 | At&T Bell Laboratories | Adaptive synchronization arrangement |
US5604691A (en) * | 1995-01-31 | 1997-02-18 | Motorola, Inc. | Logarithm/inverse-logarithm converter utilizing a truncated Taylor series and method of use thereof |
US5933360A (en) * | 1996-09-18 | 1999-08-03 | Texas Instruments Incorporated | Method and apparatus for signal compression and processing using logarithmic differential compression |
US6711596B1 (en) * | 1999-05-14 | 2004-03-23 | University Of Newcastle Upon Tyne | Method and apparatus for determining the approximate valve of a logarithmic function |
US7171435B2 (en) * | 2002-05-17 | 2007-01-30 | Texas Instruments Incorporated | Circuits, systems, and methods implementing approximations for logarithm, inverse logarithm, and reciprocal |
US7606850B2 (en) * | 2005-03-30 | 2009-10-20 | Lockheed Martin Corporation | Method and apparatus for providing a base-2 logarithm approximation to a binary number |
-
2005
- 2005-09-09 US US11/223,289 patent/US7539717B2/en active Active
-
2006
- 2006-03-24 TW TW095110243A patent/TWI301578B/zh active
- 2006-04-10 CN CNB2006100753406A patent/CN100472392C/zh active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144570A (zh) * | 2011-10-27 | 2019-01-04 | 英特尔公司 | 具有带有复数指数非线性函数的指令集的数字处理器 |
CN104598432A (zh) * | 2013-10-30 | 2015-05-06 | 德克萨斯仪器股份有限公司 | 用于求解数学函数的计算机及方法 |
US10430494B2 (en) | 2013-10-30 | 2019-10-01 | Texas Instruments Incorporated | Computer and methods for solving math functions |
CN104598432B (zh) * | 2013-10-30 | 2022-04-15 | 德克萨斯仪器股份有限公司 | 用于求解数学函数的计算机及方法 |
CN109716332A (zh) * | 2016-09-22 | 2019-05-03 | 高通股份有限公司 | 分段多项式评估指令 |
CN108228136A (zh) * | 2017-12-08 | 2018-06-29 | 上海集成电路研发中心有限公司 | 基于优化查找表法的对数函数计算的方法及装置 |
CN108228136B (zh) * | 2017-12-08 | 2021-06-15 | 上海集成电路研发中心有限公司 | 基于优化查找表法的对数函数计算的方法及装置 |
CN111814107A (zh) * | 2020-07-10 | 2020-10-23 | 上海擎昆信息科技有限公司 | 一种高精度实现平方根倒数的计算系统及其计算方法 |
CN111814107B (zh) * | 2020-07-10 | 2021-03-12 | 上海擎昆信息科技有限公司 | 一种高精度实现平方根倒数的计算系统及其计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100472392C (zh) | 2009-03-25 |
TW200710682A (en) | 2007-03-16 |
US7539717B2 (en) | 2009-05-26 |
TWI301578B (en) | 2008-10-01 |
US20070061389A1 (en) | 2007-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1838024A (zh) | 对数处理系统和方法 | |
Banescu et al. | Multipliers for floating-point double precision and beyond on FPGAs | |
Liang et al. | Floating point unit generation and evaluation for FPGAs | |
CN1088214C (zh) | 用多指令集处理数据的器件和方法 | |
CN1306390C (zh) | 使用带符号的数位表示的乘法器 | |
De Caro et al. | Efficient logarithmic converters for digital signal processing applications | |
CN106897046A (zh) | 一种定点乘累加器 | |
CN1655118A (zh) | 处理器和编译器 | |
US9552189B1 (en) | Embedded floating-point operator circuitry | |
CN1250906A (zh) | 使用组合的数据处理器系统和指令系统 | |
CN1928809A (zh) | 用于执行浮点运算的系统、设备和方法 | |
CN1821951A (zh) | 算术单元 | |
CN1684058A (zh) | 处理器 | |
CN1975662A (zh) | 算术运算单元、信息处理设备和算术运算方法 | |
JP2006154979A (ja) | 浮動小数点数演算回路 | |
CN1058344C (zh) | 数据处理系统中进行模糊逻辑运算的方法和数据处理系统 | |
CN111796798B (zh) | 一种定点与浮点转换器、处理器、方法以及存储介质 | |
EP4109236A1 (en) | Area and energy efficient multi-precision multiply-accumulate unit-based processor | |
CN1890629A (zh) | 使用按比例调整的整数的浮点运算 | |
CN1014188B (zh) | 二~十进制加法器电路 | |
CN1959630A (zh) | 微处理器 | |
CN116738132A (zh) | 超越函数的处理方法、超越函数单元、图形处理器 | |
CN1492313A (zh) | 用于数字扫描变换装置的坐标转换方法及处理器 | |
CN1326566A (zh) | 对多个带符号的数据值执行算术运算的数据处理系统和方法 | |
CN1945488A (zh) | 一种求定点数字信号常用函数值的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |