1.向量处理方式
横向处理方式:向量计算是按行的方式从左至右横向进行
纵向处理方式:按列自上而下进行
纵横处理方式:横向和纵向结合
2.向量链接技术
向量运算中存在数据相关和功能部件冲突。
两条流水线的链接技术:当前一条指令的结果寄存器可以作为后继指令的操作数寄存器时,多条有数据相关的向量指令并行执行。
当前一个向量功能部件产生第一个结果并送到结果向量寄存器入口时,将该结果立即送往下一个功能部件的入口,开始后续的向量操作。此后依次得到的中间结果都按此处理。这样,前面功能部件的结果元素一产生,就可以立即被后面的功能部件所使用,而不用等结果向量全部产生后再使用。
2.向量链接的要求
1)只有在前一条向量指令的第一个结果元素送入结果向量寄存
器的那一个时钟周期才可以进行链接,若错过该时刻就不能进行链接,只有当前一条向量指令全部执行完毕。
2)当一条向量指令的两个源操作数分别是两条先行向量指令的结果寄存器时,要求先行的两条向量指令产生运算结果的时间必须相等,即要求有关向量功能部件的延迟时间相等。
3)只有所有可以链接执行的向量指令的向量长度相等时,它们之间才能链接执行,否则它们之间也不能链接执行。
3.向量循环开采技术
当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,采用循环结构处理这个长向量,这种技术称为向量循环开采技术,也称为向量分段开采技术。
4.向量指令计算
1.计算
T
v
p
=
T
s
+
T
v
f
+
(
n
−
1
)
T
c
T_{vp}=T_s+T_{vf}+(n-1)T_c
Tvp=Ts+Tvf+(n−1)Tc
𝑇𝑠为向量流水线的建立时间,即为了使处理部件流水线能开始工作(即开始流入数据)所需要的准备时间。
𝑇𝑣𝑓为向量流水线的流过时间, 即第一对向量元素通过流水线并产生第一个结果所花的时间。
𝑇𝑐为流水线的时钟周期时间
T
v
p
=
[
s
+
e
+
(
n
−
1
)
]
t
T_{vp}=[s+e+(n-1)]t
Tvp=[s+e+(n−1)]t
s为向量流水线建立所需的时钟周期数
e为向量流水线流过所需的时钟周期数
n为向量长度
t为时钟周期长度
一组向量指令的处理时间取决于
向量长度
向量操作之间是否存在流水线功能部件的冲突
数据的相关性
2.编队
将几条能在一个时钟周期内一起开始执行的向量指令。同一个编队中的向量指令一定不存在流水部件的冲突和数据相关性,如果存在部件冲突和数据相关,需要把它们分在不同的编队中。
3.一组向量指令的处理时间
进行编队后,向量指令序列的总的执行时间为m个编队的执行时间的和:
T
a
l
l
=
∑
T
v
p
(
i
)
T_{all=\sum_{T_{vp}}^{(i)}}
Tall=∑Tvp(i)
T
v
[
p
(
i
)
T_{v[p}^{(i)}
Tv[p(i)为第i个编队的执行时间
m为编队的个数
如果考虑向量长度𝑛大于向量寄存器长度𝑀𝑉𝐿时,则需要分段开采。