若每一条指令都可以分解为取指、分析和执行三步。已知取指时间t取指=5△t,分析时间t分析=2△t,执行时间t执行=5△t。如果按顺序方式从头到尾执行完500条指令需___(4)___ △t。如果按照[执行]k、[分析]k+1、[取指]k+2重叠的流水线方式执行指令,从头到尾执行完500条指令需___(5)___△t。
供选择的答案:
(4)A.5590 B.5595 C.6000 D.6007
(5)A.2492 B.2500 C.2510 D.2515
例题分析:
按顺序方式执行指令,每条指令从取指到执行共耗时12△t,所以500条指令共耗时:12*500=6000△t。
采用流水线方式时,系统在同一时刻可以进行第k条指令的取指,第k+1条指令的分析,第k+2条指令的执行,所以效率大大提高了,采用流水线的执行示意图如图一所示。
平时大家看到的,都是这样的示意图,但是平时我们看到的图都是笼统的。这里把所有周期都定为统一长度。这样流水线的总时间为:(n+2)*周期。如此题中为:(500+2)*5=2510。
但我们平时用的流水线计算公式是:
第一条指令顺序执行时间+(指令条数-1)*周期
这个公式是怎么来的呢?
请大家看图二。
对于此题而言,关键在于指令的分析时间,周期是5△,而实际完成分析只需要2△时间,所以正常运行时空图应如图二所示。其中黑色块是分析的真实发生时间。所以采用流水线的耗时为:5+2+5*(500-1)+5=2507。
题目是按图一来计算的,计算结果为2510。
例题答案:
(4)C (5)C
微信扫码关注
更新实时通知