单选题 每一条指令都可以分解为取指、分析和执行3步。已知取指时间t 取指 =5Δt,分析时间t 分析 =2Δt,执行时间t 执行 =5Δt。如果按顺序方式从头到尾执行完500条指令需______Δt。如果按照[执行]k、[分析]k+1、[取指]k+2重叠的流水线方式执行指令,从头到尾执行完500条指令需______Δt。
【正确答案】 C
【答案解析】
【正确答案】 C
【答案解析】按顺序方式执行指令,每条指令从取指到执行共耗时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。