計算機體系結構中的共享記憶體模型是什麼?
共享記憶體模型是指處理器透過讀取和寫入所有處理器都可以訪問的共享記憶體中的位置來連線的模型。每個處理器都可以擁有暫存器、緩衝區、快取和本地記憶體庫作為更多的記憶體資源。共享記憶體系統設計中需要考慮一些基本問題。這些問題涉及訪問控制、同步、保護和安全。
訪問控制指定哪些程序可以訪問哪些資源。訪問控制模型針對處理器向共享記憶體發出的每個訪問請求,根據訪問控制表的內容進行必要的檢查。後者包含決定每次訪問嘗試合法性的標誌。如果有對資源的訪問嘗試,那麼在所需的訪問完成之前,所有不允許的訪問嘗試和非法程序都會被阻止。來自共享程序的請求可以在執行期間修改訪問控制表的內容。
訪問控制的標誌與同步規則一起指定了系統的功能。同步約束限制了共享程序對共享資源的訪問時間。適當的同步確保資料正確流動並提供系統功能。
保護是系統的一項功能,可以防止程序任意訪問屬於其他程序的資源。共享和保護是不相容的;共享允許訪問,而保護限制訪問。
最簡單的共享記憶體系統包括一個記憶體模組,該模組可以由兩個處理器建立。請求透過其兩個端口出現在記憶體模組上。記憶體模組內的仲裁單元將請求傳遞給記憶體控制器。
如果記憶體模組空閒並且只有一個請求到達,則仲裁單元將該請求傳遞給記憶體控制器,並授予該請求。在服務請求期間,模組處於繁忙狀態。如果在記憶體忙於服務先前請求時到達新的請求,則請求處理器可能會在其線上保持其請求,直到記憶體空閒,或者它可能會在稍後重複其請求。
共享記憶體系統導致可以歸類為統一記憶體訪問 (UMA)、非統一記憶體訪問 (NUMA) 和僅快取記憶體體系結構 (COMA) 的系統。
在 UMA 系統中,所有處理器都可以透過互連網路以與單個處理器訪問其記憶體相同的方式訪問共享記憶體。因此,所有處理器對任何記憶體位置都有相同的訪問時間。在 UMA 中使用的互連網路可以是單匯流排、多匯流排、交叉開關或多埠記憶體。
在 NUMA 系統中,每個處理器都有一部分共享記憶體附加到它。記憶體具有單個地址空間。因此,任何處理器都可以使用其真實地址直接訪問任何記憶體位置。但是,對模組的訪問時間取決於到處理器的距離。這導致了非統一的記憶體訪問時間。