计算机系统结构6_第1页
计算机系统结构6_第2页
计算机系统结构6_第3页
计算机系统结构6_第4页
计算机系统结构6_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章 阵列处理机6.1 阵列处理机的原理6.2 SIMD计算机的互连网络6.3 共享主存构形的阵列处理机中并行存储器的无冲突访问6.4 脉动阵列流水处理机 阵列处理机阵列处理机(Array Processor)(Array Processor)也称也称并行处理并行处理机机(Parallel Processor)(Parallel Processor)通过重复设置大量相同的通过重复设置大量相同的处理单元处理单元PE(Processing Element)PE(Processing Element),将它们按一定,将它们按一定方式互连成阵列方式互连成阵列, ,在单一控制部件在单一控制部件CU(C

2、ontrol Unit)CU(Control Unit)控制下,对各自所分配的不同数据并行执行同一组控制下,对各自所分配的不同数据并行执行同一组指令规定的操作,操作级并行的指令规定的操作,操作级并行的SIMDSIMD计算机,它适计算机,它适用于矩阵运算。用于矩阵运算。 6.1.1阵列处理机的构形和特点具有分布式存储器的阵列处理机构形具有分布式存储器的阵列处理机构形 图图 6.2 具有集中式共享存储器的阵列处理机构形具有集中式共享存储器的阵列处理机构形 2. 阵列处理机的特点阵列处理机的特点 阵列处理机的单指令流多数据流处理方式和由它产生的特殊结构是以阵列处理机的单指令流多数据流处理方式和由它产

3、生的特殊结构是以诸如有限差分、矩阵、信号处理、线性规划等一系列计算问题为背景发展诸如有限差分、矩阵、信号处理、线性规划等一系列计算问题为背景发展起来的。这些计算问题的共同特点是可以通过各种途径把它们转化成为对起来的。这些计算问题的共同特点是可以通过各种途径把它们转化成为对数组或向量的处理,而阵列处理机正好利用多个处理单元对向量或数组所数组或向量的处理,而阵列处理机正好利用多个处理单元对向量或数组所包含的各个分量同时计算,包含的各个分量同时计算, 从而获得很高的处理速度。与同样擅长于向量从而获得很高的处理速度。与同样擅长于向量处理的流水线处理机相比,处理的流水线处理机相比,阵列处理机利用的是资源

4、重复阵列处理机利用的是资源重复,而不是时间重,而不是时间重叠;叠;利用并行性中的同时性利用并行性中的同时性,而不是并发性。它的每个处理单元要同等地,而不是并发性。它的每个处理单元要同等地担负起各种运算功能,但其设备利用率却可能没有多个单功能流水线部件担负起各种运算功能,但其设备利用率却可能没有多个单功能流水线部件那样高。因此,只有在硬件价格有了大幅度下降及系统结构有了较大改进那样高。因此,只有在硬件价格有了大幅度下降及系统结构有了较大改进的情况下,阵列处理机才能具有较好的性能价格比。阵列处理机主要是的情况下,阵列处理机才能具有较好的性能价格比。阵列处理机主要是靠靠增大处理单元个数来提高运算速度

5、增大处理单元个数来提高运算速度,比起向量流水线处理机主要依靠缩短,比起向量流水线处理机主要依靠缩短时钟周期来说,时钟周期来说, 速度提高的潜力要大得多。速度提高的潜力要大得多。 6.2.2. ILLIAC 的处理单元阵列结构的处理单元阵列结构 PUi为处理部件,包含为处理部件,包含 64 位的算术处理单元位的算术处理单元PEi、所带的、所带的局部存贮器局部存贮器PEMi和存贮器逻辑部件和存贮器逻辑部件MLU。64个处理部件个处理部件PU0PU63 排列成排列成 88 的方阵。的方阵。任何一个任何一个PUi只与其上、下、只与其上、下、左、右左、右 4个近邻个近邻PUi-8(mod 64)、PUi

6、+8(mod 64)、PUi-1(mod 64)和和PUi+1(mod 64)直接相连。直接相连。循此规则,上、下方向上同一列循此规则,上、下方向上同一列两端的两端的PU相连构成一个环,左、右方向上每一行的右端相连构成一个环,左、右方向上每一行的右端PU与与下一行的左端下一行的左端PU相连,相连, 最下面一行右端的最下面一行右端的PU与最上面一行与最上面一行左端左端PU相连,从而形成一种闭合的螺线形状,相连,从而形成一种闭合的螺线形状, 所以又称闭合所以又称闭合螺线阵列。在这个阵列中,步距不等于螺线阵列。在这个阵列中,步距不等于1 或或8 的任意处理的任意处理单元之间的通信,可以用软件方法寻找

