衡量向量处理机的性能主要是向量指令的处理时间Tvp、向量长度为无穷大时的向量处理机的最大性能P¥、半性能向量长度n1/2和向量方式的工作速度优于标量串行方式工作时所需的向量长度临界值nv等。下面讨论这些参数。
  1. 向量指令的处理时间Tvp
  在向量处理机上,执行一条向量长度为n的向量指令的时间Tvp可表示为:
  其中,Ts为向量流水线的建立时间,它包括向量起始地址的设置、计数器加1,条件转移指令执行等。Tvf为向量流水线的流过时间,它是一条指令从开始译码到流过流水线得到第一个结果元素的时间。Tc为流水线"瓶颈"段的执行时间。
  如果不存在"瓶颈",每段的执行时间等于一个时钟周期,则上式也可以写成:
  其中,s为向量流水线建立时间所需的时钟周期数。e为向量流水线流过时间所需的时钟周期数。n为向量长度。t为时钟周期。

  下面我们考虑一组向量操作的执行时间。一组向量操作的执行时间主要取决于下面三个因素:向量的长度、向量操作之间是否存在流水功能部件的冲突和数据的相关性。我们把几条能在一个时钟周期内一起开始执行的向量指令称为一个编队。同一个编队中的向量指令一定不存在流水功能部件的冲突和数据的相关性。如果存在这种冲突和相关,需把它们分  在不同的编队之中。
  例如:下面一组向量操作能分成几个编队?假设每种流水功能部件只有一个。
  LV V1,Rx ; 取向量x
  MULTSV V2, F0, V1 ; 向量和标量相乘
  LV V3,Ry ; 取向量Y
  ADDV V4, V2, V3 ; 加法
  SV Ry, V4 ; 存结果
  解:

  第一条指令VL为第一个编队。MULTSV指令因为与第一条LV指令相关,所以它们不能在同一个编队中。MULTSV指令和第二条LV指令之间不存在功能部件冲突和数据相关,所以这两条指令为第二个编队。ADDV指令与第二条LV指令数据相关,所以ADD为第三个编队。SV指令与ADDV指令数据相关,所以它为第四个编队。
  这一组向量操作可划分为以下四个编队:
  1. VL
  2. MULTSV LV
  3. ADDV
  4. SV
  一个编队的执行时间记为Tchime,它与向量长度无关。因此,一组由m个编队组成的向量操作的执行时间为m个Tchime。如果向量长度为n,则整个程序的向量操作的执行时间为m×n个时钟周期。上述例子中,因为整个程序分为4个编队,所以要花费4个Tchime。另外该例子每个结果需要2个浮点运算操作。

  除了上述向量操作的真正执行时间外,还需要考虑向量的启动时间Tstart,Tstart是向量操作流水线的延迟,它等于流水功能部件的流水段数,也即流水线的深度。它和上述的向量流水线的流过时间几乎相等。
  除了上述向量操作的真正执行时间外,还需要考虑向量的启动时间Tstart,Tstart是向量操作流水线的延迟,它等于流水功能部件的流水段数,也即流水线的深度。它和上述的向量流水线的流过时间几乎相等。

  另外一个例子:假设一台向量处理机中功能部件的启动开销为:取数和存数部件为12个时钟周期、乘法部件为7个时钟周期、加法部件为6个时钟周期。请计算出例6.4中每个编队的开始时间、获得第一个结果元素的时间和获得最后一个结果元素的时间。
  解:如果向量长度为n,则每个编队的开始时间、获得第一个结果元素和最后一个结果元素时间如表9.4所示。

表9.4 编队1~4的开始时间、第一个结果和最后一个结果时间
编队 开始时间 第一个结果时间 最后一个结果时间
1.LV 0 12 11+N
2.MULTSV LV 12+n 12+n+12 24+2n
3.ADDV 25+2n 25+2n+6 31+3n
4.SV 32+3n 32+3n+12 42+4n
  如果向量长度n为64,则得到一个结果元素的平均时间为:4+(42/64)=4.65个时钟周期。
  如果考虑向量长度大于向量寄存器长度时,则需要分段开采。分段开采的开销由执行标量代码的开销Tloop和每个编队的向量启动开销Tstart组成。所以向量长度为n的一组向量操作的整个执行时间为:
  其中MVL是向量寄存器的长度。Tstart、Tloop和Tchime的值与编译系统和处理器有关。寄存器分配和指令的调度既会影响编队的组合也会影响每个编队的启动开销。
  为了简单起见,我们把Tloop看作是一个常数,Cray 1机器的Tloop约等于15。