[拼音]:weichengxu sheji

[英文]:microprogramming

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

在計算機等數字系統中,控制器的典型功能是按時間節拍發出一定數量的控制訊號,使系統完成若干基本操作,經過若干節拍後即完成一種相對完整的功能,如一條機器指令的功能。在一般的控制器中這些控制都是由硬接線邏輯來實現的,在微程式控制器中這些基本操作是由存在於控制儲存器中的微程式段控制完成的,每個基本操作稱為微操作。微程式段由若干條微指令組成。

圖中,從儲存器中取一條機器指令送入指令暫存器,暫存器的輸出接微程式控制器,由後者控制微程式的執行。通常,機器指令的操作碼通過微程式控制器給出執行這條機器指令微程式段的首址,從控制儲存器中取出此微程式段的第一條微指令存入微指令暫存器。一條微指令包含若干個微碼域。各個微碼域通過一定的譯碼控制各相應功能執行部件,在微指令週期內完成相應的各個微操作。微指令週期也稱為微週期。微指令中一部分資訊(微碼域)也可反饋到微程式控制器,協同微指令執行後產生的狀態資訊和機器指令中除操作碼以外的其他資訊,通過微程式控制器去選取下一條微指令,從而控制微程式的流程相繼執行這一段微程式而完成一條相應機器指令所要求的功能。各種機器指令的功能都是通過執行相應的微程式段來完成的,也可設計編制一微程式段,用以完成一條巨集指令或巨集命令。把設計編制的各微程式段適當組合起來可形成一個微程式整體,控制器的功能就反映在這一整體中,所以微程式控制的物理結構很規整,而其功能設計方法又很靈活。

微週期的長短以及在一個微週期內能完成的微操作個數,是決定計算機系統執行速度的主要因素。微週期越短,一個微週期內完成的微操作越多,系統的執行速度越高。微週期短,要求包括控制儲存器在內的控制部件和被它控制的各個功能執行部件有足夠的快速響應能力。在一個微週期內能完成的微操作越多,就要求這一系統有更多的功能執行部件(硬體資源),而微指令中也必須有對應的微碼域,即增加微指令的字長或寬度,而且這些微操作所需的硬體資源資料和控制條件不能相關,以便在同一微週期內並行執行。如一個微操作所需的資料或控制條件依賴於另一個微操作的執行結果,則兩個微操作就不能並行執行。為了獲得高效率,在編制微程式時應使盡可能多的微操作並行執行,這通常稱為微程式的優化。微程式設計的主要內容包括系統分析設計、微程式編制和微程式模擬。

系統分析和設計

設計前根據所要求的系統性能指標對計算機系統進行分析,確定需要配置的各種功能執行部件,即硬體資源。然後對微指令寬度及其所包含的各個微碼域,微指令種類和微程式控制器等進行設計。

在規模大、效能高的系統中,要求微指令有較大的寬度,包含較多的微碼域,使較多的微操作能並行執行。這種微指令通常稱為水平型微指令。控制儲存器是快速部件,成本較高,即使是水平型微指令,在不影響並行度的情況下也應儘可能壓縮微指令的寬度。控制同一型別且彼此相斥的操作時,可以先對微碼域進行譯碼再進行控制以縮短微指令寬度。例如,可將控制算術邏輯部件的微碼域分為5個分微碼域,其中1個分域用以選擇一種算術邏輯運算,3個分域分別控制3個輸入端資料來源的選擇,另外一個控制運算結果的去處。若部件共有16種運算(包括空操作),它們是互斥的,即任何時候只能選擇其中一種。使用4位域經過譯碼可產生 16個選擇訊號,這和使用不經譯碼的16位域的作用是一樣的。輸入端資料來源的選擇控制和輸出去處的控制的情況也與此類似。

對於規模較小的系統,硬體資源較少,並行度要求較低,可採用寬度小的微指令格式,通常稱為垂直型微指令。水平型微指令並行度高,但造價也高,編寫較困難。垂直型微指令並行度低,造價也低,編寫比較容易。為了降低成本又有較好的並行度,可採用兩級微程式控制的系統,第一級屬垂直型,第二級屬水平型,也稱為毫微程式。由第一級微指令選取第二級微指令,再產生各種控制訊號。這種兩級微程式控制系統,結構上覆雜一些,快速性也低於一級水平型微程式系統,但如果設計得每條毫微指令基本都可被若干條微指令來選取,大寬度的毫微指令條數可以減少好幾成,能明顯地降低成本,提高效能價格比。

微程式編制技術

主要包括微程式驗證、優化和編寫。系統是在微程式控制下執行的,微程式的正確性至關重要,編制的微程式必須通過模擬手段驗證。微程式的效率直接影響系統的效率,所以必須優化。在實踐中經常把優化與驗證結合起來進行,目的是編制出正確而高效的微程式。編寫微程式,特別是水平型微程式比較費時。最常用的編寫工具是微彙編。

微程式模擬

用微程式設計的方法使某一計算機系統執行被模擬計算機系統的程式。模擬的作用與模擬相仿,但其效率比模擬高得多。既可對已有的計算機系統模擬,也可對正在設計中的計算機系統進行模擬。計算機的更新換代較快,為使原先用於老計算機系統的應用軟體仍能在新系統上執行,可以在新系統上配置模擬器,用微程式模擬執行原先在老系統上開發的程式。微程式模擬是加快研製新的計算機軟、硬系統的一種重要工具。

超大規模積體電路的進展能提供快速大容量而廉價的控制儲存器,為進一步發展微程式技術創造條件。微程式是一種儲存邏輯,既規整又便於檢測,特別適於超大規模整合技術。

參考書目

N.Sandak and E.Mallach, Microprogramming,Artech House, Dedham, 1977.