超長指令字

超長指令字 （ VLIW ： Very long instruction word ） 指的是一種被設計爲可以利用指令級並行 （ ILP ） 優勢的CPU體系結構 。 一個按照順序執行指令的非超標量處理器不能充分的利用處理器的資源 ， 有可能導致低性能 。 性能可以通過同時執行一系列指令中的不同子步驟來提高 （ 這就是流水線 ） ， 或者像超標量架構一樣 ， 甚至完全的並行執行多個處理器指令 。 進一步的提高可以通過指令的執行順序與在程序代碼中出現的順序不同來提高 ， 這就是亂序執行 。 這3種技術都要付出代價 ： 增加了硬件的複雜性 。 在並行執行任何操作之前 ， 處理器必須確認這些指令間沒有相互依賴 。 例如第一個指令的結果作爲第二個指令的輸入 。 很明顯 ， 這樣的兩條指令無法同時執行 ， 並且第2條指令不能在先於第一條指令執行 。 亂序執行處理器增加了硬件資源用於調度指令和決定相互依賴 。 另一方面 ， VLIW通過另外一種方法來實現並行 。 VLIW的並行指令執行是基於一個確定的調度 。 這個調度是程序在編譯的時候就已經確定好的 。 由於決定亂序執行的工作是由編譯器來完成的 ， 處理器不再需要上面三種技術所需的調度硬件 。 結果VLIW處理器相比其他多數的超標量處理器提供了更加強大的處理能力但是更少的硬件複雜性 （ 編譯器的複雜性提高了 ） 。 正如一些其他比較新穎的架構 ， 這種並行執行的概念只有當編譯器能生成有效的代碼的時候才變得有用 。 事實上 ， 一些有着特殊目的的指令可以用來幫助一些複雜的操作 ， 例如快速傅立葉變換或者在地貌計算中出現的計算 。 如果編譯器無法準確的找出相關的代碼並且生成可以利用CPU能力的目標代碼 ， 這些特殊目的的指令將變得毫無用處 。 例如 ， 程序員可能需要將他的算法用一種可以降低編譯器工作難度的方式進行描述 。 Category: 微處理器