每一条指令都可以分解为取指、分析和执行三步。已知取指时间t取指=5△t,分析时间t分析=4△t,执行时间t执行=5△t。如果按顺序方式从头到尾行完100条指令需(25)△t。如果按照[执行]k、[分析]k+1、[取指]k+2重叠的流水线方式执行指令,从头到

admin2019-03-11  23

问题 每一条指令都可以分解为取指、分析和执行三步。已知取指时间t取指=5△t,分析时间t分析=4△t,执行时间t执行=5△t。如果按顺序方式从头到尾行完100条指令需(25)△t。如果按照[执行]k、[分析]k+1、[取指]k+2重叠的流水线方式执行指令,从头到尾执行完500条指令需(26)△t。
(26)

选项 A、2492
B、2500
C、2510
D、2515

答案C

解析 按顺序方式执行指令,每条指令从取指到执行共耗时14△t,所以100条指令共耗时:14×100=1400△t。
    采用流水线方式时,系统在同一时刻可以进行第k条指令的取指,第k+1条指令的分析,第k+2条指令的执行,所以效率大大提高了。采用流水线的执行示意图如图6-2所示。

    平时大家看到的都是这样的示意图,但是平时我们看到的图都是笼统的。这里把所有周期都定为统一长度,这样流水线的总时间为:(n+2)×周期。如此题中为(100+2)×5=510,这种算法是在实际应用中常用的,但考试中,更喜欢以下面这第二种算法来进行计算。
    即流水线计算公式是:第一条指令顺序执行时间+(指令条数-1)×周期,这个公式是怎么来的呢?请大家见图6-3。

    对于此题而言,关键在于指令的分析时间,周期是5△t,而实际完成分析只需要4△t时间,所以正常运行时空图应如图6-3所示,其中黑色块是分析的真实发生时间。所以采用流水线的耗时为5+4+5×(100-1)+5=509。
    从本题的答案来看,题目是按图6-2来计算的,计算结果为510。在考试中,首先以第二种方式进行计算,如果没有答案,则再按第一种方法计算,如果按第二种算法得到的结果在选项中,则选择该项即可。
转载请注明原文地址:https://kaotiyun.com/show/H0RZ777K
0

最新回复(0)