7、最短路径进行,其单元之间的通信,可以用软件方法寻找最短路径进行,其最最短距离都不会超过短距离都不会超过 7 步步。 PU63PU10PU10 例如,要将例如,要将PU63的信息传送到的信息传送到PU10,最快可经,最快可经PU63PU7PU8PU9PU104 步即可实现,而要将步即可实现,而要将PU9的信息传送到的信息传送到PU45,最快可经,最快可经PU9PU1PU57PU56PU48PU47PU46PU45 7 步步实现。实现。 普遍来讲,普遍来讲, 个处理单元组成的阵列个处理单元组成的阵列中,任意两个处理单元之间的最短距离不会超过中,任意两个处理单元之间的最短距离不会超过 步。步。 NN

8、N1N 1) 矩阵加矩阵加 在阵列处理机上,解决矩阵加法是最简单的一维情形。在阵列处理机上,解决矩阵加法是最简单的一维情形。若有两个若有两个 88 的矩阵的矩阵A、B相加,所得结果矩阵相加,所得结果矩阵C也是一个也是一个 88 的矩阵。只需把的矩阵。只需把A、B居于相应位置的分量存放在同一居于相应位置的分量存放在同一个个PEM内,且在全部内,且在全部 64 个个PEM中,令中,令A的分量均为同一地的分量均为同一地址址,B的分量单元均为同一地址的分量单元均为同一地址+1,而结果矩阵,而结果矩阵C的各个结的各个结果分量也相应存放于各果分量也相应存放于各PEM同一地址同一地址+2的单元内,如图的单元

9、内,如图 6.4 所示。这样,只需用下列所示。这样,只需用下列3条条ILLIAC 的汇编指令就可以一的汇编指令就可以一次实现矩阵相加:次实现矩阵相加: 6.1.3 阵列处理机的算法举例阵列处理机的算法举例LDA ALPHA ; 全部全部()由由PEMi送送PEi的累加器的累加器RGAiADRN ALPHA+1 ; 全部全部(+1)与与(RGAi)进行浮点加,进行浮点加, 结果送结果送RGAiSTA ALPHA+2 ; 全部全部(RGAi)由由PEi送送PEMi的的+2单元单元 这里,这里, 0i63。 图 6.4 矩阵相加的存贮器分配举例 PE0PE1PE63 3) 矩阵乘矩阵乘 由于矩阵乘是

10、二维数组运算,故它比循环加要复杂一些。由于矩阵乘是二维数组运算,故它比循环加要复杂一些。设设A、B和和C为为3个个 88 的二维矩阵。若给定的二维矩阵。若给定A和和B,则为计算,则为计算C=A*B的的 64 个分量,可用下列公式个分量,可用下列公式 70kkjikijbac其中, 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、K三重循环完成。每

11、重循环执行三重循环完成。每重循环执行 8 次,总次,总共需要共需要512次乘、加的时间,此外每次还应包括执行循环控制、次乘、加的时间,此外每次还应包括执行循环控制、 判别等其他操作需花费的时间。而如果在判别等其他操作需花费的时间。而如果在SIMD阵列处理机上阵列处理机上运算,则可用运算,则可用 8 个处理单元并行计算矩阵个处理单元并行计算矩阵C(I,J)的某一行或的某一行或某一列,即将某一列,即将J循环或循环或I循环转化成一维的向量处理,从而消循环转化成一维的向量处理,从而消去了一重循环。去了一重循环。 以消去以消去J循环为例,可执行用循环为例,可执行用C语言编写的下列程序语言编写的下列程序

12、for(i=0;i8;i+) cij:0-7=0; for(k=0;k8;k+) cij:0-7+=aik*bkj:0-7 图 6.5 矩阵乘程序执行流程图A00A01A02A03A04A05A06A07I=0;K=001234567RGA00000000C00C01C02C03C04C05C06C07A00A00A00A00A00A00A00A00B00B01B02B03B04B05B06B07*c00c01c02c03c04c05c06c07c00c01c02c03c04c05c06c07A00A01A02A03A04A05A06A07A01A01A01A01A01A01A01A01B10

13、B11B12B13B14B15B16B17c00c01c02c03c04c05c06c07图 6.6 矩阵乘的存贮器分配举例 4) 累加和累加和 这是一个将这是一个将N个数的顺序相加过程转变为并行相加过程个数的顺序相加过程转变为并行相加过程的问题。为了得到各项累加的部分和和最后的总和,要用到的问题。为了得到各项累加的部分和和最后的总和,要用到处理单元中的活跃标志位。处理单元中的活跃标志位。 只有处于活跃状态的处理单元,只有处于活跃状态的处理单元,才能执行相应的操作。为叙述方便,取才能执行相应的操作。为叙述方便,取N为为8,即有,即有8 个数个数A(I)顺序累加,其中顺序累加,其中 0I7。 在

14、在SISD计算机上可写成下列计算机上可写成下列C程序:程序: C=0 for(i=0;i0,7-10-5,1-73) 多级PM2I网络 N=8多级PM2I网络 6.3.5 全排列网络全排列网络 如果互连网络是从如果互连网络是从N个入端到个入端到N个出端的一到一的映射,个出端的一到一的映射, 就可以把它看成是对此就可以把它看成是对此N个端的重新排列。因此,互连网络的个端的重新排列。因此,互连网络的功能实际上就是用新排列来置换功能实际上就是用新排列来置换N个入端原有的排列。个入端原有的排列。 前面所前面所介绍的各种基本多级网络都能实现任意一个入端与任意一个出介绍的各种基本多级网络都能实现任意一个入

