第七章 多处理机

7.1 多处理机的概念、问题和硬件结构

7.1.1 多处理机的基本概念和要解决的技术问题

多处理机是指有两台以上的处理机,共享I/O系统,机间经共享主存或高速通信网络通信,在同一操作系统控制下,协同求解大而复杂的计算机系统。

使用多处理机的第一个目的是通过多台处理机对多个作业、任务进行并行执行来提高解题速度,从而提高系统的整体性能。第二个目的是使用冗余的多个处理机通过重新组织来提高系统的可靠性、适应性和可用性。

由于应用的目的和结构不同,多处理机可以有同构型、异构型和分布型3种。

多处理机是属于多指令流多数据流的系统,跟单指令流多数据流的阵列处理机的主要来源于并行性的等级不同。

阵列处理机主要针对向量数组处里,实现向量指令操作级的并行,是开发并行性中的同时性。

多处理机实现的是更高一级的作业或任务间的并行,是开发并行性中的并发性。

在硬件结构上,多个处理机要用多个指令部件分别控制,通过共享主机或机间互连网络实现异步通信。

在算法上,不限于向量、数组处理,还要挖掘和实现更多通用算法中隐含的并行性。

在系统管理上,更多依靠操作系统等软件手段有效的解决资源分析和管理,特别是任务分配、处理机调度、进程的同步和通信等问题。

多处理机为适应多种算法,要求硬件结构上要满足高带宽、低成本、机间通信模式的多样性、灵活性和不规则性。避免争用共享的硬件资源,实现无冲突的连接。

多处理机的并行性主要体现于指令的外部,使程序并行性的识别比较困难。

结论:多处理机的结构、机间互连、并行算法、并行语言、编译、操作系统等都会直接影响到系统的性能和效率。

多处理机主要存在如下技术问题:

(1) 硬件结构上如何解决好处理机、 存贮器模块及I/O子系统之间的互连。

(2) 如何最大限度地开发系统的并行性, 以实现多处理机各级的全面并行。

(3) 如何选择分割任务和子任务的大小, 即任务的粒度大小, 使并行度高, 而辅助开销小。

(4) 如何协调好多处理机中各并行执行的任务和进程间的同步问题。

(5) 如何将各个任务分配到一个或多个处理机上, 解决好处理机调度、任务调度和资源分配问题, 防止死锁。

(6) 一旦某个处理机发生故障,如何对系统进行重新组织而不使其瘫痪。

7.1.2 多处理机的硬件结构

1.紧耦合和松耦合

(1)紧耦合处理机

紧耦合多处理机是通过共享主存实现处理机间通信的,其通信速率受限于主存频宽各处理机与主存经互联网络连接,处理机数受限于互连网络带宽及个处理剂访主存冲突的概率。

为减少访主存冲突,主体采用模m多体交叉存取。各处理机可自带小容量局部存储器存放该处理机运行进程的核心代码和常用系统表格,以进一步减少访主存冲突。

处理机还可自带Cache,以减少访主存次数。

7-1紧耦合多处理机结构

7-1紧耦合多处理机结构

处理机-存储器互连网络实现各处理机与各存储器模块的连接,使之经仲裁之后,每个存储器模块在一个存储周期只响应其中一台处理机的方寸请求,为避免各处理机同时访问同一存储器模块的冲突,存储器模块数m应等于或略大于处理机数p,每台处理机自带局部存储器的方案,不仅可以减少访主存信息量,降低访主存冲突概率,而且可以减少处理机-存储器互连网络的使用冲突。如果再自带Cache,就可以进一步减少这类冲突。

存储器映像模块(MM)用于控制将处理机访存地址映像到局部存储器、专用Cache或主存模块。

存储器的每个模块又可以由流水方式工作的多个子模块构成。

处理机间通过中断信号互连网络,由一台处理机向另一台处理机发出中断信号,实现处理机间的进程同步。

处理机和连接外设的I/O通道经I/O-处理机互连网络来实现通信,实现各处理机与各I/O通道之间完全连接的对称性,I/O-处理机互连网络虽然灵活,但价格昂贵,所以多数多处理机采用非对称性互连,即连到一台处理机的设备不能被另一台处理机直接访问。

在非对称的I/O子系统中,为防止某台处理机失效时它所接的外设无法连到其他处理机上,可采用适当的冗余连接,能在一定程度上克服这一缺点。

