計算機系統結構考試:Chapter 6:Limits to ILP and SMT
ILP的限制在哪裡?
1、大量相互矛盾的研究
基準不同(比如Fortran語言和C語言的不同)、硬體的複雜度、編譯器的複雜度
2、隨著硬體預算的增加,ILP的可用性正逐漸減小
3、我們是否需要發明新的硬體/軟體機制來保持處理器的效能曲線?
理論上:
編譯器技術的進步+顯著的新的和不同的硬體技術可能能夠克服研究中假定的限制。
實際上:
然而,與現實硬體結合的這種進展不太可能在不久的將來克服這些限制。
完美機器的限制:
1、暫存器重新命名:有無限的虛擬暫存器,可以避免全部的RAW和WAW資料相關。
2、分支預測:完全準確,無預測失誤的情況
3、跳轉預測:完全準確,無預測失誤的情況
2&3實現消除了控制相關。
4、記憶地址分析
什麼是指令視窗
The set of instructions that is examined for simultaneous execution is called the window
在視窗中,我們可以找到同時發射的指令的集合。
視窗大小將由確定n個發出暫存器暫存器指令之間是否具有暫存器依賴關係的成本來確定。
限制ILP發展的因素:
每個時鐘發射的指令數 ;指令視窗大小; 暫存器重新命名; 分支預測; Cache快取記憶體; 記憶體別名
什麼是執行緒級並行或多執行緒
執行緒級並行是多處理器支援多個執行緒同時並行執行。
執行緒級並行出現的原因:
由於程式程式碼中存在的資料及控制依賴,單執行緒中所能發掘的指令並行潛力是有限的。為了發掘有限的指令級並行潛力而一味強化亂序執行和分支預測,以至於處理器複雜度和功耗急劇上升,有時候得不償失。
ILP本身也不再適應計算應用型別的變化:ILP更適用於傳統的計算密集型應用,其中ILP程度較高。
多執行緒(Multithreading):多個執行緒通過重疊執行來共享同一個處理器的功能單元。
什麼是資料級並行
處理器能夠同時處理多條資料。
如何切換多執行緒
細粒度切換:細粒度切換在每條指令間都能進行執行緒的切換,從而導致多個執行緒的交替執行。
優點:
能夠隱藏由任何或長或短的阻塞帶來的吞吐率的損失
缺點:
減慢了每個獨立執行緒的執行
粗粒度切換:粗粒度切換隻在發生代價較高、時間較長的阻塞出現時執行。
優點:
執行緒切換速度快,執行緒只有遇到stall的時候才會停止下來,不會影響執行緒的執行速度
缺點:
不能有效地減少吞吐率的損失
什麼是同時多執行緒
同時多執行緒技術是一種在多流出、動態排程處理器上同時開發執行緒級並行和指令級並行的改進的多執行緒技術。
multithreading 使用動態排程技術的處理器已經具有了開發執行緒級並行所需的硬體設定。
動態排程超標量處理器有大量的虛擬暫存器組,可以用來儲存每個獨立執行緒的暫存器狀態
由於暫存器重新命名機制提供了唯一的暫存器識別符號,多個執行緒的指令可以在資料路徑上混合執行,而不會導致各執行緒間源運算元和目的運算元的混亂。
亂序完成使得每個執行緒能夠亂序執行,可以獲得對硬體更好地利用。
為每個執行緒設定重命名錶、保留各自的PC值、提供多個執行緒的指令結果提交的能力來實現。