二、微程序设计
组合方式进行控制器的设计结构清晰,简单明了,但是电路庞杂,每一个控制信号都需要设计单独的电路来完成控制信号的生成,修改起来十分困难,因此产生了这种设计容易,修改容易的控制器设计方法
1.微程序设计思想
一条机器指令对应一个微程序,一个微程序包含多个微指令,一个微指令包含一条或多条微操作命令,微指令具有先后顺序,所有的微指令存储在ROM(制度存储器中)
2.微程序控制单元的基本框图及工作原理
原理分析:
1)取指阶段
M->CMAR
CM(CMAR)->CMDR
由CMDR发命令
形成下条微指令地址 M+1
Ad(CMDR)->CMAR
CM(CMAR)->CMDR
由CMDR发命令
形成下条微指令地址 M+2
Ad(CMDR)->CMAR
由CMDR发命令
2)执行阶段 执行LDA微程序
OP(IR)->微地址形成部件->CMAR
CM(CMAR)->CMDR
由CMDR发命令
Ad(CMDR)->CMAR
CM(CMAR)->CMDR
由CMDR发命令
Ad(CMDR)->CMAR
CM(CMAR)->CMDR
由CMDR发命令
Ad(CMDR)->CMAR 最后跳转回M地址,即取指阶段的首地址
3)取指阶段 与1)相同
全部微指令存在CM中,程序执行过程中只需读出
关键:
- 微指令的操作控制字段如何形成微操作命令
- 后续的地址如何形成
3.微指令的编码方式(控制方式)
- 直接编码方式(直接控制)
在微操作的操作控制字段中,每一位代表一个微操作命令,某位为1表示改控制信号有效
这种方式速度最快,但是微指令的操作控制字段会很长 - 字段直接编码方式
将微指令的控制字段分成若干段
每段经移码后发出控制信号
每个字段中的命令是互斥的,缩短了微指令字长,增加了译码时间
显式编码,微程序执行速度较慢 - 字段间接编码方式
控制信号的输出不仅和该段的译码结果相关,还与其他段的译码结果相关,叫做隐式编码 - 混合编码
直接编码和字段编码(直接和间接)混合使用 - 其他
4.微指令序列地址的形成
- 微指令的下地址字段指出
- 根据机器指令的操作码形成
- 增量计数器 (CMAR)+1->CMAR
- 分支转移
微指令组成: 操作控制地段|转移方式|转移地址
转移方式 指明判别条件
转移地址 指明转移成功后的去向 - 通过测试网络,测试上调指令的下一条指令是否是通的
- 由硬件产生微程序入口地址
第一条微指令地址 由专门硬件产生
中断周期 由硬件产生中断周期微程序首地址 - 后续微指令地址形成方式原理图
5. 微指令的格式
- 水平型微指令
一次能定义并执行多个并行操作
如:直接编码、字段直接编码、字段间接编码、直接和字段混合编码
2.垂直型微指令
类似机器指令操作码的方式,用于控制硬件操作,操作比较复杂
由微操作码字段规定微指令的功能
3.两种微指令格式的比较
1)水平型微指令比垂直型微指令并行操作能力强,灵活性强
2)水平型微指令执行一条机器指令所要的伪指令数目少,速度快
3)水平型微指令用较短的微程序结构换取较长的微指令结构
4)水平型微指令与机器指令差别大