微程式設計

微程式設計

微程式設計是用規整的存儲邏輯代替不規則的硬接線邏輯來實現計算機控制器功能的技術。每一條指令啟動一串微指令,這串微指令稱為微程式。微程式存放在控制存儲器中,修改控制存儲器內容可以改變計算機的指令。

正文

在計算機等數字系統中,控制器的典型功能是按時間節拍發出一定數量的控制信號,使系統完成若干基本操作,經過若干節拍後即完成一種相對完整的功能,如一條機器指令的功能。在一般的控制器中這些控制都是由硬接線邏輯來實現的,在微程式控制器中這些基本操作是由存在於控制存儲器中的微程式段控制完成的,每個基本操作稱為微操作。微程式段由若干條微指令組成。
圖中,從存儲器中取一條機器指令送入指令暫存器,暫存器的輸出接微程式控制器,由後者控制微程式的執行。通常,機器指令的操作碼通過微程式控制器給出執行這條機器指令微程式段的首址,從控制存儲器中取出此微程式段的第一條微指令存入微指令暫存器。一條微指令包含若干個微碼域。各個微碼域通過一定的解碼控制各相應功能執行部件,在微指令周期內完成相應的各個微操作。微指令周期也稱為微周期。微指令中一部分信息(微碼域)也可反饋到微程式控制器,協同微指令執行後產生的狀態信息和機器指令中除操作碼以外的其他信息,通過微程式控制器去選取下一條微指令,從而控制微程式的流程相繼執行這一段微程式而完成一條相應機器指令所要求的功能。各種機器指令的功能都是通過執行相應的微程式段來完成的,也可設計編制一微程式段,用以完成一條宏指令或宏命令。把設計編制的各微程式段適當組合起來可形成一個微程式整體,控制器的功能就反映在這一整體中,所以微程式控制的物理結構很規整,而其功能設計方法又很靈活。
微程式設計微程式設計
微周期的長短以及在一個微周期內能完成的微操作個數,是決定計算機系統運行速度的主要因素。微周期越短,一個微周期內完成的微操作越多,系統的運行速度越高。微周期短,要求包括控制存儲器在內的控制部件和被它控制的各個功能執行部件有足夠的快速回響能力。在一個微周期內能完成的微操作越多,就要求這一系統有更多的功能執行部件(硬體資源),而微指令中也必須有對應的微碼域,即增加微指令的字長或寬度,而且這些微操作所需的硬體資源數據和控制條件不能相關,以便在同一微周期內並行執行。如一個微操作所需的數據或控制條件依賴於另一個微操作的執行結果,則兩個微操作就不能並行執行。為了獲得高效率,在編制微程式時應使儘可能多的微操作並行執行,這通常稱為微程式的最佳化。微程式設計的主要內容包括系統分析設計、微程式編制和微程式仿真。
系統分析和設計 設計前根據所要求的系統性能指標對計算機系統進行分析,確定需要配置的各種功能執行部件,即硬體資源。然後對微指令寬度及其所包含的各個微碼域,微指令種類和微程式控制器等進行設計。
在規模大、性能高的系統中,要求微指令有較大的寬度,包含較多的微碼域,使較多的微操作能並行執行。這種微指令通常稱為水平型微指令。控制存儲器是快速部件,成本較高,即使是水平型微指令,在不影響並行度的情況下也應儘可能壓縮微指令的寬度。控制同一類型且彼此相斥的操作時,可以先對微碼域進行解碼再進行控制以縮短微指令寬度。例如,可將控制算術邏輯部件的微碼域分為5個分微碼域,其中1個分域用以選擇一種算術邏輯運算,3個分域分別控制3個輸入端數據源的選擇,另外一個控制運算結果的去處。若部件共有16種運算(包括空操作),它們是互斥的,即任何時候只能選擇其中一種。使用4位域經過解碼可產生 16個選擇信號,這和使用不經解碼的16位域的作用是一樣的。輸入端數據源的選擇控制和輸出去處的控制的情況也與此類似。
對於規模較小的系統,硬體資源較少,並行度要求較低,可採用寬度小的微指令格式,通常稱為垂直型微指令。水平型微指令並行度高,但造價也高,編寫較困難。垂直型微指令並行度低,造價也低,編寫比較容易。為了降低成本又有較好的並行度,可採用兩級微程式控制的系統,第一級屬垂直型,第二級屬水平型,也稱為毫微程式。由第一級微指令選取第二級微指令,再產生各種控制信號。這種兩級微程式控制系統,結構上複雜一些,快速性也低於一級水平型微程式系統,但如果設計得每條毫微指令基本都可被若干條微指令來選取,大寬度的毫微指令條數可以減少好幾成,能明顯地降低成本,提高性能價格比。
微程式編制技術 主要包括微程式驗證、最佳化和編寫。系統是在微程式控制下運行的,微程式的正確性至關重要,編制的微程式必須通過模擬手段驗證。微程式的效率直接影響系統的效率,所以必須最佳化。在實踐中經常把最佳化與驗證結合起來進行,目的是編制出正確而高效的微程式。編寫微程式,特別是水平型微程式比較費時。最常用的編寫工具是微彙編。
微程式仿真 用微程式設計的方法使某一計算機系統執行被仿真計算機系統的程式。仿真的作用與模擬相仿,但其效率比模擬高得多。既可對已有的計算機系統仿真,也可對正在設計中的計算機系統進行仿真。計算機的更新換代較快,為使原先用於老計算機系統的套用軟體仍能在新系統上運行,可以在新系統上配置仿真器,用微程式仿真執行原先在老系統上開發的程式。微程式仿真是加快研製新的計算機軟、硬系統的一種重要工具。
超大規模積體電路的進展能提供快速大容量而廉價的控制存儲器,為進一步發展微程式技術創造條件。微程式是一種存儲邏輯,既規整又便於檢測,特別適於超大規模集成技術。
參考書目
 N.Sandak and E.Mallach, Microprogramming,Artech House, Dedham, 1977.

配圖

相關連線

相關搜尋

熱門詞條

聯絡我們