共享存储是指两个或多个处理机共用一个主存储器的并行体系结构。每一个处理机都可以把信息存入主存储器,或从中取出信息。处理机之间的通信通过访问共享存储器来实现。1
基本介绍共享存储如同其名字所隐喻的,是物理存储器中一段可由两个以上的进程共享的存储空间。共享存储段具有大小和物理存储地址。想要访问共享存储段的进程可以连接这段存储区域到自己的地址空间中任何适合的地方,其他进程也一样。这样,多个进程便可以访问相同的物理存储。其中箭头表示进程的逻辑存储与物理存储的映射关系。
共享存储计算机系统由于支持传统的单地址编程空间,减轻了程序员的编程负担,因此它具有较强的通用性,且可以方便地移植现有的应用软件。早期的共享存储计算机采用集中式的共享存储器,即多个处理机通过总线、交叉开关或多级互联网络等与共享存储器相连,所有处理机访问存储器时都有相同的延迟。然而,由于多个处理机共享存储器,使得存储器成为系统瓶颈。为此,在规模较大的共享存储计算机系统中,把共享存储器分成许多模块,并使它们分布于各结点之间(一个结点可能有一个或多个处理机),这种系统称为分布式共享存储(DSM)计算机系统,即每个结点包含共享存储器的一部分,结点之间通过可伸缩性好的互联网络相连。分布式的存储器和可伸缩的互联网络增加了访存带宽,但导致不均匀的访存延迟。
为了缓解由存储共享引起的冲突以及由存储器分布引起的访存延迟,共享存储计算机系统的处理器中一般都有高速缓冲存储器。但高速缓冲存储器的使用带来了高速缓冲存储器一致性问题。另外,存储器的分布使处理机访问不同的存储单元有不同的延迟。为了保证并行程序的正确执行,需要有某种高速缓冲存储器一致性协议和存储一致性模型。
高速缓冲存储器一致性协议是把系统中的一个处理机新写的值传播给其他处理机的机制。高速缓冲存储器一致性协议都是为实现某种存储一致性模型而设计的。
存储一致性模型是系统设计者和程序员之间的一种约定,它给出了判断共享存储程序及结构正确的标准,其中顺序一致性模型被普遍作为共享存储程序执行正确的标准,也是定义其他弱一致性模型的基础。在顺序一致性模型中,多个处理器并行执行程序的结果等于把每个处理机所执行的指令流按某种方式顺序地交织在一起在单机上执行的结果。如果在多处理机环境下的一·个并行执行的结果和同一程序在单处理机多进程环境下的执行结果相同,则此并行执行正确。
在共享存储系统中,为了实现顺序一致性模型,需要对访存事件次序施加严格的限制,为了放松对访存事件次序的限制,人们提出了一系列弱存储一致性模型。这些弱存储一敛性模型的基本思想是:在顺序一致性模型中,虽然为了保征正确执行而对访存事件次序施加了严格的限制,但在大多数不会引起访存冲突的情况下,这些限制是多余的,因此可以让程序员承担部分执行正确性的责任,即在程序中指出需要维护一致性的访存操作,系统只保证在用户指出的需要保持一致性的地方维护数据一致性,而对用户未加说明的部分,则可以不考虑处理机之间的数据相关。1
系统结构根据存储器的分布、一致性的维护以及实现方式等特征,常见的共享存储系统的体系结构有以下几种:
(1)无高速缓冲存储器的集中式共享存储结构
这种结构的处理机没有高速缓冲存储器,多个处理机通过交叉开关或多级互联网络等直接访问共享存储器。由于任一存储单元在系统中只有一个备份,这类系统不存在高速缓冲存储器一致性问题,系统的可伸缩性受限于交叉开关或多级互联网络的带宽。采用这种结构的典型例子是并行向量机及大型机,如美国Cray公司的Cray-XMP、YMP-C90等。
(2)基于高速缓冲存储器的集中式共享存储结构 在这种结构的系统中,每个处理机都有高速缓冲存储器,多个处理机一般通过总线与存储器相连。每个处理机的高速缓冲存储器通过侦听总线来维持数据一致性。由于总线是独占性资源,这类系统的伸缩性是有限的。这种结构常见于采用对称式多处理机(SMP)系统的服务器和工作站中,如4DEC,SUN,Sequent以及SGl等公司的多机工作站产品。
(3)具有高速缓冲存储器一致性的分布式共享存储结构
这种结构称为高速缓冲存储器一致的非均匀存储访问(CC-NUMA)结构。这类系统的共享存储器分布于符结点之间。结点之间通过可伸缩性好的互联网络相连,每个处理机都能缓存共享单元,高速缓冲存储器一致性的维护是这类系统的关键,决定着系统的可伸缩性。常采用基于目录的方法来维持处理机之间的高速缓冲存储器一致性。这类系统的例子有Slandfbrd大学的DASH和FLASH,MIT的Alewife,以及SGI的Origin 2000等。
(4)唯高速缓冲存储器的分布式共享存储结构(COMA)
在这种结构中,每个结点的存储器相当于一个大容量的高速缓冲存储器,数据一致性也在这一级维护。这种系统的共享存储器的地址是活动的。存储单元与物理地址分离,数据可以根据访存模式动态地在各结点的存储器间移动和复制。其优点是当处理机的访问不在高速缓冲存储器命中时,在本地共享存储器命中率较高。其缺点是当处理机的访问不在本结点命中时,由于存储器的地址是活动的,需要一种机制来查找被访问单元的当前位置,因此延迟很大。采用这种结构的系统有美国Ken-dall Square Research公司的KSRl和瑞典计算机研究院的DDM。此外,这种结构常用于共享虚拟存储系统中。
(5)无高速缓冲存储器一致性的分布式共享存储结构
这种结构称为无高速缓冲存储器一致性的非均匀存储访问(NCC-NUMA)结构。它的特点是虽然每个处理机都有高速缓冲存储器,但硬件不负责维护高速缓冲存储器一致性,而由编译器或程序员来维护。其典型代表是Cray公司的T3D及T3E系列产品,在T3D和T3E中,系统为用户提供了一些用于同步的库函数,便于用户通过设置临界区等手段来维护数据一致性。这样做的好处是系统伸缩性强,高档的T3D及T3E产品可达上千个处理机。
(6)共享虚拟存储结构这种结构又称为软件分布式共享存储结构。它的基本思想是在基于消息传递的大规模并行处理系统或集群式计算系统中,用软件的方法把分布于各结点的多个独立编址的存储器组织成一个统一编址的共享存储空间。这种结构具有共享存储系统的可编程性和消息传递系统的硬件简单的优点,其主要问题是通信开销很大。在某些高性能计算机系统中,在结点内部利用对称多处理机系统提供硬件的共享存储,在结点间由软件实现共享存储。常见的虚拟共享存储系统有Ivy,Midway,Munin,Treadmarks和JIAJIA等。1
本词条内容贡献者为:
何星 - 副教授 - 上海交通大学