動態分支預測有哪些型別?
如上圖所示,表達分支歷史有兩種不同的方法。在**顯式動態技術**中,分支歷史以歷史位的形式明確表示。這種技術的實際實現可以使用一位、兩位或三位來表示歷史。第二種方法是**隱式動態技術**,其中分支歷史透過預測分支目標訪問路徑的條目的存在來隱式表示。
**1位動態預測** - 這是最簡單的動態技術。在1位預測中,每個分支的單個位可以定義分支的最後一次出現是跳轉還是未跳轉。因此,此技術為多個分支維護簡單的二態歷史(“跳轉”或“未跳轉”)。
評估分支後,其關聯的歷史將作為一位飽和計數器進行更新。在這種情況下,預測與關聯分支的最後結果相同。只有少數處理器使用1位動態預測,例如α21064作為可用選項,以及R8000作為其中一種使用的預測技術。
**2位動態預測** - 當有多個位可用於記錄分支歷史時,可以考慮更長的分支歷史。這比1位預測能產生更好的預測結果。2位預測就像一個4態有限狀態機(FSM)。它以宣告的狀態及其狀態轉換圖來表徵。
**3位預測** - 在3位預測中,將儲存分支指令最後三次出現的的結果。例如,如果最後三次分支結果中有兩次是跳轉,則預測結果將為“跳轉”。隨後,在分支的結果已知後,將更新相應的條目。這是基於FIFO(先進先出)的方式進行的,如果分支未跳轉則寫入“0”,如果跳轉則寫入“1”。
**隱式動態技術** - 此方案將用於訪問分支目標路徑。這些被稱為BTAC(分支目標訪問快取)和BTIC(分支目標指令快取)方案。
隱式預測技術是一種特殊的1位預測。同時,隱式預測是BTAC或BTIC方案的特定變體。它的特點是對於未跳轉的分支,在BTAC或BTIC方案中不維護條目。這種型別的條目管理比在BTAC或BTIC中保留跳轉和未跳轉分支的條目更有效。
廣告