5.4 微程序控制器

image-20260304164425715

一、基本原理

==设计思路==

  • 一条机器指令对应一个微程序
    • 一个微程序有多条微指令(微周期,通常为一个机器周期)
      • 一条微指令可以做多个微操作微命令)(构成控制序列的最小单位)

image-20260304165200244

基本结构

CU的输入信号来源:

  • ①译码器产生的指令信息
  • ②时序系统产生的节拍信号
  • ③执行单元的反馈信息(标志)

image-20260304172033137

工作原理⭐

  • 一条机器指令 == 一个微程序
  • 一条机器指令 的执行过程 = 取指微程序(入口地址一般为CM的0号单元) + 执行微程序(不同指令微程序不同)
  • 微程序个数 = 机器指令数 + 取址,间址,中断周期的公共微程序数。

执行取指操作(公共)

  • 启动取指: 机器开始运行时,自动将取指微程序入口地址(通常为CM的0号单元)送入μPC,并开始从CM中读取并执行取指微指令。

  • 取指完成: 取指微程序执行完毕后,在其控制下,==从主存中取出的机器指令==已被存入指令寄存器(IR)中。

产生执行微程序入口

  • 由机器指令的操作码字段通过微地址形成部件,产生该机器指令所对应的微程序入口地址,并送入μPC。

执行指令对应的微程序

  • 从CM中逐条取出该指令对应的微指令并执行,直到该微程序执行完毕。

返回取指微程序

  • 执行完一条机器指令对应的微程序后,自动回到取指微程序的入口地址(0号单元),继续第①步,以完成取下一条指令的公共操作。

image-20260304173110441

二、微指令设计

  • 微指令的具体格式应该如何设计
  • 如何根据微指令发出相应的微命令(微操作)

微指令基本格式:

  • 操作控制(微操作码字段) + 顺序控制字段(微地址字段)

微指令的格式/类型

水平型微指令:

  • 一条微指令可以定义==多个==可并行的微命令。

  • 基本格式:操作控制+顺序控制

垂直型微指令:

  • 一个微指令只能定义==一个==微命令。由微操作码字段规定具体功能。

  • 基本格式:微操作码+目的地址+源地址

image-20260304175804421

编码方式(水平型微指令)

  • 编码目标:保证速度,尽量缩短字长

1.直接编码方式

image-20260305163115809

2.字段直接编码方式

  • ==微地址总位数:==微命令位数+微命令位数+…+判断测试位数+后继地址位数

3.字段间接编码方式

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

image-20260304182749430

三、微程序控制单元的设计

设计步骤:

  • 分析每个阶段的微操作序列
  • 写出对应机器指令的微操作命令及节拍安排
  • 确定微指令格式
  • 编写微指令码点

1.分析每个阶段的微操作序列

eg取值周期(公共)

image-20260304191133745

2.写出对应机器指令的微操作/命令及节拍安排

image-20260304191241943

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

image-20260305164310237

3 4

image-20260304192017615

硬布线VS微程序

硬布线不规整,微程序较规整

image-20260304192538982

总结

image-20260304192655495