Appearance
硬布线控制器
2026 大纲 五(四)控制器的功能和工作原理(硬布线控制器)。
控制器只回答一个问题:这一拍把哪几个门打开
不管硬布线还是微程序,控制器要做的事只有一件——在第几拍,把哪几个门打开。写成函数就是:
两种控制器的分歧只在怎么实现这个函数。硬布线的做法是把它直接做成逻辑门电路:不存储、不查表,输入一变,经过几级门延迟输出立刻跟着变。
🔴 两者的分界线是"算"还是"读":控制信号由逻辑电路算出来的是硬布线,从控制存储器读出来的是微程序。⚠️ 由此可以立刻判掉一个常见误解——多周期的硬布线控制器含有状态寄存器,但它仍然是硬布线:那几个触发器记的是"现在第几步",不是用来存放控制信号的存储器。
函数的三类输入各管一件事:操作码(来自 IR 高位,经指令译码器产生
🔴 节拍信号是控制器的时间坐标。 同一条指令在不同拍要发不同的信号,光知道"当前是 ADD"远远不够。缺了节拍这一维,控制器就退化成纯组合逻辑,那就只能做单周期 CPU 了。
交互可视化
一、控制器就是一个函数
数据通路已经把所有可能的路径都铺好了,剩下的问题只有一个:在第几拍,把哪几个门打开。控制器的输出是一组控制信号(门控信号、写使能、ALU 操作码等),每个信号在每个时刻要么有效要么无效,因此它可以看成
三类输入各回答一件事:是哪条指令(操作码)、现在第几拍(节拍信号)、该不该分支(状态条件)。
二、设计过程本质上是填一张表
行是每一个控制信号,列是每一个(指令,节拍)组合,格子填该信号在该情形下是否有效。填完表,每一行就是一个布尔函数的真值表,直接写出表达式即可。步骤固定为四步:
- 分析每条指令的微操作序列——列出每条指令在每个节拍需要哪些微操作
- 列出每个控制信号的逻辑表达式——找出哪些指令的哪些节拍需要它
- 化简布尔表达式——用卡诺图或代数方法
- 用逻辑门电路实现
两个控制信号的表达式怎么写出来,以及它为什么就是 PLA 的形状(想弄清与阵列、或阵列分别对应表达式哪一段时展开)
控制信号
控制信号
若 LOAD 指令也要在执行周期第 1 拍用 ALU 算有效地址,则两条指令合并进同一个"或":
三个式子是同一个模子:
括号里的"指令之和"就是或阵列,外层的相乘就是与阵列。所以硬布线控制器落到芯片上天然是一块 PLA——先与后或,不需要另外设计结构。

(袁春风《计算机组成与系统结构》第 3 版,见文末教材出处)
落到电路上就是一块 与阵列 + 或阵列:输入是操作码和当前状态,经与阵列产生乘积项,再由或阵列把相关乘积项并起来,直接输出各条控制信号。
三、单周期与多周期的硬布线控制器
同样叫硬布线,两种 CPU 里的形态并不相同:
| 单周期 | 多周期 | |
|---|---|---|
| 控制器类型 | 纯组合逻辑 | 组合逻辑 + 状态寄存器 |
| 输入是否含节拍 | 否 | 是 |
| 一条指令内信号 | 不变 | 逐拍变化 |
| 本质 | 一张真值表 | 有限状态机 |
四、硬布线 vs 微程序
| 对比项 | 硬布线控制器 | 微程序控制器 |
|---|---|---|
| 实现方式 | 组合逻辑电路 | 控制存储器(ROM) |
| 控制信号来源 | 算出来 | 读出来 |
| 速度 | 快(几级门延迟) | 较慢(要访问 CM) |
| 规整性 | 不规整,逻辑零散 | 规整,易于扩展 |
| 修改灵活性 | 难(需重新设计电路) | 易(改 CM 内容) |
| 新增一条指令要做什么 | 重新分析微操作序列、修改所有相关信号的布尔表达式、重新设计电路——改的是硬件 | 在 CM 中新增一段微程序,映射逻辑里加一条操作码到入口地址的映射——改的是内容 |
| 适用场景 | RISC(指令集简单规整) | CISC(指令集复杂) |
这张表里"快"和"难改"这两格看似无关,其实是同一个决定的两面:
🔴 电路是为这套指令集专门化简过的——所以它没有中间环节因而快;也所以新增一条指令时那张真值表就变了,相关的布尔表达式全都要重新化简,本质上是重新设计硬件。把这两格分开背,就会觉得"为什么快的那个偏偏难改"很偶然。
最后一行的适用场景也有依据,不是约定俗成:指令集的规模与规整程度。RISC 指令少、格式统一、执行步骤相似
顺带一句现代实现:x86 两者都用——简单指令走硬布线式的快速译码路径保证速度,少数复杂指令查微码 ROM 展开成一串内部操作。x86 能靠微码更新修补某些硬件缺陷,补的正是走微码路径的那部分。
考点速记
- 硬布线
把 直接做成逻辑门电路,不存储不查表;与微程序的分界线是控制信号"算出来还是"读"出来,多周期硬布线虽含状态寄存器仍属硬布线。 - 三类输入分别回答"是哪条指令""现在第几拍""该不该分支";节拍信号是时间坐标,缺了它只能做单周期 CPU。
- 设计本质是填一张(控制信号 × 指令节拍)表,逐行写布尔表达式,形如
,正对应 PLA 的先与后或;快与难改源自同一个决策——电路是为这套指令集专门化简的。
这一节在真题里被考过的形式(下方「真题练习」里属于本篇的那道):
- 问"相对于微程序控制器,硬布线控制器的特点是什么":速度快、修改扩展难。四个选项就是"快 / 慢"与"易改 / 难改"的四种搭配,而这两点同源——电路为这套指令集专门化简过,所以既快又难改。答成"速度慢"或"修改容易"都是把两种控制器记反了。
易错:把"多周期硬布线控制器含状态寄存器"当成微程序的特征。判据是控制信号从哪来,不是有没有寄存器。
易错:把"快"和"难改"当成两件互不相干的事去记。它们是同一个设计决定的两面。
教材出处
- 用 PLA 电路实现的组合逻辑控制器(图 5.28):袁春风《计算机组成与系统结构》第 3 版 §5.3 多周期处理器,印刷页 p156
相关知识
微程序控制器|单总线数据通路|单周期数据通路|多周期数据通路