什麼是通用暫存器組織?
一組觸發器構成一個暫存器。暫存器是CPU中獨特的、高速的儲存區域。它們包括實現資料處理的組合電路。在處理之前,資訊始終在暫存器中定義。暫存器加快了程式的執行速度。
暫存器在 CPU 操作中實現兩個重要的功能,如下所示:
- 它可以為資料提供臨時儲存位置。這支援直接實現程式,以便在需要時快速訪問資料。
- 它可以儲存 CPU 的狀態和有關直接實現程式的資料。
示例 - 下一個程式指令的地址、來自外部裝置的訊號和錯誤訊息,以及包括不同的資料都儲存在暫存器中。
如果 CPU 包含一些暫存器,則一個公共匯流排可以連線這些暫存器。圖中顯示了七個 CPU 暫存器的通用組織結構。

CPU 匯流排系統由控制單元管理。控制單元透過選擇 ALU 的功能和系統的元件來明確資料流經算術邏輯單元 (ALU)。
考慮 R1 ← R2 + R3,以下是在 CPU 內實現的功能:
MUX A 選擇器 (SELA) - 它可以將 R2 放入匯流排 A。
MUX B 選擇器 (SELB) - 它可以將 R3 放入匯流排 B。
ALU 操作選擇器 (OPR) - 它可以選擇算術加法 (ADD)。
解碼器目標選擇器 (SELD) - 它可以將結果傳輸到 R1。
三態門的複用器由匯流排執行。14 個二進位制選擇輸入的狀態決定了控制字。14 位控制字定義了一個微操作。
暫存器選擇欄位的編碼在表中指定。
暫存器選擇欄位的編碼
| 二進位制程式碼 | SELA | SELB | SELD |
|---|---|---|---|
| 000 | 輸入 | 輸入 | 無 |
| 001 | R1 | R1 | R1 |
| 010 | R2 | R2 | R2 |
| 011 | R3 | R3 | R3 |
| 100 | R4 | R4 | R4 |
| 101 | R5 | R5 | R5 |
| 110 | R6 | R6 | R6 |
| 111 | R7 | R7 | R7 |
ALU 實現了一些微操作。表中顯示了 ALU 實現的一些操作。
ALU 操作的編碼
| OPR 選擇 | 操作 | 符號 |
|---|---|---|
| 00000 | 傳輸 A | TSFA |
| 00001 | 遞增 A | INCA |
| 00010 | 加 A + B | ADD |
| 00101 | 減 A - B | SUB |
| 00110 | 遞減 A | DECA |
| 01000 | A 和 B 相加 | AND |
| 01010 | A 和 B 或運算 | OR |
| 01100 | A 和 B 異或運算 | XOR |
| 01110 | A 的補碼 | COMA |
| 10000 | 右移 A | SHRA |
| 11000 | 左移 A | SHLA |
表中顯示了一些 ALU 微操作。
ALU 微操作
| 微操作 | SELA | SELB | SELD | OPR | 控制字 | |||
| R1 ← R2 – R3 | R2 | R3 | R1 | SUB | 010 | 011 | 001 | 00101 |
| R4 ← R4 ∨ R5 | R4 | R5 | R4 | OR | 100 | 101 | 100 | 01010 |
| R6 ← R6 + R1 | - | R6 | R1 | INCA | 110 | 000 | 110 | 00001 |
| R7 ← R1 | R1 | - | R7 | TSFA | 001 | 000 | 111 | 00000 |
| 輸出 ← R2 | R2 | – | 無 | TSFA | 010 | 000 | 000 | 00000 |
| 輸出 ← 輸入 | 輸入 | - | 無 | TSFA | 000 | 000 | 000 | 00000 |
| R4 ← shl R4 | R4 | - | R4 | SHLA | 100 | 000 | 100 | 11000 |
| R5 ← 0 | R5 | R5 | R5 | XOR | 101 | 101 | 101 | 01100 |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP