-
微程序設計
(微程序設計)
鎖定
- 中文名
- 微程序設計
- 外文名
- microprogram
- 定 義
- 由若干條微指令組成的序列
- 執行方法
- 串行和並行兩種方式
- 系 統
- 計算機
- 存 放
- 控制存儲器中
微程序設計簡介
在計算機等數字系統中,控制器的典型功能是按時間節拍發出一定數量的控制信號,使系統完成若干基本操作,經過若干節拍後即完成一種相對完整的功能,如一條機器指令的功能。在一般的控制器中這些控制都是由硬接線邏輯來實現的,在微程序控制器中這些基本操作是由存在於控制存儲器中的微程序段控制完成的,每個基本操作稱為微操作。微程序段由若干條微指令組成。
微程序設計微程序設計方法
在實際進行微程序設計時,應考慮儘量縮短微指令字長,減少微程序長度,提高微程序的執行速度。這幾項指標是互相制約的,應當全面地進行分析和權衡。
(1)水平型微指令及水平型微程序設計
水平型微指令是指一次能定義並能並行執行多個微命令的微指令。它的並行操作能力強,效率高,靈活性強,執行一條機器指令所需微指令的數目少,執行時間短;但微指令字較長,增加了控存的橫向容量,同時微指令和機器指令的差別很大,設計者只有熟悉了數據通路,才有可能編制出理想的微程序,一般用户不易掌握。由於水平型微程序設計是面對微處理器內部邏輯控制的描述,所以把這種微程序設計方法稱為硬方法。
(2)垂直型微指令及垂直型微程序設計
垂直型微指令是指一次只能執行一個微命令的微指令。它的並行操作能力差,一般只能實現一個微操作,控制一兩個信息傳送通路,效率低,執行一條機器指令所需的微指令數目多,執行時間長;但是微指令與機器指令很相似,所以容易掌握和利用,編程比較簡單,不必過多地瞭解數據通路的細節,且微指令字較短。由於垂直型微程序設計是面向算法的描述,所以把這種微程序設計方法稱為軟方法。
(3)混合型微指令
微程序設計微指令的執行方式
執行一條微指令的過程與執行機器指令的過程很類似。第一步將微指令從控存中取出,稱為取微指令;對於垂直型微指令還應包括微操作碼的譯碼時問。第二步執行微指令所規定的各個操作。微指令的執行方式可分為串行和並行兩種方式。
(1)串行方式
在這種方式裏,取微指令和執行微指令是順序進行的,在一條微指令取出並執行之後,才能取下一條微指令。
一個微週期裏,在取微指令階段,CM工作,數據通路等待;而在執行微指令階段,CM空閒,數據通路工作。
串行方式的微週期較長,但控制簡單,形成後繼微地卅所用的硬件設備較少。
(2)並行方式
為了提高微指令的執行速度,可以將取微指令和執行微指令的操作重疊起來,從而縮短微週期。因為這兩個操作是在兩個完全不同的部件中執行的,所以這種重疊是完全可行的。 ‘
在執行本條微指令的同時,預取下一條微指令。假設取微指令的時間比執行微指令的時間短,就以較長的執行時間作為微週期。
由於執行本條微指令與預取下一條微指令是同時進行的,若遇到某些需要根據本條微指令處理結果而進行條件轉移的微指令,就不能並行地取出來。最簡單的辦法就是延遲一個微週期再取微指令。
微程序設計動態微程序設計
通常,對應於一台計算機的指令系統有一系列固定的微程序。當微程序設計好之後,一般不允許改變而且也不便於改變,這樣的設計叫做靜態微程序設計。若一台計算機能根據不同應用目標的要求改變微程序,則這台計算機就具有動態微程序設計功能。
動態微程序設計的出發點是為了使計算機能更靈活、更有效地適應於各種不同的應用目標。例如,在不改變硬件結構的前提下,如果計算機配備了兩套可供切換的微程序,一套是用來實現科學計算的指令系統,另一套是用來實現數據處理的指令系統,這樣該計算機就能根據不同的應用需要隨時改變和切換相應的微程序,以保證高效率地實現科學計算或數據處理。