一条指令的执行过程可以分为多个阶段。 图8.1把一条指令的执行过程分为取指令、指令分析和指令执行3个阶段。

  取指令是按照指令计数器的内容访问主存储器,取出一条指令送到指令寄存器。指令分析是指对指令的操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的地址,并用这个地址读取操作数。指令执行是指根据操作码的要求,完成指令规定的功能,在此期间,要把运算结果写到寄存器或主存储器中。因此,在指令执行过程的三个阶段都可能要访问主存储器。另外,在指令分析或指令执行过程中还要完成指令计数器的更新,为读取下一条指令作好准备。
  指令执行过程的阶段数量和各断的功能根据不同的处理方式是不同的。如有的计算机指令执行过程分为:取指、译码、执行、访存和写回(主存)等5个阶段。
图 8.1 一条指令的执行过程
 

  当有多条指令要在处理机中执行时,可以有多种执行方式:
  (1) 顺序执行方式。指令的执行过程如图8.2(a)所示。采用顺序执行方式执行n条指令所用的时间为:

  如果取指令、分析指令和执行指令的时间都相等,每段的时间都为t,则执行n条指令所用的时间为:
      T=3nt
  顺序执行方式的优点: 控制简单,节省设备。
  顺序执行方式的缺点:处理机执行指令的速度慢;功能部件的利用率很低。
图 8.2 指令的几种执行方式
 

  (2) 一次重叠执行方式。如8.2(b)图所示,把执行第k条指令与取第k+1条指令同时进行。如果执行一条指令的三个阶段的时间均相等,则执行n条指令所用的时间为:
     T=(1+2n)t
  一次重叠执行方式的优点: 程序的执行时间缩短了近一倍;功能部件的利用明显提高,主存储器可以基本上处于忙碌状态,其它功能部件的利用率也得到提高。
  一次重叠执行方式的缺点: 需要增加一些硬件,控制过程也要复杂一些。
  (3) 二次重叠执行方式。为了进一步提高指令的执行速度,可以把取第k+1条指令提前到与分析第k条指令同时进行,同样,分析第k+1条指令与执行第k条指令同时进行,如图 8.2(c)所示。如果执行一条指令的三阶段的时间均相等,则执行n条指令所用的时间为:
     T=(2+n)t
  采用二次重叠执行方式能够使指令的执行时间缩短近两倍,这是一种理想的指令执行方式。在正常情况下,处理机中同时有三条指令在执行。
  上面介绍的指令重叠执行方式实际上就是指令流水线。指令流水线是多条指令并行执行的一种实现技术。目前,流水线已经成为高速处理机中采用的一项关键技术。 注释:
  流水线就像工厂中的装配线那样。在汽车装配线上,一辆汽车的装配过程分为很多个阶段,每一个段完成汽车生产的一部分。在流水线中的每一个阶段与其他任何一个阶段能够并行进行,但是每个阶段装配的不是同一辆汽车。在计算机的流水线中,流水线的每一个阶段完成一条指令的一部分,不同阶段并行完成流水线中不同指令的不同部分。流水线的每一个阶段称为一个流水节拍、流水步、流水步骤、流水阶段、流水线阶段、功能段、流水段、流水级等。一个流水阶段与另一个流水阶段相连接形成流水线。指令从流水线的一端进入,经过流水线的处理,从另一端流出。