什麼是亂序執行

檢查指令的相依關係,從可執行的指令開始,以與程式順序不同的順序執行來提升性能的方式。結果以重排序緩衝區依原本的順序確定。

日文名稱: アウトオブオーダー実行

「亂序執行」出現在1領域的5道練習題中(CPU與架構等)。

這個名詞所屬的領域: CPU與架構

練習亂序執行的題目

在亂序執行的 CPU 中,用來將調換順序執行之指令的結果,依程式原本的順序確定(引退,retire)的機制是下列何者?

  1. A重排緩衝區(reorder buffer)
  2. B窺探過濾器(snoop filter)
  3. CTLB
查看答案與解析

正確答案:A. 重排緩衝區(reorder buffer)

重排緩衝區是暫時保存調換順序執行之指令的結果,並依程式順序確定(引退)的機制,在近來的高效能核心中,其大小可達數百道指令。當發生分支預測失誤或例外時,可捨棄其後指令的結果並恢復到正確的狀態,因此從外部看來,就像是依照程式原本順序執行一樣(精確例外,precise exception)。

亂序執行 CPU 所使用之暫存器重新命名(register renaming)的主要目的為何?

  1. A減少暫存器的數量以縮小電路
  2. B在不改變程式所使用暫存器名稱的情況下,重新分配實體暫存器,以消除表面上的相依(WAR 與 WAW)
  3. C將暫存器的值加密
查看答案與解析

正確答案:B. 在不改變程式所使用暫存器名稱的情況下,重新分配實體暫存器,以消除表面上的相依(WAR 與 WAW)

指令集的暫存器數量有限,約 16〜32 個,因此同一個暫存器名稱會被重複使用,進而產生與真正資料流向無關的相依(反相依 WAR、輸出相依 WAW)。暫存器重新命名動態分配數百個實體暫存器,每次寫入都使用新的實體暫存器以消除這些相依,增加可平行執行的指令。真正的相依(RAW)則無法消除。

解析中的「亂序執行」

出現「亂序執行」的題目(5題)

  1. 在亂序執行的 CPU 中,用來將調換順序執行之指令的結果,依程式原本的順序確定(引退,retire)的機制是下列何者?
  2. 亂序執行 CPU 所使用之暫存器重新命名(register renaming)的主要目的為何?
  3. 在一個時脈週期內同時發出並執行多道指令的處理器方式稱為什麼?
  4. 檢查指令的相依關係,從可以執行的指令開始,以不同於程式順序的次序執行以提升效能的方式是下列何者?
  5. 表示每個時脈可執行之指令數的指標是下列何者?

相關名詞

分支預測 超純量 IPC CPI(每指令週期數) 中斷 快取一致性 快取記憶體 阿姆達爾定律 指令集架構(ISA) 脈動陣列

前往名詞解釋列表