NUMA 非統一記憶體訪問

2021-06-07 23:28:37 字數 983 閱讀 6583

之前很多人都認為ms的產品只能使用在中小企業,進不了企業級市場,ms的東西都是在pc server上來實現,無法和ibm的主機系統來pk。隨著硬體的不斷發展,pc server的優勢也漸漸體現出來了,但是很多時候使用者還是希望能夠有更強大的pc server來執行他們的系統。ibm的主機可以有數千顆cpu肯定比只有幾十顆cpu的pc server快很多。但是現在的pc server也可能做到幾百顆的cpu,這樣就要看看微軟的產品是否支援了。

硬體已經趨向使用多條系統匯流排,每條系統匯流排為一小組處理器提供服務。每組處理器都有自己的記憶體,並可能有自己的 i/o 通道。但是,每個 cpu 都可以通過一致的方式訪問與其他組關聯的記憶體。每個組稱為乙個「numa 節點」。numa 節點中的 cpu 數量取決於硬體**商。訪問本地記憶體比訪問與其他 numa 節點關聯的記憶體快。這就是「非一致性記憶體訪問體系結構」名稱的由來。

在 numa 硬體上,有些記憶體區域與其他區域位於不同的物理匯流排上。由於 numa 同時使用本地記憶體和外部記憶體,因此,訪問某些記憶體區域的時間會比訪問其他記憶體區域的要長。「本地記憶體」和「外部記憶體」通常用於引用當前正在執行的執行緒。本地記憶體是指與當前正在執行執行緒的 cpu 位於同一節點上的記憶體。任何不屬於當前正在執行的執行緒所在的節點的記憶體均為外部記憶體。外部記憶體也稱為「遠端記憶體」。訪問外部記憶體的開銷與訪問本地記憶體的開銷比率稱為 numa 比率。如果 numa 比率為 1,則它是對稱多處理 (smp)。比率越高,訪問其他節點記憶體的開銷就越大。不支援 numa 的 windows 應用程式(包括 sql server 2000 sp3 及更低版本)有時在 numa 硬體上的執行效果非常差。

numa 的主要優點是伸縮性。numa 體系結構在設計上已超越了 smp 體系結構在伸縮性上的限制。通過 smp,所有的記憶體訪問都傳遞到相同的共享記憶體匯流排。這種方式非常適用於 cpu 數量相對較少的情況,但不適用於具有幾十個甚至幾百個 cpu 的情況,因為這些 cpu 會相互競爭對共享記憶體匯流排的訪問。numa 通過限制任何一條記憶體匯流排上的 cpu 數量並依靠高速互連來連線各個節點,從而緩解了這些瓶頸狀況。

統一的訪問介面

在嵌入式開發中,難免要和硬體打交道,方式就是讀寫相應的暫存器。為了便於維護,肯定是要模組開發,分層開發。很多東西都知道,關鍵是執行。工作壓力大,趕進度等等就降低了對 質量的要求。這裡記錄下自己的感受,免得以後再犯。針對暫存器的操作肯定是是要封裝到函式內部的,提供乙個介面,如read reg writ...

非一致性記憶體架構 NUMA

非一致性記憶體架構 non uniform memory architecture 是為了解決傳統的對稱多處理 symmetric multi processor 系統中的可擴充套件性問題而誕生的。在對稱多處理系統中,處理器共享北橋中的記憶體控制器來達到共同訪問外部記憶體和io的目的,也就是說所有的...

NUMA 非一致性記憶體架構

非一致性記憶體架構 non uniform memory architecture 是為了解決傳統的對稱多處理 symmetric multi processor 系統中的可擴充套件性問題而誕生的。在對稱多處理系統中,處理器共享北橋中的記憶體控制器來達到共同訪問外部記憶體和io的目的,也就是說所有的...