使用大和小浮點(diǎn)值二者來(lái)執(zhí)行算術(shù)運(yùn)算的制作方法
【專(zhuān)利摘要】提供用于在數(shù)據(jù)處理系統(tǒng)中執(zhí)行浮點(diǎn)算術(shù)運(yùn)算的機(jī)制。接收浮點(diǎn)算術(shù)運(yùn)算的多個(gè)浮點(diǎn)操作數(shù),并且對(duì)多個(gè)浮點(diǎn)操作數(shù)中的至少一個(gè)浮點(diǎn)操作數(shù)的尾數(shù)中的位進(jìn)行移位。尾數(shù)中被移位到至少一個(gè)浮點(diǎn)操作數(shù)的尾數(shù)的位范圍以外的一個(gè)或者多個(gè)位被存儲(chǔ),并且基于所存儲(chǔ)的、該尾數(shù)中被移位到至少一個(gè)浮點(diǎn)操作數(shù)的尾數(shù)的位范圍以外的一個(gè)或者多個(gè)位生成矢量值。基于矢量值和多個(gè)浮點(diǎn)操作數(shù)生成用于浮點(diǎn)算術(shù)運(yùn)算的結(jié)果值。
【專(zhuān)利說(shuō)明】使用大和小浮點(diǎn)值二者來(lái)執(zhí)行算術(shù)運(yùn)算
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)總體涉及一種改進(jìn)的數(shù)據(jù)處理裝置和方法,并且更具體地涉及用于使用大和小浮點(diǎn)值二者來(lái)執(zhí)行算術(shù)運(yùn)算的機(jī)制。
【背景技術(shù)】
[0002]術(shù)語(yǔ)“浮點(diǎn)”是指一種用可以支持寬的值范圍的方式表示實(shí)數(shù)的方法。利用浮點(diǎn)格式,數(shù)一般由固定數(shù)目的有效數(shù)位近似地表示并且使用基數(shù)值和對(duì)應(yīng)指數(shù)來(lái)縮放。用于縮放的基數(shù)通常為2、10或者16、但也可以是適合于特定實(shí)現(xiàn)方式的任何基數(shù)值。可以確切地表示的典型數(shù)為以下形式:有效數(shù)位X基數(shù)、例如1.34x2'在計(jì)算系統(tǒng)內(nèi),這樣的浮點(diǎn)格式值包括表示浮點(diǎn)值的有效數(shù)位的有效位部分(或者尾數(shù)部分)和表示浮點(diǎn)值的指數(shù)部分的指數(shù)位部分而假設(shè)基數(shù)值在計(jì)算機(jī)系統(tǒng)架構(gòu)內(nèi)一致、例如基數(shù)為2。因此,浮點(diǎn)格式提供用于表示寬的值范圍的能力,該值范圍可以范圍從相對(duì)很大值到相對(duì)很小值。
【發(fā)明內(nèi)容】
[0003]在一個(gè)示例實(shí)施例中,提供一種在數(shù)據(jù)處理系統(tǒng)中用于執(zhí)行浮點(diǎn)算術(shù)運(yùn)算的方法。該方法包括在數(shù)據(jù)處理系統(tǒng)的硬件邏輯中接收浮點(diǎn)算術(shù)運(yùn)算的多個(gè)浮點(diǎn)操作數(shù)。該方法還包括由硬件邏輯對(duì)多個(gè)浮點(diǎn)操作數(shù)中的至少一個(gè)浮點(diǎn)操作數(shù)的尾數(shù)中的位進(jìn)行移位。另外,該方法包括由硬件邏輯存儲(chǔ)所述尾數(shù)中被移位到至少一個(gè)浮點(diǎn)操作數(shù)的尾數(shù)的位范圍以外的一個(gè)或者多個(gè)位。此外,該方法包括由硬件邏輯基于所存儲(chǔ)的、所述尾數(shù)中被移位到至少一個(gè)浮點(diǎn)操作數(shù)的尾數(shù)的有效的位范圍以外的一個(gè)或者多個(gè)位生成矢量值。另外,該方法包括由硬件邏輯基于矢量值和多個(gè)浮點(diǎn)操作數(shù)生成用于浮點(diǎn)算術(shù)運(yùn)算的結(jié)果值。
[0004]在其它示例實(shí)施例中,提供一種計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可用或者可讀介質(zhì),計(jì)算機(jī)可用或者可讀介質(zhì)具有計(jì)算機(jī)可讀程序。計(jì)算機(jī)可讀程序在計(jì)算設(shè)備上被執(zhí)行時(shí)使計(jì)算設(shè)備執(zhí)行以上關(guān)于方法示例實(shí)施例概述的操作中的各種操作和操作組合。
[0005]在另一示例實(shí)施例中,提供一種系統(tǒng)/裝置。該系統(tǒng)/裝置可以包括一個(gè)或者多個(gè)處理器和耦合到該一個(gè)或者多個(gè)處理器的存儲(chǔ)器。存儲(chǔ)器可以包括指令,該指令在由一個(gè)或者多個(gè)處理器執(zhí)行時(shí)使一個(gè)或者多個(gè)處理器執(zhí)行以上關(guān)于方法示例實(shí)施例概述的操作中的各種操作和操作組合。
[0006]本發(fā)明的這些和其它特征以及優(yōu)點(diǎn)將在本發(fā)明的示例實(shí)施例的以下具體描述中被描述并且將鑒于以下具體描述而變得為本領(lǐng)域普通技術(shù)人員所清楚。
[0007]將通過(guò)參照在結(jié)合附圖閱讀時(shí)的對(duì)示例實(shí)施例的以下具體描述最佳地理解本發(fā)明及其優(yōu)選實(shí)施方式以及更多目的和優(yōu)點(diǎn)。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0008][圖1]圖示浮點(diǎn)加法運(yùn)算的示例;
[0009][圖2]是圖示根據(jù)一個(gè)示例實(shí)施例的浮點(diǎn)加法運(yùn)算的示例框圖;[0010][圖3]是概述根據(jù)一個(gè)示例實(shí)施例的用于執(zhí)行浮點(diǎn)加法的示例浮點(diǎn)算術(shù)運(yùn)算的流程圖;并且
[0011][圖4]是概述其中可以實(shí)施示例實(shí)施例的方面的一個(gè)示例數(shù)據(jù)處理系統(tǒng)的示例框圖。
【具體實(shí)施方式】
[0012]示例實(shí)施例提供用于使用大和小浮點(diǎn)值二者來(lái)執(zhí)行算術(shù)運(yùn)算的機(jī)制。在一個(gè)示例實(shí)施例中,示例實(shí)施例的機(jī)制應(yīng)用于加法運(yùn)算,其中將各自表示為有效位和指數(shù)位的兩個(gè)或者更多浮點(diǎn)值一起相加以生成結(jié)果浮點(diǎn)值。示例實(shí)施例的機(jī)制提供用于用概率權(quán)值累加在尾數(shù)以下的位的能力,例如時(shí)間的1/2累加在尾數(shù)的范圍以外的一個(gè)位置、時(shí)間的1/4累加在尾數(shù)的范圍以外的兩個(gè)位置等。盡管將關(guān)于浮點(diǎn)加法運(yùn)算描述示例實(shí)施例,但是應(yīng)當(dāng)理解可以與包括減法、除法、乘法等的任何類(lèi)型的浮點(diǎn)算術(shù)運(yùn)算利用示例實(shí)施例。
[0013]計(jì)算機(jī)系統(tǒng)中的浮點(diǎn)表示基本上為實(shí)際值的近似值。例如可以使用與
0.3 (3x10^) >0.33,0.333等對(duì)應(yīng)的浮點(diǎn)值來(lái)表示值1/3,并且盡管這可以延伸至無(wú)窮數(shù)量的小數(shù)數(shù)位以獲得值1/3的越來(lái)越好的近似,但是浮點(diǎn)值將決不恰好等于1/3、即它是近似值。以相似方式,計(jì)算機(jī)系統(tǒng)架構(gòu)施加對(duì)可以在計(jì)算機(jī)系統(tǒng)架構(gòu)中表示的有效數(shù)位和指數(shù)數(shù)位數(shù)目的限制。這除了由于浮點(diǎn)表示使用的基數(shù)值而完全不能確切地表示一些數(shù)(例如基數(shù)為2的浮點(diǎn)格式不能確切地表示值1/3)這樣的事實(shí)外,也造成浮點(diǎn)表示是實(shí)數(shù)的近似。
[0014]就浮點(diǎn)值算 術(shù)而言,為了執(zhí)行算術(shù)運(yùn)算,必須調(diào)整操作數(shù),從而它們具有在算術(shù)運(yùn)算的操作數(shù)之中的一致指數(shù)值。這與科學(xué)表示法算術(shù)運(yùn)算相似,在科學(xué)表示法算術(shù)運(yùn)算中必須類(lèi)似地調(diào)整值以使指數(shù)對(duì)于值中的每個(gè)字段相同。例如在科學(xué)表示法中,在將值
1.58el和3.45e0相加時(shí),需要將值3.45e0調(diào)整成值0.345el、然后與值1.58el相加。這產(chǎn)生值1.925el。這對(duì)于如下計(jì)算系統(tǒng)中的浮點(diǎn)算術(shù)同樣成立,在這些計(jì)算系統(tǒng)中,必須對(duì)有效位和指數(shù)位進(jìn)行移位,從而操作數(shù)具有相同指數(shù)并且可以執(zhí)行算術(shù)運(yùn)算。
[0015]在浮點(diǎn)算術(shù)中,由于浮點(diǎn)值可以被用來(lái)表示很大值和很小值二者,所以情況經(jīng)??梢允墙M合相對(duì)小的浮點(diǎn)值與相對(duì)大的浮點(diǎn)值。在這樣的情況下,小浮點(diǎn)值在它們與大浮點(diǎn)值相加時(shí)經(jīng)常由于取整而丟失。這是由于浮點(diǎn)值是近似的這一性質(zhì)、以及對(duì)尾數(shù)位和指數(shù)位進(jìn)行移位以使指數(shù)值對(duì)于操作數(shù)相同以有助于算術(shù)運(yùn)算這一需求。
[0016]例如圖1圖示浮點(diǎn)加法運(yùn)算的示例。如圖1中所示,在包括指數(shù)部分112、122和位數(shù)部分114、124的浮點(diǎn)格式中提供操作數(shù)110和120中的每個(gè)操作數(shù)。在一些計(jì)算系統(tǒng)架構(gòu)中,浮點(diǎn)值110和120還可以包括符號(hào)位(未示出)。另外,在一些計(jì)算系統(tǒng)架構(gòu)中,取代如圖1中所示讓8個(gè)位用于指數(shù)和尾數(shù)中的每項(xiàng),可以對(duì)于指數(shù)和尾數(shù)使用其他數(shù)量個(gè)位,位的數(shù)量對(duì)于指數(shù)和尾數(shù)中的每個(gè)可以相同或者可以不同,即用于指數(shù)的位數(shù)可以與用于尾數(shù)的位數(shù)相同或者不同。
[0017]第一浮點(diǎn)值110讓指數(shù)部分112中的第四指數(shù)位設(shè)置成I而其余位設(shè)置成0,并且尾數(shù)部分114的第八位設(shè)置成I而其余位設(shè)置成O。這對(duì)應(yīng)于值128*2~8 = 128*256 =32,768。第二浮點(diǎn)值110具有值128*2~0 = 128。為了能夠?qū)⒌谝桓↑c(diǎn)值110的相對(duì)大的值與第二浮點(diǎn)值120的相對(duì)小的值相加,需要調(diào)整第二浮點(diǎn)值120的指數(shù)部分122和尾數(shù)部分124以使指數(shù)部分122與用于浮點(diǎn)值110的指數(shù)部分112相同。這涉及到對(duì)指數(shù)部分122的指數(shù)位和尾數(shù)部分124的尾數(shù)位進(jìn)行移位以如圖1中所示相應(yīng)地調(diào)整該值為浮點(diǎn)值130。也就是說(shuō),指數(shù)部分122的位被左移位,并且為了抵消指數(shù)位的左移位,位數(shù)部分124中的尾數(shù)位被右移位。
[0018]如圖1中所示,在一些情況下,指數(shù)部分122和位數(shù)部分124中的位的移位可能使得尾數(shù)的位被移位為超出計(jì)算機(jī)系統(tǒng)架構(gòu)支持的尾數(shù)位數(shù)、即浮點(diǎn)值的取整。換而言之,第二浮點(diǎn)值120的值比第一浮點(diǎn)值110相對(duì)小得多,使得它由于浮點(diǎn)值的近似性質(zhì)和對(duì)計(jì)算系統(tǒng)架構(gòu)有助于的位數(shù)的限制二者而相對(duì)地不顯著。也就是說(shuō),更小浮點(diǎn)值120的最高有效位為比更大浮點(diǎn)值110的最低有效位更低的量值。因此,這樣的更小浮點(diǎn)值實(shí)質(zhì)上消失并且在這樣的浮點(diǎn)算術(shù)運(yùn)算中被忽略而結(jié)果完全是更大浮點(diǎn)值140。
[0019]對(duì)于使用浮點(diǎn)算術(shù)運(yùn)算的一些應(yīng)用/功能,這樣的取整誤差或者近似是可接受的,即精確度損失不顯著。然而在其它應(yīng)用中,這樣的取整誤差或者近似可能負(fù)面地影響應(yīng)用或者計(jì)算系統(tǒng)功能的恰當(dāng)操作,例如累加小值、比如事件計(jì)數(shù)和統(tǒng)計(jì)量的功能或者應(yīng)用可能不能適應(yīng)這樣的取整誤差或者近似而未負(fù)面地影響功能。
[0020]例如在許多計(jì)算機(jī)系統(tǒng)架構(gòu)中,存儲(chǔ)器優(yōu)化功能/算法可能需要對(duì)用于每個(gè)存儲(chǔ)器區(qū)域的存儲(chǔ)器活動(dòng)進(jìn)行計(jì)數(shù)。這樣的存儲(chǔ)器優(yōu)化功能/算法的示例包括存儲(chǔ)器頁(yè)面替換算法、分層存儲(chǔ)器支持結(jié)構(gòu)等。這樣的存儲(chǔ)器優(yōu)化功能/算法需要寬的動(dòng)態(tài)浮點(diǎn)值范圍,而存儲(chǔ)開(kāi)銷(xiāo)低,因?yàn)閷?duì)于主存儲(chǔ)器的每個(gè)頁(yè)面需要計(jì)數(shù)器。因此,這些計(jì)數(shù)器利用在硬件、軟件或者硬件和軟件的組合中實(shí)施的浮點(diǎn)算術(shù)運(yùn)算,這些浮點(diǎn)算術(shù)運(yùn)算面臨以上討論的浮點(diǎn)算術(shù)運(yùn)算問(wèn)題。然而隨之準(zhǔn)確度損失在以這一方式累加計(jì)數(shù)器值時(shí)不可接受,因?yàn)闉榱藞?zhí)行各種存儲(chǔ)器優(yōu)化操作,具有對(duì)存儲(chǔ)器頁(yè)面活動(dòng)的準(zhǔn)確測(cè)量非常重要。
[0021]示例實(shí)施例提供用于補(bǔ)償在浮點(diǎn)算術(shù)運(yùn)算、例如由于浮點(diǎn)值尾數(shù)位的移位而執(zhí)行的取整期間的小浮點(diǎn)值損失的機(jī)制。利用示例實(shí)施例的機(jī)制,提供用于累加具有概率權(quán)值的在組合的尾數(shù)的最低有效位以下的位的功能。也就是說(shuō),在尾數(shù)的最低有效位以下的每個(gè)位位置具有每X數(shù)目的算術(shù)運(yùn)算使值與尾數(shù)相加的關(guān)聯(lián)概率權(quán)值,其中X是基于概率權(quán)值確定的整數(shù)值。例如對(duì)于緊接在最低有效位以下的位位置,每2個(gè)運(yùn)算或者對(duì)于浮點(diǎn)算術(shù)運(yùn)算的一半在尾數(shù)中累加一次在這一位位置中的值。對(duì)于在組合的尾數(shù)的范圍以外兩位的位位置,每4個(gè)運(yùn)算或者對(duì)于浮點(diǎn)算術(shù)運(yùn)算的四分之一在尾數(shù)中累加一次在這一位位置中的值。這對(duì)于在組合的尾數(shù)的有效位范圍以外上至在尾數(shù)以外的位位置最大數(shù)目的位位置中的每個(gè)位位置繼續(xù)。
[0022]為了實(shí)施這一功能,提供生成偽隨機(jī)矢量的邏輯,該偽隨機(jī)矢量具有架構(gòu)的支持尾數(shù)的最大寬度。從偽隨機(jī)數(shù)生成器生成隨機(jī)生成的矢量中的每個(gè)位,該每個(gè)位具有與在如下尾數(shù)范圍以外的位位置對(duì)應(yīng)的適當(dāng)概率分布,值在對(duì)更小浮點(diǎn)操作數(shù)的尾數(shù)進(jìn)行移位以調(diào)整指數(shù)值以與更大操作數(shù)的指數(shù)值匹配之后,存在于該尾數(shù)范圍內(nèi)。偽隨機(jī)生成的矢量與操作數(shù)的實(shí)際尾數(shù)相加,該操作數(shù)受到它的尾數(shù)的移位。然后使用浮點(diǎn)算術(shù)運(yùn)算以常規(guī)方式將所產(chǎn)生的位矢量求和到常規(guī)結(jié)果尾數(shù)中。
[0023]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在任何一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可用的程序代碼。
[0024]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置、器件或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的示例(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0025]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0026]計(jì)算機(jī)可讀介質(zhì)上包含的計(jì)算機(jī)代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于——無(wú)線、有線、光纜、射頻(RF)等等,或者上述的任意合適的組合。
[0027]可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java?、Smalltalk?、C++等,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如“C”語(yǔ)言或類(lèi)似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類(lèi)的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0028]下面將參照根據(jù)本發(fā)明示例實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0029]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)。
[0030]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的過(guò)程。
[0031]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專(zhuān)用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專(zhuān)用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
[0032]因此,可以在許多不同類(lèi)型的數(shù)據(jù)處理環(huán)境中利用示例實(shí)施例。為了提供用于描述示例實(shí)施例的具體單元和功能的背景。下文提供圖1和2作為其中可以實(shí)施示例實(shí)施例的方面的示例環(huán)境。應(yīng)當(dāng)理解圖1和2僅為示例而未旨在于斷定或者暗示關(guān)于其中可以實(shí)施本發(fā)明的方面或者實(shí)施例的環(huán)境的任何限制??梢赃M(jìn)行對(duì)描繪的環(huán)境的許多修改而未脫離本發(fā)明的精神實(shí)質(zhì)和范圍。
[0033]圖2是圖示根據(jù)一個(gè)示例實(shí)施例的浮點(diǎn)加法運(yùn)算的示例框圖。圖2中所示示例使用與圖1中所示相同類(lèi)型的操作數(shù)以便舉例說(shuō)明示例實(shí)施例的附加機(jī)制,然而示例實(shí)施例不限于此。如圖2中所示,在對(duì)第二操作數(shù)220的尾數(shù)224中的有效位和指數(shù)222中的指數(shù)位進(jìn)行移位時(shí),有效位被移位到尾數(shù)220的范圍以外,在這一情況下被移位至在尾數(shù)224的最低有效位以下的下一更低位。如圖2中所示,在尾數(shù)224的范圍以外的這一移位由分離寄存器230跟蹤或者存儲(chǔ),該寄存器指示在有效220的范圍以外的哪些位讓它們的位值設(shè)置成I。在隨機(jī)矢量生成邏輯240中存在的概率權(quán)值242與寄存器230中的位位置中的每個(gè)位位置關(guān)聯(lián)。
[0034]權(quán)值242使結(jié)果偽隨機(jī)生成的矢量值250具有每x數(shù)目的浮點(diǎn)算術(shù)運(yùn)算設(shè)置的最低有效位。例如可以將權(quán)值242中的與寄存器230的位位置I對(duì)應(yīng)的權(quán)值Wl設(shè)置成50%,從而寄存器230中的這一位被設(shè)置的時(shí)間的50%,隨機(jī)矢量生成邏輯240將生成具有設(shè)置成I的最低有效位的偽隨機(jī)生成的矢量值250 (矢量254),并且時(shí)間的50%,隨機(jī)矢量生成邏輯240將生成具有設(shè)置成O的最低有效位的偽隨機(jī)生成的矢量值250 (矢量252)。
[0035]其它權(quán)值W2、W3、W4等可以與分離寄存器230的不同位關(guān)聯(lián),該寄存器跟蹤在有效224的范圍以外、例如比尾數(shù)224的最低有效位更低的移位的位的值。例如這些權(quán)值W1-W4對(duì)應(yīng)于實(shí)數(shù)的分?jǐn)?shù)部分,在尾數(shù)的最低有效位以下的位對(duì)應(yīng)于該分?jǐn)?shù)部分。因此,寄存器230的第一位對(duì)應(yīng)于值0.5或者50 %。寄存器230的第二位對(duì)應(yīng)于值0.25或者25%,寄存器230的第三位對(duì)應(yīng)于值0.125或者12.5%等。因此例如權(quán)值Wl可以對(duì)應(yīng)于50%,權(quán)值W2可以對(duì)應(yīng)于25 %,權(quán)值W3可以對(duì)應(yīng)于12.5%,權(quán)值W4可以對(duì)應(yīng)于6.25%,等等。
[0036]隨機(jī)矢量生成邏輯240接收矢量230作為輸入并且偽隨機(jī)生成偽隨機(jī)矢量值250用于與操作數(shù)寄存器220的有效位224相加。基于與在輸入矢量230中設(shè)置的位對(duì)應(yīng)的概率權(quán)值242執(zhí)行偽隨機(jī)矢量值250的偽隨機(jī)生成。在描繪的示例中,設(shè)置輸入矢量230的與權(quán)值Wl為50%對(duì)應(yīng)的第一位。因此,有隨機(jī)矢量生成邏輯240將生成最低有效位被設(shè)置成I的偽隨機(jī)生成的矢量值250 (矢量值254)的50%概率;否則,偽隨機(jī)生成的矢量值250將讓最低有效位設(shè)置成0(矢量值252)。在偽隨機(jī)生成的矢量值250中的每個(gè)位可以被設(shè)置(即具有有效狀態(tài))并且可以在列中相加以生成正確模式位。可以根據(jù)在寄存器230中設(shè)置成的特定位使用不同加權(quán)。
[0037]ADD邏輯270將偽隨機(jī)生成的矢量值250 (252或者254)與移位的操作數(shù)220的尾數(shù)224相加,其結(jié)果然后與更大值的操作數(shù)210相加以生成在結(jié)果寄存器260中存儲(chǔ)的結(jié)果浮點(diǎn)值。由于在圖2中所示示例中,權(quán)值為50%,所以時(shí)間的50%,ADD邏輯270將第一矢量值252與尾數(shù)224相加,并且時(shí)間的其它50%,ADD邏輯270將第二矢量值254與尾數(shù)224相加。因此,時(shí)間的50%,生成第一結(jié)果值260,并且時(shí)間的其它50%,生成第二結(jié)果值260。
[0038]利用如以上描述的示例實(shí)施例的機(jī)制,在矢量寄存器250中的偽隨機(jī)生成的矢量值與浮點(diǎn)算術(shù)運(yùn)算原本忽略的相對(duì)小的浮點(diǎn)值近似。通過(guò)使用其中使用相同或者相似操作數(shù)來(lái)執(zhí)行多次相同浮點(diǎn)算術(shù)運(yùn)算的示例實(shí)施例,偽隨機(jī)生成的矢量值與相對(duì)小的浮點(diǎn)值近似,其中根據(jù)與在尾數(shù)的范圍以外的位位置關(guān)聯(lián)的概率分布生成偽隨機(jī)生成的矢量值,位值被移位操作移位到該范圍中用于對(duì)準(zhǔn)操作數(shù)的指數(shù)。因此,在結(jié)果矢量260中生成更準(zhǔn)確的結(jié)果值,該結(jié)果矢量考慮與相對(duì)大的浮點(diǎn)值相加的相對(duì)小的浮點(diǎn)值而不是忽略或者丟棄相對(duì)小的浮點(diǎn)值。
[0039]可以在硬件實(shí)施的處理器的一個(gè)或者多個(gè)功能單元、存儲(chǔ)器控制器等或者在硬件實(shí)施的處理器上執(zhí)行的軟件應(yīng)用中實(shí)施分離寄存器230、隨機(jī)矢量生成邏輯240、偽隨機(jī)生成的矢量值寄存器250和ADD邏輯270以及用來(lái)根據(jù)示例實(shí)施例實(shí)施浮點(diǎn)算術(shù)運(yùn)算的其它硬件和/或軟件邏輯。在一個(gè)示例實(shí)施例中,例如可以在數(shù)據(jù)處理系統(tǒng)的硬件實(shí)施的處理器的存儲(chǔ)器控制器的硬件和/或軟件邏輯中實(shí)施用于實(shí)施示例實(shí)施例的功能的各種單元。在其它示例實(shí)施例中,可以數(shù)據(jù)處理系統(tǒng)的硬件實(shí)施的處理器的浮點(diǎn)單元的硬件和/或軟件邏輯中實(shí)施用于實(shí)施示例實(shí)施例的功能的各種單元。當(dāng)然,可以在多于一個(gè)功能單元、功能單元和存儲(chǔ)器控制器中、在多于一個(gè)存儲(chǔ)器控制器中或者相似方式實(shí)施示例實(shí)施例。
[0040]在其中在存儲(chǔ)器控制器中實(shí)施示例實(shí)施例的機(jī)制的一個(gè)示例實(shí)施例中,可以與用于對(duì)存儲(chǔ)器操作進(jìn)行計(jì)數(shù)的計(jì)數(shù)器邏輯利用示例實(shí)施例的機(jī)制,這些存儲(chǔ)器操作用于數(shù)據(jù)處理系統(tǒng)中的存儲(chǔ)器區(qū)域。例如可以有在硬件/軟件中為主系統(tǒng)存儲(chǔ)器的每個(gè)頁(yè)面實(shí)施的浮點(diǎn)計(jì)數(shù)器??梢耘c這些浮點(diǎn)計(jì)數(shù)器中的每個(gè)浮點(diǎn)計(jì)數(shù)器實(shí)施示例實(shí)施例的機(jī)制以通過(guò)考慮將指示當(dāng)前存儲(chǔ)器操作數(shù)目的小浮點(diǎn)值與表示累加的總計(jì)的相對(duì)大的浮點(diǎn)值相加來(lái)保證存儲(chǔ)器操作計(jì)數(shù)的恰當(dāng)累加。
[0041]應(yīng)當(dāng)理解盡管一個(gè)示例實(shí)施例涉及累加用于以存儲(chǔ)器區(qū)域?yàn)槟繕?biāo)的存儲(chǔ)器操作的統(tǒng)計(jì)量,但是示例實(shí)施例不限于此,并且取而代之,示例實(shí)施例的機(jī)制可以應(yīng)用于任何浮點(diǎn)算術(shù)運(yùn)算。另外,示例實(shí)施例不限于浮點(diǎn)加法、而是也可以應(yīng)用于浮點(diǎn)減法運(yùn)算、浮點(diǎn)除法運(yùn)算、浮點(diǎn)乘法運(yùn)算、這些類(lèi)型的運(yùn)算的任何組合和其它類(lèi)型的浮點(diǎn)算術(shù)運(yùn)算。
[0042]圖3是概述根據(jù)一個(gè)示例實(shí)施例的用于執(zhí)行浮點(diǎn)加法的示例浮點(diǎn)算術(shù)運(yùn)算的流程圖。為了易于說(shuō)明,將假設(shè)有在浮點(diǎn)加法運(yùn)算中涉及到的僅兩個(gè)操作數(shù)。然而應(yīng)當(dāng)理解圖3中概述的運(yùn)算可以應(yīng)用于任何數(shù)目的浮點(diǎn)操作數(shù)而用于考慮在尾數(shù)的范圍以外的位的移位的示例實(shí)施例的機(jī)制應(yīng)用于任何操作數(shù),在該操作數(shù)中出現(xiàn)在操作數(shù)的尾數(shù)的范圍以外的這樣的移位。[0043]如圖3中所示,運(yùn)算通過(guò)接收用于浮點(diǎn)加法運(yùn)算的兩個(gè)浮點(diǎn)操作數(shù)(步驟310)來(lái)開(kāi)始。對(duì)浮點(diǎn)操作數(shù)中的位進(jìn)行移位以對(duì)準(zhǔn)浮點(diǎn)操作數(shù)的指數(shù)值(步驟320)。用對(duì)應(yīng)分離跟蹤寄存器跟蹤在尾數(shù)的范圍以外移位的任何位(步驟330)。向隨機(jī)矢量生成邏輯輸入對(duì)應(yīng)跟蹤寄存器的位(步驟340),該隨機(jī)矢量生成邏輯將跟蹤寄存器中的設(shè)置的位與對(duì)應(yīng)概率權(quán)值進(jìn)行相關(guān)(步驟350)。對(duì)于具有設(shè)置的位的輸入跟蹤寄存器中的每個(gè)輸入跟蹤寄存器,標(biāo)識(shí)的概率權(quán)值與偽隨機(jī)矢量生成邏輯函數(shù)用來(lái)生成偽隨機(jī)矢量值(步驟360)。結(jié)果偽隨機(jī)生成的矢量值與對(duì)應(yīng)移位的操作數(shù)的移位的尾數(shù)相加(步驟370)。將結(jié)果相加的操作數(shù)值相加以生成結(jié)果值(步驟380),并且運(yùn)算終止。
[0044]圖4是可以在其中實(shí)施示例實(shí)施例的方面的一個(gè)示例數(shù)據(jù)處理系統(tǒng)的示例框圖。圖4僅為其中可以實(shí)施示例實(shí)施例的方面的一個(gè)類(lèi)型的數(shù)據(jù)處理系統(tǒng)的示例而未旨在于聲明或者暗示關(guān)于可以用來(lái)實(shí)施示例實(shí)施例的數(shù)據(jù)處理系統(tǒng)、配置或者架構(gòu)類(lèi)型的任何限制。可以進(jìn)行對(duì)數(shù)據(jù)處理系統(tǒng)的許多修改而未脫離示例實(shí)施例的精神實(shí)質(zhì)和范圍。
[0045]如圖所示,數(shù)據(jù)處理系統(tǒng)400包括處理器卡41 la-41 In。處理器卡411a_411n中的每個(gè)處理器卡包括處理器和高速緩存存儲(chǔ)器。例如處理器卡411a包含處理器412a和高速緩存存儲(chǔ)器413a,并且處理器卡411η包含處理器412η和高速緩存存儲(chǔ)器413η。
[0046]處理器卡41 la-41 In連接到主總線415。主總線415支持包含處理器卡41 la_41 In和存儲(chǔ)器卡423的系統(tǒng)平面420。系統(tǒng)平面也包含數(shù)據(jù)交換機(jī)421和存儲(chǔ)器控制器/高速緩存422。存儲(chǔ)器控制器/高速緩存422支持包括本地存儲(chǔ)器416的存儲(chǔ)器卡423,該本地存儲(chǔ)器具有多個(gè)雙列直插式存儲(chǔ)模塊(DIMM)。
[0047]數(shù)據(jù)交換機(jī)421連接到位于本機(jī)I/O (NIO)平面424內(nèi)的總線橋接器417和總線橋接器418。如圖所示,總線橋接器418經(jīng)由系統(tǒng)總線419連接到外圍部件互連(PCI)橋接器425和426。PCI橋接器425經(jīng)由PCI總線428連接到多種I/O設(shè)備。如圖所示,硬盤(pán)436可以經(jīng)由小型計(jì)算機(jī)系統(tǒng)接口(SCSI)主機(jī)適配器430連接到PCI總線428。圖形適配器431可以直接或者間接連接到PCI總線428。PCI橋接器426經(jīng)由PCI總線427通過(guò)網(wǎng)絡(luò)適配器434和適配器卡槽435a-435n提供用于外部數(shù)據(jù)流的連接。
[0048]工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線429經(jīng)由ISA橋接器432連接到PCI總線428。ISA橋接器432通過(guò)具有串行連接Seriall和Serial2的NIO控制器433提供互連能力。NIO控制器433提供軟盤(pán)驅(qū)動(dòng)連接、鍵盤(pán)連接和鼠標(biāo)連接以允許數(shù)據(jù)處理系統(tǒng)400接受經(jīng)由對(duì)應(yīng)輸入設(shè)備從用戶輸入的數(shù)據(jù)。此外,非易失性RAM(NVRAM)440提供用于保留來(lái)自系統(tǒng)破壞或者系統(tǒng)故障、比如功率供應(yīng)問(wèn)題的某些類(lèi)型的數(shù)據(jù)的非易失性存儲(chǔ)器。系統(tǒng)固件441也連接到ISA總線429用于實(shí)施初始基本輸入/輸出系統(tǒng)(BIOS)功能。服務(wù)處理器444連接到ISA總線429以提供用于系統(tǒng)診斷或者系統(tǒng)維修的功能。
[0049]操作系統(tǒng)(OS)存儲(chǔ)于硬盤(pán)436上,該硬盤(pán)也可以提供用于由數(shù)據(jù)處理系統(tǒng)執(zhí)行的附加應(yīng)用軟件的存儲(chǔ)。NVRAM440用來(lái)存儲(chǔ)用于現(xiàn)場(chǎng)可更換單元(FRU)隔離的系統(tǒng)變量和錯(cuò)誤信息。在系統(tǒng)啟動(dòng)期間,自舉程序加載操作系統(tǒng)并且啟動(dòng)執(zhí)行操作系統(tǒng)。為了加載操作系統(tǒng),自舉程序首先從硬盤(pán)436確定操作系統(tǒng)內(nèi)核類(lèi)型、向存儲(chǔ)器中加載OS并且跳轉(zhuǎn)至操作系統(tǒng)內(nèi)核提供的初始地址。通常向在數(shù)據(jù)處理系統(tǒng)內(nèi)的隨機(jī)存取存儲(chǔ)器(RAM)中加載操作系統(tǒng)。一旦加載和初始化,操作系統(tǒng)控制程序執(zhí)行并且可以提供服務(wù)、比如資源分配、調(diào)度、輸入/輸出控制和數(shù)據(jù)管理。[0050]關(guān)于示例實(shí)施例的機(jī)制,可以在圖4中所示單元中的各種單元中實(shí)施示例實(shí)施例的浮點(diǎn)算術(shù)邏輯。例如可以處理器112a-112n、存儲(chǔ)器控制器122、系統(tǒng)固件141、服務(wù)處理器144或者圖4的其它單元中的任何單元中的一個(gè)或者多個(gè)單元或者圖4中的單元的組合中實(shí)施浮點(diǎn)算術(shù)邏輯。簡(jiǎn)言之,圖4中的可以執(zhí)行浮點(diǎn)算術(shù)運(yùn)算的任何單元可以利用示例實(shí)施例的可以在硬件邏輯、軟件邏輯或者硬件和/或軟件邏輯的任何組合中實(shí)施的機(jī)制。
[0051]如以上提到的那樣,可以在利用多個(gè)不同硬件配置和軟件、比如自舉程序和操作系統(tǒng)的多種數(shù)據(jù)處理系統(tǒng)中體現(xiàn)示例實(shí)施例。數(shù)據(jù)處理系統(tǒng)400可以例如是單獨(dú)系統(tǒng)或者是網(wǎng)絡(luò)、比如局域網(wǎng)(LAN)或者廣域網(wǎng)(WAN)的部分。
[0052]因此,示例實(shí)施例提供用于使用大和小的浮點(diǎn)值來(lái)執(zhí)行浮點(diǎn)算術(shù)運(yùn)算的機(jī)制。示例實(shí)施例提供用于以通過(guò)在期間基于與跟蹤寄存器的位位置關(guān)聯(lián)的概率權(quán)值考慮小浮點(diǎn)值而未忽略或者丟棄它們這樣的方式與它們近似的機(jī)制,該跟蹤寄存器跟蹤在尾數(shù)的位范圍以外的有效位的移位。作為結(jié)果,使用示例實(shí)施例的機(jī)制來(lái)實(shí)現(xiàn)浮點(diǎn)算術(shù)運(yùn)算的更準(zhǔn)確結(jié)果。
[0053]如以上指出的那樣,示例實(shí)施例可以采用全硬件實(shí)施例、全軟件實(shí)施例或者包含硬件與軟件單元的實(shí)施例這樣的形式。在一個(gè)示例實(shí)施例中,在包括但不限于固件、常駐軟件、微代碼等的軟件或者程序代碼中實(shí)施示例實(shí)施例的機(jī)制。
[0054]適合于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括通過(guò)系統(tǒng)總線直接或者間接耦合到存儲(chǔ)器單元的至少一個(gè)處理器。存儲(chǔ)器單元可以包括在實(shí)際執(zhí)行程序代碼期間運(yùn)用的本地存儲(chǔ)器、大容量存儲(chǔ)裝置和高速緩存存儲(chǔ)器,這些高速緩存存儲(chǔ)器提供至少一些程序代碼的暫時(shí)存儲(chǔ)以便減少必須在執(zhí)行期間從大容量存儲(chǔ)裝置取回代碼的次數(shù)。
[0055]輸入/輸出或者I/O設(shè)備(包括但不限于鍵盤(pán)、顯示器、指示設(shè)備等)可以直接或者通過(guò)居間I/o控制器耦合到系統(tǒng)。網(wǎng)絡(luò)適配器也可以耦合到系統(tǒng)以使數(shù)據(jù)處理系統(tǒng)能夠變成通過(guò)居間專(zhuān)用或者公共網(wǎng)絡(luò)耦合到其它數(shù)據(jù)處理系統(tǒng)或者遠(yuǎn)程打印機(jī)或者存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器和以太網(wǎng)卡僅為當(dāng)前可用網(wǎng)絡(luò)適配器類(lèi)型的少數(shù)類(lèi)型。
[0056]本發(fā)明的描述已經(jīng)出于示例和描述的目的而加以呈現(xiàn)、但是并非旨在于窮舉本發(fā)明或者使本發(fā)明限于公開(kāi)的形式。許多修改和變化將為本領(lǐng)域普通技術(shù)人員所清楚。選擇和描述實(shí)施例以便最佳地說(shuō)明本發(fā)明的原理、實(shí)際應(yīng)用并且使本領(lǐng)域其他普通技術(shù)人員能夠針對(duì)具有如與設(shè)想的特定使用相適合的各種修改的各種實(shí)施例來(lái)理解本發(fā)明。
【權(quán)利要求】
1.一種在數(shù)據(jù)處理系統(tǒng)中用于執(zhí)行浮點(diǎn)算術(shù)運(yùn)算的方法,包括: 在所述數(shù)據(jù)處理系統(tǒng)的硬件邏輯中接收所述浮點(diǎn)算術(shù)運(yùn)算的多個(gè)浮點(diǎn)操作數(shù); 由所述硬件邏輯對(duì)所述多個(gè)浮點(diǎn)操作數(shù)中的至少一個(gè)浮點(diǎn)操作數(shù)的尾數(shù)中的位進(jìn)行移位; 由所述硬件邏輯存儲(chǔ)所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的所述尾數(shù)的位范圍以外的一個(gè)或者多個(gè)位; 由所述硬件邏輯基于所存儲(chǔ)的、所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的所述尾數(shù)的所述位范圍以外的一個(gè)或者多個(gè)位,生成矢量值;并且 由所述硬件邏輯基于所述矢量值和所述多個(gè)浮點(diǎn)操作數(shù)生成用于所述浮點(diǎn)算術(shù)運(yùn)算的結(jié)果值。
2.根據(jù)權(quán)利要求1所述的方法,其中所述浮點(diǎn)算術(shù)運(yùn)算是用于將兩個(gè)浮點(diǎn)數(shù)相加的加法運(yùn)算。
3.根據(jù)權(quán)利要求1所述的方法,其中所述浮點(diǎn)算術(shù)運(yùn)算是減法運(yùn)算、除法運(yùn)算或者乘法運(yùn)算之一。
4.根據(jù)權(quán)利要求1所述的方法,其中所述浮點(diǎn)算術(shù)運(yùn)算更新用于對(duì)所述數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器區(qū)域的存儲(chǔ)器活動(dòng)進(jìn)行計(jì)數(shù)的計(jì)數(shù)器,并且其中所述計(jì)數(shù)器被用作用于優(yōu)化對(duì)所述數(shù)據(jù)處理系統(tǒng)的所述存儲(chǔ)器的利用的存儲(chǔ)器優(yōu)化算法的一部分。
5.根據(jù)權(quán)利要求1所述的方法,其中存儲(chǔ)所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的所述尾數(shù)的位范圍以外的一個(gè)或者多個(gè)位包括在分離寄存器的與所述尾數(shù)中被移位到所述尾數(shù)的所述位范圍以外的所述一個(gè)或者多個(gè)位對(duì)應(yīng)的位位置中設(shè)置位。
6.根據(jù)權(quán)利要求5所述的方法,其中所述分離寄存器中的每個(gè)位位置具有不同的關(guān)聯(lián)概率權(quán)值,并且其中基于所存儲(chǔ)的、所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的所述尾數(shù)的所述位范圍以外的一個(gè)或者多個(gè)位生成所述矢量值包括基于與具有在所述分離寄存器中設(shè)置的對(duì)應(yīng)位值的位位置關(guān)聯(lián)的概率權(quán)值來(lái)生成所述矢量值。
7.根據(jù)權(quán)利要求6所述的方法,其中每個(gè)概率權(quán)值使值在所述算術(shù)運(yùn)算期間每X數(shù)目個(gè)算術(shù)運(yùn)算與所述移位的浮點(diǎn)操作數(shù)的所述移位的尾數(shù)相加,其中X是與所述概率權(quán)值對(duì)應(yīng)的整數(shù)值。
8.根據(jù)權(quán)利要求7所述的方法,其中所述分離寄存器中的第一位位置具有概率權(quán)值50 %,從而所述值每2個(gè)算術(shù)運(yùn)算與所述移位的尾數(shù)相加一次,所述分離寄存器中的第二位位置具有概率權(quán)值25%,從而所述值每4個(gè)算術(shù)運(yùn)算與所述移位的尾數(shù)相加一次,并且所述分離寄存器中的第三位位置具有概率權(quán)值12.5%,從而所述值每8個(gè)算術(shù)運(yùn)算與所述移位的尾數(shù)相加一次。
9.根據(jù)權(quán)利要求6所述的方法,其中使用對(duì)應(yīng)偽隨機(jī)數(shù)生成器來(lái)生成所述矢量值中的每個(gè)位,所述每個(gè)位具有對(duì)應(yīng)于與所述分離寄存器中的對(duì)應(yīng)位位置關(guān)聯(lián)的概率權(quán)值的概率分布。
10.根據(jù)權(quán)利要求1所述的方法,其中所述方法實(shí)施于所述數(shù)據(jù)處理系統(tǒng)的處理器、存儲(chǔ)器控制器、固件或者服務(wù)處理器中的至少一項(xiàng)的硬件邏輯中。
11.一種裝置,包括: 被配置用于接收浮點(diǎn)算術(shù)運(yùn)算的多個(gè)浮點(diǎn)操作數(shù)的硬件邏輯;被配置用于對(duì)所述多個(gè)浮點(diǎn)操作數(shù)中的至少一個(gè)浮點(diǎn)操作數(shù)的尾數(shù)中的位進(jìn)行移位的硬件邏輯; 被配置用于存儲(chǔ)所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的所述尾數(shù)的位范圍以外的一個(gè)或者多個(gè)位的硬件邏輯; 被配置用于基于所存儲(chǔ)的、所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的所述尾數(shù)的所述位范圍以外的一個(gè)或者多個(gè)位,生成矢量值的硬件邏輯;以及 被配置用于基于所述矢量值和所述多個(gè)浮點(diǎn)操作數(shù)生成用于所述浮點(diǎn)算術(shù)運(yùn)算的結(jié)果值的硬件邏輯。
12.根據(jù)權(quán)利要求11所述的裝置,其中所述浮點(diǎn)算術(shù)運(yùn)算是用于將兩個(gè)浮點(diǎn)數(shù)相加的加法運(yùn)算。
13.根據(jù)權(quán)利要求11所述的裝置,其中所述浮點(diǎn)算術(shù)運(yùn)算是減法運(yùn)算、除法運(yùn)算或者乘法運(yùn)算之一。
14.根據(jù)權(quán)利要求11所述的裝置,其中所述浮點(diǎn)算術(shù)運(yùn)算更新用于對(duì)所述數(shù)據(jù)處理系統(tǒng)的存儲(chǔ)器區(qū)域的存儲(chǔ)器活動(dòng)進(jìn)行計(jì)數(shù)的計(jì)數(shù)器,并且其中所述計(jì)數(shù)器被用作用于優(yōu)化對(duì)所述數(shù)據(jù)處理系統(tǒng)的所述存儲(chǔ)器的利用的存儲(chǔ)器優(yōu)化算法的一部分。
15.根據(jù)權(quán)利要求11所述的裝置,其中被配置用于存儲(chǔ)所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的所述尾數(shù) 的位范圍以外的一個(gè)或者多個(gè)位的所述硬件邏輯包括被配置用于在分離寄存器的與所述尾數(shù)中被移位到所述尾數(shù)的所述位范圍以外的所述一個(gè)或者多個(gè)位對(duì)應(yīng)的位位置中設(shè)置位的硬件邏輯。
16.根據(jù)權(quán)利要求15所述的裝置,其中所述分離寄存器中的每個(gè)位位置具有不同的關(guān)聯(lián)概率權(quán)值,并且其中被配置用于基于所存儲(chǔ)的、所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的所述尾數(shù)的所述位范圍以外的一個(gè)或者多個(gè)位生成所述矢量值的硬件邏輯包括被配置用于基于與具有在所述分離寄存器中設(shè)置的對(duì)應(yīng)位值的位位置關(guān)聯(lián)的概率權(quán)值來(lái)生成所述矢量值的硬件邏輯。
17.根據(jù)權(quán)利要求16所述的裝置,其中每個(gè)概率權(quán)值使值在所述算術(shù)運(yùn)算期間每X數(shù)目個(gè)算術(shù)運(yùn)算與所述移位的浮點(diǎn)操作數(shù)的所述移位的尾數(shù)相加,其中X是與所述概率權(quán)值對(duì)應(yīng)的整數(shù)值。
18.根據(jù)權(quán)利要求17所述的裝置,其中所述分離寄存器中的第一位位置具有概率權(quán)值50 %,從而所述值每2個(gè)算術(shù)運(yùn)算與所述移位的尾數(shù)相加一次,所述分離寄存器中的第二位位置具有概率權(quán)值25%,從而所述值每4個(gè)算術(shù)運(yùn)算與所述移位的尾數(shù)相加一次,并且所述分離寄存器中的第三位位置具有概率權(quán)值12.5%,從而所述值每8個(gè)算術(shù)運(yùn)算與所述移位的尾數(shù)相加一次。
19.根據(jù)權(quán)利要求16所述的裝置,其中使用對(duì)應(yīng)偽隨機(jī)數(shù)生成器來(lái)生成所述矢量值中的每個(gè)位,所述每個(gè)位具有對(duì)應(yīng)于與所述分離寄存器中的對(duì)應(yīng)位位置關(guān)聯(lián)的概率權(quán)值的概率分布。
20.根據(jù)權(quán)利要求11所述的裝置,其中所述裝置是所述數(shù)據(jù)處理系統(tǒng)的處理器、存儲(chǔ)器控制器、固件或者服務(wù)處理器中的至少一項(xiàng)的一部分。
21.一種包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具有在其中存儲(chǔ)的計(jì)算機(jī)可讀程序,其中所述計(jì)算機(jī)可讀程序在計(jì)算設(shè)備上執(zhí)行時(shí)使所述計(jì)算設(shè)備: 接收浮點(diǎn)算術(shù)運(yùn)算的多個(gè)浮點(diǎn)操作數(shù); 對(duì)所述多個(gè)浮點(diǎn)操作數(shù)中的至少一個(gè)浮點(diǎn)操作數(shù)的尾數(shù)中的位進(jìn)行移位; 存儲(chǔ)所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的在有效的位范圍以外的一個(gè)或者多個(gè)位; 基于所存儲(chǔ)的、所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的所述尾數(shù)的所述位范圍以外的一個(gè)或者多個(gè)位,生成矢量值;以及 基于所述矢量值和所述多個(gè)浮點(diǎn)操作數(shù)生成用于所述浮點(diǎn)算術(shù)運(yùn)算的結(jié)果值。
22.根據(jù)權(quán)利要求21所述的計(jì)算機(jī)程序產(chǎn)品,其中所述浮點(diǎn)算術(shù)運(yùn)算是用于將兩個(gè)浮點(diǎn)數(shù)相加的加法運(yùn)算。
23.根據(jù)權(quán)利要求21所述的計(jì)算機(jī)程序產(chǎn)品,其中所述浮點(diǎn)算術(shù)運(yùn)算更新用于對(duì)所述計(jì)算設(shè)備的存儲(chǔ)器區(qū)域的存儲(chǔ)器活動(dòng)進(jìn)行計(jì)數(shù)的計(jì)數(shù)器,并且其中所述計(jì)數(shù)器被用作用于優(yōu)化對(duì)所述計(jì)算設(shè)備的所述存儲(chǔ)器的利用的存儲(chǔ)器優(yōu)化算法的一部分。
24.根據(jù)權(quán)利要求21所述的計(jì)算機(jī)程序產(chǎn)品,其中: 所述計(jì)算機(jī)可讀程序使所述計(jì)算設(shè)備通過(guò)在分離寄存器的與所述尾數(shù)中被移位到所述尾數(shù)的所述位范圍以外的所述一個(gè)或者多個(gè)位對(duì)應(yīng)的位位置中設(shè)置位,來(lái)存儲(chǔ)所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)所述有效的位范圍以外的一個(gè)或者多個(gè)位, 所述分離寄存器中的每個(gè)位位置具有不同的關(guān)聯(lián)概率權(quán)值,并且 所述計(jì)算機(jī)可讀程序使所述計(jì)算設(shè)備通過(guò)基于與具有在所述分離寄存器中設(shè)置的對(duì)應(yīng)位值的位位置關(guān)聯(lián)的概率權(quán)值生成所述矢量值,來(lái)基于所存儲(chǔ)的、所述尾數(shù)中被移位到所述至少一個(gè)浮點(diǎn)操作數(shù)的所述尾數(shù)的所述位范圍以外的一個(gè)或者多個(gè)位生成所述矢量值。
25.根據(jù)權(quán)利要求24所述的計(jì)算機(jī)程序產(chǎn)品,其中每個(gè)概率權(quán)值使值在所述算術(shù)運(yùn)算期間每X數(shù)目個(gè)算術(shù)運(yùn)算與所述移位的浮點(diǎn)操作數(shù)的所述移位的尾數(shù)相加,其中X是與所述概率權(quán)值對(duì)應(yīng)的整數(shù)值。
【文檔編號(hào)】G06F7/76GK103988171SQ201280061198
【公開(kāi)日】2014年8月13日 申請(qǐng)日期:2012年11月21日 優(yōu)先權(quán)日:2011年12月13日
【發(fā)明者】J·A·施蒂切利, E·E·雷特爾, K·拉加瑪尼, B·梅利, J·B·卡特 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司