指令流水线

编辑
本词条由“匿名用户” 建档。

在计算机工程中,指令流水线或ILP是一种在单个处理器内实现指令级并行性的技术。流水线试图通过将传入的指令分成一系列顺序步骤(同名流水线)来使处理器的每个部分都忙于执行某些指令,这些步骤由不同的处理器单元执行,并行处理指令的不同部分。 在流水线计算机中,指令分阶段流经中央处理器(CPU)。例如,冯·诺依曼循环的每个步骤可能有一个阶段:获取指令、获取操作数、执行指令、写入结果。流水线计算机通常在每个阶...

指令流水线

编辑

计算机工程中,指令流水线或 ILP 是一种在单个处理器内实现指令级并行性的技术。 流水线试图通过将传入的指令分成一系列顺序步骤(同名流水线)来使处理器的每个部分都忙于执行某些指令,这些步骤由不同的处理器单元执行,并行处理指令的不同部分。

概念与动机

编辑

在流水线计算机中,指令分阶段流经中央处理器 (CPU)。 例如,冯·诺依曼循环的每个步骤可能有一个阶段:获取指令、获取操作数、执行指令、写入结果。 流水线计算机通常在每个阶段之后都有流水线寄存器。 这些存储来自指令和计算的信息,以便下一级的逻辑门可以执行下一步。

这种安排让 CPU 在每个时钟周期完成一条指令。 通常偶数级在方波时钟的一个边沿上运行,而奇数级在另一边沿上运行。 在给定的时钟速率下,这比多周期计算机允许更多的 CPU 吞吐量,但由于流水线过程本身的额外开销,可能会增加延迟。 此外,即使电子逻辑具有固定的xxx速度,流水线计算机也可以通过改变流水线中的级数来变得更快或更慢。 阶段越多,每个阶段所做的工作就越少,因此该阶段来自逻辑门的延迟就越少,并且可以以更高的时钟速率运行。

当成本以每秒每条指令的逻辑门来衡量时,流水线计算机模型通常是最经济的。 在每一时刻,一条指令仅处于一个流水线阶段,平均而言,一个流水线阶段的成本低于多周期计算机。 此外,如果做得好,大多数流水线计算机的逻辑大部分时间都在使用。 相比之下,乱序计算机通常在任何给定时刻都有大量空闲逻辑。 类似的计算通常表明,流水线计算机每条指令使用的能量更少。

然而,流水线计算机通常比类似的多周期计算机更复杂、成本更高。 它通常有更多的逻辑门、寄存器和更复杂的控制单元。 以类似的方式,它可能使用更多的总能量,同时每条指令使用更少的能量。 乱序的 CPU 通常每秒可以执行更多的指令,因为它们可以一次执行多条指令。

在流水线计算机中,控制单元按照程序命令安排流程开始、继续和停止。 指令数据通常在流水线寄存器中从一个阶段传递到下一个阶段,每个阶段都有一些分离的控制逻辑。 控制单元还保证每一级的指令不会损害其他级指令的运行。 例如,如果两个阶段必须使用同一块数据,则控制逻辑会确保使用以正确的顺序完成。

当高效运行时,流水线计算机在每个阶段都会有一条指令。 然后它同时处理所有这些指令。 它可以在其时钟的每个周期内完成大约一条指令。 但是当程序切换到不同的指令序列时,管道有时必须丢弃处理中的数据并重新启动。 这叫做摊位。

流水线计算机的大部分设计都可以防止阶段之间的干扰并减少停顿。

步数

依赖步骤的数量因机器架构而异。 例如:

  • 1956–61 年的 IBM Stretch 项目提出了获取、解码和执行这些术语,这些术语已经变得很普遍。
  • 经典 RISC 流水线包括:
  • 指令获取
  • 指令解码和寄存器获取
  • 执行
  • 内存访问
  • 注册回写
  • Atmel AVR 和 PIC 微控制器各有一个两级流水线。
  • 许多设计包括长达 7、10 甚至 20 个阶段的流水线。

指令流水线

随着流水线变得更深(具有更多的相关步骤),可以使用更简单的电路来实现给定的步骤,这可以让处理器时钟运行得更快。 这样的流水线可以称为超级流水线。

如果处理器可以在每个周期获取一条指令,则称其为完全流水线处理器。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/196077/

(1)
词条目录
  1. 指令流水线
  2. 概念与动机
  3. 步数

轻触这里

关闭目录

目录