CN1577250A - 用于实现2的幂的浮点估计的系统与方法 - Google Patents

用于实现2的幂的浮点估计的系统与方法 Download PDF

Info

Publication number
CN1577250A
CN1577250A CN200410033546.3A CN200410033546A CN1577250A CN 1577250 A CN1577250 A CN 1577250A CN 200410033546 A CN200410033546 A CN 200410033546A CN 1577250 A CN1577250 A CN 1577250A
Authority
CN
China
Prior art keywords
floating
result
fraction part
combinational logic
complement
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
Application number
CN200410033546.3A
Other languages
English (en)
Other versions
CN100524201C (zh
Inventor
戈登·C·福萨姆
斯蒂芬·J·施温
马丁·S·施莫克勒
马修·R·塔布斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1577250A publication Critical patent/CN1577250A/zh
Application granted granted Critical
Publication of CN100524201C publication Critical patent/CN100524201C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • G06F7/556Logarithmic or exponential functions
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

提供了一种用于在一个通用浮点处理器中实现2的幂的估计函数的方法和装置。把一个浮点数存储在一个存储器中。浮点数包括一个符号比特、多个指数比特、以及一个拥有一个隐含比特和多个小数比特的尾数。响应一条浮点指令,根据所述指数比特,把所述尾数分割成一个整数部分和一个小数部分。通过把浮点数的所述整数部分分配为浮点结果的无偏指数,并通过利用把浮点数的小数部分转换成浮点结果的小数部分的组合逻辑硬件,提供一个浮点结果。

Description

用于实现2的幂的浮点估计 的系统与方法
技术领域
本发明一般涉及数据处理领域,特别是涉及用于实现2的幂的估计函数的系统与方法,例如在一个通用浮点处理器中实现2的幂的估计函数的系统与方法。
背景技术
一个指数函数,例如2的幂的函数,通常会在图形应用中遇到。然而,在一个在其指令集中不拥有指数函数的通用处理器中,一般要求多个处理器周期执行一个指数函数。通常,在其指令集中拥有指数函数的处理器要求多个处理器周期经由微代码执行一个指数函数。
于2001年1月23日颁发的Martin Stanley Schmookler及转让给本发明的受让人的美国专利6,178,435,公开了一种用于在数据处理系统中的浮点数上执行2的幂的估计的方法。提供了一种针对通用处理器的2的幂的函数,即y=2x,的快速的实现,其中变元x和结果y均以浮点格式加以表示。为了便于说明,所使用的浮点格式为IEEE 754格式。浮点数包括一个符号比特、多个指数比特、以及一个拥有一个隐含比特和多个小数比特的尾数。为了估计浮点数的2的幂,根据指数比特的值,把尾数割成一个整数部分和一个小数部分。
在所公开的这一实现中,通过把浮点数的整数部分分配为一个浮点结果的无偏指数(unbiased exponent),并通过经由一个查找表把浮点数的小数部分转换成浮点结果的小数部分,形成一个浮点结果。整数部分形成该结果的指数,并且小数部分用于从表中找出一个6比特的值。然后,把这一值添加到小数部分,使用一个2加数6比特加法器结构形成该结果的小数。按这一方法所获得的典型结果对0.822×2-5的精确结果拥有最糟糕的相对误差。另外,如在图5中所看到的,由现有技术设计所产生的估计函数包含多处值得注意的不连续性。
存在着对一种用于实现2的幂的估计函数的改进的机制的需求。期望这种机制提供更精确的估计,并且所提供的估计函数比现有技术设计所产生的估计函数更有连续性。
发明内容
本发明的一个主要目的是,提供一种用于实现2的幂的估计函数的方法与装置,例如,在一个通用浮点处理器中实现2的幂的估计函数的方法与装置。本发明的其它重要目的是,提供明显不具负面影响,并克服了现有技术配置的某些缺点的、用于实现2的幂的估计函数的这样的方法与装置。
简而言之,提供一种用于在一个通用浮点处理器中实现2的幂的估计函数的方法与装置。把一个浮点数存储在一个存储器中。该浮点数包括一个符号比特、多个指数比特、以及一个拥有一个隐含比特和多个小数比特的尾数。响应一条浮点指令,根据指数比特,把尾数分割成一个整数部分和一个小数部分。通过把浮点数的整数部分分配为一个浮点结果的无偏指数,并通过利用把浮点数的小数部分转换成浮点结果的小数部分的组合逻辑硬件,提供一个浮点结果。把浮点结果存储在存储器中。
根据本发明的特征,组合逻辑硬件包括这样的组合逻辑:接收浮点数的小数部分F,并依赖于小数部分F的多个小数比特产生两个数A和B。从F减去两个数A和B的和,产生浮点结果的小数比特。可以通过组合逻辑及一个把A和B与由(-结果=-F+A+B)所表示的F的一的补码相加的加法器结构,实现组合逻辑硬件。然后取这一和的一的补码,以产生浮点结果的小数部分。
附图说明
通过以下结合附图对本发明的优选实施例的详细描述,可以对所提到本发明的上述和其它目的以及优点更好地理解。在这些附图中:
图1的高级流程图说明了根据优选实施例的用于在一个数据处理系统中执行2的幂的估计的方法;
图2的实例说明了根据优选实施例的用于执行图1的2的幂的估计的方法;
图3的框图说明了根据优选实施例的用于执行图1的2的幂的估计方法的通用处理器;
图4的框图说明了根据优选实施例的用于执行图1的2的幂的估计方法的组合逻辑硬件;
图5的图说明了一个现有技术估计函数;以及
图6的图说明了根据优选实施例的具有图4的组合逻辑硬件的图1的方法的一个估计函数。
具体实施方式
现在参照图1,图1是一高级流程图,说明了根据优选实施例的用于在一个数据处理系统中执行2的幂的估计的方法。在一个通用处理器中提供了是否y=2x函数一个2的幂的估计。根据IEEE 754格式,一个规格化的浮点数,例如x,由3组比特加以表示,即一个符号比特、多个指数比特、以及多个尾数比特。符号比特是浮点数的最高有效比特。接下来的8个比特为指数比特,它们代表浮点数的偏指数(biased exponent)。通过减127可以获得一个无偏指数。23个最低有效比特为小数比特;通过用223除以这23个比特,并把1.0添加到非去规格化(nondenormal)数的商中,计算尾数。
把浮点数x的值分割成两个部分的和,即,一个有符号整数xI和一个正小数xF。通过以上的这一分割,xI变成y的无偏指数,尽管y的尾数等于2xF。由于0≤xF<1,所以1≤2xF<2。如果在0~1的范围内把2xF(一个2的幂函数)的图与(1+xF)(一个线性函数)的图加以比较,可以观察到在端点处,来自上述两个函数的结果是相同的,但在端点之间来自2xF函数的结果通常略小于来自(1+xF)函数的结果。因此,如果需要具有低精度估计的2的幂函数,那么可以简单地通过对该线性函数进行小的校正获得2的幂函数的低精度。
从框110开始,把浮点数x的尾数分割为一个无偏整数xI和一个小数xF,如框112中所示。这一分割是根据x的指数加以确定的。如果x的符号为负,如决策框114中所示,由其1的补码替代所分割的尾数,如框116所示。在这一步骤之后,整数部分为一个有符号整数,xI,小数部分为一个正值xI。然后把y的符号设置为零,相应于一个正值,因为2x必须为非负(non-negative);值xI变成y的无偏指数,如框118中所示。如果xI位于-126~+127的正常范围中,通过加127可以获得偏指数。然后,经由具有作为输入的小数xF的优选实施例的组合逻辑硬件400,获得y的尾数的小数部分,yF,如框120中所示。参照图4说明和描述组合逻辑硬件400。最后,通过组合y的符号比特、y的指数比特、以及y的小数比特,形成浮点结果,如框122中所示。
现在参照图2,图2是一个实例,说明了根据本发明的一个优选实施例的用于在一个数据处理系统中执行2的幂的估计的方法。假设x等于十进制数的5.57。然后,可以按浮点格式表示x,如下:
x=(-1)sign*2exp*mantissa
其中,sign是一个符号比特,exp是一个正无偏指数,尾数等于1.小数。因此,x=(-1)0*22*1.011100或按浮点二进制表示为0 0010 01110000。由于x的指数等于0010(或十进制2)所以把隐含二进制小数点向右位移两个位置,以致于尾数变成101.11000000000。二进制小数点左侧的比特(即101)变成一个整数部分xI,把二进制小数点右侧的比特(即1100000000)变成一个小数xF。于是,yexp(浮点结果y的无偏指数)等于101;并且通过把具有小数xF的优选实施例的组合逻辑400作为一个输入,yF(浮点结果y的小数)等于1.10101110001。通过把yexp和yF相结合,得到按二进制表示的110101.110001或十进制表示的53.7656,获得浮点结果y的值。
参照图3,图3描述了一由标号300表示的根据优选实施例的用于执行2的幂的估计方法的通用处理器。通用处理器300包括一个耦合于一个整数单元304、一个通用寄存器306、一个加载/存储单元308、一个浮点寄存器310、以及一个浮点单元312的指令单元302。通用处理器300包括一个耦合于一个指令单元302、和整数单元304、通用寄存器306、加载/存储单元308、浮点寄存器310、以及浮点单元312的每一个的完成单元314。一个数据超高速缓存316耦合于加载/存储单元308、并且一个总线接口单元320耦合于数据超高速缓存316和指令超高速缓存318。数据超高速缓存316和指令超高速缓存318均为高速集合相关超高速缓存(high speedset-associative cache),这种高速集合相关超高速缓存使处理器300能够获得对先前从主存储器(未在图中加以显示)传输的数据或指令子集的相当快速的存取时间。把指令超高速缓存318耦合于指令单元302,在每一执行期间,指令单元302从指令超高速缓存318获取指令。执行单元、整数单元304、加载/存储单元308、以及浮点单元312的每一个都可运行一种或多种指令,在每一处理器周期期间,所有执行单元、整数单元304、加载/存储单元308、以及浮点单元312,都可并行操作。在终止了一条指令的执行之后,执行单元、整数单元304、加载/存储单元308、以及浮点单元312,把数据结果存储在一个相应的重命名缓冲器中,取决于指令的类型。然后,执行单元、整数单元304、加载/存储单元308、以及浮点单元312中的任何一个均可向完成单元314发送完成了指令执行的信号。最后,通过把结果数据从相应的重命名缓冲器传输到通用寄存器(GPR)306或浮点结果(FPR)310,按程序顺序完成指令。
可以使用各种标准的处理器,例如使用International BusinessMachines(IBM)公司制造的PowerPC处理器系列之一,实现通用处理器300。
根据优选实施例的特性,一种根据优选实施例的特性在无需添加流水线阶段的情况下获得其结果的2的幂的估计的新方法是更精确的,并且产生了一个比现有技术设计更为连续的函数。这是通过使用获取结果的小数比特的一个不同的方案得以实现的。实现2的幂的函数的组合逻辑电路400,包括一个定制3加数11比特加法器结构,如图4中所示。现在,描述用于从以上所提到的输入的小数部分xF获得浮点结果的小数比特yF的新的方法。
通过依赖于以上所描述的小数部分xF(以下将它称为F)的11比特的组合逻辑,产生两个数(以下将它们称为A和B)。从F中减去这两个数A和B的和,产生结果的11个最高有效小数比特。这可以通过把A和B与由(-结果=-F+A+B)所表示的F的一的补码(1的补码)相加得以实现,然后,取这个和的1的补码,产生浮点结果的一个小数部分。-F表示一个相反的F或F的一的补码。
然而,除了直接实现这3个数的和,这不在该设计的计时限制范围内,,还可以通过依赖于F、B以及(A-F)的组合逻辑获得这一结果。不需要一个完全通用的3路11比特加法器,因为这一算法的特性是这样的:在数A和B中不能看到11比特的每一排列。
从输入F导出A和B,可以从以下的逻辑描述得以理解。以下的逻辑描述是由组合逻辑电路400的第一组合逻辑框401实现的。
第一中间项s1,s2和s3定义如下,其中F1,F2,F3,F4,F5,F6,F7,F8,F9,F10以及F11分别代表F(1至11)的1~11比特:
s1=F1 AND F2 AND F3 AND F4
s2=(NOT F1 AND NOT F2)OR(F1 AND F2 AND F3 AND NOT F4)OR(F1AND F2 AND NOT F3 AND F4)
s3=(F2 AND NOT F3 AND NOT F4)OR(F1 AND NOT F2 AND F3)OR(NOTF1 AND F2 AND NOT F3)OR(NOT F1 AND F2 AND NOT F4)
项A
分别代表A的比特1~11(1至11)的A1,A2,A3,A4,A5,A6,A7,A8,A9,A10以及A11定义如下:
A1=0
A2=0
A3=0
A4=(s1 AND NOT F3)OR(s2 AND NOT F1 AND F2)OR(s2 AND F1 ANDNOT F2)
A5=(s1 AND NOT F4)OR(s2 AND NOT F1 AND F3)OR(s2 AND F1 ANDNOT F3)OR
(s3 AND NOT F1 AND F2)OR(s3 AND F1 AND NOT F2)
A6=(s1 AND NOT F5)OR(s2 AND NOT F1 AND F4)OR(s2 AND F1 ANDNOT F4)OR
(s3 AND NOT F1 AND F3)OR(s3 AND F1 AND NOT F3)
A7=(s1 AND NOT F6)OR(s2 AND NOT F1 AND F5)OR(s2 AND F1 ANDNOT F5)OR
(s3 AND NOT F1 AND F4)OR(s3 AND F1 AND NOT F4)
A8=(s1 AND NOT F7)OR(s2 AND NOT F1 AND F6)OR(s2 AND F1 ANDNOT F6)OR
(s3 AND NOT F1 AND F5)OR(s3 AND F1 AND NOT F5)
A9=(s1 AND NOT F8)OR(s2 AND NOT F1 AND F7)OR(s2 AND F1 ANDNOT F7)OR
(s3 AND NOT F1 AND F6)OR(s3 AND F1 AND NOT F6)
A10=(s1 AND NOT F9)OR(s2 AND NOT F1 AND F8)OR(s2 AND F1 ANDNOT F8)OR
(s3 AND NOT F1 AND F7)OR(s3 AND F1 AND NOT F7)
A11=(s1 AND NOT F10)OR(s2 AND NOT F1 AND F9)OR(s2 AND F1 ANDNOT F9)OR
(s3 AND NOT F1 AND F8)OR(s3 AND F1 AND NOT F8)
B4,B5,B6,B7分别代表B的比特4~7(4至7),并定义如下:
B4=(F1 AND NOT F2 AND NOT F3)OR(NOT F1 AND F2 AND F3 AND F4)
B5=(F2 AND NOT F3 AND NOT F4)OR(F1 AND NOT F2 AND F3)OR(NOTF1 AND F2 AND NOT F3)OR(NOT F1 AND F2 AND NOT F4)
B6=(NOT F1 AND F2 AND F3 AND F4)OR
(F1 AND F2 AND F3 AND NOT F4)OR(F1 AND NOT F2 AND NOT F3)OR(F1 AND NOT F3 AND F4)
B7=(NOT F1 AND F2 AND F3 AND F4)OR(F1 AND NOT F3 AND NOT F4)OR(F1 AND NOT F2)
由这一新算法所产生的实例值,可从以下的表1中看出:
                            表1
-F(1到11)        A(1到11)      C(4到7)  B-F(1到11)     -结果(1到11)
                                                         (-F+A+C)
11111111111     00000000000     0000    11111111111    11111111111
11111111110     00000000000     0000    11111111110    11111111110
11111111101     00000000000     0000    11111111101    11111111101
11111111100     00000000000     0000    11111111100    11111111100
11111111011     00000000001     0000    11111111100    11111111100
11111111010     00000000001     0000    11111111011    11111111011
11111111001     00000000001     0000    11111111010    11111111010
11111111000     00000000001     0000    11111111001    11111111001
11111110111     00000000010     0000    11111111001    11111111001
11111110110     00000000010     0000    11111111000    11111111000
11111110101     00000000010     0000    11111110111    11111110111
11111110100     00000000010     0000    11111110110    11111110110
11111110011     00000000011     0000    11111110110    11111110110
11111110010     00000000011     0000    11111110101    11111110101
11111110001     00000000011     0000    11111110100    11111110100
11111110000     00000000011     0000    11111110011    11111110011
11111101111    00000000100    0000        11111110011    11111110011
*
*
*
11000000000    00001111111    0000        11001111111    11001111111
10111111111    00001111111    0000        11001111111    11001111111
10111111110    00001000000    0100        11000111110    11001111110
10111111101    00001000000    0100        11000111101    11001111101
10111111100    00001000000    0100        11000111100    11001111100
10111111011    00001000000    0100        11000111011    11001111011
10111111010    00001000000    0100        11000111010    11001111010
10111111001    00001000000    0100        11000111001    11001111001
10111111000    00001000000    0100        11000111000    11001111000
*
*
*
                        表1(续)
-F(1到11)       A(1到11)     C(4到7)      B-F(1到11)     -结果(1到11)
                                                           (-F+A+C)
01101100011    00000000000    1011        01101100011    10000010011
01101100010    00000000000    1011        01101100010    10000010010
01101100001    00000000000    1011        01101100001    10000010001
01101100000    00000000000    1011        01101100000    10000010000
01101011111    00000000000    1011        01101011111    10000001111
01101011110    00000000000    1011        01101011110    10000001110
01101011101    00000000000    1011        01101011101    10000001101
01101011100    00000000000    1011        01101011100    10000001100
01101001011    00000000000    1011        01101011011    10000001011
01101011010    00000000000    1011        01101011010    10000001010
*
*
*
00000000110     00000000011     0000     00000001001     00000001001
00000000101     00000000010     0000     00000000111     00000000111
00000000100     00000000010     0000     00000000110     00000000110
00000000011     00000000001     0000     00000000100     00000000100
00000000010     00000000001     0000     00000000011     00000000011
00000000001     00000000000     0000     00000000001     00000000001
00000000000     00000000000     0000     00000000001     00000000000
现在参照图4。在组合逻辑硬件400中描述了这一新算法的实现。组合逻辑硬件400包括一个接收输入-F(1至11)的组合逻辑401。依赖于小数部分xF或-F(1至11)的组合逻辑401产生输出A和B,如表1中所列出的,以及标号为A(1至11)、B(6至7)行以及图4中B非零中所描述的。
组合逻辑硬件400包括一个接收一个输入-F(1至11)的组合逻辑402、以及一个接收一个输入-F(1至11)和A(1至11)的11比特加404。把组合逻辑402和11比特加404的一个相应的输出耦合于具有一个B非零选择输入的多路转换器(MUX)406。一个2比特加408接收11比特加404的输入B(6至7)和输出。通过把A和B与由(-结果=-F+A+B)所代表的F的一个一的补码(1的补码)或一的补码结果410相加实现存储在寄存器410处的-结果小数。取这个和(-结果)的1的补码,如框412中所示,产生浮点结果的一个小数部分,如框414中所示。浮点结果414包括符号、指数、小数部分、以及未使用的小数比特。
可以使用依赖于-F、B以及(A-F)的组合逻辑更简单地实现存储在寄存器410处的-结果小数的某些比特,但也可以仅以依赖于-F的不太复杂的逻辑表示其它比特。具体地讲,如图4中所示,由于对F的每一可能的输入,B的比特8~11为零,所以仅由11比特加404把-F和A相加,产生结果比特8~11的一的补码。通过把由11比特加404所提供的-F(6至7)和A(6至7)的中间和与组合逻辑401所提供的B(6至7)相加,由2比特加408产生该结果的比特6和7。在当B为非零时的情况下,通过仅依赖于-F(1至11)的组合逻辑402,经由MUX 406,产生结果的比特2至5,以及当B为零时,由11比特加404提供-F和A的和。结果的比特1仅由依赖于-F的组合逻辑402导出。
根据输入F由组合逻辑402对求补的小数结果比特1至5(输入到MUX 406的位2至5)的导出,定义如下:
求补的小数结果比特1:
INV_RESTUL1=(NOT F1)OR
(NOT F2 AND NOT F3 AND NOT F4)OR
(NOT F2 AND NOT F3 AND NOT F5 AND NOT F6)OR
(NOT F2 AND NOT F3 AND NOT F5 AND NOT F7)OR
INV_RESULT2=(F1 AND NOT F2 AND F3)OR
(F2 AND NOT F3 AND NOT F4)OR
(F4 AND F5 AND F1 AND NOT F2)OR
(F1 AND NOT F2 AND F6 AND F7 AND F4)OR
(NOT F5 AND NOT F6 AND NOT F1 AND F2 AND NOT F3 AND NOT F7)OR
(NOT F8 AND NOT F9 AND NOT F5 AND NOT F6 AND NOT F1 AND F2 ANDNOT F3 AND NOT F10)
INV_RESULT3=(F1 AND NOT F2 AND(3)AND NOT F4)OR
(NOT F1 AND F2 AND F3 AND NOT F4)OR
(F1 AND NOT F3 AND F2 AND F4)OR
(F4 AND F5 AND F1 AND NOT F3)OR
(F2 AND NOT F3 AND F4 AND F5)OR
(F2 AND NOT F3 AND F4 AND F6)OR
(NOT F1 AND F2 AND F3 AND NOT F5 AND NOT F6)OR
(F6 AND F7 AND F1 AND NOT F3 AND F4)OR
(F1 AND NOT F2 AND F3 AND NOT F5 AND NOT F6 AND NOT F7)OR
(F1 AND NOT F2 AND F3 AND NOT F5 AND NOT F6 AND NOT F8)OR
(F1 AND NOT F2 AND F3 AND NOT F5 AND NOT F6 AND NOT F9)OR
(F2 AND F3 AND NOT F4 AND NOT F5)OR
(F6 AND NOT F7 AND NOT F1 AND F2 AND F4 AND NOT F5)OR
(F2 AND NOT F4 AND NOT F6 AND NOT F7 AND F3 AND NOT F8)OR
(F2 AND NOT F4 AND NOT F6 AND NOT F7 AND F3 AND NOT F9)OR
(NOT F5 AND NOT F6 AND NOT F1 AND F2 AND F4 AND F7 AND F8)OR
(NOT F5 AND NOT F6 AND NOT F1 AND F2 AND F4 AND F7 AND F9)OR
(NOT F5 AND NOT F6 AND NOT F1 AND F2 AND F4 AND F7 AND F10)
INV_RESULT4=(F4 AND F5 AND F1 AND NOT F2)OR
(F4 AND F5 AND NOT F1 AND F2)OR
(NOT F4 AND NOT F5 AND F1 AND NOT F2 AND NOT F6)OR
(F1 AND NOT F2 AND F3 AND F4 AND F6)OR
(F6 AND F7 AND NOT F1 AND F2 AND F4)OR
(F2 AND F3 AND NOT F4 AND NOT F1 AND NOT F5 AND NOT F6)OR
(F1 AND F5 AND F2 AND F3 AND NOT F4 AND F6)OR
(NOT F4 AND NOT F5 AND F1 AND NOT F3 AND NOT F2 AND NOT F7)OR
(F1 AND F5 AND F2 AND F3 AND NOT F4 AND F7)OR
(F8 AND F9 AND F1 AND F5 AND F2 AND F3 AND NOT F4)OR
(NOT F8 AND NOT F9 AND F2 AND F3 AND NOT F4 AND NOT F1 AND NOTF5 AND NOT F7)OR
(F2 AND NOT F3 AND F4 AND F1 AND NOT F6)OR
(F2 AND NOT F3 AND F4 AND NOT F5 AND F6)OR
(F6 AND F7 AND F1 AND NOT F3 AND F4 AND NOT F5)OR
(NOT F6 AND F7 AND F2 AND NOT F3 AND F4 AND F8)OR
(NOT F6 AND F7 AND F2 AND NOT F3 AND F4 AND F9)OR
(NOT F6 AND F7 AND F2 AND NOT F3 AND F4 AND F10)OR
(F1 AND NOT F3 AND NOT F5 AND NOT F6 AND NOT F4 AND NOT F7 ANDNOT F8)OR
(F6 AND NOT F7 AND F1 AND NOT F2 AND F3 AND NOT F5 AND NOT F8)OR
(F1 AND NOT F3 AND NOT F5 AND NOT F6 AND NOT F4 AND NOT F7 ANDNOT F9)OR
(NOT F8 AND NOT F9 AND F6 AND NOT F7 AND F2 AND NOT F3 AND F4)OR
(F1 AND NOT F3 AND NOT F5 AND NOT F6 AND NOT F4 AND NOT F7 ANDNOT F10)OR
(F6 AND NOT F7 AND F2 AND NOT F3 AND F4 AND NOT F8 AND NOT F10)OR
(F8 AND F9 AND NOT F6 AND F7 AND F1 AND NOT F2 AND F3 AND NOTF5)OR
(F6 AND NOT F7 AND F1 AND NOT F2 AND F3 AND NOT F5 AND NOT F9AND NOT F10)
INV_RESULT5=(NOT F4 AND NOT F5 AND NOT F1 AND F2 AND NOT F3)OR
(F1 AND F5 AND NOT F2 AND NOT F3 AND NOT F6)OR
(NOT F1 AND F2 AND F3 AND F5 AND NOT F6)OR
(F1 AND F5 AND NOT F2 AND NOT F3 AND NOT F7)OR
(F1 AND F5 AND NOT F2 AND NOT F6 AND NOT F7)OR
(F1 AND NOT F2 AND F6 AND F7 AND NOT F5)OR
(F6 AND F7 AND NOT F1 AND F2 AND NOT F5)OR
(F1 AND NOT F2 AND F3 AND NOT F5 AND F4 AND F6)OR
(F4 AND F5 AND NOT F1 AND F2 AND F3 AND NOT F7)OR
(F4 AND F5 AND NOT F1 AND F2 AND NOT F6 AND NOT F7)OR
(NOT F8 AND NOT F9 AND F1 AND F5 AND NOT F2 AND NOT F6)OR
(F2 AND NOT F4 AND NOT F6 AND NOT F7 AND F1 AND F3 AND NOT F5)OR
(F6 AND F7 AND F1 AND F5 AND F2 AND NOT F3 AND F4)OR
(F8 AND F9 AND F1 AND NOT F2 AND F3 AND NOT F5 AND F6)OR
(F1 AND NOT F2 AND F3 AND NOT F5 AND F6 AND F8 AND F10)OR
(F1 AND F5 AND NOT F2 AND NOT F6 AND NOT F8 AND NOT F10 AND NOTF11)OR
(F8 AND F9 AND F1 AND NOT F2 AND F3 AND NOT F5 AND F4 AND F7)OR
(F6 AND NOT F7 AND F2 AND NOT F3 AND NOT F5)OR
(NOT F4 AND NOT F5 AND F2 AND NOT F3 AND F7)OR
(F2 AND NOT F3 AND F4 AND F1 AND NOT F5 AND NOT F6)OR
(F1 AND F5 AND F2 AND F3 AND NOT F4 AND F6)OR
(NOT F6 AND F7 AND F1 AND F5 AND F3 AND NOT F4)OR
(F4 AND F5 AND NOT F1 AND F2 AND NOT F6 AND NOT F8)OR
(NOT F4 AND NOT F5 AND NOT F1 AND F2 AND F6 AND F9)OR
(NOT F5 AND NOT F6 AND F2 AND NOT F3 AND F7 AND F9)OR
(NOT F5 AND NOT F6 AND F2 AND NOT F3 AND F7 AND F10)OR
(F2 AND NOT F4 AND NOT F6 AND NOT F7 AND NOT F1 AND NOT F3 ANDNOT F8)OR
(F6 AND NOT F7 AND F2 AND F3 AND NOT F4 AND F5 AND NOT F8)OR
(NOT F5 AND NOT F6 AND F1 AND F2 AND NOT F4 AND F7 AND NOT F8)OR
(F6 AND NOT F7 AND F2 AND NOT F3 AND F4 AND F1 AND F8)OR
(F8 AND F9 AND F1 AND F5 AND F2 AND F3 AND NOT F4)OR
(NOT F8 AND NOT F9 AND F2 AND NOT F4 AND NOT F6 AND NOT F7 ANDNOT F3 AND F5)OR
(F6 AND NOT F7 AND F2 AND F3 AND NOT F4 AND NOT F1 AND F8 ANDNOT F9)OR
(F2 AND NOT F4 AND NOT F6 AND NOT F7 AND NOT F3 AND F5 AND NOTF8 AND NOT F10)OR
(F1 AND NOT F3 AND NOT F8 AND NOT F9 AND F2 AND NOT F5 AND F7AND NOT F10)OR
(F6 AND NOT F7 AND F1 AND F5 AND NOT F3 AND F4 AND F9 AND F10)OR
(F2 AND NOT F4 AND NOT F6 AND NOT F7 AND NOT F3 AND F5 AND NOTF8 AND NOT F11)OR
(NOT F8 AND NOT F9 AND F6 AND NOT F7 AND F1 AND F5 AND F3 ANDNOT F4 AND NOT F10)OR
(NOT F6 AND F7 AND F2 AND NOT F3 AND F4 AND NOT F1 AND F8 ANDNOT F9 AND NOT F10)OR
(F8 AND F9 AND F2 AND NOT F4 AND NOT F6 AND NOT F7 AND F1 ANDNOT F5 AND F10)OR
(NOT F8 AND NOT F9 AND F6 AND NOT F7 AND F1 AND F5 AND F3 ANDNOT F4 AND NOT F11)OR
(F6 AND F7 AND NOT F8 AND NOT F9 AND F2 AND NOT F3 AND F4 ANDF1 AND NOT F11)OR
(F2 AND NOT F4 AND NOT F6 AND NOT F7 AND NOT F1 AND NOT F3 ANDNOT F9 AND NOT F10 AND NOT F11)OR
(NOT F5 AND NOT F6 AND F1 AND F2 AND NOT F4 AND F7 AND NOT F9AND NOT F10 AND NOT F11)OR
(F8 AND F9 AND F2 AND F3 AND NOT F4 AND F5 AND NOT F7 AND NOTF10 AND NOT F11)OR
(NOT F6 AND F7 AND F2 AND NOT F3 AND F4 AND NOT F1 AND NOT F9AND F10 AND NOT F11)
参照图5和6,可以看出,当与图5的现有的技术结果相比时,组合逻辑硬件能够实现结果的一个十分连续的集合,如图6中所示,其对于精确结果的最糟糕的相对误差为0.144×2-5,这大大改进了先前的设计。与现有技术相比,利用了组合逻辑硬件400的优选实施例的这一方法也可以在不添加体系结构阶段的情况下得以实现。
优选实施例的这一改进的算法的好处是明显的,在2的幂估计的一个常见应用中,例如在实时三维计算机图形中,其中2的幂估计算法可用于计算一个表面上镜面明亮(specular highlight)的阴影中的梯度。例如,优选实施例的2的幂估计算法改进的应用,导致实时三维计算机图形中较少的条纹和看上去更实际的镜面明亮。
尽管已经结合附图对本发明的实施例作了详细描述,然而,这些细节并不旨在限制如所附权利要求中所要求的本发明的范围。

Claims (12)

1.一种用于实现2的幂的浮点估计函数的方法,包括下列步骤:
把一个浮点数存储在一个存储器中;所述浮点数包括一个符号比特、多个指数比特、以及一个拥有一个隐含比特和多个小数比特的尾数;
响应一条浮点指令:
根据所述指数比特,把所述尾数分割成一个整数部分和一个小数部分;以及
通过把所述浮点数的所述整数部分分配为所述浮点结果的无偏指数,并通过利用把所述浮点数的所述小数部分转换成所述浮点结果的小数部分的组合逻辑硬件,获得一个浮点结果;以及
把所述浮点结果存储在所述存储器中。
2.如权利要求1中所述的一种用于实现2的幂的浮点估计函数的方法,其中,所述浮点数的所述尾数的所述小数比特包括由F(1至11)所表示的11个小数比特。
3.如权利要求1中所述的一种用于实现2的幂的浮点估计函数的方法,其中,所述浮点数的所述尾数的多个小数比特由F加以表示,而且其中,利用组合逻辑硬件把所述浮点数的所述小数部分转换成所述浮点结果的小数部分的步骤,包括利用第一组合逻辑接收F,以产生由A和B所表示的两个数,其中,从F减去A和B的和,产生所述浮点结果的所述小数部分。
4.如权利要求1中所述的一种用于实现2的幂的浮点估计函数的方法,其中,所述浮点数的所述尾数的所述小数比特包括由F(1至11)所表示的11个小数比特,而且其中,利用组合逻辑把所述浮点数的所述小数部分转换成所述浮点结果的小数部分的步骤,包括下列步骤:
利用组合逻辑,把A和B与F的一的补码相加,以提供一个和,并取所述和的一的补码,以产生所述浮点结果的所述小数部分。
5.如权利要求4中所述的一种用于实现2的幂的浮点估计函数的方法,其中,所述浮点结果的所述小数部分包括由F(1至11)所表示的11个小数比特。
6.一种用于实现2的幂的浮点估计函数的装置,包括:
一个处理器,用于把一个浮点数存储在一个存储器中;所述浮点数包括一个符号比特、多个指数比特、以及一个拥有一个隐含比特和多个小数比特的尾数;所述处理器响应一条浮点指令,根据所述指数比特,把所述尾数分割成一个整数部分和一个小数部分;以及用于通过把所述浮点数的所述整数部分分配为所述浮点结果的无偏指数,获得一个浮点结果,以及
组合逻辑硬件,用于把所述浮点数的所述小数部分转换成所述浮点结果的小数部分。
7.如权利要求6中所述的一种用于实现2的幂的浮点估计函数的装置,其中,所述浮点数的所述尾数的多个小数比特由F加以表示,而且其中,用于把所述浮点数的所述小数部分转换成所述浮点结果的小数部分的所述组合逻辑硬件包括第一组合逻辑,第一组合逻辑接收F,以产生由A和B所表示的两个数,其中,从F减去A与B的和,产生所述浮点结果的所述小数部分。
8.如权利要求7中所述的一种用于实现2的幂的浮点估计函数的装置,其中,所述组合逻辑硬件包括一个加法器,该加法器用于把A和B与F的一的补码相加,以提供由(-结果=-F+A+B)所表示的一的补码结果。
9.如权利要求8中所述的一种用于实现2的幂的浮点估计函数的装置,其中,所述组合逻辑硬件还包括一个一的补码函数,该一的补码函数取所述一的补码结果的一的补码,以产生所述浮点结果的所述小数部分。
10.如权利要求8中所述的一种用于实现2的幂的浮点估计函数的装置,其中,所述加法器包括一个用于把A和B与F的所述一的补码相加的11比特加法器,以及一个用于把B和所述F的一的补码相加以提供由(-结果=-F+A+B)所表示的所述一的补码结果的2比特加法器。
11.如权利要求10中所述的一种用于实现2的幂的浮点估计函数的装置,其中,所述组合逻辑硬件还包括一个多路转换器,这一多路转换器用于基于B为零的情况,选择仅依赖于F的所述一的补码或所述F的一的补码与A的和的所述一的补码结果的预先规定的比特。
12.如权利要求7中所述的一种用于实现2的幂的浮点估计函数的装置,其中,所述浮点结果包括由yF(1至11)所表示的11个小数比特。
CNB2004100335463A 2003-06-26 2004-04-06 用于实现2的幂的浮点估计的装置与方法 Expired - Fee Related CN100524201C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/607,359 2003-06-26
US10/607,359 US7143126B2 (en) 2003-06-26 2003-06-26 Method and apparatus for implementing power of two floating point estimation

Publications (2)

Publication Number Publication Date
CN1577250A true CN1577250A (zh) 2005-02-09
CN100524201C CN100524201C (zh) 2009-08-05

Family

ID=33540245

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100335463A Expired - Fee Related CN100524201C (zh) 2003-06-26 2004-04-06 用于实现2的幂的浮点估计的装置与方法

Country Status (4)

Country Link
US (1) US7143126B2 (zh)
JP (1) JP2005018759A (zh)
CN (1) CN100524201C (zh)
TW (1) TWI325120B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101539852B (zh) * 2008-03-21 2013-01-23 富士通株式会社 用于执行条件存储指令的方法、处理器和信息处理设备
CN104169866A (zh) * 2012-03-30 2014-11-26 富士通株式会社 运算处理装置以及运算处理装置的控制方法
CN104866281A (zh) * 2014-02-21 2015-08-26 北京国睿中数科技股份有限公司 实现浮点数符号分析替换的装置及方法
CN105183426A (zh) * 2015-08-18 2015-12-23 深圳市振邦智能科技有限公司 一种应用于8位单片机的浮点数显示方法和装置
CN103455303B (zh) * 2012-05-31 2017-10-31 上海华虹集成电路有限责任公司 用硬件实现指数运算的电路
CN113032326A (zh) * 2021-03-25 2021-06-25 盛立安元科技(杭州)股份有限公司 一种用于fpga的数据类型转换装置、方法、设备及存储介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138095A1 (en) * 2003-12-18 2005-06-23 International Business Machines Corporation Method for base two logarithmic estimation
US7456837B2 (en) * 2005-01-10 2008-11-25 International Business Machines Corporation Optimized specular highlight generation
US7644116B2 (en) * 2006-05-31 2010-01-05 Via Telecom Co., Ltd. Digital implementation of fractional exponentiation
US8275821B2 (en) * 2007-09-07 2012-09-25 International Business Machines Corporation Area efficient transcendental estimate algorithm
JP4529098B2 (ja) * 2008-07-29 2010-08-25 ソニー株式会社 演算処理装置および方法、並びにプログラム
US20100215055A1 (en) * 2009-02-25 2010-08-26 Glaser Stephen D Method and apparatus for using multiple protocols on a communication link
WO2013101010A1 (en) 2011-12-28 2013-07-04 Intel Corporation Floating point scaling processors, methods, systems, and instructions
US9461667B2 (en) * 2013-12-30 2016-10-04 Samsung Electronics Co., Ltd. Rounding injection scheme for floating-point to integer conversion
US11163533B2 (en) * 2019-07-18 2021-11-02 International Business Machines Corporation Floating point unit for exponential function implementation
CN113721884B (zh) * 2021-09-01 2022-04-19 北京百度网讯科技有限公司 运算方法、装置、芯片、电子装置及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4078250A (en) * 1974-08-21 1978-03-07 The Singer Company Log-antilog conversion for a digital radar system
US4583180A (en) * 1983-01-28 1986-04-15 National Semiconductor Corporation Floating point/logarithmic conversion system
US5365465A (en) * 1991-12-26 1994-11-15 Texas Instruments Incorporated Floating point to logarithm converter
US6178435B1 (en) * 1998-06-30 2001-01-23 International Business Machines Corporation Method and system for performing a power of two estimation within a data processing system
US6289367B1 (en) * 1998-11-16 2001-09-11 Texas Instruments Incorporated Digital signal processing circuits, systems, and method implementing approximations for logarithm and inverse logarithm

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101539852B (zh) * 2008-03-21 2013-01-23 富士通株式会社 用于执行条件存储指令的方法、处理器和信息处理设备
CN104169866A (zh) * 2012-03-30 2014-11-26 富士通株式会社 运算处理装置以及运算处理装置的控制方法
CN104169866B (zh) * 2012-03-30 2017-08-29 富士通株式会社 运算处理装置以及运算处理装置的控制方法
CN103455303B (zh) * 2012-05-31 2017-10-31 上海华虹集成电路有限责任公司 用硬件实现指数运算的电路
CN104866281A (zh) * 2014-02-21 2015-08-26 北京国睿中数科技股份有限公司 实现浮点数符号分析替换的装置及方法
CN105183426A (zh) * 2015-08-18 2015-12-23 深圳市振邦智能科技有限公司 一种应用于8位单片机的浮点数显示方法和装置
CN113032326A (zh) * 2021-03-25 2021-06-25 盛立安元科技(杭州)股份有限公司 一种用于fpga的数据类型转换装置、方法、设备及存储介质

Also Published As

Publication number Publication date
TWI325120B (en) 2010-05-21
US20040267853A1 (en) 2004-12-30
JP2005018759A (ja) 2005-01-20
TW200516490A (en) 2005-05-16
CN100524201C (zh) 2009-08-05
US7143126B2 (en) 2006-11-28

Similar Documents

Publication Publication Date Title
CN1577250A (zh) 用于实现2的幂的浮点估计的系统与方法
CN1101019C (zh) 数据序列产生方法及设备、转换方法及计算机
CN1149496C (zh) 自适应视频信号运算处理装置
CN1296813C (zh) 浮点存储方法及浮点运算装置
CN1684058A (zh) 处理器
CN1678021A (zh) 图像处理设备和方法、记录媒体和程序
CN1975662A (zh) 算术运算单元、信息处理设备和算术运算方法
CN1287307A (zh) 高基除法器及方法
CN1920825A (zh) 在流设计工具中显示性能约束的方法和系统
CN1845213A (zh) 一种实现sms4密码算法中加解密处理的方法
CN1703724A (zh) 用于波特-达夫合成的背景色去除方法
CN101065725A (zh) 命令供给装置
CN101055566A (zh) 一种电子数据表的函数收集方法和装置
CN1543742A (zh) 运动检测装置、图像处理系统、运动检测方法、程序及记录介质
CN1031613A (zh) 二—十进制加法器电路
CN101031884A (zh) 处理器
CN1739094A (zh) 防止隐蔽信道攻击的整数除法方法
CN1723690A (zh) 像素插值电路、像素插值方法及图像读取装置
CN1627742A (zh) 解调装置和方法、解调装置的集成电路
CN1700203A (zh) 基2单路深度延时反馈的流水线构成fft处理器的实现方法
CN1306456C (zh) 图像处理方法和装置
CN101038673A (zh) 一种图像跟踪方法及系统
CN1227607C (zh) 表面计算机及使用表面计算机的计算方法
CN1671090A (zh) 一种计算平方根的装置
CN1248082C (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090805

Termination date: 20110406