微程序控制器
微程序控制器
微程序控制器同組合邏輯控制器相比較,具有規整性、靈活性、可維護性等一系列優點,因而在計算機設計中逐漸取代了早期採用的組合邏輯控制器,並已被廣泛地應用。在計算機系統中,微程序設計技術是利用軟體方法來設計硬體的一門技術。
微程序控制的基本思想,就是仿照通常的解題程序的方法,把操作控制信號編成所謂的“微指令”,存放到一個只讀存儲器里.當機器運行時,一條又一條地讀出這些微指令,從而產生全機所需要的各種操作控制信號,使相應部件執行所規定的操作。
採用微程序控制方式的控制器稱為微程序控制器。所謂微程序控制方式是指微命令不是由組合邏輯電路產生的,而是由微指令解碼產生。一條機器指令往往分成幾步執行,將每一步操作所需的若干位命令以代碼形式編寫在一條微指令中,若干條微指令組成一端微程序,對應一條及其指令。在設計CPU時,根據指令系統的需要,事先編製好各段微程序,且將它們存入一個專用存儲器(稱為控制存儲器)中。微程序控制器由指令寄存器IR、程序計數器PC、程序狀態字寄存器PSW、時序系統、控制存儲器CM、微指令寄存器以及微地址形成電路。微地址寄存器等部件組成。執行指令時,從控制存儲器中找到相應的微程序段,逐次取出微指令,送入微指令寄存器,解碼后產生所需微命令,控制各步操作完成。
它的主要任務如下:
(1)接收從DSP發送過來的指令字,並將其進行解碼轉換成相應的命令信號,從而執行相應的操作;(2)接收操作面板上的按鍵信號,並響應相應的操作;(3)給DSP發送應答信號以及狀態信息;(4)將處理的結果輸出到面板上以驅動相應的繼電器。
控制器的形式主要有組合邏輯控制器和微程序控制器兩種,與組合邏輯控制器相比較,微程序控制器具有規整性、靈活性、可維護性等一系列優點,在計算機的設計中使用比較普遍,本控制器的設計採用的也是微程序控制器。微程序控制的基本思想,就是仿照通常的解題程序的方法,把操作控制信號編成所謂的“微指令”,存放到一個只讀存儲器里。當機器運行時,一條又一條地讀出這些微指令,從而產生全機所需要的各種操作控制信號,使相應部件執行所規定的操作。
微程序控制器主要由控制存儲器(CM),微地址產生邏輯,微地址寄存器(uAR),微指令寄存器(ulR)等組成。
(1)根據計算機給出的第一條微指令的地址,從控制存儲器中取出第一條微指令。
(2)微指令由操作控制部分和順序控制部分組成。操作控制部分產生微操作控制信號,控制執行部分完成規定的操作。順序控制部分中的直接順序控制部分放入微地址寄存器,順序控制部分的P欄位和執行部件反饋的狀態條件信息決定修改微地址寄存器中的值。
(3)按地址寄存器中的值從控制存儲器中取出下一條微指令,繼續第二步,如此循環,直到全部指令執行完畢。
微程序控制器的設計步驟如下:
(1)根據CPU的結構圖描述出每條指令的微操作流程圖並綜合成總的流程圖;
(2)用混合控制法對微命令進行編碼;
(3)選擇合適的控制和時序;
(4)選用微程序的順序控制方式為微指令安排微地址;
(5)畫出微程序控制器組成框圖。
組合邏輯控制器和微程序控制器,除了操作控制信號的形成方法和原理有差別外,其餘的組成部分上沒有本質的區別。最顯著的差別可歸納為如下兩點:
實現方式
微程序控制器的控制功能是在存放微程序的控制存儲器和存放當前正在執行的微指令的寄存器直接控制下實現的,而組合邏輯控制器由邏輯電路實現。前者電路比較規整,各條指令控制信號的差別反映在控制存儲器的內容上,因此無論是增加或修改(包括糾正設計中的錯誤或升級)指令,只要增加或者修改內容即可。組合邏輯控制器先用邏輯表達式列出,精簡化後用邏輯門電路實現,因而顯得零亂複雜,當需要增加或修改指令時很麻煩甚至不可能,因此微程序控制器得到了廣泛應用,尤其是指令系統複雜的計算機,一般都採用微程序控制器。
性能
在同樣的工藝條件下,微程序控制的速度比組合邏輯電路速度低,因為執行每條微指令都要從控制存儲器(CM)中讀取一次,影響了速度,而組合邏輯電路的速度主要取決於電路延遲,因而在高速或超高速計算機中,對影響速度的關鍵部分如CPU,往往採用組合邏輯電路。近年來,一些新的計算機系統如RISC(精簡指令計算機),選用了組合邏輯控制器。
微命令和微操作
微命令控制部件通過控制線向執行部件發出的各種控制命令。
微操作執行部件接受微命令后所進行的操作。
控制部件與執行部件通過控制線和反饋信息進行聯繫。
微指令和微程序
微指令在機器的一個CPU周期中,一組實現一定操作功能的微命令的組合。
微程序實現一條機器指令功能的許多條微指令組成的序列。
控制部件與執行部件通過控制線和反饋信息進行聯繫。
微程序控制器原理框圖
它主要由控制存儲器、微指令寄存器和地址轉移邏輯三大部分組成。
1.控制存儲器
控制存儲器用來存放實現全部指令系統的微程序,它是一種只讀存儲器。一旦微程序固化,機器運行時則只讀不寫。其工作過程是:每讀出一條微指令,則執行這條微指令;接著又讀出下一條微指令,又執行這一條微指令……。讀出一條微指令並執行微指令的時間總和稱為一個微指令周期。通常,在串列方式的微程序控制器中,微指令周期就是只讀存儲器的工作周期。控制存儲器的字長就是微指令字的長度,其存儲容量視機器指令系統而定,即取決於微程序的數量。對控制存儲器的要求是速度快,讀出周期要短。
2.微指令寄存器
微指令寄存器用來存放由控制存儲器讀出的一條微指令信息。其中微地址寄存器決定將要訪問的下一條微指令的地址,而微命令寄存器則保存一條微指令的操作控制欄位和判別測試欄位的信息。
3.地址轉移邏輯
在一般情況下,微指令由控制存儲器讀出后直接給出下一條微指令的地址,通常我們簡稱微地址,這個微地址信息就存放在微地址寄存器中。如果微程序不出現分支,那麼下一條微指令的地址就直接由微地址寄存器給出。當微程序出現分支時,意味著微程序出現條件轉移。在這種情況下,通過判別測試欄位P和執行部件的“狀態條件”反饋信息,去修改微地址寄存器的內容,並按改好的內容去讀下一條微指令。地址轉移邏輯就承擔自動完成修改微地址的任務。
CPU周期與微指令周期的關係
在串列方式的微程序控制器中:微指令周期=讀出微指令的時間+執行該條微指令的時間
一個CPU周期為0.8μs,它包含四個等間隔的節拍脈衝T1—T4,每個脈衝寬度為200ns。用T4作為讀取微指令的時間,用T1+T2+T3時間作為執行微指令的時間。例如,在前600ns時間內運算器進行運算,在600ns時間的末尾運算器已經運算完畢,可用T4上升沿將運算結果打入某個寄存器。與此同時可用T4間隔讀取下條微指令,經200ns時間延遲,下條微指令又從只讀存儲器讀出,並用T1上升沿打入到微指令寄存器。如忽略觸發器的翻轉延遲,那麼下條微指令的微命令信號就從T1上升沿起就開始有效,直到下一條微指令讀出后打入微指令寄存器為止。因此一條微指令的保持時間恰好是0.8μs,也就是一個CPU周期的時間。