文档介绍:多处理机系统的共享存储2016-11-172016-11-1722?多处理机系统的概念?多处理机的分类集中式共享存储器结构分布式共享存储器结构2016-11-172016-11-1733使用多个处理机组成一个并行计算机(puter)是提高系统性能的有效方法。一个并行计算机是多个处理部件(processing element)的集合,所有的处理部件通过相互通信,协同解决复杂的问题。处理部件之间由互联网络连接,这种并行的优点是可以利用现有的高性能处理机,加上快速互联网络构成高性能并行系统。多个处理机及存储器模块构成的并行处理机被称为多处理机系统(multiprocessor system),简称多处理机。处理机之间的通信通过共享存储器(shared memory)进行。2016-11-172016-11-1744多处理机系统概念?广义上说,使用多台计算机协同工作来完成所要求的任务的计算机系统都是多处理机系统。?传统的狭义多处理机系统的作用是利用系统内的多个CPU来并行执行用户的几个程序,以提高系统的吞吐量或用来进行冗余操作以提高系统的可靠性。多个处理机(器)在物理位置上处于同一机壳中,有一个单一的系统物理地址空间和每一个处理机均可访问系统内的所有存储器是它的特点。2016-11-172016-11-1755多处理机的分类一个多处理机有一个可以被所有处理机访问的存储系统(实现享)。存储器系统由一个或多个存储器模块组成,所有的存储器模块使用一个统一编址的地址空间。处理机可以用不同的地址访问不同的存储器模块。根据系统中处理器个数的多少,可把现有的MIMD(多指令多数据流,实现作业,任务,指令等各级全面并行)计算机分为两类,每一类代表了一种存储器的结构个互联策略。由于多处理机的规模大小这个概念的含义是随时间的变化的,所以我们用存储结构来区分这些机器。第一类:集中式共享存储器结构第二类:分布式共享存储器结构2016-11-172016-11-1766集中式共享存储器(Centralized Shared-memory Architecture) 这类多处理机在目前至多有几十个处理器。由于处理器数目较小,可通过大容量的Cache和总线互连使各处理器共享一个单独的集中式存储器。因为只有一个单独的主存,而且从各处理器访问该存储器的时间是相同的,所以这类机器有时被称为UMA(UniformMemory Access)机器。这类集中式共享存储器结构是目前最流行的结构。图1为此类机器结构的示意图。图中多个处理器-Cache子系统共享同一个物理存储器,其连接一般采用一条或多条总线。2016-11-172016-11-1777图1 基于总线带缓存的多处理器↘总线2016-11-172016-11-1788?这种体系结构支持对共享数据和私有数据的Cache缓存。私有数据供一个单独的处理器使用,而共享数据供多个处理器使用。共享数据主要是用来供处理器之间通过读写它们进行通信。私有数据缓冲在Cache中降低了平均访存时间和对存储器带宽的要求,使程序的行为类似于单机。共享数据可能会在多个Cache中被复制,这样做除了可降低访存时间和对存储器带宽的要求外,还可减少多个处理器同时读共享数据所产生的冲突。但共享数据进入Cache也产生了一个新的问题,即Cache的一致性问题。2016-11-172016-11-1799多处理机的一致性(Coherence)?对于在多处理机上的数据共享,不同处理器的Cache都保存有对应存储器单元的内容,因而在操作中就可能产生数据的不一致。表1通过两个处理器Cache对应同一存储器单元产生出不同的值的例子说明了这个问题,这通常称为Cache一致性问题。2016-11-172016-11-171010由两个处理器(A和B)读写引起的Cache一致性问题0103 CPU A 将0存入X112 CPU B 读X111 CPU A 读X10X单元存储器内容CPU B Cache 内容CPU A Cache 内容时间 事件0时间:X单元数据为11时间:CPU A 将X中数据1读入Cache2时间:CPU B 将X中数据1读入Cache3时间:CPU A将0写入X中。此时Cache A与X中数据一致为0,与Cache B 不一致