2、向量链接技术(chaining)
  结果寄存器可能成为后继指令的操作数寄存器,两条有数据相关的向量指令并行执行,这种技术称为两条流水线的链接技术。
  例如:有如下3条向量指令。
    V3A
    V2V0+V1
    V4V2*V3
  第一、二条指令没有数据相关和功能部件冲突,可以同时开始执行。
  第三条指令与第一、二条指令均存在写读数据相关。
  数据进入和流出每个功能部件,包括访存都需要1拍时间。图9.7表示把存储器读取、向量加法、向量乘法链接成一个较长的流水线处理器。
图9.7 Cray 1的流水线链接示例

  我们可以将串行执行、部分并行和流水线链接三种执行方式进行比较:
  如果向量长度为N,三条指令采用串行方法执行的时间为:
  [(1+6+1)+N-1]+[(1+6+1)+N-1]+[(1+7+1)+N-1]=3N+22拍
  如果前两条指令并行执行,第三条指令串行执行,则执行时间为:
  [(1+6+1)+N-1]+[(1+7+1)+N-1]=2N+15拍
  如果采用链接技术,则执行时间为:
  (1+6+1)+(1+7+1)+(N-1)=17+N-1=N+16拍

  一般说来,实现链接的条件为:
  (1) 没有向量寄存器冲突和功能部件冲突,
  (2) 只有第一个结果送入向量寄存器的那一个周期可以链接。
  (3) 如果一条向量指令的两个源操作数分别是两条先行指令的执行结果,则要求先行的两条指令产生运算结果的时间必须相同。
  (4) 两条向量指令的向量长度必须相等。