我必须比较使用DLX流水线和单周期处理器执行以下代码的速度(见图)。
给予:
单周期模型中的指令需要800 ps。
流水线模型的一个阶段需要200 ps (基于MA)。
我的做法如下。
CPU时间= CPI * CC * IC 单周期: CPU时间=1* 800 ps * 10 instr。= 8000 ps。 管道: CPI =21个周期/ 10 CPI。=每条指令2.1周期 CPU时间= 2.1 * 200 ps * 10 = 4200 ps。 CPU时间单周期/ CPU时间管道= 8000/4200 = 1.9,因此流水线代码运行速度更快.
但有人说,我必须使用时钟周期,而不是时间--“一个CC花费多少时间并不重要”。
否则我看不出怎么做比较。你能帮帮我吗?

发布于 2014-06-15 03:17:38
你的分析确实是正确的,但我想你的教授正在寻找这样的解释:
假设单周期处理器也有您提到的阶段,即IF、ID、EX、MA和WB,并且指令在每个阶段花费的时间与流水线处理器版本大致相同。现在,您可以为这个单周期处理器绘制一个流水线图,并看到它在一个周期处理器上需要50个周期(一次可以工作一个指令),而在一个流水线处理器上则需要19个周期。
同样,我更喜欢您分析它的方式(因为单周期处理器实际上不会在不同的时钟周期中有这些阶段,它只是有一个非常长的时钟周期来覆盖所有的阶段)。另外,您还没有提到这是一个仅延迟的MIPS管道(您的答案是正确的),或者如果这是一个绕过-MIPS管道。如果这是后者,您可以刮掉几个周期,并将其降低到15个周期。
https://stackoverflow.com/questions/24220191
复制相似问题