• 超長指令字

    編輯
    本詞條由“匿名用戶” 建檔。

    超長指令字

    編輯

    超長指令字 (VLIW) 是指旨在利用指令級并行性 (ILP) 的指令集架構。 傳統的中央處理器(CPU、處理器)大多允許程序指定指令僅按順序執行,而 VLIW 處理器允許程序明確指定指令并行執行。 這種設計旨在允許更高的性能,而沒有一些其他設計固有的復雜性。

    概覽

    編輯

    提高處理器性能的傳統方法包括將指令分成子步驟,以便可以同時執行部分指令(稱為流水線),分派單個指令在處理器的不同部分獨立執行(超標量架構),甚至 以不同于程序的順序執行指令(亂序執行)。 這些方法都使硬件變得復雜(更大的電路、更高的成本和能源使用),因為處理器必須在內部做出所有決定才能使這些方法起作用。 相比之下,VLIW 方法依賴于提供有關同時執行哪些指令以及如何解決沖突的所有決策的程序。 實際上,這意味著編譯器(用于創建最終程序的軟件)變得更加復雜,但硬件比許多其他并行方式要簡單。

    動機

    編輯

    一個接一個地執行每條指令的處理器(即非流水線標量架構)可能會低效地使用處理器資源,從而產生潛在的不良性能。 通過同時執行順序指令的不同子步驟(稱為流水線),或者甚至像在超標量架構中一樣完全同時執行多條指令,可以提高性能。 通過以不同于它們在程序中出現的順序執行指令,稱為亂序執行,可以實現進一步的改進。

    這三種方法都增加了硬件復雜度。 在并行執行任何操作之前,處理器必須驗證指令沒有相互依賴性。 例如,如果xxx條指令的結果用作第二條指令的輸入,則它們不能同時執行,第二條指令不能在xxx條指令之前執行。 現代亂序處理器增加了用于調度指令和確定相互依賴性的硬件資源。

    相比之下,VLIW 根據固定的時間表并行執行操作,該時間表在編譯程序時確定。 由于確定操作的執行順序(包括哪些操作可以同時執行)是由編譯器處理的,因此處理器不需要上述三種方法所需的調度硬件。 因此,與大多數超標量 CPU 相比,VLIW CPU 以更低的硬件復雜性(但更高的編譯器復雜性)提供更多的計算。 這也是對在程序執行之前、在編譯時應該完成盡可能多的計算的想法的補充。

    設計

    編輯

    在超標量設計中,執行單元的數量對指令集是不可見的。 每條指令只編碼一個操作。 對于大多數超標量設計,指令寬度為 32 位或更少。

    相比之下,一個 VLIW 指令編碼多個操作,至少一個操作用于設備的每個執行單元。 例如,如果一個 VLIW 設備有五個執行單元,則該設備的 VLIW 指令有五個操作字段,每個字段指定應該在相應的執行單元上執行什么操作。 為了適應這些操作字段,VLIW 指令通常至少有 64 位寬,在某些體系結構上甚至更寬。

    例如,下面是超級哈佛架構單片機(SHARC)的指令。 在一個周期內,它執行一次浮點乘法、一次浮點加法和兩次自動遞增加載。 所有這些都適合一條 48 位指令:

    f12 = f0 * f4, f8 = f8 + f12, f0 = dm(i0, m3), f4 = pm(i8, m9);

    從最早的計算機體系結構開始,一些 CPU 就添加了幾個算術邏輯單元 (ALU) 以并行運行。

    超長指令字

    超標量 CPU 使用硬件來決定哪些操作可以在運行時并行運行,而 VLIW CPU 使用軟件(編譯器)來決定哪些操作可以提前并行運行。 由于將指令調度的復雜性轉移到編譯器中,可以xxx降低硬件的復雜性。

    當可并行化指令的結果用作分支的輸入時,會出現類似的問題。 大多數現代 CPU 甚至在計算完成之前就猜測將采用哪個分支,以便它們可以加載該分支的指令,或者(在某些體系結構中)甚至開始推測性地計算它們。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/196093/

    (1)
    詞條目錄
    1. 超長指令字
    2. 概覽
    3. 動機
    4. 設計

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久