1.6 流水线技术
📝 学习目标
- 理解流水线为何能提高部件利用率(准并行)
- 掌握三个核心量:流水线建立时间、流水线周期、总执行时间
- 会算吞吐率(Throughput)与最大吞吐率
- 记住做题策略:默认用理论公式,若无选项再用实践公式(课堂提示)
🎯 知识点
1) 什么是流水线
把一条指令的执行过程划分为若干段(K 段),不同指令在不同段上“交叠执行”。
常见三段:
- 取指(Fetch)
- 分析/译码(Decode)
- 执行(Execute)
课堂强调:流水线不是“齐头并进的完全并行”,而是“准并行”。
2) 流水线周期(Pipeline cycle)
- 把一条指令划分为 K 段,每段耗时分别为
t1, t2, ..., tK - 流水线周期 Tp = max(t1..tK)(最长段决定节拍)
3) 流水线执行时间(理论公式)
执行 N 条指令:
T = (t1 + t2 + ... + tK) + (N - 1) * Tp含义:
- 第一条指令要走完整 K 段(建立时间)
- 后面每条指令“每个周期完成一条”
4) 实践公式(当题目按“统一节拍”处理时)
有些题默认每段都扩展到同样的周期 Tp(存在空耗)。
T = K * Tp + (N - 1) * Tp
= (K + N - 1) * Tp课堂策略:
- 先用理论公式,若结果不在选项中,再考虑实践公式。
5) 吞吐率与最大吞吐率
- 吞吐率:单位时间完成任务数
TP = N / T- 最大吞吐率(流水线稳定后):
TPmax = 1 / Tp🧠 难点与易错点
- 易错1:流水线周期不是平均值,是最长段
- 易错2:把 N 条指令总时间误写成
N * Tp - 易错3:忽略题目段数 K(有些题分 4 段/5 段)
🔑 关键词解释
- 建立时间:第一条指令完成所需时间(理论:sum(ti))。
- 排空时间:最后阶段退出流水线的尾部时间(体现在 N-1 部分)。
🔍 联想扩展
- RISC 更适合流水线:定长、单周期、控制简单。
- 流水线题常结合“取指/译码/执行”三段来描述。
🧪 例题(按难度)
简单(3题)
指令流水线划分为 K 段,各段耗时分别为 t1~tK,则流水线周期 Tp 通常取:
下列关于流水线的说法正确的是:
在流水线稳定后,最大吞吐率 TPmax 的典型表达式是:
中级(3题)
例题1(课堂例:理论公式)
一条指令分为 3 段:取指 3Δt、分析 2Δt、执行 4Δt。采用流水线执行 10 条指令。
求总执行时间(理论公式)。
选择正确结果:
例题2(最大吞吐率)
若某流水线周期 Tp=5ms,则最大吞吐率约为:
选择最大吞吐率:
若题目默认各段都按同一周期 Tp 执行(存在空耗),总执行时间更常用的表达式是:
困难(1题)
仍以例题1为例(3 段:3Δt、2Δt、4Δt,执行 10 条指令)。若不采用流水线,按顺序执行每条指令耗时为 `3+2+4=9Δt`,则采用理论流水线后的加速比 S 约为:
📚 本课小结
- Tp = max(ti)
- 理论:T = sum(ti) + (N-1)*Tp
- 实践:T = (K+N-1)*Tp(必要时再用)
- TP=N/T,TPmax=1/Tp