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