計算機體系結構中FX流水線的邏輯佈局是什麼?
FX流水線的邏輯佈局首先包括指定FX流水線有多少個階段以及這些階段要執行哪些任務。設計空間的另一個關鍵方面是如何實現FX流水線。FX流水線可以從更廣泛和更狹義的角度來解釋。
從更廣泛的意義上講,它涵蓋了指令獲取、解碼、執行以及如果需要則回寫等完整任務。在這種情況下,它通常也用於執行L/S和分支指令,並被稱為主流水線。
從更狹義的角度講,FX流水線被理解為僅處理FX指令處理的執行和回寫階段。然後,指令獲取、解碼以及在超標量執行的情況下,指令發出等先前任務由處理器的另一個部分執行。
整數和布林指令在程式中佔相當大的比例。它們加起來佔所有執行指令的30%到40%。因此,FX流水線的佈局對於獲得高效能處理器至關重要。
在下文中,我們將分別描述RISC和CISC處理器的FX流水線,因為每種型別都有略微不同的範圍。在處理操作指令時,RISC流水線必須處理暫存器運算元。相比之下,CISC流水線必須能夠處理暫存器和記憶體運算元以及目標。
RISC流水線
RISC處理器中傳統的FX流水線是根據暫存器-暫存器指令的執行建模的。請考慮這裡暫存器-暫存器指令的執行包括以下子任務:
- 獲取指令
- 解碼指令
- 獲取引用的暫存器
- 執行指定的運算
- 將結果寫回暫存器檔案
Sparc、SuperSparc、MC88110和PowerPC是使用這種FX流水線安排的RISC處理器的示例。在某些處理器中,迴圈持續時間存在一些細微差別,例如在MC 8810或SuperSparc處理器中,如表所示。
傳統FX流水線中流水線迴圈持續時間的變化
| 獲取 | 解碼 | 執行 | 回寫 | |
|---|---|---|---|---|
| 大多數處理器 | 1 | 1 | 1 | 1 |
| MC 88110 | 1 | ½ | 1 | ½ |
| SuperSparc | 1 | 3/2 | 1 | ½ |
CISC流水線
CISC流水線與RISC流水線的主要區別在於,CISC流水線必須能夠處理暫存器和記憶體運算元以及目標。
為了訪問記憶體運算元(假設在快取中),執行兩個額外的子任務:計算運算元地址和獲取運算元(可能來自快取)。
因此,傳統CISC流水線,其佈局是為了有效地執行暫存器-記憶體指令,比傳統RISC流水線多兩個階段。流水線包含以下六個階段:指令獲取(F)、解碼(D)、地址計算(A)、快取訪問(C)、執行(E)以及將結果寫回暫存器檔案(WB)。它被一些CISC處理器使用,例如MC 68040和MC 68060。
流水線也可以輕鬆地用於執行暫存器-暫存器和載入/儲存指令。為了執行暫存器-暫存器指令,引用的暫存器運算元在D迴圈中獲取,而A和C迴圈保持未使用。隨後,在E迴圈中執行所需的操作,並在結束的WB迴圈期間將結果寫回暫存器檔案。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP