壓縮微指令長度
1. 改直接表示爲編碼表示(壓縮互斥性微指令)
- 互斥性微命令
- 輸出信號不能同時爲 1 XXX(out)
- 運算器的 +1, ADD, SUB 信號也不能同時給出
- 7 個out型命令有7 個狀態 --> 3:8譯碼器
- 所有輸出裏面一定有一個爲高電平,所以 000 不用
- 預留的一個狀態表示什麼信號也不給
- 加法類的運算器信號 --> 2:4譯碼器
- +1,ADD, SUB
- 無信號
- 縮短了微指令長度,增加了硬件開銷(3:8譯碼器,2:4譯碼器),硬件被所有微程序共享,所以開銷可忽略
2. 去掉下址字段,採用 μPC = μPC + 1 的方式生成微指令地址
- 每一條指令都有一個下址字段,對控存的浪費是巨大的
- 增加了一個運算器,減少了下址字段,節約了控存空間
3. 改水平型微指令爲垂直型微指令(犧牲並行性)
- 水平性微指令如下
- 一條微指令中一般只有兩個信號,最多4個信號爲1
- 數據通路分類
-
寄存器傳輸 MOV reg1,reg2 MOV AR,PC(將PC送到AR)
例如: (PC)->AR, (PC)->X (Z)->PC (DR)->IR (IR)->AR, (PC)->X (DR)->R0
- MOV 源寄存器 目的寄存器
- 單總線架構中,只存在 R0、R1、R2、IR、AR、X、Z等,一共只有八個寄存器,所以只需要三位就可以描述一個寄存器,指令需要兩個操作,即需要六位
-
運算類型 ALU_OP reg INC、ADD R1
例如: (X) + 1 -> Z (X) + (R1) -> Z
- 單總線架構中運算器的輸入一定來自於X,輸出一定到Z,指令中 X和Z 的值在指令中不需要給出,只需要給出另外一個輸入端來自於哪個寄存器
- INC 無操作數
- ADD 源寄存器號(3位)
-
訪存指令 Men LOAD、STORE
例如: Read Mem Mem[AR] -> DR
- Mem Read/Write
-
順序控制 Branch Branch P1
- Branch 判斷條件
-
- 併發水平微指令變爲垂直後可能需要多個時鐘週期完成
- LOAD指令微程序容量
- 直接表示法 + 下址字段
- 28位 * 8 = 224位
- 編碼表示法 + μPC
- 19位 * 8 = 152位
- 垂直微指令
- 8位 * 14 = 112位
- 直接表示法 + 下址字段
- 容量小,速度慢,指令執行需譯碼電路
- 隨着控存價格的降低,垂直型微指令已經被淘汰
- 水平型與垂直型微指令
- 水平型微指令
- 並行操作能力強,效率高,靈活性強
- 微指令字較長,微程序短,控存容量大,性能佳
- 垂直型微指令
- 子長短,微程序長,控存容量小,性能差
- 垂直型與指令相似,易於掌握
- 基本被淘汰