指令执行方案
前两节说清了”一条指令要经历哪些阶段、每个阶段搬什么”。这些内容在三种执行方案下完全一样——搬的东西不变,变的只有一件事:时钟周期的边界画在哪。
这一节是全章最短的一节,但它是性能公式在 CPU 设计上的第一次落地:三种方案对应
机制
单周期方案
一条指令在一个时钟周期内做完,下一条指令的取指在下一个时钟上升沿开始。
- 优点:控制极简单——不需要记”现在是第几拍”,控制信号在整个周期内保持不变。
- 致命缺点:
被最慢的指令绑架。一条 ADD R1,R2明明几纳秒就能做完,也必须占满按乘法或访存指令定出来的整个周期。
这就是 5.2.1 说的”要求整齐就得按最慢的来”,在本章第二次出现。 单周期方案里,浪费的比例等于”平均指令时间 / 最慢指令时间”的差额,通常相当可观。
还有一条不常被强调但很重要的限制:单周期方案里每个功能部件在一个周期内只能被用一次。取指要访存、取数也要访存,而它们在同一个周期里——所以必须有两套存储器接口(指令存储器与数据存储器分开),否则冲突。这就是哈佛结构在教学 CPU 里常被采用的原因。
多周期方案
把一条指令拆成若干步,每一步占一个时钟周期。
- 优点:
大幅缩短——现在被绑架的是”最慢的一步”而不是”最慢的一条指令”,而一步比一条指令小得多。而且简单指令可以少用几个周期,不必陪着复杂指令一起等。 - 代价:需要状态机记住”现在做到第几步了”(就是 5.2.1 那四个触发器),控制器复杂了;还需要额外的寄存器在步与步之间存住中间结果(暂存器 T、Y、Z 的由来,见 5.1.2)。
多周期方案下,功能部件可以被复用——取指用一次存储器,取数再用一次,因为它们在不同的时钟周期。所以多周期 CPU 只要一套存储器接口。
流水线方案
在多周期的基础上,让各段同时为不同的指令服务。
这是把前两种方案的优点合并:
“流水线提高吞吐率而不缩短单条指令延迟”这句话,在这里第一次出现,5.6 会反复用它。 参见 5.6.1。
三方案对性能公式的影响
| 方案 | 说明 | |||
|---|---|---|---|---|
| 单周期 | 相同 | 1 | 最长指令 | CPI 最优, |
| 多周期 | 相同 | 最长阶段 | CPI 变差, | |
| 流水线 | 相同 | 最长流水段 | 两项都好,代价是硬件复杂 |
IC 三者完全相同——因为三种方案执行的是同一个程序、同一套指令集。 这一点常被忽略,但它正是能把三者放在一起比的前提:只有 IC 固定,CPI 和
对照 4.4.3:CISC 与 RISC 的比较之所以困难,恰恰是因为它们三个因子全在变(RISC 的 IC 更大、CPI 更小、
为什么单周期方案还要讲
单周期在真实处理器里基本不用,但它在考试和教学里有两个不可替代的位置:
- 它是流水线的对照组。 5.6 算加速比时的分母,常常就是”不流水的情况”,而那正是把各段串起来一次做完——即单周期式的执行。
- 它把”控制信号在整个周期内保持不变”这件事说清楚了。 多周期和流水线下,同一根控制线在不同拍上取值不同,这才需要时序系统;理解了单周期不需要时序,就理解了时序系统到底在解决什么。
边界
层次辨析:三种方案的
各由什么决定
- 单周期:最复杂指令的总时间
- 多周期:最复杂阶段的时间
- 流水线:最慢流水段的时间(含段间寄存器的延迟)
三者的粒度依次变细,
依次变小。判据一句话:这个方案里,一个时钟周期最少要装下什么。
边界辨析:多周期 CPI / 流水线 CPI
- 多周期 CPI
:一条指令真的要占用 个周期,期间处理器不做别的 - 流水线理想 CPI
:一条指令仍占 个段,但每个周期都有一条指令完成 二者的 CPI 定义相同(周期数 / 指令数),差别在是否重叠。流水线的 CPI 算的是稳定状态下的吞吐,不是单条指令的延迟。
边界辨析:单周期 ≠ CPI 最优就最快
对照速查
| 说法 | 判断 |
|---|---|
| 单周期处理器的 CPI 等于 1 | ✅ |
| 单周期处理器速度最快 | ❌ 时钟周期被最慢指令绑架 |
| 多周期处理器不同指令的 CPI 可以不同 | ✅ 这正是它的优势 |
| 多周期处理器需要状态机 | ✅ 要记住做到第几步 |
| 单周期处理器需要两套存储器接口 | ✅ 取指与取数在同一周期 |
| 流水线缩短了单条指令的执行时间 | ❌ 缩短的是平均每条指令的时间(吞吐) |
| 三种方案的指令条数 IC 相同 | ✅ 同一程序、同一指令集 |
考点
- 三方案的 CPI 与
对照:选择题直接问,靠上表。 - “单周期为什么慢”:答时钟周期取最长指令的执行时间,简单指令被迫等待。
- 给各段延迟求三种方案下的执行时间:典型题给出取指 200ps、译码 100ps、执行 200ps……求单周期
(求和)、多周期 (取最大)、流水线 (取最大 + 寄存器延迟)。 - 接 5.6:流水线加速比
里的分母就是本节的单周期式执行,见 5.6.4。
链接
- 🏠 返回总览:计算机组成原理第 5 章:中央处理器总览
- ⬅️ 上一节:5.2.2 指令周期的数据流
- ➡️ 下一节:5.3.1 数据通路的功能
- 🚀 完整展开:5.6.1 指令流水线的基本概念
- 📐 性能公式:1.3.1 计算机的主要性能指标
- 🔗 三因子方向相反的反例:4.4.3 CISC 和 RISC 的比较
- 📖 名词库:第 5 章名词库