CN1890629A - 使用按比例调整的整数的浮点运算 - Google Patents
使用按比例调整的整数的浮点运算 Download PDFInfo
- Publication number
- CN1890629A CN1890629A CNA2004800359860A CN200480035986A CN1890629A CN 1890629 A CN1890629 A CN 1890629A CN A2004800359860 A CNA2004800359860 A CN A2004800359860A CN 200480035986 A CN200480035986 A CN 200480035986A CN 1890629 A CN1890629 A CN 1890629A
- Authority
- CN
- China
- Prior art keywords
- value
- multiplier
- ratio
- multiplier value
- bit field
- 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
Links
Images
Classifications
-
- 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
揭示了使用按比例调整的整数来执行数学运算的方法、装置和制造品。特别地,一种示例方法标识按比例调整的整数值,并基于该按比例调整的整数值确定乘数值和比例值。乘数值通过基于该按比例调整的整数值从位字段的第一部分中提取信息来确定。比例值通过基于该按比例调整的整数值从位字段的第二部分中提取信息来确定。位字段的第一和第二部分可被配置成包括带符号整数值。然后该示例方法基于乘数值和比例值执行一算术运算。
Description
技术领域
本发明一般涉及处理器系统,尤其涉及使用按比例调整的整数(scaled integer)执行数学运算的方法、装置和制造品。
背景技术
诸如图形处理应用程序的许多应用程序包括通常使用基于整数的运算和/或基于浮点数的运算实现的大计算量运算。例如,诸如IntelXScale处理器系列的许多移动处理器是提供基于自然整数运算的基于整数处理器。众所周知的较低性能的图形应用程序常常在使用整数数据类型的基于整数处理器上运行。然而,高性能图形应用程序需要基于具有超过通常由基于整数处理器使用的整数数据类型的范围的数值范围的数字进行计算。
包括高性能图形应用程序的许多大计算量应用程序需要浮点数据类型,该类型提供超过通常由整数数据类型所提供数值范围的数值范围。由整数数据类型提供的受限制数值范围常常通过在基于整数的处理器上执行浮点数仿真软件来克服。
使用整数数据类型执行图形应用程序可提供能接受的动画速度,但通常因整数数据类型的受限制数值范围而导致图片质量下降。另一方面,使用浮点数类型执行图形应用程序导致相对较佳的图片质量,但通常因为执行浮点数仿真软件所需的处理开销而导致较慢的动画速度。
诸如基于IntelXScale处理器系列的手持式平台的手持式平台通常使用定点工具或浮点工具来实现图形应用程序。定点工具是基于可使用整数数据类型实现的定点数据类型。然而,大多数当前图形应用程序被设计成使用浮点数据类型。结果,定点工具涉及重建当前图形应用程序的软件基础结构,以用定点数据类型发挥作用。
定点数据类型包括16位整数部分加16位分数部分,并用Intel图形性能元(GPP)库来实现。使用定点数据类型的图形应用程序使用定点运算,该定点运算以等于整数运算的速度执行,因为定点数据类型是基于大多数手持式平台处理器所固有的整数数据类型实现的。此外,使用定点数据类型的图形应用程序可在手持式平台上提供相对较高的帧频,导致诸如游戏应用程序的大计算量图形应用程序有可接受性能。
然而,定点工具常常导致与重建软件应用程序相关联的较高开发成本,这些软件应用程序被设计成用诸如浮点工具的较大动态数值范围工作。特别地,图形应用程序的较低层软件的相当部分需要重建成用浮点和整数数据类型工作。
定点工具还提供比浮点工具更加受限制的动态数值范围。该受限制的动态数值范围因为与定点数据类型相关联的数据的非最优人工缩放而导致损失相对精度。与定点数据类型相关联的相对低精度常常导致普通消费者通常可察觉到的视觉伪像。
手持式平台的浮点工具涉及在浮点仿真软件之上执行现有的图形应用程序或诸如Direct3D和OpenGL的低层软件,从而消除重建软件以使用诸如定点数据类型的新数据类型的需要。浮点工具通常涉及相对较低的开发成本,因为许多当前应用程序并不需要为使用浮点数据类型而重建。此外,使用浮点工具,结果的图形质量因为浮点数据类型的相对较高动态数值范围而较高。
不幸的是,基于浮点仿真软件的浮点工具性能相对较低。结果,只有较少的大计算量图形应用程序可使用这种浮点工具来具有可接受性能地执行。例如,基于浮点仿真软件的浮点工具对需要相对较高帧频的大计算量图形应用程序(例如游戏应用程序)而言就太慢。此外,关联于处理基于浮点运算的功率消耗与关联于基于整数运算的功率消耗相比相对较高。
附图说明
图1是本领域众所周知的浮点数据类型的示例二进制表示。
图2是根据所揭示装置和方法的一实施例的示例按比例调整的整数数据类型的示例二进制表示。
图3是根据所揭示装置和方法的一实施例的示例方式的流程图,用该示例方式可使用结合图2所述的示例按比例调整的整数数据类型来执行示例算术运算。
图4是示出根据所揭示装置和方法的一实施例的示例方式的流程图,用该示例方式可使用结合图2所述的示例按比例调整的整数数据类型来执行示例扩展算术运算。
图5-9是根据所揭示装置和方法的一实施例的多种示例方式的流程图,用这些示例方式可使用结合图2所述的示例按比例调整的整数数据类型来执行结合图4所述的示例状态运算。
图10是示出根据所揭示装置和方法的一实施例的示例方式的流程图,用该示例方式可使用结合图2所述的示例按比例调整的整数数据类型来执行规格化运算。
图11是示出根据所揭示装置和方法的一实施例的示例方式的流程图,用该示例方式可使用结合图2所述的示例按比例调整的整数数据类型来执行逆运算。
图12是可用来实现在此所述的装置和方法的示例系统的框图。
图13是可用来实现在此所述的装置和方法的示例处理器系统的框图。
具体实施方式
图1是众所周知的浮点数据类型的示例二进制表示100。根据IEEE浮点标准754-1985,浮点数据类型与32位单精度浮点数据类型和64位双精度浮点数据类型相关联。然而,对本领域技术人员显而易见的是,浮点数据类型可适合某些应用程序的特定需要。此外,浮点数据类型可用来提供具有相对较大数值范围和相对精确的计算结果。一般而言,浮点数据类型的数值范围是基于移动或浮动的二进制小数点。移动或浮动二进制小数点是基于由IEEE浮点标准754-1985定义的一系列规则。
图1所示的浮点数据类型的示例二进制表示100包括符号位102、指数位字段(e)104、尾数位字段(f)106。对于32位值,在单精度浮点数据类型中,符号位102用位31表示,指数位字段104为8位长并由位23~30表示,而尾数位字段106为23位长并由位0~22表示。对于64位值,在双精度浮点数据类型中,符号位102用位63表示,指数位字段104为11位长并由位52~62表示,而尾数位字段106为52位长并由位0~51表示。
浮点数据类型还使用偏置值。单精度浮点数据类型的偏置值等于127,而双精度浮点数据类型的偏置值等于1023。此外,偏置值等于指数位字段104的值的一半减一(例如28/2-1=127)。
浮点编码值(例如示例二进制表示100)的数值变换涉及确定浮点编码值的等价数值。浮点编码值可以是例如根据浮点数据类型的示例二进制表示100编码的任何值。确定浮点编码值的等价数值涉及基于符号位102、指数位字段104、尾数位字段106和指数值的数值变换过程。
符号位102指定等价数值的符号。指数位字段104和尾数位字段106指定等价数值的尾数和分数部分。特别地,指数值通过从指数位字段104的值中减去偏置值来确定(即e-偏差)。一般而言,偏置值被选择为使正负指数值可基于指数位字段104的值产生。
尾数位字段(f)106表示分数或小数值,并通常与规格化值和非规格化值相关联。规格化值包括1的首项值、加上二进制小数点(即小数点)和尾数位字段106的值(即1.f)。非规格化值包括0的首项值、加上二进制小数点和尾数位字段106的值(即0.f)。首项值和二进制小数点是隐含的,因而并未存储在图1浮点数据类型的示例二进制表示100的任一位位置上。浮点值通常用保留尾数位字段106值的精度的标准形式存储。非标准形式通常在特定情形中使用,且并不保留尾数位字段106的值的全部精度。
浮点编码值的数值变换可根据以下等式执行:
等式1 VFP=(-1)[符号位]·2e-偏置值·(1.f)如等式1所示,浮点编码值的等价数值由变量VFP表示,并可通过将尾数位字段106的值乘以2的偏置指数次方,并乘以-1的符号位102的值次方。
为了更好地理解浮点编码值的数值变换,理解尾数位字段106的数值变换(即将尾数位字段106转换成等价数值)是有帮助的。尾数位字段106的每个位都与分数值相关联,该分数值由包括2的负整数次方(例如2-1=1/2、2-2=1/4等)的值的2的乘方值所指定。尾数位字段106包括与分数值2-1相关联的MSB b0(即最接近二进制小数点的位)、以及与分数值2-M相关联的LSB bM-1(即最远离二进制小数点的位),其中M是尾数位字段106中最大数量的位。例如,对于单精度浮点数值M等于23,而对于双精度浮点数值M等于52。尾数位字段106的等价数值可根据以下等式2确定。
等式2Vf=b0·2-1+b1·2-2+…+bM-2·2M-1·bM-1·2M
如以上等式2所示,尾数位字段(f)106的等价数值由变量Vf表示,并可通过产生每个位值与其相应分数值的乘积、然后确定乘积之和来确定。如果分数值(例如2-1)的相应位(例如b0)为0,则删除该分数值。另一方面,如果分数值的相应位为1,则将该分数值添加到分数位的和中。
如可从前面内容理解的,由于确定浮点编码值的等价数值的复杂性,通常需要复杂硬件和/或复杂软件基础结构来基于浮点数据类型执行算术运算。
图2是示例按比例调整的整数数据类型的示例二进制表示200。特别地,示例按比例调整的整数数据类型基于按比例调整的整数值,并可用来提供超过通常由浮点数据类型所提供数值范围的数值范围。此外,基于按比例调整的整数值的算术运算通常不如基于浮点值的算术运算复杂。如以下详细所述,示例按比例调整的整数数据类型的属性使算术运算能使用与整数算术运算相关联的指令来实现。基于示例按比例调整的整数数据类型的算术运算可提供与关联于整数数据类型运算的执行速度和功率消耗特征相似的执行速度和功率消耗特征。此外,基于示例按比例调整的整数数据类型的算术运算可用硬件(例如图12的示例系统1200)和/或存储在机器可访问介质(例如计算机可存取介质)中的并由处理器系统(例如图13的处理器系统1310)执行的软件实现。特别地,基于示例按比例调整的整数数据类型的算术运算可通过诸如IntelXScale处理器系列的基于整数处理器来执行。
现在详细参看图2,示例二进制表示200表示为可用来将按比例调整的整数值(即按比例调整的整数编码值)存储在存储器(例如图13的系统存储器1324)中的位结构或排列。按比例调整的整数值可使用任何期望数量的位来表示,并且如示例按比例调整的整数数据类型的示例二进制表示200中所示,包括其中可存储乘数值I的乘数值位字段202、以及其中可存储比例值Q的比例值位字段204。乘数值I和比例值Q可以是具有任何所要求数量位的整数值。用来形成乘数值位字段202和比例值位字段204的位数之和等于按比例调整的整数值(I,Q)的总位数(即示例二进制表示200的位数)。
尽管乘数值I和比例值Q可被选择为包括任何数量的位,乘数值I和比例值Q中的位数可被选择为匹配其上要实现示例按比例调整的整数数据类型的处理器的能力和结构。例如,对于32位处理器,乘数值I和比例值Q可被选择成乘数值I和比例值Q之和等于32(即I+Q=32)。此外,对于32位处理器,乘数值I和比例值Q中的位数可被选择为8的倍数,以简化基于示例按比例调整的整数数据类型的算术运算。选择用于示例按比例调整的整数数据类型的乘数值I和比例值Q的位长可被提供给硬件和/或软件,以在运行时间阶段期间使能按比例调整的整数值的译码。例如,与示例按比例调整的整数数据类型相关联的位长可通过全局变量提供给多个应用程序。
乘数值I和比例值Q可被选择为带符号整数值(例如I,Q=0,±1,±2,±3等),并可用2的补码形式存储,这使2的补码运算能在运行时间阶段实现。此外,按比例调整的整数在表示中提供冗余,这使得一个值能以若干种方式用示例按比例调整的整数数据类型的示例二进制表示200来表示。例如,基于结合以下等式3详细运算的按比例调整的整数编码值的数值变换,按比例调整的整数值(即(I,Q)值)、(1,0)、(2,1)和(4,-2)彼此相等。
按比例调整的整数值与用来确定复合比例指数的偏置值β。复合比例指数通过从比例值Q减去偏置值β(即Q-β)来确定,并用来执行按比例调整的整数编码值的数值转换。通常,偏置值β可被选择为固定值,并可通过例如全局变量使用示例按比例调整的整数数据类型提供给硬件和/或软件,从而可在运行时间阶段正确地解释按比例调整的整数值。
按比例调整的整数编码值的数值变换可用来确定按比例调整的整数编码值的等价数值,并且是基于乘数值I、比例值Q和偏置值β的。更具体地,按比例调整的整数的等价数值可如以下等式3所示地确定。
等式3 VSI=I·2Q-β
如等式3所示,按比例调整的整数值的等价数值由变量VSI表示,并可通过将复合合比例指数(即Q-β)增加至2的乘方,并将结果乘以乘数值I来确定。一般而言,通过用代数方法重新排列等式3、对偏差β选择固定值、并选择乘数值I和比例值Q来代表数值,数值可被编码为按比例调整的整数值。在选定乘数值I和比例值Q之后,这些值可被舍入或舍去成所要求位长或数据宽度。
示例按比例调整的整数数据类型的示例二进制表示200将乘数值I和比例值Q示为I加上Q的串接,以形成按比例调整的整数编码值XSCINT(即XSCINT=(I,Q)),如以下等式4所示。然而,该乘数值I和比例值Q也可以由Q及随后的I串接(即XSCINT=(Q,I)),如以下等式5所示。
等式4 il-1il-2…i0qm-1qm-2…q0
等式5 qm-1qm-2…q0il-1il-2…i0
如以上等式4和5所示,乘数位值i表示乘数值位字段202的位值,乘数位长值1表示乘数值位字段202的位数,比例位值q表示比例值位字段204的位值,比例位长值m表示比例值位字段204的位数。
乘数值I和比例值Q的数值范围可基于乘数位长值l和比例位长值m确定。例如,乘数值I的数值范围可被表达为-2l-1≤I≤2l-1-1,而比例值Q的数值范围可被表达为-2m-1≤Q≤2m-1-1。在该情形中,最大按比例调整的整数值(即最正值)和最小按比例调整的整数值(即最负值)可根据以下等式6和7确定。
等式6
等式7
如等式6所示,项2l-1-1表示乘数值I的最大值,该项乘以项22m-1-(1+β),其中2m-1-(1+β)表示比例值Q的最大值。如等式7中所示,项-2l-1表示最小的乘数值I,为负值并乘以项22m-1(1+β)。项22m-1(1+β)的大小相对较大,因为2m-1-(1+β)表示最大比例值Q。因而,最小按比例调整的整数值是通过将一负值(例如-2l-1)乘以具有相对较大大小(例如22m-1-(1+β))的值来确定。
如等式6和7所示,乘数值I的数值范围(即-2l-1≤I≤2l-1-1)、比例值Q的数值范围(即-2m-1≤Q≤2m-1-1)、以及按比例调整的整数值的最大数值范围在理论上并不受限制,因为比例位长值m和乘数位长值1可被选为任何所要求长度。然而,在实践中,当用硬件和/或软件实现时,示例按比例调整的整数数据类型可被实现成表示所有可能按比例调整的整数值的子集。更具体地,示例按比例调整的整数数据类型的数值范围可被实现成表示所有可能按比例调整的整数数值范围的子集。例如,示例按比例调整的整数数据类型的数值范围,可基于目标平台特征、处理器能力、硬件能力等实现,以防止与溢出或下溢情形相关联的计算误差。
图3是可使用结合以上图2描述的示例按比例调整的整数数据类型执行的示例算术运算的一种示例方式的流程图。特别地,示例算术运算可包括乘法运算、加法运算、和减法运算。除法运算并未在图3中明显地示出。然而,如以下结合图11的描述,通过确定按比例调整的整数值的倒数加上乘法运算,可执行除法运算。可通过响应于存储在存储器中(例如图13的系统存储器1324)的可存取指令或函数的执行请求算术运算,来调用图3的示例方法。此外,示例算术运算可用硬件(例如图12的示例系统1200)和/或存储在机器可访问介质(例如计算机可存取介质)并在处理器系统(例如图13的处理器系统1310)上执行的软件来实现。为了清楚起见,示例算术运算是基于使用第一输入值XSCINT、第二输入值YSCINT、以及结果值ZSCINT而被描述。
开始时,第一输入值XSCINT和第二输入值YSCINT被析取以产生第一按比例调整的整数值(Ix,Qx)和第二按比例调整的整数值(Iy,Qy)(框302)。输入值XSCINT和YSCINT可通过实现一析取函数或指令(即(Ix,Qx)=unpack(XSCINT))来析取,该函数在执行时使处理器(例如图13的处理器1312)或硬件(例如图12的示例系统1200)能从第一输入值XSCINT中分离或解析第一输入乘数值Ix和第一输入比例值Qx,并从第二输入值YSCINT中分离或解析第二输入乘数值Iy和第二输入比例值Qy。输入乘数值Ix和Iy以及输入比例值Qx和Qy可存储在例如系统存储器1324(图13)或位于处理器(例如图13的处理器1312)中的寄存器中。
在输入值XSCINT和YSCINT被析取之后,确定要执行的算术运算是否为乘法运算(框304)。如果在框304确定要执行的算术运算为乘法运算,则所析取的输入按比例调整的整数值(Ix,Qx)和(Iy,Qy)基于输入乘数值Ix和Iy以及输入比例值Qx和Qy根据以下等式8和9相乘(框306)。
等式8 Iz=Ix·Iy
等式9 Qz=Qx+Qy-β
如等式8所示,乘数值结果Iz通过将第一输入乘数值Ix乘以第二输入乘数值Iy来确定。此外,比例值结果Qz通过将第一输入比例值Qx加上第二输入比例值Qy,再从结果减去偏置值β。
如果在框304确定要执行的算术运算并不是乘法运算,则确定第一输入比例值Qx是否等于第二输入比例值Qy(框310)。如果在框310确定第一输入比例值Qx等于第二输入比例值Qy,则确定要执行的算术运算是否是加法运算(框312)。如果在框312确定要执行的算术运算是加法运算,则所输入的按比例调整的整数值(Ix,Qx)和(Iy,Qy)基于输入乘数值Ix和Iy以及第一输入比例值Qx根据以下等式10和11相加(框314)。
等式10 Iz=Ix+Iy
等式11 Qz=Qx
如等式10所示,乘数值结果Iz通过将第一输入乘数值Ix加上第二输入乘数值Iy来确定。如等式11所示,比例值结果Qz被设置成等于第一输入比例值Qx。或者,因为第一输入比例值Qx等于第二输入比例值Qy,比例值结果Qz可被设置成等于第二输入比例值Qy(例如Qz=Qy)。
如果在框312确定要执行的算术运算并非加法运算,则基于输入乘数值Ix和Iy以及第一输入比例值Qx根据以下等式12和13从第一输入按比例调整的整数值(Ix,Qx)减去第二输入按比例调整的整数值(Iy,Qy)(框316)。
等式12 Iz=Ix-Iy
等式13 Qz=Qx
如等式12所示,乘数值结果Iz通过从第一输入乘数值Ix减去第二输入乘数值Iy来确定。如等式13所示,比例值结果Qz被设置成等于第一输入比例值Qx。或者,因为第一输入比例值Qx等于第二输入比例值Qy,比例值结果Qz可被设置成等于第二输入比例值Qy(例如Qz=Qy)。
如果在框310确定第一输入比例值Qx不等于第二输入比例值Qy,则最大比例值Qmax基于输入比例值Qx和Qy确定(框318)。通过实行Q-MAX指令或函数(即Qmax=max(Qx,Qy)),可确定最大比例值Qmax,该指令或函数在执行时使处理器(例如图13的处理器1312)或硬件(例如图12的示例系统1200)对第一输入比例值Qx和第二输入比例值Qy作比较、确定两者之中的较大值、并将最大比例值Qmax设置成等于该较大值。例如,如果第二输入比例值Qy大于第一输入比例值Qx,则最大输入比例值Qmax被设置成等于第二输入比例值Qy(例如Qmax=Qy)。
然后确定要执行的算术运算是否是加法运算(框320)。如果在框320确定该算术运算为加法运算,则基于第一输入乘数值Ix和第二输入乘数值Iy确定用于加法运算的第一中间乘数值Ix’和第二中间乘数值Iy’(框322)。第一中间乘数值Ix’根据以下等式14基于第一输入乘数值Ix、最大比例值Qmax、以及第一输入比例值Qx来确定。第二中间乘数值Iy’根据以下等式15基于第二输入乘数值Iy、最大比例值Qmax、以及第二输入比例值Qy来确定。括号‘…’表示‘底部(floor)’函数,从而x是唯一整数且x≤x<x+1。
如以上等式14所示,第一中间乘数值I’x等于第一乘数值Ix除以2的最大比例值Qmax减去第一输入比例值Qx的结果次方的底部函数。如以上等式15所示,第二中间乘数值I’y等于第二乘数值Iy除以2的最大比例值Qmax减去第二输入比例值Qy的结果次方的底部函数。尽管框322的过程被描述为确定中间乘数值I’x和I’y,该过程的最优化可通过仅确定中间乘数值之一来实现,因为结合以上框318所述,Qmax被设置成等于Qx或Qy。因此,只有等式14和15的除数之一将等于除1以外的值(即20=1)。
如果在框320确定算术运算并非加法运算,则基于第一输入乘数值Ix和第二输入乘数值Iy确定用于减法运算的第一中间乘数值Ix’和第二中间乘数值Iy’(框324)。第一中间乘数值Ix’根据以上等式14来确定。第二中间乘数值Iy’根据以下等式16基于第二输入乘数值Iy、最大比例值Qmax、以及第二输入比例值Qy来确定。
如以上等式16所示,第二中间乘数值I’y等于第二乘数值Iy除以2的最大比例值Qmax减去第二输入比例值Qy的结果次方的负值的底部函数。
在框322或框324确定的中间乘数值I’x和I’y,以及最大比例值Qmax被用来形成第一中间按比例调整的整数值(I’x,Qmax)和第二中间按比例调整的整数值(I’y,Qmax)。然后基于在框322或框324确定的中间乘数值I’x和I’y以及最大比例值Qmax根据以下等式17和等式18通过将第一中间按比例调整的整数值(I’x,Qmax)加上第二中间按比例调整的整数值(I’y,Qmax)(框326)来执行所要求算术运算(即加法运算或减法运算)。
等式17 Iz=I′x+I′y
等式18 Qz=Qmax
如等式17所示,乘数值结果Iz通过将第一中间乘数值I’x加上第二中间乘数值I’y来确定。特别地,如果要执行的算术运算是加法运算,则中间乘数值I’x和I’y在框322中确定。另一方面,如果要执行的算术运算是减法运算,则中间乘数值I’x和I’y在框324中确定。如以上等式18所示,比例值结果Qz被设置成等于最大比例值Qmax。
在执行所请求的算术运算之后(框306、框314、框316或框326),乘数值结果Iz和比例值结果Qz被打包以产生结果值ZSCINT(框328)。通过实现打包指令或函数(例如ZSCINT=pack(Iz,Qz)),可产生结果值ZSCINT,该指令或函数在执行时使处理器(例如图13的处理器1312)和/或硬件(例如图12的示例系统1200)例如根据等式4或等式5串接乘数值结果Iz和比例值结果Qz并将该结果存储成结果值ZSCINT。
图4是示出可使用结合以上图2所述的示例按比例调整的整数数据类型来执行示例扩展算术运算的示例方式的流程图。示例扩展算术运算可用来分析和/或更改因例如如结合图3所述执行的乘法、加法或减法运算得到的按比例调整的整数值的数值特征。此外,如以下更详细的描述,示例扩展算术运算可包括基于按比例调整的整数值的数值特征的更新状态标志的运算。
在继续详细描述示例扩展算术运算之前,应当理解图5-9的示例状态运算、结合图4的示例扩展算术运可用来更新各状态标志,包括不准确标志(flag_i)、非规格化标志(flag_u)、零标志(flag_z)、负标志(flag_n)和饱和标志(flag_q)。溢出标志(flag_v)和进位标志(flag_c)也可通过重复清除溢出标志(即flag_v=假),并将进位标志的状态设置成负标志的相反或互补状态(即flag_c=-(flag_n))来实现。
作为示例,状态标志参照算术运算(例如图3的示例算术运算)和状态运算(例如图5-9的示例状态运算)的结果来描述。此外,应理解算术运算或状态运算的乘数值I结果和比例值Q结果可以不是准确结果(即理论数学结果)。例如,在以上等式14或15中,如果在确定中间乘数值时丢失了多个比特,则所要求算术运算的结果将不会准确。
如果算术运算的结果已被更改,或者并不等于相应理论数学结果(即已返回不准确结果),则可置位不准确标志(flag_i)。例如,状态运算(例如图6的右-规格化操作)可用来更改算术运算的结果,从而状态运算的结果不等于算术运算的结果。在另一示例中,当与示例算术运算相关联的运算,比如以上结合图3所述的max(Q1,Q2)函数,更改(例如舍去、舍入等)输入值并产生不等于原始输入值的相应理论数学估算的结果时,可设置不准确标志。
如果算术运算或状态运算返回在2l-2≤I≤2l-1-1或-2l-1≤I≤-2l-2-1范围中的乘数值I,则非规格化标志(flag_u)可被清除为假。如果算术运算或状态运算的结果的值等于0,则零标志(flag_z)可被设置成真。如果算术运算或状态运算的结果的值等于负值,则负标志(flag_n)可被设置成真。
示例扩展算术运算还可结合诸如图3示例算术运算的算术运算使用。当结合示例算术运算使用时,示例扩展算术运算是基于第一输入值XSCINT、第二输入值YSCINT、以及结果值ZSCINT的。示例扩展算术运算可用硬件(例如图12的示例系统1200)和/或存储在机器可访问介质(例如计算机可存取介质)中的并在处理器系统(例如图13的处理器系统1310)上执行的软件实现。
开始时,输入值XSCINT和YSCINT被析取(框402)。特别地,在一示例中,第一输入值XSCINT、第二输入值YSCINT以及结果值ZSCINT通过分离或解析乘数值Ix、Iy和Iz以及比例值Qx、Qy和Qz来析取。然后使用图3的示例算术算法来执行乘法运算、加法运算或减法运算(框404),且结果被存储为乘法值结果Iz和比例值结果Qz。然后确定在框404执行的算术运算是否是乘法运算(框406)。
如果在框406确定在框404执行的算术运算并非乘法运算,则确定第一临时不准确标志(flag_it1)的状态(框408)。框408中的状态确定可以是基于乘数值Ix、Iy和Iz以及比例值Qx、Qy和Qz、在图3的框322或框324中确定的中间乘数值I’x和I’y、以及在图3的框318中确定的最大比例值Qmax。如果以下等式19和20中所示的任一条件为真,则第一临时不准确标志被设置成真。
等式19
等式20
等式19中所示的条件规定:第一中间乘数值I’x乘以2的最大比例值Qmax减去第一输入比例值Qx次方不等于第一输入乘数值Ix。等式20中所示的条件规定:第二中间乘数值I’y乘以2的最大比例值Qmax减去第二输入比例值Qy次方不等于第二输入乘数值Iy。如果以上等式19和20中所示的任一条件为真,则第一临时不准确标志被设置成真。
在确定第一临时不准确标志的状态(框408)之后,或者如果在框406确定在框404上执行的算术运算为乘法运算,则基于乘法值结果Iz和比例值结果Qz(框410)执行右-规格化运算。在框410中执行的右-规格化运算可基于以下结合图6所述的示例右-规格化运算600执行。一般而言,在框406中执行的右-规格化运算可用来右-规格化乘数值I(例如乘数值结果Iz)和比例值Q(例如比例值结果Qz)。例如,如果乘数值结果Iz溢出示例按比例调整的整数数据类型的数据格式(即溢出图2示例二进制表示200的位数),框406中执行的右-规格化运算可用来右-规格化乘数值Iz并恢复所溢出的位。
在执行右-规格化运算(框410)之后,不正确标志(flag_i)的状态基于第一临时不正确标志(flag_it1)和/或第二临时不正确标志(flag_it2)确定(框412)。如果在框404中执行的算术运算为乘法运算,则不正确标志的状态被设置成等于第二临时不正确标志。然而,如果在框404中执行的算术运算为加法或减法运算,则不正确标志的状态通过对第一临时不正确标志和第二临时不正确标志的逻辑或运算来确定(即flag_i=flag_it1或flag_it2)。
然后确定在框404中执行的算术运算是否是乘法运算(框413)。如果在框413确定在框404中执行的算术运算是乘法运算,则基于乘法值结果Iz和比例值结果Qz(框414)执行左-规格化运算。该左-规格化运算可基于结合图7所述的示例左-规格化运算700执行。一般而言,在框414中执行的左-规格化运算可基于乘数值结果Iz的大小用来左-规格化或最大化乘数值结果Iz和比例值结果Qz。例如,如果乘数值结果Iz太小(较接近于0),则在框414上执行的左-规格化运算可用来增加大小。
另一方面,如果在框413确定在框404中执行的算术运算并非乘法运算,则执行零校验运算(框415)。框415中执行的零校验运算可通过以下结合图5所示的示例零校验运算500来实现。零校验运算可用来更改乘数值结果Iz和比例值结果Qz,并基于乘数值结果Iz和不准确标志更新零标志和负标志。
然后执行饱和校验运算(框416)。框416的饱和校验运算可通过使用以下结合图8所述的示例饱和校验运算800来实现。一般而言,在框416中执行的饱和校验运算可基于乘数值结果Iz和比例值结果Qz执行,并可用来修剪乘数值结果Iz和比例值结果Qz使它们保持在所要求数的值范围内。
然后确定在框404中执行的算术运算是不是乘法运算(框418)。如果在框418确定框404中执行的算术运算是乘法运算,则非规格化标志被清除为假(框420)。然而,如果在框418确定框404中执行的算术运算并非乘法运算,则执行非规格化校验运算(框422)。框422的非规格化校验运算可通过使用非规格化校验运算900来实现,该运算可用来基于乘数值结果Iz如以下结合图9所述地更新非规格化标志的状态。
然后将状态标志写入例如状态标志寄存器(框424),且乘数值结果Iz和比例值结果Qz被封装成结果值ZSCINT(框426)。
图5-9是示出实现以上结合图4所述的示例状态运算的示例方式的流程图。一般而言,示例状态运算可用来更新处理器(例如图13的处理器1312)和/或硬件(例如图12的示例系统1200)的状态标志(例如零标志、负标志等)。此外,示例状态运算可用来基于数值范围限制和/或数值条件(例如零条件、负条件等)更改按比例调整的整数值(I,Q)。如以上结合图2所述,当用硬件和/或软件实现时,基于平台的限制可加在示例按比例调整的整数数据类型的数值范围上。图5-9的示例状态运算是基于乘数值数值范围Imin≤I≤Imax和比例值数值范围Qmin≤Q≤Qmax的,其中
Imax=2l-1-1
Imin=-2l-1
Qmax=2m-1-1
Qmin=0
这样,乘数值I的数值范围包括带符号整数值,且比例值Q的数值范围包括不带符号的整数值(例如非负值)。图5-9的示例状态运算可用硬件(例如图12的示例系统1200)和存储在机器可访问介质(例如计算机可存取介质)中的并由处理器系统(例如图13的处理器系统1310)执行的软件实现。此外,通过执行例如将处理器1312或示例系统1200配置成执行状态运算的存储在存储器(例如图13的系统存储器1324)中的指令或函数,可执行每个状态运算。
现在参看图5,流程图示出基于以上结合图2描述的示例按比例调整的整数数据类型的示例零校验运算500。该示例零校验运算500可用来基于乘数值I更改乘数值I和比例值Q。此外,示例零校验运算500可用来基于乘数值I和不准确标志更新零标志和负标志。通过实行零校验指令或函数(例如(Iresult,Qresult,flag_z,flag_n)=check_zero(I,Q,flag_i)),可执行示例零校验运算500,该指令或函数在执行时使处理器(例如图13的处理器1312)和/或硬件(例如图12的示例系统1200)例如基于乘数值I、比例值Q、不准确标志、零标志、和负标志执行示例零校验运算500。
开始时,执行零测试以确定乘数值I是否等于零(框502)。如果在框502确定乘数值I等于零,则更新乘数值I、比例值Q、零标志和负标志。特别地,乘数值I被设置成等于0,比例值Q被设置成等于由示例按比例调整的整数数据类型的数值范围限定的最小比例值Qmin,零标志被设置成等于不准确标志的求反值,且负标志被设置成等于假。然后返回乘数值I、比例值Q、零标志和负标志(框506)。如果在框502确定乘数值I不等于零,则执行比较以确定比例值Q是否比最小比例值Qmin小(框508)。
如果在框508确定比例值不小于最小比例值Qmin,则不改变并返回乘数值I、比例值Q、零标志、以及负标志(框506)。然而,如果在框508确定比例值Q比最小比例值Qmin小,则更新乘数值I、比例值Q和零标志(框510)。特别地,乘数值I被设置成等于零,比例值Q被设置成等于最小比例值Qmin,且零标志被清除为假。
然后进行比较,以确定乘数值I是否小于零(框512)。如果在框512确定乘数值I小于零,则将负标志设置为真(框514)。在负标志被设置为真(框514)之后,或者如果在框512确定乘数值I不小于零并且负标志不作改变,则返回乘数值I、比例值Q、零标志、以及负标志。
图6是示出可与以上结合图4所述的示例扩展算术运算一起使用的示例右-规格化运算600的流程图。该示例右-规格化运算600可用来右-规格化乘数值I和比例值Q,并用来更新不准确标志。通过实行右-规格化指令或函数(例如(Iresult,Qresult,flag_i)=rnorm(I,Q))可实现示例右-规格化运算600,该指令或函数在执行时使处理器(例如图13的处理器1312)和/或硬件(例如图12的示例系统1200)基于乘数值I、比例值Q和不准确标志执行示例右-规格化运算600。
开始时,进行比较以确定乘数值I是否小于或等于最大乘数值Imax并且大于或等于最小乘数值Imin(即Imin≤I≤Imax)(框602)。如果在框602确定乘数值I小于或等于最大乘数值Imax且大于或等于最小乘数值Imin,则不改变乘数值I和比例值Q。然后不准确标志被设置成假(即清除为零)(框604),并返回按比例调整的整数值(I,Q)并返回不准确标志(框606)。
如果在框602确定乘数值I不小于或等于最大乘数值Imax且不大于或等于最小乘数值Imin,则右-规格化乘数值I和比例值Q,以确定右-规格化后的乘数值Iright以及右-规格化后的比例值Qright。乘数值I和比例值Q基于被选为满足以下等式21或22的数值范围条件的非负整数值k(即k≥0)来右-规格化。此外,右-规格化后的乘数值Iright以及右-规格化后的比例值Qright根据以下等式23和24确定。
等式21
等式22
等式24 Qright=Q+k
非负整数值k根据等式21的条件或等式22的条件选择。此外,如等式23和24所示,右-规格化后的乘数值Iright以及右-规格化后的比例值Qright是基于该非负整数值k的。如等式23所示,右-规格化后的乘数值Iright通过乘数值I除以2的非负整数值k次方的底部函数来确定。如等式24所示,右-规格化后的比例值Qright通过将比例值Q加上非负整数值k来确定。
非准确标志基于右-规格化后的乘数值Iright来更新(框610)。特别地,如果右-规格化后的乘数值Iright与2的非负整数值k次方(即2k)的乘积等于乘数值I(即Iright·2k=I?),则非准确标志被清除为假,否则不改变不准确标志。在框610中已更新不准确标志之后,返回右-规格化后的按比例调整的整数值(Iright,Qright)和不准确标志(框606)。
图7是示出可与以上结合图4所述的示例扩展算术运算一起使用的示例左-规格化运算700的流程图。当乘数值I的大小相对较小或等于零时,该示例左-规格化运算700可用来左-规格化或最大化乘数值I和比例值Q。用该方式,并不返回相对较小的值或零值。通过实行左-规格化指令或函数(例如(Iresult,Qresult)=lnorm(I,Q)),可实现示例左-规格化运算700,该指令或函数在执行时使处理器(例如图13的处理器1312)和/或硬件(例如图12的示例系统1200)基于乘数值I和比例值Q执行示例左-规格化运算700。
在图7示例中,首先确定乘数值I是否等于零(即I=0?)或大于最大乘数值Imax或小于最小乘数值Imin(即I>Imax或I<Imin)(框702)。如果在框702确定乘数值I等于0或大于最大乘数值Imax或小于最小乘数值Imin,则不改变乘数值I和比例值Q。然后返回按比例调整的整数值(I,Q)。
如果在框702确定乘数值I不等于0、或小于或等于最大乘数值Imax且大于或等于最小乘数值Imin,则左-规格化乘数值I和比例值Q(框706)。通过选择非负整数值k(即k≥0),把乘数值I和比例值Q被左-规格化以产生左-规格化后的乘数值Ileft以及左-规格化后的比例值Qleft。更具体地,非负整数值k根据以下等式25和26选择。此外,左-规格化后的乘数值Ileft以及左-规格化后的比例值Qleft如以下等式27和28所示地确定。
等式25
等式26
等式27 Ileft=I·2k
等式28 Qright=Q-k
如等式25所示,非负整数值k可基于与最小乘数值Imin相关联的数值范围进行选择。或者,如等式26所示,非负整数值k可基于与最大乘数值Imax相关联的数值范围进行选择。如等式27所示,左-规格化后的乘数值Ileft通过乘数值I乘以2的非负整数值k次方来确定。如等式28所示,左-规格化后的比例值Qleft通过从比例值Q减去非负整数值k来确定。然后返回左-规格化后的按比例调整的整数值(Ileft,Qleft)。
图8是示出可与以上结合图4所述的示例扩展算术运算一起使用的示例饱和校验运算800的流程图。该示例饱和校验运算800可用来通过比较数值范围极限值(例如Qmax,Imax等)与乘数值和比例值确定乘数值I和/或比例值Q是否在范围外或已饱和。如果它们在数值范围极限值的范围之外,则可修剪乘数值I或比例值Q(例如设置成数值范围极限值)。示例饱和校验运算800还可用来基于乘数值I和比例值Q更新饱和标志的状态。
通过实行饱和校验或修剪指令或函数(例如(Iresult,Qresult)=clip_Q(I,Q)),可实现示例饱和校验运算800,该指令或函数在执行时使处理器(例如图13的处理器1312)和/或硬件(例如图12的示例系统1200)基于乘数值I、比例值Q以及饱和标志执行示例饱和校验运算800比较。
基于比例值Q和最大比例值Qmax执行比较,以确定比例值Q是否小于或等于最大比例值Qmax(框802)。如果在框802确定比例值Q小于或等于最大比例值Qmax,则饱和标志被清除为假(框804)。然而,如果在框802确定比例值Q并不小于或等于最大比例值Qmax,则饱和标志被设置为真(框805),且比例值Q被设置为等于最大比例值Qmax(即Q=Qmax)(框806)。
在清除饱和标志(框804)之后或在比例值Q被设置成等于最大比例值Qmax之后,基于乘数值I执行零测试以确定乘数值I是否小于零(即I<0?)(框808)。如果在框808确定乘数值I小于零,则乘数值I被设置成等于最小乘数值Imin(即I=Imin)(框810)。然而,如果在框808确定乘数值I并不小于零,则乘数值I被设置成等于最大乘数值Imax(即I=Imax)(框812)。饱和标志在框804中被清除为假之后,乘数值I在框810中被设置成Imin,或者乘数值I在框812中被设置成等于最大乘数值Imax(即I=Imax),返回按比例调整的整数值(I,Q)和饱和标志(框814)。
图9是示出可与以上结合图4所述的示例扩展算术运算一起使用的示例非规格化校验运算900的流程图。该示例非规格化校验运算900可用来确定乘数值I是否为非规格化值。一般而言,非规格化值是如下所述不在指定规格化数值范围内的值。此外,示例非规格化校验运算900可用来基于乘数值I更新非规格化标志的状态。
通过实行非规格化校验指令或函数(例如(flag_u)=check_unnorm(I)),可实现示例非规格化校验运算900,该指令或函数在执行时使处理器(例如图13的处理器1312)和/或硬件(例如图12的示例系统1200)基于乘数值I执行比较,并更新非规格化标志的状态。
基于乘数值I和数值范围条件的比较被执行,以确定乘数值I是否是非规格化值(框902)。特别地,数值范围条件如以下等式289所示。
等式29
如果在框902基于等式29中所示的Imin和Imax确定乘数值I是在数值范围条件内,则非规格化标志被设置为真(框904)。然而,如果在框902确定乘数值I不满足等式29中所述的数值范围条件,则不改变非标准标记。
图10是示出使用以上结合图2所述的示例按比例调整的整数数据类型可执行的规格化运算的示例方式的流程图。规格化运算可用来确保按比例调整的整数值在由例如乘数值数值范围2l-2≤I≤2l-1-1或者-2l-1≤I≤-2l-2-1、比例值数值范围Qmin≤Q≤Qmax、和/或图5-9的示例状态运算的数值条件所述的示例按比例调整的整数数据类型值的所要求范围内。规格化运算可用硬件(例如图12的示例系统1200)和/或存储在机器可访问介质中的并由处理器系统(例如图13的处理器系统1310)执行的软件实现。
通过使用图4的示例扩展算术运算来基于等于1的规格化值NSCINT和输入值XSCINT执行乘法运算,可实现规格化运算。这样,输入值XSCINT不通过如在示例扩展算术运算中实现的乘法运算和/或图5-9的示例状态运算来更改。此外,示例规格化运算1000可用来基于输入值XSCINT更新状态标志(例如以上结合图4所述的状态标志)。
获取输入值XSCINT(框1002)并获取规格化值NSCINT(框1004)。输入值XSCINT可以是示例按比例调整的整数数据类型的任何所要求按比例调整的整数值。规格化NSCINT通常被选为具有等于1的乘数值IN和等于输入值XSCINT的偏置值β,以确定规格化值NSCINT=(1,β)(即NSCINT=1.0)。
输入值XSCINT和规格化值NSCINT被传递给乘法运算(框1006)。特别地,乘法运算包括图5-9的一个或多个示例状态运算,并基本上与示例扩展算术运算(图4)的乘法运算相似或相等。乘法运算和相关联的状态运算可分析和/或更改输入值XSCINT的数值特征,并更新如图5-9的示例状态运算表示的状态标志。
图11是示出使用以上结合图2所述的示例按比例调整的整数数据类型可执行的倒数运算的示例方式的流程图。更具体地,结合图11所述的方法可用来得出按比例调整的整数值的倒数。按比例调整的整数值的倒数可用来例如基于倒数乘法(即X÷Y=X·Y-1)执行除法运算。此外,图11的方法可用硬件(例如图12的示例系统1200)和/或存储在机器可访问介质中的并由处理器系统(例如图13的处理器系统1310)执行的软件实现。
输入值通过从输入值XSCINT分离或解析输入乘数值I和输入比例值Q来析取,以产生输入按比例调整的整数值(I,Q)(框1102)。然后重新定义或缩放(框1104)输入乘法值I和输入比例值Q,以产生具有按比例调整乘数值I’和按比例调整比例值Q’的按比例调整的整数值(I’,Q’),其中按比例调整乘数值I’在范围1≤I′<2内。具体地,通过将输入按比例调整的整数值(I,Q)设置成(如以上等式3所示)等于按比例调整的整数值(I’,Q’)的等价数值、选择范围1≤I′<2内的按比例调整乘数值I’、并如以下等式30所示地解出按比例调整比例值Q’,可确定按比例调整乘数值I’和按比例调整比例值Q’。
等式30
然后基于按比例调整乘数值I’和按比例调整比例值Q’确定按比例调整的整数值(I’,Q’)的倒数值(框1106)。倒数值如以下等式31所述地确定。
等式31
其中1≤I′<2
如等式31所示,输入按比例调整的整数值(I,Q)的倒数值
与按比例调整的整数值(I’,Q’)的倒数值成比例,其中1≤I′<2。
然后确定按比例调整乘数值I’的倒数值(即1/I’)(框1108)。确定按比例调整乘数值的倒数值1/I’与确定逆函数的值相似或相同。特别地,通过根据输入变量x使用例如极大极小近似方法确定的逆函数近似多项式p(x),可确定该逆函数的值。然后可通过将输入变量值设置成等于按比例调整乘法值I’,以产生近似的倒数值来确定逆函数近似多项式p(x)的值。
比例常数s的值被确定(框1110)为2的比例常数s次方(即,2s)乘以按比例调整乘数值的倒数1/I’(即2s/I’或2sp(I’))的值的结果为相对较大值。确定2s/I’的相对较大值使得使用输入按比例调整整数值(I,Q)的倒数的运算(例如乘法运算)可产生相对较精确的结果。
然后2的比例常数s次方(2s)乘以倒数值
的分子和分母(框1112)以如等式32所示地确定倒数乘数值Irecip和倒数比例值Qrecip。
等式32
如等式32所示,2的比例常数s次方(2s)和逆函数近似多项式p(I’)的乘积、乘以2的按比例调整比例值Q’与比例常数s之和的负值的乘方约等于2的比例常数s次方(2s)乘以倒数值
的分子和分母的结果。然后倒数乘数值Irecip和倒数比例值Qrecip封装成按比例调整的整数数据类型格式(例如图2的示例二进制表示200)(框1114)。
图12是可用来实现在此所述的装置、方法和制造品的示例系统1200的功能块图。图12中所示的结构可使用硬件和/或软件的任何所要求的组合实现。例如,可使用一个或多个集成电路、离散半导体组件、或无源电子组件。此外(或或者),图12结果的部分或全部部件可使用存储在计算机可读介质上的指令、代码或其它软件和/或固件等实现,它们在执行时由例如处理器系统(例如图13的处理器系统1300)执行在此所揭示的方法的。
一般而言,示例系统1200基于以上结合图2所述的示例按比例调整的整数数据类型执行算术运算和状态运算。此外,示例系统1200可被配置成基于以上结合图4所述的示例扩展算术运算和以上结合5-9所述的示例状态运算来更新状态标志(例如以上结合图4所述的状态标志)。一般而言,示例系统1200可被配置成在示例系统1200或处理器1310(图13)的运行时间阶段期间或任何其它运算状态期间执行在此所述的各方法。
现在详细参看图12,示例系统1200包括数据接口1202、数据析取器1204、数据封装器1206、倒数产生器1208、比较器1210、减法器1212、移位器1214、乘法器1216以及加法器1218,它们全部如图所示地通信耦合。数据接口1202可被配置成获取并存储按比例确定整数值、偏置值β、以及与在此所述的从例如存储位置的运算相关联的任何其它值。例如,数据接口1202可从存储位置获取按比例调整的整数值,并将它们发送给数据析取器1204。此外,数据接口1202可从数据封装器1206中获取按比例调整的整数值,并将按比例调整的整数值存储在一个或多个存储器位置。此外(或或者),数据接口1202可被配置成从各运算获取和/或传送按比例调整的整数值(例如以上结合图3所述的示例算术运算和以上结合图5-9所述的示例状态运算)。
数据析取器1204可从图12的任一功能块中获取按比例调整的整数数据类型格式(例如图2的示例二进制表示200)的按比例调整的整数值,并可被配置成通过从每个按比例调整的整数值中分离或解析乘数值I和比例值Q来析取按比例调整的整数值。此外,数据析取器1204可被配置成将乘数值I和比例值Q传送给图12的任一功能块。
数据封装器1206可从图12的任一功能块中获取乘数值I和相应比例值Q,并可被配置成将乘数值I和比例值Q封装成按比例调整的整数数据类型格式(例如图2的示例二进制表示200)。此外,数据封装器1206可被配置成将按比例调整的整数数据类型格式的按比例调整的整数值传送给图12的任一块。
倒数产生器1208可被配置成获取按比例调整的整数值和偏置值β,并如结合图11所述方法产生按比例调整的整数值的倒数。此外,倒数产生器1208可被配置成将按比例调整的整数值的倒数传送给图12的任一功能块。
比较器1210可被配置成获取按比例调整的整数值并执行比较。例如,比较器1210可被配置成将按比例调整的整数值与诸如乘数数值范围限制Imin和Imax以及比例数值范围限制Qmin和Qmax的数值范围限制作比较。比较器1210还可被配置成执行零测试比较,诸如与示例零校验运算500(图5)和示例左-规格化运算700(图7)相关联的零测试。此外,比较器1210可被配置成获取其它值,诸如以上结合图6和7所述的非负整数值k,并如结合示例右-规格化运算600(图6)和示例左-规格化运算700所述地执行比较。此外,比较器1210可被配置成如结合图5-9所述的示例状态运算执行比较。
减法器1212可被配置成获取按比例调整的整数值和偏置值β,并基于按比例调整的整数值和/或偏置值β执行减法运算。例如,以上等式3所述的按比例调整的整数编码值的数值转换的比例值Q和偏置值β的减法可通过减法器1212执行。此外,以上等式12的输入乘数值Ix和Iy的减法运算也可通过减法器1212执行。
移位器1214可被配置成基于按比例调整的整数值和/或其它值执行移位运算,和/或通过移位运算的除法运算。例如,以上结合图3所述的中间乘数值I’x和I’y可根据以上等式14和15确定。特别地,第一中间乘数值可基于将第一输入乘数值Ix右-移位Qmax-Qx次来确定。
移位器1214还被配置成移位例如以上等式21和22所述数值范围条件的项I/2k的值。例如,移位器1214可被配置成通过右-移位乘数值I非负整数值k次来估算项I/2k。
乘法器1216可被配置成基于按比例调整的整数值和与在此所述各方法相关联的任何其它值来执行乘法运算。例如,乘法器1216可被配置成执行如结合示例算术运算(图3)所述的按比例调整的整数值的乘法运算。乘法器1216还可用来执行以上等式3的按比例调整的整数估算值的乘法。特别地,乘法器1216可被配置成将乘数值I乘以2的复合比例指数(即Q-β)次方。此外,通过例如从倒数产生器1208中接收按比例调整的整数的倒数值并将该按比例调整的整数的倒数乘以另一按比例调整的整数值,从而乘法器1216可用来基于倒数乘法执行除法运算。
加法器1218可用来基于按比例调整的整数值和关联于在此所述方法的任何其它值来执行加法运算。例如,加法器1218可被配置成如结合图3所述地执行按比例调整的整数值的加法运算。加法器1218还可被配置成用于添加指数,诸如以上等式6和7的指数(1+β)。
图13是可用来实现在此所述的装置和方法的示例处理器系统1310的框图。如图13所示。处理器系统1310包括耦合到互连总线或网络1314的处理器1312。处理器1312包括寄存器集或寄存器空间1316,在图13中示为完全在芯片上,但可有选择地全部或部分地不在芯片上,并通过专用电连接和/或互连网络或总线1314直接与处理器1312相连。处理器1312可以是任何适用的处理器、处理单元或微处理器,比如来自Intel X-ScaleTM系列、Intel PentiumTM系列等的处理器。在以下详细描述的示例中,处理器1312是32位Intel处理器,通常称为IA-32处理器。尽管未在图13中示出,系统1310可以是多处理器系统,并且因而可包括与处理器1312系统或相似、并与互连总线或网络1314耦合的一个或多个附加处理器。
图13的处理器1312与包括存储器控制器1320和输入/输出(I/O)控制器1322的芯片组1318耦合。众所周知,芯片组通常提供I/O和存储器管理功能,以及可由与该芯片组耦合的一个或多个处理器访问或使用的多个通用和/或专用寄存器、定时器等。存储器控制器1320执行使处理器1312(或者如果有多个处理器,则多个处理器)能访问系统存储器1324和非易失性存储器1325的多个功能。
系统存储器1324可包括任何所要求的类型的易失性存储器,比如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。非易失性存储器1325可包括任何所要求的类型的非易失性存储器,诸如闪存或只读存储器(ROM)。
I/O控制器1322执行使处理器1312通过I/O总线1330与外围输入/输出(I/O)设备1326和1328通信的多个功能。I/O设备1326和1328可以是任何所要求的类型的I/O设备,比如键盘、视频显示器或监视器、鼠标等。尽管存储器控制器1320和I/O控制器1322在图13中示为芯片组1318内的单独的功能块,但这些块所执行的功能可被集成在单个半导体电路内、或可使用两个或多个单独的集成电路实现。
在此所述的方法可使用存储在计算机可读介质上的由处理器1312执行的指令来实现。计算机可读介质可包括使用大容量存储设备(例如盘驱动器)、可移动存储设备(例如软盘、存储器卡或棒等)、和/或集成存储器设备(例如随机存取存储器、闪存等)实现的固态、磁性、和/或光学介质的任何所要求的组合。
尽管某些方法、装置和制造品已在此作了描述,但本专利的涵盖范围并非仅限于此。相反,本专利涵盖照字面意义地或在法令等效体下落于所附权利要求的范围内的所有方法、装置和制造品。
Claims (51)
1.一种方法包括:
标识按比例调整的整数值;
通过基于所述按比例调整的整数值从位字段的第一部分中提取第一信息来确定乘数值,其中所述位字段的第一部分可被配置成包括第一带符号整数值;
通过基于所述按比例调整的整数值从位字段的第二部分中提取第二信息来确定比例值,其中所述位字段的第二部分可被配置成包括第二带符号整数值;以及
基于所述整数值和所述比例值执行算术运算。
2.如权利要求1所述的方法,其特征在于,所述算术运算是2的补码算术运算和整数算术运算之一。
3.如权利要求1所述的方法,其特征在于,所述位字段的第一和第二部分与存储器位置相关联。
4.如权利要求1所述的方法,还包括基于所述乘数值和所述比例值的至少之一执行一状态运算。
5.一种装置,包括:
处理器系统;以及
与所述处理器系统通信耦合的存储器,所述存储器包括所存储的指令,使所述处理器系统能:
标识按比例调整的整数值;
通过基于所述按比例调整的整数值从位字段的第一部分中提取第一信息来确定乘数值,其中所述位字段的第一部分可被配置成包括第一带符号整数值;
通过基于所述按比例调整的整数值从位字段的第二部分中提取第二信息来确定比例值,其中所述位字段的第二部分可被配置成包括第二带符号整数值;以及
基于所述整数值和所述比例值执行算术运算。
6.如权利要求5所述的装置,其特征在于,所述算术运算是2的补码算术运算和整数算术运算的至少之一。
7.如权利要求5所述的装置,其特征在于,所述位字段的第一和第二部分与存储器位置相关联。
8.如权利要求5所述的装置,其特征在于,所述存储指令使所述处理器系统能基于所述乘数值和所述比例值的至少之一执行状态运算。
9.一种具有其上存储有指令的机器可访问介质,所述指令在执行时使机器能:
标识按比例调整的整数值;
通过基于所述按比例调整的整数值从位字段的第一部分中提取第一信息来确定乘数值,其中所述位字段的第一部分可被配置成包括第一带符号整数值;
通过基于所述按比例调整的整数值从位字段的第二部分中提取第二信息来确定比例值,其中所述位字段的第二部分可被配置成包括第二带符号整数值;以及
基于所述整数值和所述比例值执行算术运算。
10.如权利要求9所述的机器可访问介质,其特征在于,所述算术运算是2的补码算术运算和整数算术运算的至少之一。
11.如权利要求9所述的机器可访问介质,其特征在于,所述位字段的第一和第二部分与存储器位置相关联。
12.如权利要求9所述的机器可访问介质具有存储在其上的指令,使机器能基于所述乘数值和所述比例值的至少之一执行一状态运算。
13.一种方法包括:
标识偏置值;
标识第一输入值;
标识第一比例值;
基于所述第一输入值、第一比例值、以及偏置值确定第一乘数值;
将所述第一乘数值存储在位字段的第一部分中,其中所述位字段的第一部分可被配置成是第一带符号整数值;
标识第二输入值;
标识第二比例值;
基于所述第二输入值、第二比例值、以及偏置值确定第二乘数值;
将所述第二乘数值存储在位字段的第二部分中,其中所述位字段的第二部分可被配置成是第二带符号整数值;以及
基于所述第一乘数值、第一比例值、第二乘数值、以及第二比例值执行基于整数的运算。
14.如权利要求13所述的方法,其特征在于,所述第一乘数值通过所述第一输入值除以2的某次方来确定,该某次方是第一比例值减去偏置值。
15.如权利要求13所述的方法,其特征在于,所述基于整数的运算是将所述第一乘数值加上所述第二乘数值的加法运算。
16.如权利要求13所述的方法,其特征在于,所述基于整数的运算是乘法运算,将所述第一乘数值乘以所述第二乘数值,并从所述第一比例值和第二比例值的和中减去所述偏置值。
17.如权利要求13所述的方法,还包括标识最小比例值、最大比例值、最小乘数值、以及最大乘数值的至少之一。
18.如权利要求17所述的方法,还包括基于所述最小比例值、最大比例值、最小乘数值、以及最大乘数值的至少之一执行状态运算。
19.一种装置,包括:
处理器系统;以及
与所述处理器系统通信耦合的存储器,所述存储器包括所存储的指令,使所述处理器系统能:
标识偏置值;
标识第一输入值;
标识第一比例值;
基于所述第一输入值、第一比例值、以及偏置值确定第一乘数值;
将所述第一乘数值存储在位字段的第一部分中,其中所述位字段的第一部分可被配置成是第一带符号整数值;
标识第二输入值;
标识第二比例值;
基于所述第二输入值、第二比例值、以及偏置值确定第二乘数值;
将所述第二乘数值存储在位字段的第二部分中,其中所述位字段的第二部分可被配置成是第二带符号整数值;以及
基于所述第一乘数值、第一比例值、第二乘数值、以及第二比例值执行基于整数的运算。
20.如权利要求19所述的装置,其特征在于,所存储指令使处理器系统能通过所述第一输入值除以2的某次方来确定所述第一乘数值,该某次方是第一比例值减去偏置值。
21.如权利要求19所述的装置,其特征在于,所述基于整数的运算是将所述第一乘数值加上所述第二乘数值的加法运算。
22.如权利要求19所述的装置,其特征在于,所述基于整数的运算是乘法运算,将所述第一乘数值乘以所述第二乘数值,并从所述第一比例值和第二比例值的和中减去所述偏置值。
23.如权利要求19所述的装置,其特征在于,所存储指令使处理器系统能标识最小比例值、最大比例值、最小乘数值、以及最大乘数值的至少之一。
24.如权利要求23所述的装置,其特征在于,所存储指令使处理器系统能基于所述最小比例值、最大比例值、最小乘数值、以及最大乘数值的至少之一执行状态运算。
25.一种具有存储在其上的指令的机器可访问介质,所述指令在执行时使机器能:
标识偏置值;
标识第一输入值;
标识第一比例值;
基于所述第一输入值、第一比例值、以及偏置值确定第一乘数值;
将所述第一乘数值存储在位字段的第一部分中,其中所述位字段的第一部分可被配置成是第一带符号整数值;
标识第二输入值;
标识第二比例值;
基于所述第二输入值、第二比例值、以及偏置值确定第二乘数值;
将所述第二乘数值存储在位字段的第二部分中,其中所述位字段的第二部分可被配置成是第二带符号整数值;以及
基于所述第一乘数值、第一比例值、第二乘数值、以及第二比例值执行基于整数的运算。
26.如权利要求25所述的机器可访问介质具有存储在其上的指令,在执行时使机器能通过所述第一输入值除以2的某次方来确定所述第一乘数值,该某次方是第一比例值减去偏置值。
27.如权利要求25所述的机器可访问介质,其特征在于,所述基于整数的运算是将所述第一乘数值加上所述第二乘数值的加法运算。
28.如权利要求25所述的机器可访问介质,其特征在于,所述基于整数的运算是乘法运算,将所述第一乘数值乘以所述第二乘数值,并从所述第一比例值和第二比例值的和中减去所述偏置值。
29.如权利要求25所述的机器可访问介质具有存储在其上的指令,在执行时使机器能标识最小比例值、最大比例值、最小乘数值、以及最大乘数值的至少之一。
30.如权利要求29所述的机器可访问介质具有存储在其上的指令,在执行时使机器能基于所述最小比例值、最大比例值、最小乘数值、以及最大乘数值的至少之一执行状态运算。
31.一种方法包括:
标识偏置值;
标识第一输入值;
标识第一乘数值;
基于所述第一输入值、第一乘数值、以及偏置值确定第一比例值;
将所述第一比例值存储在位字段的第一部分中,其中所述位字段的第一部分可被配置成是第一带符号整数值;
标识第二输入值;
标识第二乘数值;
基于所述第二输入值、第二乘数值、以及偏置值确定第二比例值;
将所述第二比例值存储在位字段的第二部分中,其中所述位字段的第二部分可被配置成是第二带符号整数值;以及
基于所述第一乘数值、第一比例值、第二乘数值、以及第二比例值执行基于整数的运算。
32.如权利要求31所述的方法,其特征在于,确定所述第一比例值包括将所述偏置值加上用所述第一输入值除以所述第一乘数值的商的以2为底的对数函数值。
33.如权利要求31所述的方法,其特征在于,所述基于整数的运算是将所述第一乘数值加上所述第二乘数值的加法运算。
34.如权利要求31所述的方法,其特征在于,所述基于整数的运算是乘法运算,将所述第一乘数值乘以所述第二乘数值,并从所述第一比例值和第二比例值的和中减去所述偏置值。
35.一种装置包括:
处理器系统;以及
与所述处理器系统通信耦合的存储器,所述存储器包括所存储的指令,使所述处理器系统能:
标识偏置值;
标识第一输入值;
标识第一乘数值;
基于所述第一输入值、第一乘数值、以及偏置值确定第一比例值;
将所述第一比例值存储在位字段的第一部分中,其中所述位字段的第一部分可被配置成是第一带符号整数值;
标识第二输入值;
标识第二乘数值;
基于所述第二输入值、第二乘数值、以及偏置值确定第二比例值;
将所述第二比例值存储在位字段的第二部分中,其中所述位字段的第二部分可被配置成是第二带符号整数值;以及
基于所述第一乘数值、第一比例值、第二乘数值、以及第二比例值执行基于整数的运算。
36.如权利要求35所述的装置,其特征在于,所存储指令使处理器系统能通过将所述偏置值加上用所述第一输入值除以所述第一乘数值的商的以2为底的对数函数值来确定所述第一比例值。
37.如权利要求35所述的装置,其特征在于,所述基于整数的运算是将所述第一乘数值加上所述第二乘数值的加法运算。
38.如权利要求35所述的装置,其特征在于,所述基于整数的运算是乘法运算,将所述第一乘数值乘以所述第二乘数值,并从所述第一比例值和第二比例值的和中减去所述偏置值。
39.一种具有存储在其上的指令的机器可访问介质,所述指令在执行时使机器能:
标识偏置值;
标识第一输入值;
标识第一乘数值;
基于所述第一输入值、第一乘数值、以及偏置值确定第一比例值;
将所述第一比例值存储在位字段的第一部分中,其中所述位字段的第一部分可被配置成是第一带符号整数值;
标识第二输入值;
标识第二乘数值;
基于所述第二输入值、第二乘数值、以及偏置值确定第二比例值;
将所述第二比例值存储在位字段的第二部分中,其中所述位字段的第二部分可被配置成是第二带符号整数值;以及
基于所述第一乘数值、第一比例值、第二乘数值、以及第二比例值执行基于整数的运算。
40.如权利要求39所述的机器可访问介质具有存储在其上的指令,在执行时使机器能通过将所述偏置值加上用所述第一输入值除以所述第一乘数值的商的以2为底的对数函数值来确定所述第一比例值。
41.如权利要求39所述的机器可访问介质,其特征在于,所述基于整数的运算是将所述第一乘数值加上所述第二乘数值的加法运算。
42.如权利要求39所述的机器可访问介质,其特征在于,所述基于整数的运算是乘法运算,将所述第一乘数值乘以所述第二乘数值,并从所述第一比例值和第二比例值的和中减去所述偏置值。
43.一种装置,包括:
数据接口,可被配置成标识第一按比例确定整数值和第二按比例确定整数值;以及
与所述数据接口通信耦合的数据析取器,可被配置成基于所述第一按比例调整的整数值标识第一乘数值和第一比例值,并基于所述第二按比例调整的整数值确定第二乘数值和第二比例值,其中所述第一乘数值、第一比例值、第二乘数值和第二比例值都可被配置成包括一带符号的整数值。
44.如权利要求43所述的装置,还包括一加法器,它可被配置成执行将第一乘数值加上第二乘数值、将第一比例值加上第二比例值来执行加法运算。
45.如权利要求44所述的装置,其特征在于,所述加法器可被配置成基于所述第一乘数值、第二乘数值执行2的补码的加法运算。
46.如权利要求43所述的装置,还包括一乘法器,它可被配置成通过将所述第一乘数值乘以所述第二乘数值,并从所述第一比例值和第二比例值的和中减去所述偏置值,来执行乘法运算。
47.如权利要求46所述的装置,其特征在于,所述乘法器可被配置成基于所述最小比例值、最大比例值、最小乘数值、以及最大乘数值的至少之一执行2的补码的乘法运算。
48.一种装置,包括:
处理器系统;以及
与所述处理器系统通信耦合的存储器,所述存储器包括所存储的指令,使所述处理器系统能:
标识偏置值;
标识第一输入值;
标识第一比例值;
基于所述第一输入值、第一比例值、以及偏置值确定第一乘数值;
将所述第一乘数值存储在位字段的第一部分中,其中所述位字段的第一部分可被配置成是第一带符号整数值;
标识第二输入值;
标识第二比例值;
基于所述第二输入值、第二比例值、以及偏置值确定第二乘数值;
将所述第二乘数值存储在位字段的第二部分中,其中所述位字段的第二部分可被配置成是第二带符号整数值;以及
基于所述第一乘数值、第一比例值、第二乘数值、以及第二比例值执行基于整数的运算。
49.如权利要求48所述的装置,其特征在于,所述基于整数的运算是2的补码的算术运算。
50.一种方法包括:
接收执行算术运算的请求;
响应于基于按比例调整的整数值执行算术运算的请求,在处理器中执行一组指令,其中所述指令的执行使处理器:
标识所述按比例调整的整数值;
通过基于所述按比例调整的整数值从位字段的第一部分中提取第一信息来确定乘数值,其中所述位字段的第一部分可被配置成第一带符号整数值;
通过基于所述按比例调整的整数值从位字段的第二部分中提取第二信息来确定比例值,其中所述位字段的第二部分可被配置成第二带符号整数值;以及
基于所述乘数值和比例值执行所述算术运算。
51.如权利要求50所述的方法,其特征在于,所述算术运算是2的补码算术运算和整数算术运算之一。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/740,086 | 2003-12-18 | ||
US10/740,086 US7290024B2 (en) | 2003-12-18 | 2003-12-18 | Methods and apparatus for performing mathematical operations using scaled integers |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1890629A true CN1890629A (zh) | 2007-01-03 |
Family
ID=34677785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004800359860A Pending CN1890629A (zh) | 2003-12-18 | 2004-12-01 | 使用按比例调整的整数的浮点运算 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7290024B2 (zh) |
EP (1) | EP1695203A1 (zh) |
JP (1) | JP2007515021A (zh) |
KR (1) | KR100847934B1 (zh) |
CN (1) | CN1890629A (zh) |
TW (1) | TWI291129B (zh) |
WO (1) | WO2005062165A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551740B (zh) * | 2008-03-31 | 2011-12-28 | 株式会社日立制作所 | 嵌入控制装置 |
CN109697510A (zh) * | 2017-10-23 | 2019-04-30 | 三星电子株式会社 | 具有神经网络的方法和装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595279B2 (en) * | 2006-02-27 | 2013-11-26 | Qualcomm Incorporated | Floating-point processor with reduced power requirements for selectable subprecision |
KR100958163B1 (ko) * | 2007-08-29 | 2010-05-18 | 세종대학교산학협력단 | 3차원 그래픽 가속기를 위한 부동소수점 누승기장치 및 그처리방법 |
US8103858B2 (en) * | 2008-06-30 | 2012-01-24 | Intel Corporation | Efficient parallel floating point exception handling in a processor |
JP2010160708A (ja) * | 2009-01-09 | 2010-07-22 | Sony Corp | 演算器、プロセッサ、コンパイル処理装置およびコンパイル処理方法 |
US8549264B2 (en) | 2009-12-22 | 2013-10-01 | Intel Corporation | Add instructions to add three source operands |
US9087398B2 (en) * | 2012-12-06 | 2015-07-21 | Nvidia Corporation | System and method for compressing bounding box data and processor incorporating the same |
RU2659732C2 (ru) * | 2014-05-08 | 2018-07-03 | Майкро Моушн, Инк. | Способ выполнения отказоустойчивых вычислений |
DE102018208851A1 (de) * | 2018-06-05 | 2019-12-05 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen |
US11625244B2 (en) * | 2021-06-22 | 2023-04-11 | Intel Corporation | Native support for execution of get exponent, get mantissa, and scale instructions within a graphics processing unit via reuse of fused multiply-add execution unit hardware logic |
CN115328438B (zh) * | 2022-10-13 | 2023-01-10 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4603323A (en) * | 1984-05-25 | 1986-07-29 | International Business Machines Corporation | Method for extending the exponent range of an IBM 370-type floating point processor |
GB2317248B (en) * | 1996-09-02 | 2001-08-15 | Siemens Plc | Floating point number data processing means |
US6232894B1 (en) * | 1998-05-15 | 2001-05-15 | Kokochi Sangyo Co., Ltd. | Reproducible data conversion and/or compression method of digital signals and a data converter and a digital computer |
US6182100B1 (en) * | 1998-06-30 | 2001-01-30 | International Business Machines Corporation | Method and system for performing a logarithmic estimation within a data processing system |
-
2003
- 2003-12-18 US US10/740,086 patent/US7290024B2/en not_active Expired - Fee Related
-
2004
- 2004-12-01 KR KR1020067011830A patent/KR100847934B1/ko not_active IP Right Cessation
- 2004-12-01 CN CNA2004800359860A patent/CN1890629A/zh active Pending
- 2004-12-01 EP EP04812802A patent/EP1695203A1/en not_active Withdrawn
- 2004-12-01 WO PCT/US2004/040361 patent/WO2005062165A1/en not_active Application Discontinuation
- 2004-12-01 JP JP2006545703A patent/JP2007515021A/ja active Pending
- 2004-12-02 TW TW093137219A patent/TWI291129B/zh not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551740B (zh) * | 2008-03-31 | 2011-12-28 | 株式会社日立制作所 | 嵌入控制装置 |
CN109697510A (zh) * | 2017-10-23 | 2019-04-30 | 三星电子株式会社 | 具有神经网络的方法和装置 |
CN109697510B (zh) * | 2017-10-23 | 2024-03-08 | 三星电子株式会社 | 具有神经网络的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20050138101A1 (en) | 2005-06-23 |
KR100847934B1 (ko) | 2008-07-22 |
US7290024B2 (en) | 2007-10-30 |
EP1695203A1 (en) | 2006-08-30 |
TW200532552A (en) | 2005-10-01 |
WO2005062165A1 (en) | 2005-07-07 |
KR20060103920A (ko) | 2006-10-04 |
TWI291129B (en) | 2007-12-11 |
JP2007515021A (ja) | 2007-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115934030B (zh) | 算数逻辑单元、浮点数乘法计算的方法及设备 | |
CN1838024A (zh) | 对数处理系统和方法 | |
CN1890629A (zh) | 使用按比例调整的整数的浮点运算 | |
CN105468331B (zh) | 独立的浮点转换单元 | |
CN1961284A (zh) | 使用n位乘加操作实现不变量除数的整数除法的方法和系统 | |
US9461667B2 (en) | Rounding injection scheme for floating-point to integer conversion | |
CN1296817C (zh) | 模乘方法及装置及模乘计算单元 | |
US20120259904A1 (en) | Floating point format converter | |
CN1975662A (zh) | 算术运算单元、信息处理设备和算术运算方法 | |
CN1928809A (zh) | 用于执行浮点运算的系统、设备和方法 | |
CN101080874A (zh) | 纠错编码装置以及在其中使用的纠错编码方法 | |
CN1685369A (zh) | 视频编码的低复杂性和统一标准的变换 | |
US8874630B2 (en) | Apparatus and method for converting data between a floating-point number and an integer | |
CN1821951A (zh) | 算术单元 | |
CN1918542A (zh) | 使用单指令多数据(simd)运算来计算超越函数 | |
EP4064036A1 (en) | Floating-point number multiplication computation method and apparatus, and arithmetical logic unit | |
CN1831753A (zh) | 一种浮点乘法器及其兼容双精度和双单精度计算的方法 | |
CN1021004C (zh) | 在剩余数系统中用于编码和译码数据的方法和装置 | |
CN1164117C (zh) | 用于解码音频信号的方法和设备 | |
CN1577250A (zh) | 用于实现2的幂的浮点估计的系统与方法 | |
EP3885897A1 (en) | Float division by constant integer using a predetermined number of modulo units | |
CN1014188B (zh) | 二~十进制加法器电路 | |
CN112115407A (zh) | 伊辛机数据输入设备以及将数据输入至伊辛机的方法 | |
CN1195808A (zh) | 算术运算系统 | |
CN1671090A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |