在計算機體系結構中,從錯誤預測恢復期間的基本任務是什麼?


需要執行兩個基本任務來實現:丟棄推測執行的結果並恢復備用路徑(即真實路徑)的執行,如圖所示。

當存在多個掛起的條件分支時,應選擇並遵循相應的備用路徑。在從錯誤預測的跳轉路徑恢復時,作為對可能恢復的準備,處理器必須在開始執行猜測的跳轉路徑之前儲存順序保留的地址。如果先前預取的順序指令不被丟棄,而是儲存以備在發生錯誤預測時將來使用,則可以最大程度地減少恢復階段。

另一種情況是順序路徑被錯誤預測並實現,如圖所示。因此,結合“不跳轉”預測,必須預先評估和儲存分支目標地址以啟用恢復。

在這種情況下,可以透過為標量處理器預取分支目標指令,或者在超標量處理器的情況下預取一些指令來減少錯誤預測的懲罰。這需要額外的緩衝區空間和額外的快取訪問頻寬。

在最簡單的方案中,在預測期間,僅採取對從錯誤預測中恢復所必需的預防措施。此方案定義為恢復的基本先期措施。錯誤預測的最低限度規定包括兩項活動 - 對於“跳轉”猜測,儲存順序地址;對於“不跳轉”猜測,預先計算並儲存分支目標地址。這需要每個推測的條件分支兩個獲取地址暫存器來儲存兩個可能延續的地址。PowerPC 601、PowerPC 603 和 PowerPC 604 使用此基本方案。

更高階的方案涉及補充操作以縮短錯誤預測的懲罰。這通常透過為“跳轉”猜測儲存已預取的順序指令以及在“不跳轉”預測的情況下預取分支目標指令來實現。此方案被指定為增強型先期措施以縮短恢復時間。必須預先評估和儲存以啟用恢復。

此增強方案的實現至少需要兩個指令緩衝區,並且緩衝區中的條目數至少與在一個週期內可以獲取的指令數一樣多。提供兩個指令緩衝區以縮短從錯誤預測中恢復的處理器的示例包括 SuperSparc、Power1、Power2 和 Pentium。Nx586 提供三個緩衝區,一個順序緩衝區和兩個目標緩衝區,以滿足允許的兩個掛起的條件分支。

**在 SuperSparc 中使用兩個指令緩衝區縮短恢復時間** - SuperSparc 有兩個獨立的指令緩衝區,稱為順序 I 緩衝區和目標 I 緩衝區。這兩個緩衝區都可以從 I 快取中在一個週期內接收四個指令,並且兩個緩衝區的容量均為四個指令。由於處理器採用“始終不跳轉”預測,因此在未解決的條件分支的情況下,執行始終從順序路徑開始。

更新於:2021年7月23日

156 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.