指令流水线¶
概述¶
指令流水线
将指令执行过程分解为多个子过程,并行执行,提高CPU吞吐率。
流水线基本原理¶
流水线原理
多条指令在不同阶段同时执行。
流水线阶段¶
经典5级流水线
- IF(取指): 从存储器取指令
- ID(译码): 指令译码,读寄存器
- EX(执行): 执行运算
- MEM(访存): 访问存储器
- WB(写回): 结果写回寄存器
流水线性能¶
性能指标
吞吐率¶
公式: TP = n / T
加速比¶
加速比
S = T串行 / T流水线
效率¶
效率
E = 有效时空区数 / 总时空区数
流水线相关¶
流水线相关
引起流水线停顿的因素。
结构相关¶
- 多条指令同时使用同一资源
- 解决: 资源重复设置
数据相关¶
数据相关
后续指令依赖前面指令的结果。
- RAW(写后读)
- 解决: 数据前递、暂停流水线
控制相关¶
控制相关
分支指令引起流水线断流。
- 解决: 分支预测、延迟槽