Skip to content

7.5 微程序控制原理

微程序控制是一种将控制信号存储化的控制器实现方法,通过执行微程序来解释和执行机器指令。


7.5.1 基本概念

1. 微命令

  • 定义:控制某个基本微操作的命令信号
  • 特点:是最基本的控制信号,不可再分解

2. 微操作

  • 定义:计算机中最基本的、不可再分解的操作
  • 示例:寄存器间的数据传送、ALU的运算等

3. 微指令

  • 定义:存放在控制存储器中的一个控制字,是若干微命令的集合
  • 组成
    • 操作控制字段:包含多个微命令
    • 顺序控制字段:控制下一条微指令的地址

4. 微程序

  • 定义:一系列微指令的有序集合,用于解释并执行一条机器指令
  • 特点:每条机器指令对应一段微程序

5. 控制存储器 (CM)

  • 定义:专门用于存放微程序的只读存储器
  • 特点:通常采用ROM或EPROM实现

7.5.2 微指令编码法

1. 直接控制法

  • 原理:微指令的操作控制字段中每一位直接对应一个微命令
  • 特点
    • 优点:并行性好,速度快(可同时执行多个微命令)
    • 缺点:微指令字长(需要很多位)

示例

微指令=[10110100]

每一位直接对应一个微命令:第1位→微命令₁,第2位→微命令₂,第3位→微命令₃,...

2. 短编码法

  • 原理:将所有微命令统一编码,每条微指令只能完成一个基本操作
  • 特点
    • 优点:微指令字短(只需要log₂n位,n为微命令总数)
    • 缺点:并行性差(一次只能执行一个微命令)

示例

编码微命令
000无操作
001微命令₁
010微命令₂
011微命令₃

微指令字长:log2n 位(n为微命令总数)

3. 字段编码法(最常用)

  • 原理:将操作控制字段分为若干小段(字段),段内采用短编码,段间为直接控制
  • 特点
    • 优点:兼顾了并行性和指令长度(折衷方案)
    • 缺点:需要合理分组

分段原则

  • 互斥性微命令:不能同时执行的微命令分在同组(段内编码)
  • 兼容性微命令:可以同时执行的微命令分在不同组(段间直接控制)

示例

微指令=[字段1字段2字段3]

其中:

  • 字段₁:3位(段内编码)
  • 字段₂:2位(段内编码)
  • 字段₃:4位(段内编码)
  • 字段间:直接控制(可并行执行)

7.5.3 微程序控制器组成与工作过程

组成部件

  1. 控制存储器(CM):存放微程序
  2. 微指令寄存器(μIR):存放当前正在执行的微指令
  3. 微地址寄存器(μMAR):存放下一条微指令的地址
  4. 微地址形成部件:根据机器指令的操作码形成微程序入口地址

工作过程

  1. 执行取指令微程序

    • 将机器指令从主存取到IR
    • 这是所有指令的公共操作
  2. 形成微程序入口地址

    • 根据IR中的操作码,由微地址形成部件产生该指令对应微程序的入口地址
    • 地址送μMAR
  3. 执行微程序

    • 从CM中逐条取出微指令到μIR并执行
    • 微指令的操作控制字段产生微命令
    • 顺序控制字段决定下一条微指令的地址
  4. 返回取指

    • 执行完该微程序后,返回步骤1,取下一条机器指令

工作流程图

开始

取指令微程序 (公共)

根据操作码形成入口地址

执行对应微程序

返回取指

7.5.4 后继微地址的形成

1. 增量方式

  • 原理:类似PC,通过微程序计数器(μPC)加1实现顺序执行
  • 特点
    • 顺序执行:μPC自动加1,即 μPC μPC + 1
    • 转移执行:通过转移微指令改变μPC的值
  • 优点:控制简单
  • 缺点:需要额外的转移微指令

2. 断定方式

  • 原理:由当前微指令的顺序控制字段直接给出下一条微指令的地址
  • 特点
    • 每条微指令都包含下一条微指令的地址
    • 可以实现任意跳转
  • 优点:灵活,可以实现复杂的控制流程
  • 缺点:微指令字长增加

3. 混合方式

  • 原理:结合增量方式和断定方式
  • 特点
    • 顺序执行时使用增量方式(节省微指令字长)
    • 需要跳转时使用断定方式(灵活控制)

7.5.5 微程序入口地址的形成

方法

  • 操作码映射:根据机器指令的操作码,通过查表或逻辑电路形成对应的微程序入口地址
  • 实现
    • 可以用ROM实现映射表
    • 也可以用组合逻辑电路实现

示例

操作码微程序入口地址
000000000000
000100001000
001000010000

映射关系:f(操作码)μMAR



💡 学习要点与重难点标注

层级关系(★容易混淆)

  • 1条机器指令 = 1段微程序
  • 1段微程序 = 若干条微指令
  • 1条微指令 = 若干微命令 (控制信号) + 微地址
  • 微命令对应微操作

编码方式对比

编码方式原理优点缺点应用
直接控制法1位代表1个信号快、并行性好字太长-
字段编码法(显式)互斥信号分在同一段,兼容信号分在不同段兼顾并行性和长度需要合理分组最常用

★计算题:给出一组微命令,问怎么分段,微指令多长

微地址形成方法

  • 计数器法(增量):类似PC,自动加1
  • 断定法:测试位+地址位,直接给出下一条地址
  • 一级/二级功能转换:操作码映射到微程序入口地址

微指令格式

格式特点并行能力字长应用
水平型一次定义多个并行操作强(效率高)高性能
垂直型类似机器指令简单系统

为什么强调"微程序"?

老师未明说的"潜台词"

这是计算机组成原理中最经典的考点之一。它体现了"软硬结合"的思想(用软件的思维设计硬件)。老师可能会出设计题:给指令集,让你设计微指令格式,或者计算控制存储器(CM)的大小。


总结

微程序控制是一种将控制信号存储化的方法,通过执行微程序来解释机器指令。微指令的编码方式有直接控制法、短编码法和字段编码法,其中字段编码法应用最广泛。微程序控制器通过控制存储器、微指令寄存器、微地址寄存器等部件协同工作,根据机器指令的操作码形成微程序入口地址,然后执行相应的微程序。后继微地址的形成可以采用增量方式、断定方式或混合方式。