新四季網

用於實現2的冪的浮點估計的系統與方法

2023-06-19 07:24:01 2

專利名稱:用於實現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=0A2=0A3=0A4=(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 0000111111111111111111111111111111110 00000000000 0000111111111101111111111011111111101 00000000000 0000111111111011111111110111111111100 00000000000 0000111111111001111111110011111111011 00000000001 0000111111111001111111110011111111010 00000000001 0000111111110111111111101111111111001 00000000001 0000111111110101111111101011111111000 00000000001 0000111111110011111111100111111110111 00000000010 0000111111110011111111100111111110110 00000000010 0000111111110001111111100011111110101 00000000010 0000111111101111111111011111111110100 00000000010 0000111111101101111111011011111110011 00000000011 0000111111101101111111011011111110010 00000000011 0000111111101011111111010111111110001 00000000011 0000111111101001111111010011111110000 00000000011 00001111111001111111110011
111111011110000000010000001111111001111111110011***110000000000000111111100001100111111111001111111101111111110000111111100001100111111111001111111101111111100000100000001001100011111011001111110101111111010000100000001001100011110111001111101101111111000000100000001001100011110011001111100101111110110000100000001001100011101111001111011101111110100000100000001001100011101011001111010101111110010000100000001001100011100111001111001101111110000000100000001001100011100011001111000***表1(續)-F(1到11) A(1到11) C(4到7) B-F(1到11) -結果(1到11)(-F+A+C)011011000110000000000010110110110001110000010011011011000100000000000010110110110001010000010010011011000010000000000010110110110000110000010001011011000000000000000010110110110000010000010000011010111110000000000010110110101111110000001111011010111100000000000010110110101111010000001110011010111010000000000010110110101110110000001101011010111000000000000010110110101110010000001100011010010110000000000010110110101101110000001011011010110100000000000010110110101101010000001010**
*00000000110 00000000011 0000 00000001001 0000000100100000000101 00000000010 0000 00000000111 0000000011100000000100 00000000010 0000 00000000110 0000000011000000000011 00000000001 0000 00000000100 0000000010000000000010 00000000001 0000 00000000011 0000000001100000000001 00000000000 0000 00000000001 0000000000100000000000 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)的導出,定義如下求補的小數結果比特1INV_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)ORINV_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的冪估計算法改進的應用,導致實時三維計算機圖形中較少的條紋和看上去更實際的鏡面明亮。
儘管已經結合附圖對本發明的實施例作了詳細描述,然而,這些細節並不旨在限制如所附權利要求中所要求的本發明的範圍。
權利要求
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個小數比特。
全文摘要
提供了一種用於在一個通用浮點處理器中實現2的冪的估計函數的方法和裝置。把一個浮點數存儲在一個存儲器中。浮點數包括一個符號比特、多個指數比特、以及一個擁有一個隱含比特和多個小數比特的尾數。響應一條浮點指令,根據所述指數比特,把所述尾數分割成一個整數部分和一個小數部分。通過把浮點數的所述整數部分分配為浮點結果的無偏指數,並通過利用把浮點數的小數部分轉換成浮點結果的小數部分的組合邏輯硬體,提供一個浮點結果。
文檔編號G06F7/552GK1577250SQ20041003354
公開日2005年2月9日 申請日期2004年4月6日 優先權日2003年6月26日
發明者戈登·C·福薩姆, 史蒂芬·J·施溫, 馬丁·S·施莫克勒, 馬修·R·塔布斯 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