超長指令字

超長指令字

超長指令字是微處理器設計領域中的一種越來越流行的技術。 超長指令字處理器採用多個獨立的功能部件,但它並不是將多條指令流出到各個功能單元,而是將多條指令的操作打包,形成一條非常長的指令,超長指令字由此得名。選擇同時可流出的多條指令的任務由編譯器完成,而在超標量機器中此功能是由硬體完成的,所以超長指令字機器可以節省大量硬體。

發展

1980年代,迅速發展的RISC處理器廣泛採用超標量和超流水線等指令級並行處理技術。由於相關性問題的存在,儘管這兩種技術都採用了硬體邏輯電路來解決和處理相關性問題,但指令序列並不能夠充分流水化,使處理器不能充分實現指令級並行處理,影響了計算機性能的提高。

1983年,美國Yale大學教授J Fisher提出了超長指令字(Very Long Instruction Word,VLIW)體系結構。VLIW處理器指令字較長,一般為128位,甚至上千位。VLIW處理器指令字被劃分成多個獨立控制欄位,且具有固定格式。指令字中的每個控制欄位可直接獨立控制相應的功能部件。也就是說,一個控制欄位就相當於其他處理器中的一條指令。

原理

VLlW處理器的一個超長指令字包含多個操作欄位,每個欄位可與相應的功能部件對應。這些操作欄位包括可並行執行的多個運算器控制指令欄位、若干個存儲器控制指令欄位和其他操作控制欄位。各運算部件和共享的大容量暫存器堆直接相連,以便提供運算所需要的運算元或存放運算結果,對數據的讀/寫操作也可以通過存儲器指令欄位對指定存儲模組中的存儲單元進行。運行時不需要用軟體或硬體來檢測其並行性,而直接由超長指令字來控制機器中多個相互獨立的功能部件並行操作。雖然這種欄位控制方式的思路來自於微程式控制器的水平微指令方式,但微指令只對一個運算部件進行控制,而VLIW是對多個功能部件並行控制。

實際上,VLIW的實現是由編譯器將多條可以傳送的標準指令捆綁在一條超長指令字中。基於多個可以同時執行的功能部件的支持,處理器在一個時鐘周期內可以發射超長指令字中的多條指令,實現多條指令的並行執行。由於VLlW指令中的欄位數是固定的,因此要提高VLIW處理器同時發射指令的條數,就需要重新設計VLlW指令格式,增加有關功能部件,並重新設計編譯系統。這與同樣具有多發射指令的超標量處理器不同。超標量處理器具有多條指令執行流水線,指令的並行性由處理模組硬體來檢驗,無須編譯保證。增加處理模組的個數有可能提高超標量處理器同時發射指令的條數。

結構格式

每個VLIW的指令可能包括兩個整數操作、兩個浮點操作、兩個訪存操作和一個分支操作。每條指令對應於每個功能單元有幾個域,每個功能單元可能占用16到24位,從而指令長度達到112到168位。為了充分利用功能單元,要求代碼序列必須有較大的並行度來有效填充操作槽。通過循環展開和使用全局的調度技術來對基本塊進行調度可獲得較高的並行度。除了通過循環展開消除分支轉移的開銷,全局調度策略可將指令跨轉移點移動。

超長指令字也有助於開發程式中的指令級並行性。一個超長指令字包含了多條基本指令(primitive instructions),它們被傳送到不同的VLIW入口中並行執行。但是這個能力不是在執行時由硬體負責,而是由編譯器賦予的。編譯器在生成的目標代碼中把彼此獨立的基本指令分到一個組裡,以並行執行。由於超長指令字處理器不需要動態調度,也不需要進行重定向操作,所以它的控制邏輯相當簡單。

特點

VLIW方式具有下述主要特徵:

(1)依靠編譯組裝超長指令。VLIW方式是在編譯時發現和利用程式的並行運算可能性。編譯從原程式中抽出可能的並行運算組裝成一條超長指令,可以得到接近VLIW處理器中並行運算器數目的並行度。但要是程式並行度低,會造成VLlW指令中的運算器控制欄位部分空閒,降低了指令欄位的利用率。因此,VLIW方式的並行度依賴於編譯的並行化能力及程式本身的並行化程度。

(2)硬體結構簡單。由於指令的並行調度由編譯完成,運行時不需要檢驗,因此VLIW方式簡化了控制電路,使得它的結構簡單,晶片製造成本低,能耗小。

(3)需要較大的指令頻寬和較大的存儲空間,這是超長指令字整體傳輸的要求。

(4)雖然經過編譯處理,但由於程式在動態執行時不可避免的轉移等操作,超長指令字指令仍可能在並行執行時出現相關,導致代碼空間和執行速度上的雙重損失。

(5)適合於細粒度的並行處理。VLlW方式可用指令欄位直接控制運算部件在指令級進行細粒度並行處理,它有多條匯流排與運算器相連,指令欄位可直接控制其數據鏈路,因此通信開銷小,適合於面向低級運算的細粒度並行處理。

(6)指令系統的非兼容性。VLlW方式的指令格式與硬體密切相關,一旦定型後很難改變,使其指令系統不僅與傳統的通用處理器結構完全不兼容,就是和同類型而並行性不同的VLlW處理器也不兼容。因此,儘管VLIW思想提供了簡化處理器設計的途徑,但難以成為處理器的主流,只能輔助超標量、超流水線等處理方式的套用。

相關詞條

相關搜尋

熱門詞條

聯絡我們