文章目录
- 6.1 并行处理技术的基本概念
- 6.2 `SIMD` 并行计算机(阵列处理器)
-
- 6.2.1 阵列机的基本结构
-
- 1. 阵列机分布式存储器
- 2. 共享存储器的阵列机
- 6.2.2 阵列机的主要特点
- 6.2.3 典型 `SIMD` 计算机举例
-
- 1. ILLIAC-Ⅳ阵列计算机(阵列机)
-
- (1) `ILLIAC-Ⅳ` 阵列
- (2) 阵列控制器
- (3) 输入输出系统
- 2. `BSP` 计算机
-
- (1) 并行处理机
- (2) 控制处理机
- (3) 文件存储器
- (4) 对准网络
- (5) 质量存储系统
- 6.3 `SIMD` 并行计算机算法
-
- 6.3.1 矩阵加
- 6.3.2 矩阵乘
- 6.3.3 累加和
- 6.4 `SIMD` 计算机互联网络
-
- 6.4.1 互联网的设计目标
- 6.4.2 互连函数
-
- 1. 恒等置换函数
- 2. 方体置换函数
- 3. 全混洗置换函数
- 4. 交换置换函数
- 5. 蝶式置换函数
- 6. 子蝶式置换函数
- 7. 移数置换函数
- 8. `PM2I` 置换函数
- 6.4.3 互联网的分类和结构参数
-
- 1. 互联网的分类
- 2. 互联网络的结构参数
-
- (1) 度
- (2) 距离和直径
- (3) 中继量 R R R
- (4) 方向性
- (5) 规则性和对称性
- (6) 广播时间
- 6.4.4 静态互联网络
-
- 1. 线性网和星形网
- 2. 环网和带弦环网
- 3. 循环移数网和全连接网
- 4. 完全二叉树网和二叉肥树网
- 5. 网格形网络
- 6. 立方体网络
- 6.4.5 动态互联网络
-
- 1. 互联网络中的三个参数
-
- (1) 交换开关
- (2) 连接模式
- (3) 控制方式
- 2. 单级互联网络
-
- (1) `PM2I` 单级互联网络
- (2) 混洗(洗牌)交换网络
- (3) 交叉开关网络
- 3. 多级互联网络
-
- (1) `STARAN` 网络
- (2) 间接二进制 n n n 方体网络
- (3) Ω Ω Ω `Omega` 网络
- (4) 基准网络
- (5) 全排列网络
- 6.5 多处理机
,计算机系统结构由低向高发展的过程,是并行处理技术不断发展的过程。平行处理技术比设备的发展对提高计算机性能更重要——设备速度的提高受物理条件的限制,不能超过光速,并行处理技术可以通过资源的重复来实现,其发展基本上是无穷无尽的。因此,从这个意义上说,它有更广阔的应用前景,并将发挥更重要的作用。
6.1 并行处理技术的基本概念
所谓在数值计算、数据处理、信息处理或人工智能求解过程中,。并行性发展的目的是,。
并行性的双重含义是指(或并行)和。所谓是指两个或两个以上的事件同时发生,并发性是指两个或两个以上的事件发生在同一时间间隔内。
它指的是相对的信息处理方法,重点开发计算过程中的并发事件。并行处理时,每次处理的规模可能不同,可用表示。关于并行粒度的大小。 G G G 以下公式可以用来表示(假设系统共有) P P P 个处理器) : G = T W T C = ∑ i = 1 P t w i ∑ i = 1 P t c i G = \dfrac{T_W}{T_C} = \dfrac{ \displaystyle\sum^P_{i = 1} t_{wi}} { \displaystyle\sum^P_{i = 1} t_{ci}} G=TCTW=i=1∑Ptcii=1∑Ptwi 式中,分子为,而分母表示。当 T C TC TC 较大时, G G G 就较小,表明处理粒度较细。当处理粒度较细时,显然此时处理器间的通信量将加大,相反当粒度较粗时,通信量就较小。
并行性有不同的等级,而且从不同角度观察时,会有不同的划分方法。程序执行过程通常可划分成以下 5 5 5 个等级——和。前 3 3 3 级为,主要是通过实现,开发手段以为主,其中包括并行性算法分析、任务的调度与分配等;而后 2 2 2 级为,主要是在中实现,开发手段以为主,其中包括标量流水、超标量流水、超流水和超长指令字等。
有时间重叠、资源重复和资源共享。
- :在并行性中引入时间因素。即,以赢得速度,如指令的流水执行方式。
- :在并行性中引入空间因素。即通过来提高处理性能或可靠性,如阵列处理机。
- :利用软件的方法,,以提高系统资源的利用率。
从计算机系统结构的角度出发,根据并行性的三个途径,从计算机系统由低性能向高性能发展过程中可以看出,。
- 一方面在单处理机上,通过,分别向异构型多处理机系统、同构型多处理机系统和分布式处理系统方向发展。
- 另一方面在多计算机系统中,通过等手段,分别向异构型多处理机系统、同构型多处理机系统和分布式多处理机系统的方向发展。
例如,,以提高单台计算机的执行速度。这一思想仍可应用于多台计算机组成的系统,如在高级语言向汇编语言转换过程中,是由编译程序完成翻译的。将翻译的全过程分为编译扫描、编译分析和目标程序生成三个子过程。。由于这三台计算机结构可以不一样(非对称型),故这样组成的多计算机系统称为异构型多计算机系统。
按照的思想,既然在一个计算机系统内可由多个相同的处理单元构成阵列处理机,那么用,也可以组成多计算机系统,这种系统结构称为同构型(对称型)多计算机系统。
按照的思想,单处理机采用,并发展成为分布式多计算机系统。
6.2 SIMD 并行计算机(阵列处理机)
本节将讨论以 SIMD 方式工作、采用的并行性措施的阵列处理机。由于历史原因,习惯上也将阵列处理机(简称“阵列机”)称为并行处理机。这里首先讨论它的,然后是它的,最后简短讨论。
6.2.1 阵列机的基本结构
阵列机通常由一个 CU 、 N N N 个 PE 、 M M M 个 M 及一个 IN 所组成。由 CU 控制将指令广播给系统中的各个 PE ,而所有活跃的 PE 将以同步方式执行相同的指令(单指令流),它们从相应的存储模块中取得自己所需的数据对象(多数据流)。IN 用来使各个 PE 之间或是 PE 和 M 之间实现方便的通信连接。IN 有时也称为 Alignment 或 Permutation 。有关互连网络的问题,在下一节作进一步讨论。
为了形式化地表示阵列机的特征,可用以下的参数加以描述: C = ( N , F , I , M ) C= (N, F, I, M) C=(N,F,I,M) 式中, N N N 为 PE 数; F F F 为确定互连网络结构及连接拓扑的; I I I 为,它能进行标量、向量、数据传送通路操作和网络变换操作等; M M M 为,每一种方式将 PE 集合分为活跃和非活跃两类 PE 的子集。这种描述模型,为评价不同的阵列机结构提供了比较基础。
根据存储器模块是以分布方式存取还是集中方式存取,阵列机可分为两种基本结构:和。
1. 分布式存储器的阵列机
分布式阵列机的基本结构如图6.1(a)所示。这种阵列机的主要结构特征如下:
- ,以存放系统程序和用户程序,此外,。
CU的主要功能是。对于标量或控制类指令,CU本身中含有运算部件可以直接执行;若是向量指令,它就将此指令广播给各个PE去执行。- 具有 N N N 个相同的处理单元
PE,它由处理器Pi和局部存储器Mi组成。只要数据分配得当,。各个PE将通过IN实现相互间必要的数据交换,因此,。 - ,但是并不一定每个操作非得所有
PE都参加,,只有那些未被屏蔽的活跃PE才可参加操作。 - ,使各个
PE之间通过IN,实现相互之间必要的数据交换。当相互需要交换数据的两个PE不直接相连时,就需要经过它们之间的中间PE来完成连接。
2. 共享存储器的阵列机
图6.2(b)中示出了这种类型的阵列机结构。与图6.2(a)中分布式存储器的阵列机结构比较,区别主要在于:
- 每个
PE没有局部存储器。。 - 。要求互连网络具有同时连接
PE到M或M到PE的双向性。系统中的一个PE,可以与任何另一个PE实现数据交换(只要有任何一个存储模块,同时与这两个PE相连接) 。当两个需交换数据的PE之间没有共享的存储模块时,可能需要经过多次的传送之后,方可实现交换。
6.2.2 阵列机的主要特点
阵列机是以方式工作的,它具有以下特点:
- 它采用方法引入空间因素,即,这与利用时间重叠的流水线处理机是不一样的。此外,,所有处理单元必须同时进行相同操作。
- 。这是由于阵列机中通常都采用简单、规整的互连网络,实现处理单元间的连接操作,从而限定了它所适用的求解算法类别。因此,「对互连网络设计的研究」就成为阵列机研究的重点之一。
- ,以便使它的求解算法的适应性更强一些,应用面更广一些。
- 从处理单元来看,由于都是相同的,因而可将阵列机看成是一个同构型并行机。但,而为了完成I/O操作以及操作系统的管理,尚需一个前端机。因此,实际的阵列机系统是由上述三部分构成的一个异构型多处理机系统。
6.2.3 典型 SIMD 计算机举例
1. ILLIAC-Ⅳ阵列计算机(阵列机)
由美国宝来 Burroughs 公司和伊利诺斯大学在1965年开始研制,并于1972年由宝来公司生产的 ILLIAC-Ⅳ 阵列机,是 SIMD 并行计算机的一个典型代表。它可分为两大部分,即 ILLIAC-Ⅳ 阵列和 ILLIAC-Ⅳ 输入输出系统。实际上,它是由三种类型处理机组成的一个异构多机系统:一是;二是,它既是处理单元阵列的控制部分,又是一台相对独立的小型标量处理机;三是,由它担负 ILLIAC-Ⅳ 输入输出系统和操作系统管理功能,如图6.2所示。
(1) ILLIAC-Ⅳ 阵列
ILLIAC-Ⅳ 阵列计算机共有 64 64 64 个 PE,由控制器 CU 统一控制。系统由一台 B6700 作为宿主机进行管理,每个 PE 有自己的局存 PEM ,容量 2 K 2K 2K 字,字长 64 64 64 位。每个 PE 拥有 4 4 4 个 64 64 64 位寄存器,分别用做和。此外,尚有 1 1 1 个 16 16 16 位和 1 1 1 个 8 8 8 位,后者是用来存放 PE 屏蔽信息的。这是一种,每个 PE 只能与 4 4 4 个近邻的 PE 直接相连,即PE 与 PEi - 1,PEi + 1,PEi - 8 和 PEi + 8(Mod 64) 4 4 4 个近邻直接相连。
因此,从一个 PE 要将数据达到另一个 PE 时,可能中间要经过若干个其他 PE 转送。传送步数 S ≤ N − 1 S≤\sqrt{N}- 1 S≤N
−1 ,这里 N N N 为 PE 数。对于 ILLIAC-Ⅳ 来讲,由于 N = 64 N = 64 N=64 ,故 S ≤ 7 S≤7 S≤7 。例如,从 PE9 到 PE45 的距离以这一路径为最短:PE9 → PE1 → PE57 → PE56 → PE48 → PE47 → PE46 → PE45
ILLIAC-Ⅳ 阵列机的每一个处理单元 PE 有 6 6 6 个可编程序寄存器 RGA, RGB, RGR, RGS, RGX, RGM 以及 AU 、 LU 、 SU 和 ADA 等。
RGA是,存放第一操作数和操作结果。RGB是,存放加、减、乘、除等二元操作的第二操作数。RGR是,也是,用于PE与经过东、西、南、北 4 4 4 个互连通路之一的另一个处理单元之间的数据直接传送。RGS是,程序用来暂存中间结果。上述这 4 4 4 个寄存器都是 64 64 64 位的。操作数来自以下 4 4 4 个方面:PE本身的寄存器、PE的处理单元存储器PEM,CU的公共数据总线CDB,PE的 4 4 4 个近邻处理单元。RGX是 16 16 16 位的,它利用地址加法器ADA修改指令地址,并将形成的有效地址经过MAR,输入存储器逻辑部件MLU。RGM是 8 8 8 位的模式寄存器,RGM中的E和E1位是“活动”标志位,用来控制RGA, RGS和处理单元存储器PEM,E位还控制RGX。。RGM的其他 6 6 6 位分别是:F和F1位保存运算出错(上溢、下溢)标志,G, H, I, J位保存测试结果。RGM经常处于CU的监督之下,一旦出错,就发出CU陷阱中断。
处理单元存储器 PEM 分属于每一个处理单元,各有 2048 × 64 2048× 64 2048×64 位存储容量,PEM 的取数时间不大于 350 n s 350ns 350ns 。 64 64 64 个 PEM 联合组成,存放数据和指令。
整个阵列存储器可以接受 CU 的访问,读出 8 8 8 个字的信息块到 CU 的缓冲器中。阵列存储器也可经过 1024 1024 1024 位的总线与 I/O 开关相连。 。分布在各个 PEM 中的公共数据只能先读至 CU 后,再经 CU 的公共数据总线 CDB 广播到 64 64 64 个处理单元中去。
阵列存储器的另一个特点是:控制器 CU 实现所有处理单元的公共变址,每一个处理单元 PE 还可以单独变址。。
(2) 阵列控制器
阵列控制器 CU 实际上是一台小型控制计算机,它除了能对阵列的处理单元实行控制以外,还能利用自己的内部资源执行一整套指令,用以完成标量的运算操作。CU 的标量操作与各 PE 的数组操作是的。
阵列控制器 CU 同处理单元阵列之间有 4 4 4 条信息通路:
- 。,以 8 8 8 个 64 64 64 位字为一个信息块。这里的指令是指分布存放在
PEM中用户程序的指令,而数据可以是处理所需要的公共数据。指令和数据先被送到CU,。 -
Common Data Bus, CDB。CDB是 64 64 64 位总线,用于。例如,作为公共乘数的常数就不必在 64 64 64 个PEM中重复存放,可以由CU的某一个寄存器送往各处理单元。另外,。 -
Mode Bit Line。,送来的信息中包括该处理单元的“活动”状态位。从 64 64 64 个PE送往CU的模式位,在CU的累加寄存器中拼成一个模式字,以便在CU内部执行一定的测试指令,对这个模式字进行测试,并根据测试结果来控制程序的转移动作。 - 。处理单元微操作控制信号和处理单元存储器地址、读/ 写控制信号都经过约 200 200 200 条指令控制线,由
CU送到阵列处理单元PE和存储器逻辑部件MLU。
概括起来,阵列控制器 CU 的功能有以下 5 5 5 个方面:
- 对指令流进行控制和译码,执行标量操作指令。
- 向各处理单元发出执行数组操作指令所需的控制信号。
- 产生和向所有处理单元广播公共的地址部分。
- 产生和向所有处理单元广播公共的数据。
- 接收和处理由各
PE(计算出错时)、系统I/O操作以及主机B6700所产生的陷阱中断信号。
(3) 输入输出系统
ILLIAC-Ⅳ 输入输出系统由 DFS ,和 B6700 组成。磁盘文件系统 DFS 是两套大容量并行读写磁盘系统及其相应的控制器。每套磁盘系统有 13 13 13 台磁盘机,总容量为 1 0 9 10^9 109 位。每台磁盘机有 128 128 128 道,每道有一个磁头,并行读写,数据宽度为 256 256 256 位,最大传输率为 502 × 1 0 6 b i t / s 502 × 10^6 bit/ s 502×106bit/s,平均等待时间为 19.6 m s 19. 6ms 19.6ms 。如果 DFS 的两个通道同时发送或接收数据,则数据宽度为 512 512 512 位,最大传输率可达 1 0 9 b i t / s 10^9 bit/s 109bit/s 。
I/O分系统包括 3 3 3 部分,即 IOS 、 CDC 和 BIOM 。
IOS的功能有两个:一是,用以把DFS或可能连上的实时装置转接到阵列存储器,进行大批数据的I/O传送;二是,以平衡两边不同的数据宽度。CDC的功能是。CU提出 I/O 请求时,CDC将使B6700管理计算机中断,由B6700响应输入/输出请求,并通过CDC给CU送回相应的响应代码,在CU中设置好必要的控制状态字。然后,CDC促使B6700启动PEM的加载过程,由DFS向PEM送入程序和数据。在PEM加载完毕后,又由CDC向CU传送控制信号,使CU开始执行ILLIAC-Ⅳ的程序。- 。
B6700存储器经CPU输送数据的频宽是 80 × 1 0 6 b i t / s 80×10^6 bit/s 80×106bit/s ,而DFS输送数据的频宽是 500 × 1 0 6 b i t / s 500×10^6 bit/s 500×106bit/s ,二者之间相差 6 6 6 倍多。因此,必须设立BIOM作为B6700和DFS之间的缓冲。BIOM把B6700的 48 48 48 位字变换为ILLIAC-Ⅳ的 64 64 64 位字,同时按双字 128 128 128 位的数据宽度输送给DFS。实际上,BIOM是用 4 个PEM做成的,总容量为 8192 × 64 8 192×64 8192×64 位。