视频加载失败

课程

1667 字
约 5 分钟

CH04

计算机体系结构notes/csdn-review·更新于 2026-09-15

第四章:向量处理机

向量处理机概念

向量处理机+流水线=向量处理机

向量处理机的两种方式(横向水平和纵向垂直两种方式);

  • 二者的特点差别(数据相关、功能切换、适用场景)

提高向量处理的性能方法

  • 连接技术:加快向量指令的执行;
    • 两条向量指令占用功能流水线…寄存器的4种情况
      • 指令相关、功能部件冲突、源寄存器冲突、结果寄存器冲突
    • 在Cray-1是用连接技术进行…,如何分析是…情况的执行时间

向量的处理方式

以计算表达式 D=A×(B-C)为例 A、B、C、D ── 长度为 N 的向量

横向水平

img

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

纵向垂直

img

缺点:若纵向处理向量太长,向量寄存器个数较少无法处理

向量处理机典型结构

  • 存储器-存储器型结构

    多个独立的存储器模块并行工作

    纵向处理方式采用

  • 寄存器-寄存器型结构

    运算通过向量寄存器进行

    分组处理方式采用

采用链接技术提高向量处理机性能

采用链接技术,加快一串向量指令的执行;

  • 两条向量指令占用功能流水线和向量寄存器的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上用链接技术进行向量运算

链接特性的实质:把流水线定向的思想引入到向量执行过程的结果。

img

img

img

img

Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录