计算机系统结构 向量处理机

向量处理机(有向量数据表示的处理机)

向量流水处理机(时间重叠)

  • 向量的处理:横向(水平)处理
类似代码中用for循环处理一个数组,从头循环到结尾
比如向量D = A * (B + C)中,
d1 = a1 * (b1 + c1)
d2 = a2 * (b2 + c2)
......
dN = aN * (bN + cN)

按照上面方式依次计算,这就是横向处理
  • 向量的流水处理:纵向处理、分组纵横处理
    • 向量的纵向处理
向量的纵向处理:
就是单纯的利用流水线处理,比如向量D = A * (B + C),
向量的处理中计算,采用优先计算全部加法B+C,然后单独存储为向量V,然后再计算全部乘法A*V,这种就是按照向量流水的方式处理

先计算加法:
v1 = b1 + c1
v2 = b2 + c2
......
vN = bN + cN

然后计算乘法:
d1 = a1 * v1
d2 = a2 * v2
......
dN = aN * vN

这个计算方式就是纵向处理

  • 分组纵横处理
分组纵横处理
该处理方式是为了解决如果向量过大,造成主存不够用的问题

假设向量D = A * (B + C)有一亿个向量分量,则此时会采取切割分组分别计算的方式。比如上面向量均等切割为100个为一组的分量的向量组合:
分组:
D1~D100
D101~D200
......
Dn-100~Dn

然后再进行依次计算:
v1 = b1 + c1
v2 = b2 + c2
......
v100 = b100 + c100

然后计算乘法:
d1 = a1 * v1
d2 = a2 * v2
......
d100 = a100 * v100
......
dN-100 = aN-100 * vN-100
......
dN = aN * vN
  • CRAY-1
    • 向量流水处理机
    • 面向寄存器-寄存器结构
    • 可以通过并行、链接提高性能
    • 运算所需实际
      • 启动访存1拍、送入部件1拍、存入结果1拍
      • 访存6拍
      • 浮加6拍、浮乘7拍
    • 冲突(功能部件、源向量寄存器)
例如:
D = A * (B + C)
1. v3<-存储器
2. v2<-v0+v1
3. v4<-v2*v3

在CRAY-1中,上面的计算过程,1和2是互不相关的,可以之间并行,而3与1和2属于数据相关,这里可以直接把1和2的结果直接链接到3上面,比如1中从存储器取值不再存入v3中而是直接放入3步骤中,而第二部则是v0+v1的结果也不会存入v2中,而是直接链接到步骤三中。这两个过程等于省去了启动访存和送入部件的时间

阵列处理机(资源重复)

  • 两种构型
    • 采用分布式存储器的阵列处理机的构型(SIMD(单指令流单数据流)、ILLIAC Ⅳ)
    • 采用集中式共享存储器的阵列处理机构型(BSP)
  • 两种构型的差别
    • 存储器的组成方式不同
    • 互联网络(ICN)的作用不同
阵列处理机的特点
  • 资源重复
  • 同时性
  • 增大处理单元数量
  • 价格高
  • 使用简单
  • 专用于向量处理
ILLIAC Ⅳ阵列处理机
  • PU:处理部件
  • PE:算数处理单元
  • PEM:局部存储器
  • MLU:存储逻辑部件
题目

上面步骤是固定的,如果遇到是计算题或者简单题需要写这些步骤,可以直接放弃。如果遇到填空题询问需要计算多少次累加和?则可以得出log₂N,其中N就是题目中的8,多少个数,N就是多少
posted @ 2024-10-16 19:40  影梦无痕  阅读(61)  评论(0)    收藏  举报