流水线中的时钟周期和单时钟周期实现

Clock cycle in pipelining and single-clock cycle implementation

有两种执行指令的机制。

  1. 单时钟周期实现
  2. 流水线。

在 MIPS 体系结构中(来自 Computer organization and design 一书),指令有 5 个阶段。

因此,在单时钟周期实现中,这意味着在一个时钟周期内,一条指令执行 5 个阶段。

例如加载指令(它有5个阶段)在一个时钟周期内执行。所以其他指令可以在这个时钟周期之后执行。 假设一个时钟周期为 10 秒。

现在,在流水线中,多条指令可以重叠。与上面示例中的一个时钟周期的时间相比,我对这个概念感到困惑。

这里要执行5条指令,需要9个时钟周期。意思是执行5条指令,需要90秒。但在单时钟周期实现中,执行5条指令只需要50秒。流水线需要更多的时钟周期。(不好)我想错了吗?还是我遗漏了什么??

这里,因此,要执行第一条指令 lw , 20(),需要 50 秒??

我认为您的主要误解是您认为两种设计中时钟周期的持续时间相同,但事实并非如此。 让我们将单周期设计中的时钟周期表示为 X,将流水线设计中的时钟周期表示为 Y。 在单周期设计中,5 条指令将花费 5X 个周期,而在流水线设计中,这将花费 9Y 个周期。

现在我们需要找到XY之间的关系。 现在想想你只有一条指令要执行的情况。 在单周期设计中,这将需要 X 个周期,而在流水线设计中,这将需要 5Y。如果两者的时钟频率相同,X 应该等于 5Y.

现在让我们做一些替换数学:-)

单周期 - 5X

管道 - 9Y

代入 X = 5Y

单周期 - 25Y

管道 - 9Y

给你。单周期设计比多周期设计慢 2.7 倍。