流水线操作会影响每条指令的时钟时间或周期(CPI)吗



我的书中提到"根据你认为的基线,减少可以被视为减少每条指令的时钟周期数(CPI(、减少时钟周期时间或组合。如果起点是一个处理器,每条指令占用多个时钟周期,则流水线通常被视为降低CPI。">

我不明白的是流水线会影响CPI或时钟周期,因为在流水线的情况下,时钟周期被视为最大级延迟+锁存延迟,所以流水线确实会影响时钟时间。它还影响CPI,因为在流水线的情况下它变为1。我是不是错过了一些概念?

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

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

A/Mono循环处理器

方案如下:处理器获取指令,将其引导到解码器,解码器控制一组多路复用器,多路复用器将配置一个大型组合数据路径来实现指令。

在这个模型中,每条指令都需要一个周期,假设所有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的周期时间wrt,或者将CPI,wrt减少到方案B。你也可以想象一个中间方案(比如3个阶段,周期为2(,管道将同时减少这两个阶段。

最新更新