Lazy loaded image
微程序设计
Words 2931Read Time 8 min
2026-1-8
标签
日期
Place
创建时间
Jan 8, 2026 01:53 PM
  1. 组合逻辑控制器/硬布线控制器:微操作控制信号由组合逻辑电路根据当前的指令码、状态、时序(机器周期、节拍),即时产生
  • 由大量的逻辑门电路和触发器组成
  • 设计不规整、不易修改
  1. 微程序控制器 基于存储程序、顺序执行的思想体制
  • 存储逻辑的设计思想:将控制器需要产生的微操作命令,以微代码的形式编成微指令,存在专门的存储器中,执行机器指令时,从该存储器中取出微指令,产生执行机器指令所需的微操作命令序列
  • 程序设计的技术:把一条机器指令所需要的微操作命令序列,以微指令的形式编成一段微程序,整个指令系统就编出一整套微程序,采用“顺序、转移、多分支”等程序设计的技术进行微程序的设计
若干微命令编制成一条微指令,控制实现一步微操作 若干微指令组成一段微程序,解释执行一条机器指令 微程序事先存放在控制存储器中,执行机器指令时再取出

微程序控制器的基本原理

设计思路

  1. 设计思想 将一条机器指令编写成一个微程序,每个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令,然后把这些微程序存到一个控制存储器中,用寻找用户程序机器指令的方法来寻找每个微程序中的微指令
    1. image.png
一条机器指令对应一段微程序 微程序控制单元的核心部件是一个控制存储器
  1. 用到的基本概念
  • 微(操作)命令:构成控制信号序列的最小单位(PCo/MDRi)
  • 微操作:由若干微命令控制实现的最基本操作 微命令与微操作一一对应(PC → bus → MAR)
  • 微指令:若干个微命令的组合 (PC → bus → MAR, 1 → R)
  • 微程序:一系列微指令的有序集合
    • (PC→bus→MAR, 1→R; M(MAR)→MDR ...)
    • 每一种指令对应一个微程序
  • 控制存储器:存放微程序的只读存储器
    • image.png|350

基本框图

image.png
微指令的基本格式:
  • 操作控制字段:发出各种控制信号
  • 顺序控制字段:指出下条微指令的地址(下地址),以控制微指令序列的执行顺序

工作原理

  1. 由于任何一条机器指令的取指令操作/间接寻址操作/中断隐指令操作是相同的,可编成一个微程序 控制存储器中的微程序个数应为机器指令数+对应取指、间址、中断周期的3个程序
    1. image.png
      image.png
  • 如果某指令系统中有n条机器指令,则CM中微程序段的个数至少是n+1个
一些早期的CPU、物联网设备的CPU可以不提供间接寻址和中断功能
  • 一条指令对应一个微程序
  1. 工作过程 一条机器指令的读取与执行就是其对应的一段微程序的读取与执行
  • 从CM中读取“取指微程序”并执行,该微程序的执行就完成从主存取出一条机器指令(公操作)
  • 由取出的机器指令的操作码,经“微地址形成部件”,产生该指令对应的微程序的入口微地址
  • 由该入口微地址,逐条取出微指令执行,产生该机器指令的执行所需要的微命令序列
  • 该段微程序执行结束,使微地址指向取指微程序入口,又回到“取指微程序”,开始下一条机器指令的取指与执行
image.png

微指令的设计

微指令的编码方式

又称微指令的控制方式,它是指如何对微指令的控制字段进行编码,已形成控制信号

直接编码/直接控制方式

思想:在微指令的操作控制字段中,
每一位代表一个微操作命令
某位为“1”,代表控制信号有效
image.png|300
优点:含义清晰,而且只要微指令从控存读出,即刻可由控制字段发出命令,速度快,操作并行性好 缺点:由于机器中微操作命令甚多,可能使微指令操作控制字段达几百位,造成控存容量极大

字段直接编码方式🔆

靠字段直接译码发出微命令,又有显示编码之称
思想:将微指令的操作控制字段分成若干段,将
一组互斥
的微操作命令放在一个字段内,通过对这个字段
译码
,便可对应每一个微命令
image.png|350
微命令字段分段原则:
  • 互斥性微命令分在同一个段内,相容性微命令分在不同段内
  • 操作控制字段分段数,与需要并行发出的微命令个数有关,每段的长度可以不等,与具体要求互斥的微命令个数有关
  • 每个小段包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间
  • 一般每个小段还要留出一个状态,表示本字段不发出任何微命令,因此当某字段的长度为3位,最多只能表示7个互斥的微命令,通常用000表示不操作 特点:缩短了微指令的长度,但由于增加了译码电路,使微程序的执行速度稍稍减慢,增加译码时间 常见题型:
    • image.png

