什麼是水平微程式碼?
在水平微程式碼中,每個微操作在每個微指令中都用一位表示。水平微程式碼通常包含在一個相當寬的控制儲存器中,每個字為 56 位或更多並不罕見。在時序器時鐘的每次脈衝下,讀取一個微程式碼字,對其進行解碼,並用於控制構成 CPU 的功能部件。微操作及其助記符如表所示。
非常簡單的 CPU 的微操作及其助記符
| 助記符 | 微操作 |
|---|---|
| ARPC | AR←PC |
| ARDR | AR←DR[5….0] |
| PCIN | PC←PC+1 |
| PCDR | PC←DR[5…0] |
| DRM | DR←M |
| IRDR | IR←DR[7…6] |
| PLUS | AC←AC+DR |
| AND | AC←AC ^ DR |
| ACIN | AC←AC+1 |
由於有九個微操作,每個微程式碼字需要 9 位來表示它們,每個微操作 1 位。值為 1 表示微操作將發生,值為 0 表示它不會發生。為了完成微程式碼,可以簡單地填寫微操作的值。生成的微程式碼如表所示。
非常簡單的微程式控制器初步水平微程式碼
| 狀態 | 地址 | SEL | ARPC | ARDR | PCIN | PCDR | DRM | IRDR | PLUS | AND | ACIN | ADDR |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FETCH1 | 0000 (0) | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0001 |
| FETCH2 | 0001(1) | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0010 |
| FETCH3 | 0010(2) | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | XXXX |
| ADD1 | 1000(8) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1001 |
| ADD2 | 1001(9) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0000 |
| AND1 | 1010(10) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1011 |
| AND2 | 1011(11) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0000 |
| JMP1 | 1100(12) | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0000 |
| INC1 | 1110(14) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0000 |
在生成控制訊號之前,它會檢視微程式碼以瞭解如何對其進行最佳化。ARDR 和 IRDR 具有相同的值。它不需要兩個輸出來表示相同的值,它可以使用一個輸出推匯出這兩個微操作,AIDR,它組合了兩個微操作 **AR←DR[5….0]** 和 **IR←DR[7…6]**。修改後的微程式碼如表所示。
非常簡單的微程式控制器最佳化後的水平微程式碼
| 狀態 | 地址 | SEL | ARPC | ARDR | PCIN | PCDR | DRM | IRDR | PLUS | AND | ACIN | ADDR |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FETCH1 | 0000 (0) | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0001 |
| FETCH2 | 0001(1) | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0010 |
| FETCH3 | 0010(2) | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | XXXX |
| ADD1 | 1000(8) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1001 |
| ADD2 | 1001(9) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0000 |
| AND1 | 1010(10) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1011 |
| AND2 | 1011(11) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0000 |
| JMP1 | 1100(12) | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0000 |
| INC1 | 1110(14) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0000 |
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP