389 字
2 分钟
流水线
概念
将指令执行过程划分为不同的阶段,占用不同的资源,使得多条指令同时执行。
经典五段式划分
FDEMW 译码阶段要取操作数
表示法
- 执行过程图
- 时空图
指标
- 吞吐率
- 加速比
冒险
结构冒险
- 停顿流水线,译码时对冒险进行分析,判断本条指令是否会造成结构冒险,如果会则让这条指令在译码阶段停住,直到某个周期该问题消失再让这条指令送往下一个流水段
- 设置独立的部件
数据冒险(RAW)
- 停顿流水线,译码时对冒险进行分析,判断本条指令是否会造成数据冒险,如果会则让这条指令在译码阶段停住,直到某个周期该问题消失再让这条指令送往下一个流水段
- 旁路转发,把输出转发到流水线寄存器
- use-load不能靠转发实现,要停顿一个周期
控制冒险
- 停顿流水线,在测试条件求完值之后才能确定走哪条分支
- 分支预测
高级流水线
- 乱序发射
- 多发射
- 超流水线 增加流水线段数
- 超长指令字 由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条,具有多个操作码字段的超长指令字(可达几百位)
