OOO Execution May Not Be Cost-Effective on Processors Featuring SMT
阿新 • • 發佈:2018-12-12
Out-Of-Order Execution May Not Be Cost-Effective on Processors Featuring Simultaneous Multithreading
-
摘要:
- SMT是一種有前景的方法,能夠用來在超標量流水線中實現高吞吐量
- 在一個四執行緒的SMT處理器中,亂序執行相對於按序執行而言,能夠帶來的效能優勢很小
- 在某些相對於關注單應用效能,更關注吞吐量的應用領域,SMT+INO可能會比亂序超標量或者亂序SMT更具有成本效益
-
Motivation:
- 為了提高單執行緒的效能,出現了更加複雜,激進的技術。硬體的設計複雜性逐漸增加,同時硬體的設計和測試周期都有可能會增加
- 更多的多執行緒應用出現
- 之前沒有工作比較過SMT在按序和亂序執行中所帶來的效能
-
論文內容:
-
按序執行模型:每個執行緒都有一個32個表項的指令佇列。在每個週期,佇列會選擇指令發射到功能部件。執行緒之間的選擇通過優先順序來決定。當選擇一個執行緒中,指令會一直從當前佇列中按序發射出去,直到出現了資源衝突,資料相關或者是分支。然後根據優先順序選擇下一個執行緒。每個執行緒都可以訪問32個整數和32個浮點暫存器。
-
亂序執行模型:在譯碼之後,指令會在保留站中等待直到運算元可用,並且功能部件空閒。每個週期,任何指令都有可能被髮射。亂序執行需要重新命名,因此每個執行緒會有64個整數和浮點數暫存器。每個RS有16個表項
-
論文實驗:比較了在按序執行和亂序執行情況下,SMT的執行緒個數,儲存層次和分支預測對效能的影響
-
亂序執行在單執行緒上相對於按序執行的效能優勢會由於SMT提供的更多的執行緒數而減弱。因為在按序流水線中,由於更多的執行緒並行執行,將會出現更多非相關指令可使用。而在亂序執行中,由於執行某些可能會被取消的指令所佔用的硬體資源,會影響從其他執行緒中執行有效指令所需要使用的資源
-
當執行緒數變多時,分支預測錯誤所帶來的影響將會減弱
- 因為有更多來自不同執行緒的有效指令可用,推測執行將會變少
- 當分支預測錯誤時,可以使用其它執行緒的指令繼續填充流水線
-
當執行緒數增多時,儲存層次對效能的影響更加重要。因為一個cache miss,會使得所有執行緒都受到影響,因為它佔用了頻寬,同時延遲了所有其它執行緒的之後的cache miss
-
-
論文結論:
- 當時鍾頻率相同,流水線級數相同時,單執行緒情況下,按序相對於亂序的效能差距46%,在四執行緒SMT的情況下,效能差距15%。(一般情況下,按序流水線的頻率會更高事實上)
- 多執行緒的情況下,分支預測錯誤的影響會減小(收到影響的指令會變少),但是會增加對儲存系統的壓力,會產生更多的cache miss和memory traffic