共享存儲

共享存儲

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

基本介紹

  • 中文名:共享存儲
  • 外文名:shared memory
  • 含義:由兩個以上的進程共享的存儲空間
  • 實現方式:共享存儲器
  • 套用:資料庫系統等
  • 學科:計算機科學
基本介紹,系統結構,

基本介紹

共享存儲如同其名字所隱喻的,是物理存儲器中一段可由兩個以上的進程共享的存儲空間。共享存儲段具有大小和物理存儲地址。想要訪問共享存儲段的進程可以連線這段存儲區域到自己的地址空間中任何適合的地方,其他進程也一樣。這樣,多個進程便可以訪問相同的物理存儲。其中箭頭表示進程的邏輯存儲與物理存儲的映射關係。
共享存儲計算機系統由於支持傳統的單地址編程空間,減輕了程式設計師的編程負擔,因此它具有較強的通用性,且可以方便地移植現有的套用軟體。早期的共享存儲計算機採用集中式的共享存儲器,即多個處理機通過匯流排交叉開關或多級網際網路等與共享存儲器相連,所有處理機訪問存儲器時都有相同的延遲。然而,由於多個處理機共享存儲器,使得存儲器成為系統瓶頸。為此,在規模較大的共享存儲計算機系統中,把共享存儲器分成許多模組,並使它們分布於各結點之間(一個結點可能有一個或多個處理機),這種系統稱為分散式共享存儲(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等。

相關詞條

熱門詞條

聯絡我們