㈠ 微程序控制器中,機器指令與微指令的關系
微程序控制器中,機器指令與微指令的關系如下。
微程序控制器中,機器指令與微指令的關系是汪睜每一條機器指令由若干微指令組成的微程序來解釋執行粗滲。在一個CPU周期中,一組實現一定功能的微命令的組合構成一條微指令,有序的微指令序列構成一段微程序,微程序的作用是實現一條對應的機器指令。
機器指令是CPU能直接識別並執行的指令,它的表現形式是二進制編碼。機器指令通常由操作碼和操作數困凳歲兩部分組成,操作碼指出該指令所要完成的操作,即指令的功能,操作數指出參與運算的對象,以及運算結果所存放的位置等。機器指令是CPU能直接識別並執行的指令,它的表現形式是二進制編碼。機器指令通常由操作碼和操作數兩部分組成,操作碼指出該指令所要完成的操作,即指令的功能,操作數指出參與運算的對象,以及運算結果所存放的位置等。
㈡ 微程序運行的依據是什麼
微程序(microprogram)是英國劍橋大學教授M.V.Wilkes在1951年首先提出的,它是實現程序的一種手段,具體就是將一條機器指令編寫成一段微程序。每一個微程序包含若干條微指令,每一條微指令對應一條或多條微操作。在有微程序的系統中,CPU內部有一個控制存儲器,用於存放各種機器指令對應的微程序段。當CPU執行機器指令時,會在控制存儲器里尋找與該機器指令對應的微程序,取出相應的微指令來控制執行各個微操作,從而完成該程序語句的功能。微程序設計技術,指的是利用軟體技術來實現硬體設計的一門技術。
微程序控制方法由於規整性好,靈活方便,通用性強,因此在包括計算機在內的各種復雜數字系統控制器的設計中得到了廣泛應用,成為控制器的主流設計方法之一。
程序控制的基本思想,就是仿照通常的解題程序的方法,把所有的控制命令信號匯集在一起編碼成所謂的微指令,存放在一個EPROM里。系統運行時,一條又一條地讀出這些微指令,從而產生執行部件所需要的各種控制信號,以控制各邏輯部件執行所規定的操作。
一個數字系統基本上可以劃分成兩大部分——控制部件和執行部件,如圖6.26所示。控制器就是控制部件。而ALU、寄存器組、存儲器RAM等,相對控制器來講,就是執行部件。那麼兩者之間是如何進行聯系的呢?
控制部件與執行部件的聯系之一,是通過控制線。控制部件通過控制線向執行部件發出各種控制命令,我們把這種控制命令稱為微命令,而執行部件接受微命令所執行的操作叫作微操作。
控制部件與執行部件之間的另一聯系是反饋信息。例如由於運算處理中正在處理的數據因其結果特徵(正、負、進位、溢出等)而影響下一個操作的執行,因此就需要規定條件測試或狀態測試。執行部件通過反饋線向控制部件反映當前操作的結果情況,以便使控制部件根據執行部件的「狀態」標志下達新的微命令。
在系統的一個基本周期(又稱機器周期,一般由幾個時鍾周期組成)中,一組實現一定操作功能的微命令的組合,構成一條微指令。
這里要強調兩點:
第一,一條微指令的有效持續時間為一個系統基本周期,它表示從R0M中讀出微指令與執行這條微指令的時間總和。當從ROM中讀出下一條微指令後,當前的這條微指令即失效。
第二,一條微指令中包含若干個微命令,它們分頭並行地控制執行部件進行相應的微操作。
微指令除給出微命令信息外,還應給出測試判別信息。一旦出現此信息,執行這條微指令時要對系統的有關「狀態標志」進行測試,從而實現控制演算法流程圖的條件分支。微指令中還包含一個下址欄位,該欄位將指明ROM中下一條微指令的地址。
圖6.27 微指令的典型結構
圖6.27示出了微指令的典型結構,長條框內的符號X表示一個二進制位(bit)。其中微命令欄位給出執行部件的控制信號:X編碼為1,表示有微命令,X編碼為0表示無微命令。測試判別欄位和下一地址欄位一起實現順序控制:當測試判別欄位無效時(X編碼為0),下址欄位信息即是下條微指令的地址;當判別測試欄位有效時(其中一個X編碼為1),根據執行部件反饋線上的標志信息對下址欄位信息進行修改,修改好的地址即為下條微指令的地址。
微程序是由若干條微指令組成的序列。在計算機中,一條機器指令的功能可由若干條微指令組成的序列來解釋和執行,因此機器執行一條指令的過程,也就是執行一個相應的微程序的過程。就一般數字系統而言,按照我們在第6.5節中使用的概念,微程序實質上就是將控制演算法流程圖用EPROM等來實現。
微程序概念的引入使大型復雜數字系統控制器的設計發生了革命性的變化。因為微程序技術可代替硬體布線的控制技術,即由門電路和觸發器等組成的硬體網路可被存有控制代碼的EPROM存儲器所取代[1]
。
㈢ 簡述程序和微程序兩個的概念和區別。
程序是一系列機器指令的有序集合,用於解決實際問題,有子程序、分支、循環等結構,存放在主存中,可以更新修改;
微程序是一系列微指令的有序集合,微程序設計是將傳統的程序設計方法運用到控制邏輯的設計中,因此在微程序中也可以有微子程序、分支、循環等結構。
區別:
1、體系不同
程序它以某些程序設計語言編寫,運行於某種目標結構體繫上。微程序存儲在控制存儲器CM中,只能讀出,不能更改,CM中的所有微程序解釋執行整個指令系統中的所有機器指令。
2、編譯不同
一般的,程序是由高級語言編寫,然後在編譯的過程中,被編譯器/解釋器轉譯為機器語言,從而得以執行。
有時,也可用匯編語言進行編程,匯編語言在機器語言上進行了改進,以單詞代替了0和1,例如以Add代表相加,Mov代表傳遞數據等。
微程序的設計技術:
微程序設計技術,指的是利用軟體技術來實現硬體設計的一門技術。優點:微程序設計克服了組合邏輯控制單元線路龐雜的缺點,同硬布線比較具有規整性,靈活性,可維護性等一系列優點。缺點:由於增加了到控制存儲器中讀取微指令的時間導致執行速度慢。
程序的運行:
為了使計算機程序得以運行,計算機需要載入代碼,同時也要載入數據。從計算機的底層來說,這是由高級語言(例如Java,C/C++,C#等)代碼轉譯成機器語言而被CPU所理解,進行載入。
㈣ 程序與微程序的區別
微代碼和匯編都是低級語言,但是微代碼比匯編更底層。微代碼和匯編都和硬體有著緊密的聯系,但是對於同一產品系列的不同代產品來說,匯編可以完全相同,微代碼可能有著巨大的區別,因為微代碼是完全依賴於晶元內部的硬體連接。
對於同樣一句c語言,在不同的處理器上會生成不同的匯編語言。每一條匯編語言的執行時間也許是一個或者兩個時鍾周期,甚至更多。微代碼和匯編的關系,就像c
與匯編的關系,也就是說一條匯編也許會生成一條或多條微代碼。所謂微代碼,或者微指令,是處理器內部最小的操作原語,控制著諸如門電路(gates)開關等專門動作,和組成一條指令的微操作的序列。例如,對於一個加法"add"的簡單動作,微代碼可以決定接受哪兩個寄存器或匯流排為輸入,輸出到什麼匯流排或者寄存器里,標志寄存器要保存還是丟棄,根據條件進行跳轉或者直接執行下一條微代碼。一個內部只有8位寬的數據匯流排完全可以支持32位整數的匯編操作,就是因為有微代碼。
微代碼原來只是用來開發計算機的邏輯控制。古老的cpu往往都是「硬連線」,每個機器指令(加法,移動)都是由電路實現,雖然有著高性能的優點,但隨著指令復雜度的增長,也帶來了研發和debug的困難,以及電路的復雜性。微代碼的出現讓cpu的設計者可以通過寫一個微程序的方式來實現一條機器指令,而不是設計電路來實現它。在將來的開發設計過程中,微代碼可以很容易地改變,硬體電路卻不可更改,否則帶來的將是巨大的商業損失。這種靈活的cpu設計導致了今天日益復雜的指令集。