引用:
作者dox6
snipped....
NUMA指的是每一組記憶體控制器有各自獨立的定指控制表
UMA則是共用一份表即使有多組控制器,他們要不斷的同步
從外部上來看可視為就像是只有一組控制器
所以兩者的記憶體頻寬就會差異很大
|
鵝認知中現在基本上已經沒有UMA了(自從MCH內建於CPU後,多路的機器實際上都是NUMA),CPU要存取不同CPU下的記憶體時都要透過CPU間的inter connection(不論是A社的HyperTransport或是I社的QPI),雖然對一般IO算很快,但對記憶體來說還是不夠快,所以OS才會有NUMA aware與否的差異(job dispatch要把process分給可以直接存取到相關記憶體空間的CPU,儘量避免走CPU inter connection),non NUMA aware OS在這一點就比較吃虧,UMA應該是指所有的記憶體都接在傳統的北橋上,CPU要存取記憶體就要走到FSB,所以FSB須要仲裁,但應該不是指互相同步


....