在紧耦合多处理中就各处理机而言,又有同构对称和异构非对称两种。

当多处理机用于并行任务时,常采用同构对称型的紧耦合多处理机。

带非对称I/O子系统的多处理机结构

带非对称I/O子系统的多处理机结构

采用冗余连接的非对称I/O子系统

采用冗余连接的非对称I/O子系统

采用异构非对称型多处理机时,其主处理机不同于从处理机。主处理机、主存经高速系统总线连至字符处理机与字符外设、数组处理机与数组外设、网络处理机、图形处理机、向量加速处理机。后者均为专门的从处理机,其结构不同于主处理机。

(2)松耦合多处理机

松耦合多处理机中,每台处理机都有一个容量较大的局部存储器,用于存储经常用的指令和数据,以减少紧耦合系统中存在的访主存冲突。不同的梳理机间或通过通道互连实现通信,以共享某些外围设备;或者通过消息传送系统(Message Transfer System,MTS)来交换信息,这时,各台处理机可带自己的外围设备

消息传送系统常采用分时总线或环型、星型、树型等拓扑结构。

松耦合梳理机较适合做粗粒度的并行计算。

当各处理机任务间交互作用很少时,这种耦合度很松的系统是很有效的,可看成是一个分布系统。

松耦合多处理机可分为非层次型和层次型两种构形。

2.机间互连形式

多机互连要满足高通信速率、低成本,灵活多样,以实现各种复杂的乃至不规则的互连而不发成冲突。

多处理机互连一般采用总线、环型互连、交叉开关、多端口储存器或蠕虫穿洞寻经网络等几种形式。

(1)总线形式

多处理机、存储器模块和外围设备通过接口与公用总线相连,采用分时或多路转接技术传送。

其中单总线方式结构简单。成本低,系统增减模块方便,但对总线失效敏感,处理机机数增加会增大总线冲突概率使系统效率下降。

提高总线形式的系统效率的方法:

1、使用优质高频同轴电缆提高速率,进一步使用光纤通信。其信息速率可达109~1010bit/s

2、用多总线方式来减少总线的冲突概率。

为解决多处理机同时访问公用总线的冲突,研制了静态优先级、固定时间片、动态优先级、先来先服务等多种总线仲裁算法。

静态优先级算法为每个连到总显得部件分配一个固定的优先级,当多个部件同时请求使用总线时,选择拐走优先级的部件先使用总线。

固定时间片算法是把总线按固定大小时间片轮流提供给部件使用。它适合于同步总线,总线上所有设备都用一个公共时钟同步。

动态优先级算法是总线上各个部件的优先级可根据情况按一定规则动态改变,近期最少使用(LRU)法时在每个总线周期后,最先响应最长时间间隔内未使用过总线访问的需求。循环串行链(Rotating Daisy Chain,RDC)法是在每个总线周期后,按总线可用线所接部件顺序,优先响应离刚使用过总线的部件位置最近的部件所发出的总线请求。

先来先服务算法是按收到访问总线请求的先后顺序来响应的,在固定的服务时间里,这种算法会使各部件使用总线的平均等待时间最短,但它需要有机构记录各请求到达的先后次序,如果两个或多个请求在间隔很短的时间内到达,会很难识别谁先谁后,是一种近似算法。

(2)环型连接形式

为保持总线式优点,同时克服总线式的不足,构造一种逻辑总线,让各台处理机之间点点相连成环状,称环型互连。

在这种多处理机上,信息的传递过程是由发送进程将信息送到环上,经环形网络不断向下一台处理机传递,直到此信息又回到发送者处为止。

发送信息的处理机拥有一个唯一的令牌(Token)它是普通传送的信息中不会出现的特定标记,同时只能让一台处理机可以持有这个令牌。发送者在发送信息是,环上其他处理机都处于接受信息的状态。发送者一旦将信息发送完毕,就向环上播送令牌,其他处理机依次传递此信息和令牌,并根据需要接受信息。如果某台处理机想要发送信息,在收到令牌后不再将令牌向下一台处理机传递,此时这台处理机就可以通过环型网络来发送信息了。

如果处理机都不在发送信息,令牌就在环型网络上不但循环知道某台处理机需要发送信息为止。

由于环型互连是点点连接,不是总线式连接,其物理参数容易得到控制,非常适合与有高通信带宽的光纤通信。

