1. 程式人生 > >OOO Execution May Not Be Cost-Effective on Processors Featuring SMT

OOO Execution May Not Be Cost-Effective on Processors Featuring SMT

Out-Of-Order Execution May Not Be Cost-Effective on Processors Featuring Simultaneous Multithreading

  1. 摘要:

    • SMT是一種有前景的方法,能夠用來在超標量流水線中實現高吞吐量
    • 在一個四執行緒的SMT處理器中,亂序執行相對於按序執行而言,能夠帶來的效能優勢很小
    • 在某些相對於關注單應用效能,更關注吞吐量的應用領域,SMT+INO可能會比亂序超標量或者亂序SMT更具有成本效益
  2. Motivation:

    • 為了提高單執行緒的效能,出現了更加複雜,激進的技術。硬體的設計複雜性逐漸增加,同時硬體的設計和測試周期都有可能會增加
    • 更多的多執行緒應用出現
    • 之前沒有工作比較過SMT在按序和亂序執行中所帶來的效能
  3. 論文內容: 在這裡插入圖片描述

    • 按序執行模型:每個執行緒都有一個32個表項的指令佇列。在每個週期,佇列會選擇指令發射到功能部件。執行緒之間的選擇通過優先順序來決定。當選擇一個執行緒中,指令會一直從當前佇列中按序發射出去,直到出現了資源衝突,資料相關或者是分支。然後根據優先順序選擇下一個執行緒。每個執行緒都可以訪問32個整數和32個浮點暫存器。

    • 亂序執行模型:在譯碼之後,指令會在保留站中等待直到運算元可用,並且功能部件空閒。每個週期,任何指令都有可能被髮射。亂序執行需要重新命名,因此每個執行緒會有64個整數和浮點數暫存器。每個RS有16個表項

    • 論文實驗:比較了在按序執行和亂序執行情況下,SMT的執行緒個數,儲存層次和分支預測對效能的影響 在這裡插入圖片描述

    • 亂序執行在單執行緒上相對於按序執行的效能優勢會由於SMT提供的更多的執行緒數而減弱。因為在按序流水線中,由於更多的執行緒並行執行,將會出現更多非相關指令可使用。而在亂序執行中,由於執行某些可能會被取消的指令所佔用的硬體資源,會影響從其他執行緒中執行有效指令所需要使用的資源

    • 當執行緒數變多時,分支預測錯誤所帶來的影響將會減弱

      • 因為有更多來自不同執行緒的有效指令可用,推測執行將會變少
      • 當分支預測錯誤時,可以使用其它執行緒的指令繼續填充流水線
    • 當執行緒數增多時,儲存層次對效能的影響更加重要。因為一個cache miss,會使得所有執行緒都受到影響,因為它佔用了頻寬,同時延遲了所有其它執行緒的之後的cache miss

  4. 論文結論:

    • 當時鍾頻率相同,流水線級數相同時,單執行緒情況下,按序相對於亂序的效能差距46%,在四執行緒SMT的情況下,效能差距15%。(一般情況下,按序流水線的頻率會更高事實上)
    • 多執行緒的情況下,分支預測錯誤的影響會減小(收到影響的指令會變少),但是會增加對儲存系統的壓力,會產生更多的cache miss和memory traffic