流水线会影响时钟时间还是每条指令周期(CPI)?

时间:2018-12-02 07:55:20

标签: pipeline cpu-architecture instructions

我的书中提到“根据您认为的基准,减少可以看作是减少每条指令的时钟周期数(CPI),减少时钟周期时间或两者结合。是一个处理器,每个指令占用多个时钟周期,因此流水线通常被视为降低了CPI。”

我无法理解的是,流水线会影响CPI或时钟周期,因为在流水线的情况下,时钟周期被视为最大Stage-delay + Latch-delay,因此流水线会影响时钟时间。它还影响CPI,因为在流水线情况下该值为1。我是否缺少某些概念?

1 个答案:

答案 0 :(得分:1)

执行一条指令需要一组操作。为了简单起见,假设有5个: 获取指令解码执行内存访问写回。

这可以通过几种方案来实现。

A /单周期处理器

方案如下: 处理器提取一条指令,将其定向到控制一组多路复用器的解码器,该多路复用器将配置将实现该指令的大型组合数据路径。

在此模型中,每条指令需要一个周期,并且假设所有5个“阶段”都需要相等的时间t,则周期将为5t。 因此CPI = 1,T = 5

实际上,这或多或少是40年代后期早期计算机的基本模型。除此之外,还没有真正的处理器能做到这一点,但是从理论上讲它是可行的。

B /多周期处理器

与先前的模型相比,您在数据路径上引入了寄存器。第一个获取指令并将其发送到自动机的输入,该自动机将依次应用计算“阶段”。

在这种情况下,指令需要5个周期(可能稍短一些指令,因为某些指令可能更简单,例如跳过内存访问)。周期为1t(考虑到寄存器遍历时间,可能更长一些)。

CPI = 5,T = 1

第一台“真正的”计算机就是这样实现的,这是直到80年代初期的主要体系结构模型。如今,一些微控制器或较简单的NIOS版本仍在依赖此方案。

C /管道处理器

您可以在各阶段之间添加额外的寄存器,以便跟踪指令和所有部分结果。在这种情况下,每个阶段的执行可以是独立的,您可以在不同阶段同时执行几条指令。

CPI变为1,因为您可以在每个时钟周期开始一条新指令(由于危险而可能要多一点,但这又是另一回事了)。 并且T = 1。

所以CPI = 1,T = 1

(CPI反映了吞吐量的增加,但是一条指令的执行时间却没有减少)

因此,可以将管道视为减少方案A的周期时间,或将CPI减少至方案B的周期。您还可以想象一个中间方案(例如3个阶段,周期为2),其中管线将减少两者。