计组-5.4 微程序控制器
5.4 微程序控制器

一、基本原理
设计思路⭐
- ==一条机器/汇编/高级指令对应一个微程序==
- ==一个微程序有多条微指令==(==微周期==,通常为一个机器周期)
- ==一条微指令可以做多个微操作(微命令)==(构成控制序列的最小单位)
- ==一个微程序有多条微指令==(==微周期==,通常为一个机器周期)
- 简记:微程序→微指令/周期→微操作/命令

基本结构
CU的输入信号来源:
- ①译码器产生的指令信息
- ②时序系统产生的节拍信号
- ③执行单元的反馈信息(标志)

工作原理⭐
- ==一条机器/汇编指令 的执行过程== = 取指微程序(入口地址一般为CM的0号单元) + 执行微程序(不同指令微程序不同)
- ==微程序个数== = 机器指令数(每一条指令都有自己的执行微程序) + 公共微程序数(取址,间址(非必须),中断周期,分别共用一个微程序)
①执行取指操作(公共)
启动取指: 机器开始运行时,自动将取指微程序入口地址(⭐通常为CM的0号单元,即微指令的微操作码字段)送入μPC,并开始从CM中读取并执行取指微指令。
取指完成:取指微程序执行完毕后,在其控制下,==从主存中取出的机器指令==已被存入指令寄存器(IR)中。
②产生执行微程序入口
- 由机器指令的操作码字段通过微地址形成部件,产生该机器指令所对应的微程序入口地址,并送入μPC。
③执行指令对应的微程序
- 从CM中逐条取出该指令对应的微指令并执行,直到该微程序执行完毕。
④返回取指微程序
- 执行完一条机器指令对应的微程序后,自动回到取指微程序的入口地址(0号单元),继续第①步,以完成取下一条指令的公共操作。

二、微指令设计
微指令的具体格式应该如何设计?
如何根据微指令发出相应的微命令(微操作)?
微指令的格式/类型
==微指令基本格式:==
- 操作控制==(微操作码字段)== ==+== 顺序控制字段==(微地址字段)==
类型:
水平型微指令:
一条微指令可以定义==多个==可==并行==的微命令。【==长条状指令==,多条微命令都塞到一条指令里面了。】
基本格式:操作控制+顺序控制 【水平控制信号是来实现并行多条微命令的基础】
垂直型微指令:
一个微指令只能定义==一个==微命令。由微操作码字段规定具体功能。【短短的微指令】
基本格式:微操作码+目的地址+源地址
垂直型串行编码就行,不用并行。

编码方式(水平型微指令)
编码目标:保证速度,尽量缩短字长
1.直接编码方式 ==【效率最高】==
- 把操作字段的每一位bit,代表一个微操作命令。

2.字段直接编码方式
- 把操作控制部分分成几段。
- 把相同的微命令放在不同段内,把互斥的微命令放在同一段内。
- 每一段留出一个状态位(表示本字段不发出微命令)
- ==微地址总位数:==微命令位数+微命令位数+…+判断测试位数+后继地址位数
3.字段间接编码方式

下一条微指令的地址形成方式

三、==微程序控制单元μCU的设计==
设计步骤:
1.分析每个阶段的微操作序列
2.写出对应机器指令的微操作命令及节拍安排
3.确定微指令格式
4.编写微指令码点
1.分析每个阶段的微操作序列
eg取值周期(公共)

2.写出对应机器指令的微操作/命令及节拍安排
可看出微程序控制器速度比硬布线控制器要慢。

- 微程序控制器(相比于硬布线)特有的微操作:

3 4

硬布线VS微程序
微程序规整,速度慢
==硬布线快,不规整(纯硬件嘛)==

总结

补充:
微处理器:是相对于大型处理器而言的,和微控制器没有必然联系。
汇编程序员可见的寄存器:基址寄存器,PSW,PC,通用寄存器组
==汇编程序员不可见的:MAR,MDR,IP指令寄存器,微程序控制器。==
评论

