【答案解析】采用流水线方式时,系统在同一时刻可以进行第k条指令的取指,第k+ 1条指令的分析,第k+2条指令的执行,所以效率大大提高了。采用流水线的执行示意图如图13-45所示。

平时大家看到的都是这样的示意图,但是平时我们看到的图都是笼统的。这里把所有周期都定为统一长度。这样流水线的总时间为:(n+2)×周期。如此题中为
(100+2)×12=1224
但这不是最少的,为什么?先看另一个流水线总时间计算公式:
T
总=第一条指令顺序执行时间+(指令条数-1)×周期

其中,k是流水线的段数,t
i是各段的时间,n是总任务数。
这个公式是怎么来的呢?请大家结合该题数据:取指时间t
取指=8△t,分析时间t
分析= 3△t,执行时间t
执行=12△t,如图13-46所示。

其中黑的区域表示分析段空闲,根据这种方式算出来的总时间为
8+3+12+(100-1)×12=1211
这种方式的总时间为什么比图13-45的方式要少呢?这是因为在图13-45中,限定了各段的时间一样,都为最慢的那段的时间,而图13-46的方式却没有,其在执行第一条指令时,取指段节省12-8=4的时间,分析段又节省12-3=9的时间,所以总共节省了 13的时间。按图13-45方式来执行时,第一条指令的取指和分析段有时间空闲,黑色区域表示空闲,如图13-47所示。

如果取指时间t
取指=8△t,分析时间t
分析=12△t,执行时间t
执行=3△t,此时时空图将变成如图13-48所示。