环形总线的缺点是信息在每个接口处都会有一个单位的传输延迟,当互联的处理机机数增加时,环中的信息传输延迟将增大。

网上处理机机数很多,通信负荷很重,不会出现总线式互连网络那样使系统带宽急剧下降的情况,系统的带宽仍保持一个高值。

令牌环网可以看成是一种周期短、延迟长的流水线,只有出现流水线排空操作类似的情况时,随着环网上处理机机数的增加,网络的带宽会严重降低。

(3)交叉开关形式

单总线互连结构最简单,但争用总线现象最严重。交叉开关形式则不同于单总线。它用纵横开关阵列将横向的处理机P及I/O通道与纵向的存储器模块M连接起来。

交叉开关形式是多总线朝总线数增加方向的极端情况,总线书等于全部相连的模块数。且m>=i+n,n个处理机和i个I/O设备都能分到总线与m个存储器模块之一连通并行地通信。互连网络不争用开关,可以大大展宽互联传输频带,提高系统效率。

交叉开关不是公用总线的按时间分割机制,而是按空间分配机制。

任何处理机或I/O通道与任何春初期模块交换信息时,只在交叉开关处有一个单位的传输延迟,如果存在多个处理机或I/O通道访问同一主存模块或访问共享主存变量时,还会发生冲突,该冲突为访存冲突,它可以通过重新调整数据在存储模块中的位置或其他措施解决。这时,影响多处理机系统性能的瓶颈不再是互连网络,而是共享存储器。

由于交叉开关较复杂,可通过用多个较小规模的交叉开关串连或并连工程多级交叉开关网络,以取代单级的大规模交叉开关。

在多处理机中,经常会遇到互连网络的入端数和出端数不同的情况,为降低开关阵列的复杂性,可采用榕树(Banyan)形的互连网络。

用a*b的交叉开关模块,使a中任一输入端与b中任一输出端相连,用n级a*b交叉开关模块可组成一个an*bn的开关网络。意思是每个小的交叉开关模块为a*b,总共有an个输入和bn个输出的n级网络。叫做Delta网络

Delta网络比较适用于入端数和出端数不等或通信不规则的多处理机。

由于多处理机的通信模式不规则,能实现N!种排列的全排列网络同样适用于多处理机的机间互连。不同于SIMD的是开关中带有小容量缓冲存储器,采用消息包交换而不是线路交换。

(4)多端口存储器形式

每个存储器模块有多个访问端口,将分布在交叉开关矩阵中控制、转移和优先级仲裁逻辑分别移到相应存储器模块的接口中,就构成了多端口存储器形式的结构。

多端口存储器形式的中心是多端口存储器模块,多个存储器模块的相应端口连接在一起,每一个端口负责处理一个处理机P或I/O通道的访存请求,每个存储器模块按照对它的每个端口指定的优先级来分解对它的访问冲突。

多端口存储器形式中全部系统的复杂性就移到存储器模块中了。因此,端口数不宜太多,且一经做好不能改变。

(5)蠕虫穿洞寻经网络

机间采用小容量缓冲存储器,用于消息分组寻经存储转发,在蠕虫网络中,将消息分组又分割成一系列更小的小组,同一分组中所有小组以异步流水方式按序不间断地传送,并且同一分组中的所有小组,只有同步的小组知道其所在整个分组传送的目的地,用硬件方式进行传送的应答,各个小组允许交叉传递,但不同小组中的各个小组不能互相混在一起传送,利用虚拟通道思想,使存在于发送和接受结点之间的一条物理通道能被多个虚拟通道分时共享。

(6)开关枢纽结构形式

参照多端口存储器的思想,把互连结构的开关设置在各处理机或接口内部,组成分布式结构,称为开关枢纽结构形式,每一台处理机通过它的开关枢纽与其他多台处理机连接组成各种分布结构的多处理机。

理想的拓扑结构是:所用开关枢纽数量少,每个开关枢纽的端口数不多,能以较短的路径把数量很多的处理机连接起来,实现快速而灵活的通信,不改变模块本身的结构,就可以使系统规模得到任意扩充。

与本文相关的文章
版权声明
转载保留版权: 大D综合研究院 | 《《计算机系统结构》读书笔记(十八)》
本文链接地址:https://www.dadclab.com/archives/3228.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
本文被贴上了: , , , , 标签