笔记内容及图片整理自XJTUSE “计算机组成原理与系统结构” 课程ppt,仅供学习交流使用,谢谢。
传统CPU执行程序的方式是顺序执行机器指令且每次一条指令,每条指令都按一系列操作(取指、取操作数、执行操作、存储结果)执行。
然而微操作层面,多个控制信号同时产生,且每条指令的各个操作可能重叠执行,对于这种情况运用并行处理方法能有效提高性能。
多处理器结构
并行处理器系统的类型
典型计算机系统有以下四类:
1)单指令单数据SISD流——单个CPU执行一个指令流,操作单个内存中保存的数据
2)单指令多数据SIMD流——单个机器指令以锁步为基础控制多个处理单元的同时执行,每个处理单元都有一个相关联的数据存储器,指令由不同CPU在不同数据集上执行
、
3)多指令单数据MISD流——一个数据序列被传递给一组CPU,每个CPU执行不同序列
4)多指令多数据MIMD流——一组CPU同时在不同数据集上执行不同指令序列
以下是并行处理器体系结构的分类示意图:
独立单处理器或对称多处理器的集合相互连接形成集群,它们是松散耦合的,通过固定路径或网络连接进行通信。
对称多处理器
SMP指计算机硬件架构及反映架构的操作系统行为,它定义具有以下特征的独立计算机:
1)具有两个及以上的功能相当的类似处理器
2)处理器共享相同的系统主存和I/O设备,通过总线或其他内部连接方式进行互连,因此每个处理器的访存时间大致相同
3)所有处理器通过相同通道或同一设备的不同通道来共享访问I/O设备
4)所有处理器都可以执行相同的功能,因此是对称的
5)系统由集成操作系统控制,它在作业、任务、文件和数据元素层面提供处理器与其程序之间的交互
6)单个数据元素可以构成一级交互,进程之间可以进行高度协作
与单处理器组织结构相比,SMP组织结构具有以下潜在优势:
1)性能——若计算机完成的工作能被组织起来,以便部分工作可以并行完成,则多处理器系统将比相同类型的单处理器系统的性能更高
2)可用性——在对称多处理器中,由于所有处理器都能执行相同功能,所以单个处理器的故障不会造成停机,相反系统会降低性能继续工作
3)增量扩展——用户可以通过添加其他处理器来增加系统性能
4)可伸缩性——根据系统配置的处理器数量提供一系列具有不同价格和性能特点的产品
5)透明性——多个处理器的存在对用户而言是透明的
组织结构
多处理器系统的组织结构有两个或更多处理器,每个处理器都是独立的,包含控制单元、ALU、寄存器、一级或多级高速缓存。每个处理器都可以通过互连机制来访问共享主存和I/O设备。处理器间的通信可以通过共享内存(公共数据区留下的消息和状态)进行,还可以同时执行对单独内存块的多次访问。某些配置中,除了共享资源外,每个处理器可能还有自己的专用内存和I/O通道。
分时总线是最常见的组织结构,也是构建多处理器系统最简单的机制。其结构和接口基本上与使用总线互连的单处理器系统相同。总线包括控制总线、地址总线、数据总线。为了方便从I/O子系统到处理器的DMA传输,分时总线提供以下功能:
1)寻址——能够区分总线上的模块,以确定数据的源和目的
2)仲裁——任何I/O模块都能暂时充当主模块,这提供了一种机制来对总线控制权的竞争请求进行仲裁,通常使用优先级方案
3)分时——当一个模块控制总线时,其他模块被锁住,若有需要则必须挂起操作直至实现总线访问
分时总线具有以下优点:
1)简单——每个处理器的物理接口、寻址、仲裁和分时逻辑都与单处理器系统保持一致
2)灵活——很容易通过把更多处理器连接到总线上来扩展系统
3)可靠——总线是一种无源介质,其上连接的任何设备的故障不应导致整个系统的故障
分时总线具有以下缺点:
1)性能受总线周期时间限制,因此每个处理器都应配备高速缓存以降低总线访问的数量
2)导致高速缓存一致性问题,即更改一个高速缓存中的字可能使得另一个高速缓存中的字变为无效
多处理器操作系统设计问题
SMP操作系统提供多道程序设计系统的所有功能,并能适应多处理器的其他功能,其关键设计问题如下:
1)同时并发进程——操作系统例程需要重入以允许多处理器同时执行相同的IS代码
2)调度——任何处理器都可以执行调度,所以必须避免冲突,调度器分配就绪进程给CPU
3)同步——对共享地址空间或I/O资源有潜在访问权的多个活跃进程,必须提供有效同步
4)内存管理——多处理器的内存管理必须处理单处理器机器上发现的所有问题,还要协调不同处理器上的分页机制,以便在几个处理器共享页面时确保一致性并决定如何替换页面
5)可靠性和容错——操作系统在面对处理器故障时,应该提供适当的降级功能。调度器和操作系统的其他部分必须识别处理器的丢失,并相应地重构管理表
集群
集群配置
集群是除对称多处理之外,另一种提供高性能和高可用性的SMP的替代方案,尤其适用于服务器应用程序。集群常被定义为一组相互连接的完整计算机作为统一计算资源协同工作,每台计算机称为一个节点,共同形成一台机器的错觉。使用集群具有以下四个优点:
1)绝对可扩展性——集群可以由大量机器组成,每台机器都是一个多处理器
2)增量可扩展性——可以从简单系统开始,随着需求增长逐步扩大集群规模
3)高可用性——集群中的节点都是独立计算机,一个节点故障并不意味整体故障
4)高性价比——通过使用商品构建块,集群组合具有更高的性能和更低的成本
没有共享磁盘的备用服务器示例:
共享磁盘示例:
操作系统设计问题
充分利用集群硬件配置需要对单系统操作系统进行增强:
1)故障管理——集群故障管理取决于使用的集群方法,通常采用高可用集群(提供高概率的所有资源处于服务状态)和容错集群(通过冗余共享磁盘以及备份未提交事务的机制确保所有资源始终可用)来处理故障
2)负载平衡——集群需求有效的能力来平衡可用计算机之间的负载,这包括集群增量扩展的需求,中间件机制需要认识到服务可能出现在集群的不同成员上,并可能从一个成员迁移到另一个成员
3)并行计算——集群的有效使用需要并行地从单个应用程序执行软件,通用方法包括并行编译器、并行化应用程序和参数计算。
非均匀内存访问
非均匀内存访问NUMA指全部处理器都可以使用加载和存储来访问主存的所有部分,但是处理器的访存时间按照被访问的主存区域不同而不同。NUMA的一种特例是高速缓存一致的CC-NUMA,即各处理器高速缓存之间保持一致的NUMA系统,没有高速缓存一致性的NUMA系统大致上等效于集群,而CC-NUMA与SMP和集群都不同。
对于SMP系统,随着处理器数量的增加,公共总线数量的增加可能限制性能,缓存一致性信号进一步增加了负担,因此处理器不是无限可扩展的。通常SMP中有16-64个处理器;对于集群,每个节点都有自己的单独主存,应用程序无法看到大型全局内存,这会影响实现最大性能;而NUMA可以弥补上述这些限制。
CC-NUMA组织示例如下:
NUMA优缺点
NUMA具有以下优点:
1)在比SMP更高的并行级上提供性能,而无需进行重大软件改变
2)单个节点的总线流量有限,因此针对远程节点的访问性能会下降
3)使用L1、L2缓存高速缓存以最小化包括远程访问的所有内存访问
4)程序具有良好的时间局部性和空间局部性
NUMA具有以下缺点:
1)需要一个新的操作系统来支持把应用程序从SMP移动到CC-NUMA的过程,包括故障管理、负载平衡、并行计算
2)可用性高,具体取决于系统实现