7.1 多处理机的概念、问题和硬件结构
7.1.1 多处理机的基本概念和要解决的问题
概念:多处理机是指有两台以上的处理机,共享I/O子系统,机间经共享内存或高速通信网络通信,在统一操作系统控制下,协同求解大而复杂问题的计算机系统。
由于应用的目的和结构不同,多处理机可以有同构型、异构型、分布型3种。
多处理机属于多指令流多数据流(MIMD)的系统。
和阵列处理机不同,阵列处理机是SIMD,主要针对向量、数组处理,实现向量指令操作级的并行,是开发并行性中的同时性。多处理机实现的是更高一级的作业或任务间的并行,是开发并行性中的并发性。
多处理机的结构、机间互连、并行算法、并行语言、编译、操作系统等都将会影响到系统的性能和效率
7.1.2 多处理机的硬件结构
1、 紧耦合和松耦合
1)紧耦合多处理机
紧耦合多处理机是通过共享主存实现处理机间通信的,其通信速率受限于主存频宽。各处理机与主存经互联网络连接,处理机数受限于互连网络带宽及各处理机访主存冲突的概率。
紧耦合多处理机有两种构型:a.处理机不带专用Cache;b.处理机自带专用Cache
系统由p台处理机、m个存储器模块和d个I/O通道组成,通过处理机-存储器互连网络(PMIN)、I/O-处理机互连网络(IOPIN)和中断信号互连网络(ISIN)进行互连。
处理机-存储器互连网络实现各处理机与各存储器模块的连接,经仲裁后,每个存储器模块在一个存储周期只响应其中一台处理机的访存请求。
处理机间通过中断信号互连网络,由一台处理机向另一台处理机发出中断信号,实现处理机间的进程同步。
处理机和连接外设的I/O通道经I/O-处理机互连网络来实现通信。
在紧耦合多处理机中就各处理机而言,又有同构对称型和异构非对称型两种。
当多处理机用于并行任务时,常采用同构对称型的紧耦合多处理机。
2)松耦合多处理机
松耦合多处理机中,每台处理机都有一个容量较大的局部存储器,用于存储常用的指令和数据,以减少紧耦合系统中存在的访主存冲突。不同处理机间通过通道互连实现通信,以共享某些外围设备;或者通过消息传送系统(MTS)来交换信息,这时各台处理机可带油自己的外围设备。
松耦合多处理机比较适合做粗粒度的并行计算。
松耦合多处理机可分为非层次型和层次型两种构型。
2. 机间互连形式
多处理机互连一般采用总线、环形互连、交叉开关、多端口存储器或蠕虫穿洞寻径网络等几种形式。
1)总线形式
多个处理机、存储器模块和外围设备通过接口与公共总线相连,采用分时或多路转接技术传送。
提高总线形式的系统效率:1.使用优质高频同轴电缆 2.用多总线方式来减少访总线的冲突概率。
为解决多个处理机同时访问公用总线的冲突,研制了静态优先级、固定时间片、动态优先级、先来先服务等多种总线仲裁算法。
2)环形互联形式
发送信息的处理机拥有一个唯一的令牌。
环形互联是点点连接,非常适合于有高通信带宽的光纤通信。
3)交叉开关形式
用纵横开关阵列将横向的n个处理机P及i个I/O通道与纵向的存储器模块M连接起来。
总线数=n+i+m,且m>=i+n;
4)多端口存储器形式
每个存储器有多个访问端口,将分布在交叉开关矩阵中的控制、转移和优先级仲裁逻辑分别移到相应存储器模块的接口中,就构成了多端口存储器形式的结构。
5)蠕虫穿洞寻径网络
6)开关枢纽结构形式
参照多端口存储器的思想,把互连结构的开关设置在各处理机或接口内部,组成分布式结构,称为开关枢纽结构形式。
3. 存储器的组织
多处理机的主存一般都采用由多个模块构成的并行存储器
并行存储器设计组织应尽量减少各处理器同时访问同一存储模块引起的冲突。
m个模块低位交叉编址:流水、向量、阵列处理机。
m个模块高位交叉编址:多处理机。
将放置处理机i执行进程要用到的绝大多数页面的那个存储器模块i称为是处理机i的本地存储器。
7.2 紧耦合多处理机多Cache的一致性问题
7.2.1 多Cache的一致性问题的产生
7.2.2 多Cache的一致性问题的解决办法
1.解决进程迁移引起的多Cache不一致性
- 禁止进程迁移
- 在进程挂起时,靠硬件方法将Cache中该进程改写过的信息块强制写回主存相应位置(写直法)
2. 以硬件为基础实现多Cache的一致性
监听法:写更新、写作废
监视Cache协议法,即各个处理机中的Cache控制器随时都在监听着其他Cache的行动。
写更新(播写法):当一个处理器对某数据项进行写入时,通过广播使其他的Cache中所有对应于该数据项的副本进行更新。
写作废:在处理器对某个数据项进行写入之前,保证它拥有对该数据项的唯一的访问权。(作废其它副本)
目录法
目录表法,建立目录表,目录表中每一项记录一个数据块的使用情况,包括几个标志位分别指示这个信息块的副本在其他几个处理机的Cache中是否存在。
具体作法有3种:全映像目录表;有限目录表法;链式目录表法。
3.以软件为基础实现多Cache的一致性
7.3 多处理机的并行性和性能
并行性既存在于指令内部,也存在于指令外部。
必须利用算法、程序设计语言、编译、操作系统以及指令、硬件等多种途径来开拓。
7.3.1 并行算法
1.并行算法的定义和分类
算法规定了求解某一特定问题时的有穷的运算处理步骤。
按运算基本对象,数值型、非数值型;
按并行进程间的操作顺序不同,同步型、异步型、独立型;
按计算任务大小,细粒度、中粒度、粗粒度;
按并行进程是否相同,同构型、异构型。