向量处理机(有向量数据表示的处理机)
向量流水处理机(时间重叠)
类似代码中用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就是多少