15、端与任意一个出端间的连接,端间的连接, 但是要同时实现两对或多对入端与出端之间的但是要同时实现两对或多对入端与出端之间的连接时,连接时, 都有可能因争用数据传送路径而发生冲突。都有可能因争用数据传送路径而发生冲突。 我们称我们称具有这类性质的互连网络为具有这类性质的互连网络为阻塞式网络阻塞式网络(Blocking Network)。 反之,反之, 不具有这类性质的互连网络为不具有这类性质的互连网络为非阻塞式网络非阻塞式网络,或称为,或称为全排列网络。非阻塞式网络连接的灵活性好,但连线多,控制全排列网络。非阻塞式网络连接的灵活性好,但连线多,控制复杂,复杂, 成本高。成本高。 阻塞式网络在一次传

16、送中不可能实现阻塞式网络在一次传送中不可能实现N个端的任意排列。大个端的任意排列。大家知道,家知道,N个端的全部排列共有个端的全部排列共有N!种种。可是,对使用单元控制。可是,对使用单元控制的的n=log2N级组成的间接二进制级组成的间接二进制n方体网络来说,每级有方体网络来说,每级有N/2个个开关,开关, n级互连网络所用交换开关的总数为级互连网络所用交换开关的总数为(Nlog2N)/2。为实现。为实现入出端的一对一映射,每个开关只能使用直连和交换两种功能。入出端的一对一映射,每个开关只能使用直连和交换两种功能。这样,这样, 所有开关处于不同状态的总数最多只有所有开关处于不同状态的总数最多只

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

18、级互连网络通行两次,每次通行时,然而,只要对这个多级互连网络通行两次,每次通行时,让各开关处于不同状态,就可以满足对让各开关处于不同状态,就可以满足对N个端子的全部个端子的全部N!种种排列。排列。 因为此时,因为此时, 全部开关的总状态数可有全部开关的总状态数可有NN/2NN/2=NN种,种,足以满足足以满足N!种不同排列的开关状态要求。这种只要经过重新种不同排列的开关状态要求。这种只要经过重新排列已有入出端对的连接,就可以完成所有可能的入出端间排列已有入出端对的连接,就可以完成所有可能的入出端间的连接而不发生冲突的互连网络,称为可重排列网络的连接而不发生冲突的互连网络,称为可重排列网络(Re

19、arrangeable Network)。 实现时,可以在上述任何一种基实现时,可以在上述任何一种基本多级互连网络的出端设置锁存器,使数据在时间上顺序通本多级互连网络的出端设置锁存器,使数据在时间上顺序通过两次,过两次, 这实际上就是循环互连网络的实现思路。这实际上就是循环互连网络的实现思路。 图 6.23 多级全排列网络举例(Benes网络) 6.4 共享主存构形的阵列处理机中并行存储器的共享主存构形的阵列处理机中并行存储器的无冲突访问无冲突访问 图 6.24 一维数组的存贮(m=4) 如果设如果设m=n=4, 一个一个44 的二维数组直接按行存贮,方案的二维数组直接按行存贮,方案如图如图

20、6.19 所示。虽然,同时访问某一行、主对角线或次对角所示。虽然,同时访问某一行、主对角线或次对角线上的所有元素时,都可以做到无冲突地访问,但要同时访线上的所有元素时,都可以做到无冲突地访问,但要同时访问某一列的各元素时,由于它们集中存放在同一存贮分体内,问某一列的各元素时,由于它们集中存放在同一存贮分体内,会产生访存冲突,所以每次只能顺序访问其中的一个元素,会产生访存冲突,所以每次只能顺序访问其中的一个元素,致使实际频宽降低成致使实际频宽降低成 1/4。 图 6.25 44 数组的直接按行存贮(m=n=4) 图 6.26 44 数组一种错位存放的方案(m=n=4, 1=2=1) 假设在nn的

21、二维数组中,同一列两个相邻元素在并行存贮器中错开的地址距离为1,而同一行两个相邻元素在并行存贮器中错开的距离为2,当m取成22p+1(p为任意正整数)时,实现无冲突访问的充分条件就是让1=2p, 2=1。图 6.21 就是对 44 的二维数组按上述规则存贮的一种方案。其中 p=1, m=5, 1=2,2=1。 图 6.27 44 数组错位存放的例子(m=5, n=4, 1=2, 2=1) 图 6.28 45 二维数组在并行存贮器中存放的例子(m=7, n=6) 6.4.1 脉动阵列结构脉动阵列结构 图图 6-29脉动阵列结构的构形举例脉动阵列结构的构形举例 例如,图6-30给出了在一个脉动式二维阵列结构上进行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论