微程序控制器的基本原理

微程序控制器的基本原理
part1.微程序控制器的设计思路

程序:由指令序列组成

31dcd2776c114bb394c9a9850b4d4fe8.png
指令会被分为微操作
微指令可以完成微笑作,例如微指令a能完成微操作1、微操作2。
微程序:由微指令序列组成,每一种指令对应一个微程序。(例如指令2就对应一个微程序,微程序就由微操作组成。)
指令是对程序执行步骤的描述。
微指令是对指令执行步骤的描述。
采用“存储程序”的思想,CPU出厂前将所有指令的“微程序”存入“控制器存储器”中。
微命令(发出什么控制信号)与微操作(要做什么)①①对应。
由上图中,可知微指令中可能包含多个微命令。
这里就可以引出微指令的基本格式,如下图:

 a42e27ae12c64d12817cb5c95e592d06.png

 

每一种微指令可能对应多种操作,所以需要操作控制字段,由若干个bit。还需要顺序控制的字段,致命下一条微指令的地址。
part2.微程序控制器的基本结构
控制存储器(CM):用来存放各指令对应的微程序,控制存储器可用只读存储器ROM构成。
微地址寄存器(CMAR):别名 μ P C \mu PC μPC,接收微地址形成部件送来的微地址,为在CM中读取微指令作准备。有点类似于PC → \rightarrow →MAR,M(MAR) → \rightarrow →MDR。
MAR需要译码器才能选择主存信息,所以在CU中也有地址译码。
地址译码:将地址码转换为存储单元控制信号。
需要将CM中取出的微指令送到CMDR中。
CMDR:别名, μ I R \mu IR μIR,用于存放从CM中取出的微指令,它的位数同微指令字长相等。(这里格式就是上面微指令格式)
根据不同指令,要引入首地址,这里提出了微地址形成部件。
微地址形成部件:产生初始为地址和后续为地址,以保证微指令的连续执行。
顺序逻辑:控制微指令的执行顺序。

2940656b51224bf3bd6c8df99bd38d46.png
part3.微程序控制器的工作原理
取值周期,间指周期,中断周期微程序是可以共享的。

17712b6f0d2b4628b1e59ca5a7037403.png
所有的机器指令执行,在取指,间指,中断都是一样的,所以可以共享。
标志:根据指令地址码的寻址特征位判断是否要跳过间指周期。。
CLK:根据中断信号判断是否进入中断周期。
例:取数指令 LAD X。
取指周期:#0 #1 #2
间指周期:#3 #4 … #7
执行周期:#13 #14 #15
取指周期:#8 #9 … #12
取指周期微程序通常是公用的,故如果某指令系统中有n条机器指令(n个微程序),则CM中微程序的个数至少是n+1(这里的1是取指周期微程序,有些CPU不需要间指周期和中断周期)。
Tips:物理上,取指周期、执行周期看起来像两个微程序,但逻辑上应该把它们看作一个整体。因此,“一条指令对应一个微程序”的说法是正确的。

微指令的设计
相容性微命令:可以并行完成的微命令。
互斥性微命令:不允许并行完成的微命令。
1.水平型微指令 一条微指令能定义多个可并行的微命令

c0f4a4ecbbe94db6be00d4da0c715bed.png

优点:微程序短(指令条数少),执行速度快。
缺点:微指令长,编写微程序麻烦。
下面给出如何用若干个比特信息表示控制信号:
微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。
(1)直接编码(直接控制)方式
在微指令的操作控制字段中,每一位代表一个微操作命令
某位为"1"表示该控制信号有效。如下图, P C → M A R PC\rightarrow MAR PC→MAR和 1 → R 1\rightarrow R 1→R有效。3eda21a3a7e7417ea1579b80c5d80cf8.png
优点:简单、直观,执行速度快,操作并行性好。
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。
(2)字段直接编码方式
将微指令的控制字段分为若干“段”,每段经译码后发出控制信号

7eaa830cd6784063baba1a8610078bbf.png
上述PC → \rightarrow →MAR和1 → \rightarrow →R是可以并行的,放在分别的两个段里。PC → \rightarrow →MAR和PC+1 → \rightarrow →PC是互斥的。
微命令字段分段的原则:
①互斥性微命令分在同一段内,相容性微命令分在不同时间段内
②每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
③一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3时,最多只能表示7个互斥的微命令,通常用000表示不操作。

(3)字段简接编码方式
一个字段的某些微命令需要由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。

ffec95dab4734e479239c7368dd36050.png
优点:可进一步缩短微指令字长。
缺点:削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。
2.垂直型微指令 一条微指令只能定义一个微命令,由微操作码字段规定具体功能

09154f6804194da6913b14c33de93665.png
优点:微指令短、简单、规整、便于编写微程序。
缺点:微程序长,执行速度慢,工作效率低。
3.混合型微指令
在垂直型的基础上增加一些不太复杂的并行操作。
微指令较短,扔便于编写;微程序也不长,执行速度加快。

微指令的地址形成方式

5d85311255e8456f906b1d8465a74236.png
4.类似JMP
测试网络指内部的一些电路。

241f1132a7ec4dcc96a6ebd97b2830aa.png

例题:某计算机采用微程序控制器,共有32条指令,公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成,采用断定法(下地址字段法)确定下条微指令地址,则微指令中下地址字段的位数至少是多少位?
取指周期对应的微指令序列只有2条。
每条机器指令对应的微指令4条。
间指周期和中断周期可以没有。
总共需要存储多少条微指令?下地址需要可以指向每一条微指令。
32×4+2=130条微指令
所以取上限需要 2 8 2^8 28,至少8位。
微程序控制单元的设计
设计步骤:
1.分析每个阶段的微操作序列
要考虑如何读出这3条微指令,以及如何转入下一个机器周期。
第一条的微指令由硬件给出。用微指令a的下地址字段指向微指令b。就是在CMDR发出信号后,拔CMDR的下地址给CMAR。即
Ad(CMDR) → \rightarrow →CMAR
把微地址形成部件的地址给CMAR
OP(IR) → \rightarrow →微地址形成部件 → \rightarrow →CMAR
加上上述,就变成如下图:

e26f962eabe444838644ef6150b21a0f.png

微程序控制器的速度比硬布线慢。
2.写出对应机器指令的微操作命令及节拍安排
(1)写出每个周期所需要的微操作(参照硬布线)
(2)补充微程序控制器特有的微操作:

a.取指周期
每条微指令结束之后都需要进行:
Ad(CMAR) → \rightarrow →CMAR
取指周期的最后一条微指令完成后,要根据指令操作码确定其执行周期的微程序首地址:
OP(IR) → \rightarrow →微地址形成部件 → \rightarrow →CMAR
b.执行周期:
每条微指令结束之后都需要进行
Ad(CMDR) → \rightarrow →CMAR
3.确定微指令格式
根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。
根据CM中存储的微指令总数,确定微指令的顺序控制字段的位数。
最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长。

4.编写微指令码点
根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值