收藏 分享(赏)

计算机系统结构6.ppt

上传人:weiwoduzun 文档编号:4195163 上传时间:2018-12-14 格式:PPT 页数:78 大小:1.36MB
下载 相关 举报
计算机系统结构6.ppt_第1页
第1页 / 共78页
计算机系统结构6.ppt_第2页
第2页 / 共78页
计算机系统结构6.ppt_第3页
第3页 / 共78页
计算机系统结构6.ppt_第4页
第4页 / 共78页
计算机系统结构6.ppt_第5页
第5页 / 共78页
点击查看更多>>
资源描述

1、第六章 阵列处理机,6.1 阵列处理机的原理 6.2 SIMD计算机的互连网络 6.3 共享主存构形的阵列处理机中并行存储器的无冲突访问 6.4 脉动阵列流水处理机,阵列处理机(Array Processor)也称并行处理机(Parallel Processor)通过重复设置大量相同的处理单元PE(Processing Element),将它们按一定方式互连成阵列,在单一控制部件CU(Control Unit)控制下,对各自所分配的不同数据并行执行同一组指令规定的操作,操作级并行的SIMD计算机,它适用于矩阵运算。,6.1.1阵列处理机的构形和特点,具有分布式存储器的阵列处理机构形,图 6.2

2、 具有集中式共享存储器的阵列处理机构形,2. 阵列处理机的特点阵列处理机的单指令流多数据流处理方式和由它产生的特殊结构是以诸如有限差分、矩阵、信号处理、线性规划等一系列计算问题为背景发展起来的。这些计算问题的共同特点是可以通过各种途径把它们转化成为对数组或向量的处理,而阵列处理机正好利用多个处理单元对向量或数组所包含的各个分量同时计算, 从而获得很高的处理速度。与同样擅长于向量处理的流水线处理机相比,阵列处理机利用的是资源重复,而不是时间重叠;利用并行性中的同时性,而不是并发性。它的每个处理单元要同等地担负起各种运算功能,但其设备利用率却可能没有多个单功能流水线部件那样高。因此,只有在硬件价格

3、有了大幅度下降及系统结构有了较大改进的情况下,阵列处理机才能具有较好的性能价格比。阵列处理机主要是靠增大处理单元个数来提高运算速度,比起向量流水线处理机主要依靠缩短时钟周期来说, 速度提高的潜力要大得多。,6.2.2. ILLIAC 的处理单元阵列结构,PUi为处理部件,包含 64 位的算术处理单元PEi、所带的局部存贮器PEMi和存贮器逻辑部件MLU。64个处理部件PU0PU63 排列成 88 的方阵。任何一个PUi只与其上、下、左、右 4个近邻PUi-8(mod 64)、PUi+8(mod 64)、PUi-1(mod 64)和PUi+1(mod 64)直接相连。循此规则,上、下方向上同一列

4、两端的PU相连构成一个环,左、右方向上每一行的右端PU与下一行的左端PU相连, 最下面一行右端的PU与最上面一行左端PU相连,从而形成一种闭合的螺线形状, 所以又称闭合螺线阵列。在这个阵列中,步距不等于1 或8 的任意处理单元之间的通信,可以用软件方法寻找最短路径进行,其最短距离都不会超过 7 步。,PU63PU10,PU10,例如,要将PU63的信息传送到PU10,最快可经PU63PU7PU8PU9PU104 步即可实现,而要将PU9的信息传送到PU45,最快可经PU9PU1PU57PU56PU48PU47PU46PU45 7 步实现。 普遍来讲, 个处理单元组成的阵列中,任意两个处理单元之

