計算機體系結構中的計算/獲取方案是什麼?
這種方案是訪問分支目標的常用方法。首先,分支目標地址 (BTA) 由流水線或專用加法器計算。因此,獲取匹配的分支目標指令 (BTI)。在當前處理器中,這定義了對 I 快取的訪問,而在沒有 I 快取的初始流水線處理器中,則訪問記憶體。
如圖所示,位深入到計算/獲取方案的細節中。指令獲取地址 (IFA) 儲存在指令獲取地址暫存器 (IFAR) 中,在順序環境中通常稱為程式計數器 (PC)。它可以啟動特定程式的執行,IFA 設定為其初始值,稱為 IIFA(初始指令獲取地址)。
在沒有分支的情況下,每次訪問後都會遞增 IFA 以獲取下一個順序地址。遇到分支時,下一個順序地址會被計算出的分支目標地址 (BTA) 覆蓋,並獲取相應的指令快取 (I 快取) 條目。

檢測到分支時,會計算分支目標地址 (BTA)。在這種情況下,下一個順序地址會被 BTA 覆蓋。因此,BTA 成為下一個指令獲取地址 (IFA)。然後在下一個週期,從指令快取 (I 快取) 讀取相應的分支目標指令 (BTI)。
這種方案應用於早期的標量處理器和一些最近的標量和超標量處理器,包括 Z80000 (1984)、i486 (1989)、MC 68040 (1990)、Sparc CY7C601 (1998)、SuperSparc (1992p)、Power1 (1990)、Power2 (1993)、PowerPC 601 (1993)、603 (1993)、α 21064A (1994)、α 21164 (1995)、R4000 (1992)、R10000 (1996)。
它可以假設一個快取,其快取行長度為 16 位元組,並且能夠在每個週期內提供四個 4 位元組指令。它可以假設一個快速快取,在週期 i 中給定的地址的內容將在下一個週期(即週期 i + 1)提供。此外,它可以假設分支目標指令 (BTI) 對齊,以便第一個目標指令始終位於第一個位置,即圖中所示的 I 位置。
計算/獲取方案很簡單,不需要任何額外的硬體。這是所有早期和一些最近的標量處理器(如 i486 和 R4000)中使用的標準分支目標訪問方案。
一些超標量處理器也採用這種簡單的方案,例如 SuperSparc、Power1、Power2 和第一個 PowerPC 實現(例如 PowerPC 601 和 PowerPC 603)以及 α 實現 α21064、α 21064A 和 α21164。
這種方法的缺點是 BTA 計算和 BTI 訪問的順序方式。這可能會導致相當大的已獲取路徑訪問懲罰,除非在足夠早地檢測到分支並執行 BTA 計算時。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP