版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章并行处理与互连网络10.1并行处理的概念10.2并行处理机基本结构10.3SIMD计算机基本结构
10.4SIMD计算机的应用10.5互连网络的概念10.6静态互连网络10.7动态互连网络10.8互连网络的消息传递机制关联习题
10.1并行处理的概念
10.1.1并行性研究改进计算机系统结构的一个主要方面是如何开发出并行性。并行性(Parallelism)是指问题中具有可同时进行运算或操作的特性。如在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不同的任务为并行性。开发并行性的目的是为了能予以并行处理,以提高解题效率。并行性有两个含义:一是同时性(Simultaneity),是指两个或多个事件在同一时刻发生在多个资源中;二是并发性(Concurrency),指两个或多个事件在同一时间间隔内发生在多个资源中。并行处理是一种有效地强调开发计算过程中并行事件的信息处理方式,是提高系统性能的主要手段之一。如在运算器中采用串行结构运算,每次进行一位运算,那么完成n位数据的运算要花费n个时间单位。如果采用并行结构,设置一个n位运算器,则用1个时间单位就可完成(理想状态下)。可以看出,在元器件速度相同的条件下,后者的速度几乎是前者的n倍。可见,并行处理能大幅度地提高计算机系统的运行速度。10.1.2并行性的等级和分类从不同的角度看,并行性可分为不同的类型。
1.从计算机系统处理数据的角度从计算机系统处理数据的角度看,并行性等级由低到高,分别是位串字串(串行单处理机,无并行性)、位并字串(传统并行单处理机)、位片串字并、全并行。
2.从计算机信息加工的各个步骤和阶段的角度从计算机信息加工的各个步骤和阶段的角度看,并行性等级可分为如下四种:
1)存储器操作并行性
存储器操作并行性是指可采用单体多字、多体交叉存取等方式,在一个存储周期内访问多个字。如并行存储器和相连处理机。
2)处理器操作步骤并行处理器操作步骤并行是指指令处理器在执行取指令、分析指令、执行指令等过程中的并行。如流水线处理机。
3)处理器操作并行
处理器操作并行是指为支持向量、数组运算,可以通过重复设置处理单元进行。如阵列并行处理机。
4)指令、任务、作业的并行
这种并行称为高级并行,指令级以上并行是指多个处理机同时对多条指令及有关的数据进行处理。如多指令流多数据流多处理机、分布处理系统和计算机网络等。
3.从计算机系统中执行程序的角度从计算机系统中执行程序的角度看,并行性等级由低到高,分别是指令内各微操作之间的并行、多条指令之间的并行、多个任务或进程之间的并行和多个作业或程序之间的并行。
4.从系统结构发展的角度从系统结构发展来看,并行性等级由低到高,分别是高性能的单处理机、SIMD并行处理机、多处理机和多计算机系统、冯·诺依曼计算机。按照Flynn分类法归纳的并行计算机体系结构如图10-1所示。图10-1并行计算机的Flynn分类图10.1.3开发并行性的途径可通过多种技术途径来提高计算机系统的并行性。通常以时间重叠、资源重复和资源共享为开发并行性的三个主要途径。
1.时间重叠(TimeInterleaving)时间重叠是在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度,如指令内部各操作步骤采用重叠流水的工作方式。一条指令的解释分为取指、分析、执行三大步骤,分别在相应的硬件上完成。只要不出现相关,则每过一个t时间,就可以流出结果,从而加快了程序的执行速度。这种时间重叠技术原则上不需要增加更多的硬件设备就可以提高计算机系统的性能价格比。
2.资源重复(ResourceReplication)资源重复是在并行性中引入空间的因素。它是靠重复设置硬件资源来提高可靠性或性能的,如通过使用两台或多台完全相同的处理机或计算机完成同样的任务来提高性能。典型的例子是双工系统、相连处理机和阵列处理机等。
3.资源共享资源共享是用软件方法让多个用户共用同一套资源,通过提高系统资源的利用率来提高系统的性能和效率。典型的例子是多道程序分时系统,它是利用共享CPU、主存资源以降低系统价格来提高设备利用率的一个实例。例子还包括计算机网络和分布处理系统等。沿时间重叠途径,多个处理机进行流水线构成的多处理机,一般都是非对称型或异构型的;沿资源重复途径,构成的相联处理机和阵列处理机都是对称型或同构型的多处理机;沿资源共享途径发展的多处理机则既可以是同构型的,也可以是异构型的。10.2并行处理机基本结构并行处理机也称阵列机,采用资源重复的并行性措施实现。并行处理机将大量重复设置的多个处理单元PE(ProcessingElement)按一定方式互连成阵列,在统一的控制部件CU(ControlUnit)控制下,对各自所分配的不同数据并行执行同一指令规定的操作,是操作并行的SIMD(单指令流多数据流)计算机。它采用资源重复的措施开发并行性,是以SIMD方式工作的。这里的PE是指不带指令控制部件的算术逻辑运算单元。10.2.1并行处理机的两种典型结构并行处理机通常由一个控制器(ControlUnit,CU)、N个处理单元(ProcessingElement,PE)、M个存储模块以及一个互连网络部件(InterConnectionNetwork,ICN)组成。根据其中存储器模块的分布方式,并行处理机可分为两种基本结构:分布式存储器的并行处理机和共享存储器的并行处理机。这两种结构的共同特点是在整个系统中设置多个处理单元,各个处理单元按照一定的连接方式交换信息,在统一的控制部件作用下,各自对分配来的数据并行地完成同一条指令所规定的操作。下面分别对这两种基本结构进行介绍。
1.分布式存储器结构并行处理机分布式存储器结构并行处理机具备四个特点:①包含重复设置的多个同样的处理单元PE,通过数据寻径网络以一定方式互相连接;②各PE都拥有自己的局部存储器(ProcessingElementMemory,PEM),存放被分配的数据并只能被本处理单元直接访问;③在统一的阵列控制部件作用下,实现并行操作;④程序和数据通过主机装入控制存储器。由于通过控制部件的是单指令流,所以指令的执行顺序还是和单处理机一样,基本上是串行处理。其结构图如图10-2所示。图10-2分布式存储器的并行处理机结构图这种结构的并行处理机处理单元的数目和存储体的数目是相同的,每个处理单元仅和自己的存储体相连,直接交换数据。在实现时,为了有效地进行高速处理,数据应在各存储体间合理分配,使各处理单元都可以依靠自身存储体中的数据进行运算。各数据单元之间交换数据是经过两条途径相互联系:一条是直接通过互连网络;另外一条是如果在某个存储体中存有各处理单元都需要的公共数据,则可以通过将处理单元局部存储体PEM读入控制单元,然后通过公共数据总线“广播”到全部处理单元中。在处理单元很多的并行处理机中,PE之间的互连网络只能是有限而固定的连接。
ILLIAC-IV是这种结构的SIMD机器,它由64个本地存储器的PE组成,PE间通过8×8环绕连接网格实现互连,因而也称为阵列处理机,其处理速度达每秒150×106次64位浮点加法运算。各种SIMD机器的主要差别在于进行PE之间互相通信的数据寻径网络不同。目前的大部分并行处理机是基于分布式存储器模型的系统。
2.共享存储器并行处理机共享存储器并行处理机结构有M个存储体构成统一的并行处理机存储器,经过互连网络ICN连接,为全部处理单元PE0~PEn-1所共享,其结构图如图10-3所示。图10-3共享存储器的并行处理机结构图为了使各处理单元能同时对向量的各个元素进行并行处理,一般都使存储体的数量M大于或等于处理单元的数量n。同时,在存储体之间合理分配数据,使各处理单元数据能来自不同的存储体,从而受存储器冲突的影响最小。从图10-3中可以看出,在这种结构中,互连网络是处理单元和存储器之间交换数据的通道,它提供多种连接方式,每个处理单元之间的数据传送使大多数向量运算不受影响。同时也可以看到,这种互连网络是复杂的,因此,这种结构在处理单元数量不大的情况下是很理想的。如Burroughs公司和伊利诺斯大学在1979年研制的科学处理机BSP,就属于这种结构,它有16个处理单元,17个存储体,最高的向量运算速度可达50×106次浮点加法运算。10.2.2并行处理机的特点并行处理机利用多个处理单元对向量或数组所包含的各个分量同时进行运算,从而易于获得很高的处理速度。与同样擅长于向量处理的流水线处理机相比,并行处理机有如下特点:
1.多处理单元的互连网络连接互连网络是并行处理的最有特色的一个组成部分,它规定了处理单元的连接方式,决定了并行处理能适应的算法类别,对系统整体的各项性能指标产生了重要的影响。
2.依靠资源重复并行措施并行处理机获得高速度的主要原因就是使用大量的处理单元对向量所包含的各个分量进行运算,每一个处理单元要负责多种处理功能,相当于向量处理机中的多功能流水线部件,但其效率要比单个的功能流水线低。因此,只有在硬件价格降低和系统结构不断改进,并行处理机才具有较好的性能价格比。
3.同时性并行处理机的每个处理单元在同一时刻要同等地担负起各种运算功能,相当于向量处理机的多功能流水线部件那样,但其效率(设备利用率)可能没有多个单功能流水线部件那样高。
4.运算速度高主要是靠增大处理单元个数,与依靠缩短时钟周期的向量流水线处理机来说,速度提高的潜力要大得多。正像并行处理机的特点描述一样,并行处理机主要是由处理单元代替了向量处理机中的流水线,用设备的重复设置达到高速运算的目的。事实上,SIMD计算机正是属于多处理单元的这一类,下面将重点介绍SIMD计算机的结构与设计。10.3SIMD计算机基本结构
SIMD计算机属于多处理机单元范畴,它含一个控制单元、多个处理单元,取指令在控制单元的作用下进行,取出的指令经分析译码后送给各处理器协作完成任务,也就是说,指令流是单独的,数据流是多倍的。下面着重以典型SIMD计算机为例介绍其发展进程、结构和设计。10.3.1SIMD计算机模型
SIMD计算机的抽象模型可以理解为:在同一个控制部件管理下,有多个处理单元,所以处理单元均收到从控制部件广播来的同一条指令,但操作对象是不同的数据。
H.J.Siegel提出了SIMD计算机的操作模型,如图10-4所示。图10-4SIMD计算机的操作模型
SIMD计算机的操作模型可用五元组表示:M=(N,C,I,M,R),其字母所代表的含义如下:
N为机器的处理单元(PE)数。例如,Illiac Ⅳ采用64个PE,连接机(ConnectionMachine)CM-2采用65 536个PE。
C为由控制部件(CU)直接执行的指令集,包括标量和程序流控制指令。
I为由CU广播至所有PE进行并行执行的指令集,它包括算术运算、逻辑运算、数据寻径、屏蔽以及其它由每个活动的PE对它的数据所执行的局部操作。
M为屏蔽方案集,其中每种屏蔽将PE集划分为允许操作和禁止操作两种子集。
R是数据寻径功能集,说明互连网络中PE间通信所需要的各种设置模式。10.3.2SIMD计算机发展过程
Illiac Ⅳ是最先采用SIMD计算机结构的计算机。它分成两个分支,一个是用位线PE制造的SIMD计算机,如GoodyearMPP、AMT/DSP610和TMC/CM-2,CM-5是以SIMD模式运行的同步SIMD计算机;另外一个是用字宽运算PE的中粒度SIMD计算机,如BSP是16台处理机和17个存储模块同步工作的共享存储SIMD计算机,MasParMP-1是中粒度SIMD计算机。SIMD计算机的发展过程如图10-5所示。图10-5SIMD计算机的发展过程图10.3.3IlliacⅣ计算机
Illiac Ⅳ阵列机是世界上最早采用SIMD结构设计的计算机,由美国宝来公司(Burroughs)和伊利诺斯大学于1965年合作研制,并于1972年生产。Illiac Ⅳ 系统结构如图10-6所示。图10-6IlliacⅣ 的系统结构框图
Illiac Ⅳ 由两大部分组成,即Illiac Ⅳ 阵列和Illiac Ⅳ 输入/输出系统。具体来讲,它是由三种类型处理机联合组成的多机系统:一是专门对付数组运算的处理单元阵列(ProcessingElementArray);二是阵列控制器(ArrayControlUnit),它既是处理单元阵列的控制部分,又可以看做是一台相对独立的小型标量处理机;三是一台标准的BurrouthsB6700计算机,担负Illiac Ⅳ 输入/输出系统和操作系统的管理功能。
1.Illiac Ⅳ 阵列
Illiac Ⅳ 阵列处理器采用分布式存储器结构。每个处理单元配有专用的存储器模块,共由64个处理单元、64个处理单元存储器和存储器逻辑部件所组成。这个阵列的64个处理部件PU0~PU63排列成8×8的方阵,每一个PUi只和其东、西、南、北四个近邻PUi+1(mod64)、PUi-1(mod64)、PUi+8(mod64)和PUi-8(mod64)有直接连接。按照此规则,南北方向上同一列的PU两端相连成一个双向环,东西方向上每一行的东端PU与下一行的西端PU双向相连,最下面一行的东端PU则与最上面一行的西端PU双向相连,从而8行构成一个闭合螺线形状。因此,Illiac Ⅳ 的阵列结构又称为闭合螺线阵列。如图10-7所示。图10-7Illiac Ⅳ 各处理单元阵列结构的闭合螺线连接方式这种连接方式既便于一维长向量(最多64个元素)的处理,又便于两维数组运算,从而缩短处理单元之间数据传送的路径距离。在这个阵列中,任意两个单元之间的数据传送步距不超过7步。一般来讲,这种闭合螺线结构的连接方式,有n×n个单元组成的阵列中,任意两个处理单元之间的最短距离不会超过(n-1)步。例如,从PU10到PU45的距离以下列路径为最短:PU10→PU1→PU57→PU56→PU48→PU47→PU46→PU45处理单元数组处理的运算部分,可对64位、32位和8位操作数进行多种算术和逻辑操作,包括48位、24位或8位定点运算。处理单元存储器PEM分属每一个处理单元,各有2048×64位的存储容量和不大于350 ns的取数时间。64个PEM联合组成阵列存储器,存放数据和指令。PE和PEM之间经过存储器逻辑部件MLU相连,这些部件用于处理机与存储模块接口的逻辑电路,它包含存储器信息寄存器和有关控制逻辑线路,用于实现PEM分别与PE、CU以及I/O之间的信息传送。
2.阵列控制器阵列控制器CU实际上是一台小型控制计算机。它除了对阵列的处理单元实行控制以外,如发控制信号、广播公共地址、广播公共数据,还能利用本身的内部资源执行一整套指令,用以完成标量操作,在时间上与各PE的数组操作重叠起来。因此,控制器的功能有以下五个方面:
(1)对指令流进行控制和译码,包括执行一整套标量操作指令;
(2)向各处理单元发出执行数组操作指令所需的控制信号;
(3)产生和向所有处理单元广播公共的地址部分;
(4)产生和向所有处理单元广播公共的数据;
(5)接收和处理由各PE(如计算出错时)、系统I/O操作以及B6700所产生的陷阱中断信号。
Illiac Ⅳ 阵列控制器CU与处理单元阵列之间的信息联系有以下四条信息通路:
1) CU总线处理单元存储器PEM经过CU总线把指令和数据送往阵列控制器,以8个64位字为一信息块。这里指令是指分布存放在阵列存储器中用户程序的指令;而数据可以是处理所需的公共数据,先将它们送到CU,再利用CU的广播功能送到各处理单元。
2)公共数据总线CDB(CommonDataBus)这是64位总线,用作向64个处理单元同时广播公共数据的通路。
3)模式位线(ModeBitLine)每一个单元都可以经过模式位线把它的模式寄存器(moderegister)状态送到CU中,送来的信息中也包括该处理单元的“活动”状态位。只有那些处于“活动”状态的处理单元才执行单指令流所规定的公共操作。
4)指令控制线处理单元微操作控制信号和处理单元存储器地址、读/写控制信号都经过约200根指令控制线由CU送到阵列处理单元PE和存储器逻辑部件MLU中。
3.输入/输出系统
Illiac Ⅳ 输入/输出系统由磁盘文件系统DFS(DiskFileSystem)、I/O分系统和B6700处理机组成。磁盘文件系统DFS是两套大容量并行读写磁盘系统及其相应的控制器。I/O分系统由输入/输出开关I/OS(Input/OutputSwitch)、控制描述字控制器CDC(ControlDescriptionWordController)和输入/输出缓冲存储器BIOM(BufferofInputandOutputMemory)三个部分组成。I/OS的功能有两个:一是作为名副其实的开关,用以把DFS或可能连上的实时装置转接到阵列存储器,进行大批数据的I/O传送;二是作为DFS和PEM之间的缓冲,以平衡两边不同的数据宽度。CDC的功能是对阵列控制器的I/O请求进行管理。BIOM处在DFS和B6700之间,作为缓冲,使两者的传送频带匹配。
B6700管理计算机一般配置一个CPU(另一CPU可选)、32K字内存(最大可扩充至512K字)和经过多路开关控制的一大批外围设备(包括一台容量为1012位的激光外存储器以及ARPA网络接口)。B6700的作用是管理全部系统资源,完成用户程序的编译或汇编,为Illiac Ⅳ 进行作业调度、存储分配、产生入/出控制描述字并送至CDC、处理中断,以及提供操作系统所具备的其它服务等。10.3.4BSP计算机
BSP(BurroughsScientificProcessor)是美国Burroughs公司和伊里诺大学合作设计的用于科学计算的并行处理机,于1979年生产。与Illiac Ⅳ 不同,这台计算机是采用共享集中式主存结构,是共享存储器SIMD结构的典型代表。BSP计算机系统组成如图10-8所示。它由系统管理计算机B7700/B7800和BSP处理机两大部分组成。图10-8BSP科学计算机系统结构图
BSP不能够单独工作,而是作为管理机B7700/B7800的后台机工作的。BSP大部分与分布式相同,区别是它的系统的存储器是由K个存储体(M0~Mk-1)集中在一起构成的,经过互连网络ICN为全部N个处理单元(PE0~PEN-1)所共享。这种结构形式中,为使各处理单元对长度为N的向量中的各个元素都能同时并行处理,存储体的个数K通常总是等于或多于处理单元的个数N。为了各处理单元在访问主存时,尽可能避免发生分体冲突,也要求有合适的算法能够将数据按一定规律合理地分配到各个存储体中。与分布式存储器结构另一个不同之处在于互连网络ICN的作用不同。集中式主存的结构形式中,互连网络是用来连接处理单元和存储器分体之间的数据通路的,希望能让各个处理单元以高速、灵活的方式连到不同的存储体上。因此有的并行处理机系统将其称为对准网络(AlignmentNetwork)。
BSP系统采用了全面并行化操作,即把资源重复和时间重叠两种并行性技术结合起来,有人将其称为第二代并行处理机。BSP科学处理机系统由系统管理机(又称系统资源机)和科学处理机两大系统构成。系统管理机担负BSP编译、任务调度、数据通信、外部设备管理等任务,而科学处理机本身又包括控制处理机、文件存储器及并行处理机三大部分。
1.BSP处理机的组成
BSP处理机可分为4个部分,即并行处理机、控制处理器、文件存储器和对准网络。
1)并行处理机并行处理机包含16个算术单元、由17个存储模块(与16最接近的质数)组成的一个无冲突访问的并行存储器和一套对准网络。并行机中每个处理器以160ns的时钟周期进行向量计算。所有16个算术单元AE对不同的数据组(从并行处理机控制器广播来)进行同一种指令操作,大部分的算术运算能在2个时钟周期(320ns)内完成。进行向量运算的数据是存在17个并行存储器模块中的,每个模块的容量可达512千字,17个存储器模块的组织形成了一个无冲突访问存储器,它容许对任意长度以及跳距不是17倍数的向量实现无冲突存取。
2)控制处理器控制处理器是一台用于控制的计算机,其核心是标量处理单元,处理机的时钟频率是1 MHz。它除了用以控制并行处理机以外,还提供了与系统管理机相连的接口。标量处理机则处理存储在控制存储器中的全部操作系统和用户程序的指令,即指令/控制存储器。
3)文件存储器文件存储器是一个半导体辅助存储器,是一个高速大容量外存储器,是唯一置于BSP直接控制下的外围设备。BSP的计算任务文件由系统管理机加载,然后对这些任务进行排队,由控制处理机取出并加以执行。BSP在运行过程中产生的输出文件和中间结果也都暂存于文件存储器中,由于读写速度较快,可很好地解决处理机和外设之间的带宽瓶颈。
4)对准网络对准网络包涵完全交叉开关以及用来实现数据从一个源广播至几个目的地以及当几个源寻找一个目的地址时能分解冲突的硬件。这就需要在算术单元阵列和存储器模块之间具备通用的互连特性,而存储模块和对准网络的组合功能则提供了并行存储器的无冲突访问能力。算术单元也利用输出对准网络来实现一些诸如数据压缩和扩展操作以及快速傅立叶变换算法等专用功能。
2.BSP的并行存储器
BSP并行存储器又称为质数存储系统,由17个存储模块组成,存储周期为160 ns。BSP并行存储器的无冲突访问是它的一个独特的技术性能。其实现的硬件技术包括:质数个存储器端口(BSP并行存储器的存储体数是一个质数17)、存储器端口和AE之间的完全交叉开关(对准网络)以及特殊的存储器地址生成机构。
3.BSP的并行流水技术
BSP系统采用了全面的并行性技术,它并不依靠提高时钟频率获得高速,而是依靠并行性。在BSP中,存储器-存储器型的浮点运算是流水进行的。BSP的流水线组织由5个功能级组成,尤其是并行处理机由16个处理单元、17个存储器模块和2套互连网络(亦称对准网络)组合在一起,形成了一条五级的数据流水线,使连续几条向量指令能在时间上重叠起来执行。其结构示意图如图10-9所示,五级的功能作用依次是:①由17个存储器模块并行读出16个操作数;②经对准网络NW1将16个操作数重新排列成16个处理单元所需要的次序;③将排列好的16个操作送到并行处理单元完成操作;④所得的16个结果经过对准网络NW2重新排列成17个存储器模块所需要的次序;⑤写入存储器。图10-9BSP数据流水线结构示意图在读与写存储器时两套对准网络NW1/2的作用分别是,使得并行存储器中为保证无冲突访问而错开存放的操作数顺序能够与算术单元并行处理要求的正常顺序一致。整个流水线由统一的指令译码和控制部件进行控制。这种流水线结构是很新颖的,对提高系统处理效率起着很大的作用。
BSP还有一个高效率的FORTRAN编译程序,具有很强的向量化功能,对程序中隐含的并行性保证有较高识别率。向量程序不但能够处理明显的数组操作,还能处理线性递归,循环内部的条件分支等进程,并产生明显的加速效果。10.3.5CM-2计算机
CM-2是ThinkingMachinesCo-operation于1987年推出的ConnectionMachine系列机中的一台高档机,是一台细粒度的SIMD计算机,它由数千个位片PE组成,它的峰值处理速度超过10Gflo/s,它的系统结构如图10-10所示。图10-10CM-2的系统结构图所有程序从前端开始执行,当需要并行数据操作时,发送微指令到后端处理阵列。定序器(sequencer)分解这些微指令并且把它们广播给阵列中的所有数据处理器(dataprocessor)。前端机和处理阵列之间有三条交换数据计算结果的通路:广播总线(broadcasting)、全局组合总线(globalcombining)和标量存储器总线(scalarmemorybus),其组成部分介绍如下。
1.处理阵列
CM-2是一台数据并行计算的后端机。处理阵列包含4 K到64 K个位片数据处理器,所有数据处理器都由定序器控制。定序器对来自前端机的微指令进行译码,然后把毫微指令广播到阵列中各个处理器。所有处理器可以同时访问它们的存储器,它们以锁步方式执行广播来的指令。处理器之间通过寻径、NEWS网格(NEWSgird)或扫描机构(scanningmechanism)相互交换数据。这些网络也与I/O接口相连。称为数据穹(datavault)的大容量存储器子系统与I/O相连,它可存储多达60 G字节的数据。
2.寻径器、NEWS网格和扫描机构
CM-2处理机间能够快速高效地通信,主要通过下列技术构造的互联网络来实现。
1)寻径器每个处理器芯片包含一个用于处理器之间数据寻径的专门硬件。把所有处理器芯片上的寻径器结点用线连在一起形成一个布尔n-立方体。在CM-2最大配置时,所有处理器芯片上共有4096个寻径器结点,连成一个12维的超立方体。
2) NEWS网格每个处理器芯片中的16个物理处理器可以排列成8×2、1×16、4×4、4×2×2或2×2×2×2等形式的网格。规定每个物理处理器有64个虚拟处理器。可以想象这64个虚拟处理器在芯片中排列成8×8网格。
3)扫描机构
除了通过超立方体寻径器可以动态地重构NEWS网格外,CM-2还有专门的硬件支持对整个NEWS网格的扫描或传播。这些都是很有效的并行操作,在整个阵列中进行快速的数据组合和传播。
3.输入/输出系统
ConnectionMachine不仅强调计算的大规模并行性,还强调计算结果的可视化。2~16条高速I/O通道用于数据和/或图像I/O操作。连接到I/O通道的外围设备包括数据穹、CM-HIPPI系统、CM-IOP系统和VME总线接口控制器,如图10-10所示。数据穹(DataVault)是基于磁盘的海量存储系统,用来存放程序文件和大数据库。
CM-2已经用于解决几乎所有MPP所面临的具有重大挑战性的应用问题。特别是ConnectionMachine系列已经用于借助相关反馈技术的文档检索、基于记忆的推理,如用在医疗诊断系统QUACK中摸拟诊断疾病以及处理工作量很大的自然语言等。CM-2的其他应用包括SPICE的VLSI电路分析和布线、计算流体动力学、信号/图像/视觉处理和集成、神经网络模拟和连接模型、动态规划,上下文无关文法分析、射线追踪图以及计算几何等问题。10.4SIMD计算机的应用
10.4.1计算模型及有限差分哈辛诺在1986年将物理计算模型分成连续模型和离散模型(粒子模型)。连续模型是指所有计算的时间和空间是连续变化的物理量,且这些物理量是一定范围内的平均值。典型的参数如电荷密度、温度和压力等。粒子模型则将世界看成是由离散的粒子组成的,这些物理量反映单个粒子的当前状态,典型的参数如速度、力和动量等。两种模型只是对同一问题的两种不同观察方法而已。连续模型和离散模型的主要区别是:连续模型符合偏微分方程,按离散形式处理时,方程式中所有变量的变化都是其近邻变量的函数,远程变量没有直接的影响。先通过作用于近邻变量,近邻变量再作用于随后的近邻变量,由此向前非直接地作用于整个媒质,也就是通过局部作用而将作用传送到整个媒质。离散模型(粒子模型)允许粒子受远程粒子的影响。任何粒子在任何时刻都与模型中的其它粒子有关。应用有限差分方法求解连续模型对于并行计算具有很大的吸引力。有限差分方法是求解偏微分方程的一种有效方法,它把一个有规则的网格履盖在整个模型域上,用网格点上变量值写出差分方程组,以代替连续模型的偏微分方程来进行计算。作为连续模型,在解决物理问题时,我们描述以下平面域的拉普拉斯方程:将这个方程离散化,即在x和y方向上每隔一段相同的距离h取一个样值点,这个微分方程就可以用差分方程的形式表示。下面就是二阶偏导数表示为差分形式,式中(x,y)为平面直角坐标,h为网格间距。把上述差分方程代入原方程,则可得有限差分计算公式为
Illiac Ⅳ 的阵列结构特别适用于计算在网格上定义的有限差分函数。这是因为,根据拉普拉斯方程,任一网格点(x,y)上的函数值均可由其四周邻近点的函数值计算出来,这一要求正好反映了阵列处理机每个处理单元与其4个近邻连接的性质。实际计算时,应利用张弛法进行。每一网格点上的函数值用求其四邻平均值的方法计算,经多次迭代,逐次逼近其最终的平均值。网格边缘的函数值是已知的,由场域的边界条件决定;而对于内部各点的函数值,开始时可选择为零,然后根据拉普拉依方程多次迭代求U(x,y)值,直至连续二次迭代所求值的差小于规定误差为止(已知迭代过程是收敛的)。
Illiac Ⅳ 在计算时,是把内部网格点分配给各个处理单元的。因此,上述计算过程可以并行地完成,从而可成倍地提高处理速度。由于实际问题中所遇到的内部网格点数目很大,因此需将其分成许多子网格,然后才能在Illiac Ⅳ 上求解。10.4.2阵列处理机的几种基本算法
1.矩阵加在阵列处理机上,实现矩阵加的算法是最简单的一维数组运算。设A和B是n×n阶矩阵,A、B相加的和矩阵为C,它也是n×n阶矩阵。矩阵加的算法为A + B= C其中cij
=aij
+bij。2.矩阵乘设A和B是n×n阶矩阵,A、B的乘积矩阵C也是n×n阶矩阵。矩阵乘的传统串行算法为A
×
B=C,cij=
aikbkj其中,0≤i≤n-1且0≤j≤n-1。
3.累加和累加和并行算法是将N个数的顺序相加过程变为并行相加过程。串行求和的FORTRAN程序如下:
C(-1)
=
0
DO10I
=
0,N
10
C(I)=C(I-1)
+
A(I)在并行处理机上,采用递归加法,FORTRAN程序如下:
DO10I
=
0,lbN-1
10
A=A + SRL(A,2**I);把A向量逻辑右移2i个PE,只需做lbN次加法。例如,当N=8时,在SISD计算机要用8次加法时间。如果在并行处理机上,采用成对递归相加的算法,则只需lb8=3次加法时间就够了。首先,原始数据A(I),0<I<7,存放在8个PEM的a单元中,然后按照下面的步骤求累加和:第一步置全部PE为活动状态;第二步全部A(I),0<I<7,从PE的a单元读到相应PE的RGA中;第三步令K = 0;第四步全部PE的(RGA)转送到RGR;第五步全部PE的(RGR)经过互连网络向右传送2k步距;第六步j=2k-1-1;第七步置PE0至PEj为不活动状态;第八步处于活动状态的PE执行(RGA):=(RGA)+(RGR)操作;第九步k:=k+1;第十步若k<3,则转回第四步,否则继续往下执行;第十一步置全部PE为活动状态;第十二步全部PE的(RGA)存入相应PEM的a+1单元中。采用SIMD并行算法,运算速度提高,加速比为N/lbN倍,运算次数增加。从N次增加到NlbN次,效率降低,实际效率为1/lbN。例如当N=1024,速度提高100倍,运算参数增加10到倍,效率只有1/10。如果N=220,即100万个数求和,速度可以提高5万倍。10.5互连网络的概念互连网络是一种由开关元件按照一定的拓扑结构和控制方式将集中式系统或分布式系统中的结点连接起来所构成的网络,这些结点可能是处理器、存储模块或者其他设备,它们通过互连网络相互连接并进行信息交换。互连网络已成为并行处理系统的核心组成部分,它对并行处理系统的性能起着决定性的作用。10.5.1互连网络的基本概念和作用在多计算机系统中,无论是处理机之间,还是处理器与存储器之间,都要通过互连网络实现信息交换。决定互连网络性价比的主要因素是结构复杂性(反应成本)和通信频带及结构灵活性(反应性能)如果我们把处理单元或存储体看成结点(Node),互连网络则为输入和输出二组结点之间提供一组互连或映射(Mappings)。对于有N个输入结点和M个输出结点的情况,从输入到输出的映射可定义出N×M种映射的互连网络,我们称之为广义互连网络(GenerailsedConnectionNetwork)。图10-11画出了3个输入结点和2个输出结点的广义互连网络。它的映射关系可以分为两类:一对多的映射(见图10-11(a)),一是一对一映射(见图10-11(b))。如果只有一对一映射,则共有N!种映射。对于有N!种映射的互连网络,我们称之为连接网络(ConnectionNetwork)或全排列网络。图10-113个输入结点和2个输出结点的网络映射实现广义互连网络的直观方法是全交叉开关网络(FullCrosserNetwork)。它是互连网络中最通用的一种形式,图10-12显示了具有4个输入和4个输出的全交叉开关网络。对于任一输入和输出之间,都有一个交叉点,每个交叉点实际代表一套开关,而且包含必要的用来分解多重访问冲突的硬件设备。这种网络由于任意一对输入和输出之间都有直接连接,因此通信频带宽、灵活性好。但由于交叉点的数量为N×M个,再考虑到总线的线数,整个交叉开关非常复杂。当N很大时,交叉开关的成本会超过N+M个处理单元和存储器的成本。因此,它只用于输入输出端数目较少的情况。如BSP用了两个这种网络,一个是N=16,M=17;另一个是N=17,M=16。图10-12具有4个输入和4个输出的全交叉开关网络互连网络主要涉及到链路、交换开关和网络接口电路等。其中链路也称为链或通道,它用来将计算机系统中两个硬件部件进行物理连接;交换开关也称为路由器,它用于建立交换网络;网络接口电路也称为网卡。互连网络是一种由开关元件按照一定的拓扑结构和控制方式构成的网络,用来实现计算机系统内部多个处理机或多个功能部件之间的相互连接。随着各个领域对高性能计算的要求越来越高,多处理机和多计算机系统的规模越来越大,处理机之间或处理单元和存储模块之间的通信要求和难度也越来越突出。所以互连网络已成为并行处理系统的核心组成部分,它对整个计算机系统的性能价格比有着决定性的影响。互连网络在多处理机系统中位置和作用如图10-13所示。图10-13互连网络在多处理机系统中位置和作用10.5.2特性参数和性能参数
1.互连网络的结构特性参数网络用有向边或无向边连接有限个结点的图来表示。下面从图的角度定义几个用于估算复杂性、通信效率和网络价格的参数,即网络特性。
1)网络规模
网络中结点数称为网络规模,它表示该网络所能连接的部件的多少。
2)结点度与结点相连接的边(即链路或通道)数称为结点度,用d表示。在单向通道情况下,进入结点的通道数称为入度,而从结点出来的通道数则称为出度。结点度就是二者之和。结点度反映了结点所需要的I/O端口数,也即反映了结点的价格。为了降低价格,应尽可能使d小。为构造可扩展系统,使构件能模块化,则要求结点度保持恒定。
3)距离
两结点之间相连的最少边数。
4)网络直径网络直径是网络中任意两个结点之间距离的最大值。它是说明网络通信性能的一个指标。因此从通信的观点来看,网络直径应当尽可能地小。
5)等分宽度
当某一网络被切成相等的两半时,沿切口的最小边数(通道)称为通道等分宽度,用b表示。于是,线等分宽度就是B=b×w,w为通道宽度(用位表示)。因此,等分宽度是说明沿等分网络最大通信带宽的一个参数。网络的所有其它横截面都应限在等分宽度之内。
6)结点间的线长结点间的线长是两个结点间的线的长度。它会影响信号的时延、时钟扭斜和对功率的需要。
7)对称性网络对称性是指,如果从网络任意结点看上去网络的拓扑结构都是相同的,则称该网络是对称的;否则网络是非对称的。对称网络较易实现,编程也较容易。
8)数据寻径数据寻径网络用来进行PE间数据交换的方式有以下几种:①对一通信也称点对点通信,仅有一个发送者和一个接收者;②对多通信包括广播和散射;③多对一通信包括聚集和归约,④多对多通信中最简单的形式是置换。图10-14形象化地给出了几种常见的数据寻径方式。图10-14几种常见的数据寻径方式
2.网络的传输性能参数下面以图10-15所示的两台计算机互连的最简单的网络为例来讨论网络的传输性能参数,每台计算机有一个FIFO的数据队列。图10-15连接两台计算机的简单网络当一台计算机发送数据给另一台时,发送方的步骤如下:步骤1应用程序把要发送的数据拷贝到操作系统的缓冲区。步骤2操作系统根据要发送的数据计算出检查和,并把它加在消息中,同时启动超时计数器。步骤3操作系统把缓冲区中的数据送到网络接口硬件并通知硬件开始发送消息。消息包的接收和上述步骤正好相反,即步骤1系统把数据从网络接口硬件拷贝到操作系统缓冲区。步骤2系统根据接收到的数据计算出检查和。如果计算出的检查和与发送过来的检查和匹配,则接收方发一个回答信号给发送方;如果不匹配,则删除这个消息,因为发送方在超时计数器超时后会重发这个消息。步骤3如果数据通过检查,系统把接收到的数据拷贝到用户地址空间并启动应用程序继续执行。发送方接收到回答信号后,即可以释放系统缓冲区的消息。如果发送方的超时计数器已超时,那么需重发消息。从消息包的发送和接收步骤来看,一个消息从发送到接收经历的时间过程为:发送方的开销时间、消息在线路上的传播时间、接收方的开销时间。下面给出互连网络传输方面和时延有关的性能参数:
(1)频宽(bandwidth)。它是指消息进入网络后,互连网络传输信息的最大速率。它的单位是兆位/秒,而不用兆字节/秒。
(2)传输时间(transmissiontime)。消息通过网络的时间,它等于消息长度除以频宽。
(3) “飞行”时间(timeofflight)。消息的第一位信息到达接收方所花费的时间,它包括由于网络中转发或其它硬件所起的时延。
(4)传输时延(transportlatency)。它等于“飞行”时间和传输时间之和。它是消息在互连网络上所花费的时间,但不包括消息进入网络和到达目的结点后从网络接口硬件取出数据所花费的时间。
(5)发送方开销(senderoverhead)。处理器把消息放到互连网络的时间,这里包括软件和硬件所花费的时间。
(6)接收方开销(receiveroverhead)。处理器把到达的消息从互连网络取出来的时间,这里包括软件和硬件所花的时间。所以一个消息的总时延可以用下面公式表示:总时延 = 发送方开销 +“飞行”时间 + 传输时间 + 接收方开销以上传输性能参数间的关系如图10-16所示。图10-16互连网络的传输性能参数间的关系
【例10-1】
假设一个网络的频宽为10Mb/s,发送方开销和接收方开销分别等于230ms和270 ms。如果两台机器相距100 m,现在要发送一个1000 Byte的消息给另一台机器,试计算总时延。如果两台机器相距1000km,那么总时延为多大?解:光的速度为299792.5km/s,信号在导体中传递速度大约是光速的50%,所以“飞行”时间可以计算出来了。那么相距100m时总时延为T = 发送方开销 +“飞行”时间 +
+ 接收方开销
= 230ms +
+270ms = 230ms + 0.67ms + 800ms + 250ms = 1301ms相距1000 km时的总时延为
T = 230ms +
+ 270ms = 230ms + 6671ms + 800ms + 270ms = 7971ms10.5.3互连函数为了反映不同互连网络的连接特性,每种互连网络可用一组互连函数来描述。如果将互连网络的N个输入端和N个输出端分别用整数0,1,…,N-1来表示,则互连函数表示相互连接的输出端号和输入端号之间的一一对应关系。或者说,存在互连函数f,在它的作用下,输入i应与输出f(i)相连,其中0≤i≤N-1。当互连网络用来实现处理器与处理器之间的数据变换时,互连函数也反映了网络输入数组与输出数组间对应的置换关系或称排列关系。所以互连函数有时也称为置换函数或排列函数。表示互连函数通常用三种方法:函数表示法、输入/输出对应表示法、图形表示法。函数表示法用x表示输入端变量,用f(x)表示互连函数。x还常用几位二进制形式来表示,写成Xn-1Xn-2…X1X0,互连函数则对应地表示为f(Xn-1Xn-2…X1X0)。输入/输出对应表示法把互连函数表示为:这就是说,将0变换为f(0),1变换为f(1),…,N-1变换成f(N-1)。例如,N=8均匀洗牌函数的这种表示形式为:图形表示法用输入/输出的连接图表示关系。这种表示法较为直观,但有时显得较为繁琐,难以体现内在规律。因此一般函数表示法和输入/输出对应表示法结合使用。有一种特殊的互连函数表示法称为循环表示法。它将互连函数f(x)表示为(X0X1…Xj-1Xj),所代表的对应关系为f(X0)=X1,f(X1)=X2,…,f(Xj)=X0,其中j+1称为该循环的长度。下面介绍常用的基本互连函数的函数表达式及主要特征。
1.立方体(cube)立方体的每个顶点代表一个结点,结点的编号用二进制码(C2C1C0)表示。如图10-17所示为N=8的三维立方体结构。图10-17N=8的三维立方体结构立方体单级网络的互连函数实现二进制编号中第k位值不同的结点之间的连接。故三维的立方体单级网络有三种互连函数:Cube0、Cube1和Cube2,分别建立结点编号中C0不同或C1不同或C2不同的结点之间的连结,其连接方式如图10-18。一般情况下,一个n维立方体有N=2n个结点,共有n种互连函数,分别由n位编号中的每一位的位求反来确定。即Cubei(Pn-1…Pi…P1P0)=Pn-1 …P1P0其中,Pi为入端标号的二进制代码第i位,且0≤i≤n-1。当维数n>3时,称为超立方体(HyperCube)网络。对于n维立方体单级网络,要实现任意两个结点之间的连接,最多需使用n次不同的互连函数,因此n维立方体单级网络的最大距离为n。图10-18N=8的三维立方体三种互连方式
2.PM2I
PM2I是加减2i的简称(plus-minus2i),图10-19中给出了PM2I互连网络的部分连接图。图10-19N=8的PM2I互连网络的部分连接图
PM2I单级网络能实现j号结点与j±2imodN号结点的直接相连,N为处理器的个数,PM2I单级网络的最大距离为[n/2],n = lbN。因此,它共有2n个互连函数,即
PM2+i
(j)
=
j
+
2imodN
PM2-i
(j)
=
j-
2imodN式中,0≤j≤N-1,0≤i≤n-1。如设N = 8,则共有2n = 6个互连函数,各互连循环函数表示为:
PM2+0:(01234567) PM2-0:(76543210) PM2+1:(0246)(1357) PM2-1:(6420)(7531) PM2±2:(04)(15)(26)(37)
3.混洗交换(ShuffleExchange)混洗交换互连网络包含全混洗和交换两种互连函数,混洗交换又称为洗牌置换。
1) 全混洗(PerfectShuffle)这种连接规律是把全部按标号次序排列的处理器从当中分为数目相等的两半,然后洗牌达到理想的“全混”状态一样,这也是“混洗”这个名词的由来。正如人们在洗扑克牌时,先将整副牌分成两半,然后通过洗牌以达到最理想的状态一样,因此这种方法也称为均匀洗牌。全混洗的互连函数为
(Pn-1Pn-2…P1P0) =Pn-2…P1P0Pn-1
可见,全混洗是将输入端的二进制编码循环左移1位得到输出端二进制编码的方法,图10-20所示为全混洗置换图。图10-20全混洗置换图
2)交换(Exchange)由于单一的全混洗互连网络不能实现二进制编号为全“0”和全“1”的结点与其他任何结点的连接,所以又增加了Cube0交换互连函数。同时采用了全混洗和交换的单级互连网络称为混洗交换单级互连网络。如图10-21所示为混洗交换单级互连网络图。图10-21混洗交换单级互连网络图
4.蝶形(Butterfly)图10-22是蝶形置换的图形表示。蝶形互连网络的互连函数为
Butterfly(Pn-1Pn-2…P1P0)=P0Pn-2…P1Pn-1它是将入端二进制编号的最高位和最低位互换位置即可得相应出端的二进制编号。图10-22n=8蝶形置换的图形表示
5.恒等置换相同编号的输入端与输出端一一对应互连所实现的置换即为恒等置换,其表达式为
I(xn−1xn−2xn−3…x1x0)=xn−1xn−2xn−3…x1x0即二进制编码完全相同,其中等式左边括号内的xn−1xn−2xn−3…x1x0和等式右边的xn−1xn−2xn−3…x1x0均为网络输入端和输出端的二进制地址编号。
6.交换置换交换置换是将输出编号的二进制编号中第0位取反,得到的互连函数称为交换置换。其表达式为E(xn−1xn−2xn−3…x1x0)=xn−1xn−2xn−3…x010.6静态互连网络静态互连网络是指在各结点间使用的直接链路,且一旦构成后就固定不变的网络。这种网络比较适合于构造通信模式可预测或可用静态连接实现的并行处理系统和分布计算机系统。集中式系统的多系统之间或分布式系统的多个计算机之间的固定连接通常采用静态拓扑结构,并工作于异步状态下,采用分组交换的方法进行通信。10.6.1静态互连网络结构静态互连网络结构主要包含一维线性阵列、环和带弦环、循环移数网络、树形和胖树形、网格形与环形网格、超立方体和带环立方体、k元n立方体等7种结构,下面分别做简单介绍。
1.线性阵列线性阵列是一种一维的线性网络,其中N个结点用N-1条链路连成一行,如图10-23所示。首尾结点的度是1,内部结点度为2,端结点度为1,直径为N-1,等分宽度为1,结构不对称。这种结构不同于总线结构,总线结构是通过时分切换使用多对结点时分进行通信,而线形阵列允许不同的结点对并发使用系统的不同通道。线性阵列是连接最简单的拓扑结构,当N很大时,通信效率很低。图10-23一维线性阵列连接结构
2.环和带弦环用一条附加链路将线性阵列的两个端结点连接在一起,就构成了环。每个结点的度都是相等的,都是2。环可以单向工作,也可以双向工作。双向环有两个方向,当其中的一个单向环出现故障时,另一个环还可以继续工作。环是对称的,结点度为2。双向环直径为[N/2],单向环直径为N。增加一条或两条附加链路,就可以得到结点度分别为3和4的带弦环。
3.循环移数网络和全连接循环移数网络是通过环形网络结构上增加“弦”的方法使直径减小的改进网络。其规则是将环上每个结点出发与距该结点距离为2的整数幂的结点之间都增加一条附加链路而构成的。全连接网络是环上任意两个结点间都有附加链路连接。这种全连接网络是一个对称的网络,当网络规模为N时,结点度为N-1,网络直径为1,链路数为N(N-1)/2。
4.树形和星形网络连接一棵5层31个结点的二叉树如图10-24(a)所示。顶部的一个结点称为根,底部的16个结点称为叶,其他的称为中间结点。除了叶子结点之外,每个结点都有两个孩子结点。一棵k层完全平衡的二叉树应有N=2k-1个结点,最大结点度为3,直径是2(k-1)。从一个叶结点到另外一个叶结点的通信必须经过叶→根→叶的过程。由于各子树和叶无横向的联系,因此这种结构的扩展性较好,只是直径较大。图10-24二叉树和星形网络连接结构树形网络连接的另外一个应用是通信量不平衡问题。树形结构中叶子结点的通信量最小,而根结点的通信量最大。且随着层次的增加将呈现指数级增加,在所有的链路带宽相同的情况下,很容易造成网络阻塞。为了解决这个问题,即根结点瓶颈问题,1985年,Leiserson提出了胖树的概念。思想为通道带宽从叶结点往根结点上行方向逐渐增宽,越靠近根结点,链路带宽越大。星形网络连接是树的一种特殊结构,是一种2层树,结点度为N-1,网络直径为常数2。图10-24(b)所示的是一个结点数为9的星形网络。
5.二叉胖树形网络结构二叉胖树网络结构如图10-25所示,胖树的链路数从叶结点往根结点上行方向逐渐增多。互连网络结构还包含网格形、环网形、搏动式阵列、超立方体、带环立方体和k元n-立方体网络等。搏动式阵列通常是为实现某种特定数据流算法而设计的一类多维流水线阵列结构。超立方体是一种二元n维立方体结构。带环立方体结构从超立方体结构改进而来,即将立方体的每个顶点结点用一个环形网络代替。k元n-立方体网络中的参数k是沿每个方向的结点数,n是立方体的维数。这两个数与网络中结点数N的关系为N=kn。一般来说,低维k元n-立方体称为环网,而高维二元n-立方体则称为超立方体。图10-25二叉胖树网络结构10.6.2静态互连网络特性大多数网络的结点度都小于4,这是较为理想的。全连接网络和星型网络的结点度均太高,超立方体的结点度随lbN的增大而增大,当N值很大时,其结点度也很高。由于较高的结点度要求为结点提高较多的通信资源,因而在选择使用网络时,结点度不宜太高。静态连接网络特性如表10-1所示。表10-1静态连接网络特性网络直径关系到消息传输时可能造成的时沿,一般要选择直径较小的网络。但是这存在两种例外情况,一是在一些情况下,人们可能更愿意使用平均距离来衡量一个网络可能造成的传输时沿,而不愿意用表示最大距离的直径,因为实际上可能只有极少量的通信在网络直径距离上进行的;另一种情况就是消息在网络中传输的机制,如果消息采用“虫蚀”方式(一种硬件寻址方式,它将包进一步分成更小的片,同一个包中所有的片不间断地以流水方式顺序地传送,只有头片知道包将发往何处)寻径,消息使用流水线机制传输,就像流水一样通过各结点、通信延迟几乎是固定不变的。但是,网络直径还是人们选择网络时经常要考虑的问题之一。除了结点度和网络直径之外,链路数会影响网络的价格,等分宽带B将影响网络的带宽,对称性会影响网络的可扩展性和寻径效率。一般来讲,网络的总价格会随着结点度和链路数的增大而上升。根据上述性能选择的简单规则,环形、网格、带环立方体和k元n-立方体都具有一定的条件用来构造未来的大规模并行处理系统。10.7动态互连网络 动态互连网络可根据程序要求实现所需的通信模式。它不采用固定连接,而是沿着连接路径使用开关或仲裁器以提供动态连接特性。根据级间连接方式,动态连接网络有单级和多级两类。单级网络只有有限的几种连接,任意两个结点之间的信息传送可能须经过在单级网络中循环多次才能实现,故单级网络也称循环网络。多级网络由多个单级网络串联组合而成,以实现任意两个结点之间的连接。按照价格和性能增加的顺序,动态互连网络可分为总线互连方式、交叉开关互连方式、多级网络互连方式等。10.7.1动态互连网络的互连形式
1.总线互连方式的动态连接网络总线互连方式又称为公共介质,是实现动态连接最简单的一种结构形式。用一条公用系统总线将多个处理机、存储器模块和I/O部件通过各自的接口部件或是多个由CPU、本地存储器和I/O部件所组成的计算机模块通过公共的接口部件互连起来。总线上的各模块以分时或多路转换方式通过总线在主设备与从设备之间传送信息。在多个请求情况下,总线仲裁逻辑每次只能将总线服务分配或重新分配给一个请求。图10-26所示为总线连接的多处理机系统。图10-26总线连接的多处理机系统总线上的各模块是通过争用或时分方式获得总线服务,因此总线也被称为争用总线或时分复用总线,与另外两种动态互连方式相比,总线系统价格较低,带宽较窄。但由于价格低的优势,总线的使用很广,有很多的工业标准和IEEE总线标准。总线系统通常设置在印刷电路底板上,连接到总线上的其他设备往往通过总线插槽或电缆与总线相连。总线系统中需要解决的主要问题有总线仲裁、中断处理和Cache一致性等问题。
2.交叉开关互连方式的动态连接网络交叉开关(crossbar)互连由一组纵横开关阵列组成,将横向的p个处理机P及i个I/O模块与纵向的m个存储器模块M连接起来,如图10-27所示。图10-27交叉开关互连方式行与列的交叉点上是由开关来控制其接通与否。交叉开关网络中的每一个开关只有两种状态:“通”或“断”。如果P1处理机要访问M3存储模块,只要将P1行线与M3列线交叉点的开关置为“通”,即可实现P1处理机和M3存储模块的互连。这里的交叉点开关,实际上是一组受同一信号控制的开关,可能包括地址线、数据线及其必要的控制线的连接。交叉开关网络的每一行中可以同时接通多个交叉点开关,阵列中的总线条数等于全部相连的模块数之和m+p+i,且当m≥p+i时,可以使每个处理机和I/O设备都能分到一套总线与某个存储器模块相连,从而大大加宽互连传输带宽和提高系统的效率。与总线互连中采用分时使用总线不同,交叉开关采用的是空间分配机制。为了保证系统的正常工作,每条列线上只允许有一个开关处于接通状态,否则可能由于多个处理机接入同一个存储模块而形成冲突。但是反过来,如果系统设计中允许处理机访问多个存储模块,每一条行线上可能会有多个开关被接通。如果希望同时读写多个存储模块,必须采用空间上或时间上的分隔使用。交叉开关网络是目前使用最为广泛的一种网络,其优点是可以随工作进程随时改变开关的连接方式,以达到改变通信链路的目标;采用多级交叉开关网络虽然降低了硬件复杂性,但时延会随着网络级数的增加而增大。
3.多级网络互连方式的动态连接网络
多级网络互连是将多套单级互连网络通过开关模块串连扩展成多级互连网络(简称MIN)的方式。现在几乎所有的MIMD和SIMD计算机系统中都采用了多级互连网络结构,这样可以满足处理机之间灵活通信的需求。与单级网络相比,多级网络可以通过改变开关的控制方式灵活地实现各种连接,满足系统应用的需要。图10-28所示为由a×b开关模块和级间连接模式ISC构成的通用多级互连网络结构。图10-28由a×b开关模块和级间连接模式ISC构成的通用多级互连网络结构各种多级互连网络的区别就在于所用开关模块、级间连接(ISC)模式和控制方式上的不同。它们构成多级网络互连方式中的三个重要内容,从而形成各种不同的多级互连网络。10.7.2动态网络互连方式的比较构成动态网络的总线、多级网络、交叉开关三种互连方式中,总线的造价最低,但其缺点是每台处理器可用的带宽较窄。总线所存在的另一个问题是容易产生故障,有些容错系统常采用双总线以防止系统产生简单的故障。由于交叉开关的硬件复杂性以n2倍上升、所以其造价最为昂贵。但是交叉开关的带宽和路由性能最好。如果网络的规模较小,它就是一种理想的选择。多级网络则是两个极端之间的折衷。它的主要优点在于采用模块结构,因而可扩展性较好。然而,其时延随网络级数logkn的增加而上升。另外由于增加了连线和开关复杂性,价格也是一种限制因素。如表10-2汇总了构成动态网络的总线、多级网络、交叉开关的主要特性。表10-2动态网络互连方面的比较表10.7.3多级互连网络多级互连网络是各种置换连接将各级开关连接在一起,形成的一个完整网络。从外部看,整个多级互连网络只有输入端和输出端,输入和输出端之间的功能也是某种特定的置换连接。与单级网络相比,多级网络具有更多的优势。从直观上理解,多级网络可以通过改变开关的控制方式,灵活地变换所实现的连接,使其更能适应系统的需要。也正是因为网络所实现的环路具有可变性,所以多级互连网络是动态网络中非常重要的一员,在多处理机系统中得到了广泛的应用。动态多级互连网络可分为阻塞网、可重排非阻塞网和非阻塞网三种类型。在同时实现多对入端与出端之间的连接时,可能会引起开关和通信链路使用上的冲突。具有此类性质的互连网络称为阻塞网络。换句话讲,是指一对以上输入端和输出端可同时实现互连的网络。在阻塞网络中,可能发生2个或2个以上的输入端对输出端的连接产生路径争用冲突。各种阻塞网络都能实现一些典型互连函数表示的连接,但不能实现任意的互连函数。一般来讲,阻塞网络所采用的开关数量少,路径控制比较简单,所以所产生的时沿比较小,且能够实现某种互连函数所表示的置换。由于其简单,能够实现的互连函数也是比较有限。典型的阻塞网络有:Ω网络、STARAN网络、基准网络、间接二进制n方体网络、δ网络和数据交换网络等。可重排非阻塞网络是如果重新安排现有的连接,就可实现无阻塞的任意结点对的连接,从而满足一个新的结点对的连接请求。它在实现非阻塞网络连接时,往往需要通过重新安排开关的控制才能满足新的连接要求。典型网络有可重排Close网、Benes二进制置换网络等。非阻塞网络不必改变原来的开关状态就可满足任意输入端和输出端之间的连接请求。它同可重排非阻塞网络是不同的,可重排非阻塞网络要通过改变原来的开关状态来改变连接的路径,才能满足新的连接请求。多级Close网络就属于此类网络。10.8互连网络的消息传递机制消息传递机制的研究在互连网络的研究中占有非常重要的地位。在多计算机系统中通过互连网络进行消息传递需要专门的硬件和软件的支持。在这一节将研究各种寻径方法,并分析它们的通信时延问题。我们还要引入虚拟通道的概念,考察消息传递网络产生死锁的各种情况,说明怎样用虚拟通道来避免死锁。为了实现无死锁的消息寻径,人们提出了确定的和自适应两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 危险作业安全知识试题及答案含动火受限空间试卷及答案
- 物业保洁工作检查试题及答案
- 溪美街道社区卫生服务中心口腔诊疗器械消毒技术操作规范试题及答案
- 亚运志愿者知识竞赛试题及答案
- 养殖专业技术人员考试题及答案
- 营养与食品卫生学试题库及答案
- 液化石油气充装工三级安全教育考试题及答案
- 医疗器械临床试验相关法规培训考核及答案
- 中储粮校招笔试题目及答案
- 中职第三学年(物流服务与管理)货物配送规划试题及答案
- 2026医疗招聘中医类-中医康复学历年题库含答案详解
- 2026年广东专升本(语文)真题试卷附答案
- 2026内蒙古地质矿产集团有限公司社会招聘笔试历年常考点专项试题(含答案详解)
- 消防工程施工方案及技术措施培训
- 2026深部开采配套装备技术挑战与超深井建设标准体系完善建议
- 中国石油大学(北京)党委办公室校长办公室招聘1人笔试参考题库及答案详解
- 2026年渔业法农业执法人员业务知识考试题库及答案
- DBJ04-T306-2025 建筑基坑工程技术标准
- 《身边的数据》名师课件
- .高速公路运营企业双重预防机制建设指导手册
- 银龄讲学教师服务协议书
评论
0/150
提交评论