(1) 在流水线的每一个功能部件的后面都要有一个缓冲寄存器,或称为锁存器、闸门寄存器等,它的作用是保存本流水段的执行结果,如图8.6所示。采用锁存器的主要原因是流水线中每一个流水段的延迟时间通常不可能绝对相等,再加上电路的延迟时间及时钟等都存在偏移,因此,在流水段与流水段之间传送任务时,必须通过锁存器。
  图 8.6 流水线中的锁存器

  在指令流水线中加入锁存器之后,每条指令的实际执行时间增加了。因此,采用流水线技术的目的是通过多条指令并行执行使整个程序的执行时间缩短,然而程序中的任何一条指令的执行时间并没有缩短。
  由于流水线没有真正减少每条指令的执行时间,这就限制了流水线的深度。一旦时钟周期很小,以至于与时钟偏移和锁存器的附加开销相当时,流水线就失去了作用,因为在一个时钟周期内没有足够时间用于有效工作了。

  (2) 流水线中各段的时间应尽量相等。否则将引起"堵塞"、"断流"等。流水线的时钟周期不能大于最慢流水段用时,执行时间长的一个流水段将成为整个流水线的"瓶颈",这时,流水线中的其他功能部件将不能充分发挥作用。因此,在流水线设计中,当遇到"瓶颈"时,必须采取办法解决。

  (3) 只有连续不断地提供同种任务才能充分发挥流水线的效率。例如,要使浮点加法器流水线充分发挥作用,需要连续提供浮点加法运算。然而,由于程序本身的原因和程序设计过程中人为的原因,如数据相关等,不可能连续为浮点加法器提供同一种操作。因此,在采用流水线方式工作的处理机中,特别是当流水线的级数较多时,要在软件和硬件设计等多方面尽量为流水线提供连续的任务,以提高流水线的效率。

  (4) 流水线需要有"装入时间"和"排空时间"。只有流水线完全充满时,整个流水线的效率才能得到充分发挥。

  在流水线处理机的设计过程中,要充分注意上述问题,以设计出高效率的流水线。在流水线处理机上设计程序时,也必须注意流水线的上述特点,以充分发挥流水线处理机的高效率。