热门问题
时间线
聊天
视角
顯式並行指令運算
来自维基百科,自由的百科全书
Remove ads
顯式並行指令運算(英文:Explicitly Parallel Instruction Computing,縮寫:EPIC)是一種指令集架構,是 1997 年由惠普-英特爾聯盟創造的一個術語 [1] ,用來描述一個自 1980 年代早期以來研究人員一直在探索的計算範式。 [2] 這個範式也被稱為獨立架構。它是英特爾和惠普開發英特爾 Itanium 架構的基礎, [3] 而惠普後來聲稱「EPIC」只是 Itanium 架構的一個舊術語。 [4] EPIC 允許微處理器通過使用編譯器而不是複雜的芯片內電路來控制並行指令執行,從而並行執行軟件指令。這旨在實現簡單的性能擴展,而無需依賴更高的時鐘頻率。
![]() |
Remove ads
原理
其指令中有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 架構還增加了旋轉寄存器文件,這是一種對軟件流水線有用的工具,因為它避免了手動展開和重命名寄存器的需要。
Remove ads
其他研發
還有其他對 EPIC 架構的研究,這些研究與 Itanium 架構的發展沒有直接關係:
- 伊利諾伊大學厄本那-香檳分校的 IMPACT 項目,由 Wen-mei Hwu 領導,是該主題上許多有影響力研究的來源。
- HP-labs 的 PlayDoh 架構是另一個重要的研究項目。
- Gelato 是一個開源開發社區,學術和商業研究人員在其中合作開發更有效的編譯器,以支持在 Itanium 服務器上運行的 Linux 應用程序。
另見
- 複雜指令集計算機 (CISC)
- 精簡指令集計算機 (RISC)
- {Link-en|最小指令集計算機 (MISC)|Minimal_instruction_set_computer}
- 超長指令字 (VLIW)
- 無指令集計算
- 單一指令計算機(OISC)
- 計算機系統結構
- 超標量CPU架構
- {Link-en|?寬發射架構|Wide-issue}
參考文獻
- 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.
- 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.
- "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.
- De Gelas, Johan (November 9, 2005). "Itanium–Is there light at the end of the tunnel?". AnandTech. Retrieved 2008-05-08.
Remove ads
外部連結
EPIC 的歷史背景 馬克·斯莫瑟曼(2002)《理解 EPIC 架構和實現》
![]() | 這是一篇與電腦相關的小作品。您可以透過編輯或修訂擴充其內容。 |
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads