数据通路的功能

前两节把一条指令拆成了阶段和数据流,但那些”→“箭头是抽象的: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 的性能决定”这种循环说法。

链接