7.5 微程序控制原理
微程序控制是一种将控制信号存储化的控制器实现方法,通过执行微程序来解释和执行机器指令。
7.5.1 基本概念
1. 微命令
- 定义:控制某个基本微操作的命令信号
- 特点:是最基本的控制信号,不可再分解
2. 微操作
- 定义:计算机中最基本的、不可再分解的操作
- 示例:寄存器间的数据传送、ALU的运算等
3. 微指令
- 定义:存放在控制存储器中的一个控制字,是若干微命令的集合
- 组成:
- 操作控制字段:包含多个微命令
- 顺序控制字段:控制下一条微指令的地址
4. 微程序
- 定义:一系列微指令的有序集合,用于解释并执行一条机器指令
- 特点:每条机器指令对应一段微程序
5. 控制存储器 (CM)
- 定义:专门用于存放微程序的只读存储器
- 特点:通常采用ROM或EPROM实现
7.5.2 微指令编码法
1. 直接控制法
- 原理:微指令的操作控制字段中每一位直接对应一个微命令
- 特点:
- 优点:并行性好,速度快(可同时执行多个微命令)
- 缺点:微指令字长(需要很多位)
示例:
每一位直接对应一个微命令:第1位→微命令₁,第2位→微命令₂,第3位→微命令₃,...
2. 短编码法
- 原理:将所有微命令统一编码,每条微指令只能完成一个基本操作
- 特点:
- 优点:微指令字短(只需要log₂n位,n为微命令总数)
- 缺点:并行性差(一次只能执行一个微命令)
示例:
| 编码 | 微命令 |
|---|---|
| 无操作 | |
| 微命令₁ | |
| 微命令₂ | |
| 微命令₃ | |
微指令字长:
3. 字段编码法(最常用)
- 原理:将操作控制字段分为若干小段(字段),段内采用短编码,段间为直接控制
- 特点:
- 优点:兼顾了并行性和指令长度(折衷方案)
- 缺点:需要合理分组
分段原则:
- 互斥性微命令:不能同时执行的微命令分在同组(段内编码)
- 兼容性微命令:可以同时执行的微命令分在不同组(段间直接控制)
示例:
其中:
- 字段₁:3位(段内编码)
- 字段₂:2位(段内编码)
- 字段₃:4位(段内编码)
- 字段间:直接控制(可并行执行)
7.5.3 微程序控制器组成与工作过程
组成部件
- 控制存储器(CM):存放微程序
- 微指令寄存器(
IR):存放当前正在执行的微指令 - 微地址寄存器(
MAR):存放下一条微指令的地址 - 微地址形成部件:根据机器指令的操作码形成微程序入口地址
工作过程
执行取指令微程序:
- 将机器指令从主存取到IR
- 这是所有指令的公共操作
形成微程序入口地址:
- 根据IR中的操作码,由微地址形成部件产生该指令对应微程序的入口地址
- 地址送
MAR
执行微程序:
- 从CM中逐条取出微指令到
IR并执行 - 微指令的操作控制字段产生微命令
- 顺序控制字段决定下一条微指令的地址
- 从CM中逐条取出微指令到
返回取指:
- 执行完该微程序后,返回步骤1,取下一条机器指令
工作流程图
开始
↓
取指令微程序 (公共)
↓
根据操作码形成入口地址
↓
执行对应微程序
↓
返回取指7.5.4 后继微地址的形成
1. 增量方式
- 原理:类似PC,通过微程序计数器(
PC)加1实现顺序执行 - 特点:
- 顺序执行:
PC自动加1,即 PC PC + 1 - 转移执行:通过转移微指令改变
PC的值
- 顺序执行:
- 优点:控制简单
- 缺点:需要额外的转移微指令
2. 断定方式
- 原理:由当前微指令的顺序控制字段直接给出下一条微指令的地址
- 特点:
- 每条微指令都包含下一条微指令的地址
- 可以实现任意跳转
- 优点:灵活,可以实现复杂的控制流程
- 缺点:微指令字长增加
3. 混合方式
- 原理:结合增量方式和断定方式
- 特点:
- 顺序执行时使用增量方式(节省微指令字长)
- 需要跳转时使用断定方式(灵活控制)
7.5.5 微程序入口地址的形成
方法
- 操作码映射:根据机器指令的操作码,通过查表或逻辑电路形成对应的微程序入口地址
- 实现:
- 可以用ROM实现映射表
- 也可以用组合逻辑电路实现
示例
| 操作码 | 微程序入口地址 |
|---|---|
映射关系:
💡 学习要点与重难点标注
层级关系(★容易混淆)
- 1条机器指令 = 1段微程序
- 1段微程序 = 若干条微指令
- 1条微指令 = 若干微命令 (控制信号) + 微地址
- 微命令对应微操作
编码方式对比
| 编码方式 | 原理 | 优点 | 缺点 | 应用 |
|---|---|---|---|---|
| 直接控制法 | 1位代表1个信号 | 快、并行性好 | 字太长 | - |
| 字段编码法(显式) | 互斥信号分在同一段,兼容信号分在不同段 | 兼顾并行性和长度 | 需要合理分组 | 最常用 |
★计算题:给出一组微命令,问怎么分段,微指令多长
微地址形成方法
- 计数器法(增量):类似PC,自动加1
- 断定法:测试位+地址位,直接给出下一条地址
- 一级/二级功能转换:操作码映射到微程序入口地址
微指令格式
| 格式 | 特点 | 并行能力 | 字长 | 应用 |
|---|---|---|---|---|
| 水平型 | 一次定义多个并行操作 | 强(效率高) | 长 | 高性能 |
| 垂直型 | 类似机器指令 | 弱 | 短 | 简单系统 |
为什么强调"微程序"?
老师未明说的"潜台词":
这是计算机组成原理中最经典的考点之一。它体现了"软硬结合"的思想(用软件的思维设计硬件)。老师可能会出设计题:给指令集,让你设计微指令格式,或者计算控制存储器(CM)的大小。
总结
微程序控制是一种将控制信号存储化的方法,通过执行微程序来解释机器指令。微指令的编码方式有直接控制法、短编码法和字段编码法,其中字段编码法应用最广泛。微程序控制器通过控制存储器、微指令寄存器、微地址寄存器等部件协同工作,根据机器指令的操作码形成微程序入口地址,然后执行相应的微程序。后继微地址的形成可以采用增量方式、断定方式或混合方式。