5、间的最短距离不会超过 步。,1) 矩阵加在阵列处理机上,解决矩阵加法是最简单的一维情形。若有两个 88 的矩阵A、B相加,所得结果矩阵C也是一个 88 的矩阵。只需把A、B居于相应位置的分量存放在同一个PEM内,且在全部 64 个PEM中,令A的分量均为同一地址,B的分量单元均为同一地址+1,而结果矩阵C的各个结果分量也相应存放于各PEM同一地址+2的单元内,如图 6.4 所示。这样,只需用下列3条ILLIAC 的汇编指令就可以一次实现矩阵相加:,6.1.3 阵列处理机的算法举例,LDA ALPHA ; 全部()由PEMi送PEi的累加器RGAi ADRN ALPHA+1 ; 全部(+1)与(

6、RGAi)进行浮点加,结果送RGAi STA ALPHA+2 ; 全部(RGAi)由PEi送PEMi的+2单元这里, 0i63。,图 6.4 矩阵相加的存贮器分配举例,PE0,PE1,PE63,3) 矩阵乘由于矩阵乘是二维数组运算,故它比循环加要复杂一些。设A、B和C为3个 88 的二维矩阵。若给定A和B,则为计算C=A*B的 64 个分量,可用下列公式,其中, 0i7 且 0j7。,在SISD计算机上求解这个问题, 可执行用C语言编写的下列程序,for (i=0;i8;i+)for(j=0;j8;j+)c(i,j)=0;for(k=0;k8;k+)cij+=aik*bkj;,需要经过I、J、

7、K三重循环完成。每重循环执行 8 次,总共需要512次乘、加的时间,此外每次还应包括执行循环控制、 判别等其他操作需花费的时间。而如果在SIMD阵列处理机上运算,则可用 8 个处理单元并行计算矩阵C(I,J)的某一行或某一列,即将J循环或I循环转化成一维的向量处理,从而消去了一重循环。以消去J循环为例,可执行用C语言编写的下列程序for(i=0;i8;i+)cij:0-7=0;for(k=0;k8;k+)cij:0-7+=aik*bkj:0-7 ,图 6.5 矩阵乘程序执行流程图,A00,A01,A02,A03,A04,A05,A06,A07,I=0;K=0,0,1,2,3,4,5,6,7,R

8、GA,0,0,0,0,0,0,0,0,C00,C01,C02,C03,C04,C05,C06,C07,A00,A00,A00,A00,A00,A00,A00,A00,B00,B01,B02,B03,B04,B05,B06,B07,*,c00,c01,c02,c03,c04,c05,c06,c07,c00,c01,c02,c03,c04,c05,c06,c07,A00,A01,A02,A03,A04,A05,A06,A07,A01,A01,A01,A01,A01,A01,A01,A01,B10,B11,B12,B13,B14,B15,B16,B17,c00,c01,c02,c03,c04,c05

9、,c06,c07,图 6.6 矩阵乘的存贮器分配举例,4) 累加和这是一个将N个数的顺序相加过程转变为并行相加过程的问题。为了得到各项累加的部分和和最后的总和,要用到处理单元中的活跃标志位。 只有处于活跃状态的处理单元,才能执行相应的操作。为叙述方便,取N为8,即有8 个数A(I)顺序累加,其中 0I7。在SISD计算机上可写成下列C程序:C=0for(i=0;i8;i+)C+=Ai; 这是一个串行程序, 需要 8 次加法时间。,如果在并行处理机上,采用成对递归相加的算法,则只需log28=3 次加法时间就够了。首先,原始数据A(I)分别存放在 8 个PEM的单元中,其中 0I7。 然后,按照

10、下面的步骤求累加和:第一步 置全部PEi为活跃状态, 0i7;第二步 全部A(I)从PEMi的单元读到相应PEi的累加寄存器RGAi中, 0i7;第三步 令k=0;第四步 将全部PEi的(RGAi)转送到传送寄存器RGRi,0i7;第五步 将全部PEi的(RGRi)经过互连网络向右传送2k步距,0i7;,第六步 令j=2k-1;第七步 置PE0至PEj为不活跃状态;第八步 处于活跃状态的所有PEi执行(RGAi):=(RGAi)+(RGRi), ji7;第九步 k:=k+1;第十步 如k3,则转回第四步,否则往下继续执行;第十一步 置全部PEi为活跃状态, 0i7;第十二步 将全部PEi的累加

11、寄存器内容(RGAi)存入相应PEMi的+1单元中, 0i7。,图 6.7 并行处理机上累加和计算过程的示意图,A0,A1,A2,A3,A4,A5,A6,A7,A7,A0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,A0,0,1,0,1,0-2,0-3,1-4,2-5,3-6,4-7,A0,0,1,0-2,0-3,0-4,0-5,0-6,0-7,A0,0-2,0-3,图 6.7 并行处理机上累加和计算过程的示意图,图 6.8 循环互连网络组成框图,6.1.3 SIMD计算机的互连网络,1. 互连网络的设计目标及互连函数,2. 基本的单级互连网络,1) 立方体单级网络,图 6.9 三

12、维立方体结构,这是一个三维的情形。立方体的每一个顶点(网络的节点)代表一个处理单元,共有 8 个处理单元,用zyx三位二进制码编号。它所能实现的入、出端连接如同立方体各顶点间能实现的互连一样,即每个处理单元只能直接连到其二进制编号的某一位取反的其他 3 个处理单元上。如 010 只能连到 000、 011、110,不能直接连到对角线上的 001、100、101、111。 所以,三维的立方体单级网络有 3 种互连函数:Cube0、 Cube1和Cube2。其连接方式如图 6.10 中的实线所示。Cubei函数表示相连的入端和出端的二进制编号只在右起第i位(i=0, 1, 2)上有差别,即仅在该位

13、上的代码“0”、“1”互反,其余各位代码都相同。,立方体单级网络连接图,与i结点最近的距离就是在立方体中有直线连通的结点,只需1步就可到达;次近的是面对角线另一端的结点,至少需要2步到达;最远的是体对角线另一端的结点,需要3(n=3)步。,推广到n维的情形,N个节点的立方体单级网络共有n=log2N种互连函数, 即,式中,0in-1,Pi为入端号二进制码的第i位。当维数n3时,称为超立方体(Hyper Cube)网络。,2) PM2I单级网络PM2I单级网络是“加减2i”(Plus-Minus 2i)单级网络的简称。能实现与j号处理单元直接相连的是号为j2i的处理单元, 即,式中,0jN-1,

14、 0in-1, n=log2N。因此,它共有2n个互连函数。由于总存在PM2+(n-1)=PM2-(n-1),所以实际上,PM2I互连网络只有2n-1种不同的互连函数。,对于N=8的三维PM2I互连网络的互连函数有PM2+0、 PM2-0、PM2+1、PM2-1、PM22等 5 个不同的互连函数,它们分别为: PM2+0: (0 1 2 3 4 5 6 7) PM2-0: (7 6 5 4 3 2 1 0) PM2+1: (0 2 4 6)(1 3 5 7) PM2-1: (6 4 2 0)(7 5 3 1) PM22: (0 4)(1 5)(2 6)(3 7),图 6.11 PM2I互连网络

15、的部分连接图,有的阵列处理机采用单向环网或双向环网实现处理器的互连,可以看成是PM2I网络的特例,它仅使用了其中的PM2+0、 PM2-0或PM20互连函数。不难看出,ILLIAC 处理单元的互连也是PM2I互连网络的特例,只采用了其中的PM20和 (即PM23)4 个互连函数。PM2I单级网络的最大距离为n/2。以上面的三维PM2I互连网络的例子就可以看出,最多只要二次使用,即可实现任意一对入、 出端号之间的连接。,3) 混洗交换单级网络,图 6.12 8 个处理单元的全混连接,用互连函数表示为,式中,n=log2N,Pn-1Pn-2P1P0为入端编号的二进制码。,Shuffle函数还有一个

16、重要特性。如果把它再作一次Shuffle函数变换,得到的是一组新的代码,即Pn-3P0Pn-1Pn-2。这样, 每全混一次,新的最高位就被移至最低位。当经过n次全混后, 全部N个处理单元便又恢复到最初的排列次序。在多次全混的过程中,除了编号为全“0”和全“1”的处理单元外,各个处理单元都遇到了与其他多个处理单元连接的机会。,图 6.13 N=8 时全混交换互连网络连接图,交换开关是具有两个入端和两个出端的交换单元,用作各种多级互连网络的基本构件。不论入端或出端,如果令居于上方的都用i表示,居于下方的都用j表示, 则可以定义下列 4 种开关状态或连接方式: (1) 直连i入连i出, j入连j出;

17、 (2) 交换i入连j出, j入连i出; (3) 上播i入连i出和j出,j入悬空; (4) 下播j入连i出和j出, i入悬空。,3. 多级互连网络,只具有前两种功能的称二功能交换单元, 具有全部 4 种功能的称四功能交换单元。两个入端同时连到一个出端的情形是不允许的, 因为会发生信息传送的冲突现象。此外,还可以有第 5 种开关状态,即i入连j入,i出连j出,称此为返回。它可用来实现入端与入端相连,出端与出端相连,从而将N个入端和N个出端的网络变为 2N个处理单元的互连网络。拓扑结构是指各级之间出端和入端相互连接的模式。,控制方式是对各个交换开关进行控制的方式, 以多级立方体网络为例,它可以有

18、3 种:(1) 级控制同一级的所有开关只用一个控制信号控制, 同时只能处于同一种状态;(2) 单元控制每一个开关都有自己独立的控制信号控制, 可各自处于不同的状态;(3) 部分级控制第i级的所有开关分别用i+1个信号控制, 0in-1, n为级数。,1) 多级立方体网络 多级立方体网络有STARAN网络、 间接二进制n方体网络等。,图 6.14 N=8 多级立方体互连网络,0级,1级,2级,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,STARAN网络用作交换网络时,采用级控制,实现的是交换函数。所谓交换(Flip)函数,是将一组元素首尾对称地进行交换。如果一组元素包含有2s

19、个,则它是将所有第k个元素都与第(2s-(k+1)个元素相交换。,表 6.1 三级STARAN交换网络实现的入出端连接及所执行的交换函数功能(Ki为第i级控制信号),0级,1级,2级,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,级控制信号101,从表 6.1 可以看出,控制信号为111 时,实现的是全交换,又称镜像交换,完成对这 8 个处理单元(元素)的一组 8 元交换, 其变换图像如下:入端排列 |0 1 2 3 4 5 6 7|出端排列 |7 6 5 4 3 2 1 0| 控制信号为 001 时,完成对这 8 个处理单元(元素)的 4 组 2 元交换,其变换图像为:入端

20、排列 |0 1|2 3|4 5|6 7|出端排列 |1 0|3 2|5 4|7 6|,控制信号为 010 时,完成的功能相当于在 4 组 2 元交换后,再 2 组 4 元交换,其变换图像是: |1 0 3 2|5 4 7 6| |2 3 0 1|6 7 4 5|而控制信号为 101 时,相当于在实现上述两种交换后,再1 组 8 元交换, 其变换图像是:|2 3 0 1 6 7 4 5|5 4 7 6 1 0 3 2|,出端排列,出端排列,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7

21、,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,F=(000),F=(001),F=(010),F=(011),F=(100),F=(101),F=(110),F=(111),表 6.2 三级移数网络能实现的入出端连接及移数函数功能,1,0级,1级,2级,0,1,2,3,4,5,6,7,0,1

22、,2,3,4,5,6,7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,恒等,移1模2,移1模4,移2模4,移1模8,移2模8,移4模8,题目:编号分别为0,1,2,F的16个处理器之间要求按下列配

23、对通信:(B,1), (8,2), (7,D), (6,C), (E,4), (A,0), (9,3), (5,F)。试选择互连网络类型、控制方式,并画出该互连网络的拓扑结构和各级交换开关状态图。,分析:要求配对通讯的处理器号用二进制表示如下: (B,1)是(1011,0001) (8,2)是(1000,0010) (7,D)是(0111,1101) (6,C)是(0110,1100) (E,4)是(1110,0100) (A,0)是(1010,0000) (9,3)是(1001,0011) (5,F)是(0101,1111),如何构建N=16 4级立方体?,题目:并行处理机有16个处理器,要

24、实现相当于先4组4元交换,然后是两组8元交换,再次是一组16元交换的交换函数功能,请写出此时各处理器之间所实现之互连函数的一般式;画出相应多级网络拓扑结构图,标出各级交换开关的状态。,7.3.5 Omega网络,采用全混洗函数和交换函数,又称混洗交换网络。 1、N个输入的Omega网络有log2N级,每级有N/2个22的四功能交换开关 2、每级的拓扑结构相同 3、采用单元控制 4、能够实现任意一个输入端到任意一个输出端的连接。但不能同时实现多个输入端到多个输出端的连接。 5、能够实现从任意一个输入端到所有输出端的广播。,N=8多级混洗交换网络,A,0,1,0,1,B,2,3,2,3,C,4,5

25、,4,5,D,6,7,6,7,2级,1级,0级,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,A,0,1,0,1,B,2,3,2,3,C,4,5,4,5,D,6,7,6,7,A,0,1,0,1,B,2,3,2,3,C,4,5,4,5,D,6,7,6,7,多级混洗交换网络寻径算法(路由算法),目的:根据给定的输入/输出对应关系,确定各开关的状态。 名称:源-目的地址异或法 操作:将任一个输入地址与它要到达的输出地址作异或运算,其结果的biti位控制数据到达的第i级开关,“0”表示“直连”,“1”表示“交换”。(例如给定传输101B011B),C3,C2,C1,C0,题目:画出0

26、-7号共8个处理器的三级混洗交换网络,在该图上标出实现将6号处理器数据播送给0-4号,同时将3号处理器数据播送给其余3个处理器时的各有关交换开关的控制状态。,分析:,如果采用级控制,是STARAN交换网的逆网 如果采用部分级控制,是STARAN移数网的逆网 因此,Omega网的许多性质与多级立方体网相反,如发生冲突的情况 Omega网属于多级互连网 当有N个输入端时,共有N(N/2)个变换 要同时实现任意一个输入端到任意一个输出端的连接,共需N!个变换 8个输入端的Omega网络实际上只能实现全部变换的10%(84/8! = 4096/40320=0.1016),有90%的变换将引起阻塞 Om

27、ega网络是一种阻塞网络,采用多次通过来解决冲突 有N个输入端时,实现连接的通过次数最多为log2N,N=8的多级立方体网络和Omega网络的关系,0级,1级,2级,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,5-0,7-1,0-5,1-7,3) 多级PM2I网络,N=8多级PM2I网络,6.3.5 全排列网络如果互连网络是从N个入端到N个出端的一到一的映射, 就可以把它看成是对此N个端的重新排列。因此,互连网络的功能实际上就是用新排列来置换N个入端原有的排列。 前面所介绍的各种基本多级网络都能实现任意一个入端与任意一个出端间的连接, 但是要同时实现两对或多对入端与出端之间

28、的连接时, 都有可能因争用数据传送路径而发生冲突。 我们称具有这类性质的互连网络为阻塞式网络(Blocking Network)。 反之, 不具有这类性质的互连网络为非阻塞式网络,或称为全排列网络。非阻塞式网络连接的灵活性好,但连线多,控制复杂, 成本高。,阻塞式网络在一次传送中不可能实现N个端的任意排列。大家知道,N个端的全部排列共有N!种。可是,对使用单元控制的n=log2N级组成的间接二进制n方体网络来说,每级有N/2个开关, n级互连网络所用交换开关的总数为(Nlog2N)/2。为实现入出端的一对一映射,每个开关只能使用直连和交换两种功能。这样, 所有开关处于不同状态的总数最多只有2(

29、Nlog2N)/2,即NN/2种。当N为大于 2 的任何整数时,总有NN/2N!, 这就是说,它无法实现相应的所有N!种排列。以N=8的三级网络为例,共12个两功能交换开关,只有 212=4 096 种不同状态,最多只能控制对端子的 4 096 种排列,不可能实现全部 8!=40 320 种排列。所以,多对入出端要求同时连接时,就有可能发生冲突。,然而,只要对这个多级互连网络通行两次,每次通行时,让各开关处于不同状态,就可以满足对N个端子的全部N!种排列。 因为此时, 全部开关的总状态数可有NN/2NN/2=NN种,足以满足N!种不同排列的开关状态要求。这种只要经过重新排列已有入出端对的连接,

30、就可以完成所有可能的入出端间的连接而不发生冲突的互连网络,称为可重排列网络(Rearrangeable Network)。 实现时,可以在上述任何一种基本多级互连网络的出端设置锁存器,使数据在时间上顺序通过两次, 这实际上就是循环互连网络的实现思路。,图 6.23 多级全排列网络举例(Benes网络),6.4 共享主存构形的阵列处理机中并行存储器的 无冲突访问,图 6.24 一维数组的存贮(m=4),如果设m=n=4, 一个44 的二维数组直接按行存贮,方案如图 6.19 所示。虽然,同时访问某一行、主对角线或次对角线上的所有元素时,都可以做到无冲突地访问,但要同时访问某一列的各元素时,由于它

31、们集中存放在同一存贮分体内,会产生访存冲突,所以每次只能顺序访问其中的一个元素,致使实际频宽降低成 1/4。,图 6.25 44 数组的直接按行存贮(m=n=4),图 6.26 44 数组一种错位存放的方案 (m=n=4, 1=2=1),假设在nn的二维数组中,同一列两个相邻元素在并行存贮器中错开的地址距离为1,而同一行两个相邻元素在并行存贮器中错开的距离为2,当m取成22p+1(p为任意正整数)时,实现无冲突访问的充分条件就是让1=2p, 2=1。图 6.21 就是对 44 的二维数组按上述规则存贮的一种方案。其中 p=1, m=5, 1=2,2=1。,图 6.27 44 数组错位存放的例子

32、 (m=5, n=4, 1=2, 2=1),图 6.28 45 二维数组在并行存贮器中存放的例子(m=7, n=6),6.4.1 脉动阵列结构,图 6-29脉动阵列结构的构形举例,例如,图6-30给出了在一个脉动式二维阵列结构上进行二个 33 矩阵A、B相乘的例子。每个处理单元PE内含一个乘法器和一个加法器,可完成一个内积步运算; 每经一拍可把 3 个输入端送来的信息沿 3 个不同方向,即由左向右的水平方向、由下向上的垂直方向和由左下角到右上角的斜 45 方向, 同时将结果传送到对应的3个输出端,使aa, bb, dab+c。现设矩阵A、B分别为,则,图 6-30 脉动式二维阵列流水举例,t1

33、,a11,b11,0,t2,a12,a13,b21,b31,b12,b22,b32,b13,b23,b33,a21,a22,a23,c111,a31,a32,a33,t3,t4,t5,c111 c121,c11,c11,t6,c112,c211,c112 c122,c211 c221,c12,c21,c113,c311,c113 c123,c311 c321,c212,c212 c222,脉动阵列结构有如下一些特点: 结构简单、 规整, 模块化强 2) 数据流和控制流的设计简单规整 3) 具有极高的计算并行性 4) 脉动阵列结构的构形与特定计算任务和算法密切相关,脉动阵列机的发展目标:研制通用型脉动阵列机。,6.4.2 通用的脉动阵列结构,可编程脉动阵列结构,本 章 重 点 向量处理的基本概念 向量处理机的两种结构 提高向量处理机性能的链接技术 向量处理机的性能评价,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报