一、向量处理方式
1)横向处理方式
2)纵向处理方式
3)纵横处理方式
下面以计算表达式 D = A * ( B + C )
(1)横向处理方式
逐个求出结果向量的各个元素
d1=a1×(b1+c1)
d2=a2×(b2+c2)
…
dN=aN×(bN+cN)
逐个求D中的N个分量,先进行相加k←b1+c1,其中k为暂存单元,然后相乘d1←k×a1 。
在每个向量元素的加乘运算中,都会发生数据相关的情况,而且当采用静态流水线时,还要进行2次
乘和加功能的转换。这样共会出现N次相关和2N次功能转换。因此,这种横向加工方式只适合于标量
循环算法,不适合于向量流水处理。
(2)纵向处理方式
纵向(垂直)加工方式:先对所有元素执行一种相同的运算,再对所有元素执行另一种相同的运算。
先算:
k1=b1+c1
k2=b2+c2
…
kN=bN+cN
再算:
d1=a1×k1
d2=a2×k2
…
dN=aN×kN
在两条向量指令间仅有一次数据相关,流水线功能的切换只需一次。
(3)纵横处理方式<