【答案解析】按顺序方式执行指令,每条指令从取指到执行共耗时12Δt,所以500条指令共耗时:12×500=6000Δt。
采用流水线方式时,系统在同一时刻可以进行第k条指令的取指,第k+1条指令的分析,第k+2条指令的执行,所以效率大大提高了。采用流水线的执行示意图如图1所示。
图1 流水线执行示意图一
平时大家看到的都是这样的示意图,但是平时我们看到的图都是笼统的。这里把所有周期都定为统一长度,这样流水线的总时间为:(n+2)×周期。如此题中为:(500+2)×5=2510。
但我们平时用的流水线计算公式是:第一条指令顺序执行时间+(指令条数-1)×周期,这个公式是怎么来的呢?
请大家看图2。
对于此题而言,关键在于指令的分析时间,周期是5Δ,而实际完成分析只需要2Δ时间,所以正常运行时空图应如图2所示,其中黑色块是分析的真实发生时间。所以采用流水线的耗时为:5+2+5×(500-1)+5=2507。
题目是按图1来计算的,计算结果为2510。