字段间接编码

思想:一个字段的某些微命令需由另一个字段中的某些微命令来解释
由于不是靠字段直接译码发出微命令,故称为字段间接编码,又称隐式编码
image.png|286
优点:进一步缩短微指令字长 缺点:削弱了微指令的并行控制能力,通常用作字段直接编码的一种辅助手段

其他编码方式

  • 混合编码:直接编码和字段编码(直接和间接)混合使用
  • 其他

微指令序列地址的形成

  1. 直接由微指令的下地址字段指出
又称为断定方式
image.png
  1. 根据机器指令的操作码形成🔆 当机器指令取至指令寄存器后,微指令的地址由操作码经微指令地址形成部件形成
微地址形成部件实际上是一个编码器,其输入为指令操作码,输出就是对应该机器指令微程序的首地址 可采用PROM实现,以指令的操作码作为PROM的地址,而对应的存储单元内容就是对应该指令微程序的首地址
image.png
  1. 增量计数器法 对于顺序地址,微指令可采用增量计数法,即(CMAR)+1→CMAR
  1. 分支转移 当遇到条件转移指令时,微指令出现了分支,必须根据各种标志来决定下一条微指令的地址 转移方式:指明判别条件 转移地址:指明转移成功后的去向
    1. image.png
  1. 通过测试网络形成 高段h为非测试地址,由微指令的H段地址码直接形成 低段l为测试地址,由微指令的L段通过测试网络形成
    1. image.png|325
  1. 由硬件产生微程序的入口地址 第一条微指令地址 由专门硬件产生---这个地址即为取指周期微程序的入口地址 中断周期 由硬件产生中断周期微程序首地址
  1. 后续微指令地址的原理图 多路选择器可选择以下四类地址
    1. image.png|375
  • (CMAR)+1→CMAR
  • 微指令的下地址
  • 微指令寄存器(通过微地址形成部件)
  • 微程序入口地址(硬件产生)
  • 分支转移

微指令的格式

  1. 水平型微指令 定义:一次能定义并执行多个并行操作的微命令 直接编码、字段直接编码、字段间接编码、直接和字段混合编码都有属于水平型微指令
  1. 垂直型微指令 采用类似机器指令操作码的方式,在微指令字中,设置微操作码字段,由微操作码规定微指令的功能
  1. 对比
  • 水平型微指令比垂直型微指令并行操作能力强,效率高,灵活性强
  • 水平型微指令执行一条机器指令所要的微指令数目少,速度快
  • 水平型微指令用较短的微程序结构换取较长的微指令结构(位宽)
  • 水平型微指令与机器指令差别大

微程序控制单元的设计

设计步骤:
  • 分析每个阶段的微操作序列
    • image.png|325
  • 写出对应机器指令的微操作命令及节拍安排
    • 写出每个周期所需的微操作(参照组合逻辑设计)
      • image.png|350
    • 补充微程序控制器特有的微操作
      • image.png|350
      • 取指周期
        • 在取指微程序中,除第一条微指令外,其余微指令的地址均由上一条微指令的下地址字段直接给出,需要增加一个将微指令下地址字段送到CMAR的微操作Ad(CMDR)→CMAR
        • 取指微程序的最后一条微指令,其后续微指令的地址是由微地址形成部件形成的,要根据指令操作码确定其执行周期的微程序首地址
      • 执行周期
        • 每条微指令结束后都需要通过当前执行的微指令确定下一条微指令的地址
  • 确定微指令格式
    • 微指令的编码方式
    • 后续微指令的形成方式
    • 微指令字长
      • 根据微操作个数决定采用何种编码方式后以确定微指令的操作控制字段的位数
      • 根据CM中存储的微指令总数,确定微指令的顺序控制字段【下地址】的位数
  • 编写微指令码点
    • 根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点

微程序设计分类

  1. 静态微程序设计和动态微程序设计
  • 静态微程序设计
    • 微程序无需改变,采用ROM
  • 动态微程序设计
    • 通过改变微指令和微程序改变机器指令,有利于仿真
    • 采用EPROM
  1. 毫微程序设计 微程序可看作是解释机器指令的 毫微程序可看作是解释微程序的

组合逻辑 VS 微程序

image.png
image.png
上一篇
年度总结
下一篇
年度总结

Comments
Loading...