流水线会影响时钟时间还是每条指令的周期(CPI)? [英] Pipelining affects the clock time or cycle-per-instruction(CPI)?

查看:16
本文介绍了流水线会影响时钟时间还是每条指令的周期(CPI)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

我不能理解的是流水线会影响CPI或时钟周期,因为在流水线的情况下,时钟周期被视为最大阶段延迟+锁存延迟,所以流水线确实会影响时钟时间。此外,它还会影响CPI,因为在流水线的情况下,它会变为1。我是不是错过了什么概念?

推荐答案

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

这可以通过几个方案实现。

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、WRT降低到方案B。你还可以想象一个中间方案(比方说3个阶段,周期为2),其中管道将同时减少这两个方案。

这篇关于流水线会影响时钟时间还是每条指令的周期(CPI)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