1.横向处理方式
逐个求Fi的方式,为此
先算: 
再算: 
……
最后算: 
一般计算机就是采用这种方式组成循环程序进行处理的。这种处理方式适用于一般的处理机,即标量处理机,而不适用于向量处理机的并行处理。
2.纵向处理方式
设A,D,E,F是长度为N的向量,A=(a1, a2,…,an), D=(d1, d2, …, dn),E=(e1, e2, …, en),F=(f1,
f2, …, fn),则上述DO循环可以写成如下向量运算的形式:

纵向处理方式对整个向量按相同的运算处理完之后,再去执行别的运算。为此
先算 
再算 B*U V
再算 U-E U
再算 U*D U
最后算 U+V F
这种处理方式适用于向量处理机。向量长度N的大小不受限制,无论N有多大,相同的运算都用一条向量指令完成。向量指令的源向量和目的向量都在内存储器中,运算的中间结果需要送回内存储器保存。因而,对存储器的信息流量要求较高。
3.纵横处理方式
即把长度为N的向量分成若干组,每组长度为n,组内按纵向方式处理,依次处理各组。若N=K·n+r,其中r为余数,也作为一组处理,则共有K+1组,其运算过程为:
先算第1组 
…
再算第2组 
…
……
最后算第K+1组 
…

纵横处理方式对向量长度N的大小也不加限制,但它是以n为一组进行分组处理的。在每组运算中,用长度为n的向量寄存器作为运算寄存器并保留中间结果,从而大大减少了访问存储器的次数。这就可以降低对存储器信息流量的要求,也减少访问存储器发生冲突所引起的等待时间,因而提高了处理速度。
|