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

时间:2017-01-18 02:13:23

标签: pipeline cpu-architecture

在具有四(4)阶段管道的CPU中,由fetch,decode,execute和write组成 回来,每个阶段分别需要10,6,8和8 ns。以下哪一项是 CPU中近似平均指令执行时间(纳秒)(ns)?在这里, 要执行的指令数量足够大。另外,开销也是如此 流水线处理过程可以忽略不计,忽略所有危险的延迟影响。

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

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

2 个答案:

答案 0 :(得分:2)

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

             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仍在阻止抓取,因此I5无法进入

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

你看到管道一直停止,直到最长的阶段完成;每10ns一条指令进入管道。 (Decode阶段将占空闲时间的40%,Exec和Write阶段占20%的时间。)

答案 1 :(得分:1)

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