【计算机体系结构】计算机体系结构(6) 并行处理技术(1) SIMD并行计算机、算法和互联网络
时间:2023-02-08 11:30:00
文章目录
- 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
中具有自己的存储器,以存放系统程序和用户程序,此外,它也可存放各个PE
所需的共享数据。CU
的主要功能是对指令译码和判别它应在何处执行。对于标量或控制类指令,CU
本身中含有运算部件可以直接执行;若是向量指令,它就将此指令广播给各个PE
去执行。- 具有 N N N 个相同的处理单元
PE
,它由处理器Pi
和局部存储器Mi
组成。只要数据分配得当,各个Pi
主要将从自己的Mi
中获取数据进行操作。各个PE
将通过IN
实现相互间必要的数据交换,因此,IN
是单向的。 - 各个
PE
同步执行来自CU
的操作命令,但是并不一定每个操作非得所有PE
都参加,CU
将对PE
实行屏蔽控制,只有那些未被屏蔽的活跃PE
才可参加操作。 CU
还控制互连网络IN
,使各个PE
之间通过IN
,实现相互之间必要的数据交换。当相互需要交换数据的两个PE
不直接相连时,就需要经过它们之间的中间PE
来完成连接。
2. 共享存储器的阵列机
图6.2(b)中示出了这种类型的阵列机结构。与图6.2(a)中分布式存储器的阵列机结构比较,区别主要在于:
- 每个
PE
没有局部存储器。存储器模块以集中形式为所有PE
(通过IN
)共享。 - 互连网络受
CU
控制,用来构成PE
和M
之间的数据交换通路。要求互连网络具有同时连接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-Ⅳ
输入输出系统。实际上,它是由三种类型处理机组成的一个异构多机系统:一是专门用于数组运算的处理单元阵列;二是阵列控制器,它既是处理单元阵列的控制部分,又是一台相对独立的小型标量处理机;三是一台标准的宝来公司的 B6700
计算机,由它担负 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
。活动标志位的设立,使得我们可以单独控制 64 64 64 个处理单元中的每一个处理单元,只有那些处于活动状态的处理单元,才执行单指令流规定的共同操作。
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 开关相连。每个 PE
只能直接访问自己的 PEM
。分布在各个 PEM
中的公共数据只能先读至 CU
后,再经 CU
的公共数据总线 CDB
广播到 64 64 64 个处理单元中去。
阵列存储器的另一个特点是它具有双重变址机构:控制器 CU
实现所有处理单元的公共变址,每一个处理单元 PE
还可以单独变址。双重变址机构增加了各处理单元存储器之间数据分配的灵活性。
(2) 阵列控制器
阵列控制器 CU
实际上是一台小型控制计算机,它除了能对阵列的处理单元实行控制以外,还能利用自己的内部资源执行一整套指令,用以完成标量的运算操作。CU
的标量操作与各 PE
的数组操作是时间重叠的。
阵列控制器 CU
同处理单元阵列之间有 4 4 4 条信息通路:
CU
总线。处理单元存储器PEM
经过CU
总线,把指令和数据送往阵列控制器CU
,以 8 8 8 个 64 64 64 位字为一个信息块。这里的指令是指分布存放在PEM
中用户程序的指令,而数据可以是处理所需要的公共数据。指令和数据先被送到CU
,再由CU
的广播功能把它们送到各处理单元。- 公共数据总线
Common Data Bus, CDB
。CDB
是 64 64 64 位总线,用于向 64 64 64 个处理单元同时广播公共数据的通路。例如,作为公共乘数的常数就不必在 64 64 64 个PEM
中重复存放,可以由CU
的某一个寄存器送往各处理单元。另外,指令的操作数和地址部分也要经过CDB
送来。 - 模式位线
Mode Bit Line
。每一个PE
都可以经过模式位线,把它的模式寄存器中的状态送到CU
中来,送来的信息中包括该处理单元的“活动”状态位。从 64 64 64 个PE
送往CU
的模式位,在CU
的累加寄存器中拼成一个模式字,以便在CU
内部执行一定的测试指令,对这个模式字进行测试,并根据测试结果来控制程序的转移动作。 - 指令控制线。处理单元微操作控制信号和处理单元存储器地址、读/ 写控制信号都经过约 200 200 200 条指令控制线,由
CU
送到阵列处理单元PE
和存储器逻辑部件MLU
。
概括起来,阵列控制器 CU
的功能有以下 5 5 5 个方面:
- 对指令流进行控制和译码,执行标量操作指令。
- 向各处理单元发出执行数组操作指令所需的控制信号。
- 产生和向所有处理单元广播公共的地址部分。
- 产生和向所有处理单元广播公共的数据。
- 接收和处理由各
PE
(计算出错时)、系统I/O操作以及主机B6700
所产生的陷阱中断信号。
(3) 输入输出系统
ILLIAC-Ⅳ
输入输出系统由磁盘文件系统 DFS
,I/O分系统和 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传送;二是作为DFS
和PEM
之间的缓冲,以平衡两边不同的数据宽度。CDC
的功能是对阵列控制器CU
的 I/O 请求进行管理。CU
提出 I/O 请求时,CDC
将使B6700
管理计算机中断,由B6700
响应输入/输出请求,并通过CDC
给CU
送回相应的响应代码,在CU
中设置好必要的控制状态字。然后,CDC
促使B6700
启动PEM
的加载过程,由DFS
向PEM
送入程序和数据。在PEM
加载完毕后,又由CDC
向CU
传送控制信号,使CU
开始执行ILLIAC-Ⅳ
的程序。BIOM
处在DFS
和B6700
之间,是为了使二者之间传送频宽能够匹配。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 位。
B6700 管理计算机的基本组成是:单中央处理器(另一个 CPU
可选), 32 K 32K 32元器件数据手册、IC替代型号,打造电子元器件IC百科大全!