《并行处理技术与SIMD阵列机ppt课件》由会员分享,可在线阅读,更多相关《并行处理技术与SIMD阵列机ppt课件(49页珍藏版)》请在金锄头文库上搜索。
1、第7章 并行处理技术与SIMD阵列机7.1 并行处理技术7.2 SIMD阵列机7.3 典型SIMD阵列机举例7.1 并行处理技术7.1.1 并行处理的基本概念7.1.2 并行性的开发途径7.1.1 并行处理的基本概念 1.并行性的基本概念 并行性(Parallelism)也称为同时性或并发性,是指在数值计算、数据处理、信息处理或人工智能求解的过程中存在许多可以同时处理的部分,提交给计算机,同时进行处理。例如存储器猝发存取方式,就是对多个字节(或者字)同时写入或者读出;又如超标量流水线就是让多条指令同时执行。 广义地讲,并行性还可以理解为多个程序同时执行。例如,操作系统中的多道程序处理,用户屏幕
2、操作时的后台处理等。这些都可以认为是多个程序在并行执行。G =TwTc(7.1) 2.并行性的表示方法 并行处理着重开发计算过程中存在的并发事件,使之并行处理。在并行处理时,一次处理事件的大小或者规模不尽相同,常用粒度(Granularity)来表示。 所谓粒度,是衡量软件进程中所含计算量的大小,常用程序段中指令数来表示。但在实际应用中,而是假设一个并行处理系统中有P个处理器,同时执行某一任务,用Tw表示所有处理器进行计算时所用时间的总和,Tc表示所有处理器通信时间的总和,若用G表示并行处理中的粒度,则Tw =twiPi=1Tc =tciPi=1式中 式中显示Tc增大时,G减小。相反,当粒度较
3、粗时,各处理器之间的通信量减小。 3.并行性的等级 并行处理中的粒度可分为五个等级,即作业级、任务级、例行程序或子程序级、循环和迭代级及语句和指令级,如图7.1所示。 图7.1 不同层次的并行性 通常,并行处理就是在这些层次的任何一级或多级上开发并行性。层次越高,并行处理的粒度也就越大;相反,层次越低,并行处理的粒度也就越小。一般而言,粗粒度的并行开发主要采用MIMD方式;细粒度的并行性开发主要采用SIMD方式。 并行处理技术是从单处理机的并行处理逐步发展而来,包括采用多功能部件、使CPU与I/O重叠操作、流水线方式、多道程序技术以及分时等。7.1.2 并行性的开发途径 在一个计算机系统中,开
4、发并行性的途径有多种,大体上可归纳为以下三种。 1.时间重叠 时间重叠(Time interleaving)是在并行性概念中引入时间因素,使多个处理过程在时间上相互错开,轮流重叠使用同一套硬件设备的各个部分,以加快程序的执行过程。细粒度流水线就是这种并行性的典型代表。 2.资源重复 资源重复(Resource replication)是在并行性概念中引入空间因素,即重复设置硬件设备来提供并行操作的途径和系统可靠性。例如后面所要介绍的使用n个完全相同的处理器构成的SIMD阵列机就是具体的例子。另外,人们常说的热备份和多机容错技术也是重复使用某些资源,组成冗余部件,以提高系统的可靠性。 3. 资源
5、共享 资源共享(Resource sharing)是用软件的办法让多个任务按一定的时间顺序轮流使用同一套资源,以提高利用率。例如操作系统中的多道程序和分时系统就是利用软件的方法使多个用户或程序共享CPU、主存储器和外部设备等硬件资源。 并行性的开发可分为粗粒度和细粒度两种。粗粒度并行性开发主要采用的是软件方法。比如在作业(或程序)级,通过对并行算法的分析来确定可以并行操作的作业(或程序);在任务级,是通过软件对任务进行分解,将其中的子任务,乃至子任务中的例行程序、子程序及可以并行操作的循环找出来,分配给不同的处理器并行处理。 开发细粒度的并行性主要涉及到指令级及指令的内部操作,因而与处理器的外
6、特性和内特性紧密相关,因此主要采用硬件的方法来实现。随着RISC技术的发展,超级标量机、超长指令字、超级流水线等技术成为这一方向的发展趋势。7.2 SIMD阵列机7.2.1 SIMD阵列机的基本结构7.2.2 阵列机并行算法7.2.3 SIMD阵列机的特点7.2.4 并行存储器无冲突访问7.2.1 SIMD阵列机的基本结构 SIMD阵列机通常是由一个主机 (也称为控制器CU)、n个处理单元 PE、m个存储器模块和一个互连网络 IN组成。系统工作时,由主机CU将指令广播到各个处理单元PE,其中 活跃的处理单元将以同步方式执行 这一指令。从形式上看,是一种单 指令流的方式。各处理单元从各自 的存储
7、器模块中读取所需要的数据, 即多数据流的方式。互连网络IN用来 将各个处理单元PE及与存储器模块连 接起来。IN有时也称为对准(Alignment)或排列(Permutation)网络。 图7.2 分布式存储器阵列机 在SIMD阵列机中,根据存储器模块的设置方式其结构可分为分布式存储器阵列机和集中共享存储器阵列机,图7.2 所示是一种分布式存储器结构的阵列机。为了便于标量数据处理,在有的阵列机中还配有标量处理机。 1.分布式存储器阵列机 分布式存储器SIMD阵列机的结构如图7.2所示,包括主机(控制器CU)和多个功能相同的处理单元PE(Processing Element)。其中每一个PE单元
8、都拥有自己的本地存储器LM(Local Memory),各PE单元通过互连网络IN连接,实现数据交换。且配置有专门的标量处理机。 (1)主机(控制器CU)有自己的存储器,用以存储系统/用户程序和共用数据。 (2)控制器CU的职责包括两个方面: 与用户连接,接收用户输入的程序或命令; 对指令译码,并判断在哪些处理单元上执行。 对于标量指令,由控制器CU或专门的标量处理机完成;对于向量指令,则广播给各PE单元执行。 (3)各处理单元同步执行来自控制器CU的操作命令,从本地存储器中获取数据,处理结果再送回到本地存储器中去。但是在实际运算中往往不是所有的处理单元都必须参与,通常是通过屏蔽字来实现,仅允
9、许未屏蔽的活跃PE参与运算。(4)控制器CU控制互连网络IN,使参加运算的PE单元通过IN互连,进行数据交换。对于两个不能直接连接的PE,可经过中间PE进行数据传送。(5)各处理单元之间的同步由控制部件中的硬件电路来实现,确保所有活跃的PE按同一时钟执行指令。 2.集中共享存储器阵列机集中共享存储器SIMD阵列机的结构如图7.3所示,由主机(控制器CU)和多个功能相同的处理单元PE构成。每个PE单元不再拥有本地存储器,而是共享存储器阵列SM(Shared Memory)。各PE单元之间通过互连网络IN连接,且通过互连网络与共享存储器阵列连接。 图7.3 集中共享存储器阵列机 主机(控制器CU)
10、有自己的存储器,用以存储系统程序、用户程序和数据,主要职责也是两个方面,一是与用户连接,接收用户输入的程序或命令;另一方面,对指令译码,并判断在哪些处理单元上执行。对于标量指令,由控制器CU或专门的标量处理机完成;对于向量指令,则广播给各PE单元执行。每个处理单元同步执行来自控制器CU的操作命令,通过互连网络从共享存储器模块中获取数据,处理结果再送回到共享存储器模块中去。当两个处理单元之间需要交换数据时,通过互连网络连接到某一共享存储器模块上,通过共享存储器模块交换。若两个处理单元之间没有共享数据模块时,需经过多次传送来实现。 在内部结构中,控制器CU的作用与分布式存储器阵列机类似,这里不再赘
11、述。 通过以上分析可以看出,SIMD阵列机结构规整,简单,一般都与某种算法密切相关,因此具有专用性强、数据处理速度快等特点。7.2.2 阵列机并行算法 阵列机常见的算法有以下4种: 1.图像平滑算法 为使屏幕上的图形图像色彩柔和,对相邻像素的数据需要平滑处理。设用I表示输入图像,S表示输出图像,输入输出图像皆由512512个像素组成。对于简单的单色显示,每个点可用8位无符号数表示,可有256个灰度级。若相邻两点的数据相差很大,则图像的黑白反差就会很大。平滑就是让相邻两点的数据尽量接近,简单算法是取相邻像素值的平均值。 设I(i,j)表示输入图像上的一点,S(i,j)表示输出图像上的一点。那么,
12、平滑后的S(i,j)应当是I(i,j)及其相邻8个像素值的平均值。分布在I(i,j)周围的8个相邻像素点依次为I(i-1,j-1)、I(i-1,j)、I(i-1,j+1)、I(i,j-1)、I(i,j+1)、I(i+1,j-1)、I(i+1,j)、I(i+1,j+1)。对于输出图像边界上的像素,由于没有边界外的输入值,因此可按0计算。对于一帧图像来说,有512512=262144个像素,若进行一帧平滑,需进行262144次运算,这对于单一CPU所需要的时间就会很长。如果实时性要求很高,单一CPU显然是不能胜任的。因此,可用阵列机来处理。 【例7.1】 在具有1024个处理单元PE的阵列机上实现
13、上述算法。 解:1024个处理单元PE可以如图7.4(a)所示,排列成3232的阵列,每一个PE存储一个1616像素的子像块。各处理单元同时进行平滑运算时,一个PE仅进行1616=256次运算。若不考虑相互之间的通信时间,整体速度可提高1024倍。 在图7.4(a)中,PE0存储行015列015的子像块,PE1存储行015列1631的子像块,依次类推。对于每一个子像块来说,存在边界数据,因此每一个处理单元需要与相邻PE通信,如图7.4(b)所示,通信次数为164+4=68。假设每一次通信所用的时间与一次平滑运算的时间相同,那么采用阵列机以后,速度提高为262144/(256+68)=809倍。
14、 图7.4 平滑算法示意图 2.向量递归折叠加法 在向量求加和时若使用单一CPU串行运算,对于N个向量元素需要进行N-1次加法运算。为提高速度,可用多个处理单元并行递归折叠计算,下面举例说明。【例7.2】 设有8个处理单元,对8个向量元素按照递归折叠算法求和。解:首先把8个向量元素Ai(i=07)分配给8个处理单元PE0PE7,并如图7.5所示由4个处理单元并行运算,即在PE0上进行A0+A1运算,在PE2上进行A2+A3运算,在PE4上进行A4+A5运算,在PE6上进行A6+A7运算;然后再在PE0上进行A0+A1+A2+A3运算,在PE4上进行A4+A5+ A6+A7;最后在PE0上求两个
15、部分和之和。图7.5 递归折叠算法 在整个运算中仅需3次传送和3次求和。一般而言,对于N个向量元素在N个处理单元上按照递归折叠算法求和,仅需log2N次传送和加法运算。显然,速度提高。在运算过程的第一步中,PE1、PE3、PE5、PE7不参加运算,以此类推在第二步和第三步中不参加运算的处理单元,须由控制器CU中的屏蔽字予以屏蔽。3.矩阵加法运算在阵列机上进行nn阶矩阵的加法运算是一种最简单的并行运算。设A和B是nn阶矩阵,其和C=A+B也是nn阶矩阵,即: Cij=Aij+Bij 由公式可以看出,Cij仅与Aij和Bij有关,因此可把矩阵元素Aij和Bij分别存入同一处理单元的局部存储器中,结
16、果Cij也存入相应的存储器中,如图7.6所示。图中设有64个处理单元,表示地址,可对88的矩阵进行直接的并行加法运算,速度快。图7.6 矩阵加法存储器分配示意图 若设一次求和用的时间为tm,当处理单元的个数Pn2时,则nn个元素可同时进行加法运算,因此所需要的总运算时间为TP=tm。 如果Pn2,则nn个元素不能一次进行运算。在这种情况下,可将n2个元素均匀地分配到各处理器的局部存储器中,所有处理器内部串行对分配到的元素进行运算,相互之间并行运算。这样,所需要的总运算时间为TP =(n2/P)tm。 4.矩阵乘法运算 在阵列机上进行nn阶矩阵的乘法运算要比加法运算复杂得多。设A和B是nn阶矩阵
17、,传统算法C=AB,其结果元素可表示为:cij= aikbkjn-1k=0 在这种计算过程中,基本运算为n3次乘法和加法运算。若用t乘表示进行一次乘法所用的时间,t加表示进行一次加法所用的时间,则总的执行时间为T0=n3(t乘+t加)。 若在阵列机中并行运算,所用时间可大为减少。设阵列机中处理单元的个数P是某一整数m的平方,则P个处理单元可互连成mm的二维双向链路环网结构。对于nn阶矩阵,如果Pn2,可使用其中n2个处理单元进行运算。这样矩阵A、B、C中的元素Aij、Bij、Cij(0i,jn-1)映象到P(=n2)个处理单元的逻辑阵列机上,即处理单元Pij存储元素Aij、Bij,并计算Cij
18、。 在计算Cij时,需要所有Aik和Bkj(0kn-1)元素,因此矩阵A的元素在处理机阵列的每一行作多到多广播,而B的元素在每一列作多到多广播。当Pij接收完Aik和Bkj(0kn-1)之后,进行矩阵乘法和加法运算。所需要的时间由两部分组成,即运算时间和通信时间。 运算时间:在处理单元Pij上计算Cij时,需要进行n次乘法和n次加法运算,运算时间T1=n(t乘+t加)。 通信时间:在通信过程中,采用的是广播方式。设ts表示发送消息的启动时间,tw表示消息传输时间。由于该算法需要两次对n个处理进行多到多的广播通信,即每次包含一行或一列的n次并发广播,通信时间T2=2n(ts+tw)。这样,全部运
19、算时间为T=n(t乘+t加)+2n(ts+tw)如果Pn2,则不能使所有矩阵元素的计算同时进行,故需分组。设P为整数m的平方(P=m2),且n为m的整数倍,这样可将矩阵A、B与C以适当的方式分解为P块,每块为n/mn/m的子矩阵。将这些块映象到mm的阵列机上,每处理单元分得一个子矩阵。每个处理单元仍记作Pij,存储A、B和C中的子矩阵,并按nn阶矩阵规则求解矩阵C中的每一个元素。计算时,需要nn阶矩阵中某一行和某一列的所有元素,因此矩阵A的所有子块需按行作多到多广播,B的所有子块需按列作多到多广播,然后执行乘法和加法运算。T2=2(mts+ tw)=2(mts+ tw )mn2P n2 m(7
20、.3)(7.4)T = ( tm+ tp )+ 2 (mts + tw ) n2mn3m2 通信时间:设ts表示发送消息的启动时间,tw表示消息传输时间。由于该算法需要两次对m个处理单元进行多到多的广播通信,每次包含阵列机中所有行或列的m次并发广播,发送元素的个数为n2/P(子矩阵中的元素数),因此通信时间为这样,全部运算时间为 运算时间:在处理单元Pij需要对(n/mn/m)子矩阵中的每一个元素进行n次乘法和n次加法运算,因此运算时间为(7.2)T1 = n (tm+tp) = (tm+tp)n3PnmnmT= (tm+tp)+2(mts+ tw ) 则n3m2n2mT= (1+1)+2(0
21、+ 1)=9216(机器周期) 643826428【例7.3】设有6464阶矩阵A和B,在88个处理单元PE构成的阵列机上进行乘法运算,即C=AB。该阵列机采用二维双向链路环网结构,每一个PE设有本地存储器。试设计一种算法,使之在阵列机上并行运算。若设每个PE可在一个周期内执行一次乘法或加法或者一次数据传送操作,估算该乘法运算共需要多少个机器周期。 解:根据题意:m=8,n=64。若用P表示阵列机中的处理单元数,则P=m2=82n2=642。为了能在88的阵列机上并行运算,需要把矩阵A、B、C划分成P个子矩阵,依次分配到各个处理单元上。每一个子矩阵的大小为n/mn/m,即88,其分布如图7.7
22、所示。图中仅画出了矩阵A的分配,其余B和C的分配与之类似。由于t乘、t加和tw需要一个周期,这里视为机器周期,忽略ts。再将n=64和m=8代入公式:图7.7 6464矩阵分配到88阵列机上 主要特点表现在以下5个方面。 SIMD阵列机的组成与算法密切相关,是从数组和矩阵运算发展而来的;因此往往是以某种算法为背景的专用机,因此通用性不强。 在结构上,采用资源重复方法,引入空间因素,来提供并行操作的途径,是一种同时操作的并行性,所有处理单元同时执行相同的操作。 由于SIMD阵列机是围绕着某种算法研制的,因此各处理单元电路简单,整体结构规整,易于适应大规模集成电路的制作工艺,因此芯片集成度高,数据
23、 处理速度快,稳定可靠。 对于SIMD阵列机的研究主要表现在算法和网络的研究上,二者决定了阵列机的功能和技术指标,这也是阵列机研究的重点。 从阵列的角度来看,是一种同构型的并行结构。但从整体来看,它有主机或控制器,有时还配有标量处理机,因此又是一种异构型并行多处理机。7.2.3 SIMD阵列机的特点7.2.4 并行存储器无冲突访问 SIMD阵列机中为增大存储器的带宽,常采用多体交叉存储器。在设计和应用时应保证各存储体无冲突访问。1.一维数组无冲突访问 对于一维数组中的元素实现无冲突访问比较容易。比如对地址连续的元素,按低位地址交叉存放到多个存储体(m个)中,如图7.8所示。只要按连续地址同时访
24、问m个单元,带宽可比单体提高m倍 若间隔(也称为跨步)为2访问,则带宽降低一半。但是,如果使存储体的个数为质数,且与访问时的跨步互质,则可实现无冲突访问。 图7.8 一维数组存储方式 2.二维数组无冲突访问 设有44二维数组以行存储,如图7.9所示。可以看出,同时访问某一行或对角线上的元素时无冲突。但是,如果同时访问某一列上的元素,必然冲突。若要避免冲突,只能等a00读出后再访问a10,这样就使带宽降低到并行访问时的1/4。 图7.9 二维数组直接存储 图7.10 二维数组错位存储 如果把二维数组中的元素如图7.10所示每行右移一个单元存放。这样按行或列访问时不发生冲突;但是按主对角线访问发生
25、冲突,带宽降低一半;若按反对角线访问,全部冲突。因此,是值得研究的一个问题。 为了解决nn维数组在多体交叉存储器中的无冲突访问,科学家P.Budnik和D.J.Kuck提出了一种方案。该方案要求并行存储体数mn,且m为质数,同时要求各元素在行和列的方向上错开一定的距离存放。设同一列相邻元素在并行存储器中错开d1个存储体存放;同一行相邻元素在并行存储器中错开d2个存储体存放。当m=22p+1(p是任意自然数)时,能够实现按行、列、对角线和反对角线上所有元素无冲突访问的充分必要条件是d1=2p,d2=1。图7.11 按照d1和d2存储 仍以44的二维数组为例,取大于4的质数m=5作为并行存储体的个
26、数。把m=5 代入公式m=22p+1,可 求出p=1。于是可以确定d1=2p=2, d2=1。再按照d1和d2的值错位存放,如图7.11所示,即可避免在行、列、对角线和反对角线上所有元素的访问冲突。但是从图中可以看出,这种方式在存储空间上造成浪费。 对于nn维数组中的任意元素aij在无冲突并行存储器中的体号和体内地址可通过如下公式来计算: 存储体号e=(id1+jd2+k) mod m =(2pi+j+k) mod m 体内地址f=i 其中0em-1,0fn-1,k是数组第一元素a00所在体号地址,m是大于等于n的质数,p是满足m=22p+1的任意自然数。 图7.12 45数组错位存储 在这种
27、方案中,有1/(n+1)的存储单元空闲。例如图7.12所示是一个按照上述方案存储的一个45的二维数组,存储体的个数m=7。 7.3 典型SIMD阵列机举例7.3.1 ILLIAC-阵列机7.3.2 BSP阵列机7.3.1 ILLIAC-阵列机 1.ILLIAC-阵列机概述 ILLIAC-阵列机是由美国宝来(Burroughs)公司和伊利诺斯大学于20世纪70年代推出的典型SIMD计算机,其组成如图7.13(a) 所示,由64个处理单元PE和一个控制器CU构成。控制器CU控制程序的执行和执行过程中的任务分配。整个系统由一台B6700作为宿主机,与外部网络和外部设备连接。每个PE单元设有局部存储器
28、PEM、4个64位的寄存器、加/乘算术运算器、逻辑处理单元以及地址加法器等。PEM的容量为2K字,字长64位;4个64位的寄存器分别作为累加器、操作数寄存器、数据路由寄存器和通用寄存器。另外,还有一个变址寄存器和一个方式寄存器。其中前者用于变址寻址,后者用来设置PE屏蔽字。图7.13 ILLIAC-阵列机示意图 2. PE阵列 ILLIAC-是一种典型的分布式存储器结构的SIMD阵列机。它的互连网络是一种闭合螺旋线形状,因此也称为闭合螺旋线阵列。其中的每一个处理单元PE如图7.13(b)所示,仅与相邻的4个PE连接,即PEi-8、PEi-1、PEi+1和PEi+8。这样,如果需要把数据从一个处
29、理单元PE传送到较远的一个PE时,中间需要经过多个PE传送。若设处理单元数为N,则传送步数SN-1。这里,N=64,所以S7。 【例7.3】如图7.13(b)所示,试回答以下问题。 (1)从处理单元PE10到PE46的最短路径? (2)从处理单元PE63到PE10的最短路径? (3)从处理单元PE9到PE46的最短路径? 解:根据图7.8(b)进行分析,并沿路径推算,其结果如下,最大距离均不超过7。 (1)PE10PE9PE8PE0PE63PE62PE54PE46,S=7; (2)PE63PE7PE8PE9PE10,S=4; (3)PE9PE1PE57PE56PE48PE47,S=6。图7.1
30、3 ILLIAC-阵列机示意图 在ILLIAC-阵列机中,各处理单元中的局部存储器PEM联合成存储器阵列,用来存放数据和指令。整个存储器阵列接受CU访问,而每一个处理单元只能访问自己的局部存储器。分布在各局部存储器PEM中的数据只有读出到控制器CU之后,再通过数据总线广播到其它PE单元。所有处理单元可对64位、32位和8位数据进行算术与逻辑运算处理。由于这种阵列结构简单,因此灵活性和运算速度都不很高。当64个处理单元同时工作时,系统的峰值浮点运算速度约为2亿次/每秒。 3.ILLIAC-阵列机的整体结构 ILLIAC-阵列机的整体结构如图7.14所示,除了上述PE阵列和控制器CU之外就是宿主机
31、,早期使用的是B6500,以后使用的是B6700。围绕B6700设有I/O缓冲存储器、磁盘文件系统DFS、控制描述字控制器CDC和I/O开关等,提供4条信息通路和输入输出系统。图7.14 ILLIAC-阵列机总体框图 (1)控制器CU 控制器CU的主要作用是对指令流进行译码和控制,向各处理单元发送执行数组操作指令所需要的控制信号;产生并向各处理单元广播公共地址和共用数据;而且能够执行标量指令,完成有关的标量操作;另外,还能接收并处理各处理单元的计算错误、系统输入/输出以及B6700产生的陷阱中断等操作。 (2)信息通路 信息通路主要是CU总线、公共数据总线CDB、模式位线和指令控制线。其中CU
32、总线在控制器和各处理单元的局部存储器PEM之间构成信息通路,用来传送指令和数据;在传送时,常以8个64位字作为一个信息块。公共数据总线CDB为64位,是CU向各处理单元广播数据的通路。模式位线主要用来传送方式寄存器中的状态信息,以确定活动处理单元。指令控制线约有200多条,控制各处理单元的工作。 (3)输入/输出系统 输入/输出系统由磁盘文件系统DFS、I/O分系统和B6700组成,而I/O分系统又由输入/输出开关IOS、控制描述字控制器CDC和输入/输出缓冲存储器BIOM三个部分组成。 输入输出开关IOS一是作为开关,把DFS或实时装置连接到阵列存储器中,进行数据传送,二是作为DFS和PEM
33、之间的缓冲,以平衡数据宽度。控制描述字控制器CDC主要用来对阵列控制器的I/O请求进行处理,在DFS与各处理单元的PEM之间传送程序和指令,即向PEM加载;加载完成后,向CU发送控制信号,使之执行ILLIAC-的程序。输入输出缓冲存储器BIOM处在DFS和B6700之间,主要完成二者之间传送带宽的匹配。 4. B6700计算机的作用 B6700是系统管理计算机,用以管理全部系统资源,完成用户程序的汇编或编译,为ILLIAC-进行作业调度和存储器分配,产生I/O控制描述字并送至CDC,响应并处理CU的中断请求。另外,还提供操作系统所具备的其它服务。7.3.2 BSP阵列机 BSP是美国Burro
34、ughs公司和依里诺大学联合设计的用于科学计算的并行处理机,采用集中共享存储器结构,将资源重复与时间重复结合起来开发并行性,以提高运算速度。它的主频较低,处理器和存储器周期约为160ns,依靠16个处理单元的并行工作,可使处理速度达到5千万次浮点运算/每秒。图7.15 BSP阵列机流水结构示意图 BSP阵列机的结构如图7.15 所示,核心部件包括16个处理单元、17个共享存储器模块、1个指令译码与控制部件、2个对准网络。每存储器模块为512KW,对准网络由全交叉开关网络组成。在指令译码与控制部件的管理下,16个处理单元、17个共享存储器模块和对准网络构成5级流水线,使几条向量指令重叠执行。 为了保证存储器的无冲突访问,这里采用了两套对准网络,在存储器中采用错开存放数据的方法,而并行(16个)处理单元则按正常顺序排列,对数据进 行处理。即17个存储器模块并行读出16个数据,经对准网络NW1重新排列成16个处理单元所需要的顺序,送并行处理单元进行处理;处理结果再经对准网络 NW2重新排列成17个存储器模块所需要 的顺序,写入存储器。两套对准网络在 存储器读/写时,为了无冲突访问而使数据错开传送和存放。 由于引入了资源重复与时间重复两种因素,也就是两个并行性,因而可同时实现向量元素的流水线操作和向量指令的重叠执行。这样,可使任意长度的向量按16个分量分段,依次在时间上重叠处理。