抽象化的流水线结构:
- 流水线的基本概念
- 多个任务重叠(并发/并行)执行,但使用不同的资源
- 流水线技术提高整个系统的吞吐率,不能缩短单个任务的执行时间
- 其潜在的加速比=流水线的级数
- 流水线正常工作的基本条件
- 增加寄存器文件保存当前段传送到下一段的数据和控制信息
- 需要更高的存储器带宽
- 流水线的相关(hazards)问题
- 由于存在相关(hazards)问题,会导致流水线停顿
- Hazards 问题:流水线的执行可能会导致对资源的访问冲突,或破坏对 资源的访问顺序
CPU中经典的5级流水线结构:
在从左到右的指令流中有两个例外:
- 写回阶段,它把结果写回数据通路中间的寄存器堆中。
- 选择PC 的下一个值时,需在自增的 PC和MEM级的分支地址间进行选择。
这两个从右向左的数据流不会影响当前指令;只有当前指令以后的指令才会受到这种数据反向活动的影响。需要注意的是,第一个例外会导致数据冒险,而第二个会导致控制冒险。
RISC-V经典5级流水线结构
流水线的可视化
图中,Memory这一步,只有load/store会有,所以其他的指令都是pass掉的;