跳至內容

英文维基 | 中文维基 | 日文维基 | 草榴社区

超長指令字

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
安騰架構試圖使用超長指令字來提高效能,但最終由於多種原因失敗

超長指令字(英語:Very long instruction word縮寫VLIW)指的是一種被設計為可以利用指令級並列(ILP)優勢的CPU體系結構。一個按照順序執行指令的非超純量處理器不能充分的利用處理器的資源,有可能導致低效能。

效能可以通過同時執行一系列指令中的不同子步驟來提高(這就是管線),或者像超純量架構一樣,甚至完全的並列執行多個處理器指令。進一步的提高可以通過指令的執行順序與在程式碼中出現的順序不同來提高,這就是亂序執行

這3種技術都要付出代價:增加了硬體的複雜性。在並列執行任何操作之前,處理器必須確認這些指令間沒有相互依賴。例如第一個指令的結果作為第二個指令的輸入。很明顯,這樣的兩條指令無法同時執行,並且第2條指令不能在先於第一條指令執行。亂序執行處理器增加了硬體資源用於排程指令和決定相互依賴。

另一方面,VLIW通過另外一種方法來實現並列。VLIW的並列指令執行是基於一個確定的排程。這個排程是程式在編譯的時候就已經確定好的。由於決定亂序執行的工作是由編譯器來完成的,處理器不再需要上面三種技術所需的排程硬體。結果VLIW處理器相比其他多數的超純量處理器提供了更加強大的處理能力但是更少的硬體複雜性(編譯器的複雜性提高了)。

正如一些其他比較新穎的架構,這種並列執行的概念只有當編譯器能生成有效的代碼的時候才變得有用。事實上,一些有著特殊目的的指令可以用來幫助一些複雜的操作,例如快速傅立葉變換或者在地貌計算中出現的計算。如果編譯器無法準確的找出相關的代碼並且生成可以利用CPU能力的目的碼,這些特殊目的的指令將變得毫無用處。例如,程式設計師可能需要將他的演算法用一種可以降低編譯器工作難度的方式進行描述。