微程序设计

微程序的思想就是将这些控制信号存储起来
在硬件上,我们实际上存储的不是0/1,而是高电平和低电平,我们可以利用高电平和低电平这些控制信号,来控制每一个节拍我们要发出的微操作命令,那么这就是微程序

一个节拍对应一个微指令,一个微指令对应一条或多条的微操作,多个微指令组合起来就构成了一个微程序,一个机器周期中是由多条微指令构成的,一条机器指令对应一个微程序。
微程序设计_第1张图片
我們把這些微指令,或者這些由微指令構成的微程序存儲在ROM中。執行的時候,把微指令一條一條的從只讀存儲器中讀出,根據讀出的微指令當中的有效控制信號的個數或者是有效控制信號的位置,發出相應的控制信號,讓計算機去執行相應的操作——存儲邏輯

1、其实就是將可以并行的微操作合并,然後用一個微指令指代
2.然後如果執行一個微指令,就相當於并行執行多個微操作
3.代碼中的每一位都代表一個微操作,儅為0的時候表示不執行,1表示執行
4.如果該微指令中有多個1,就説明在一個節拍中有多個微操作并行執行
5.因爲微指令可以自由編程,所以實現微操作有多種組合
6.進而可以在不改變邏輯電路的前提下,于指令集中增加新指令

微程序控制單元框圖和工作原理

1.機器指令對應的微程序
微程序设计_第2张图片
2.微程序控制單元的基本框圖
微程序是存儲在控制存儲器中的,每一條指令都會對應一個地址,那麽怎麽將這個地址讀出來並譯碼呢。所以需要CMAR(控制存儲器地址寄存器)還有地址譯碼,并且,地址譯碼之後需要存儲在CMDR(控制存儲器數據寄存器)中,但是根據執行操作的不同,指令的地址也是不同的,所以我們需要接受IR中的操作碼部分,然後放到微地址形成部件中,并且,因爲地址的來源有多種,所以我們需要一個順序邏輯。

微指令的基本格式:操作控制和順序控制
其中,操作控制中都是0/1,儅為1的時候,對應其中的某一個微操作來完成相應的功能,順序控制存儲的是下一條指令的位置。
微程序设计_第3张图片
微程序设计_第4张图片
上面M+2之後,不能直接通過下地址直接找到下一條微指令所在的地址而是需要微地址形成部件根據操作碼來形成下一條微指令的地址。在閒址周期結束之後,需要轉到執行周期微程序,在中斷周期結束之後,需要轉到取址周期微程序。

工作原理

微程序设计_第5张图片
微程序设计_第6张图片
微程序设计_第7张图片
關鍵:微指令的操作控制字段如何形成微操作命令和微指令的後續地址怎麽形成

微指令的編碼方式(控制方式)

也就是上面關鍵中的第一個:微指令的操作控制字段如何形成微操作
1.直接編碼(直接控制)方式
在微操作命令的操作控制字段中,每一位代表了一個微操作命令
微程序设计_第8张图片
某位為1表示該控制信號是有效的。
因爲是哪一位控制信號有效是直接給出的,所以不需要經過譯碼,所以直接編碼方式是速度最快的。

2.字段直接編碼方式
將微操作的控制字段分成若干“段”,每段經過譯碼后發出控制信號
微程序设计_第9张图片
每段經過譯碼之後應該只有一個微操作是有效的,所以這也就意味著,分到一段的微操作應是互斥的。
顯示編碼,所以微程序執行的比較慢
縮短了微指令的字長,增加了譯碼的時間

3.字段之間的間接編碼
微程序设计_第10张图片
4.混合編碼
直接編碼和字段編碼(直接和間接)混合使用
最常用的微操作我們可以使用直接編碼,那些不常用的可以采用字段編碼

5.其他

微指令序列地址的形成

1.微指令的下地址字段指出
2.根據機器指令的操作碼形成
3.增量計數器(这样的话,部分微指令的下地址字段就可以省略)
4.分支轉移
微程序设计_第11张图片
5.通過測試網絡
微程序设计_第12张图片
6.由硬件產生微程序入口地址
第一條微指令的地址由專門的硬件產生
中斷周期由硬件產生中斷周期微程序的首地址
微程序设计_第13张图片

微指令格式

1.水平型微指令
一次性能定義並執行多個并行操作
2.垂直型微指令
類似機器指令操作碼的方式
一次只能定義一個操作
由微操作碼字段規定微指令的功能

兩種微指令格式的比較

(1)水平型微指令比垂直型微指令并行操作能力強,靈活性更高
(2)水平型微指令執行一條機器指令所要的微指令數目少,速度快

靜態微程序設計和動態微程序設計

靜態 微程序無需改變 采用ROM
動態 通過 改變微指令 和微程序改變機器指令,有利于仿真,采用EPROM

毫微程序設計

微程序設計用微程序解釋機器指令
毫微程序設計用毫微程序解釋微程序

毫微程序控制存儲器的基本組成

微程序设计_第14张图片

串行微程序和并行微程序控制

微程序设计_第15张图片
微程序设计_第16张图片
微程序设计_第17张图片

微指令字长的确定

微程序设计_第18张图片
微程序设计_第19张图片

定义微指令操作控制字段每一位的微操作

确定好微指令操作控制字段的每一位,就可以编写微指令码点了。
微程序设计_第20张图片
微程序设计_第21张图片

你可能感兴趣的:(微程序设计)