專(zhuān)利名稱(chēng):超高基數(shù)除法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施方案一般涉及基數(shù)除法,更具體地說(shuō),涉及在微處理器體系結(jié)構(gòu)中減少用于實(shí)現(xiàn)基數(shù)除法的數(shù)據(jù)路徑。
背景技術(shù):
浮點(diǎn)性能是當(dāng)今微處理器體系結(jié)構(gòu)的關(guān)鍵問(wèn)題。在四種基本浮點(diǎn)運(yùn)算,即加、減、乘、除運(yùn)算中,除法對(duì)于微處理器體系結(jié)構(gòu)來(lái)說(shuō)是最占用資源的一種運(yùn)算。近來(lái),在產(chǎn)生實(shí)際可實(shí)現(xiàn)的超高基數(shù)(數(shù)字基,例如2(二進(jìn)制)、10(十進(jìn)制)、16(十六進(jìn)制)等)數(shù)位遞推算法方面取得了進(jìn)展。提到超高基數(shù),我們是指由算法的每次迭代所產(chǎn)生的商數(shù)位的數(shù)量要遠(yuǎn)遠(yuǎn)大于產(chǎn)生1位(基2)、2位(基4)、3位(基8)或4位(基16)的典型傳統(tǒng)算法。對(duì)于這些超高基數(shù)除法算法來(lái)說(shuō),在算法的迭代過(guò)程中產(chǎn)生10位(基1024)或20位(基1048576)量級(jí)的數(shù)是很正常的。然而,這些算法的一個(gè)共同缺點(diǎn)就是內(nèi)部數(shù)據(jù)寬度以不甚正常的方式增長(zhǎng)。
例如,傳統(tǒng)的數(shù)位遞推除法算法具有以下核心計(jì)算步驟,即余數(shù)的更新Rj+1=r×Rj-qj+1×Y。這里,R是余數(shù),r是基數(shù),qj+1是商數(shù)位,Y是除數(shù)(例如分母)。工作的很大一部分在于計(jì)算qj+1×Y的積。當(dāng)qj+1的寬度隨基數(shù)增長(zhǎng)時(shí),Y的寬度保持不變。通常,基數(shù)是2的整數(shù)冪,因此對(duì)于某個(gè)整數(shù)m,r=2m。在這種情況下,乘法器需要處理m乘L的乘法,其中L是所討論的精度的數(shù)據(jù)寬度(例如,對(duì)于電氣電子工程師協(xié)會(huì)(IEEE)標(biāo)準(zhǔn)的雙精度來(lái)說(shuō),L=53)。換言之,乘法器的深度就是所述算法每次迭代所生成的附加商數(shù)據(jù)的位數(shù),而乘法器的寬度被固定為所討論的精度的數(shù)據(jù)寬度。
對(duì)于傳統(tǒng)的數(shù)位遞推除法算法而言,只有乘法器的寬度隨算法的基數(shù)而變。隨著近來(lái)提出的超高基數(shù)除法算法而發(fā)生不正常的增長(zhǎng),這是因?yàn)檫@些運(yùn)算的乘法器必須反而能夠處理m乘(L+m)的乘法。也就是說(shuō),乘法器的寬度也增加了。這種要求是在使得它們實(shí)際可實(shí)現(xiàn)的這類(lèi)算法中很重要的“預(yù)縮放”步驟(例如,除數(shù)或分母倒數(shù),這將在以下的“具體實(shí)施方式
”部分中討論)的直接結(jié)果。雖然一種廣為接受的觀點(diǎn)是只有乘法器的深度影響除法運(yùn)算的速度,但是寬度的增加也會(huì)導(dǎo)致很多問(wèn)題。比較明顯的缺點(diǎn)就是空間的增大和功耗的增加。不那么明顯但是日益重要的缺點(diǎn)則是對(duì)定制的乘法器和/或加法器,而不是在與所討論的精度寬度L有關(guān)的標(biāo)準(zhǔn)單元庫(kù)中很常見(jiàn)的那些器件的需要。
因此,需要用于基數(shù)除法的改進(jìn)實(shí)現(xiàn)方案和技術(shù)。這些實(shí)現(xiàn)方案和技術(shù)應(yīng)當(dāng)和近來(lái)的某些基數(shù)除法算法一樣快,但是能夠保持乘法器的寬度,使得空間占用和功耗都最小化,并且由此與現(xiàn)有和傳統(tǒng)的基數(shù)除法實(shí)現(xiàn)方案相比有所減少。
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施方案,用于實(shí)現(xiàn)超高基數(shù)除法的方法的流程圖。
圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施方案,描繪了用于實(shí)現(xiàn)超高基數(shù)除法的機(jī)器實(shí)現(xiàn)的框圖。
圖3是根據(jù)本發(fā)明一個(gè)實(shí)施方案的超高基數(shù)除法系統(tǒng)的圖。
具體實(shí)施例方式
描述了用于超高基數(shù)除法的新穎方法、機(jī)器和系統(tǒng)。在以下對(duì)實(shí)施方案的詳細(xì)說(shuō)明中,將參考附圖進(jìn)行描述,這些附圖形成了說(shuō)明書(shū)的一部分,在附圖中以示例而非限制的方式示出了本發(fā)明可以實(shí)現(xiàn)的具體實(shí)施方案。這些實(shí)施方案被足夠詳細(xì)地描述,使得本領(lǐng)域的普通技術(shù)人員能夠理想并實(shí)現(xiàn)它們,并且可以理解,也可以采用其他實(shí)施方案,在不偏離本公開(kāi)文本的精神和范圍的情況下,可以進(jìn)行結(jié)構(gòu)、邏輯和電氣上的改變。因此,以下詳細(xì)的描述不應(yīng)被理解為限制性的含義,并且這里所公開(kāi)的發(fā)明的實(shí)施方案的范圍將由所附的權(quán)利要求來(lái)定義。
圖1圖示了根據(jù)本發(fā)明的一個(gè)實(shí)施方案,用于實(shí)現(xiàn)超高基數(shù)除法的一種方法100的流程圖。該方法100被實(shí)現(xiàn)在微處理器體系結(jié)構(gòu)中。此外,可以用位于微處理器體系結(jié)構(gòu)內(nèi)或者微處理器體系結(jié)構(gòu)可訪問(wèn)的硬件、軟件、固件或硬件、軟件和固件的組合來(lái)實(shí)現(xiàn)方法100。
正如將向本領(lǐng)域的普通技術(shù)人員論述的那樣,在以下描述中,方法100的實(shí)施方案允許超高基數(shù)除法計(jì)算以全新的方式進(jìn)行分解,形成窄的數(shù)據(jù)路徑。相反,現(xiàn)有和傳統(tǒng)的分解過(guò)程在需要寬數(shù)據(jù)路徑的情況下執(zhí)行超高基數(shù)除法。因此,實(shí)現(xiàn)方法100的實(shí)施方案的微處理器體系結(jié)構(gòu)在執(zhí)行超高基數(shù)除法時(shí),在空間使用上將會(huì)下降,從而導(dǎo)致功耗下降。這是在不負(fù)面影響處理器吞吐率的情況下實(shí)現(xiàn)的。這相對(duì)于傳統(tǒng)技術(shù)來(lái)說(shuō)是很大的一個(gè)優(yōu)點(diǎn),因?yàn)殡S著在工業(yè)上微處理器體系結(jié)構(gòu)越變?cè)叫?,?jié)約功率的能力就變得愈發(fā)引人關(guān)注。
在110,接收到分子和分母(例如除數(shù))作為超高基數(shù)除法計(jì)算的操作數(shù)。除法計(jì)算在確定計(jì)算的商之前被預(yù)縮放(例如,預(yù)處理)為等效的數(shù)學(xué)計(jì)算。這是通過(guò)試圖使除法計(jì)算的分母約等于1來(lái)實(shí)現(xiàn)的。通過(guò)使分母或除數(shù)為1,除法計(jì)算就變得很簡(jiǎn)單,因?yàn)槿魏畏肿映?都等于該分子。
因此,為了改動(dòng)原始的除法計(jì)算,使得分母約等于1,就需要分母的近似倒數(shù),因?yàn)槿魏螖?shù)N的倒數(shù)(1/N)在與該數(shù)相乘時(shí)都等于1(例如1/N×N=1)。然而,因?yàn)閿?shù)N的倒數(shù)可能不會(huì)終止(例如,持續(xù)至無(wú)限),所以可以使用近似倒數(shù)的某個(gè)期望的并且可配置的精度。因此,在120,獲得一個(gè)因子,該因子代表了分母的近似倒數(shù)的期望精度。在一個(gè)實(shí)施方案中,在122,通過(guò)在數(shù)據(jù)結(jié)構(gòu)(例如表或其他數(shù)據(jù)結(jié)構(gòu))中執(zhí)行查找來(lái)獲得近似因子。這樣就在原始的除法計(jì)算被重新表述為更有效率的格式以供處理時(shí),允許快速、有效地獲得所述因子。
本領(lǐng)域的普通技術(shù)人員可以認(rèn)識(shí)到,具有分母的倒數(shù)值的數(shù)據(jù)結(jié)構(gòu)不需要存儲(chǔ)所有可能的數(shù),因?yàn)榭梢允褂眠@些數(shù)的子集,然后計(jì)算出它們正確的倒數(shù)值。例如,數(shù)據(jù)結(jié)構(gòu)可以?xún)H僅容納數(shù)字1-9的近似倒數(shù)值(這里基數(shù)是10進(jìn)制的(基10))。當(dāng)然,在實(shí)際當(dāng)中可以只存儲(chǔ)2-9的倒數(shù)值,因?yàn)榇蠹叶贾?的倒數(shù)值就是1。所有其他數(shù)可能性的倒數(shù)值可以基于這個(gè)小型數(shù)據(jù)結(jié)構(gòu)很容易地計(jì)算出來(lái),因?yàn)檫@些剩余的可能性都只是偏移了基數(shù)(例如十進(jìn)制(基10))的一個(gè)因子。例如,1的倒數(shù)是1,而10的倒數(shù)是0.1。另外,7的倒數(shù)約為0.14,而71的倒數(shù)約為0.014。當(dāng)然,任何期望的精度級(jí)可以被配置為滿足底層微處理器體系結(jié)構(gòu)的要求或需求。因此,為了增加精度,所述數(shù)據(jù)結(jié)構(gòu)可以存儲(chǔ)2-99、11-99、10-99或其他數(shù)值子集的倒數(shù)。此外,所存儲(chǔ)倒數(shù)值的有效數(shù)位的位數(shù)可以取舍為滿足底層體系結(jié)構(gòu)的要求或需求。因此,如果在所述數(shù)據(jù)結(jié)構(gòu)中只存儲(chǔ)了數(shù)字2-9,那么實(shí)際值可以包括超過(guò)2位的有效數(shù)位。例如,7的倒數(shù)可以被存儲(chǔ)為0.142857142,具有8個(gè)有效數(shù)位。
接著,在130處,原始的除法計(jì)算被預(yù)縮放(例如預(yù)處理或分解)為新的處理格式,其中原始的分母大約等于1。這是通過(guò)將原始分子和原始分母乘以所獲得的近似分母倒數(shù)因子而實(shí)現(xiàn)的。因此,用于除法計(jì)算的新處理格式在140處被改動(dòng)為由縮放后的分子(例如,原始的分子×因子)除以縮放后的分母(例如,原始的分母×因子)來(lái)表示的數(shù)學(xué)等效形式。對(duì)分子和分母同時(shí)進(jìn)行乘法運(yùn)算,因此重新表述的除法計(jì)算在數(shù)學(xué)上等效于原始的除法計(jì)算。
此時(shí),縮放后分子的第一個(gè)數(shù)位就是原始除法計(jì)算的相關(guān)結(jié)果中商的第一部分。這是因?yàn)榭s放后的分母約等于1,而任何數(shù)除以1都等于該數(shù)本身。因此,在150處,商的第一部分可以被設(shè)置為縮放后分子的第一個(gè)數(shù)位。
僅以示例的方式并且為了便于理解,考慮3/7這樣一個(gè)原始除法計(jì)算。使用以上描述,7的倒數(shù)大約為0.14(例如,倒數(shù)數(shù)據(jù)結(jié)構(gòu)精確到大約2個(gè)有效數(shù)位)。因此,當(dāng)我們改動(dòng)該計(jì)算時(shí),縮放后的分子變?yōu)?.42(3×0.14),而縮放后的分母變?yōu)?.98(7×0.14)。新表述的計(jì)算因而變?yōu)?.42/0.98;原始的3/7計(jì)算的商的第一部分是0.4。本領(lǐng)域的普通技術(shù)人員將認(rèn)識(shí)到,以上只是出于說(shuō)明的目的,因?yàn)槌呋鶖?shù)除法很可能需要比這個(gè)實(shí)施例中更高的精度。不過(guò),這個(gè)實(shí)施例仍然有助于更好地理解本發(fā)明的各種實(shí)施方案如何通過(guò)以便于微處理器體系結(jié)構(gòu)更容易、更有效率處理的格式來(lái)重新表述原始除法計(jì)算,從而分解該除法計(jì)算。
接著,本發(fā)明的實(shí)施方案開(kāi)始以新的方式分解重新表述的除法計(jì)算。由此,在160處,一個(gè)被定義為當(dāng)前余數(shù)的運(yùn)行變量一開(kāi)始被設(shè)置為縮放后的分子。在170,方法100進(jìn)入一個(gè)處理循環(huán),該循環(huán)一直持續(xù),直到商達(dá)到期望的精度級(jí)(在IEEE中,對(duì)于雙精度這是L=53,其中L是該精度的數(shù)據(jù)位寬度),或者直到當(dāng)前余數(shù)等于0,表示在除法計(jì)算中已經(jīng)除盡。相應(yīng)地,在170處,使用當(dāng)時(shí)的當(dāng)前余數(shù)的一部分來(lái)迭代地組裝商。第一次進(jìn)入所述處理循環(huán)時(shí),在170處的處理不需要發(fā)生,因?yàn)檫@是在150處進(jìn)入循環(huán)之前原先被處理過(guò)了??商鎿Q地,可以去除在150處的處理,并且由170處的處理來(lái)處置。在這種情況下,在170處的處理就不需要進(jìn)行檢查來(lái)確定它是不是循環(huán)內(nèi)首次處理當(dāng)前余數(shù)。
在172處,第一積是基數(shù)(正在使用的數(shù)字基,例如二進(jìn)制、十進(jìn)制、十六進(jìn)制等)乘以當(dāng)前余數(shù)。然后在174處,通過(guò)減去當(dāng)前余數(shù)的整數(shù)部分來(lái)更改這個(gè)第一積。在一個(gè)實(shí)施方案中,所述整數(shù)部分就是當(dāng)前余數(shù)的第一個(gè)數(shù)位(digit),并且形成了一個(gè)完成的整數(shù)。這之所以能夠?qū)崿F(xiàn)是因?yàn)榭s放后的分母接近或近似為1,除法計(jì)算可以用全新的方式來(lái)分解。
例如,在傳統(tǒng)的手算除法中,通過(guò)將當(dāng)時(shí)存在的當(dāng)前余數(shù)乘以基數(shù)得到第一積,然后減去代表分母(例如除數(shù))乘以某個(gè)新數(shù)N的第二積,可以為一個(gè)正在形成的商確定現(xiàn)有余數(shù)。因此,例如,當(dāng)計(jì)算3/7時(shí),我們會(huì)通過(guò)以下過(guò)程來(lái)求解這個(gè)計(jì)算,首先形成由3(例如當(dāng)前余數(shù))乘以10(例如基數(shù)是10(十進(jìn)制))得到的第一積,然后減去由7(例如除數(shù)或分母)×N(某個(gè)整數(shù))得到的第二積。我們憑直覺(jué)判斷N等于4,以使這個(gè)第二積(例如7×4=28)接近但小于第一積(例如3×10=30)。
然而,在本發(fā)明的實(shí)施方案中,除法計(jì)算被重新表述為縮放后的分子除以縮放后的分母(大約為1),因而,N可以被自動(dòng)選擇為當(dāng)前余數(shù)的第一數(shù)字整數(shù)部分,我們?cè)?.42/0.98的實(shí)施例里就是這樣做的(例如,3/7被重新表述為一個(gè)數(shù)學(xué)等效式)。因而,從當(dāng)前余數(shù)中很容易地獲得了第一數(shù)字整數(shù)值(對(duì)于本實(shí)施例來(lái)說(shuō)是0.4)。
此外,被用來(lái)求解商數(shù)位的原始計(jì)算被表示為第二積減去第一積。第一積是當(dāng)前余數(shù)乘以基數(shù),第二積是某個(gè)數(shù)N乘以縮放后的分母(例如除數(shù))。第二積以全新的方式來(lái)分解,這對(duì)于實(shí)現(xiàn)本發(fā)明實(shí)施方案的微處理器體系結(jié)構(gòu)而言,減小了求解第二積的值所需的數(shù)據(jù)寬度。
這是通過(guò)分解除數(shù)(例如縮放后的分母)以表示為數(shù)學(xué)上等效的表達(dá)式來(lái)實(shí)現(xiàn)的。由于除數(shù)(例如縮放后的分母)約等于1,因此如果從1中減去縮放后的分母,則這一減法的和數(shù)將包括等于0或1的一個(gè)或多個(gè)初始數(shù)位或前導(dǎo)數(shù)位。當(dāng)所述減法得到負(fù)數(shù)時(shí),例如縮放后的分母因使用大于1的近似因子而大于1時(shí),可能出現(xiàn)若干無(wú)效的前導(dǎo)1。前導(dǎo)的0或1都是無(wú)效數(shù),將不會(huì)占用微處理器體系結(jié)構(gòu)內(nèi)的額外數(shù)據(jù)寬度。因此,如果第二積也用數(shù)學(xué)上等效的方式來(lái)重新表述,那么前導(dǎo)0或1將減小第二積的數(shù)據(jù)寬度。除數(shù)的等效表示可以被表述為1-Y′,其中Y′是在從1中減去后等于縮放后分母的某個(gè)數(shù)。例如,在前面的實(shí)施例中,縮放后的分母是0.98,如果我們建立方程1-Y′=0.98來(lái)求解Y′,則我們得出Y′為0.02,但是如果我們關(guān)于Y′來(lái)表達(dá)等式,則我們得到Y(jié)′=1-0.98(例如,0.98是縮放后的分母或除數(shù))。因此,縮放后的分母等于1-(1-Y′)并且Y′=1-縮放后的分母。
第二積現(xiàn)在可以表示為當(dāng)前余數(shù)的第一整數(shù)部分的等式(由于縮放后的分母大約等于1)乘以由1-Y′(這正是表達(dá)縮放后分母的方式)表示的子等式,其中Y′就是1-縮放后的分母。通過(guò)在子等式1-Y′上分配當(dāng)前余數(shù)的第一部分,第二積可以被進(jìn)一步分解為另一個(gè)在數(shù)學(xué)上等效的等式。因此,第二積現(xiàn)在將被表示為當(dāng)前余數(shù)的第一整數(shù)部分(例如當(dāng)前余數(shù)乘以子等式的第一部分1)減去當(dāng)前余數(shù)的第一整數(shù)部分乘以Y′的積。與我們直接對(duì)縮放后的分母或除數(shù)乘以當(dāng)前余數(shù)的第一整數(shù)部分的情況相比,所述積將包括更少的有效數(shù)位,并且占用微處理器體系結(jié)構(gòu)內(nèi)更少的數(shù)據(jù)寬度,這是因?yàn)閅′包括一個(gè)或多個(gè)無(wú)效的前導(dǎo)0或1,盡管未經(jīng)處理的縮放后分母原本并不包括任何無(wú)效的前導(dǎo)0或1。因此,將縮放后的分母分解為用數(shù)學(xué)上等效的方式來(lái)重新表述,這是一種具有空間效率的方式。
到目前為止已經(jīng)論述了將用于確定商數(shù)位的除法計(jì)算表述為第一積(基數(shù)乘以當(dāng)前余數(shù)的第一整數(shù)部分)減去第二積。第二積等于當(dāng)前余數(shù)的第一整數(shù)部分減去當(dāng)前余數(shù)的第一整數(shù)部分乘以Y′的積,并且Y′已知為1-縮放后的分母。如果我們?cè)诘诙e上分配負(fù)號(hào)(由于第二積一定要從第一積中減去),則所述等式將變?yōu)榈谝环e加上當(dāng)前余數(shù)的第一整數(shù)部分的相反值與當(dāng)前余數(shù)的第一整數(shù)部分乘以Y′的正積值(負(fù)號(hào)變?yōu)檎?。
因此,用于求解商的各個(gè)數(shù)位的整個(gè)等式可以被表達(dá)為從表示為當(dāng)前余數(shù)的第一整數(shù)部分乘以基數(shù)的第一積中減去當(dāng)前余數(shù)的第一整數(shù)部分,然后減去將當(dāng)前余數(shù)的第一整數(shù)部分乘以Y′的積,并且Y′等于1-縮放后的分母。
在已經(jīng)重新表述并且分解了原始的除法計(jì)算后,我們可以返回到圖1的討論中。在迭代循環(huán)中的第一積是當(dāng)前余數(shù)乘以基數(shù)(如在172處所示),接著在174處,我們從第一積中減去當(dāng)前余數(shù)的第一整數(shù)部分。然后,在176處,我們加上Y′乘以當(dāng)前余數(shù)的第一整數(shù)部分的積,其中Y′等于1-縮放后的分母。由此,在178處,得到的總和被更新為當(dāng)前余數(shù)的新值,處理然后在170處再次繼續(xù),直到達(dá)到所期望的精度或者當(dāng)前余數(shù)等于0。一旦如此,在180處提供商的所有數(shù)位,直至所期望的或者所配置的所需精度。
在執(zhí)行高基數(shù)除法時(shí),需要微處理器內(nèi)的大多數(shù)空間或區(qū)域,并且相應(yīng)地需要大多數(shù)功耗的處理是除數(shù)乘以某個(gè)整數(shù)N的計(jì)算。傳統(tǒng)的體系結(jié)構(gòu)可以按照縮放后的分子除以縮放后的分母的形式來(lái)改寫(xiě)原始的除法計(jì)算,以便獲得處理效率,這樣一來(lái)N就是當(dāng)前余數(shù)的第一部分,但是這些傳統(tǒng)體系結(jié)構(gòu)沒(méi)有按照在本發(fā)明的實(shí)施方案中所給出的全新方式(1-Y′)來(lái)分解縮放后的分母。結(jié)果,在傳統(tǒng)體系結(jié)構(gòu)中,這種計(jì)算的數(shù)據(jù)寬度超過(guò)了求解除法計(jì)算所需的寬度。這是因?yàn)闆](méi)有被分解為數(shù)學(xué)等效形式(1-Y′)的縮放后分母將不包括任何無(wú)效的前導(dǎo)1或0。因此,利用傳統(tǒng)技術(shù),縮放后的分母(其具有達(dá)到所需精度的有效數(shù)位)在乘以當(dāng)前余數(shù)的第一部分時(shí)將超過(guò)期望的精度級(jí)。
相反,本發(fā)明的實(shí)施方案對(duì)確定縮放后的分母乘以當(dāng)前余數(shù)的第一部分的積的處理進(jìn)行分解,使得在執(zhí)行除法計(jì)算時(shí)所需的數(shù)據(jù)寬度減小。這是因?yàn)閅′被表示為1-縮放后的分母(近似為1),因而Y′將包括等于0或1的一個(gè)或多個(gè)無(wú)效前導(dǎo)數(shù)位。因此,在執(zhí)行該乘法時(shí),需要更少的數(shù)據(jù)寬度來(lái)獲得最終的積。乘法的數(shù)據(jù)寬度就是期望精度的數(shù)據(jù)寬度。相應(yīng)地,實(shí)現(xiàn)本發(fā)明實(shí)施方案的微處理器體系結(jié)構(gòu)與傳統(tǒng)技術(shù)相比,可以用更少的空間和更少的功耗來(lái)實(shí)現(xiàn)高基數(shù)除法。本領(lǐng)域的普通技術(shù)人員將認(rèn)識(shí)到,功率效率直接正比于所使用的區(qū)域或空間,由于本發(fā)明的實(shí)施方案需要更少的區(qū)域或空間,所以需要更少的功耗。
此外,本發(fā)明實(shí)施方案中的全新分解和處理還更宜于修改為適于基于單元的微處理器設(shè)計(jì)。隨著微處理器單元復(fù)雜度的提高,基于單元的設(shè)計(jì)已經(jīng)成為減少上市等待時(shí)間所需要考慮的重要設(shè)計(jì)因素。例如,在除法迭代結(jié)束時(shí)的舍入運(yùn)算需要對(duì)余數(shù)執(zhí)行進(jìn)位傳送(carry-propagate)加法。本發(fā)明的實(shí)施方案可以使用以下加法器單元,該單元處理與微處理器體系結(jié)構(gòu)下高基數(shù)除法的期望精度相關(guān)聯(lián)的正常數(shù)據(jù)寬度。
相反,傳統(tǒng)體系結(jié)構(gòu)所需的加法器單元需要處理超過(guò)期望精度級(jí)的數(shù)據(jù)寬度,這是因?yàn)楫?dāng)前余數(shù)與縮放后分母的乘積產(chǎn)生了超過(guò)期望精度級(jí)的有效數(shù)位。舉另一個(gè)例子,很多微處理器體系結(jié)構(gòu)都需要專(zhuān)門(mén)的乘法器單元,用于在需要完成高基數(shù)除法時(shí)執(zhí)行乘法運(yùn)算。本發(fā)明的實(shí)施方案為了完成高基數(shù)除法,不需要這樣的專(zhuān)門(mén)乘法器單元。
圖2中的圖200根據(jù)本發(fā)明的實(shí)施方案描繪了用于執(zhí)行超高基數(shù)除法的一種機(jī)器實(shí)現(xiàn)。機(jī)器體系結(jié)構(gòu)可以包括在執(zhí)行高基數(shù)除法時(shí)用于加法器和乘法器的標(biāo)準(zhǔn)單元庫(kù)相關(guān)體系結(jié)構(gòu)。在圖200中描繪的機(jī)器實(shí)現(xiàn)方案僅是示意性的而非限制性的。由此,也可以使用多種其他硬件、軟件和/或固件的配置或組合,而不會(huì)偏離本發(fā)明的實(shí)施方案。
復(fù)用器(Mux)201接收到位寬度為L(zhǎng)位的第一操作數(shù)X。同時(shí)地,并行地或者隨后,Mux 202接收到數(shù)據(jù)寬度為L(zhǎng)位的第二操作數(shù)Y。操作數(shù)X與超高基數(shù)除法的分子相關(guān),操作數(shù)Y與超高基數(shù)除法的分母相關(guān)。L是所述機(jī)器體系結(jié)構(gòu)用來(lái)以期望精度執(zhí)行超高基數(shù)除法計(jì)算的有效數(shù)位的位數(shù)。機(jī)器級(jí)的基數(shù)(r)是2的二進(jìn)制冪,其中所述冪被表示為m(例如,2m)。
Y被饋給近似倒數(shù)表數(shù)據(jù)結(jié)構(gòu)203,以便獲得Y的近似倒數(shù)因子。與此同時(shí),X和Y被饋給Mux 204。另外,近似倒數(shù)因子也被提供給Mux 205。接下來(lái),由Mux或加法器206(也可以是乘法器)使用從Mux 205獲得的近似倒數(shù)因子產(chǎn)生X和Y的部分積的和。Mux 205一次將近似倒數(shù)的m位饋給Mux或加法器206以供處理。乘法器206(也可以是Mux或加法器)將近似倒數(shù)因子的m位與X和Y相乘,以將原始除法計(jì)算重新表述為縮放后的X除以縮放后的Y的形式,其中縮放后的Y現(xiàn)在近似或接近于值1,因?yàn)閅的近似倒數(shù)正與Y相乘。
乘法器206被設(shè)計(jì)為處理m乘L位寬數(shù)組的計(jì)算。當(dāng)乘法器206是加法器206時(shí),該加法器被設(shè)計(jì)為處理L位加L位的加法。然后在乘法器206中調(diào)整縮放后的Y從而表示為Y′=1-B乘以縮放后的Y,其中B是Y的近似倒數(shù)因子)。這被用來(lái)通過(guò)將縮放后的Y表示為Y′,產(chǎn)生前導(dǎo)無(wú)效位(前面參考圖1討論為前導(dǎo)的無(wú)效0或1),從而分解除法計(jì)算。因?yàn)檫@樣一來(lái),圖200的體系結(jié)構(gòu)就可以利用與被設(shè)計(jì)來(lái)分別處理具有L乘m的位數(shù)組大小或者將L位與L位相加的計(jì)算的單元乘法器和加法器相關(guān)聯(lián)的標(biāo)準(zhǔn)體系結(jié)構(gòu)來(lái)處理高基數(shù)除法。相反,傳統(tǒng)的體系結(jié)構(gòu)將會(huì)需要能夠處理m乘(m+L)位寬數(shù)組的乘法器或者能夠處理m+L數(shù)據(jù)位寬的相加運(yùn)算的加法器。然后,X′在乘法器206中與r(例如表示為2m的基數(shù))相乘。這種有效位的減少將在接下來(lái)通過(guò)圖200的迭代來(lái)實(shí)現(xiàn)。然而,本領(lǐng)域的普通技術(shù)人員將認(rèn)識(shí)到,這實(shí)際上根本不是乘法,所要做的不過(guò)是當(dāng)某個(gè)數(shù)N的倍數(shù)與基數(shù)r相乘時(shí),移動(dòng)二進(jìn)制的小數(shù)點(diǎn)或者簡(jiǎn)單的位對(duì)齊。
前導(dǎo)數(shù)位(前面參考圖1時(shí)被討論為當(dāng)前余數(shù)的第一整數(shù)部分)在加法器207中被剝除,并且在寄存器208中被存儲(chǔ)為p。結(jié)尾數(shù)位在加法器207中被剝除,并被提供給Mux209。這些結(jié)尾數(shù)位被表示為R′。接著,為了例如當(dāng)R′的最初一些位大于某個(gè)閾值時(shí)調(diào)整p以實(shí)現(xiàn)舍入(例如,十進(jìn)制的小數(shù)部分大于或等于0.5時(shí)舍入為1),在一些實(shí)施方案中可以進(jìn)行調(diào)整,從而在Mux或加法器210中進(jìn)行舍入,以將R′近似為一個(gè)稍高的值。例如,在十進(jìn)制r的當(dāng)前余數(shù)被表示為0.478時(shí),p可以被認(rèn)為是4(第一整數(shù)部分),R′可以被認(rèn)為是0.78。在這個(gè)實(shí)施例中,0.78可以在Mux或加法器210中被舍入為1。調(diào)整后的R′值在寄存器211中被存儲(chǔ)為d。這一舍入操作被用來(lái)在加法器212中將p調(diào)整為用于商數(shù)位q的潛在舍入(雖然不總是需要或要求)值,所述商數(shù)位q被存儲(chǔ)在寄存器213中。
到目前為止的討論用來(lái)為期望的商Q確定第一和初始數(shù)位q0。在圖200中的體系結(jié)構(gòu)被設(shè)計(jì)為迭代多次,從而以期望的精度產(chǎn)生完整的Q,或者直到當(dāng)前余數(shù)為0。Q達(dá)到期望精度的迭代次數(shù)將是L/m,其中L是期望精度所需的有效數(shù)位的位數(shù),m是圖200被設(shè)計(jì)來(lái)每次迭代為高基數(shù)除法計(jì)算所處理的比特位數(shù)。
接下來(lái)產(chǎn)生Q的迭代可以如下進(jìn)行。在每次迭代中Y′被饋給Mux 202,從Mux 204到乘法器206的流程不變。Mux或加法器206然后向加法器207提供Y′和先前所選擇的數(shù)位q。加法器207也接收在圖中表示為d的結(jié)尾余數(shù)R′的先前潛在舍入表示,并且加法器207接收先前的R′。
在第一或初始迭代之后發(fā)生的迭代中,由于q可能已經(jīng)舍入了,所以可能需要在加法器207中對(duì)Q數(shù)位q的先前確定值進(jìn)行調(diào)整。因此,加法器207將先前的R′與d進(jìn)行比較,以發(fā)現(xiàn)q是否已進(jìn)行舍入,如果q已經(jīng)舍入,則q被調(diào)整回q未舍入前的狀態(tài)。這樣做是為了在超高基數(shù)除法中對(duì)于所有的迭代都確保精確性。接著,加法器207將當(dāng)前余數(shù)組裝為q+R′,并且將其與基數(shù)(r)相乘,以獲得用于除法下一周期的第一積。加法器207也將q乘以Y′,以形成第二積。接著,從第一積中減去q,和數(shù)與第二積相加。此時(shí),我們就擁有了確定下Q數(shù)位qj+1所必需的信息。
由此,加法器207剝除所得到的計(jì)算結(jié)果的最初一些位,并將其作為pj+1存儲(chǔ)在寄存器208中,所述結(jié)果的結(jié)尾部分變?yōu)橄乱唤Y(jié)尾余數(shù)R′j+1并被提供給Mux 209。接著,在210中R′被處理為用于d的一個(gè)值,并且結(jié)果作為dj+1被存儲(chǔ)在寄存器211中。注意,如果R′j+1原來(lái)不需要舍入,則dj+1的值是0并且仍被處理。然后,加法器212將dj+1與pj+1相加,以產(chǎn)生下一商數(shù)位qj+1,其被存儲(chǔ)在寄存器213中。
正如前面所討論的,高基數(shù)除法處理繼續(xù)進(jìn)行,直到達(dá)到期望的精度級(jí)(例如,Q有L位或者L/m次迭代),或者直到當(dāng)前余數(shù)的值為0。
圖200的處理也可以用公式符號(hào)來(lái)表示,以反映圖2中各種組件的處理邏輯。一種示例性的符號(hào)如下所述。在預(yù)處理迭代中,我們確定Y′應(yīng)當(dāng)被分解或重新表示為前導(dǎo)無(wú)效位可被表示為B=Y(jié)的近似倒數(shù)并且Y′=1-B×Y的格式。
初始化或第一次迭代可被表示為初始化p0+R′0=X′,其中X′是縮放后的X(例如分子),Q0=0,j←0,r=2m=基數(shù),其中下標(biāo)0表示初始或第一次迭代,使得j的值=0,標(biāo)識(shí)出第一迭代。商數(shù)位選擇然后可被表示為δj=(r×Rj′)的四舍五入,qj+1=rpj+δj。商數(shù)位選擇開(kāi)始了圖200中的主處理循環(huán)。如上所述,商數(shù)位qj+1可以被舍入,因而δj反映了在圖200中正對(duì)商數(shù)位qj+1所進(jìn)行的調(diào)整。另外,在主處理循環(huán)中,余數(shù)處理可以被表示為pj+1+R′j+1=r×R′j+qj+1×Y′-δj。接著,利用下一選擇的商數(shù)位qj+1所進(jìn)行的商更新處理可被表示為Qj+1=Qj+qj+1/rj+1。j←j+1。最后,迭代返回商數(shù)位選擇,直到商已有了L位(L/m次迭代)。
已經(jīng)展示了如何以全新的方式來(lái)分解超高基數(shù)除法,以允許微處理器體系結(jié)構(gòu)使用窄數(shù)據(jù)路徑來(lái)完成處理。此外,本發(fā)明的實(shí)施方案允許使用標(biāo)準(zhǔn)單元庫(kù)來(lái)處理超高基數(shù)除法。結(jié)果,實(shí)現(xiàn)本發(fā)明實(shí)施方案的技術(shù)的微處理器體系結(jié)構(gòu)就可以獲得更高空間效率的方案,從而導(dǎo)致功耗下降。
此外,可以理解的是,僅是出于示意的目的給出了圖200。因此,可以預(yù)見(jiàn)到其他單元庫(kù)的配置來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方案的新穎分解。因此,本發(fā)明的實(shí)施方案想要包括能夠?qū)崿F(xiàn)這里給出的全新基數(shù)除法分解的任何配置。
圖3圖示了根據(jù)本發(fā)明一個(gè)實(shí)施方案的超高基數(shù)除法系統(tǒng)300的圖。該高基數(shù)除法系統(tǒng)包括數(shù)據(jù)結(jié)構(gòu)310和處理器320。所述處理器包括邏輯321以及用于收容與高基數(shù)除法計(jì)算相關(guān)聯(lián)的分子322、分母323和商324的空間。圖3僅是示意性的而非限制性的,因?yàn)楹苋菀酌靼?,在一些?shí)施方案中數(shù)據(jù)結(jié)構(gòu)310也可以被包括在處理器320的區(qū)域或寄存器中。實(shí)際上,數(shù)據(jù)結(jié)構(gòu)310可訪問(wèn)邏輯321的任何實(shí)施方案都想要落入本發(fā)明的廣闊范圍內(nèi)。此外,邏輯321可以是硬件組件、固件組件、軟件組件或者硬件、固件和軟件的組合。
數(shù)據(jù)結(jié)構(gòu)310是整數(shù)的近似倒數(shù)表。在數(shù)據(jù)結(jié)構(gòu)310中表示的有效數(shù)位的位數(shù)是可配置的。此外,如參考圖1所討論的,由于可基于正用于超高基數(shù)除法的基數(shù)而容易地獲得因子,所以數(shù)據(jù)結(jié)構(gòu)310不需要存儲(chǔ)所有可能的整數(shù)。因此,對(duì)于十進(jìn)制基數(shù)而言,只需要在數(shù)據(jù)結(jié)構(gòu)310中表示整數(shù)2-9(不需要表示1,因?yàn)?的倒數(shù)就是1),因?yàn)樗衅渌恼麛?shù)可能性都可以使用基數(shù)從這些整數(shù)的因子中導(dǎo)出。當(dāng)然容易明白,為了獲得更高的精度,數(shù)據(jù)結(jié)構(gòu)310可以包括更大整數(shù)集合(例如2-99、10-99、11-99或十進(jìn)制基數(shù)的其他組合)的整數(shù)可能性。另外,數(shù)據(jù)結(jié)構(gòu)310不必在所有的實(shí)施方案中都是表的形式,因?yàn)榭梢栽L問(wèn)邏輯321的任何數(shù)據(jù)結(jié)構(gòu)310都可以使用。
一開(kāi)始,邏輯321訪問(wèn)分子322和分母323。接著,邏輯321訪問(wèn)數(shù)據(jù)結(jié)構(gòu)310以獲得分母323的近似倒數(shù)因子。在一些實(shí)施方案中,例如當(dāng)分母323沒(méi)有直接在數(shù)據(jù)結(jié)構(gòu)310中被直接表示出來(lái)時(shí),邏輯321可能需要使用與超高基數(shù)除法相關(guān)聯(lián)的基數(shù),根據(jù)從數(shù)據(jù)結(jié)構(gòu)310中獲得的值導(dǎo)出近似倒數(shù)因子。
一旦近似因子被獲得或?qū)С?,邏?21就將分子322和分母323都乘以所述因子,從而以更有效率的方式來(lái)重新表述除法。此時(shí),分子322被表示為縮放后的分子,分母被表示為縮放后的分母??s放后的分母近似為1,這簡(jiǎn)化了除法。接著,縮放后的分母被分解成等效表達(dá)式,該表達(dá)式被用于處理除法。
所述等效表達(dá)式代表了這樣一個(gè)事實(shí),即除法將被迭代地處理,以求解商324數(shù)位。因此,如參考圖1和圖2所述,將由邏輯321來(lái)處理所述除法,以獲得當(dāng)前余數(shù)的新值,并且當(dāng)前余數(shù)的第一整數(shù)部分將是新的或下一商數(shù)位。每個(gè)處理周期迭代處理都產(chǎn)生一個(gè)新的商324數(shù)位。邏輯321通過(guò)估算第一積的表達(dá)式,并且減去當(dāng)前余數(shù)的第一整數(shù)部分與由當(dāng)前余數(shù)的第一整數(shù)部分乘以1減縮放后分母的積相減的和數(shù),來(lái)確定每個(gè)新的當(dāng)前余數(shù)。
因此,邏輯321在一些實(shí)施方案中出于效率的目的,將縮放后的分母重新表述為1減去縮放后的分母。邏輯321然后在初始化期間將這個(gè)值存儲(chǔ)在處理器320內(nèi)或者處理器320可以訪問(wèn)的存儲(chǔ)器內(nèi)。由于修改后的縮放后分母近似為1,所以當(dāng)邏輯321存儲(chǔ)1減去縮放后分母的和數(shù)時(shí),該和數(shù)的一個(gè)或多個(gè)前導(dǎo)數(shù)位將是無(wú)效的(例如,根據(jù)基數(shù)的因子為0或1)。因此,通過(guò)執(zhí)行這一處理,相比于傳統(tǒng)技術(shù)而言減少了計(jì)算高基數(shù)除法所需的數(shù)據(jù)寬度。這導(dǎo)致可以更有效地使用處理器320內(nèi)的空間,并且減小功耗。此外,這允許微處理器體系結(jié)構(gòu)使用標(biāo)準(zhǔn)單元庫(kù)來(lái)執(zhí)行超高基數(shù)除法。相反,傳統(tǒng)的體系結(jié)構(gòu)需要專(zhuān)門(mén)的單元庫(kù)來(lái)處理超高基數(shù)除法。
接著,邏輯321進(jìn)入一個(gè)處理循環(huán),以迭代地確定超高基數(shù)除法的商324。在第一次迭代過(guò)程中,第一商數(shù)位是縮放后分子的第一整數(shù)部分,因?yàn)榭s放后的分母近似等于1。在一些實(shí)施方案中,邏輯321可以基于與當(dāng)前余數(shù)的結(jié)尾部分(第一次迭代的縮放后分子的結(jié)尾部分)相關(guān)聯(lián)的數(shù)位值向上/向下舍入被迭代確定的商數(shù)位,從而對(duì)這些商數(shù)位進(jìn)行調(diào)整。
在第一次迭代后的每次處理迭代中,邏輯321為當(dāng)前余數(shù)確定一個(gè)新值。邏輯321取用先前當(dāng)前余數(shù)的第一整數(shù)部分,并將它乘以基數(shù),以獲得第一積。接著,從第一積中減去先前當(dāng)前余數(shù)的第一整數(shù)部分。然后,通過(guò)將所保存的并且重新表述的縮放后分母(1一縮放后的分母)乘以先前當(dāng)前余數(shù)的第一整數(shù)部分,從而獲得第二積。最后,第二積與第一積相加,以獲得當(dāng)前余數(shù)的新值。然后,這個(gè)新的當(dāng)前余數(shù)將使它的第一整數(shù)部分被用作正在被迭代組裝的商324的下一商數(shù)位。此外,新的當(dāng)前余數(shù)在邏輯321中被反向循環(huán)用于另一個(gè)處理周期,其中新的當(dāng)前余數(shù)變?yōu)橄惹爱?dāng)前余數(shù)。
邏輯321繼續(xù)這一處理,直到達(dá)到期望精度,或者直到當(dāng)前余數(shù)值變?yōu)?。此外,如前所述并且在一些實(shí)施方案中,在每個(gè)處理周期中,在提供商324的下一商數(shù)位之前,可以基于當(dāng)前余數(shù)的結(jié)尾部分來(lái)向上/向下舍入當(dāng)前余數(shù)的第一整數(shù)部分。
本領(lǐng)域的普通技術(shù)人員讀到以上公開(kāi)內(nèi)容后將會(huì)理解如何使用本發(fā)明的實(shí)施方案,利用窄數(shù)據(jù)路徑實(shí)現(xiàn)超高基數(shù)除法。窄數(shù)據(jù)路徑導(dǎo)致比傳統(tǒng)方法更少的空間需求和更少的功耗。此外,在本發(fā)明各種實(shí)施方案中所討論的技術(shù)保持了傳統(tǒng)系統(tǒng)的正常處理吞吐率,在一些情況下還提高了處理吞吐率。另外,本發(fā)明各種實(shí)施方案的原則可以與標(biāo)準(zhǔn)微處理器體系結(jié)構(gòu)一同使用,不像傳統(tǒng)技術(shù)需要專(zhuān)門(mén)的單元庫(kù)來(lái)執(zhí)行超高基數(shù)除法。
可以理解,以上說(shuō)明只是示意性的而非限制性的。本領(lǐng)域的技術(shù)人員在閱讀了以上說(shuō)明后將清楚很多其他的實(shí)施方案。因此,本發(fā)明實(shí)施方案的范圍應(yīng)當(dāng)參考所附的權(quán)利要求書(shū)來(lái)確定,也包括這些權(quán)利要求的等同物的全部范圍。
需要強(qiáng)調(diào)的是,說(shuō)明書(shū)摘要遵守37C.F.R.§1.72(b)的規(guī)定,即允許讀者快速理解技術(shù)公開(kāi)內(nèi)容的本質(zhì)和要旨。說(shuō)明書(shū)摘要只是便于理解,不用來(lái)解釋或限制權(quán)利要求書(shū)的范圍或含義。
在以上的具體實(shí)施方式
部分中,多種特征被分組到單個(gè)實(shí)施方案中,以使公開(kāi)更加流暢。這種公開(kāi)方法不想被解釋為反映了這樣一種意向,即本發(fā)明所要求保護(hù)的實(shí)施方案比每個(gè)權(quán)利要求中所明確記載的方案需要更多的特征。相反,正如所附的權(quán)利要求所反映的那樣,創(chuàng)造性的主題由單個(gè)公開(kāi)實(shí)施方案中的一部分特征構(gòu)成。因此,所附的權(quán)利要求被合并到“具體實(shí)施方式
”部分中,每個(gè)權(quán)利要求獨(dú)自代表一個(gè)單獨(dú)的示例性實(shí)施方案。
權(quán)利要求
1.一種在微處理器體系結(jié)構(gòu)中執(zhí)行高基數(shù)除法的方法,包括利用一個(gè)因子預(yù)縮放分子和分母,以產(chǎn)生縮放后的分子和縮放后的分母;以及迭代地組裝商的一部分,所述組裝是通過(guò)用當(dāng)前余數(shù)乘以基數(shù),并且減去所述當(dāng)前余數(shù)的整數(shù)部分,并且加上所述當(dāng)前余數(shù)的所述整數(shù)部分與1減去所述縮放后分母的和數(shù)的乘積來(lái)進(jìn)行的。
2.如權(quán)利要求1所述的方法,還包括通過(guò)求所述分母的倒數(shù)的近似值,獲得所述因子。
3.如權(quán)利要求2所述的方法,其中在獲得步驟中,數(shù)據(jù)結(jié)構(gòu)查找操作提供所述分母的倒數(shù)。
4.如權(quán)利要求2所述的方法,其中在預(yù)縮放步驟中,所述縮放后的分子包括與所述因子相乘的所述分子,并且所述縮放后的分母包括與所述因子相乘的所述分母。
5.如權(quán)利要求1所述的方法,其中在迭代組裝的步驟中,所述當(dāng)前余數(shù)的整數(shù)部分包括截去與所述當(dāng)前余數(shù)相關(guān)聯(lián)的第一數(shù)位。
6.如權(quán)利要求1所述的方法,其中在迭代組裝的步驟中,所述和數(shù)導(dǎo)致在用所述分子除以所述分母時(shí)數(shù)據(jù)寬度的減小。
7.如權(quán)利要求1所述的方法,還包括一旦達(dá)到期望的精度或者一旦獲得等于0的當(dāng)前余數(shù),就產(chǎn)生所述商。
8.一種在微處理器體系結(jié)構(gòu)中執(zhí)行高基數(shù)除法的方法,包括為原始的除法建立包括縮放后除數(shù)的等效數(shù)學(xué)等式,其中所述縮放后的除數(shù)當(dāng)被用在所述等效數(shù)學(xué)等式時(shí)減少了求解所述除法所需的多個(gè)有效數(shù)位;以及迭代地選擇商數(shù)位并且在所述等效數(shù)學(xué)等式中使用所述縮放后的除數(shù),直到求解出期望數(shù)量的商數(shù)位。
9.如權(quán)利要求8所述的方法,其中在建立步驟中,所述等效數(shù)學(xué)等式等于從第一和數(shù)中減去第二和數(shù),并且其中所述第一和數(shù)是當(dāng)前余數(shù)的整數(shù)第一部分與基數(shù)的乘積,并且其中所述第二和數(shù)等于所述當(dāng)前余數(shù)的負(fù)值與以下乘積相加,所述乘積是所述當(dāng)前余數(shù)的所述整數(shù)第一部分與1減去所述縮放后除數(shù)的和數(shù)相乘的結(jié)果。
10.如權(quán)利要求8所述的方法,其中在建立步驟中,所述縮放后的除數(shù)等于原始除數(shù)乘以所述原始除數(shù)的近似倒數(shù)。
11.如權(quán)利要求8所述的方法,其中在建立步驟中,所述等效數(shù)學(xué)等式包括將原始分子和原始除數(shù)重新表述為縮放后的分子除以縮放后的分母。
12.如權(quán)利要求8所述的方法,其中在迭代選擇的步驟中,基于當(dāng)前余數(shù)的結(jié)尾部分來(lái)舍入所述商數(shù)位。
13.一種在微處理器體系結(jié)構(gòu)中執(zhí)行高基數(shù)除法的方法,包括使用縮放后的除數(shù),以等效表達(dá)式來(lái)重新表述除法;從表示在所述等效表達(dá)式中的分子的第一數(shù)位中選擇第一商數(shù)位;通過(guò)將當(dāng)前余數(shù)的第一部分與所述當(dāng)前余數(shù)的結(jié)尾部分相分離,并且在所述等效表達(dá)式中與所述縮放后的除數(shù)一起使用所述各部分,來(lái)處理所述除法,直到達(dá)到期望數(shù)量的所述除法的商數(shù)位。
14.如權(quán)利要求13所述的方法,其中在選擇和處理步驟中,當(dāng)所述結(jié)尾部分大于預(yù)定的閾值時(shí),舍入所述商數(shù)位。
15.如權(quán)利要求13所述的方法,其中在重新表述步驟中,所述縮放后的除數(shù)等于原始除數(shù)的近似倒數(shù)乘以所述原始除數(shù)。
16.如權(quán)利要求15所述的方法,其中在重新表述步驟中,所述縮放后的除數(shù)被進(jìn)一步修改為等于1減去所述縮放后的除數(shù)。
17.一種在微處理器體系結(jié)構(gòu)中執(zhí)行高基數(shù)除法的方法,包括用縮放后的除數(shù)分解除法計(jì)算,其中所述分解導(dǎo)致所述除法計(jì)算在數(shù)學(xué)上等效的表示;為所述除法選擇商數(shù)位;通過(guò)與所述數(shù)學(xué)上等效的表示一起使用所述縮放后的除數(shù),計(jì)算下一余數(shù),并且其中所述縮放后的除數(shù)等于1減去原始除數(shù)的近似倒數(shù)因子;以及重復(fù)選擇和計(jì)算的處理,直到為所述除法計(jì)算確定了期望數(shù)量的商數(shù)位。
18.如權(quán)利要求17所述的方法,其中在計(jì)算步驟中,所述近似倒數(shù)因子是使用與所述除法計(jì)算相關(guān)聯(lián)的基數(shù),從倒數(shù)數(shù)據(jù)結(jié)構(gòu)中獲得的。
19.如權(quán)利要求17所述的方法,其中在分解步驟中,所述數(shù)學(xué)上等效的表示等于從第一積中減去一個(gè)和數(shù),所述第一積等于所述當(dāng)前余數(shù)乘以基數(shù),并且所述和數(shù)等于所述當(dāng)前余數(shù)正的第一部分加上負(fù)的第二積,其中所述第二積等于所述縮放后的除數(shù)乘以所述當(dāng)前余數(shù)的所述第一部分。
20.一種具有機(jī)器可訪問(wèn)介質(zhì)的制品,所述介質(zhì)具有相關(guān)指令,其中所述指令在被執(zhí)行時(shí)產(chǎn)生高基數(shù)除法的商,所述機(jī)器包括至少一個(gè)執(zhí)行以下操作的組件求分母的倒數(shù),以獲得近似因子;將分子與所述因子相乘,以獲得縮放后的分子;將所述分母與所述因子相乘,以獲得縮放后的分母;以及將所述縮放后的分子的第一數(shù)位部分用作所述商的第一部分,并且將當(dāng)前余數(shù)設(shè)置為所述縮放后的分子;將所述縮放后的分母分解為用于所述超高基數(shù)除法的等效表達(dá)式,該表達(dá)式導(dǎo)致多個(gè)前導(dǎo)無(wú)效數(shù)位;以及通過(guò)用所述當(dāng)前余數(shù)乘以基數(shù)以獲得第一積,并且從所述第一積中減去所述等效表達(dá)式,從而迭代地使用所述當(dāng)前余數(shù),其中得到的和數(shù)被用來(lái)修改所述當(dāng)前余數(shù)。
21.如權(quán)利要求20所述的制品,還包括用于以下操作的指令從表中獲得達(dá)到期望精度的所述因子。
22.如權(quán)利要求20所述的制品,其中在分解操作中,所述等效表達(dá)式等于所述當(dāng)前余數(shù)的第一整數(shù)部分減去第二積,所述第二積表示為所述當(dāng)前余數(shù)的所述第一整數(shù)部分乘以1減去所述縮放后分母的第二和數(shù)。
23.如權(quán)利要求22所述的制品,還包括用于以下操作的指令在迭代地使用所述當(dāng)前余數(shù)之前,求解并保存所述第二和數(shù)。
24.如權(quán)利要求20所述的制品,還包括用于以下操作的指令使用被迭代修改的當(dāng)前余數(shù)來(lái)迭代地組裝商,直到達(dá)到期望的精度或者直到所述當(dāng)前余數(shù)獲得0值。
25.如權(quán)利要求20所述的制品,其中在迭代使用的操作中,當(dāng)執(zhí)行所述分子除以分母的除法時(shí),所述機(jī)器的空間利用率未被提高到期望精度以上。
26.一種高基數(shù)除法系統(tǒng),包括以期望精度具有用于倒數(shù)的近似因子的數(shù)據(jù)結(jié)構(gòu);可訪問(wèn)所述數(shù)據(jù)結(jié)構(gòu)的處理器;在所述處理器上進(jìn)行處理,以接收與高基數(shù)除法相關(guān)聯(lián)的分子和分母的邏輯;以及其中所述邏輯使用所述數(shù)據(jù)結(jié)構(gòu)來(lái)獲得分母因子,并且將所述高基數(shù)除法重新表述為與所述分母因子相乘的所述分子除以與所述分母因子相乘的所述分母的除法,并且所述邏輯通過(guò)從第一積中減去正在改變的當(dāng)前余數(shù)的整數(shù)第一部分,并且加上第二積來(lái)迭代地形成商,所述第一積是通過(guò)將所述當(dāng)前余數(shù)乘以基數(shù)而獲得的,所述第二積是通過(guò)將所述正在改變的當(dāng)前余數(shù)的整數(shù)第一部分乘以1減去與所述分母因子相乘的所述分母的和數(shù)而獲得的。
27.如權(quán)利要求26所述的高基數(shù)除法系統(tǒng),其中所述處理器在所述邏輯迭代地形成所述商之前保留所述和數(shù)。
28.如權(quán)利要求26所述的高基數(shù)除法系統(tǒng),其中所述邏輯包括與所述處理器相關(guān)聯(lián)的硬連線組件。
29.如權(quán)利要求26所述的高基數(shù)除法系統(tǒng),其中所述邏輯包括與所述處理器相關(guān)聯(lián)的固件或軟件。
30.如權(quán)利要求26所述的高基數(shù)除法系統(tǒng),其中所述邏輯使用標(biāo)準(zhǔn)單元庫(kù)的加法器和乘法器來(lái)執(zhí)行所述高基數(shù)除法。
31.如權(quán)利要求26所述的高基數(shù)除法系統(tǒng),其中所述第二積的位寬等于L,其中L是與所述商的期望精度相關(guān)聯(lián)的數(shù)據(jù)位寬。
32.如權(quán)利要求26所述的高基數(shù)除法系統(tǒng),其中所述分母因子的期望精度對(duì)于所述數(shù)據(jù)結(jié)構(gòu)來(lái)說(shuō)是可配置的。
全文摘要
本發(fā)明提供了使用窄數(shù)據(jù)路徑實(shí)現(xiàn)超高基數(shù)除法的方法、機(jī)器和系統(tǒng)。接收到用于超高基數(shù)除法計(jì)算的分子和分母。從一個(gè)數(shù)據(jù)結(jié)構(gòu)中獲得所述分母的近似倒數(shù)。將所述分子和分母根據(jù)所述倒數(shù)進(jìn)行預(yù)縮放。所述分母被分解為一個(gè)等效表達(dá)式,其導(dǎo)致多個(gè)前導(dǎo)無(wú)效值。接著,通過(guò)形成第一積并且減去所述等效表達(dá)式來(lái)修改當(dāng)前余數(shù),從而迭代地組裝商。
文檔編號(hào)G06F7/48GK1761938SQ200480007742
公開(kāi)日2006年4月19日 申請(qǐng)日期2004年2月25日 優(yōu)先權(quán)日2003年3月21日
發(fā)明者唐平, 沃倫·弗格森 申請(qǐng)人:英特爾公司