指令流水线
把一条指令的执行拆成多个阶段并重叠起来,是提高吞吐的经典手段。代价是冒险与停顿。
把一条指令的执行拆成多个阶段并重叠起来,是提高吞吐的经典手段。代价是冒险与停顿。
1. 经典五级流水线
IF → ID → EX → MEM → WB
取指 译码 执行 访存 写回
理想情况下每周期完成一条指令(CPI 趋近 1)。
2. 三类冒险
- 结构冒险:硬件资源冲突
- 数据冒险:后一条依赖前一条结果(靠转发 / 停顿解决)
- 控制冒险:分支导致取指方向不确定(靠分支预测缓解)
把一条指令的执行拆成多个阶段并重叠起来,是提高吞吐的经典手段。代价是冒险与停顿。
把一条指令的执行拆成多个阶段并重叠起来,是提高吞吐的经典手段。代价是冒险与停顿。
IF → ID → EX → MEM → WB
取指 译码 执行 访存 写回
理想情况下每周期完成一条指令(CPI 趋近 1)。