什麼是共享內存?

現代計算機有很多內存。每個 CPU 都有自己的緩存,每個正在運行的程序都被分配了它的一部分系統 RAM。有許多不同的方式可以使用和分配此內存。共享內存是一個以不同方式影響 CPU 緩存和系統 RAM 使用的概念。

硬件中的共享內存

大多數現代 CPU 都具有三個緩存層,分別稱為 L1、L2 和 L3。L1 是最小和最快的緩存,而 L3 是最大和最慢的。但是,它們都比訪問主內存更快,這使得命中率對性能至關重要。許多因素使 L1 緩存比 L3 更快。首先,L1 存儲單元在物理上更大。它們的數量也更少,而且它們的位置更靠近 CPU 核心,通常在其中。

在多核 CPU 上,將緩存塊放置在內核的管芯區域內會帶來額外的複雜性。此時,您可以選擇在每個內核中或內核外部(特別是在它們之間)擁有一個緩存。每個都有其優點和缺點。

在核心中放置緩存可最大限度地減少訪問延遲,但這也意味著每個核心都需要其緩存。這意味著您最終可能會在不同內核的 L1 緩存中出現重複的緩存行,從而降低緩存空間效率。這稱為本地緩存,雖然它對訪問時間非常有用,但它在緩存空間使用方面的效率較低,並且在緩存一致性方面需要額外的開銷。

共享緩存是可用於多核 CPU 中的多個或所有內核的緩存。共享緩存意味著多個內核可以訪問特定數據的一個實例,從而限制由於重複造成的空間浪費。這也意味著如果需要,一個核心可以臨時申請超過其公平份額的緩存空間,而其他核心則不需要。它確實是以增加訪問時間為代價的。

共享緩存實踐

現代 CPU 使用這兩種概念,每個內核都有一個本地 L1 緩存。L3 緩存往往在許多內核之間共享,但有時並非全部。L2 各不相同,但可以是本地的或共享的,具體取決於特定的 CPU 生成架構。

提示:對於像高端 AMD Ryzen 型號這樣的小芯片 CPU,緩存可能會在小芯片上的所有內核之間共享,而不是與整個 CPU 中的所有內核共享。緩存在多少個內核之間共享並不重要;即使它只有兩個,它仍然是一個共享緩存,儘管值得強調的是它只是部分共享。

注意:系統 RAM 也可以在單個主板上的多個物理 CPU 之間或多 CPU 系統中的節點之間共享。

軟件中的共享內存

在現代計算機中,軟件無法直接尋址物理內存。相反,它被分配了一個虛擬地址段,計算機根據需要將這些虛擬地址轉換為物理地址。這有助於為各個進程隔離內存,這有助於提高安全性。

在某些情況下,可能需要將內存中的數據從一個進程傳輸到另一個進程。最有效的方法是讓兩個進程共享內存空間。這樣,兩個進程就可以讀取相同的數據並相互通信。這也有助於有效地使用系統 RAM,因為數據不會重複。

軟件共享內存通常通過保留數據的一個物理副本並通過虛擬內存為需要訪問它的每個進程映射對其的訪問來實現。

結論

共享內存是讓多個事物訪問一段內存的概念。這可以在硬件和軟件中實現。CPU 高速緩存可以在多個處理器內核之間共享。對於更高層的 CPU 緩存尤其如此。系統內存也可以在單個較大系統中的各種物理 CPU 之間共享。

在軟件中,共享內存可以允許IPC進程間通信。一個進程將內存分配為與一個或多個特定進程共享。然後那些其他進程可以通過虛擬內存映射訪問該內存位置。共享內存通過避免有限空間內的數據重複,有助於確保內存空間的高效使用。



Leave a Comment

如何克隆硬碟

如何克隆硬碟

在資料是寶貴資產的現代數位時代,在 Windows 上複製硬碟對許多人來說可能是一個至關重要的過程。這份綜合指南

如何修復驅動程式 WUDFRd 在 Windows 10 上載入失敗?

如何修復驅動程式 WUDFRd 在 Windows 10 上載入失敗?

您在啟動電腦時是否遇到錯誤訊息,提示驅動程式 WUDFRd 無法在電腦上載入?

如何修復 NVIDIA GeForce Experience 錯誤代碼 0x0003

如何修復 NVIDIA GeForce Experience 錯誤代碼 0x0003

您是否在桌面上遇到 NVIDIA GeForce 錯誤代碼 0x0003?如果是,請閱讀部落格以了解如何快速輕鬆地修復此錯誤。

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

如何在 2023 年從 Windows PC 中移除 GPU

如何在 2023 年從 Windows PC 中移除 GPU

您需要從 PC 上卸下 GPU 嗎?和我一起在這個分步指南中解釋如何從您的 PC 中刪除 GPU。

如何在台式機和筆記本電腦中安裝 NVMe SSD

如何在台式機和筆記本電腦中安裝 NVMe SSD

買了新的 NVMe M.2 SSD 但不知道如何安裝?繼續閱讀以了解如何在筆記本電腦或台式機上安裝 NVMe SSD。

什麼是邏輯炸彈?

什麼是邏輯炸彈?

邏輯炸彈是一種安全事件,攻擊者會在其中設置延遲操作。繼續閱讀以了解更多信息。

什麼是震網?

什麼是震網?

Stuxnet 是一種自我傳播的蠕蟲病毒。這是第一次使用網絡武器,也是第一個惡意軟件實例。

什麼是道德黑客?

什麼是道德黑客?

道德黑客是在法律約束下行事的黑客。繼續閱讀以了解有關該主題的更多信息。

什麼是對稱加密?

什麼是對稱加密?

密碼學有很多不同的部分。如果你想加密一些數據,你可以使用兩種類型的算法: symmetric