專利名稱:倒數(shù)估計(jì)計(jì)算方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及處理單元,并且特別涉及倒數(shù)估計(jì)計(jì)算方法和裝置。
背景技術(shù):
對(duì)于大輸入值的倒數(shù)估計(jì)計(jì)算可得到可能不能使用標(biāo)準(zhǔn)化浮點(diǎn)格式表示的非常小的數(shù)(例如非標(biāo)準(zhǔn)的數(shù))。執(zhí)行對(duì)于所述大輸入值的倒數(shù)估計(jì)計(jì)算的傳統(tǒng)系統(tǒng)將需要設(shè)計(jì)復(fù)雜度,所述設(shè)計(jì)復(fù)雜度導(dǎo)致了性能損失。另外或者可選地,執(zhí)行對(duì)于所述大輸入值的倒數(shù)估計(jì)計(jì)算的傳統(tǒng)系統(tǒng)可能提供不精確的結(jié)果。于是,期望一種用于執(zhí)行倒數(shù)估計(jì)計(jì)算的改進(jìn)的方法和裝置。
發(fā)明內(nèi)容
在本發(fā)明的第一方面中,提供一種使用浮點(diǎn)流水線邏輯的倒數(shù)估計(jì)計(jì)算的第一方法。所述第一方法包括以下步驟(1)接收當(dāng)被表示為浮點(diǎn)數(shù)時(shí)具有指數(shù)和尾數(shù)的、將對(duì)其執(zhí)行倒數(shù)估計(jì)計(jì)算的輸入值;(2)確定所述指數(shù)是否是多個(gè)預(yù)定的數(shù)中的一個(gè);以及(3)如果所述指數(shù)是所述多個(gè)預(yù)定的數(shù)中的一個(gè),則基于所述指數(shù)調(diào)整多個(gè)修正的尾數(shù)位中的至少一個(gè)(例如前導(dǎo)零預(yù)測器邏輯(LZA)內(nèi)部的尾數(shù)位)以及結(jié)果指數(shù),以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。
在本發(fā)明的第二方面中,提供一種用于預(yù)防倒數(shù)估計(jì)計(jì)算的下溢結(jié)果的第一裝置。所述第一裝置包括(1)適于耦合到浮點(diǎn)流水線邏輯的指數(shù)檢測邏輯;(2)適于耦合到所述浮點(diǎn)流水線邏輯的下溢預(yù)防邏輯;以及(3)適于耦合到所述浮點(diǎn)流水線邏輯的指數(shù)調(diào)整邏輯。所述裝置適于響應(yīng)于所述浮點(diǎn)流水線邏輯接收到當(dāng)被表示為浮點(diǎn)數(shù)時(shí)具有指數(shù)和尾數(shù)的、將對(duì)其執(zhí)行倒數(shù)估計(jì)計(jì)算的輸入值,而(a)確定所述指數(shù)是否是多個(gè)預(yù)定的數(shù)中的一個(gè);以及(b)如果所述指數(shù)是所述多個(gè)預(yù)定的數(shù)中的一個(gè),則基于所述指數(shù)調(diào)整多個(gè)修正的尾數(shù)位中的至少一個(gè)(例如LZA邏輯內(nèi)部的尾數(shù)位)以及結(jié)果指數(shù),以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。
在本發(fā)明的第三方面中,提供一種用于預(yù)防倒數(shù)估計(jì)計(jì)算的下溢結(jié)果的第一系統(tǒng)。所述第一系統(tǒng)包括(1)浮點(diǎn)流水線邏輯;以及(2)用于預(yù)防倒數(shù)估計(jì)計(jì)算的下溢結(jié)果的裝置,該裝置被耦合到所述浮點(diǎn)流水線邏輯,并且具有(a)指數(shù)檢測邏輯;(b)下溢預(yù)防邏輯;以及(c)指數(shù)調(diào)整邏輯。所述裝置適于響應(yīng)于所述浮點(diǎn)流水線邏輯接收到當(dāng)被表示為浮點(diǎn)數(shù)時(shí)具有指數(shù)和尾數(shù)的、將對(duì)其執(zhí)行倒數(shù)估計(jì)計(jì)算的輸入值,而(i)確定所述指數(shù)是否是多個(gè)預(yù)定的數(shù)中的一個(gè);以及(ii)如果所述指數(shù)是所述多個(gè)預(yù)定的數(shù)中的一個(gè),則基于所述指數(shù)調(diào)整多個(gè)修正的尾數(shù)位中的至少一個(gè)(例如LZA邏輯內(nèi)部的尾數(shù)位)以及結(jié)果指數(shù),以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。根據(jù)本發(fā)明的這些和其它方面的許多其它方面被提供。
從下面的詳細(xì)描述、權(quán)利要求和附圖中,本發(fā)明的其它特征和方面將變得更加顯而易見。
圖1是根據(jù)本發(fā)明實(shí)施例的用于倒數(shù)估計(jì)計(jì)算的系統(tǒng)的框圖。
圖2示出了由根據(jù)本發(fā)明實(shí)施例的系統(tǒng)執(zhí)行的倒數(shù)估計(jì)計(jì)算方法的流程圖。
圖3示出了由根據(jù)本發(fā)明實(shí)施例的系統(tǒng)執(zhí)行的第一示例性倒數(shù)估計(jì)計(jì)算。
圖4示出了由根據(jù)本發(fā)明實(shí)施例的系統(tǒng)執(zhí)行的第二示例性倒數(shù)估計(jì)計(jì)算。
具體實(shí)施例方式
倒數(shù)估計(jì)指令是可以計(jì)算對(duì)于值1/x的估計(jì)的微處理器指令,其中x是輸入值。由PowerPC使用的fres(文件檢索和編輯系統(tǒng))指令和由PowerPC VMX使用的vrefp指令是倒數(shù)估計(jì)指令的例子。Power PC是由本方法和裝置的受讓人NY Armonk的IBM公司制造的。所述示例性倒數(shù)估計(jì)指令典型地可以被Newton-Rhapson算法使用,并且作為對(duì)于浮點(diǎn)除指令的快速替換。所述Newton-Rhapson算法可被廣泛使用,并且對(duì)于在其中性能被高度重視的計(jì)算密集型軟件應(yīng)用是重要的。根據(jù)IEEE754,浮點(diǎn)數(shù)可以被表示為2指數(shù)×尾數(shù),其中,所述尾數(shù)可以被表示為“隱含位”.“分?jǐn)?shù)位”。非標(biāo)準(zhǔn)的數(shù)可以是具有偏移指數(shù)域?yàn)?和非零的分?jǐn)?shù)位域的數(shù)。通過使用傳統(tǒng)系統(tǒng),某些倒數(shù)估計(jì)計(jì)算可產(chǎn)生不可被表示為使用IEEE754單精度浮點(diǎn)表示法的標(biāo)準(zhǔn)浮點(diǎn)數(shù)的非常小的數(shù)(例如非標(biāo)準(zhǔn)的數(shù))。例如,在標(biāo)準(zhǔn)化過程中,所述傳統(tǒng)系統(tǒng)可對(duì)浮點(diǎn)數(shù)的分?jǐn)?shù)位進(jìn)行移位(例如向左),并且相應(yīng)地將所述浮點(diǎn)數(shù)的指數(shù)減小到標(biāo)準(zhǔn)IEEE754表示法所允許的數(shù)字之下。
于是,本發(fā)明可提供改進(jìn)的倒數(shù)估計(jì)計(jì)算方法和裝置。更具體地,為計(jì)算對(duì)于預(yù)定的(例如預(yù)定為大的)輸入值(其可被表示為2指數(shù)×尾數(shù))的倒數(shù)估計(jì),本發(fā)明可調(diào)整多個(gè)尾數(shù)位中的一個(gè),其中,該尾數(shù)位可能已被浮點(diǎn)流水線的乘法器和/或?qū)?zhǔn)器修改過,并且將被浮點(diǎn)流水線的前導(dǎo)零預(yù)測器邏輯所處理,以便所述尾數(shù)看來比其實(shí)際更大。通過該方式,當(dāng)移位量被從所述前導(dǎo)零預(yù)測器(LZA)邏輯輸出到標(biāo)準(zhǔn)化邏輯時(shí),所述標(biāo)準(zhǔn)化邏輯不會(huì)試圖將所述尾數(shù)的分?jǐn)?shù)位移位太多,并且由此不會(huì)試圖基于所述輸入值將關(guān)聯(lián)于輸出值的結(jié)果指數(shù)減少到超過所述浮點(diǎn)表示法允許的下限。因此,本發(fā)明可以避免下溢結(jié)果(例如,乘積值太小而不能用得自大輸入值的標(biāo)準(zhǔn)浮點(diǎn)數(shù)來表示)。相反,所述標(biāo)準(zhǔn)化邏輯可將所述已調(diào)整的尾數(shù)位轉(zhuǎn)發(fā)到結(jié)果邏輯,而不會(huì)通過基于與所述輸入值關(guān)聯(lián)的指數(shù)而將結(jié)果指數(shù)減小到超過所述浮點(diǎn)標(biāo)準(zhǔn)的限制而將分?jǐn)?shù)位移位到下溢之中。此外,本發(fā)明可利用邏輯來強(qiáng)制關(guān)聯(lián)于所述大輸入值的指數(shù)為零,以及將所述指數(shù)值輸出到結(jié)果邏輯?;谕ㄟ^結(jié)果邏輯被輸入的所述值,結(jié)果邏輯可以計(jì)算并且輸出對(duì)于大輸入值的精確的倒數(shù)估計(jì)。
在某些實(shí)施例中,或邏輯可以被用于強(qiáng)制(例如LZA邏輯內(nèi)部的)所述多個(gè)尾數(shù)位中的一個(gè)進(jìn)行調(diào)整。進(jìn)行調(diào)整的LZA尾數(shù)位的選擇可以基于所述輸入值的指數(shù)。
在至少一個(gè)實(shí)施例中,如果本發(fā)明的邏輯確定所述輸入值并不是大到足以導(dǎo)致下溢,則所述邏輯可不調(diào)整(例如LZA邏輯內(nèi)部的)尾數(shù)位,并且可不像上述那樣強(qiáng)制所述輸入值的指數(shù)為零。
通過該方式,本發(fā)明可以提供改進(jìn)的倒數(shù)估計(jì)計(jì)算方法和裝置。
圖1是根據(jù)本發(fā)明實(shí)施例的用于倒數(shù)估計(jì)計(jì)算的系統(tǒng)的框圖。參考圖1,系統(tǒng)100可以包括或可以是例如微處理器的中央處理單元(CPU),該中央處理單元適于執(zhí)行各種數(shù)據(jù)處理和數(shù)學(xué)任務(wù)。在某些實(shí)施例中,本發(fā)明可以被并入由本發(fā)明的受讓人NY Armonk的IBM公司制造的單元(Cell)處理器中。CPU 100可包括適于執(zhí)行對(duì)浮點(diǎn)數(shù)的計(jì)算的浮點(diǎn)數(shù)學(xué)單元(FPU)102。與傳統(tǒng)FPU類似,F(xiàn)PU 102可包括浮點(diǎn)流水線邏輯104。所述浮點(diǎn)流水線邏輯104可適于對(duì)于可以被表示為浮點(diǎn)數(shù)的輸入值計(jì)算倒數(shù)估計(jì)。所述浮點(diǎn)流水線邏輯104可包括適于對(duì)于所述輸入值執(zhí)行乘法運(yùn)算的乘法器邏輯106。例如,所述乘法器邏輯106可適于用例如斜率值(在下面描述)的另一值乘以所述輸入值的分?jǐn)?shù)部分。對(duì)準(zhǔn)器邏輯108可被耦合到所述乘法器邏輯106,并從所述乘法器邏輯106接收輸入。所述對(duì)準(zhǔn)器邏輯108可適于在需要時(shí)對(duì)由所述對(duì)準(zhǔn)器108輸入的值進(jìn)行移位和對(duì)準(zhǔn)。例如,所述對(duì)準(zhǔn)器邏輯108(在下面描述)可以基于加法器邏輯109的輸入的指數(shù)之間的差值,對(duì)于所述加法器邏輯109的一個(gè)輸入的分?jǐn)?shù)位進(jìn)行移位。通過該方式,對(duì)準(zhǔn)器邏輯108可以確保加法器邏輯109的所述輸入的分?jǐn)?shù)位被正確地對(duì)準(zhǔn)以進(jìn)行相加(例如,以便所述加數(shù)的位的位置分別具有相同的權(quán)重)。
通過該方式,乘法器邏輯106和對(duì)準(zhǔn)器邏輯108可以修正所述輸入值的多個(gè)尾數(shù)位中的一個(gè)或多個(gè)。加法器邏輯109可適于對(duì)由所述邏輯109輸入的值(例如兩個(gè)分?jǐn)?shù)加數(shù))進(jìn)行相加。下溢預(yù)防邏輯(在下面描述)可被耦合到對(duì)準(zhǔn)器邏輯108的輸出。前導(dǎo)零預(yù)測器(LZA)邏輯110可被耦合到所述下溢預(yù)防邏輯的輸出。所述LZA邏輯110可適于確定由所述邏輯110輸入的數(shù)據(jù)為標(biāo)準(zhǔn)化所述結(jié)果而需要被移位的量。例如,所述LZA邏輯110可適于預(yù)測所述和的哪個(gè)位的位置將包括最高有效位。盡管所述加法器邏輯109和LZA邏輯110被示為可以并行地對(duì)數(shù)據(jù)進(jìn)行運(yùn)算的集成邏輯,然而應(yīng)當(dāng)理解,在某些實(shí)施例中,所述加法器邏輯可以與所述LZA邏輯分離,并且所述邏輯可順序地進(jìn)行運(yùn)算。
所述浮點(diǎn)流水線邏輯104可包括被耦合到乘法器邏輯106和加法器邏輯109的倒數(shù)估計(jì)表查找邏輯112。所述倒數(shù)估計(jì)表查找邏輯112可適于接收所述輸入值作為數(shù)據(jù),從倒數(shù)估計(jì)表113訪問數(shù)據(jù),并且將所述數(shù)據(jù)的第一部分(例如斜率數(shù)據(jù))輸出到乘法器邏輯106,以及將所述數(shù)據(jù)的第二部分(例如偏移值)輸出到加法器邏輯109。所述斜率和偏移值可結(jié)合所述輸入值被用于允許所述乘-加邏輯執(zhí)行線性插值,以產(chǎn)生所述倒數(shù)函數(shù)的相當(dāng)精確的估計(jì)。
此外,標(biāo)準(zhǔn)化邏輯114可被耦合到加法器邏輯109和LZA邏輯110的輸出。所述標(biāo)準(zhǔn)化邏輯114可適于對(duì)尾數(shù)的位進(jìn)行移位(例如向左),并且相應(yīng)地減小關(guān)聯(lián)于所述輸入值的指數(shù)。例如,標(biāo)準(zhǔn)化邏輯114可以對(duì)尾數(shù)分?jǐn)?shù)位進(jìn)行移位,以便標(biāo)準(zhǔn)浮點(diǎn)數(shù)中的最高有效位可以位于標(biāo)準(zhǔn)的隱含位的位置。結(jié)果邏輯116可被耦合到所述標(biāo)準(zhǔn)化邏輯114。所述結(jié)果邏輯116可適于強(qiáng)制某些特例情況的結(jié)果,例如無窮、零、非數(shù)字等。在某些實(shí)施例中,所述結(jié)果邏輯可以包括適于執(zhí)行舍入運(yùn)算的舍入邏輯。對(duì)于所述輸入值的倒數(shù)估計(jì)計(jì)算的結(jié)果可從所述結(jié)果邏輯116被輸出。
然而,與傳統(tǒng)FPU不同,所述FPU 102可包括適于預(yù)防倒數(shù)估計(jì)計(jì)算的下溢結(jié)果的邏輯118。所述倒數(shù)估計(jì)下溢預(yù)防邏輯118可包括被耦合到浮點(diǎn)流水線邏輯104的指數(shù)檢測邏輯120。所述指數(shù)檢測邏輯120可適于確定所述輸入值的指數(shù)是否是多個(gè)預(yù)定的(例如大的)數(shù)中的一個(gè)。例如,所述指數(shù)檢測邏輯120可以確定關(guān)聯(lián)于所述輸入值的指數(shù)是否是126或127(盡管所述指數(shù)檢測邏輯120可以確定所述指數(shù)是否是更大或更小量的數(shù)和/或不同數(shù)中的一個(gè))。當(dāng)所述輸入值的指數(shù)是這些大數(shù)中的一個(gè)時(shí),所述倒數(shù)估計(jì)計(jì)算的結(jié)果可能是非標(biāo)準(zhǔn)數(shù),所述非標(biāo)準(zhǔn)數(shù)中的某些無法使用依據(jù)IEEE754的標(biāo)準(zhǔn)浮點(diǎn)數(shù)來表示。
此外,倒數(shù)估計(jì)下溢預(yù)防邏輯118可以包括被耦合到浮點(diǎn)流水線邏輯104的下溢預(yù)防邏輯122。所述下溢預(yù)防邏輯122可適于調(diào)整將要或者已經(jīng)被所述LZA邏輯110處理的多個(gè)位中的一個(gè)。更具體地,所述下溢預(yù)防邏輯122可適于調(diào)整多個(gè)尾數(shù)分?jǐn)?shù)位(例如之前被所述乘法器和/或?qū)?zhǔn)器邏輯106、108修正過)中的最高有效位左邊的第一或第二位中的一個(gè),所述尾數(shù)分?jǐn)?shù)位可位于所述LZA邏輯110的內(nèi)部。另外,所述倒數(shù)估計(jì)下溢預(yù)防邏輯118可以包括指數(shù)強(qiáng)制邏輯124,所述指數(shù)強(qiáng)制邏輯124適于當(dāng)輸入值的指數(shù)是多個(gè)大數(shù)中的一個(gè)時(shí),基于所述輸入值調(diào)整輸出值的指數(shù)。例如,當(dāng)輸入值的(例如無偏移的)指數(shù)是126或127時(shí),所述指數(shù)強(qiáng)制邏輯122可把所述輸出值指數(shù)域調(diào)整為零。通過該方式,所述倒數(shù)估計(jì)下溢預(yù)防邏輯118可適于預(yù)防浮點(diǎn)流水線邏輯104的標(biāo)準(zhǔn)化邏輯114將尾數(shù)分?jǐn)?shù)位移位太多并相應(yīng)地減小指數(shù),以致導(dǎo)致所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。通過該方式,F(xiàn)PU 102可以產(chǎn)生在特定精度范圍內(nèi)的對(duì)于函數(shù)1/輸入值的估計(jì)。
所述倒數(shù)估計(jì)下溢預(yù)防邏輯118可以例如經(jīng)由組合和/或時(shí)序邏輯或者作為專用集成電路(ASIC)被實(shí)現(xiàn)。下面參考圖1并參考圖2描述用于倒數(shù)估計(jì)計(jì)算的系統(tǒng)100的操作,其中,圖2示出了由根據(jù)本發(fā)明實(shí)施例的系統(tǒng)100執(zhí)行的倒數(shù)估計(jì)計(jì)算方法的流程圖。參考圖2,在步驟202,所述方法200開始。所述浮點(diǎn)流水線邏輯104可以接收將對(duì)其執(zhí)行倒數(shù)估計(jì)計(jì)算的輸入值。所述輸入值可依據(jù)IEEE754被表示為包括指數(shù)和尾數(shù)的單精度浮點(diǎn)數(shù)。更具體地,所述輸入值可被提供給乘法器邏輯106和倒數(shù)估計(jì)表查找邏輯112。作為響應(yīng),在步驟204,關(guān)聯(lián)于所述輸入值的斜率和偏移的值可通過執(zhí)行表查找來確定。更具體地,所述倒數(shù)估計(jì)表查找邏輯112可基于所述輸入值訪問倒數(shù)估計(jì)表113,以確定所述斜率和偏移。
在步驟206,所述輸入值的多個(gè)部分可與所述斜率相乘,并與所述偏移相加。更具體地,所述斜率可被提供給乘法器邏輯106,并且乘法器邏輯106可用所述斜率乘以所述輸入值的多個(gè)部分,并把所述結(jié)果值輸出到對(duì)準(zhǔn)器邏輯108。對(duì)準(zhǔn)器邏輯108可在必要時(shí)對(duì)所述結(jié)果值向左或右進(jìn)行移位。通過該方式,浮點(diǎn)流水線邏輯104可以修正所述輸入值的多個(gè)尾數(shù)分?jǐn)?shù)位中的一個(gè)或多個(gè),從而產(chǎn)生對(duì)準(zhǔn)的值。所述對(duì)準(zhǔn)的值可被輸出到加法器邏輯109。加法器邏輯109可處理所述對(duì)準(zhǔn)的值。更具體地,加法器邏輯109可把由倒數(shù)估計(jì)表查找邏輯112提供的所述偏移加到所述對(duì)準(zhǔn)的值中。
在步驟208,倒數(shù)估計(jì)下溢預(yù)防邏輯118可確定關(guān)聯(lián)于所述輸入值的指數(shù)是否是第一值。更具體地,指數(shù)檢測邏輯120可確定關(guān)聯(lián)于所述輸入值的指數(shù)是否是可以大到足以導(dǎo)致傳統(tǒng)FPU輸出下溢結(jié)果的第一值。例如,指數(shù)檢測邏輯120可確定關(guān)聯(lián)于所述輸入值的指數(shù)是否是126(例如通過使用比較邏輯)。如果是,則步驟210可被執(zhí)行。在步驟210,下溢預(yù)防邏輯122可調(diào)整將被發(fā)送到LZA邏輯110的所述對(duì)準(zhǔn)的值中的至少一個(gè)位,以產(chǎn)生修正的對(duì)準(zhǔn)值。更具體地,下溢預(yù)防邏輯122可調(diào)整包括在(或?qū)⒈话l(fā)送到)所述LZA邏輯110中的所述對(duì)準(zhǔn)值的多個(gè)修正的尾數(shù)分?jǐn)?shù)位中的一個(gè),以使得所述倒數(shù)估計(jì)的下溢結(jié)果可以被避免。例如,如果所述指數(shù)是第一值,則所述的修正尾數(shù)位的最高有效分?jǐn)?shù)位左邊的第一位(例如位于左邊第一位的位置)可被調(diào)整。通過該方式,基于所述修正的對(duì)準(zhǔn)值被提供給LZA邏輯110進(jìn)行處理,倒數(shù)估計(jì)下溢預(yù)防邏輯118可導(dǎo)致LZA邏輯110確定為計(jì)算所述輸入值的倒數(shù)估計(jì),所述修正的對(duì)準(zhǔn)值幾乎不需要或完全不需要移位。所述LZA邏輯110可以向標(biāo)準(zhǔn)化邏輯114提供關(guān)于所述修正的對(duì)準(zhǔn)值是否需要移位的信息。下溢預(yù)防邏輯122可包括例如或邏輯的用于調(diào)整所述位(例如,從邏輯“0”到邏輯“1”,或反之亦然)的邏輯。
此后,步驟212可被執(zhí)行。在步驟212,所述修正的對(duì)準(zhǔn)值可被標(biāo)準(zhǔn)化,并且關(guān)聯(lián)于輸入值的指數(shù)可被調(diào)整。更具體地,標(biāo)準(zhǔn)化邏輯114可接收所述修正的對(duì)準(zhǔn)值和所述移位信息,并且調(diào)整所述值,以便邏輯“1”可位于所述尾數(shù)的隱含位的位置中。所述標(biāo)準(zhǔn)化的值可從標(biāo)準(zhǔn)化邏輯114被輸出,并被提供給所述結(jié)果邏輯以進(jìn)行處理。結(jié)果邏輯116可強(qiáng)制某些特例結(jié)果,例如無窮、零、非數(shù)字等。此外,倒數(shù)估計(jì)下溢預(yù)防邏輯118可基于所述輸入值調(diào)整關(guān)聯(lián)于輸出值的指數(shù)。更具體地,指數(shù)強(qiáng)制邏輯124可把關(guān)聯(lián)于所述輸出值的指數(shù)域調(diào)整為二進(jìn)制的0(對(duì)于單精度浮點(diǎn)為0b00000000)。通過該方式,所述FPU 102可以對(duì)在使用傳統(tǒng)FPU時(shí)可以大到足以導(dǎo)致倒數(shù)估計(jì)下溢結(jié)果的輸入值執(zhí)行倒數(shù)估計(jì),并輸出非標(biāo)準(zhǔn)數(shù)。從由本方法和裝置執(zhí)行的倒數(shù)估計(jì)計(jì)算得出的所述非標(biāo)準(zhǔn)數(shù)可非常接近所述輸入值的實(shí)際倒數(shù)計(jì)算。由本方法和裝置產(chǎn)生的倒數(shù)估計(jì)的精度的細(xì)節(jié)在下面描述。
此后,步驟214可被執(zhí)行。在步驟214,方法200結(jié)束。
可選地,如果在步驟208,倒數(shù)估計(jì)下溢預(yù)防邏輯118確定關(guān)聯(lián)于所述輸入值的指數(shù)不是所述第一值,則步驟216可被執(zhí)行。在步驟216,倒數(shù)估計(jì)下溢預(yù)防邏輯118可確定關(guān)聯(lián)于所述輸入值的指數(shù)是否是第二值。更具體地,指數(shù)檢測邏輯120可確定關(guān)聯(lián)于所述輸入值的指數(shù)是否是可以大到足以導(dǎo)致傳統(tǒng)FPU 102輸出下溢結(jié)果的第二值。例如,指數(shù)檢測單元120可確定關(guān)聯(lián)于所述輸入值的指數(shù)是否是127(例如通過使用比較邏輯)。如果是,則步驟218可被執(zhí)行。在步驟218,下溢預(yù)防邏輯122可調(diào)整所述對(duì)準(zhǔn)的值中的至少一位,以產(chǎn)生修正的對(duì)準(zhǔn)值。更具體地,下溢預(yù)防邏輯122可調(diào)整包括在所述結(jié)果值中的(例如可以在LZA邏輯110內(nèi)部的)多個(gè)修正尾數(shù)分?jǐn)?shù)位中的一個(gè),以致所述倒數(shù)估計(jì)的下溢結(jié)果可以被避免。例如,如果所述指數(shù)是所述第二值,則所述修正的尾數(shù)位的最高有效分?jǐn)?shù)位左邊的第二位(例如向左兩個(gè)位的位置)可被調(diào)整。通過該方式,基于所述修正的對(duì)準(zhǔn)值被提供給LZA邏輯110進(jìn)行處理,倒數(shù)估計(jì)下溢預(yù)防邏輯118可使得LZA邏輯110確定為計(jì)算所述輸入值的倒數(shù)估計(jì),所述修正的對(duì)準(zhǔn)值幾乎不需要或完全不需要移位。所述LZA邏輯110可向標(biāo)準(zhǔn)化邏輯114提供關(guān)于所述修正的對(duì)準(zhǔn)值是否需要移位的信息。下溢預(yù)防邏輯122可包括例如或邏輯的用于調(diào)整所述位(例如,從邏輯“0”到邏輯“1”,或反之亦然)的邏輯。
此后,步驟212和214(如上面所描述的)可被執(zhí)行。如所指出的,在步驟214,方法200結(jié)束。
可選地,如果在步驟216,倒數(shù)估計(jì)下溢預(yù)防邏輯118確定關(guān)聯(lián)于所述輸入值的指數(shù)不是所述第二值,則步驟220可被執(zhí)行。在步驟220,倒數(shù)估計(jì)下溢預(yù)防邏輯118在計(jì)算所述輸入值的倒數(shù)估計(jì)時(shí),可不調(diào)整所述對(duì)準(zhǔn)值,并且可不調(diào)整關(guān)聯(lián)于所述輸入值的指數(shù)。更具體地,由于FPU 102確定關(guān)聯(lián)于所述輸入值的指數(shù)不是所述第一和/或第二值,所以所述輸入值并不會(huì)大到足以導(dǎo)致倒數(shù)估計(jì)計(jì)算的下溢。因此,所述FPU 102的乘法器邏輯106、對(duì)準(zhǔn)器邏輯108、加法器邏輯116、LZA邏輯110、標(biāo)準(zhǔn)化邏輯114和結(jié)果邏輯116可用與傳統(tǒng)FPU類似的方式處理所述輸入值并輸出所述結(jié)果。
此后,步驟214可被執(zhí)行。在步驟214,所述方法結(jié)束。
通過使用計(jì)算倒數(shù)估計(jì)的本方法,對(duì)輸入值的倒數(shù)估計(jì)可產(chǎn)生相當(dāng)精確的非標(biāo)準(zhǔn)結(jié)果。被加法器邏輯和/或LZA邏輯處理的多個(gè)位(例如尾數(shù)分?jǐn)?shù)位)中的一個(gè)可被調(diào)整,以便所述多個(gè)位可以被移動(dòng)到產(chǎn)生精確的非標(biāo)準(zhǔn)結(jié)果的各個(gè)位的位置,并且以便本裝置的標(biāo)準(zhǔn)化邏輯114不會(huì)導(dǎo)致所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。
圖3示出了由根據(jù)本發(fā)明實(shí)施例的系統(tǒng)100執(zhí)行的第一示例性倒數(shù)估計(jì)計(jì)算。參考圖3,系統(tǒng)100可接收0x7E800000(例如8.5070591730234616e+37)作為輸出。所述十六進(jìn)制值可以被表示為具有指數(shù)和包括隱含位和分?jǐn)?shù)位的尾數(shù)的單精度浮點(diǎn)數(shù)(例如,表示為2指數(shù)ד隱含位”.“分?jǐn)?shù)位”)2126×1.0。所述十六進(jìn)制值可以被表示為二進(jìn)制的01111110100000000000000000000000,其中,11111101代表所述偏移指數(shù),而00000000000000000000000代表所述尾數(shù)的分?jǐn)?shù)位。所述分?jǐn)?shù)位可通過倒數(shù)估計(jì)表查找邏輯112被輸入,所述倒數(shù)估計(jì)表查找邏輯112可基于所述輸入的分?jǐn)?shù)位輸出斜率和偏移值。更具體地,所述斜率可從倒數(shù)估計(jì)表查找邏輯112被輸出,并且通過乘法器邏輯106被輸入。此外,所述偏移可從倒數(shù)估計(jì)表查找邏輯112被輸出,并且通過加法器邏輯109被輸入。
所述單精度浮點(diǎn)數(shù)的指數(shù)部分(例如2指數(shù))還可被提供給乘法器邏輯106作為輸入?;谒鲚斎耄朔ㄆ鬟壿?06可用所述斜率乘以所述輸入值的多個(gè)部分(例如所述分?jǐn)?shù)位),以產(chǎn)生結(jié)果值。所述結(jié)果值可從乘法器106被輸出,并且通過對(duì)準(zhǔn)器邏輯108被輸入。對(duì)準(zhǔn)器邏輯108可在必要時(shí)對(duì)所述結(jié)果值向左或右進(jìn)行移位,由此修正所述輸入值的多個(gè)尾數(shù)分?jǐn)?shù)位中的一個(gè)或更多,從而產(chǎn)生對(duì)準(zhǔn)值。
所述對(duì)準(zhǔn)值可從對(duì)準(zhǔn)器邏輯108被輸出,并且通過加法器邏輯109被輸入。加法器邏輯109可用所述偏移值與所述對(duì)準(zhǔn)值相加,以產(chǎn)生已加值。如所示出的,所述已加值的第一位到第三位(例如位0-2)可以是“001”,其中,位2可代表所述已加值的最高有效分?jǐn)?shù)位。所述對(duì)準(zhǔn)值可從對(duì)準(zhǔn)器邏輯108被輸出,并且通過LZA邏輯110(例如經(jīng)由下溢預(yù)防邏輯)被輸入以進(jìn)行處理。
然而,盡管所述浮點(diǎn)流水線邏輯104的邏輯計(jì)算所述已加值,但所述指數(shù)可通過指數(shù)檢測邏輯120被輸入,所述指數(shù)檢測邏輯120可以確定關(guān)聯(lián)于所述輸入值的指數(shù)是否高到足以可能導(dǎo)致傳統(tǒng)FPU的倒數(shù)估計(jì)產(chǎn)生溢出值。更具體地,指數(shù)檢測邏輯120可確定關(guān)聯(lián)于所述輸入值的指數(shù)是否是第一或第二值(例如126或127)。指數(shù)檢測邏輯120可向指數(shù)強(qiáng)制邏輯124提供所述發(fā)現(xiàn)。
在所述第一示例性倒數(shù)估計(jì)計(jì)算中,指數(shù)檢測邏輯120確定關(guān)聯(lián)于所述輸入值的指數(shù)是所述第一值(例如126)。因此,下溢預(yù)防邏輯122可把所述已加值的最高有效分?jǐn)?shù)位左邊的位(例如位1)從邏輯“0”調(diào)整為邏輯“1”,以產(chǎn)生修正的已加值。例如,所述修正的已加值的分?jǐn)?shù)位可以是11111111111110000000000。所述修正的已加值可被輸入到LZA邏輯110以進(jìn)行處理。所述修正的已加值可向LZA邏輯110呈現(xiàn)為幾乎不需要或完全不需要移位,并且相應(yīng)地,幾乎不需要或完全不需要減小所述指數(shù)值。LZA邏輯110可把所需要的移位量輸出到標(biāo)準(zhǔn)化邏輯114。
基于所述移位量和所述已加值,標(biāo)準(zhǔn)化邏輯114可輸出所述已加值的標(biāo)準(zhǔn)化版本,所述標(biāo)準(zhǔn)化版本可通過結(jié)果邏輯116被輸入。此外,基于來自指數(shù)檢測邏輯120的所述輸出,指數(shù)強(qiáng)制邏輯124可調(diào)整關(guān)聯(lián)于所述輸入值的指數(shù)以產(chǎn)生調(diào)整的指數(shù)值,所述調(diào)整的指數(shù)值可從所述指數(shù)強(qiáng)制邏輯被輸出并且通過結(jié)果邏輯116被輸入。所述調(diào)整的指數(shù)值域可以是0,其代表指數(shù)-126。基于所述已加值的標(biāo)準(zhǔn)化版本和所述調(diào)整的指數(shù)值,如果必要,所述結(jié)果邏輯強(qiáng)制某些特例結(jié)果,例如無窮、零、非數(shù)字等,并且輸出所述輸入值的倒數(shù)估計(jì)。例如,對(duì)于例如2126×1.0的可導(dǎo)致傳統(tǒng)FPU倒數(shù)估計(jì)計(jì)算產(chǎn)生下溢的足夠大的輸入值,系統(tǒng)100可計(jì)算1.1753508578595406e-38的倒數(shù)估計(jì)。所述倒數(shù)估計(jì)計(jì)算與2-126×1.0的實(shí)際或準(zhǔn)確結(jié)果(例如1.1754943508222875e-38)相比的相對(duì)誤差是-0.00012207031250003296,其絕對(duì)誤差為-1.4349296274690001e-42。所述絕對(duì)誤差是所述實(shí)際和估計(jì)值之間的差值。
圖4示出了由根據(jù)本發(fā)明實(shí)施例的系統(tǒng)執(zhí)行的第二示例性倒數(shù)估計(jì)計(jì)算。參考圖4,系統(tǒng)100可接收0x7F000000作為輸入。所述十六進(jìn)制值可以被表示為單精度浮點(diǎn)數(shù)2127×1.0。所述十六進(jìn)制值可以被表示為二進(jìn)制的01111111000000000000000000000000,其中11111110代表所述偏移指數(shù),而00000000000000000000000代表所述尾數(shù)的分?jǐn)?shù)位。所述分?jǐn)?shù)位可通過倒數(shù)估計(jì)表查找邏輯112被輸入,所述倒數(shù)估計(jì)表查找邏輯112可基于所述輸入的分?jǐn)?shù)位輸出斜率和偏移值。更具體地,所述斜率值可從倒數(shù)估計(jì)表查找邏輯112被輸出,并且通過乘法器邏輯106被輸入。此外,所述偏移可從倒數(shù)估計(jì)表查找邏輯112被輸出,并且通過加法器邏輯109被輸入。
如所指出的,所述單精度浮點(diǎn)數(shù)的指數(shù)部分(例如2指數(shù))還可被提供給乘法器邏輯106作為輸入?;谒鲚斎耄朔ㄆ鬟壿?06可用所述斜率乘以所述輸入值的多個(gè)部分(例如所述分?jǐn)?shù)位)以產(chǎn)生結(jié)果值。所述結(jié)果值可從乘法器106被輸出,并通過對(duì)準(zhǔn)器邏輯108被輸入。對(duì)準(zhǔn)器邏輯108可在必要時(shí)對(duì)所述結(jié)果值向左或右進(jìn)行移位,由此修正所述輸入值的多個(gè)尾數(shù)分?jǐn)?shù)位中的一個(gè)或更多,從而產(chǎn)生對(duì)準(zhǔn)值。所述對(duì)準(zhǔn)值可從對(duì)準(zhǔn)器邏輯108被輸出,并通過加法器邏輯109被輸入。加法器邏輯109可用所述偏移值與所述對(duì)準(zhǔn)值相加,從而產(chǎn)生已加值。如所示出的,所述已加值的第一位到第三位(例如位0-2)可以是“001”,其中位2可代表所述已加值的最高有效位。所述對(duì)準(zhǔn)值可從對(duì)準(zhǔn)器邏輯108被輸出,并且通過LZA邏輯110(例如經(jīng)由下溢預(yù)防邏輯)被輸入以進(jìn)行處理。
此外,盡管浮點(diǎn)流水線邏輯104的邏輯計(jì)算所述已加值,但所述指數(shù)可通過指數(shù)檢測邏輯120被輸入,所述指數(shù)檢測邏輯120可以確定關(guān)聯(lián)于所述輸入值的指數(shù)是否高到足以可能導(dǎo)致傳統(tǒng)FPU的倒數(shù)估計(jì)產(chǎn)生下溢值。更具體地,指數(shù)檢測邏輯120可以確定關(guān)聯(lián)于所述輸入值的指數(shù)是否是第一或第二值(例如126或127)。指數(shù)檢測邏輯120可向指數(shù)強(qiáng)制邏輯124提供所述發(fā)現(xiàn)。
在所述第二示例性倒數(shù)估計(jì)計(jì)算中,指數(shù)檢測邏輯120確定關(guān)聯(lián)于所述輸入值的指數(shù)是所述第二值(例如127),下溢預(yù)防邏輯122可把所述已加值的最高有效分?jǐn)?shù)位左邊的位(例如位0)從邏輯“0”調(diào)整為邏輯“1”,以產(chǎn)生修正的已加值。例如,所述修正的已加值的分?jǐn)?shù)位可以是01111111111111000000000。所述修正的已加值可被輸入到LZA邏輯110以進(jìn)行處理。所述修正的已加值可向所述LZA邏輯110呈現(xiàn)為幾乎不需要或完全不需要移位,并且相應(yīng)地,幾乎不需要或完全不需要減小所述指數(shù)值。所述LZA邏輯110可把所述需要的移位量輸出到標(biāo)準(zhǔn)化邏輯114。
基于所述移位量和所述已加值,標(biāo)準(zhǔn)化邏輯114可以輸出所述已加值的標(biāo)準(zhǔn)化版本,所述標(biāo)準(zhǔn)化版本可通過結(jié)果邏輯116被輸入。此外,基于來自指數(shù)檢測邏輯120的輸出,指數(shù)強(qiáng)制邏輯124可調(diào)整關(guān)聯(lián)于所述輸入值的指數(shù),以產(chǎn)生調(diào)整的指數(shù)值,所述調(diào)整的指數(shù)值可從指數(shù)強(qiáng)制邏輯124被輸出并通過結(jié)果邏輯116被輸入。所述調(diào)整的指數(shù)值可以是是偏移的0、無偏移的-126?;谒鲆鸭又档臉?biāo)準(zhǔn)化版本以及所述調(diào)整的指數(shù)值,結(jié)果邏輯116可計(jì)算所述輸入值的倒數(shù)估計(jì)。例如,對(duì)于例如2127×1.0的可使得傳統(tǒng)FPU倒數(shù)估計(jì)計(jì)算產(chǎn)生下溢的足夠大的輸入值,系統(tǒng)100可計(jì)算0x003FFE00的倒數(shù)估計(jì)。所述倒數(shù)估計(jì)計(jì)算與2127×1.0的準(zhǔn)確結(jié)果相比的相對(duì)誤差是0.000122070311865。
作為另一個(gè)例子,由本方法和裝置得到的倒數(shù)估計(jì)仿真結(jié)果如下輸入7E83FFFE=8.7729027439394844e+37結(jié)果007C1CF0=1.1397982342614628e-38實(shí)際007C1F0A=1.1398736241188435e-38相對(duì)誤差-6.6138785726337532e-05絕對(duì)誤差-7.5389857380699995e-43輸入7E81FFFF=8.639980958481473e+37結(jié)果007E0D70=1.157609298262417e-38實(shí)際007E07E1=1.1564098934909436e-38相對(duì)誤差0.00017228535248818512絕對(duì)誤差1.9940477147339999e-42如由所述第一和第二示例性倒數(shù)估計(jì)計(jì)算所示出的,相對(duì)最小的控制邏輯(例如所述倒數(shù)估計(jì)下溢預(yù)防邏輯118)可被耦合到和/或包括在所述浮點(diǎn)流水線邏輯104中。所述控制邏輯可被用于基本上“欺騙”標(biāo)準(zhǔn)化邏輯114,使其認(rèn)為關(guān)聯(lián)于將對(duì)其執(zhí)行倒數(shù)估計(jì)的輸入值的尾數(shù)不需要被移位。邏輯(例如或邏輯)可被用來基于關(guān)聯(lián)于所述輸入值的指數(shù)值(例如126或127)調(diào)整被LZA邏輯110處理的多個(gè)(例如兩個(gè))位中的一個(gè)。由于標(biāo)準(zhǔn)化邏輯114以這種方式被“欺騙”,所以所述標(biāo)準(zhǔn)化邏輯114可以不標(biāo)準(zhǔn)化所述輸入值,以致引起下溢結(jié)果。因此,尾數(shù)分?jǐn)?shù)位可被恰當(dāng)?shù)囟ㄎ?,以產(chǎn)生所述倒數(shù)估計(jì)計(jì)算的精確的非標(biāo)準(zhǔn)數(shù)結(jié)果。由于所述倒數(shù)函數(shù)的性質(zhì)以及所述單精度浮點(diǎn)表示法的限制,所述多個(gè)位中的僅一個(gè)位需要被調(diào)整(例如被強(qiáng)制)。通過該方式,前導(dǎo)零或(LZA或)邏輯可被用于幫助倒數(shù)估計(jì)指令產(chǎn)生非標(biāo)準(zhǔn)結(jié)果。
如參考圖3所示出的,如果第一值的無偏移指數(shù)(例如126)關(guān)聯(lián)于輸入值,則被LZA邏輯110(例如LZA邊緣檢測邏輯)處理的多個(gè)位中的第一位(例如位1)可被調(diào)整,以便當(dāng)標(biāo)準(zhǔn)化邏輯114標(biāo)準(zhǔn)化所述多個(gè)位(例如修正的尾數(shù)分?jǐn)?shù)位)時(shí),所述多個(gè)位中的位2將是所述標(biāo)準(zhǔn)化的多個(gè)位中的最高有效分?jǐn)?shù)位。
此外,關(guān)聯(lián)于所述輸入值的指數(shù)域在通過結(jié)果邏輯116被輸入之前可以被強(qiáng)制為零。另外,倒數(shù)估計(jì)表113可適于將被用于所述估計(jì)的具有分?jǐn)?shù)位0b0.1111111111111的尾數(shù)偏移關(guān)聯(lián)于所述輸入值的偏移量(例如略小于0b1.0),所述輸入值具有帶零分?jǐn)?shù)位域的尾數(shù)。通過該方式,估計(jì)精度可通過將估計(jì)向下偏移以便誤差量可以在正值和負(fù)值之間進(jìn)行平衡而被改進(jìn)。
如上面所示出的,當(dāng)指數(shù)126和尾數(shù)1.0關(guān)聯(lián)于倒數(shù)估計(jì)計(jì)算輸入值時(shí),尾數(shù)位0b0.1111111111111的非標(biāo)準(zhǔn)化結(jié)果可在表查找、乘和加運(yùn)算后被得到。左邊的前導(dǎo)位在位的位置2(例如位2)中。因此,下溢預(yù)防邏輯122可在由LZA邏輯110處理之前(或期間)調(diào)整(例如強(qiáng)制)所述結(jié)果的位1。因此,標(biāo)準(zhǔn)化邏輯114可標(biāo)準(zhǔn)化所述結(jié)果,以便所述前導(dǎo)位(例如先前的位2)是所述標(biāo)準(zhǔn)化結(jié)果的最高有效分?jǐn)?shù)位。此外,指數(shù)強(qiáng)制邏輯124可把所述指數(shù)調(diào)整為零。于是,所述倒數(shù)估計(jì)計(jì)算的結(jié)果是0x007FFC00(例如2-126×0b0.1111111111111)。如上面所描述的,所述結(jié)果可以非常接近2126×1.0的實(shí)際結(jié)果。
通過類似的方式,如參考圖4所示出的,當(dāng)指數(shù)127關(guān)聯(lián)于輸入值時(shí),下溢預(yù)防邏輯122可調(diào)整未標(biāo)準(zhǔn)化結(jié)果的位0用于尾數(shù)位,并且把所述指數(shù)調(diào)整為零。
區(qū)分要調(diào)整哪個(gè)位的位置可允許相對(duì)精度被保持為非標(biāo)準(zhǔn)倒數(shù)估計(jì)計(jì)算結(jié)果的相對(duì)精度類似于標(biāo)準(zhǔn)范圍內(nèi)的倒數(shù)估計(jì)計(jì)算結(jié)果的計(jì)算精度。相反,如果不論關(guān)聯(lián)于可對(duì)其執(zhí)行倒數(shù)估計(jì)的輸入值的指數(shù)(例如126或127)而都僅可調(diào)整一個(gè)位的位置,則對(duì)關(guān)聯(lián)于指數(shù)127的輸入值的倒數(shù)估計(jì)的相對(duì)精度可以比較低。
前述描述僅公開了本發(fā)明的示例性實(shí)施例。落在本發(fā)明范圍內(nèi)的對(duì)上面公開的裝置和方法的修正將對(duì)于本領(lǐng)域的普通技術(shù)人員是顯而易見的。例如,盡管上面已參考單精度浮點(diǎn)數(shù)(例如32位數(shù))描述了本方法和裝置,但本發(fā)明還包括用于對(duì)雙精度浮點(diǎn)數(shù)(例如64位數(shù))執(zhí)行倒數(shù)估計(jì)的方法和裝置。在一實(shí)施例中,本發(fā)明可以用CellTM微處理器體系結(jié)構(gòu)上的PowerPCTMVMXTM指令“vrefp”來實(shí)現(xiàn)。倒數(shù)估計(jì)指令典型地可以被Newton-Rhapson算法使用,并且作為浮點(diǎn)除指令的快速替代。所述Newton-Rhapson算法可被廣泛用在例如圖形和科學(xué)應(yīng)用的計(jì)算密集型軟件應(yīng)用中,在所述軟件應(yīng)用中性能被高度重視。
由此,盡管本發(fā)明已結(jié)合其示例性實(shí)施例被公開,但應(yīng)當(dāng)理解,其它實(shí)施例可以落在如權(quán)利要求所限定的本發(fā)明的精神和范圍內(nèi)。
權(quán)利要求
1.一種使用浮點(diǎn)流水線邏輯的倒數(shù)估計(jì)計(jì)算的方法,包括接收當(dāng)被表示為浮點(diǎn)數(shù)時(shí)具有指數(shù)和尾數(shù)的、將對(duì)其執(zhí)行倒數(shù)估計(jì)計(jì)算的輸入值;確定所述指數(shù)是否是多個(gè)預(yù)定的數(shù)中的一個(gè);以及如果所述指數(shù)是所述多個(gè)預(yù)定的數(shù)中的一個(gè),則基于所述指數(shù)調(diào)整多個(gè)修正的尾數(shù)位中的至少一個(gè)以及結(jié)果指數(shù),以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。
2.根據(jù)權(quán)利要求1所述的倒數(shù)估計(jì)計(jì)算方法,還包括如果所述指數(shù)不是所述多個(gè)預(yù)定的數(shù)中的一個(gè),則利用所述浮點(diǎn)流水線邏輯來計(jì)算所述輸入值的倒數(shù)估計(jì),而不用基于所述指數(shù)調(diào)整所述多個(gè)修正的尾數(shù)位中的至少一個(gè)以及所述結(jié)果指數(shù)以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。
3.根據(jù)權(quán)利要求1所述的倒數(shù)估計(jì)計(jì)算方法,其中,調(diào)整所述多個(gè)修正的尾數(shù)位中的至少一個(gè)以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果包括減少由所述浮點(diǎn)流水線邏輯的標(biāo)準(zhǔn)化邏輯執(zhí)行的對(duì)修正的尾數(shù)位進(jìn)行移位的量。
4.根據(jù)權(quán)利要求3所述的倒數(shù)估計(jì)計(jì)算方法,其中,減少由所述浮點(diǎn)流水線邏輯的標(biāo)準(zhǔn)化邏輯執(zhí)行的對(duì)修正的尾數(shù)位進(jìn)行移位的量包括消除需要由所述浮點(diǎn)流水線邏輯的所述標(biāo)準(zhǔn)化邏輯執(zhí)行的對(duì)修正的尾數(shù)位進(jìn)行移位的量。
5.根據(jù)權(quán)利要求1所述的倒數(shù)估計(jì)計(jì)算方法,其中,基于所述指數(shù)調(diào)整所述結(jié)果指數(shù)以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果包括基于所述指數(shù)將所述結(jié)果指數(shù)調(diào)整為零。
6.根據(jù)權(quán)利要求1所述的倒數(shù)估計(jì)計(jì)算方法,其中,調(diào)整所述多個(gè)修正的尾數(shù)位中的至少一個(gè)包括如果所述指數(shù)屬于第一值,則調(diào)整所述修正的尾數(shù)位的最高有效分?jǐn)?shù)位左邊的第一位。
7.根據(jù)權(quán)利要求1所述的倒數(shù)估計(jì)計(jì)算方法,其中,調(diào)整所述多個(gè)修正的尾數(shù)位中的至少一個(gè)包括如果所述指數(shù)屬于第二值,則調(diào)整所述修正的尾數(shù)位的最高有效分?jǐn)?shù)位左邊的第二位。
8.一種用于預(yù)防倒數(shù)估計(jì)計(jì)算的下溢結(jié)果的裝置,包括適于耦合到浮點(diǎn)流水線邏輯的指數(shù)檢測邏輯;適于耦合到所述浮點(diǎn)流水線邏輯的下溢預(yù)防邏輯;以及適于耦合到所述浮點(diǎn)流水線邏輯的指數(shù)調(diào)整邏輯;其中所述裝置適于響應(yīng)于所述浮點(diǎn)流水線邏輯接收到當(dāng)被表示為浮點(diǎn)數(shù)時(shí)具有指數(shù)和尾數(shù)的、將對(duì)其執(zhí)行倒數(shù)估計(jì)計(jì)算的輸入值,而確定所述指數(shù)是否是多個(gè)預(yù)定的數(shù)中的一個(gè);以及如果所述指數(shù)是多個(gè)預(yù)定的數(shù)中的一個(gè),則基于所述指數(shù)調(diào)整所述多個(gè)修正的尾數(shù)位中的至少一個(gè)以及結(jié)果指數(shù),以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。
9.根據(jù)權(quán)利要求8所述的裝置,其中所述裝置還適于如果所述指數(shù)不是所述多個(gè)預(yù)定的數(shù)中的一個(gè),則利用所述浮點(diǎn)流水線邏輯來計(jì)算所述輸入值的倒數(shù)估計(jì),而不用基于所述指數(shù)調(diào)整所述多個(gè)修正的尾數(shù)位中的至少一個(gè)以及所述結(jié)果指數(shù)以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。
10.根據(jù)權(quán)利要求8所述的裝置,其中所述裝置還適于減少由所述浮點(diǎn)流水線邏輯的標(biāo)準(zhǔn)化邏輯執(zhí)行的對(duì)修正的尾數(shù)位進(jìn)行移位的量。
11.根據(jù)權(quán)利要求10所述的裝置,其中所述裝置還適于消除需要由所述浮點(diǎn)流水線邏輯的所述標(biāo)準(zhǔn)化邏輯執(zhí)行的對(duì)修正的尾數(shù)位進(jìn)行移位的量。
12.根據(jù)權(quán)利要求8所述的裝置,其中所述裝置還適于基于所述指數(shù)將所述結(jié)果指數(shù)調(diào)整為零。
13.根據(jù)權(quán)利要求8所述的裝置,其中所述裝置還適于如果所述指數(shù)屬于第一值,則調(diào)整所述修正的尾數(shù)位的最高有效分?jǐn)?shù)位左邊的第一位。
14.根據(jù)權(quán)利要求8所述的裝置,其中所述裝置還適于如果所述指數(shù)屬于第二值,則調(diào)整所述修正的尾數(shù)位的最高有效分?jǐn)?shù)位左邊的第二位。
15.一種用于預(yù)防倒數(shù)估計(jì)計(jì)算的下溢結(jié)果的系統(tǒng),包括浮點(diǎn)流水線邏輯;以及用于預(yù)防倒數(shù)估計(jì)計(jì)算的下溢結(jié)果的裝置,其被耦合到所述浮點(diǎn)流水線邏輯,并且具有指數(shù)檢測邏輯;下溢預(yù)防邏輯;以及指數(shù)調(diào)整邏輯;其中,所述裝置適于響應(yīng)于所述浮點(diǎn)流水線邏輯接收到當(dāng)為表示為浮點(diǎn)數(shù)是具有指數(shù)和尾數(shù)的、將對(duì)其執(zhí)行倒數(shù)估計(jì)計(jì)算的輸入值,而確定所述指數(shù)是否是多個(gè)預(yù)定的數(shù)中的一個(gè);以及如果所述指數(shù)是所述多個(gè)預(yù)定的數(shù)中的一個(gè),則基于所述指數(shù)調(diào)整多個(gè)修正的尾數(shù)位中的至少一個(gè)以及結(jié)果指數(shù),以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述裝置還適于如果所述指數(shù)不是所述多個(gè)預(yù)定的數(shù)中的一個(gè),則利用所述浮點(diǎn)流水線邏輯來計(jì)算所述輸入值的倒數(shù)估計(jì),而不用基于所述指數(shù)調(diào)整所述多個(gè)修正的尾數(shù)位中的至少一個(gè)以及所述結(jié)果指數(shù)以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。
17.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述裝置還適于減少由所述浮點(diǎn)流水線邏輯的標(biāo)準(zhǔn)化邏輯執(zhí)行的對(duì)修正的尾數(shù)位進(jìn)行移位的量。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中所述裝置還適于消除需要由所述浮點(diǎn)流水線邏輯的所述標(biāo)準(zhǔn)化邏輯執(zhí)行的對(duì)修正的尾數(shù)位進(jìn)行移位的量。
19.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述裝置還適于基于所述指數(shù)將所述結(jié)果指數(shù)調(diào)整為零。
20.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述裝置還適于如果所述指數(shù)屬于第一值,則調(diào)整所述修正的尾數(shù)位的最高有效分?jǐn)?shù)位左邊的第一位。
21.根據(jù)權(quán)利要求15所述的系統(tǒng),其中所述裝置還適于如果所述指數(shù)屬于第二值,則調(diào)整所述修正的尾數(shù)位的最高有效分?jǐn)?shù)位左邊的第二位。
全文摘要
在第一方面中,提供一種使用浮點(diǎn)流水線邏輯的倒數(shù)估計(jì)計(jì)算的第一方法。所述第一方法包括以下步驟(1)接收當(dāng)被表示為浮點(diǎn)數(shù)時(shí)具有指數(shù)和尾數(shù)的、將對(duì)其執(zhí)行倒數(shù)估計(jì)計(jì)算的輸入值;(2)確定所述指數(shù)是否是多個(gè)預(yù)定的數(shù)中的一個(gè);以及(3)如果所述指數(shù)是所述多個(gè)預(yù)定的數(shù)中的一個(gè),則調(diào)整多個(gè)修正的尾數(shù)位中的至少一個(gè)(例如,前導(dǎo)零預(yù)測器(LZA)邏輯內(nèi)部的尾數(shù)位)以及所述指數(shù),以便預(yù)防所述倒數(shù)估計(jì)計(jì)算的下溢結(jié)果。許多其它方面被提供。
文檔編號(hào)G06F9/302GK1967468SQ20061014706
公開日2007年5月23日 申請日期2006年11月14日 優(yōu)先權(quán)日2005年11月17日
發(fā)明者M·R·塔布斯, A·P·弗雷邁耶爾, S·M·當(dāng)斯 申請人:國際商業(yè)機(jī)器公司