Skip to content

流水线基本概念与性能指标

考情分析

流水线性能指标计算是408考研的必考大题类型,几乎每年出现。吞吐率、加速比、效率的公式及其在各种情况(含相关/冒险)下的计算是核心考点。

流水线的基本思想

将指令的执行过程分为多个阶段,每个阶段由专用硬件完成,多条指令同时处于不同阶段

类比流水线装配工厂:同一时刻,装配线上有多件产品处于不同工序,整体吞吐量远高于串行处理。

五段流水线

标准的五级流水线(经典 MIPS 流水线):

阶段缩写操作
取指IF从指令存储器取指令,PC+4
译码/读寄存器ID译码操作码,读寄存器堆
执行EXALU 运算或计算存储器地址
访存MEM读/写数据存储器(不访存的指令空操作)
写回WB将结果写回寄存器堆

流水线的逻辑结构

每个流水段之后必须设置流水段寄存器(也叫锁存器、段间寄存器),用于保存该阶段的输出结果,供下一阶段在下个时钟周期使用。

  IF  →  IF/ID  →  ID  →  ID/EX  →  EX  →  EX/MEM  →  MEM  →  MEM/WB  →  WB
         寄存器          寄存器           寄存器             寄存器

段间寄存器的作用:

  • 隔离相邻流水段,使各段在同一时刻可以处理不同指令
  • 锁存中间结果,确保数据在下个时钟上升沿到来时才传递给下一段

段间寄存器本身有一定的延迟。时钟周期 = 最慢流水段的延迟 + 段间寄存器延迟:

Δt=max(Δt1,Δt2,,Δtk)+t寄存器

流水线不能缩短单条指令的执行延迟——单条指令仍需经过全部 k 个段,总延迟为 kΔt,甚至可能比非流水线的情况更长(因为 Δt 按最慢段取值,各段不一定等长)。流水线提升的是吞吐率——当流水线满载运行时,每个时钟周期都有一条指令完成。

流水线时空图

以连续 5 条指令为例(每段耗时 Δt):

        Δt  2Δt  3Δt  4Δt  5Δt  6Δt  7Δt  8Δt  9Δt
I1      IF   ID   EX  MEM   WB
I2           IF   ID   EX  MEM   WB
I3                IF   ID   EX  MEM   WB
I4                     IF   ID   EX  MEM   WB
I5                          IF   ID   EX  MEM   WB

完成 5 条指令共需 (5+51)×Δt=9Δt

一般地,k 段流水线执行 n 条指令,完成时间为:

T=(k+n1)Δt

其中 Δt 为流水线每段的时钟周期(取各段中最长的)。

性能指标

吞吐率(Throughput Rate, TP)

单位时间完成的指令条数:

TP=n(k+n1)Δt

nk 时,TP1Δt(趋近最大吞吐率)。

最大吞吐率:

TPmax=1Δt

加速比(Speedup, S)

与不使用流水线(顺序执行)相比的速度提升倍数:

S=顺序执行时间流水线执行时间=knΔt(k+n1)Δt=knn+k1

nk 时,Sk(趋近流水线段数,即理想加速比)。

效率(Efficiency, E)

各流水段的利用率,反映硬件资源是否被充分利用:

E=Sk=nn+k1

效率 E 表示流水线各级功能部件的平均利用率,0<E1

nk 时,E1(接近100%利用率)。

各指标关系

S=kETP=nT,S=knΔtT,E=Sk

例题

例1:5 段流水线,每段时间均为 2ns,执行 100 条指令,求吞吐率 TP、加速比 S 和效率 E。

解:k=5n=100Δt=2ns

T=(5+1001)×2=104×2=208 nsTP=1002084.81×108 条/sS=5×100100+51=5001044.81E=100100+51=10010496.2%

不使用流水线时:T顺序=100×5×2=1000 ns,验证 S=1000/2084.81,一致。

例2:某4级流水线,各段延迟为 60ps, 80ps, 70ps, 90ps,锁存器延迟 10ps。求时钟周期和最大吞吐率。

解:Δt=max(60,80,70,90)+10=100ps

TPmax=1100ps=1010 条/秒 = 10 GIPS

注意不是各段延迟之和(300ps),而是取最慢段加锁存器延迟。

例3:某6级流水线执行 n 条指令的加速比为 4.8,求 n

解:S=6n6+n1=4.8

6n=4.8(n+5)=4.8n+241.2n=24n=20

流水线的分类

分类标准类型说明
按级别部件级流水线ALU 内部流水(如浮点加法器)
处理机级流水线指令执行级别(IF-ID-EX-MEM-WB)
处理机间流水线多台处理机串接,宏流水线
按功能单功能流水线只完成一种功能(如定点加法)
多功能流水线可配置为多种功能
按可否并行静态流水线同一时刻只能按一种功能工作
动态流水线各段可同时按不同功能工作
按有无反馈线性流水线数据从头到尾单向流动,无反馈
非线性流水线存在反馈回路,某些段多次经过

408 中最常考的是处理机级、线性、静态流水线。

流水线的瓶颈

若各段执行时间不等,时钟周期由最慢的一段决定:

Δt=max(Δt1,Δt2,,Δtk)

设计目标:尽量使各段时间均等(均衡化),以充分发挥流水线性能。

交互可视化

加载可视化中...

易混淆知识点

1. 流水线段数越多越好吗?

不是。段数增多意味着:①段间寄存器引入更多延迟,限制时钟周期进一步缩短;②单条指令经历的周期数增加,延迟变大;③数据/控制冒险的停顿代价更大(错误指令更多);④控制逻辑急剧复杂。实际设计中段数是性能和复杂度的折中。

2. 各段时间不等时,Δt 怎么取?

最慢段的延迟(+ 段间寄存器延迟)。那些比最慢段快的流水段在每个周期内会有空闲,这就是流水线瓶颈带来的效率损失。设计时应尽量让各段时间均衡。

3. 为什么流水线适合 RISC 而非 CISC?

流水线要求指令长度统一、格式规整、采用 LOAD/STORE 架构(只有访存指令访问内存)。RISC 天然满足这些条件。CISC 指令长度不等、寻址方式复杂,难以划分均匀的流水段。

考点清单

  • T=(n+k1)Δt(无冒险时);顺序执行 T=nkΔt
  • 最大吞吐率 TPmax=1/Δt,当 nk 时趋近
  • 加速比最大值为 k(流水线段数),实际加速比小于 k
  • 效率 = 加速比 / 段数,也等于时空图中"阴影面积/总面积"
  • 若各段时间不等,需先确定瓶颈段时间作为统一的 Δt
  • 流水线不缩短单条指令的延迟,只提升吞吐率
  • 段间寄存器延迟需计入时钟周期

真题练习

相关真题(6题)

2026Q20选择题2分

单周期、多周期、流水线数据通路与CPI的关系

2020Q17选择题2分

不同CPU结构理想CPI的比较

2018Q20选择题2分

流水线时钟周期由最长功能段+寄存器延时决定

2017Q19选择题2分

指令流水线数据通路的组成

2011Q18选择题2分

有利于流水线实现的指令系统特征

2009Q18选择题2分

流水线时钟周期由最长功能段决定