指令流水线是现代微处理器、微控制器和CPU设计中使用的一种技术,用于提高其指令吞吐量(单位时间内可执行的指令数量)。

其主要思想是将指令微码所定义的CPU指令的处理过程(术语为"分割")划分为一系列独立的微操作步骤(也称为"微指令""微操作""微操作"),并在每个步骤的最后进行存储。这样,CPU的控制逻辑就可以以最慢一步的处理速度来处理指令,这比作为单步处理指令所需的时间快得多。

管道一词指的是每一步都承载着一条微指令(就像一滴水),每一步都与另一步相连(类比;类似于水管)。

大多数现代CPU都是由时钟驱动的。CPU内部由逻辑和存储器(倒装片)组成。当时钟信号到达时,翻转器存储其新的值,然后逻辑需要一段时间来解码翻转器的新值。然后下一个时钟脉冲到来,倒装片存储另一个值,以此类推。通过将逻辑分解成更小的片断,并在逻辑片断之间插入触发器,逻辑所需的时间(解码值到根据这些值产生有效的输出)就会减少。通过这种方式,可以减少时钟周期。
例如,将RISC流水线分成5个阶段,每个阶段之间有一组翻转器,如下所示。

  1. 指令获取
  2. 指令解码和寄存器获取
  3. 执行
  4. 内存访问
  5. 寄存器回写

带有流水线的处理器内部由各阶段(模块)组成,它们可以半独立地处理不同的微指令。每个阶段通过翻转器与下一阶段相连(就像一个"链"),这样该阶段的输出就是另一阶段的输入,直到完成处理指令的工作。这种处理器内部模块的组织方式减少了指令的整体处理时间。

非流水线架构的效率不高,因为一些CPU模块处于空闲状态,而另一个模块在指令周期内处于活跃状态。管道化并不能完全消除管道化CPU中的空闲时间,但使CPU模块并行工作可以提高指令吞吐量。

如果一个指令流水线每一个时钟周期都能接受一条新指令,就可以说它是完全流水线的。不完全流水线的流水线有等待周期,会延迟流水线的进度。