記憶體通道

由於討論 NUMA 架構的時候有時還會牽涉到單一 NUMA 節點內記憶體控制器不只一個,而是組成類似叢集的結構的問題,太過複雜所以在這裡我不打算討論,就直接進入記憶體控制器的下一階層-記憶體通道吧。

RAM5266

 

最早廣泛於消費性市場使用的多重記憶體通道設計其實是來自於後來在電腦市場商業上並不成功的 RDRAM,大約在 DDR SDRAM 發展到中晚期的時候開始盛行,原理上是透過將記憶體與記憶體控制器之間的傳輸通道採並列的方式增加為複數條 (有點類似高速公路增開線道的感覺),並將記憶體模組根據通道進行分組,來達成讓記憶體通道頻寬加倍的效果從而提升性能 (單通道為 64-bit,雙通道為 128-bit 以此類推)。

多通道記憶體技術比較需要注意的大概有兩點,是單一通道內的記憶體同質性不能太低 (一般來說建議使用同廠牌同容量同速度同時序的產品,如果可以使用完全相同的模組就盡量使用一樣的模組),至於原因呢就是前面提過的,記憶體控制器根據記憶體通道來將記憶體模組分組做使用,如果同組別內的記憶體不同步或是容量不一就會出現錯誤。

SRW9633

其二則是記憶體安裝需要留意主機板廠商走線的設計 (請注意主機板隨附的說明書中類似上圖的內容,有些廠商拉線拉成緊鄰的是同通道,也有一些則是把每一通道的第一支記憶體排在一起),依照正確的順序進行安裝才能確保獲得最高的性能 (開啟最多的記憶體通道),在多通道的主機板上安裝記憶體時,應該先盡可能讓每個通道都至少有一條記憶體,如果有分配不完的情況的話再讓其中一個通道多安裝一條同規格記憶體也是可以的,若不分青紅皂白直接照順序插的話有可能最後才會發現有一個通道沒被啟用,那就造成系統性能的白白浪費了。

記憶體模組

其實這項沒甚麼好解釋的,在仿間可以買到的記憶體 (長條狀的那個),一條就稱為一個記憶體模組,由一片電路板上面鑲嵌許多記憶體顆粒晶片等電子元件所組成,如下同所示:

REG9633

趁這個機會順便說明一下 DIMM 這名稱是什麼意思好了,DIMM 的英文全稱是 Dual In-line Memory Module,中文則是雙列記憶體模組,名稱上是針對 DIMM 出現之前使用的 SIMM 記憶體模組而來,SIMM 記憶體長得跟 DIMM 類似,記憶體模組的通道寬度是 32 bit,兩面的金屬接觸點是彼此連通的,而相較之下 DIMM 則具有兩面不互通的金屬處點,且頻寬也翻倍成 64 bit,這就是 DIMM 名稱的由來。