什麼是共享記憶體MIMD架構?
共享記憶體MIMD架構被稱為多處理器。它可以被認為是一組處理器和一組記憶體模組。任何處理器都可以透過互連網路直接訪問任何記憶體模組,如圖所示。這組記憶體模組代表一個由所有處理器共享的全域性地址空間。這種型別的並行機稱為共享記憶體MIMD架構。
共享記憶體MIMD架構的優點
共享記憶體MIMD架構具有以下優點:
不需要對程式碼或資料進行分割槽,因此單處理器程式設計方法可以簡單地適應多處理器環境。
當兩個或多個程序通訊時,不需要物理傳輸資料。使用者程序可以訪問製造商儲存資訊的位置。
處理器之間的通訊非常高效。
程式設計共享計算機比分散式計算機更容易。
共享記憶體MIMD架構的缺點
共享記憶體MIMD架構具有以下缺點:
共享記憶體系統的主要缺點是由於爭用問題導致的可擴充套件性不足。當多個處理器需要訪問相同的記憶體模組時,它們必須爭奪訪問許可權。獲勝者可以訪問記憶體,而失敗者則必須等待。處理器數量越多,記憶體爭用的可能性就越大。
儘管共享記憶體子系統的程式設計通常比多計算機程式設計簡單,但同步訪問共享資料結構需要某些同步結構,例如訊號量、條件臨界區、監視器等。使用這些結構會導致程式行為不確定,從而導致難以發現的程式設計錯誤。
在處理器和記憶體模組之間使用高吞吐量、低延遲的互連網路可以顯著提高可擴充套件性。
為了減少記憶體爭用問題,共享記憶體系統擴充套件了稱為快取記憶體的小型本地記憶體。每當處理器發出記憶體引用時,首先檢查關聯的快取記憶體,以檢視所需資料是否儲存在快取中。
可以無需使用互連網路執行記憶體引用,從而減少記憶體爭用。如果所需的資訊不在快取記憶體中,則將包含該資料的頁面傳輸到快取中。主要假設是共享記憶體程式通常提供良好的引用區域性性。例如,在執行過程期間,在許多情況下,只需訪問包含在處理器快取中的本地資料就足夠了。
邏輯共享記憶體可以物理實現為本地記憶體的集合。這種新型架構稱為虛擬共享記憶體或分散式共享記憶體架構。