一条流水线只能完成一种固定的功能,这种流水线称为单功能流水线(Unifunction Pipelining)。例如,浮点加法器流水线专门完成浮点加法运算,浮点乘法器流水线专门完成浮点乘法运算。当要实现多种不同功能时,可以采用多条单功能流水线。

  如Cray-1计算机种有12条单功能流水线,我国研制的YH-1计算机有18条单功能流水线。Pentium处理机有一条5段的整数运算流水线和一条8段的浮点运算流水线。采用超流水线体系结构的Alpha 21064处理机有三条流水线,其中,整数操作和访问存储器操作为7段流水线,浮点运算操作为10段流水线。
  多功能流水线(Multifunction Pipelining)是指流水线的各段可以进行不同的连接。在不同时间内,或在同一时间内,通过不同的连接方式实现不同的功能。

  多功能流水线的典型代表是Texas仪器公司的高级科学计算机ASC中采用的8段流水线。在一台ASC处理机内有4条相同的流水线,每条流水线通过不同的连接方式可以完成整数加减法运算、整数乘法运算、浮点加法运算、浮点乘法运算,还可以实现逻辑运算、移位操作和数据转换功能等。它除了支持标量运算之外,还支持向量运算,如两个向量的浮点点积运算等。
  图8.11(a)是流水线的所有连接关系,实现不同的运算要求使用流水线中的不同功能部件,并在功能部件之间建立不同的连接关系。因此,要求多功能流水线能够根据运算需要在有的部件之间建立连接,而在另一些部件之间不建立连接。图8.11(b)是实现定点乘法时的流水线连接关系,它只用了流水线中的4个功能部件,有阴影的另外4各功能部件不用。图8.11(c)是实现浮点加法或浮点减法时的流水线连接关系,它用了6个功能部件,也就是说,实现浮点加法或减法采用的是6级流水线。图8.11(d)是对两个浮点向量求点积的流水线连接关系,它实际上是一条带有反馈回路的非线性流水线。两个浮点向量A与B的点积计算公式为:


  求点积的主要运算是"乘-加"操作。要完成上述关系式的计算要做n次"乘-加"运算,要反复多次使用流水线。
图 8.11 TI_ASC计算机的多功能流水线

  在处理机中采用多功能流水线的优点是流水线中各个功能部件的利用率比较高。由于在实际的标量运算程序中,各种运算操作一般是混合在一起的,这一点与向量运算操作有很大的不同,因此,在标量计算机的指令执行部件中采用多功能流水线是一种比较合理的选择。与采用多功能流水线不同的另一种方案是设置多条专门的单功能流水线,在许多向量流水线处理机中就是这样做的,例如,在我国研制的YH-1向量计算机就设置有18条单功能流水线。