20
2019
11

流水线指令执行

若每一条指令都可以分解为取指、分析和执行三步。已知取指时间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条指令的执行,所以效率大大提高了,采用流水线的执行示意图如图一所示。图片1.png



  



  平时大家看到的,都是这样的示意图,但是平时我们看到的图都是笼统的。这里把所有周期都定为统一长度。这样流水线的总时间为:(n+2)*周期。如此题中为:(500+2)*5=2510。

  但我们平时用的流水线计算公式是:

  第一条指令顺序执行时间+(指令条数-1)*周期

  这个公式是怎么来的呢?

请大家看图二。

  

图片2.png



  对于此题而言,关键在于指令的分析时间,周期是5△,而实际完成分析只需要2△时间,所以正常运行时空图应如图二所示。其中黑色块是分析的真实发生时间。所以采用流水线的耗时为:5+2+5*(500-1)+5=2507。

  题目是按图一来计算的,计算结果为2510。

  例题答案:

  (4)C (5)C  

 


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。