【问题标题】:Pipeline processor vs. Single-cycle processor流水线处理器与单周期处理器
【发布时间】:2014-08-04 21:23:02
【问题描述】:

我必须比较使用 DLX 流水线和单周期处理器的以下代码的执行速度(见图)。

鉴于:
单周期模型中的一条指令需要 800 ps
流水线模型中的一个阶段需要 200 ps(基于 MA)

我的方法如下。

CPU 时间 = CPI * CC * IC
单周期:
CPU 时间 = 1 * 800 ps * 10 指令。 = 8000 ps。
管道:
CPI = 21 个周期 / 10 个仪器。 = 每条指令 2.1 个周期
CPU 时间 = 2.1 * 200 ps * 10 = 4200 ps。
CPU 时间单周期/CPU 时间管道 = 8000/4200 = 1.9,所以管道代码运行速度快 1.9。

但有人说,我必须使用时钟周期而不是时间——“CC 花费多少时间并不重要”。

我不知道如何进行比较。你能帮帮我吗?

【问题讨论】:

    标签: cpu pipeline cpu-registers computer-architecture mips32


    【解决方案1】:

    您的分析确实是正确的,但我猜您的教授正在寻找这样的解释:

    假设单周期处理器也有您提到的阶段,即 IF、ID、EX、MA 和 WB,并且与流水线处理器版本相比,指令在每个阶段花费的时间大致相同。现在您可以为这个单周期处理器绘制一个流水线图,并看到与流水线处理器上的 19 个周期相比,单周期处理器(一次可以处理 1 条指令)需要 50 个周期。

    再次,我更喜欢您分析它的方式(因为单周期处理器实际上不会在不同的时钟周期中拥有每个阶段,它只会有一个非常长的时钟周期来覆盖所有阶段)。此外,您还没有提到这是否是仅停止的 MIPS 管道(您的答案是正确的),或者这是否是绕过的 MIPS 管道。如果是后者,您可以再减少几个周期并将其减少到 15 个周期。

    【讨论】: