分支檢測的方案是什麼?


計算機程式中的分支是一條指令,它指示裝置開始執行多條指令,而不是簡單地按順序執行指令。在高階語言中,這些被定義為流程控制語句,並被整合到語言中。該圖顯示了微處理器中使用的分支檢測方法概述。

早期的流水線微處理器在通用指令解碼期間(主流水線方法)檢測分支。這種簡單技術的缺點是會導致較長的分支處理懲罰。它可以減少獲取懲罰,最新的處理器通常在通用指令編碼之前檢測分支(早期分支檢測)。

有三種方法,例如並行分支檢測、前瞻分支檢測和整合指令獲取和檢測。在下文中,它可以介紹這些早期分支檢測方案。一些處理器與“通用”指令解碼並行檢測和解碼分支。此方案稱為**並行分支檢測**。

一種更高階的分支檢測方法是在與通用指令解碼並行地從指令緩衝區標記分支,但此外還要向前檢視以前的緩衝區條目。此方案稱為**前瞻分支檢測**。

例如,Power1(RS/6000)從最後五個條目檢測分支,而Power2從順序指令緩衝區的最後八個條目檢測分支。相比之下,除分支之外的指令僅分別從最後四個和六個條目解碼和發出。

PowerPC 603 中選擇了一種不同的分支檢測變體。在此處理器中,分支檢測完全向前移動到指令緩衝區的輸入端。一個雙解碼器檢查從指令快取讀取到指令緩衝區的指令是否存在分支。

最先進的分支檢測方法避免了顯式解碼。相反,分支檢測整合到指令獲取結構中。此方案稱為**整合指令獲取和分支檢測**。

指令獲取結構被擴充套件,以便它可以識別下一個要獲取的指令是否是分支。每個檢測到的分支都被猜測為已獲取,並且除了或此外,除了下一個順序指令之外,分支的目標地址甚至目標指令也會提前獲取。

在此方案中,條件分支遵循“通用”解碼,如果猜測過程錯誤,則啟動一個結構來更正此錯誤。一些新型處理器採用整合指令獲取和分支檢測方案,例如IBM ES 9000系列處理器的高階型號、PowerPC 604/620、MIPS R8000和R10000以及PA 8000。

更新於: 2021年7月23日

938 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告