我必须使用DLX管道和单周期处理器来比较以下代码的执行速度(见图)。
鉴于:
单周期模型中的指令需要800 ps
管道模型中的一个阶段需要200 ps(基于MA)
我的方法如下。
CPU时间= CPI * CC * IC
的单周期:
CPU时间= 1 * 800 ps * 10 instr。 = 8000 ps。
管道:
CPI = 21个周期/ 10个内容。 =每条指令2.1个循环
CPU时间= 2.1 * 200 ps * 10 = 4200 ps CPU时间单周期/ CPU时间管道= 8000/4200 = 1.9,因此管道代码运行速度快1.9。
但有人说,我必须处理时钟周期,而不是时间 - " CC花费多少时间"。
我不知道如何进行比较。你能帮我吗?
答案 0 :(得分:1)
你的分析确实是正确的,但我想你的教授正在寻找这样的解释:
假设单周期处理器还具有您提到的阶段,即IF,ID,EX,MA和WB,并且与流水线处理器版本相比,指令在每个阶段花费的时间大致相同。现在,您可以为这个单周期处理器绘制一个流水线图,并且看到在单周期处理器上(一次可以处理1条指令)需要50个周期,而流水线处理器上的周期为19周。
同样,我更喜欢你分析它的方式(因为单周期处理器在不同的时钟周期内不会真正拥有每个阶段,它只需要很长的时钟周期来覆盖所有阶段)。此外,您还没有提到这是否只是一个停止MIPS管道(您的答案是正确的)或者这是否是绕过的MIPS管道。如果这是后者,你可以减少几个周期并将其降低到15个周期。