專利名稱:具有有效的函數(shù)估計(jì)指令的處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及諸如微處理器、微控制器或數(shù)字信號處理器的處理器體系結(jié)構(gòu)和指令集。更具體地說,本發(fā)明針對具有用于估計(jì)某些浮點(diǎn)函數(shù)值的有效指令的處理器。
背景技術(shù):
諸如PowerPC體系結(jié)構(gòu)的許多處理器體系結(jié)構(gòu)都支持作為融合的乘加浮點(diǎn)單元(FPU)之?dāng)U展的倒數(shù)和平方根倒數(shù)的估計(jì)指令。對于此類估計(jì)指令,其主要設(shè)計(jì)目標(biāo)是雙重的該估計(jì)應(yīng)該有相對高的精度,使得利用諸如牛頓—拉弗森(Newton-Raphson)的數(shù)值逼近算法的一次迭代步驟,就能獲得最大的單精度準(zhǔn)確度,或至少接近最大精度。應(yīng)該可以在不產(chǎn)生硬件開銷并且不產(chǎn)生對處理器的周期和管道結(jié)構(gòu)的影響的情況下實(shí)現(xiàn)估計(jì)指令。特別地,該設(shè)計(jì)不應(yīng)增加用于任何非估計(jì)指令的FPU的管道深度。
可以采用許多不同方式來實(shí)現(xiàn)上述估計(jì)指令。一種方式是簡單地查找一個(gè)表中的估計(jì)值。然而,此種技術(shù)的有效性是有限的,這是因?yàn)榭色@得的精度水平受表的大小的限制。為了獲得所希望的精度水平,將需要一個(gè)非常大的表(在存儲該表所需的硬件方面是非常昂貴的)。
因此,此類估計(jì)指令的常規(guī)實(shí)現(xiàn)包括兩個(gè)步驟首先,表查找提供底數(shù)值和斜率。接著,使用該底數(shù)值和斜率值來線性內(nèi)插具有所需精度的估計(jì)值。由于表查找后面有內(nèi)插步驟,所以表查找的結(jié)果可以有較低精度,因此,所需的表遠(yuǎn)遠(yuǎn)小于不帶內(nèi)插操作的直接表查找所需的表。
在這個(gè)兩步的處理中,既可以通過使用處理器的通用FPU硬件,也可以通過添加用于計(jì)算內(nèi)插的專用硬件,來執(zhí)行內(nèi)插操作。當(dāng)使用通用FPU數(shù)據(jù)通路時(shí),估計(jì)指令的等待時(shí)間比基本的融合的乘加指令的等待時(shí)間要長。這會增加處理器的控制邏輯的復(fù)雜度,因?yàn)樗馕吨鳩PU的等待時(shí)間會依據(jù)指令類型而變化。通過假定單一FPU等待時(shí)間并且在執(zhí)行估計(jì)指令時(shí)停止附加周期的執(zhí)行,某些現(xiàn)有實(shí)現(xiàn)可以以性能為代價(jià)避免上述復(fù)雜性。此外,較長的等待時(shí)間可能在指令發(fā)布和依賴性檢查的硬件方面引起顯著的硬件開銷。
如上所述,內(nèi)插步驟并不需要整個(gè)的通用FPU。代替地,可以利用縮減規(guī)模的乘法器、加法器和某些附加邏輯來執(zhí)行內(nèi)插。利用該專用硬件,內(nèi)插步驟比利用通用FPU進(jìn)行的內(nèi)插步驟更快,亦即,估計(jì)指令的等待時(shí)間接近正常乘加指令的等待時(shí)間。此種解決方案的明顯缺點(diǎn)是需要附加硬件來加快內(nèi)插步驟的速度。
因此,需要能夠在不顯著犧牲性能和不顯著增加硬件復(fù)雜性的情況下實(shí)現(xiàn)浮點(diǎn)函數(shù)估計(jì)指令的處理器設(shè)計(jì)。本發(fā)明提供上述問題和其它問題的解決方案,并且提供超越先前解決方案的其它優(yōu)點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明的優(yōu)選實(shí)施方式提供用于支持高精度浮點(diǎn)函數(shù)估計(jì)的方法、計(jì)算機(jī)程序產(chǎn)品和處理器設(shè)計(jì),其中將浮點(diǎn)函數(shù)估計(jì)分成兩條指令低精度表查找指令和線性內(nèi)插指令。通過使用此方案可以實(shí)現(xiàn)不同函數(shù)的估計(jì)為每個(gè)不同的函數(shù)提供獨(dú)立的表查找指令,而只需單個(gè)內(nèi)插指令,這是因?yàn)閱蝹€(gè)內(nèi)插指令可以執(zhí)行任意需要估計(jì)的函數(shù)的內(nèi)插步驟。
在浮點(diǎn)結(jié)果的小數(shù)部分中一起存儲表查找指令提供的底數(shù)和斜率,從而表查找的結(jié)果自身可以充當(dāng)?shù)途裙烙?jì)結(jié)果。因此,本發(fā)明允許程序員根據(jù)當(dāng)前的應(yīng)用靈活選擇高精度或高速度。
利用很少的硬件開銷就可以實(shí)現(xiàn)估計(jì)指令。用于表查找的表是小的,因?yàn)樗鼈儍H僅提供低精度底數(shù)和斜率。除了需要對位進(jìn)行某些簡單的打包和拆包處理之外,可以在實(shí)際上沒有附加硬件開銷的情況下在融合的乘加FPU內(nèi)核中執(zhí)行內(nèi)插指令。因此,本發(fā)明的優(yōu)選實(shí)施方式引起的開銷遠(yuǎn)遠(yuǎn)少于專用硬件引起的開銷,同時(shí)仍保持統(tǒng)一的FPU等待時(shí)間,這允許了簡單得多的控制邏輯。此外,通過將估計(jì)操作分成兩條指令使得可以利用軟件管道來增加總的指令吞吐量。
上述說明是一個(gè)概括,因此必然包括簡化、歸納、以及細(xì)節(jié)的省略;所以本領(lǐng)域的熟練技術(shù)人員可以理解,上述概括只是說明性的,并不意在進(jìn)行任何限制。在下文闡述的非限制性的詳細(xì)說明中,正如僅由權(quán)利要求書所限定的,本發(fā)明的其它方面、其發(fā)明特征及其優(yōu)點(diǎn)將變得明顯。
通過參照附圖,本領(lǐng)域的熟練技術(shù)人員將更加理解本發(fā)明,并且其眾多目的、特征及其優(yōu)點(diǎn)將更加明顯,其中圖1是說明IEEE-754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示的示圖;圖2是根據(jù)本發(fā)明之優(yōu)選實(shí)施方式的估計(jì)浮點(diǎn)函數(shù)的處理的流程圖表示;圖3是說明根據(jù)本發(fā)明之優(yōu)選實(shí)施方式的表查找操作的操作的示圖;圖4是說明根據(jù)本發(fā)明之優(yōu)選實(shí)施方式的內(nèi)插操作的操作的示圖;以及圖5是其中可以實(shí)現(xiàn)本發(fā)明之優(yōu)選實(shí)施方式的信息處理系統(tǒng)的框圖。
具體實(shí)施例方式
下面將提供本發(fā)明的例子的詳細(xì)描述,且不應(yīng)把這些例子看成是對發(fā)明本身的限制。相反,任何變形均落入說明后面的權(quán)利要求書定義的發(fā)明范圍內(nèi)。
本發(fā)明的優(yōu)選實(shí)施方式針對于處理器體系結(jié)構(gòu)和包含用于估計(jì)特定浮點(diǎn)函數(shù)的值的有效指令的指令集。具體而言,本發(fā)明的優(yōu)選實(shí)施方式針對于用于倒數(shù)函數(shù)(1/x)和平方根倒數(shù)函數(shù)(1/sqrt(x))的函數(shù)估計(jì)指令。圖1是說明浮點(diǎn)數(shù)100的簡圖。浮點(diǎn)數(shù)100是用IEEE-754浮點(diǎn)格式表示的,此格式為電氣和電子工程師協(xié)會(IEEE)公布的標(biāo)準(zhǔn)。
具體而言,浮點(diǎn)數(shù)100為單精度浮點(diǎn)數(shù),其依據(jù)上述標(biāo)準(zhǔn),包括32位。這32位是按以下方式排列的最高有效位(MSB)是符號位102,它表示浮點(diǎn)數(shù)100的符號,使得如果符號位102等于1,則浮點(diǎn)數(shù)100是負(fù)數(shù),如果符號位102等于0,則浮點(diǎn)數(shù)100是正數(shù)。緊接著符號位102的位字段104表示8位指數(shù)值,而占據(jù)浮點(diǎn)數(shù)100的剩余23位的位字段106表示24位尾數(shù)的除最高有效位以外的位。通常,IEEE-754格式的浮點(diǎn)數(shù)是用標(biāo)準(zhǔn)形式表示的,其中隱含地其最高有效位是1,并且是二進(jìn)制小數(shù)點(diǎn)左側(cè)的唯一一位,盡管這不是嚴(yán)格必需的。本發(fā)明的優(yōu)選實(shí)施方式利用規(guī)格化數(shù)字,但是也可使用非規(guī)格化數(shù)字而并不背離本發(fā)明的范圍和實(shí)質(zhì)。因此,如果位字段106包含位串01010101...,則位字段106表示的24位尾數(shù)是1.01010101...。通過加上127使指數(shù)字段104偏移(以使指數(shù)字段104成為無符號數(shù)),從而浮點(diǎn)數(shù)100的絕對值等于尾數(shù)106乘以2的一個(gè)冪值,該冪值等于指數(shù)字段104與127的差。這樣,浮點(diǎn)數(shù)100能夠表示具有負(fù)指數(shù)的數(shù)(即,小數(shù)),以及具有正指數(shù)的數(shù)(即,大于1的實(shí)數(shù))。
本領(lǐng)域的一般技術(shù)人員可以理解,通過使用和這里所示的IEEE-754標(biāo)準(zhǔn)不同的數(shù)字格式,也可以執(zhí)行本發(fā)明的實(shí)施方式,盡管本發(fā)明的優(yōu)選實(shí)施方式利用了IEEE-754格式的32位單精度浮點(diǎn)數(shù)。例如,IEEE-754標(biāo)準(zhǔn)也支持64位(雙精度)和擴(kuò)展浮點(diǎn)表示(如80位格式),并且存在其它的非IEEE-754浮點(diǎn)表示。此外,本領(lǐng)域的一般技術(shù)人員可以理解,本發(fā)明的教導(dǎo)并不嚴(yán)格限于浮點(diǎn)數(shù)范圍,而是可以全部或部分地應(yīng)用于其它數(shù)字類型和格式,包括(但不限于)整數(shù)和其它定點(diǎn)數(shù)。
特定地包括超越函數(shù)在內(nèi)的許多數(shù)學(xué)函數(shù)都是通過使用諸如牛頓—拉弗森方法之類的數(shù)字逼近技術(shù)用浮點(diǎn)計(jì)算機(jī)數(shù)學(xué)的方式計(jì)算的。諸如上面提及的牛頓—拉弗森方法的許多這些逼近技術(shù)都是迭代的,這意味著必須完成逼近方法的若干次連續(xù)迭代才能獲得正在討論的應(yīng)用的足夠精度的逼近。由于迭代地計(jì)算這些函數(shù)非常耗時(shí)的特性,支持浮點(diǎn)運(yùn)算的某些處理器體系結(jié)構(gòu)包括用于獲取正在討論的函數(shù)的快速估計(jì)的指令,通過逼近技術(shù)的少數(shù)幾次迭代,如牛頓—拉弗森的一次迭代,可以使快速估計(jì)更精確。通常,這是通過將表查找操作與線性、多項(xiàng)式或其它內(nèi)插步驟進(jìn)行組合來實(shí)現(xiàn)的。然而,由于該運(yùn)算的復(fù)雜特性,此類指令可能需要大的等待時(shí)間延遲,從而會影響其性能并且會增加下層硬件的復(fù)雜性。
本發(fā)明的優(yōu)選實(shí)施方式試圖通過將該估計(jì)處理分成兩條指令而非單一指令來降低其復(fù)雜性。圖2是表示根據(jù)本發(fā)明之優(yōu)選實(shí)施方式的計(jì)算函數(shù)估計(jì)的處理的流程圖。
正如方塊200表示的那樣,該估計(jì)處理以單一指令開始,其中通過使用該指令的輸入操作數(shù)借助表查找來獲取用于隨后的線性內(nèi)插的底數(shù)值和斜率參數(shù)。在本發(fā)明的優(yōu)選實(shí)施方式中,該指令返回32位字形式的參數(shù),32位字構(gòu)成內(nèi)插參數(shù)的組合位表示。正如圖3所示和在附隨文字中描述的那樣,上述組合的格式是按以下方式排列的,當(dāng)將其解釋為一個(gè)IEEE-754浮點(diǎn)數(shù)時(shí),內(nèi)插參數(shù)的32位表示也是將要估計(jì)的函數(shù)的低精度估計(jì)。因此,作為圖2描述的處理的可選的估計(jì)處理僅僅包括方塊200,其特征是速度較快,但精度較低。
接著,正如方塊202表示的那樣,該處理器在先前獲得的底數(shù)值和斜率上執(zhí)行第二條指令,其中該處理器使用該底數(shù)值和斜率來執(zhí)行線性內(nèi)插,以獲取在原始操作數(shù)的值上評估的所需函數(shù)的估計(jì)。請注意,雖然本發(fā)明的優(yōu)選實(shí)施方式利用線性內(nèi)插來完成估計(jì)處理,但是本領(lǐng)域的一般技術(shù)人員應(yīng)該理解,可以使用包括其它多項(xiàng)式內(nèi)插方案在內(nèi)的其它形式的逼近來代替線性內(nèi)插,而并不背離本發(fā)明的范圍和實(shí)質(zhì)。
上述兩個(gè)指令方案的優(yōu)點(diǎn)在于,處理器的數(shù)據(jù)通路上只需級聯(lián)很少硬件就能執(zhí)行估計(jì)。事實(shí)上,可以在支持指令級并行處理的處理器中的獨(dú)立功能單元中執(zhí)行查找操作和內(nèi)插操作。
圖3和圖4是提供圖2描述的兩條指令的更詳細(xì)的說明的示圖。圖3是表示執(zhí)行圖2中的方塊200表示的初始表查找操作的處理的示圖。在本例中,我們把該指令稱作“fes1”(表示“第一函數(shù)估計(jì)指令”)。在圖3中執(zhí)行的指令是“fes1 X,r1”,其含義是查找操作數(shù)X的底數(shù)和斜率值并將該底數(shù)和斜率值存儲在寄存器r1中。浮點(diǎn)數(shù)300表示操作數(shù)X,以IEEE-754標(biāo)準(zhǔn)格式表示。在計(jì)算倒數(shù)估計(jì)的優(yōu)選實(shí)施方式中,使用浮點(diǎn)數(shù)300的尾數(shù)的5個(gè)最高有效位作為索引來查找表304,表304包含任意尾數(shù)的5個(gè)最高有效位的32個(gè)不同組合的每個(gè)組合中底數(shù)和斜率值??梢允褂梦矓?shù)和指數(shù)位的其它組合作為索引而并不背離本發(fā)明的范圍和實(shí)質(zhì)。例如,用于平方根倒數(shù)估計(jì)函數(shù)的索引將需要包括至少一個(gè)指數(shù)位(最低有效指數(shù)位),這是因?yàn)槠椒礁箶?shù)函數(shù)的尾數(shù)值取決于該函數(shù)的自變量的指數(shù)是偶數(shù)還是奇數(shù)。從查找表304中檢索的內(nèi)容由處理器放入到目的寄存器(此處為“r1”)中,作為底數(shù)值和斜率值的位組合的表示306,用于執(zhí)行內(nèi)插以獲得在操作數(shù)X上評估的特定函數(shù)的估計(jì)。
和浮點(diǎn)數(shù)300一樣,底數(shù)/斜率表示306是一個(gè)32位數(shù),從而有助于在32位處理器上執(zhí)行指令fes1。底數(shù)/斜率表示306包括符號位308、8位指數(shù)值310、13位底數(shù)尾數(shù)值312以及10位斜率值314。不需要用于斜率的指數(shù)值,這是因?yàn)樗杈仁怯傻讛?shù)指數(shù)值310達(dá)到的(至少對于倒數(shù)和平方根倒數(shù)函數(shù))。
該處理器通過表查找檢索尾數(shù)值312和斜率值314,同時(shí)該處理器根據(jù)管理將要估計(jì)的特定函數(shù)的規(guī)則來對符號位308和指數(shù)值310進(jìn)行計(jì)算。在倒數(shù)的情況中,該處理器從浮點(diǎn)操作數(shù)300的符號位309中復(fù)制符號位308。在平方根倒數(shù)的情況中,由于平方根倒數(shù)只是為正數(shù)X定義的,所以符號位308僅為正。通過在浮點(diǎn)操作數(shù)300的指數(shù)值311上執(zhí)行簡單運(yùn)算,例如加上或減去偏移和移位,來計(jì)算指數(shù)值310。該處理器從表中檢索該偏移值以及尾數(shù)值312和斜率值314。
在這一點(diǎn)上,應(yīng)注意底數(shù)/斜率表示306中的位字段的排列非常接近圖1描述的IEEE-754浮點(diǎn)數(shù)格式。由于底數(shù)尾數(shù)值312本身是正在估計(jì)的函數(shù)的低精度估計(jì),并且由于底數(shù)尾數(shù)值312所處的位置是IEEE-754表示(如圖1)中的尾數(shù)字段106的最高有效位,所以底數(shù)/斜率表示306本身完全是正在討論的函數(shù)的低精度估計(jì)。因此,當(dāng)程序員希望犧牲精度獲取計(jì)算速度時(shí),可以按原樣使用底數(shù)/斜率表示306作為正在討論的函數(shù)的低精度估計(jì)。否則,可以將底數(shù)/斜率表示306顯示為如圖4所描述的隨后的內(nèi)插指令的輸入。
正如圖4所示,內(nèi)插指令(此處為“fes2”)將原始操作數(shù)(浮點(diǎn)數(shù)300)和底數(shù)/斜率表示306作為輸入。在本例中,可以將該指令記作“fes2 X,r1,r2”,其含義是通過使用X作為操作數(shù)并且通過使用寄存器r1的內(nèi)容作為底數(shù)/斜率表示,來計(jì)算內(nèi)插值,然后將其結(jié)果存儲到寄存器r2中。從底數(shù)尾數(shù)值312中(在規(guī)格化數(shù)字的情況中,認(rèn)為二進(jìn)制小數(shù)點(diǎn)的左側(cè)是隱含的1),減去兩個(gè)數(shù)的乘積。該處理器獲得該乘積中的第一個(gè)因數(shù),其方法是,把斜率位314放到二進(jìn)制小數(shù)點(diǎn)右側(cè)的第四個(gè)位置(例如,如果斜率位串是1101110101,則第一個(gè)因數(shù)是0.0001101110101)。該乘積中的第二個(gè)因數(shù)是由X(浮點(diǎn)數(shù)300)的尾數(shù)的18位最低有效位400組成的。接著,把減法運(yùn)算的結(jié)果乘以該底數(shù)/斜率表示的符號和指數(shù)。然后由處理器對得到的乘積進(jìn)行規(guī)格化,并放入到內(nèi)插結(jié)果406的23位尾數(shù)412、符號位408以及8位指數(shù)部分410中。
圖5說明信息處理系統(tǒng)501,該系統(tǒng)是能夠執(zhí)行與本發(fā)明之優(yōu)選實(shí)施方式有關(guān)的在此描述的主計(jì)算機(jī)的計(jì)算操作的計(jì)算機(jī)系統(tǒng)的簡化示例。計(jì)算機(jī)系統(tǒng)501包括與主機(jī)總線502相連的處理器500。第二層(L2)高速緩沖存儲器504也和主機(jī)總線502相連。主機(jī)到PCI橋506和主存儲器508相連,包括高速緩沖存儲器和主存儲器控制功能,并且提供總線控制以處理PCI總線510、處理器500、L2高速緩沖存儲器504、主存儲器508和主機(jī)總線502之間的傳送。主存儲器508和主機(jī)到PCI橋506以及主機(jī)總線502相連。諸如局域網(wǎng)(LAN)卡530的完全由主處理器500使用的設(shè)備和PCI總線510相連。服務(wù)處理器接口和ISA訪問通路512提供PCI總線510和PCI總線514之間的接口。由此,將PCI總線514和PCI總線510隔離。諸如閃存存儲器518的設(shè)備和PCI總線514相連。在一種實(shí)現(xiàn)方式中,閃存存儲器518包括BIOS代碼,后者包括對于多種低層系統(tǒng)功能和系統(tǒng)引導(dǎo)功能必要的處理器可執(zhí)行代碼。
PCI總線514提供主處理器500和包括例如閃存存儲器518在內(nèi)的服務(wù)處理器516共享的多種設(shè)備的接口。PCI到ISA橋535提供總線控制以處理PCI總線514和ISA總線540、通用串行總線(USB)功能性545、電源管理功能性555之間的傳送,并且可以包括未示出的其它功能元件,如實(shí)時(shí)時(shí)鐘(RTC),DMA控制,中斷支持和系統(tǒng)管理總線支持。非易失RAM 520和ISA總線540相連。服務(wù)處理器516包括JTAG和I2C總線522,用于在初始化步驟期間與處理器500通信。同時(shí),JTAG/I2C總線522和L2高速緩沖存儲器504、主機(jī)到PCI橋506以及主存儲器508相連,以便提供在處理器、服務(wù)處理器、L2高速緩沖存儲器、主機(jī)到PCI橋和主存儲器之間的通信通道。服務(wù)處理器516也可以訪問系統(tǒng)電源資源,以便關(guān)閉信息處理設(shè)備501。
外圍設(shè)備和輸入/輸出(I/O)設(shè)備可以和各種接口(例如,和ISA總線540相連的并行接口562、串行接口564、鍵盤接口568和鼠標(biāo)接口570)相連??蛇x擇地,可以把許多I/O設(shè)備容納于和ISA總線540相連的超級I/O控制器(未示出)內(nèi)。
為了把計(jì)算機(jī)系統(tǒng)501連接到另一個(gè)計(jì)算機(jī)系統(tǒng)上以通過網(wǎng)絡(luò)復(fù)制文件,把局域網(wǎng)卡530連接到PCI總線510上。類似地,為了把計(jì)算機(jī)系統(tǒng)501連接到ISP上以使用電話線連接來連接到因特網(wǎng),把調(diào)制解調(diào)器575連接到串行端口564和PCI到ISA橋535上。
盡管圖5中描述的計(jì)算機(jī)系統(tǒng)能夠支持本文描述的指令集體系結(jié)構(gòu),但是該計(jì)算機(jī)系統(tǒng)只是計(jì)算機(jī)系統(tǒng)的一個(gè)例子。本領(lǐng)域的熟練技術(shù)人員可以理解,許多其它計(jì)算機(jī)系統(tǒng)設(shè)計(jì)能夠執(zhí)行本文描述的處理。
該發(fā)明的特定方面和可能實(shí)施方式屬于軟件領(lǐng)域。特別地,為了利用本發(fā)明的優(yōu)選實(shí)施方式的特征,必須執(zhí)行包含根據(jù)本發(fā)明的教導(dǎo)的估計(jì)指令的軟件。本發(fā)明的一種實(shí)施方式也可以包括或采取微代碼的形式,微代碼是處理器內(nèi)部的軟件,微碼規(guī)定執(zhí)行指令所需的某些詳細(xì)控制步驟。
作為本文使用的術(shù)語,軟件是例如駐留在計(jì)算機(jī)(處理器的內(nèi)部或其外部)的存儲器(隨機(jī)存取存儲器或只讀存儲器)中的代碼模塊中的指令集(程序代碼)或其它功能性描述材料。在計(jì)算機(jī)需要以前,可以把指令集存儲在另一個(gè)計(jì)算機(jī)存儲器中,例如,存儲在硬盤或諸如光盤(以便最終在CD-ROM中使用)或軟盤(以便最終在軟盤驅(qū)動器中使用)的可移動的存儲器中,或者經(jīng)由因特網(wǎng)或其它計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行下載。因此,本發(fā)明可實(shí)現(xiàn)為計(jì)算機(jī)中使用的計(jì)算機(jī)程序產(chǎn)品。另外,盡管可以很方便地在由軟件選擇激活或重新配置的通用計(jì)算機(jī)中常規(guī)地實(shí)現(xiàn)本文描述的各種方法,但是本領(lǐng)域的一般技術(shù)人員還將理解,可以用硬件、固件或構(gòu)造用來執(zhí)行所需方法步驟的專用設(shè)備執(zhí)行此類方法。功能性描述材料是賦予機(jī)器功能性的信息。功能性描述材料包括但不限于,計(jì)算機(jī)程序、指令、規(guī)則、事實(shí)、可計(jì)算的函數(shù)的定義、對象和數(shù)據(jù)結(jié)構(gòu)。
盡管已經(jīng)展示并描述了本發(fā)明的特定實(shí)施方式,但是對于本領(lǐng)域的熟練技術(shù)人員是明顯的根據(jù)本文的教導(dǎo),可以作出各種變更和修改而并不背離本發(fā)明及其更廣泛的方面。因此,所附權(quán)利要求書的范圍將包含屬于本發(fā)明之實(shí)質(zhì)和范圍內(nèi)的所有此類變更和修改。此外,應(yīng)該懂得,該發(fā)明完全是由所附權(quán)利要求書限定的。本領(lǐng)域的熟練技術(shù)人員懂得,如果所引入的權(quán)利要求要素的具體數(shù)目是有意的,則將在該權(quán)利要求中明確陳述此類意圖,而在缺少此類陳述的情況下,此限制將不存在。作為有助于理解的非限制性的例子,后面所附權(quán)利要求書包含用來引入權(quán)利要求要素的引入短語“至少一個(gè)”以及“一個(gè)或多個(gè)”的用法。然而,不應(yīng)把此類短語的使用解釋為暗示由不定冠詞“一個(gè)”引入的權(quán)利要求要素把包含此類所引入的權(quán)利要求要素的任何特定權(quán)利要求限制為僅僅包含一個(gè)此類要素的發(fā)明,即使同一權(quán)利要求包括引入短語“一個(gè)或多個(gè)”或“至少一個(gè)”以及諸如“一個(gè)”的不定冠詞;對權(quán)利要求中定冠詞的使用也應(yīng)如此理解。
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括在至少一個(gè)操作數(shù)上執(zhí)行第一指令以獲得第一指令結(jié)果,其中該第一指令對應(yīng)于要估計(jì)的函數(shù),并且其中該第一指令結(jié)果包括內(nèi)插函數(shù)的參數(shù)集。
2.如權(quán)利要求1的方法,其中該第一指令是原子指令。
3.如權(quán)利要求1的方法,其中該第一指令是處理器的本機(jī)機(jī)器語言中的單個(gè)指令。
4.如權(quán)利要求1的方法,進(jìn)一步包括在至少該第一指令結(jié)果上執(zhí)行第二指令以獲得第二指令結(jié)果,其中執(zhí)行該第二指令包括就像在該至少一個(gè)操作數(shù)上進(jìn)行的評估那樣,在所述參數(shù)集上評估該內(nèi)插函數(shù)以獲得作為該第二指令結(jié)果的該要估計(jì)的函數(shù)的逼近值。
5.如權(quán)利要求4的方法,其中該第二指令是在該第一指令結(jié)果和該至少一個(gè)操作數(shù)上執(zhí)行的。
6.如權(quán)利要求4的方法,其中該函數(shù)是倒數(shù)函數(shù)。
7.如權(quán)利要求4的方法,其中該函數(shù)是平方根倒數(shù)函數(shù)。
8.如權(quán)利要求4的方法,其中該第二指令是作為融合的加乘運(yùn)算執(zhí)行的。
9.如權(quán)利要求1的方法,其中該參數(shù)集包括底數(shù)值和斜率值。
10.如權(quán)利要求1的方法,其中該第一指令結(jié)果形成單一數(shù)值字。
11.如權(quán)利要求10的方法,其中當(dāng)把該單一數(shù)值字解釋為單一數(shù)值時(shí),該單一數(shù)值字表示該要估計(jì)的函數(shù)的估計(jì)。
12.如權(quán)利要求1的方法,進(jìn)一步包括在另外的至少一個(gè)操作數(shù)上執(zhí)行第三指令以獲得第三指令結(jié)果;在該第三指令結(jié)果上執(zhí)行該第二指令以獲得要估計(jì)的第二函數(shù)的第二估計(jì)。
13.如權(quán)利要求1的方法,其中該至少一個(gè)操作數(shù)包括浮點(diǎn)操作數(shù)。
14.一種計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括功能性描述材料,其中當(dāng)由計(jì)算機(jī)執(zhí)行時(shí),使得該計(jì)算機(jī)執(zhí)行權(quán)利要求1-13之任一權(quán)利要求所述的操作。
15.一個(gè)處理器,包括用于在至少一個(gè)操作數(shù)上執(zhí)行第一指令以獲得第一指令結(jié)果的裝置,其中該第一指令相當(dāng)于要估計(jì)的函數(shù),并且其中該第一指令結(jié)果包括內(nèi)插函數(shù)的參數(shù)集。
16.如權(quán)利要求15的處理器,進(jìn)一步包括用于在至少該第一指令結(jié)果上執(zhí)行第二指令以獲得第二指令結(jié)果的裝置,其中執(zhí)行該第二指令包括就像在該至少一個(gè)操作數(shù)上進(jìn)行的評估那樣,在所述參數(shù)集上評估該內(nèi)插函數(shù)以獲得作為該第二指令結(jié)果的該要估計(jì)的函數(shù)的逼近值。
17.如權(quán)利要求16的處理器,其中該函數(shù)是倒數(shù)函數(shù)。
18.如權(quán)利要求17的處理器,其中該函數(shù)是平方根倒數(shù)函數(shù)。
全文摘要
本發(fā)明的優(yōu)選實(shí)施方式提供用于支持高精度浮點(diǎn)函數(shù)估計(jì)的方法、計(jì)算機(jī)程序產(chǎn)品和處理器設(shè)計(jì),其中將浮點(diǎn)函數(shù)估計(jì)分成兩條指令低精度表查找指令和線性內(nèi)插指令。通過使用此方案可以實(shí)現(xiàn)不同函數(shù)的估計(jì)為每個(gè)不同的函數(shù)提供獨(dú)立的表查找指令,而只需單個(gè)內(nèi)插指令,這是因?yàn)閱蝹€(gè)內(nèi)插指令可以執(zhí)行任意一個(gè)要估計(jì)的函數(shù)的內(nèi)插步驟。因此,本發(fā)明的優(yōu)選實(shí)施方式引起的系統(tǒng)開銷遠(yuǎn)遠(yuǎn)少于專用硬件引起的系統(tǒng)開銷,同時(shí)還能保持統(tǒng)一的FPU等待時(shí)間,從而可以提供簡單得多的控制邏輯。
文檔編號G06F9/30GK1862483SQ200610008370
公開日2006年11月15日 申請日期2006年2月21日 優(yōu)先權(quán)日2005年5月12日
發(fā)明者?!ずさ潞? 戈登·克萊德·福薩姆, 哈姆·彼得·霍夫施蒂, 布拉德·威廉·邁克爾, 西爾維亞·梅利塔, 瓦·喬恩·奧 申請人:國際商業(yè)機(jī)器公司