計算機體系結構中分支處理的設計空間是什麼?
分支處理有兩種方法,例如分支處理的佈局及其分支處理的微體系結構實現,如圖所示。分支處理包括三大子任務:分支檢測、處理未決條件分支以及訪問分支目標路徑。

第一個方面是**分支檢測**。最初,處理器在指令解碼期間檢測分支。但是,處理器越早識別分支,就可以越早啟動分支處理,懲罰也就越少。因此,新方案試圖儘早遇到分支。
最先進的分支檢測技術避免了顯式解碼。相反,分支檢測被統一到指令提取結構中。這種方案被稱為整合指令提取和分支檢測。
指令提取結構得以延續,以便它可以識別下一個要提取的指令是否是分支。每個檢測到的分支都被猜測為已執行,並且除了下一條順序指令之外,還可以提前提取分支的目標地址甚至目標指令。
佈局的下一個方法是**處理未決條件分支**。如果在分支處理期間計算時,確定的條件尚不可訪問,則可以指示條件分支未決。在引用條件被接受之前,無法計算條件分支。
例如,如果指定的條件定義了先前指令結果的符號,則評估的先決條件是先前指令已執行。在引用條件變得已知之前,條件分支是未決的。
分支處理佈局的最後一種方法是如何**訪問分支目標路徑**。“已執行”猜測的分支懲罰很大程度上取決於如何訪問分支目標路徑。當前的處理器使用四種基本技術之一:計算/提取方案、BTAC(分支目標訪問快取)方案、BTIC(分支目標指令快取)方案以及 I 快取中的後繼索引方案。
分支處理的下一階段是**分支處理的微體系結構實現**。分支處理包含基本功能,包括指令提取、解碼和 BTA 計算,以及可能的其他專用功能以加快分支處理速度。
這些專用功能可以是早期分支檢測、分支預測或訪問目標路徑的先進方案。專用功能使用專用硬體實現,例如 BTAC、BTIC 或 BHT。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP