课程
CH04
第四章:向量处理机
向量处理机概念
向量处理机+流水线=向量处理机
向量处理机的两种方式(横向水平和纵向垂直两种方式);
- 二者的特点差别(数据相关、功能切换、适用场景)
提高向量处理的性能方法
- 连接技术:加快向量指令的执行;
- 两条向量指令占用功能流水线…寄存器的4种情况
- 指令相关、功能部件冲突、源寄存器冲突、结果寄存器冲突
- 在Cray-1是用连接技术进行…,如何分析是…情况的执行时间
- 两条向量指令占用功能流水线…寄存器的4种情况
向量的处理方式
以计算表达式 D=A×(B-C)为例 A、B、C、D ── 长度为 N 的向量
横向水平

数据相关和功能切换随着向量长度增长而增长,硬件开销过大,不适合于向量处理机的并行处理
纵向垂直

缺点:若纵向处理向量太长,向量寄存器个数较少无法处理
向量处理机典型结构
-
存储器-存储器型结构
多个独立的存储器模块并行工作
纵向处理方式采用
-
寄存器-寄存器型结构
运算通过向量寄存器进行
分组处理方式采用
采用链接技术提高向量处理机性能
采用链接技术,加快一串向量指令的执行;
- 两条向量指令占用功能流水线和向量寄存器的4种情况
- 指令不相关
例如: V0←V1+V2 V6←V4 * V5
这两条指令分别使用各自所需的流水线和向量寄存器,可以并行执行。
- 功能部件冲突
例如: V3←V1+V2 V6←V4+V5
这两条指令都要使用加法流水线,发生了功能部件冲突(但向量寄存器不冲突)。当第一条指令流出时,占用加法流水线。第二条指令要等加法流水线变成空闲后,才能流出。
- 源寄存器冲突
例如: V3←V1+V2 V6←V1 * V4
这两条向量指令的源向量之一都取自V1。由于两者的首元素下标可能不同,向量长度也可能不同,所以难以由V1同时提供两条指令所需要的源向量。
这两条向量指令不能同时执行。只有等第一条向量指令执行完、释放V1之后,第二条向量指令才能开始执行
- 结果寄存器冲突
例如: V4←V1+V2 V4←V3 * V5
这两条指令都要访问目的寄存器V4。由于第一条指令在先,所以它先占用V4直到运算完成,然后再流出后一条指令
当前一条指令的结果寄存器是后一条指令的源寄存器、且不存在任何其他冲突时,就可以用链接技术来提高性能
例如: V3←V1+V2 V6←V3 * V4
向量流水线链接:具有先写后读相关的两条指令,在不出现功能部件冲突和源向量冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。
CRAY-1上用链接技术进行向量运算
链接特性的实质:把流水线定向的思想引入到向量执行过程的结果。

















