亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

不同浮點格式的浮點加法的制作方法

文檔序號:6570676閱讀:251來源:國知局
專利名稱:不同浮點格式的浮點加法的制作方法
技術(shù)領(lǐng)域
一般來說,本公開涉及電子領(lǐng)域。更具體來說,本發(fā)明的一個實 施例涉及用于在計算機系統(tǒng)中執(zhí)行浮點加法的技術(shù)。
背景技術(shù)
在對實數(shù)執(zhí)行算術(shù)運算時,數(shù)值的浮點表示可用來提供效率。根 據(jù)精度要求,可利用不同的浮點表示格式。例如,可將實數(shù)表示為單 精度浮點數(shù)、雙精度浮點數(shù)或擴展雙精度浮點數(shù)。為了提高計算效率, 一些處理器或計算機系統(tǒng)可包括一個以上浮點加法器以便對具有不同 浮點格式的數(shù)值進(jìn)行運算。具有用于不同浮點格式的不同浮點加法器 會導(dǎo)致在處理器上耗用更多管芯面積以及附加功率。


參照附圖來提供詳細(xì)描述。附圖中,附圖標(biāo)記最左邊的數(shù)字標(biāo)識 首次出現(xiàn)該附圖標(biāo)記的附圖。不同附圖中使用相同的附圖標(biāo)記來表示 相似或相同的項。
圖1、圖8和圖9示出可用來實現(xiàn)本文論述的各種實施例的計算
系統(tǒng)的實施例的框圖。
圖2示出根據(jù)本發(fā)明的 一 個實施例的處理器核的部分的框圖。 圖3a-b和圖4示出根據(jù)本發(fā)明的各種實施例的浮點加法器的部分
的框圖。
圖5和圖6示出根據(jù)本發(fā)明的各種實施例的操作數(shù)格式。
圖7示出根據(jù)本發(fā)明的一個實施例的方法的一個實施例的流程圖。
具體實施例方式
在以下描述中,闡明大量具體細(xì)節(jié),以便提供對各種實施例的透 徹了解。但是,即使沒有這些具體細(xì)節(jié),也可實施一些實施例。在其 它情況下,沒有詳細(xì)描述眾所周知的方法、過程、組件和電路,以免 影響對具體實施例的理解??墒褂弥T如集成半導(dǎo)體電路("硬件")、 組織成一個或多個程序的計算機可讀指令("軟件")或者硬件和軟件
開的目的,提到"邏輯,,時應(yīng)表示硬件、軟件或者它們的某種組合。
本文論述的一些實施例可提供用于將浮點數(shù)相加的有效機制。在 一個實施例中,加法和/或減法可使用相同的邏輯。例如,相反符號的 浮點數(shù)的加法可對應(yīng)于減法運算。另外,在一個實施例中,用不同的 浮點表示格式表示的浮點數(shù)(例如,單精度、雙精度和/或擴展雙精度浮 點數(shù))的加法(和/或減法)可使用相同的浮點加法器邏輯。此外,這樣一
種浮點加法器可在處理器核(例如,參照圖1-9論述的處理器核)中使 用。更具體來說,圖1示出根據(jù)本發(fā)明的一個實施例的計算系統(tǒng)100 的框圖。系統(tǒng)100可包括一個或多個處理器102-1至102-N(本文中一 般稱作"處理器102")。處理器102可經(jīng)由互連或總線104進(jìn)行通信。 每個處理器都可包括各種組件,為了清楚起見,僅參照處理器102-1 來論述其中一些組件。因此,其余每個處理器102-2至102-N可包括 與參照處理器102-1論述的組件相同或相似的組件。
在一個實施例中,處理器102-1可包括一個或多個處理器核106-1 至106-M(本文中稱作"核106")、高速緩存108(在各種實施例中,它 可以是共享高速緩存或?qū)S酶咚倬彺?和/或路由器110。處理器核106 可在單個集成電路(IC)芯片上實現(xiàn)。另外,該芯片可包括一個或多個 共享和/或?qū)S酶咚倬彺?例如高速緩存108)、總線或互連(例如總線或 互連112)、存儲器控制器(例如,參照圖8和圖9論述的存儲器控制器) 或其它組件。在一個實施例中,路由器110可用于在處理器102-1和/或系統(tǒng)100 的各個組件之間進(jìn)行通信。另外,處理器102-1可包括一個以上路由 器110。另外,這些路由器(110)可進(jìn)行通信,以便使得能夠在處理器 102-1的內(nèi)部或外部的各個組件之間路由數(shù)據(jù)。
高速緩存108可存儲供處理器102-1的一個或多個組件(如核106) 使用的數(shù)據(jù)(例如,包括指令)。例如,高速緩存108可本地緩存存儲在 存儲器114中的數(shù)據(jù),以便由處理器102的組件進(jìn)行更快速的訪問。 如圖1所示,存儲器114可經(jīng)由互連104與處理器102進(jìn)行通信。在 一個實施例中,高速緩存108(可以#皮共享)可包括中間級高速》爰存和/ 或最后一級高速緩存(LLC)。并且,每個核106還可包括1級(L1)高速 緩存(116-1)(本文中一般稱作"L1高速緩存116")。處理器102-1的各 個組件可直接、或通過總線(例如總線112)和/或存儲器控制器或集線 器來與高速緩存108進(jìn)行通信。
圖2示出根據(jù)本發(fā)明的一個實施例的處理器核106的部分的框圖。 在一個實施例中,圖2中示出的箭頭說明指令在核106中的流向。一 個或多個處理器核(例如處理器核106)可在單個集成電路芯片(或管芯) 上實現(xiàn),例如參照圖1所論述的。另外,該芯片可包括一個或多個共 享和/或?qū)S酶咚倬彺?例如,圖1中的高速緩存108)、互連(例如,圖 1中的互連104和/或112)、存儲器控制器或其它組件。
如圖2所示,處理器核106可包括用于提取指令以供核106執(zhí)行 的提取單元202。可從諸如存儲器114和/或參照圖8和圖9論述的存 儲器裝置的任何存儲裝置中提取指令。核106還可包括用于對所提取 的指令進(jìn)行解碼的解碼單元204。例如,解碼單元204可將提取的指 令解碼為多個pop(微操作)。此外,核106可包括調(diào)度單元206。調(diào)度 單元206可執(zhí)行與存儲解碼指令(例如,從解碼單元204接收的指令) 關(guān)聯(lián)的各種操作,直到指令準(zhǔn)備好用于分發(fā)為止,例如直到解碼指令 的所有源值變?yōu)榭捎脼橹埂T谝粋€實施例中,調(diào)度單元206可向執(zhí)行 單元208調(diào)度和/或發(fā)出(或分發(fā))解碼指令以用于執(zhí)行。執(zhí)行單元208可在指令被解碼(例如,由解碼單元204解碼)和分發(fā)(例如,由調(diào)度單 元206分發(fā))之后執(zhí)行分發(fā)的指令。在一個實施例中,執(zhí)行單元208可 包括一個以上執(zhí)行單元,例如存儲器執(zhí)行單元、整數(shù)執(zhí)行單元、浮點 執(zhí)行單元或其它執(zhí)行單元。執(zhí)行單元208還可寺丸行各種算術(shù)運算,例 如加法、減法、乘法和/或除法,并且可包括一個或多個算術(shù)邏輯單元 (ALU)。在一個實施例中,協(xié)處理器(未示出)可結(jié)合執(zhí)行單元208來執(zhí) 行各種算術(shù)運算。
如圖2所示,執(zhí)行單元208可包括浮點(FP)加法器209,用于對可 用不同的浮點表示格式表示的浮點數(shù)執(zhí)行加法、減法、比較和/或才各式 轉(zhuǎn)換。在一個實施例中,相加和/或相減的浮點數(shù)可具有任何格式,例 如包括單精度、雙精度和/或擴展雙精度浮點數(shù)格式(例如,參照圖5 和圖6論述的格式)。在一個實施例中,加法器209可響應(yīng)單指令多數(shù) 據(jù)(SIMD)指令而進(jìn)行操作。 一般來說,SIMD指令可導(dǎo)致同時(例如, 并行地)對多個數(shù)據(jù)片段執(zhí)行相同操作。另外,根據(jù)至少一個指令集架 構(gòu),SIMD指令可對應(yīng)于SIMD流技術(shù)擴展(SSE)或其它形式的SIMD 流技術(shù)實現(xiàn)(例如,SIMD流技術(shù)擴展2(SSE2))。本文將參照例如圖3-7 進(jìn)一步論迷與加法器209的各種實施例有關(guān)的其它細(xì)節(jié)。而且,執(zhí)行 單元208可包括一個以上浮點加法器209。另外,^L行單元208可無 序地執(zhí)行指令。因此,在一個實施例中,處理器核106可以是無序處 理器核。核106還可包括引退(retirement)單元210。引退單元210可在 提交執(zhí)行指令之后引退執(zhí)行指令。在一個實施例中,執(zhí)行指令的引退 可導(dǎo)致從指令的執(zhí)行中提交處理器狀態(tài)、解除對指令所用的物理寄存 器的分配等。
此外,核106還可包括跟蹤高速緩存或微代碼只讀存儲器 OROM)212,它用于存儲所提取(例如由提取單元202提取)的指令的微 代碼和/或蹤跡。存儲在pROM212中的微代碼可用來配置核106的各 種硬件組件。在一個實施例中,可從與處理器核106通信的另一個組 件(例如,參照圖8和圖9論述的計算機可讀介質(zhì)或其它存儲裝置)中加載存儲在[iROM 212中的微代碼。核106還可包括總線單元220,它 用于使得能夠經(jīng)由一條或多條總線(例如,總線104和/或112)而在處 理器核106的組件與其它組件(例如,參照圖1論述的組件)之間進(jìn)4亍通 信。核106還可包括一個或多個寄存器222,用于存儲供核106的各 個組件訪問的數(shù)據(jù)。
圖3a-b示出根據(jù)本發(fā)明的一個實施例的浮點加法器(209)的各部 分的框圖。圖3a-b中的浮點加法器209可以與參照圖2論述的浮點加 法器209相同或相似。根據(jù)本發(fā)明的一個實施例,加法器209的各種 信號通路的寬度如圖3a-b所示。而且,如圖3a-b所示,加法器209可 包括指數(shù)Cexponent)通路302和尾數(shù)通路304,用于執(zhí)行與兩個操作數(shù) 306和308的加法(或減法)對應(yīng)的各種運算。
如圖3a-b所示,加法器209可包括包咱"寸齊部分305在內(nèi)的多個 部分。對齊部分305可包括操作數(shù)格式轉(zhuǎn)換邏輯310,用于例如將操 作數(shù)306和308中的一個或多個操作數(shù)從第一才各式(例如,如圖5所示 的格式)修改為第二格式(例如,如圖6所示的格式)。指數(shù)通路302可 接收與算術(shù)運算(例如,加法或減法)對應(yīng)的操作碼312。邏輯314可確 定(例如,從包含預(yù)定義數(shù)據(jù)的表或存儲單元中查找)與轉(zhuǎn)換指令的操 作碼312對應(yīng)的指數(shù)。 一般來說,轉(zhuǎn)換指令可對單個操作數(shù)(例如操作 數(shù)308)進(jìn)行運算,而向另一個操作數(shù)(例如操作數(shù)306)提供零值。因此, 在一個實施例中,來自邏輯314的預(yù)定義指數(shù)可用來計算所得指數(shù), 并在需要時對齊數(shù)據(jù),這將參照圖3a-b進(jìn)一步論述。為此,復(fù)用器316 可接收和選擇來自邏輯314的指數(shù)之一以及與操作數(shù)之一(例如操作數(shù) 306)對應(yīng)的指數(shù)。在一個實施例中,復(fù)用器316可根據(jù)操作碼312來 選擇它的輸入之一。指數(shù)差邏輯318可接收和比較來自復(fù)用器316的 所選指數(shù)以及與操作數(shù)308對應(yīng)的指數(shù)。邏輯318可根據(jù)比較(在一個 實施例中,可以是一個或多個減法運算)的結(jié)果來生成一個或多個信 號,并將生成的信號(例如,減法結(jié)果和進(jìn)位輸出)提供給加法器209 的各個組件,以便例如提供尾數(shù)對齊,例如參照圖3a-b所述和所示。尾數(shù)通路304可包括邏輯320和322,它們用于從邏輯310 4妄收 格式轉(zhuǎn)換的操作數(shù),并根據(jù)例如從邏輯318進(jìn)行的指數(shù)差計算中生成 的進(jìn)位輸出信號來交換尾數(shù)(或提取尾數(shù)的一部分)。使用旋轉(zhuǎn)器(例如 邏輯324和326)和掩碼生成器(例如掩碼生成器336和338)來執(zhí)行與具 有較小指數(shù)的操作數(shù)對應(yīng)的尾數(shù)的對齊。在一個實施例中,可使用由 邏輯318生成的一個或多個信號來確定移位碼對齊,以便例如使得能 夠通過旋轉(zhuǎn)器324和326來將對應(yīng)于具有較小指數(shù)的操作數(shù)的尾數(shù)向 右循環(huán)移位。而且,在一個實施例中,邏輯318向邏輯324和326提 供的移位碼信號可以是五位寬。對于雙精度和擴展雙精度操作數(shù),在 一個實施例中,提供給邏輯324和326的移位碼(和/或進(jìn)位輸出)信號 可以相同。另外,邏輯320和322可向反相器328和330以及復(fù)用器 332和334提供具有較大指數(shù)的操作數(shù)306和308的尾數(shù)。另外,掩 碼生成器336和338可根據(jù)來自邏輯318的移位碼信號來生成掩碼, 以便使得能夠?qū)⑦壿?24和326的輸出移動一個或多個位。
如圖3a-b所示,邏輯324和326的輸出可分別通過邏輯340和342 向左移一個位。具體來說,操作數(shù)分析器344可分析操作數(shù)306和308, 并且如果操作數(shù)之一是不規(guī)則的,則生成一個或多個信號以便使得能 夠在邏輯340和342中移位。邏輯346在邏輯上組合(例如,通過使用 "與,,運算)掩碼生成器336和邏輯340的輸出。類似地,邏輯348在 邏輯上組合(例如,通過使用"與"運算)掩碼生成器338和邏輯342 的輸出。復(fù)用邏輯350接收邏輯346和348的輸出,并向加法器209 的加法部分355中的每個加法器352和354的輸入端之一提供信號。 將參照圖4進(jìn)一步論述與邏輯346、 348和350的一個實施例有關(guān)的其 它細(xì)節(jié)。
如圖3a-b所示,加法器352和354還可從復(fù)用器332和334接收 輸入信號。復(fù)用器332和334可根據(jù)基于操作碼(312)和操作數(shù)(例如, 操作數(shù)306和308)的符號生成的信號356(Compl一Hi)和358(Compl—Lo) 來選擇它們的輸入之一,以便由操作碼解碼器邏輯(未示出)來提供(真正的)減法(例如,相同符號的操作數(shù)的減法或者不同符號的操作數(shù)的 加法)或(真正的)加法(例如,不同符號的操作數(shù)的減法或者相同符號的
操作數(shù)的加法)運算。因此,加法器352和354可分別通過例如復(fù)用器 332和334來接收對齊和非對齊的尾數(shù),而復(fù)用器332和334又可提 供通過邏輯320和322選擇的非反相或反相(例如通過反相器328和 330反相)的尾數(shù)。加法器352和354還接收進(jìn)位輸入(cany in)信號。 例如,加法器354接收信號358作為進(jìn)位輸入信號,以便例如為真正 的減法情況提供全二的補碼。加法器352接收通過復(fù)用器362根據(jù)操 作碼312的精度格式提供的來自加法器354的進(jìn)位輸出(cany out)信號 360或信號356作為其進(jìn)位輸入信號。將加法器352和354的輸出提 供給反相器364和366以及復(fù)用器368和370。復(fù)用器368和370可 分別根據(jù)由加法器352和復(fù)用器371生成的選擇信號來選擇它們的輸 入信號之一作為輸出。在一個實施例中,由于對于真正的減法情況,
可對具有較大或相等指數(shù)的操作數(shù)的尾數(shù)進(jìn)行二的補碼,所以加法的 結(jié)果可以為負(fù),并且可進(jìn)行二的補碼??赏ㄟ^反演加法器352和354 的結(jié)果,并使用舍入器硬件(例如邏輯397)將二進(jìn)制一("1")相加,來 才丸4亍二的補碼(two,s complementing)。由于例如力口法器209可支持漸進(jìn) 下溢,所以加法部分355的指數(shù)通路302還可包括用于生成歸一化用 的限制器移位值的邏輯372。
將復(fù)用器368和370以及邏輯372的輸出提供給(加法器209的) 歸一化部分373,它包括前導(dǎo)零檢測(LZD)邏輯374和376。更具體來 說,通過例如檢測由加法器352和354通過復(fù)用器368和370提供的 加法結(jié)果中的前導(dǎo)零,邏輯374和376可確定用于歸一化的移位碼。 可將來自邏輯374和376的輸出信號連同來自復(fù)用器368和370的輸 出信號一起提供給邏輯378和380。邏輯378和380可根據(jù)邏輯374 和376的輸出來執(zhí)行向左循環(huán)移位,以便提供對加法結(jié)果的歸一化。 如圖3a-b所示,可將邏輯374和376的輸出提供給指數(shù)調(diào)節(jié)邏輯382 以及掩碼生成器384和386。掩碼生成器384和386可根據(jù)來自邏輯374和376的移位碼信號來生成掩碼,以便使得能夠分別通過邏輯388 和390來對邏輯378和380的輸出進(jìn)行歸一化(normalization)。在一個 實施例中,邏輯388和390可在邏輯上組合它們的輸入(例如,通過利 用邏輯"與"運算),例如參照邏輯346和348所論述的??赏ㄟ^復(fù)用 邏輯392(例如,在一個實施例中參照邏輯350所論述的)來選擇來自邏 輯388和390的輸出信號,以便將輸出提供給加法器209的舍入部分 393。根據(jù)一個實施例,邏輯392可向舍入部分393提供保護(hù)位和/或 舍入位。
在一個實施例中,在加法器209的加法部分355中,通過例如在 邏輯上組合(例如,通過邏輯"或"運算)由邏輯346和348提供的移位 輸出位,邏輯394和395可計算粘著位(stickybit),這將參照圖4進(jìn)一 步進(jìn)行^侖述。而邏輯396又可組合邏輯394和395的輸出,以便為兩 個單精度操作數(shù)提供兩個粘著位以及為雙精度和擴展雙精度操作數(shù)提 供單個粘著位。將來自邏輯396和392的輸出信號提供給舍入器邏輯 397,以便對尾數(shù)的加法(或減法)執(zhí)行舍入。此外,邏輯398可接收來 自邏輯382的指數(shù),并且通過例如在發(fā)生上舍入時添加一來修改(或固 定)上舍入情況的指數(shù)。另外,邏輯382可根據(jù)歸一化用的移位碼(例如, 由邏輯374和376提供)來調(diào)節(jié)指數(shù)(例如,從邏輯318接收的)。在一 個實施例中,邏輯382可將由邏輯318提供的較大指數(shù)減去從邏輯374 和376接收的移位碼。因此,在一個實施例中,可對于歸一化(例如, 通過邏輯382)和上舍入(round up)情況(例如,通過邏輯398)來校正由 邏輯318提供的較大指數(shù)。
在一個實施例中(例如,如圖3a-b所示),尾數(shù)通路304可包括兩 個獨立通路,用于處理操作數(shù)306和308的最高有效(MS)32位和最低 有效(LS)36位。例如,第一MS32位通路(例如,包括邏輯320、 324、 352和/或378)可對第一組數(shù)據(jù)(例如, 一對單精度浮點尾數(shù),例如參照 圖6中的操作數(shù)602所論述)進(jìn)行操作,而第二 LS 36位通路(例如,包 括邏輯322、 326、 354和/或380)可對第二組數(shù)據(jù)(可以是一對不同的單精度浮點尾數(shù))進(jìn)行操作。因此,可在這兩個通路中單獨處理兩^"單 精度尾數(shù)。并且,可使用第一和笫二通路的組合來對雙精度或擴展雙
精度操作數(shù)(例如,圖6中的操作數(shù)630和/或650)進(jìn)行操作。如圖3a-b 所示,邏輯350和392可實現(xiàn)這兩個尾數(shù)通路之間的信號的組合。
圖4示出根據(jù)本發(fā)明的一個實施例的圖3a-b中的加法器209的各 部分的其它細(xì)節(jié)的框圖。如圖4所示,可將由邏輯318生成的信號 402-410提供給復(fù)用器412-416。可通過根據(jù)操作碼312的精度格式生 成的信號來選擇復(fù)用器412-416的輸入。分別將復(fù)用器412、 414和416 的輸出提供給邏輯320、邏輯336和324、以及邏輯338和326。在各 種實施例中,信號402可對應(yīng)于用于在單精度情況對齊MS 32位的移 位碼;信號404可對應(yīng)于用于在雙精度或擴展雙精度情況對齊的移位 碼;信號406可對應(yīng)于用于在單精度情況對齊LS 36位的移位碼;信 號408可對應(yīng)于來自第二對單精度數(shù)據(jù)的指數(shù)差的進(jìn)位輸出信號;以 及信號410可對應(yīng)于來自雙精度或擴展雙精度數(shù)據(jù)的指數(shù)差的進(jìn)位輸 出信號。
如圖4所示,在一個實施例中,邏輯346可包括用于將邏輯340 和336的輸出組合的"與"門424和426。類似地,邏輯348可包括 用于將邏輯338和342的輸出組合的"與"門428和430??蓪㈤T426 和430的輸入之一反演(invert),例如如圖4所示。另外,"或(OR)" 門434可將門426和428的輸出組合(例如,通過在邏輯上對門426和 428的輸出進(jìn)行"或"運算)。此外,邏輯350可包括復(fù)用器436-440。 如圖所示,復(fù)用器436-440的輸入可通過信號442來選擇,信號442 由邏輯(例如,根據(jù)操作碼312的精度格式以及來自圖3中的318的信 號)生成以指示如何將對齊的尾數(shù)與來自存儲單元441(在一個實施例 中,它可以是硬件寄存器)以及邏輯424、 434和428的信號進(jìn)行組合。 此外,復(fù)用器436-440可接收來自存儲單元441的信號(例如,包含全 零),以便對于指數(shù)差大于32位的情況采用零來填充邏輯350的輸出 的前32位,或者對于指數(shù)差大于64位的情況采用零來填充邏輯350的輸出的前64位。邏輯350可釆用68位格式444(在一個實施例中, 它包括最高有效(MS)32位部分446、中間32位部分448和最低有效 (LS)4位部分450)來將復(fù)用器436-440的輸出提供給加法器352和354, 例如如圖4所示。
在各種實施例中,可按照下列情況中的一種或多種情況來提供各 部分446、 448和450:
-如果操作碼312對應(yīng)于單精度格式,并且第二對單精度操作數(shù) (306和308)的指數(shù)差(318)小于24,則可由邏輯424通過邏輯436來提 供部分446。類似的情況也可適用于第一對操作數(shù)(306、 308);即,可 由邏輯428通過邏輯438來提供部分448。另外,在一個實施例中(例 如,參照圖5和圖6所論述),每個操作數(shù)(306和308)可包括兩個單精 度數(shù)(例如,opl={xl,xO}, JLop2={yl, yO},其中"{},,表示并置)。 在這樣一個實施例中,第一對可對應(yīng)于xO和yO,而第二對可對應(yīng)于 xl和yl;
-如果操作碼312對應(yīng)于雙精度或擴展雙精度格式,并且指數(shù)差 (318)小于32,則可由邏輯424來提供部分446,并且可由邏輯434來 提供部分448;
-如果操作碼312對應(yīng)于雙精度或者擴展雙精度格式,并且指數(shù) 差(318)小于64但大于32,則可由存儲單元441來提供部分446,并且 可由邏輯424來提供部分448;
-如果操作碼312對應(yīng)于雙精度或擴展雙精度格式,并且指數(shù)差 (318)大于64,則可從存儲單元441來提供部分446,可由存儲單元441 來提供部分448,并且可由邏輯424來提供部分450。
圖5示出#>據(jù)本發(fā)明的一個實施例的圖3a-b中的才喿作數(shù)306和308 的示例操作數(shù)格式500。圖6示出在通過圖3a-b中的邏輯310格式轉(zhuǎn) 換圖5中的操作數(shù)之后、與圖5中的格式500對應(yīng)的格式轉(zhuǎn)換的浮點 加法器操作數(shù)格式600。根據(jù)本發(fā)明的一些實施例來說明圖5和圖6 中示出的操作數(shù)的每個字段的寬度。參照圖5,單精度操作數(shù)502(在一個實施例中,它可表示兩個單 精度浮點數(shù))可包括符號字段504和506、指數(shù)字段508和510、以及 尾數(shù)字段512和514。并且,雙精度操作數(shù)520也可包括符號字段522、 指數(shù)字段524和尾數(shù)字段526。另外,擴展雙精度操作數(shù)530可包括 符號字段532、指數(shù)字段534、 J字段536(它可指示尾數(shù)是否是歸一化 的)和尾數(shù)字段538。 一般來說,J位(536)可對應(yīng)于尾數(shù)的整數(shù)部分, 它在單精度和雙精度格式中可隱藏。另外,對于不規(guī)則數(shù),可將J位 設(shè)置為零。
參照圖6,單精度操作數(shù)602可包括符號字段604(它可對應(yīng)于符 號字段504)、指數(shù)字段606和608(在一個實施例中,它們可對應(yīng)于字 段508和510)、零字段610(它可對應(yīng)于符號字段506)、上溢字段612 和614(例如,指示加法器209的通路中的上溢條件)、J字段616和 618(例如,指示對應(yīng)浮點數(shù)是規(guī)則的)、以及尾數(shù)字段620和622(在一 個實施例中,它們可對應(yīng)于字段512和514)。并且,雙精度操作數(shù)630 可包括符號字段632(在一個實施例中,它可對應(yīng)于字段522)、指數(shù)字 段634(在一個實施例中,它可對應(yīng)于字段524)、上溢字段636(例如, 指示上溢條件)、J字段638(例如,指示對應(yīng)浮點數(shù)是規(guī)則的)、以及尾 數(shù)字段640(在一個實施例中,它可對應(yīng)于字段526)。另外,擴展雙精 度操作數(shù)650可包括符號字段652(在一個實施例中,它可對應(yīng)于字段 532)、指數(shù)字段654(在一個實施例中,它可對應(yīng)于字段534)、上溢字 段656(例如,指示上溢條件)、J字段658(例如,指示對應(yīng)浮點數(shù)是規(guī) 則的)、以及尾數(shù)字段660(在一個實施例中,它可對應(yīng)于字段538)。如 圖6所示,操作數(shù)602、 630和650的其它字段可以不使用(例如具有 全零)。在一個實施例中,邏輯310可分別將操作數(shù)502、 520和530 格式轉(zhuǎn)換為操作數(shù)602、 630和650。
圖7示出根據(jù)本發(fā)明的一個實施例用于將浮點數(shù)相加和/或相減的 方法的一個實施例的流程圖。在一個實施例中,可用不同的浮點表示 格式來表示相加和/或相減的浮點數(shù),例如兩個單精度、雙精度和/或擴展雙精度浮點數(shù)(例如,參照圖5和圖6所論述的浮點數(shù))。在一個實施 例中,可利用參照圖l-6和圖8-9論述的各種組件來執(zhí)行參照圖7論述 的一個或多個操作。例如,方法700可用于將由諸如高速緩存108、 高速緩存116、存儲器114和/或寄存器222的存儲單元存儲(和/或從其 中讀取)的浮點數(shù)相加和/或相減。
參照圖1-7,在操作702,加法器209可接收操作碼312和操作數(shù) 306-308。在操作704,邏輯310可將操作數(shù)306-308格式轉(zhuǎn)換,例如 參照圖3a-b所論述的。在操作706,邏輯318可比較指數(shù),例如參照 圖3a-b所論述的。在操作708,可通過對齊部分305來對齊格式轉(zhuǎn)換 后的操作數(shù)的尾數(shù)。在操作710,可將對齊的尾數(shù)進(jìn)行組合(例如相加 或相減),例如參照圖3a-b中的加法部分355所論述的。在操作712, 可通過歸一化部分373來將加法器209的加法部分355的結(jié)果進(jìn)行歸 一化。然后,在操作714,可通過例如參照圖3a-b論述的舍入部分393 來對來自加法器209的歸一化部分373的結(jié)果進(jìn)行舍入。
圖8示出根據(jù)本發(fā)明的一個實施例的計算系統(tǒng)800的框圖。計算 系統(tǒng)800可包括一個或多個中央處理單元(CPU)802或處理器,它們經(jīng) 由互連網(wǎng)絡(luò)(或總線)804進(jìn)行通信。處理器802可包括通用處理器、網(wǎng) 絡(luò)處理器(用于處理通過計算機網(wǎng)絡(luò)803傳遞的數(shù)據(jù))或其它類型的處 理器(包括精筒指令集計算機(RISC)處理器或復(fù)雜指令集計算機(CISC) 處理器)。另外,處理器802可具有單核或多核設(shè)計。具有多核設(shè)計的 處理器802可將不同類型的處理器核集成在同一個集成電路(IC)管芯 上。而且,具有多核設(shè)計的處理器802可實現(xiàn)為對稱或不對稱的多處 理器。在一個實施例中,其中一個或多個處理器802可以與圖1中的 處理器102相同或相似。例如,其中一個或多個處理器802可包括一 個或多個核106(例如,包括加法器209)和/或高速緩存108。并且,可 由系統(tǒng)800的一個或多個組件來執(zhí)行參照圖l-7論述的操作。
芯片組806也可與互連網(wǎng)絡(luò)804進(jìn)行通信。芯片組806可包括存 儲器控制器集線器(MCH)808。 MCH 808可包括與存儲器114進(jìn)行通信的存儲器控制器810。存儲器114可存儲數(shù)據(jù),包括供CPU 802或 計算系統(tǒng)800中包含的任何其它裝置執(zhí)行的指令序列。在本發(fā)明的一 個實施例中,存儲器114可包括一個或多個易失性存儲(或存儲器)裝 置,例如隨機存取存儲器(RAM)、動態(tài)RAM(DRAM)、同步 DRAM(SDRAM)、靜態(tài)RAM(SRAM)或其它類型的存儲裝置。還可使 用非易失性存儲器,例如硬盤。附加裝置可經(jīng)由互連網(wǎng)絡(luò)804進(jìn)行通 信,例如多個CPU和/或多個系統(tǒng)存儲器。
MCH 808還可包括與圖形加速器816進(jìn)行通信的圖形接口 814。 在本發(fā)明的一個實施例中,圖形接口 814可經(jīng)由加速圖形端口(AGP) 與圖形加速器816進(jìn)行通信。在本發(fā)明的一個實施例中,顯示器(例如 平板顯示器)可通過例如信號轉(zhuǎn)換器與圖形接口 814進(jìn)行通信,其中信 號轉(zhuǎn)換器用于將存儲在諸如視頻存儲器或系統(tǒng)存儲器的存儲裝置中的 圖像的數(shù)字表示轉(zhuǎn)換成可由顯示器解釋和顯示的顯示信號。由顯示裝 置產(chǎn)生的顯示信號可經(jīng)過各種控制裝置,然后由顯示器進(jìn)行解釋并且 隨后在顯示器上顯示。
集線器接口 818可允許MCH 808和輸入/輸出控制器集線器 (ICH)820進(jìn)行通信。ICH 820可提供到與計算系統(tǒng)800進(jìn)行通信的I/O 裝置的接口。 ICH 820可通過諸如外圍組件互連(PCI)橋、通用串行總 線(USB)控制器或其它類型的外圍橋或控制器的外圍橋(或控制器)824 來與總線822進(jìn)行通信。橋824可提供CPU 802與外圍裝置之間的數(shù) 據(jù)通路??墒褂闷渌愋偷耐貥恪6?,多條總線可通過例如多個橋 或控制器來與ICH 820進(jìn)行通信。另外,在本發(fā)明的各種實施例中, 與ICH 820進(jìn)行通信的其它外圍設(shè)備可包括集成驅(qū)動電子裝置(IDE)或 小型計算機系統(tǒng)接口(SCSI)硬盤驅(qū)動器、USB端口、鍵盤、鼠標(biāo)、并 行端口、串行端口、軟盤驅(qū)動器、數(shù)字輸出支持裝置(例如數(shù)字視頻接 口(DVI))或其它裝置。
總線822可與音頻裝置826、 一個或多個磁盤驅(qū)動器828和網(wǎng)絡(luò) 接口裝置830(它與計算機網(wǎng)絡(luò)803通信)進(jìn)行通信。其它裝置可經(jīng)由總線822進(jìn)行通信。而且,在本發(fā)明的一些實施例中,各種組件(例如網(wǎng) 絡(luò)#~口裝置830)也可與MCH 808進(jìn)行通信。此外,可將處理器802 和MCH808組合以形成單個芯片。另外,在本發(fā)明的其它實施例中, 圖形加速器816可包含在MCH808中。
另外,計算系統(tǒng)800可包括易失性和/或非易失性存儲器(或存儲裝 置)。例如,非易失性存儲器可包括下列存儲器中的一種或多種存儲器 只讀存儲器(ROM),可編程ROM(PROM),可擦除PROM(EPROM), 電EPROM(EEPROM),磁盤驅(qū)動器(例如828),軟盤,致密盤 ROM(CD-ROM),數(shù)字多功能盤(DVD),閃速存儲器,磁-光盤,或者 能夠存儲電子數(shù)據(jù)(例如包括指令)的其它類型的非易失性機器可讀介 質(zhì)。
圖9示出根據(jù)本發(fā)明的一個實施例按照點對點(PtP)酉己置布置的計 算系統(tǒng)900。具體來說,圖9示出其中處理器、存儲器和輸入/輸出裝 置通過多個點對點接口互連的系統(tǒng)??赏ㄟ^系統(tǒng)900的一個或多個組 件來執(zhí)行參照圖l-8論述的操作。
如圖9所示,系統(tǒng)900可包括若干個處理器,為了清楚起見,僅 示出其中兩個處理器,即處理器902和904。處理器902包括用于實 現(xiàn)與存儲器910的通信的本地存儲器控制器集線器(MCH)906,處理器 904包括用于實現(xiàn)與存儲器912的通信的本地存儲器控制器集線器 (MCH)908。存儲器910和/或912可存儲各種數(shù)據(jù),例如參照圖8中 的存儲器114論述的數(shù)據(jù)。
在一個實施例中,處理器902和904可以是參照圖8論述的其中 一個處理器802。處理器902和904可分別使用點對點(PtP)接口電路 916和918經(jīng)由PtP接口 914來交換數(shù)據(jù)。并且,處理器902可使用點 對點接口電路926、 930經(jīng)由單獨PtP接口 922來與芯片組920交換數(shù) 據(jù),處理器904可使用點對點接口電路928、 932經(jīng)由單獨PtP接口 924 來與芯片組920交換數(shù)據(jù)。芯片組920還可使用例如PtP接口電路937 經(jīng)由高性能圖形接口 936來與高性能圖形電路934交換數(shù)據(jù)??稍谔幚砥?02和904中提供本發(fā)明的至少一個實施例。例如, 圖1中的一個或多個核106(例如包括加法器209)和/或高速緩存108可 設(shè)置在處理器902和904中。但是,本發(fā)明的其它實施例可存在于圖 9的系統(tǒng)900的其它電路、邏輯單元或裝置中。另外,本發(fā)明的其它 實施例可分布在若干個如圖9所示的電路、邏輯單元或裝置上。
芯片組920可使用PtP接口電路941來與總線940進(jìn)行通信。總 線940可具有與其通信的一個或多個裝置,例如總線橋942和I/O裝 置943。經(jīng)由總線944,總線橋943可與諸如鍵盤/鼠標(biāo)945、通信裝置 946(例如,調(diào)制解調(diào)器、網(wǎng)絡(luò)接口裝置或可與計算機網(wǎng)絡(luò)803進(jìn)行通 信的其它通信裝置)、音頻I/O裝置和/或數(shù)據(jù)存儲裝置948的其它裝置 進(jìn)行通信。數(shù)據(jù)存儲裝置948可存儲可供處理器902和/或904執(zhí)行的 代碼949。
在本發(fā)明的各種實施例中,本文中參照例如圖1-9論述的操作可 實現(xiàn)為硬件(例如電路)、軟件、固件、微代碼或者它們的組合,它們 可作為計算機程序產(chǎn)品來提供,包括例如其中存儲了用于將計算機編 程為執(zhí)行本文論述的過程的指令(或軟件過程)的機器可讀或計算機可 讀介質(zhì)。并且,舉例來說,術(shù)語"邏輯"可包括軟件、硬件或者軟件 和硬件的組合。機器可讀介質(zhì)可包括例如針對圖l-9論述的存儲裝置。 此外,這類計算機可讀介質(zhì)可作為計算機程序產(chǎn)品來下載,其中,程 序可通過在載波或其它傳播介質(zhì)中實施的數(shù)據(jù)信號、經(jīng)由通信鏈路(例 如,總線、調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)從遠(yuǎn)程計算機(例如服務(wù)器)傳遞到 請求計算機(例如客戶機)。因此,在本文中,應(yīng)將載波視為是包括機
器可讀介質(zhì)。
說明書中提到"一個實施例"時表示,結(jié)合該實施例描述的特定 特征、結(jié)構(gòu)或特性包含在至少一個實現(xiàn)中。在本說明書的各個位置中 出現(xiàn)短語"在一個實施例中"時可能或者可能不是全部指同一個實施例。
而且,在本描述和權(quán)利要求中,可使用術(shù)語"耦合"和"連接"及其派生詞。在本發(fā)明的一些實施例中,"連接"可用來指示兩個或 兩個以上元件相互直接物理或電接觸。"耦合"可表示兩個或兩個以 上元件直接物理或電接觸。但是,"耦合"也可表示兩個或兩個以上 元件可能不是相互直接接觸,而是可能仍然相互配合或交互。
因此,雖然上文用結(jié)構(gòu)特征和/或方法動作特有的語言描述了本發(fā) 明的實施例,但是應(yīng)理解,要求權(quán)利的主題可不局限于所描述的特定 特征或動作。確切地說,這些特定特征和動作是作為實現(xiàn)要求權(quán)利的 主題的示例形式來公開的。
權(quán)利要求
1. 一種處理器,包括第一邏輯(310),用于將第一操作數(shù)(306,308)從第一格式(502,520,530)轉(zhuǎn)換成第二格式(602,630,650);以及第二邏輯(352,354),用于將轉(zhuǎn)換后的第一操作數(shù)的一部分與所述第二格式的第二操作數(shù)的一部分進(jìn)行組合。
2. 如權(quán)利要求1所述的處理器,還包括第三邏輯(318),用于將對 應(yīng)于所述第一操作數(shù)的第一指數(shù)與所述第二操作數(shù)的第二指數(shù)進(jìn)行比 較。
3. 如權(quán)利要求1所述的處理器,其中,所述第二邏輯在與雙精度 指數(shù)或擴展雙精度通路相同的通路(304)中組合多個單精度操作數(shù)。
4. 如權(quán)利要求1所述的處理器,還包括第三邏輯(310),用于將所 述第二操作數(shù)從第三格式轉(zhuǎn)換成所述第二格式。
5. 如權(quán)利要求1所述的處理器,其中,所述第二邏輯通過加法運 算或減法運算來組合轉(zhuǎn)換后的第一操作數(shù)的所述部分和所述第二操作 數(shù)的所述部分。
6. 如權(quán)利要求1所述的處理器,還包括第三邏輯(397),用于對通 過所述第二邏輯進(jìn)行的所述組合的結(jié)果進(jìn)行舍入。
7. 如權(quán)利要求1所述的處理器,還包括第三邏輯(344),用于分析 轉(zhuǎn)換后的第 一操作數(shù)和所述第二操作數(shù)的一部分,以便確定所述第一 或第二操作數(shù)其中之一是否對應(yīng)于不規(guī)則操作數(shù)。
8. 如權(quán)利要求1所述的處理器,還包括一個或多個處理器核 (106),其中所述一個或多個處理器核中的至少一些處理器核包括所述 第 一邏輯或所述第二邏輯中的 一個或多個邏輯。
9. 如權(quán)利要求8所述的設(shè)備,其中,所述一個或多個處理器核(106) 中的至少一個處理器核、所述第一邏輯和所述第二邏輯在相同管芯上。
10. —種方法,包括將多個操作數(shù)修改(704)成相同格式;以及 組合(710)與所修改的多個操作數(shù)對應(yīng)的多個尾數(shù)。
11. 如權(quán)利要求IO所述的方法,還包括比較(706)所修改的多個 操作數(shù)的部分。
12. 如權(quán)利要求IO所述的方法,還包括對齊(708)所述多個尾數(shù) 的部分。
13. 如權(quán)利要求IO所述的方法,還包括對所述多個尾數(shù)的組合 結(jié)果進(jìn)行歸一化(712)。
14. 如權(quán)利要求IO所述的方法,還包括對所述多個尾數(shù)的組合 結(jié)果進(jìn)行舍入(714)。
15. —種系統(tǒng),包括存儲器(108, 114, 116),用于存儲數(shù)據(jù);第一邏輯(202),用于從所述存儲器中提取操作碼(312)、第一操作 數(shù)(306)和第二操作數(shù)(308);第二邏輯(310),用于將所述第一操作數(shù)和所述第二操作數(shù)修改成 相同格式;以及第三邏輯(324, 326),用于根據(jù)對應(yīng)于所述第一操作數(shù)的笫一指 數(shù)與對應(yīng)于所述第二操作數(shù)的第二指數(shù)的比較(318)來對齊所述第一 或第二操作數(shù)其中之一。
16. 如權(quán)利要求15所述的系統(tǒng),還包括第四邏輯(352, 354),用 于將所述第一操作數(shù)的一部分與所述第二操作數(shù)的一部分進(jìn)行組合。
17. 如權(quán)利要求15所述的系統(tǒng),還包括第四邏輯(344),用于分析所述第一操作數(shù)和所述第二操作數(shù)的一部分,以便確定所述第一或第 二操作數(shù)其中之一是否對應(yīng)于不規(guī)則操作數(shù)。
18. 如權(quán)利要求15所述的系統(tǒng),其中,所述存儲器包括l級高速 緩存、中間級高速緩存或最后一級高速緩存中的一個或多個高速緩存。
19. 如權(quán)利要求15所述的系統(tǒng),還包括用于訪問存儲在所述存儲 器中的數(shù)據(jù)的多個處理器核(106)。
20.如權(quán)利要求15所述的系統(tǒng),還包括音頻裝置(947)。
全文摘要
描述用于執(zhí)行浮點加法的方法和設(shè)備。在一個實施例中,將多個操作數(shù)(306,308)格式轉(zhuǎn)換(310)為共有格式(602,630,650)并進(jìn)行組合(例如,相加或相減)。
文檔編號G06F7/48GK101438232SQ200680054583
公開日2009年5月20日 申請日期2006年5月16日 優(yōu)先權(quán)日2006年5月16日
發(fā)明者A·Y·西夫特索夫, V·Y·戈什泰因 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1