Skip to content

微程序控制器

考情分析

微程序控制器是408考研的重点章节,综合题曾考过"写出某指令的微程序""分析微指令格式"。微指令格式中水平型和垂直型的区别是高频选择题考点。

基本概念

微程序控制器将每条机器指令的执行过程用一段微程序来实现。

层次关系:

机器指令对应微程序微指令序列包含微操作
概念说明
微操作CPU 的最基本操作,如"A → ALU"
微命令控制微操作的信号(与控制信号对应)
微指令一条微指令包含若干微命令,表示一个时钟周期内可并行执行的操作
微程序实现一条机器指令的微指令序列
控制存储器(CM)存放所有微程序的只读存储器

微程序控制器的结构

机器指令 IR

    ↓ 操作码
  映射逻辑(入口地址形成电路)

    ↓ 微程序入口地址
  微地址寄存器(μAR / CMAR)


  控制存储器(CM)

    ↓ 读出微指令
  微指令寄存器(μIR / CMDR)

    ├──→ 操作控制字段 ──→ 各微命令(控制信号)
    └──→ 顺序控制字段 ──→ 下条微指令地址 ──→ μAR

微指令格式

微指令包含两个主要字段:

  • 操作控制字段:指明本条微指令需要发出哪些微命令
  • 顺序控制字段:给出下一条微指令的地址(或计算方式)

水平型微指令

操作控制字段中每一位对应一个微命令,1 表示有效,0 表示无效。

C1 C2  Cn操作控制字段,nA1 A2  Ak顺序控制字段,k

特点:

  • 微命令多则微指令字长大
  • 并行性强:同一条微指令可同时激活多个微命令
  • 微程序短(指令少),执行速度快
  • 指令格式不规整,编写微程序较繁琐

垂直型微指令

操作控制字段使用操作码编码,类似于机器指令格式,每条微指令只完成少量操作。

微操作码指定操作类型目的/源字段操作对象下址字段顺序控制

特点:

  • 微指令字长短,控制存储器空间小
  • 并行性弱:通常一次只做一个操作
  • 微程序长(指令多),执行速度较慢
  • 格式规整,易于编写和理解

水平型微指令的编码方式

水平型微指令的操作控制字段有三种编码方式,408 高频考点:

1. 直接编码(直接控制)

每一位直接对应一个微命令,1=有效,0=无效。

  • 优点:简单直观,速度快(不需译码)
  • 缺点:微指令字长大(微命令数=控制位数)

2. 字段直接编码

将互斥的微命令分成若干组(字段),每个字段内用二进制编码。k 位编码可表示 2k1 个微命令(全 0 表示该字段不发出任何命令)。

  • 优点:显著缩短微指令字长
  • 缺点:需要字段译码器,速度略慢
  • 分组原则:互斥的微命令分在同一字段,相容的微命令分在不同字段

字段直接编码示例:某处理器有 20 个微命令,经分析可分为 4 组互斥的微命令,各组分别有 3、5、8、4 个微命令。

  • 第 1 组:3 个微命令 + 1 个空操作 = 4 种状态,需 log24=2
  • 第 2 组:5 + 1 = 6 种状态,需 log26=3
  • 第 3 组:8 + 1 = 9 种状态,需 log29=4
  • 第 4 组:4 + 1 = 5 种状态,需 log25=3

操作控制字段总共 2+3+4+3=12 位(而直接编码需要 20 位,压缩了 40%)。

3. 字段间接编码

一个字段的含义取决于另一个字段的值,进一步压缩编码长度,但译码更复杂。

对比

对比项水平型垂直型
微指令字长
并行性
微程序长度
执行速度
编写难度较复杂简单

下址字段的获取方式

微指令执行完后,如何得到下一条微指令的地址?

  1. 直接给出:微指令中有专门的下址字段,直接送入 μAR
  2. 计数器方式:类似 PC 自增,μAR+1(顺序执行微程序时)
  3. 条件转移:根据状态条件(CF、ZF 等)在两个地址中选一个
  4. 由机器指令操作码映射:每条机器指令开始执行时,由操作码转换为微程序入口地址

微程序设计步骤

  1. 分析每条机器指令的功能,写出微操作序列
  2. 将同一时钟周期可并行的微操作归并为一条微指令
  3. 编写微指令序列(微程序)
  4. 确定每条微指令的下址字段
  5. 将微程序存入控制存储器(ROM)

交互可视化

加载可视化中...

例题

例1:某微程序控制器有20个微命令,采用水平型微指令。若顺序控制字段为8位,求微指令的最小字长。

解:水平型微指令中,操作控制字段每一位对应一个微命令,20个微命令需要20位。加上8位顺序控制字段,最小字长 = 20+8=28 位。

例2:某CPU有40条机器指令,每条指令的微程序平均包含6条微指令,另有公共的取指微程序包含3条微指令。控制存储器至少需要多少单元?

解:40条机器指令对应40段微程序,共 40×6=240 条微指令。取指微程序是公共的,只需存一份,3条微指令。控制存储器至少需要 240+3=243 个单元。

例3:水平型微指令和垂直型微指令各自的优缺点是什么?408考研中某题指出"微指令字长为50位,其中操作控制字段38位,采用直接编码",这是哪种类型?

解:直接编码(每位对应一个微命令)是水平型微指令的特征。38位操作控制字段意味着最多可以同时发出38个微命令。水平型的优点是并行性强、微程序短、执行快;缺点是微指令字长大、编写复杂。

易混淆知识点

1. 控制存储器(CM)和主存是什么关系?

CM 是 CPU 内部的 ROM,存放微程序,CPU 取指时从主存取机器指令,取到后根据操作码从CM中读微指令。二者独立、互不干扰。CM 的地址由微地址寄存器(CMAR)给出,不占用主存地址空间。

2. 微指令周期和机器指令周期的关系?

一条机器指令的执行需要一段微程序,即多条微指令。每条微指令对应一个时钟周期。因此机器指令周期 = 该指令对应的微指令条数 × 微指令周期(时钟周期)。

3. 字段直接编码中的"全 0 表示不操作"为什么重要?

每个字段必须留一个编码表示"该组不发出任何微命令"。否则该字段在每个时钟周期都必须激活一个微命令,丧失了灵活性。所以 k 位编码最多表示 2k1 个微命令(而非 2k 个)。

4. 硬布线和微程序哪个快?

硬布线更快(组合逻辑直接产生控制信号,无须从 CM 读取微指令)。微程序更灵活(修改 CM 内容即可改变指令功能,适合 CISC)。现代 RISC 处理器普遍使用硬布线控制器。

考点清单

  • 控制存储器(CM)存放微程序,是 ROM(只读),不是主存的一部分
  • 取指微程序是公共微程序,所有机器指令共享
  • 机器指令的操作码经过映射逻辑得到对应微程序的入口地址
  • 水平型:字长长、并行性强、速度快;垂直型:字长短、并行性弱、速度慢
  • 字段直接编码:互斥微命令分同一字段,k 位表示 2k1 个微命令(全 0 = 不操作)
  • 微程序控制器修改灵活(改 ROM 内容),硬布线控制器速度快
  • 微程序控制器适合 CISC(复杂指令集),如 x86 历史上的实现

真题练习

相关真题(5题)

2024Q13选择题2分

CPU直接执行的指令类型辨析

2017Q18选择题2分

主存储器与控制存储器的对比

2014Q18选择题2分

微程序控制器中下地址字段位数计算

2012Q18选择题2分

字段直接编码法操作控制字段位数计算

2009Q19选择题2分

硬布线控制器与微程序控制器的对比