首页 文章

CPU Pipeline:如何查找平均指令执行时间

提问于
浏览
0

在具有由提取,解码,执行和回写组成的四(4)级流水线的CPU中,每个级分别需要10,6,8和8 ns . 以下哪项是CPU的近似平均指令执行时间(纳秒)(ns)?这里,要执行的指令的数量足够大 . 此外,流水线处理过程的开销可以忽略不计,并忽略所有危险的延迟影响 .

a)6 b)8 c)10 d)32

答案是10ns . 但我认为它可能是8ns,因为执行阶段需要8ns.please解释简单 . 谢谢

2 回答

  • 1

    每条指令必须通过四个阶段 . 一旦管道满了,指令流入和流出由最长阶段的持续时间决定:

    Fetch|Decode|Exec|Write|
                 10ns | 6ns  |8ns | 8ns |
                 -----+------+----+-----+
    I7 I6 I5 -->  I4  : I3   : I2 : I1    --> out
                 -----+------+----+-----+
    
    I1..I7 are instructions. I1..I4 are in the pipeline, I5..I7 are
    waiting to enter the pipeline.
    
    • 6ns之后I3准备从Decode移动到Exec,但不能因为阶段Exec仍然被I2占用

    • 经过2ns(总共8ns)后,I1移出Write,I2从Exec移到Write,I3最终可以从Decode移到Exec

    • I4仍然阻止Fetch,所以I5无法进入

    • 经过2ns(总共10ns)I4从Fetch移动到Exec,I5可以进入 .

    你看到管道停滞直到最长的阶段完成;每10ns一条指令进入管道 . (解码阶段将占空闲时间的百分之四十,而Exec和Write阶段占20%的时间 . )

  • 2

    在流水线情况下,“产 生产环境 出的速率”由最慢的阶段决定 . 管道的其余部分工作的速度无关紧要,速率解码器的操作受到限制 . 因此,我们可以预期管道每10 ns产生一次输出 . “产生输出的速率”可以解释为平均执行时间 . 所以10 ns .

相关问题