流水线技术:CPU如何同时处理多条指令
工厂里的流水线你一定见过:一个产品经过多个工位,每个工位负责一道工序。当第一个产品进入第二道工序时,第二个产品已经可以在第一道工序加工了。
CPU也用了一模一样的思路——流水线技术(Pipeline)。
今天咱们来看看CPU是怎么通过流水线"同时"处理多条指令的。
没有流水线时怎么办?
回顾一下,CPU执行一条指令要经过五个阶段:
- 取指(F):从内存取出指令
- 译码(D):解释指令要做什么
- 执行(E):ALU执行运算
- 访存(M):读写内存数据
- 写回(W):结果写回寄存器
如果没有流水线,CPU必须把一条指令的所有步骤做完,才能开始下一条。就像工厂里一个人干完所有工序再做下一个产品——效率极低。
假设每个阶段需要1个时钟周期,执行一条指令需要5个周期。三条指令就需要15个周期。
有了流水线后
流水线的核心思想:把五个阶段分开,让不同的硬件单元同时工作。
当第一条指令在执行阶段(E)时:
- 第二条指令可以在译码阶段(D)
- 第三条指令可以在取指阶段(F) </