顯式並行指令運算

来自维基百科,自由的百科全书

顯式並列指令運算英文Explicitly Parallel Instruction Computing縮寫EPIC)是一種指令集架構,是 1997 年由惠普-英特爾聯盟創造的一個術語 [1] ,用來描述一個自 1980 年代早期以來研究人員一直在探索的計算範式。 [2] 這個範式也被稱為獨立架構。它是英特爾和惠普開發英特爾 Itanium 架構的基礎, [3] 而惠普後來聲稱「EPIC」只是 Itanium 架構的一個舊術語。 [4] EPIC 允許微處理器通過使用編譯器而不是複雜的晶片內電路來控制並列指令執行,從而並列執行軟體指令。這旨在實現簡單的效能擴充,而無需依賴更高的時脈頻率。


原理

其指令中有3位是用來指示上一條運算指令是不是與下一條指令有相關性,是不是要等上一條指令執行完畢後才能執行下一條,如果沒有相關性,則兩條指令可同時由不同的CPU節點來處理,這樣的方式大大提高了CPU並列運算的效率。

實現

EPIC成為IA-64架構的基礎(IA代表Intel Architecture,即英特爾架構,與IA-32對應),這是英特爾與惠普共同開發的純64位元微處理器。英特爾的安騰(Itanium)系統處理器採用了這種架構。


基於VLIW的根源

到 1989 年,惠普的研究人員認識到精簡指令集電腦(RISC)架構在每個周期只能執行一條指令,達到了極限。 [clarification needed] 他們開始研究一種新架構,後來被命名為 EPIC。 [3] 研究的基礎是 VLIW,其中每條指令中編碼了多個操作,然後由多個執行單元處理。

EPIC 的一個目標是將指令排程的複雜性從 CPU 硬體轉移到軟體編譯器,這樣編譯器可以靜態地進行指令排程(藉助跟蹤回饋資訊)。這消除了 CPU 中複雜排程電路的需求,從而為其他功能釋放了空間和功率,包括額外的執行資源。另一個同樣重要的目標是通過使用編譯器尋找和利用額外的並列執行機會,進一步利用指令級並列性(ILP)。

VLIW(至少原始形式)有幾個缺點,使其未能成為主流:

  • VLIW 指令集在不同實現之間不向下相容。當構建更寬的實現(更多執行單元)時,寬機器的指令集與較舊的、較窄的實現不向下相容。
  • 從包括 CPU 快取和 DRAM 的主記憶體層次載入回應沒有確定的延遲。這使得編譯器對載入指令的靜態排程變得非常困難。

EPIC 架構源於 VLIW 架構,但保留了許多超純量架構的概念。

超越 VLIW

EPIC 架構增加了幾個特性以克服 VLIW 的不足:

  • 每組多個軟體指令稱為一個捆綁包。每個捆綁包都有一個停止位,指示該操作集是否被後續捆綁包依賴。通過這種能力,未來的實現可以並列發出多個捆綁包。依賴資訊由編譯器計算,因此硬體不必執行運算元依賴檢查。
  • 軟體預取指令作為一種資料預取使用。此預取增加了載入時快取命中率的機會,並可以指示在各級快取中所需的時間局部性程度。
  • 投機載入指令用於在尚不確定資料是否會被使用(繞過控制依賴)或在使用之前是否會被修改(繞過資料依賴)時,投機性地載入資料。
  • 檢查負載指令通過檢查一個投機負載是否依賴於後續儲存,從而幫助投機負載,因此必須重新載入。

EPIC 架構還包括一系列建築概念,以增加 ILP:

  • 基於條件的執行用於減少分支的發生並增加指令的推測執行。在此功能中,分支條件被轉換為謂詞暫存器,這些暫存器用於消除未被採取的分支一側已執行指令的結果。
  • 延遲異常,使用通用暫存器中的一個非事物位,允許在可能的異常之後進行推測性執行。
  • 非常大的架構暫存器檔案避免了暫存器重新命名的需求。
  • 多路分支指令通過將多個替代分支組合成一個捆綁來提高分支預測。

Itanium 架構還增加了旋轉暫存器檔案,這是一種對軟體管線有用的工具,因為它避免了手動展開和重新命名暫存器的需要。

其他研發

還有其他對 EPIC 架構的研究,這些研究與 Itanium 架構的發展沒有直接關係:

  • 伊利諾伊大學厄本那-香檳分校的 IMPACT 專案,由 Wen-mei Hwu 領導,是該主題上許多有影響力研究的來源。
  • HP-labs 的 PlayDoh 架構是另一個重要的研究專案。
  • Gelato 是一個開源開發社群,學術和商業研究人員在其中合作開發更有效的編譯器,以支援在 Itanium 伺服器上執行的 Linux 應用程式。

另見


參考文獻

  1. Schlansker and Rau (February 2000). "EPIC: An Architecture for Instruction-Level Parallel Processors" (PDF). HP Laboratories Palo Alto, HPL-1999-111. Retrieved 2008-05-08.
  1. US 4847755, Morrison, Gordon E.; Brooks, Christopher B. & Gluck, Frederick G., "Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies", published 1989-07-11, assigned to MCC Development Ltd.
  1. "Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip Architecture". HP Labs. June 2001. Archived from the original on 2012-03-04. Retrieved 2007-12-14.
  1. De Gelas, Johan (November 9, 2005). "Itanium–Is there light at the end of the tunnel?". AnandTech. Retrieved 2008-05-08.


外部連結

EPIC 的歷史背景 馬克·斯莫瑟曼(2002)《理解 EPIC 架構和實現》


Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.