指令流水线

17 Mar 2025 | 阅读 2 分钟

流水线处理不仅可以发生在数据流中,也可以发生在指令流中。

大多数具有复杂指令的数字计算机都需要指令流水线来执行诸如获取、解码和执行指令之类的操作。

一般来说,计算机需要通过以下步骤序列来处理每条指令。

  1. 从内存中获取指令。
  2. 解码指令。
  3. 计算有效地址。
  4. 从内存中获取操作数。
  5. 执行指令。
  6. 将结果存储在适当的位置。

每个步骤都在一个特定的段中执行,并且有时不同的段可能需要不同的时间来操作传入的信息。 此外,有时两个或多个段可能需要同时访问内存,导致一个段必须等待另一个段完成内存访问。

如果将指令周期划分为持续时间相等的段,则指令流水线的组织将更有效。 这种组织最常见的例子之一是四段指令流水线。

四段指令流水线将两个或多个不同的段组合成一个段。 例如,指令的解码可以与有效地址的计算合并为一个段。

下图显示了四段指令流水线的典型示例。 指令周期分为四个段。

Instruction Pipeline

段 1

指令获取段可以使用先进先出(FIFO)缓冲器来实现。

段 2

从内存中获取的指令在第二段中解码,最终在单独的算术电路中计算有效地址。

段 3

操作数从内存中获取到第三段中。

段 4

指令最终在流水线组织的最后一段中执行。

下一主题#