数据通路的功能
前两节把一条指令拆成了阶段和数据流,但那些”→“箭头是抽象的:PC → MAR 只说了值要从哪到哪,没说这条路是否真的存在、走的时候要不要跟别人抢。
数据通路就是把这些箭头兑现成物理连线的那一层。5.3 一整节的题目都是同一件事:给一张真实的连线图,判断某个数据流能不能走、走的话要几拍、每一拍要开哪些开关。
机制
定义与功能
数据通路 = 数据在功能部件之间传送的路径 + 路径上的功能部件本身。
它的功能只有一句话:实现 CPU 内部各部件之间、以及 CPU 与主存之间的数据传送与加工。
拆开看是三件事:
| 功能 | 具体表现 | 需要的硬件 |
|---|---|---|
| 传送 | 寄存器 ↔ 寄存器、寄存器 ↔ 主存 | 总线、连线、三态门 |
| 加工 | 算术、逻辑、移位 | ALU、移位器 |
| 暂存 | 跨拍保存中间值 | 通用寄存器、暂存器 |
注意这三件事里没有”决定做什么”。 数据通路是纯粹被动的:它提供”能走的路”,但走不走、什么时候走,全由控制器决定。
数据通路与控制器:本章第一条主线的正式分工
5.1.2 立的那条”数据线 / 控制线”二分,在这里成为两个部件的分工:
| 数据通路 | 控制器 | |
|---|---|---|
| 它是什么 | 一张图:部件 + 连线 | 一个函数:(操作码, 拍号, 状态) → 控制信号 |
| 它的输出 | 数据(值) | 控制信号(开关的开合) |
| 它由什么驱动 | 控制信号 | 时钟、IR、标志位 |
| 5.3 / 5.4 | ✅ 本节 | 5.4 |
这个分工有一个可直接用于答题的推论,5.1.2 已经说过一次,这里正式立为判据:
控制部件不生产数据。
凡是”值”,都必须由某个寄存器或某个部件的输出端提供,沿数据通路传送。控制器能做的只是决定”哪条路通、哪个寄存器收”。
一道题问”图中某端点是否应连到控制部件的输出端”,就用这条判据:看这个端点吃进去的是值还是开合命令。 5.3.4 会用它解掉一道真题里最容易搞反的一问。
指令类型清单 ⇔ 数据通路功能清单
4.1.5 留了一个伏笔:那张指令操作类型表,就是数据通路必须提供的功能清单。 现在兑现它。
| 指令类型 | 数据通路必须提供 |
|---|---|
数据传送(MOV) | 寄存器输出 → 总线 → 寄存器输入的通路 |
访存(LOAD / STORE) | 通往 MAR 的地址通路 + 经 MDR 的数据通路(双向) |
算术逻辑(ADD / AND) | 两个操作数同时到达 ALU 两个输入端的通路 + 结果回写通路 + 标志位写入 PSW 的通路 |
移位(SHL / SAR) | 通往移位器的通路(或 ALU 内含移位功能) |
无条件转移(JMP) | 目标地址 → PC 的通路 |
条件转移(Jcc) | 同上 + PSW → 控制器的通路(注意:这条是给控制器的输入,不是数据通路内部的传送) |
调用/返回(CALL / RET) | PC ↔ 栈的通路 + SP 的加减通路 |
| 中断响应 | PC、PSW → 主存(保断点)+ 入口地址 → PC |
反过来读这张表,就是数据通路题的检查清单:拿到一张图,若某条指令要求的通路在图上找不到,那要么是图画得不全(题目故意留白让你补),要么是这台机器不支持该指令。
“两个操作数同时到达 ALU”这一条最关键——它就是暂存器存在的理由,也是单总线结构比多总线多花一拍的根源。
数据通路决定 CPU 的性能
这条路径通常穿过 ALU(因为 ALU 是通路上最慢的组合部件),所以:
这就是”数据通路决定主频”的含义,也是 5.2.3 三种执行方案的物理基础:把这条长路径切成几段、每段插一个寄存器,
所以 5.2.3 那三种方案,本质上是对同一条数据通路的三种切法。 见 5.6.2。
边界
层次辨析:数据通路 / 控制器 / 运算器
三个词的范围两两交叉,容易混:
- 运算器是部件的集合(ALU、移位器、寄存器组)
- 数据通路是部件 + 它们之间的连线——比运算器大,还包含了通往 MAR/MDR/PC 的路径
- 控制器是产生控制信号的逻辑,它不在数据通路上,而是驱动数据通路
一句话:数据通路是”能走什么路”,控制器是”这一拍走哪条”。
边界辨析:数据通路包不包括主存
不包括。 数据通路指的是 CPU 内部的路径;主存在 CPU 外,二者的界面是 MAR 和 MDR。
但数据通路题经常要考虑访存——因为一次访存要占用 MAR、MDR,并且需要若干拍等待主存响应。题目通常会写明”存储器读/写各需 1 个时钟周期”之类的假设。
关联对照:数据通路 / 总线(第 6 章)
都是”传数据的路”,层次不同:
- 数据通路在 CPU 芯片内,由控制器直接排拍,不需要仲裁
- 系统总线在 CPU 外,多个主设备可能同时申请,需要仲裁(6.2.1)
CPU 内部总线是数据通路的一部分;系统总线不是。
对照速查
| 问的是 | 答案落在 |
|---|---|
| 这条数据能不能从 A 送到 B | 图上有没有连线 → 数据通路 |
| 这一拍要开哪些开关 | 控制信号 → 控制器 |
| 这个操作最少几拍 | 总线冲突 + 部件冲突 → 5.3.3 |
| 某端点该不该接控制部件 | 它吃的是值还是命令 → 本节判据 |
| 主频上限由什么决定 | 最长组合路径 → 本节末 |
考点
- “数据通路的功能是什么”:答实现 CPU 内部各部件之间及 CPU 与主存之间的数据传送与加工。
- 判断某部件是否属于数据通路:ALU、移位器、寄存器、MUX、总线属于;指令译码器、CU、时序系统不属于(它们是控制器)。
- 数据通路与控制信号的区分:贯穿 5.3 全部大题的第一步。
- 主频由什么决定:答数据通路上最长的组合逻辑延迟,不是”由 CPU 的性能决定”这种循环说法。
链接
- 🏠 返回总览:计算机组成原理第 5 章:中央处理器总览
- ⬅️ 上一节:5.2.3 指令执行方案
- ➡️ 下一节:5.3.2 数据通路的组成
- 🔗 伏笔来源:4.1.5 指令的操作类型
- 🔗 控制器一侧:5.4.1 控制器的结构和功能
- 📖 名词库:第 5 章名词库