按照流水线使用的不同级别,可以把流水线分为功能部件级、处理机级和处理机间级等多种类型。
  处理机级流水线又称为指令流水线(Instruction Pipelining)。它把一条指令的执行过程分解为多个子过程,每个子过程在一个独立的功能部件中完成。前面介绍的一次重叠执行方式是在设置有先行指令缓冲栈的处理机中采用的一种简单的指令流水线。它把一条指令的执行过程分解为"分析"和"执行"两个子过程。因此,一次重叠执行方式可以同时执行两条指令。
  在采用先行控制器的处理机中,组成先行控制器的各个部件实际上也构成了一条流水线。如图8.9所示,在先行控制器中,一条指令的执行过程被分解为5个子过程,每个子过程在一个专用的功能部件中执行。由于各种指令在同一个功能部件中执行的时间往往相差很大,因此,在每一个功能段之间要设置多个缓冲寄存器,以平滑流水线中各个功能部件的操作。
图 8.9 先行控制方式中的指令流水线

   在图8.9中,每一个部件内部还可以采用流水线来实现。例如,对于一些比较复杂的运算操作部件,如浮点加法器、浮点乘法器等,一般要采用多级流水线来实现。后行写数栈和先行读数栈也可以采用多级流水线来实现。这种流水线被称为部件级流水线,或功能部件级流水线。
   功能部件级流水线也称为运算操作流水线(Arithmetic Pipelining)。上面介绍的浮点加法器流水线就是一种典型的功能部件级流水线。后面,还将介绍几种常见的功能部件级流水线。
  要提高执行部件执行算术逻辑运算操作的速度,除了在运算操作部件中采用流水线之外,也可以设置多个独立的操作部件,并通过这操作部件的并行工作来提高处理机执行算术逻辑运算的速度。通常,把指令执行部件中采用了流水线的处理机称为流水线处理机或超流水线处理机,而把指令执行部件中设置有多个操作部件的处理机称为多操作部件处理机和超标量处理机。
  处理机间流水线又称为宏流水线(Macro Pipelining)。这种流水线由两个或两个以上处理机通过存储器串行连接起来,每个处理机对同一个数据流的不同部分分别进行处理。前一个处理机的输出结果存入存储器中,作为后一个处理机的输入,每个处理机完成整个任务中的一部分。
图 8.10 一种宏流水线

  一台大型计算机系统通常由多个同型号的或不同型号的处理机构成,每个处理机有不同的分工。例如,有多个用高级语言编写的程序需要在机器上运行,则程序和数据的输入、编译、连接、执行、执行结果输出等可以分别在不同的处理机上完成,这些处理机就构成了一条宏流水线。