当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段。处理长向量的程序结构称为向量循环。这种技术也称为分段开采,一次处理一个向量段。

  将长向量分段成为循环是由系统硬件和软件控制完成的,程序员看不到这种向量分段为循环的过程,对程序员是透明的。
  每经过一次循环,便处理长向量的一个段。一般在进入循环以前,根据向量长度计算出循环计数值。下面是一个说明Cray 1实现向量循环的例子。
例题
  设A和B是长度为N的向量。考虑以下的循环操作:
  DO 10 I=1,N
  10 A(I)=5.0*B(I)+C
  当N为64或更小时,产生A数组的7条指令序列是:
  S15.0   在标量寄存器内设置常数
  S2C    将常数C装入标量寄存器
  VLN    在VL寄存器内设置向量长度
  VoB    将B向量读入向量寄存器
  V1S1*Vo  B数组的每个分量和常数相乘
  V2S2+V1 C和5*B(x) 相加
  AV2    将结果向量存入A数组
  第5条和第6条指令使用了不同的功能部件,又共享中间寄存器,它们可以链接在一起,该链的输出最后存入A数组。
  当N超过64时,就需要向量循环。在进入循环以前,把N除以64,以确定循环计数值。如果有余数,则在第一次循环中首先产生A数组的余数个分量。对于A和B数组的每64个分量的段,循环由第4条到第7条指令组成。