計算機體系結構中微指令的格式是什麼?
一個微指令格式總共包含20位。它們被分成四個元素,如圖所示。

F1、F2、F3是微操作欄位。它們確定計算機的微操作。
CD是分支條件。它們選擇狀態位條件。
BR是分支欄位。它確定分支的型別。
AD是地址欄位。它包含長度為7位的地址欄位。
微操作被分成三個欄位,每個欄位三個位。這三個位可以定義七個不同的微操作。總共有21個操作,如表中所示。
微指令欄位的二進位制程式碼及其符號
| 名稱 | 程式碼 | 符號 | |
|---|---|---|---|
| F1 | 000 | 無操作 | NOP |
| 001 | AC ← AC + DR | ADD | |
| 010 | AC ← 0 | CLRAC | |
| 011 | AC ← AC + 1 | INCAC | |
| 100 | AC ← DR | DRTAC | |
| 101 | AR ← DR(0 − 10) | DRTAR | |
| 110 | AR ← PC | PCTAR | |
| 111 | AC ← AC + DR | WRITE | |
| F2 | 000 | 無操作 | NOP |
| 001 | AC ← AC + DR | SUB | |
| 010 | AC ← AC ∨ DR | OR | |
| 011 | AC ← AC ∧ DR | AND | |
| 100 | DR ← M[AR] | READ | |
| 101 | DR ← AC | ACTDR | |
| 110 | DR ← DR + 1 | INCDR | |
| 111 | DR(0 − 10) ← PC | PCTDR | |
| F3 | 000 | 無操作 | NOP |
| 001 | AC ← AC ⊕ DR | XOR | |
| 010 | AC ← AC′ | COM | |
| 011 | AC ← shl AC | SHL | |
| 100 | AC ← shr AC | SHR | |
| 101 | PC ← PC + 1 | INCPC | |
| 110 | PC ← AR | ARTPC | |
| 111 | DR(0 − 10) ← PC | 保留 |
如表所示,每個微指令只能有三個微操作,每個欄位一個。如果它使用少於三個,則將導致多個操作使用無操作二進位制程式碼。
條件欄位
條件欄位包含2位。它們被編碼以定義四個狀態位條件。如表中所述,第一個條件總是為1,CD = 0。可以指示此條件的符號是“U”。該表以簡單的方式顯示了多個條件欄位及其摘要。
條件欄位符號和描述
| 條件 | 符號 | 註釋 | |
|---|---|---|---|
| 00 | 始終 = 1 | U | 無條件分支 |
| 01 | DR (15) | I | 間接地址位 |
| 10 | AC (15) | S | AC的符號位 |
| 11 | AC = 0 | Z | AC中的零值 |
如表所示,當條件00與BR(分支)欄位連線時,它會導致無條件分支操作。然後從記憶體中讀取執行,間接位I可以從DR的第15位訪問。下一位的狀態由AC符號位支援。如果AC中的所有位都是1,則表示為Z(其二進位制值為1)。符號U、I、S和Z可以在編寫微程式時指示狀態位。
分支欄位
BR(分支)欄位包含2位。它可以透過與AD(地址)欄位連線來使用。與AD欄位連線的原因是選擇下一條微指令的地址。該表說明了各種分支欄位及其功能。
分支欄位符號和描述
| BR | 符號 | 註釋 |
| 00 | JMP | 如果條件 = 1,則CAR ←AD |
| 如果條件 = 0,則CAR←CAR + 1 | ||
| 01 | CALL | 如果條件 = 1,則CAR ←AD,SBR ← CAR +1 |
| 如果條件 = 0,則CAR←CAR + 1 | ||
| 10 | RET | CAR ←SBR(從子程式返回) |
| 11 | MAP | CAR(2-5) ←DR(11-14), CAR(0,1,6) ←0 |
如表所示,當BR = 00時,實現JMP操作;當BR = 01時,呼叫子程式。這兩個指令之間的唯一區別是,當儲存微指令時,返回地址儲存在子程式暫存器(SBR)中。
這兩個操作取決於CD欄位的值。當CD欄位的狀態位條件定義為1時,下一個地址被傳輸到CAR。否則,它會遞增。如果指令需要從子程式返回,則其BR欄位確定為10。
這導致返回地址從SBR傳輸到CAR。如果BR欄位為11,則指令的opcode位可以與CAR的地址對映。它們存在於從記憶體讀取指令後DR (11 - 14)中。BR欄位中的最後兩個條件不依賴於CD和AD欄位的值。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP