控制器的功能和工作原理
硬布线控制器
基本原理
- 根据指令的要求、当前的时序及外部和内部的状态,按时间顺序发送一系列微操作控制信号
- 是由复杂的组合逻辑门电路和一些触发器构成,又称组合逻辑控制器

CU 的输入信号来源
- 经指令编译器译码产生的指令信息
- 时序系统产生的机器周期信号和节拍信号
- 来自执行单元的反馈信号,即标志 微操作控制信号的形成主要与指令译码信号和时钟信号有关
硬布线控制器的时序系统及微操作
- 时钟周期:用时钟信号控制节拍发生器,可以产生节拍,每个节拍的宽度正好对应一个时钟周期
- 机器周期:可以视为所有指令执行过程中的一个基准时间
- 指令周期:CPU 从主存中取出并执行一条指令的时间称为指令周期
- 微操作命令分析:控制单元发出各种操作命令序列的功能
CPU 的控制方式
同步控制方式
- 系统有一个统一的时钟,所有的控制信号都来源于这个统一的时钟信号
- 通常以最长的微操作序列和最繁琐的微操作作为标准
- 采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令
- 优点:控制电路简单
- 缺点:运行速度慢
异步控制方式
- 不存在基准时标信号,各部件按照自身固有速度工作,通过应答方式进行联络
- 优点:运行速度快
- 缺点:控制电路较为复杂
联合控制方式
- 介于同步、异步之间的一种折中
- 对大部分采用同步控制,小部分采用异步控制
设计步骤

安排微操作时序的原则
- 原则一:微操作的先后顺序不得随意更改
- 原则二:被控对象不同的微操作尽量安排在一个节拍内完成
- 原则三:占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序
微程序控制器
基本原理
- 采用存储逻辑实现,即把微操作信号代码化
- 将每条机器指令编写成一个微程序,每个微程序包含若干微指令,每条微指令对应一个或几个微操作命令
- 机器指令 —⇒微程序 —⇒微指令 ---⇒微操作命令
- 这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中微指令
基本概念
微命令与微操作
- 微操作:执行部件收到微命令后所进行的操作【是计算机中最基本、不可再分解的操作】
- 微命令:控制部件向执行部件发出的各种控制命令【是构成控制序列的最小单位】
- 相容性微命令:可以同时出现、共同完成某一些微操作的微命令
- 互斥性微命令:指在机器中不允许同时出现的微命令 硬布线控制器中也有微命令和微操作的概念
微指令与微周期
- 微指令:若干微命令的集合
- 操作控制字段【微操作码字段】:用于产生某一步操作所需的各种控制信号
- 顺序控制字段【微地址码字段】:用于控制产生下一条要执行的微指令地址
- 微周期:指从控制存储器中取出并执行一条微指令所需的全部时间,通常为一个时钟周期
- 微地址:存放微指令的控制存储器的单元地址
主存储器与控制存储器
- 主存:用于存放程序和数据,在 CPU 外部,用 RAM 实现
- 控制存储器【CM】: 用于存放微程序,在 CPU 内部,用 ROM 实现
程序与微程序
- 程序:是指令的有序集合,用于完成特定的功能
- 微程序:是微指令的有序集合,一条指令的功能由一段微程序实现
微程序和机器指令
- 一般来说,一条机器指令对应一个微程序
寄存器分类
- 地址寄存器【MAR】:存放主存的读 / 写地址
- 微指令地址寄存器【uPC 或 CMAR】:存放待执行的微指令在控制存储器中的微地址
- 指令寄存器【IR】:存放从主存中读出的指令
- 微指令寄存器【uIR 或 CMDR】:存放从控制存储器中读出的微指令
基本组成
- 控制存储器:核心部件,用于存放各指令对应的微程序,控制存储器可用 ROM 构成
- 微指令寄存器:存放从 CM 中取出的微指令,位数与微指令字长相等
- 微地址形成部件【起始和转移地址形成部件】:用于产生初始微地址和后继微地址,以保证微指令的连续执行
- 微地址寄存器:接受微地址形成部件送来的微地址,为在 CM 中读取微指令做准备

工作过程
实际上就是在微程序控制器的控制下计算机执行机器指令的过程:
- 执行取微指令公共操作
- 在机器开始运行时,自动地将取指微程序的入口地址送入 CMAR,并从 CM 中读出相应的微指令进入 CMDR
- 取指微程序的入口地址一般为 CM 的 0 号单元
- 取指微程序执行完成后,从主存中取出的机器指令就已存入指令寄存器中
- 由机器指令的操作码字段通过微地址形成部件产生该及其指令所对应的微程序的入口地址,并送入 CMAR
- 从 CM 中逐条取出对应的微指令并执行
- 执行完对应于一条机器指令的一个微程序后,又回到取指微程序的入口地址,继续第一步
微指令的编码方式【控制方式】
目的:保证速度的情况下尽量缩短指令字长
直接编码方式
- 无需进行译码,微指令的微命令字段中的每一位都代表一个微命令
- 优点:简单、直观、执行速度快,操作并行性好
- 缺点:微指令字长过长,n 个微指令就要求微指令的操作字段有 n 位,造成控制存储器容量极大

字段直接编码方式
- 将微命令字段分成若干小字段,每段经译码后发出控制信号
- 每个字段独立编码,每种编码都代表一个微命令且各字段编码含义单独定义,与其他字段无关
- 分段原则:
- 互斥性微命令组合在同一字段中,把相容性微命令组合在不同字段中
- 每个小段中包含的信息位不能太多,否则将增加译码电路的复杂性和译码时间
- 一般每个小段还要留出一个状态,表示本字段不发出任何微命令【某字段长度 3 位时,最多只有 7 个互斥微命令】
- 优点:可以缩短微指令字长
- 缺点:要通过译码电路之后再发出微命令,速度慢

字段间接编码方式
- 一个字段的某些微命令需由另一字段中的某些微命令解释
- 由于不是靠字段直接译码发出的微命令,因此称为字段间接编码
- 优点:可进一步缩短微指令字长
- 缺点:削弱了微指令的并行能力

微指令的格式
| 水平型 | 垂直型 |
|---|---|
| 并行操作能力强、效率高、灵活性强 | 相反 |
| 执行一条指令的时间短 | 相反 |
| 微指令字较长但微程序短 | 相反 |
| 用户难以掌握 | 与指令相似,相对容易掌握 |
水平型微指令
- 一条水平型微指令定义并执行多个并行操作的微指令
- 直接编码,字段直接编码,字段间接编码都属于水平型微指令
- 优点:微程序短,执行速度快
- 缺点:微指令长,编写微程序比较麻烦

垂直型微指令
- 一条微指令只能定义并执行一个微命令
- 由微操作码字段规定具体功能
- 优点:微指令短、简单、规整、便于编写程序
- 缺点:微程序长,执行速度慢,工作效率低

混合型微指令
- 在垂直型的基础上增加一些不太复杂的并行操作
- 微指令较短,仍便于编写;微程序也不长,执行速度加快
微指令的地址形成方式
- 直接由微指令的下地址字段指出:微指令格式中设置一个下地址字段【断定方式】
- 根据机器指令的操作码形成:机器指令取至 IR 后,微指令的地址由操作码经微地址形成部件形成
- 增量计数器法【微地址连续】:(CMAR) + 1 → CMAR
- 分支转移:根据各种标志
- 通过测试网络形成:由硬件直接产生微程序入口地址
设计步骤

微程序设计分类
-
静态微程序设计和动态微程序设计
- 静态:微程序无需改变,采用 ROM
- 动态:通过改变微指令和微程序改变机器指令,有利于仿真,采用 EPROM
-
毫微程序设计
- 微程序设计:用微程序解释机器指令
- 毫微程序设计: 用毫微程序解释微程序
- 毫微指令与微指令的关系好比微指令与机器指令的关系
两者的比较
| 微程序控制器 | 硬布线控制器 | |
|---|---|---|
| 工作原理 | 微操作控制信号以微程序的形式存放在控制存储器中,执行指令时读出即可 | 微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生 |
| 执行速度 | 慢 | 快 |
| 规整性 | 较规整 | 烦琐、不规整 |
| 应用场合 | CISC CPU | RISC CPU |
| 易扩充性 | 易扩充修改 | 困难 |