国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用大和小浮點值二者來執(zhí)行算術(shù)運算的制作方法

      文檔序號:6497628閱讀:171來源:國知局
      使用大和小浮點值二者來執(zhí)行算術(shù)運算的制作方法
      【專利摘要】提供用于在數(shù)據(jù)處理系統(tǒng)中執(zhí)行浮點算術(shù)運算的機制。接收浮點算術(shù)運算的多個浮點操作數(shù),并且對多個浮點操作數(shù)中的至少一個浮點操作數(shù)的尾數(shù)中的位進(jìn)行移位。尾數(shù)中被移位到至少一個浮點操作數(shù)的尾數(shù)的位范圍以外的一個或者多個位被存儲,并且基于所存儲的、該尾數(shù)中被移位到至少一個浮點操作數(shù)的尾數(shù)的位范圍以外的一個或者多個位生成矢量值?;谑噶恐岛投鄠€浮點操作數(shù)生成用于浮點算術(shù)運算的結(jié)果值。
      【專利說明】使用大和小浮點值二者來執(zhí)行算術(shù)運算
      【技術(shù)領(lǐng)域】
      [0001]本申請總體涉及一種改進(jìn)的數(shù)據(jù)處理裝置和方法,并且更具體地涉及用于使用大和小浮點值二者來執(zhí)行算術(shù)運算的機制。
      【背景技術(shù)】
      [0002]術(shù)語“浮點”是指一種用可以支持寬的值范圍的方式表示實數(shù)的方法。利用浮點格式,數(shù)一般由固定數(shù)目的有效數(shù)位近似地表示并且使用基數(shù)值和對應(yīng)指數(shù)來縮放。用于縮放的基數(shù)通常為2、10或者16、但也可以是適合于特定實現(xiàn)方式的任何基數(shù)值。可以確切地表示的典型數(shù)為以下形式:有效數(shù)位X基數(shù)、例如1.34x2'在計算系統(tǒng)內(nèi),這樣的浮點格式值包括表示浮點值的有效數(shù)位的有效位部分(或者尾數(shù)部分)和表示浮點值的指數(shù)部分的指數(shù)位部分而假設(shè)基數(shù)值在計算機系統(tǒng)架構(gòu)內(nèi)一致、例如基數(shù)為2。因此,浮點格式提供用于表示寬的值范圍的能力,該值范圍可以范圍從相對很大值到相對很小值。

      【發(fā)明內(nèi)容】

      [0003]在一個示例實施例中,提供一種在數(shù)據(jù)處理系統(tǒng)中用于執(zhí)行浮點算術(shù)運算的方法。該方法包括在數(shù)據(jù)處理系統(tǒng)的硬件邏輯中接收浮點算術(shù)運算的多個浮點操作數(shù)。該方法還包括由硬件邏輯對多個浮點操作數(shù)中的至少一個浮點操作數(shù)的尾數(shù)中的位進(jìn)行移位。另外,該方法包括由硬件邏輯存儲所述尾數(shù)中被移位到至少一個浮點操作數(shù)的尾數(shù)的位范圍以外的一個或者多個位。此外,該方法包括由硬件邏輯基于所存儲的、所述尾數(shù)中被移位到至少一個浮點操作數(shù)的尾數(shù)的有效的位范圍以外的一個或者多個位生成矢量值。另外,該方法包括由硬件邏輯基于矢量值和多個浮點操作數(shù)生成用于浮點算術(shù)運算的結(jié)果值。
      [0004]在其它示例實施例中,提供一種計算機程序產(chǎn)品包括計算機可用或者可讀介質(zhì),計算機可用或者可讀介質(zhì)具有計算機可讀程序。計算機可讀程序在計算設(shè)備上被執(zhí)行時使計算設(shè)備執(zhí)行以上關(guān)于方法示例實施例概述的操作中的各種操作和操作組合。
      [0005]在另一示例實施例中,提供一種系統(tǒng)/裝置。該系統(tǒng)/裝置可以包括一個或者多個處理器和耦合到該一個或者多個處理器的存儲器。存儲器可以包括指令,該指令在由一個或者多個處理器執(zhí)行時使一個或者多個處理器執(zhí)行以上關(guān)于方法示例實施例概述的操作中的各種操作和操作組合。
      [0006]本發(fā)明的這些和其它特征以及優(yōu)點將在本發(fā)明的示例實施例的以下具體描述中被描述并且將鑒于以下具體描述而變得為本領(lǐng)域普通技術(shù)人員所清楚。
      [0007]將通過參照在結(jié)合附圖閱讀時的對示例實施例的以下具體描述最佳地理解本發(fā)明及其優(yōu)選實施方式以及更多目的和優(yōu)點。
      【專利附圖】

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