1. 程式人生 > >微程式控制技術

微程式控制技術

                                                 目錄

1.微程式控制計算機提出的背景

2.微程式控制計算機的基本工作原理

3.微程式控制器

3.1控制儲存器

3.2 微指令暫存器 

3.3 地址轉移邏輯

4.微程式設計技術 

4.1微指令的格式

4.2 微指令的控制欄位的編碼方法

       4.2.1 直接控制法

4.2.2 最短字長編碼法 

4.2.3 欄位編碼法

5.小結 

 



1.微程式控制計算機提出的背景

        微程式控制Microprogrammed Control的概念和原理最早是由英國劍橋大學的M. V. Wilkes教授於1951年提出來的。他指出,“一條機器指令可以分解為許多基本的微命令序列”。並且首先把這種思想用於計算機控制器的設計。但是,由於當時還製造不了存放微程式的(廉價、高速、大容量的)控制儲存器,所以,直到

1964年才在IBM360系列機上成功地採用了微程式設計技術,解決了指令系統的相容問題。        從二十世紀六十年代中期到八十年代末,大多數計算機都採用微程式控制技術。



2.微程式控制計算機的基本工作原理

        微程式控制的基本思想是把機器指令的每一操作控制步編成一條微指令。每條機器指令對應一段微程式。       

        執行機器指令時,從控制儲存器中順序取出這些微指令,就可按所要求的次序產生相應的操作控制訊號。

 

        微程式控制器Microprogrammed Control Unit的核心部件是控制儲存器

        微操作Microoperation  是微命令的操作過程,是執行部件接受微命令後所進行的最基本的操作。

        微指令Microinstruction  是同時發出的控制訊號所執行的一組微操作。 一條指令由若干條微指令解釋,按次序執行這些微指          令實現指令的功能。

        微命令Microcommand  是微操作的控制訊號。

        微程式Microprogram  由微指令組成的程式,是微指令的有序集合。

        控制儲存器Control Memory/Storage  用來存放實現整個指令系統的全部微程式,它一般用只讀儲存器(ROM構成。



3.微程式控制器

      微程式控制器主要由控制儲存器微指令暫存器地址轉移邏輯三大部分組成。

3.1控制儲存器

      控制儲存器用來存放實現全部指令系統的微程式,它是一種只讀儲存器。

      一旦微程式固化,機器執行時則只讀不寫。

      其工作過程是:每讀出一條微指令,則執行這條微指令;接著又讀出下一條微指令,又執行這一條微指令……

      讀出一條微指令並執行微指令的時間總和稱為一個微指令週期

      通常,在序列方式的微程式控制器中,微指令週期就是隻讀儲存器的工作週期。

      控制儲存器的字長就是微指令字的長度,其儲存容量視機器指令系統而定,即取決於微程式的數量。

      對控制儲存器的要求是速度快,讀出週期要短


3.2 微指令暫存器 

      微指令暫存器用來存放由控制儲存器讀出的一條微指令資訊。其中微地址暫存器決定將要訪問的下一條微指令的地址,而微命令暫存器則儲存一條微指令的操作控制欄位和判別測試欄位的資訊。


 

3.3 地址轉移邏輯

      在一般情況下,微指令由控制儲存器讀出後直接給出下一條微指令的地址,通常我們簡稱微地址,這個微地址資訊就存放在微地址暫存器中。如果微程式不出現分支,那麼下一條微指令的地址就直接由微地址暫存器給出。當微程式出現分支時,意味著微程式出現條件轉移。在這種情況下,通過判別測試欄位P和執行部件的“狀態條件”反饋資訊,去修改微地址暫存器的內容,並按改好的內容去讀下一條微指令。地址轉移邏輯就承擔自動完成修改微地址的任務。



4.微程式設計技術 

      微程式設計技術的實質是將程式設計技術儲存技術相結合,用程式設計的思想方法來組織操作控制邏輯

      將微操作控制訊號按一定規則進行資訊編碼,形成控制字(微指令),再把這些微指令按時間先後排列起來成為微程式,存放在一個控制儲存器中。執行一條指令實際上就是執行一段存放在控制儲存器中的微程式。

4.1微指令的格式

     微指令由(操作)控制欄位和下址(順序控制)欄位組成。

     控制欄位 Control Field 是微命令的編碼。

    下址欄位 Address Field 給出下一條微指令在控存的地址。


4.2 微指令的控制欄位的編碼方法

   微指令的控制欄位的編碼方法有4種:

   直接控制法最短字長編碼欄位編碼法分組直接控制法

4.2.1 直接控制法

 


1 設控制器的結構如教材P123-6.6所示。總共有25個控制訊號(微命令) 。

 

用直接控制法設計微指令,控制欄位為25位。

如果控制儲存器的容量為4k字,則下址欄位需12位。

一條微指令中的所有控制訊號(微命令)是同時發出的。

當前正在執行的微指令從控制儲存器中取出後放在微指令暫存器中。該暫存器的各個控制位的輸出直接連到各個控制門。

 


2 設計一條加法指令的微指令。P123 

    加法指令的功能:將暫存器rs中的一個數與儲存器中的一個數(地址為(rs1+disp)相加,結果放在暫存器rd中。

    這條加法指令的執行需要4個機器週期,應該由4條微指令解釋執行。每條微指令發出的控制訊號(微命令)如下:

 

 


4.2.2 最短字長編碼法 

最短字長編碼是將全部微命令進行統一編碼,每個碼位表示一種微命令,通過譯碼產生微操作控制訊號。

N位編碼最多可有2N個微命令。

優點是:微指令字長最短。

缺點是:必須經過完全譯碼。每次只能產生一個微命令,不能並行執行幾個微命令,效率低,速度慢,因而很少採用。


4.2.3 欄位編碼法

      欄位編碼法是將微操作控制欄位劃分為若干個小欄位,每個小欄位是若干個微命令的編碼,小欄位的長度一般為2~4位。各個小欄位之間的微命令可同時執行。欄位編碼法吸收了直接控制法和最短字長編碼法的優點,既能縮短微指令字長,又有較高的並行性,執行速度比較快。

     欄位編碼法又分為欄位直接編碼法欄位間接編碼法

    欄位直接編碼法是每個小欄位單獨編碼,每個碼位表示一種微命令。執行微指令時,每個小欄位單獨譯碼,分別產生一個微操作控制訊號。

 



5.小結 

1.把每條機器指令所需的微操作命令組合成若干條微指令,再將這些微指令構成一個微程式。每條機器指令對應一個微程式。

2.將全部微程式存入一個高速的控制儲存器中。

3.執行機器指令就變成了執行該指令對應的一個微程式。

4. 一條機器指令對應一個微程式,這個微程式是由若干條微指令序列組成的。因此,一條機器指令的功能是由若干條微指令組成的序列來實現的。簡言之,一條機器指令所完成的 操作劃分成若干條微指令來完成,由微指令進行解釋和執行。

5.從指令與微指令,程式與微程式,地址與微地址的一一對應關係來看,前者與記憶體儲器有關,後者與控制儲存器有關。 與此相關,也有相對應的硬裝置。