共享存儲

共享存儲

共享存儲是指兩個或多個處理機共用一個主存儲器的并行體系結構。每一個處理機都可以把信息存入主存儲器,或從中取出信息。處理機之間的通信通過訪問共享存儲器來實現。

基本介紹


共享存儲如同其名字所隱喻的,是物理存儲器中一段可由兩個以上的進程共享的存儲空間。共享存儲段具有大小和物理存儲地址。想要訪問共享存儲段的進程可以連接這段存儲區域到自己的地址空間中任何適合的地方,其他進程也一樣。這樣,多個進程便可以訪問相同的物理存儲。其中箭頭表示進程的邏輯存儲與物理存儲的映射關係。
共享存儲計算機系統由於支持傳統的單地址編程空間,減輕了程序員的編程負擔,因此它具有較強的通用性,且可以方便地移植現有的應用軟體。早期的共享存儲計算機採用集中式的共享存儲器,即多個處理機通過匯流排、交叉開關或多級網際網路路等與共享存儲器相連,所有處理機訪問存儲器時都有相同的延遲。然而,由於多個處理機共享存儲器,使得存儲器成為系統瓶頸。為此,在規模較大的共享存儲計算機系統中,把共享存儲器分成許多模塊,並使它們分佈於各結點之間(一個結點可能有一個或多個處理機),這種系統稱為分散式共享存儲(DSM)計算機系統,即每個結點包含共享存儲器的一部分,結點之間通過可伸縮性好的網際網路路相連。分散式的存儲器和可伸縮的網際網路路增加了訪存帶寬,但導致不均勻的訪存延遲。
為了緩解由存儲共享引起的衝突以及由存儲器分佈引起的訪存延遲,共享存儲計算機系統的處理器中一般都有高速緩衝存儲器。但高速緩衝存儲器的使用帶來了高速緩衝存儲器一致性問題。另外,存儲器的分佈使處理機訪問不同的存儲單元有不同的延遲。為了保證并行程序的正確執行,需要有某種高速緩衝存儲器一致性協議和存儲一致性模型。
高速緩衝存儲器一致性協議是把系統中的一個處理機新寫的值傳播給其他處理機的機制。高速緩衝存儲器一致性協議都是為實現某種存儲一致性模型而設計的。
存儲一致性模型是系統設計者和程序員之間的一種約定,它給出了判斷共享存儲程序及結構正確的標準,其中順序一致性模型被普遍作為共享存儲程序執行正確的標準,也是定義其他弱一致性模型的基礎。在順序一致性模型中,多個處理器并行執行程序的結果等於把每個處理機所執行的指令流按某種方式順序地交織在一起在單機上執行的結果。如果在多處理機環境下的一·個并行執行的結果和同一程序在單處理機多進程環境下的執行結果相同,則此并行執行正確。
在共享存儲系統中,為了實現順序一致性模型,需要對訪存事件次序施加嚴格的限制,為了放鬆對訪存事件次序的限制,人們提出了一系列弱存儲一致性模型。這些弱存儲一斂性模型的基本思想是:在順序一致性模型中,雖然為了保征正確執行而對訪存事件次序施加了嚴格的限制,但在大多數不會引起訪存衝突的情況下,這些限制是多餘的,因此可以讓程序員承擔部分執行正確性的責任,即在程序中指出需要維護一致性的訪存操作,系統只保證在用戶指出的需要保持一致性的地方維護數據一致性,而對用戶未加說明的部分,則可以不考慮處理機之間的數據相關。

系統結構


根據存儲器的分佈、一致性的維護以及實現方式等特徵,常見的共享存儲系統的體系結構有以下幾種:
(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等。