複製鏈接
請複製以下鏈接發送給好友

微命令

鎖定
微命令即控制部件通過控制線向執行部件發出各種控制命令 。在微指令的控制字段中,每一位代表一個微命令。
中文名
微命令
屬    性
控制命令
定    義
控制部件通過控制線向執行部件發出各種控制命令

微命令命令簡介

微指令的控制字段中,每一位代表一個微命令,在設計微指令時,是否發出某個微命令,只要將控制字段中相應位置成"1"或"0",這樣就可打開或關閉某個控制門,這就是直接控制法.
在6.3節中所講的就是這種方法.但在某些複雜的計算機中,微命令甚至可多達三四百個,這使微指令字長達到難以接受的地步,並要求機器有大容量控制存儲器,為了改進設計出現了以下各種編譯法.

微命令編譯方法

字段直接編譯法
在計算機中的各個控制門,在任一微週期內,不可能同時被打開,而且大部分是關閉的(相應的控制位為"0").所謂微週期,指的是一條微指令所需的執行時間.如果有若干個(一組)微命令,在每次選擇使用它們的微週期內,只有一個微命令起作用,那麼這若干個微命令是互斥的.
例如,向主存儲器發出的讀命令和寫命令是互斥的;又如在ALU部件中,送往ALU兩個輸入端的數據來源往往不是唯一的,而每個輸入端在任一微週期中只能輸入一個數據,因此控制該輸人門的微命令是互斥的.
選出互斥的微命令,並將這些微命令編成一組,成為微指令字的一個字段,用二進制編碼來表示, 就是字段直接編譯法.
例如,將7個互斥的微命令編成一組,用三位二進制碼分別表示每個微命令,那麼在微指令中,該字段就從7位減成3位,縮短了微指令長度.而在微指令寄存器的輸出端,為該字段增加一個譯碼器,該譯碼器的輸出即為原來的微命令.
字段長度與所能表示的微命令數的關係如下:
字段長度 微命令數
2位 2~3
3位 4~7
4位 8~15
一般每個字段要留出一個代碼,表示本段不發出任何微命令,因此當字段長度為3位時,最多隻能表示7個互斥的微命令,通常代碼000表示不發微命令.
字段間接編譯法
字段間接編譯法是在字段直接編譯法的基礎上,進一步縮短微指令字長的一種編譯法.
如果在字段直接編譯法中,還規定一個字段的某些微命令,要兼由另一字段中的某些微命令來解釋,稱為字段間接編譯法.
本方法進一步減少了指令長度,但很可能會削弱微指令的並行控制能力,因此通常只作為直接編譯法的一種輔助手段.
字段A(3位)的微命令還受字段B控制,當字段B發出b1微命令時,字段A發出a1,1,a1,2,…,a1,7中的一個微命令;而當字段B發出b2微命令時,字段A發出a2,1,a2,2,…,a2,7中的一個微命令,僅當A為000時例外,此時什麼控制命令都不產生.
4.常數源字段E
在微指令中,一般設有一個常數源字段E就如指令中的直接操作數一樣.E字段一般僅有幾位,用來給某些部件發送常數,故有時稱為發射字段.
該常數有時作為操作數送入ALU運算;有時作為計算器初值,用來控制微程序的循環次數等.
當前正在執行的微指令,稱為現行微指令,現行微指令所在的控制存儲器單元的地址稱現行微地址,現行微指令執行完畢後,下一條要執行的微指令稱為後繼微指令,後繼微指令所在的控存單元地址稱為後繼微地址.
所謂微程序流的控制是指當前微指令執行完畢後,怎樣控制產生後繼微指令的微地址.
與程序設計相似,在微程序設計中除了順序執行微程序外還存在轉移功能和微循環程和微子程序等,這將影響下址的形成.
下面介紹幾種常見的產生後繼微指令地址的方法.
(1)以增量方式產生後繼微地址.
順序執行微指令時,後繼微地址由現行微地址加上一個增量(通常為1)形成的;而在非順序執行時則要產生一個轉移微地址.
機器加電後執行的第一條微指令地址(微程序入口)來自專門的硬件電路,控制實現取令操作,然後由指令操作碼產生後繼微地址.接下去,若順序執行微指令,則將現行微地址主微程序計數器( PC中)+1產生後繼微地址;若遇到轉移類微指令,則由 PC與形成轉移微地址的邏輯電路組合成後繼微地址.
(2)增量與下址字段結合產生後繼微地址
微指令的下址字段分成兩部分:轉移控制字段BCF和轉移地址字段BAF,當微程序實現轉移時,將BAF送 PC,否則順序執行下一條微指令( PC+1).
執行微程序條件轉移時,決定轉移與否的硬件條件有好幾種.例如,"運算結果為零","溢出","已完成指定的循環次數"等.
我們假設有八種轉移情況,定義了八個微命令(BCF取3位),在圖中設置計數器CT用來控制循環次數.如在執行乘(或除)法指令時,經常採用循環執行"加,移位"(或減,移位)的方法,指令開始執行時,在CT中(置循環次數)每執行一次循環,計數器減1,當計數器為零時結束循環.又考慮到執行微子程序時,要保留返回微地址,因此圖中設置了一個返回寄存器RR.