DDR5 SDRAM簡要前瞻以及DRAM DIMM和DCPMM配置指南

DRAM從上世紀70年代開始投入商用, 已經伴隨我們作爲主存近半個世紀, 並從上世紀90年代開始快速發展. 首先是1990年的FPM DRAM(Fast Page Mode DRAM)和1995年的EDO DRAM(Extended Data Out DRAM), 兩種都爲Asynchronous異步DRAM.

1993年三星發佈了第一顆商用Synchronous同步DRAM芯片KM48SL2000, 從此開啓了SDRAM的世代. 接下來DDR SDRAM在21世紀初投入商用, 20年間經歷了四代, 基本上保持了五年一代的更替週期. 儘管有很多新興NVM非易失性存儲技術看起來很有競爭力, 但隨着DDR5開發的積極進行和DDR6的遠期計劃, 未來10年SDRAM還將佔據電腦主存的核心地位.

DDR4 SDRAM和DDR5 SDRAM的詳細對比




等效頻率: 1600-3200MT/s vs 3200-6400MT/s

DIMM電壓: 1.2V vs 1.1V

Prefetch: 8N vs 16N, 自DDR3以來的第一次提升

顆粒密度: 2Gb-16Gb vs 8Gb - 64Gb
意味着DDR5後期會出128GB UDIMM和1TB LRDIMM 屆時單條256GB RDIMM會成爲服務器內存主流容量

Bank Groups: 4 vs 8

新增On-die ECC, 增強DRAM顆粒本身的RAS

也就是說Non-ECC UDIMM=8顆內置On-die ECC的DRAM顆粒, ECC UDIMM=8顆內置On-die ECC的DRAM顆粒 + 2顆DRAM顆粒用作ECC

表格上還有很多項目就不一一詳解了

另外DDR5最多支持2DPC, 相比DDR4的3DPC是減少了, 不過隨着通道數的增加從Skylake-SP開始3DPC已經被取消, 所以不會有影響

在等效頻率3200也就是DDR5起始頻率下, DDR5-3200相比DDR4-3200帶寬+36%



八通道1DPC下頻率帶寬遞增圖



DDR5最大的改變是DIMM本身從單通道變爲雙通道, 如下圖顯示, 左右兩邊Data Bus各爲獨立的通道

含ECC的DDR4 DIMM爲64bit+8bit ECC=72bit, DDR5變爲左邊32bit+8bit ECC, 右邊32bit+8bit ECC, 總共64bit+16bit ECC=80bit

這樣也使得含ECC的DDR5 DIMM終於左右對稱了, 強迫症們喜聞樂見的事情



結合Burst Length改成了BL16, 只需要一條Burst就能處理64B Cache Line, 也就是說只需要一邊的32+4, 變相成就了單DIMM雙通道



在RDIMM/LRDIMM方面, DDR5另一個變化是DIMM上會內置PMIC電源管理芯片

頻率的提升對電壓穩定性有了更高的要求, PMIC是爲了讓DIMM得到更穩更純的供電, 不過這也同時解放了主板上的VRM調節



DDR5還會新增一種類型叫做Differential DIMM, 概念類似先前DDR2時代以失敗而告終的FB-DIMM, 未來是否被接納還是個巨大的問號



DDR5正式進入市場時間不會早於2020年, 目前已知會上的平臺是2021年的Intel Sapphire Rapids-SP


Part B: 服務器兩大內存模組類型RDIMM vs LRDIMM

這裏部分截取之前寫過的 https://www.chiphell.com/thread-1684996-1-1.html, 裏面圖早掛了而且內容有些陳舊也是我寫這篇文章的原因之一

RDIMM就是大家俗稱的REG ECC內存, 最前面的R指的是Registered寄存, 爲了保證並行傳輸的有效性在內存條上加了一個寄存器進行轉發, 從而減少CPU內存控制器的負載.

LRDIMM全稱爲Load Reduced DIMM, 顧名思義是起到了減輕負載的作用, 其前身是FB-DIMM(Fully Buffered DIMM), 因爲功耗以及性能問題FB-DIMM並沒有取得多大成功僅持續了DDR2一代, 從DDR3開始被LRDIMM取代. RDIMM, LRDIMM以及PC電腦上的UDIMM(Unbuffered DIMM)構成了臺式型內存的三大支柱, 其中UDIMM包括了大家普通電腦裏的內存以及很容易搞混的ECC UDIMM(也就是一般所指的純ECC內存).

DDR3時代的RDIMM和LRDIMM




在DDR3時代, LRDIMM將RDIMM中的寄存器改成了iMB(Isolation Memory Buffer), RDIMM只寄存內存控制器輸出的控制(CMD), 地址(ADDR), 時鐘信號(CLK), 數據仍然是直連的. LRDIMM則進一步減少了內存控制器和DRAM芯片之間的負載, 將數據也進行緩衝, 優點是減少內存控制器可見的Rank數, 缺點是延遲較RDIMM有了進一步的增加. 通常一根DIMM可以做1/2/4/8個Ranks, 標爲1R/2R/4R/8R或SR/DR/QR/OR, 而CPU每通道有8個邏輯Ranks的上限. LRDIMM上增加了一個功能叫Rank Multiplication(2:1和4:1), 可將物理Ranks數修改爲控制器固定可見的邏輯Ranks數, 比如4個物理Ranks通過2:1變爲2個邏輯Ranks, 8個物理Ranks通過4:1變爲2個邏輯Ranks, 這樣對CPU來說永遠爲2Ranks.

DDR4時代的RDIMM, LRDIMM和3D TSV





來自硅谷的IDT(Integrated Device Technology)和上海的瀾起科技(Montage Technology)率先研發出了新的LRDIMM芯片, 將原來的iMB改成了9個分散式DB(Data Buffer), 原來中間的位置變成了RCD(Registered Clock Driver), RDIMM也隨之一併改用RCD. 分散式DB減少了緩衝器與DRAM芯片之間的Trace Length, 大大降低了LRDIMM的延遲, 而原本LRDIMM在多Ranks下的優勢也隨系統內存容量的增加越來越明顯. 此外, DDR3 LRDIMM的Rank Multiplication升級爲Chip-Select Encoding, 它能讓系統自動識別正確的Rank從而尋址到背後所有的Ranks, 理論上每個通道最大尋址Rank數爲24個.

下面兩張圖比較了DDR4-2400 RDIMM vs DDR4-2400 LRDIMM的延遲和帶寬, 可以看到32GB 2R RDIMM和32GB 2R LRDIMM性能差距已縮小很多




DDR4還新增了3D TSV堆疊技術, 常見的DRAM顆粒多Die堆疊封裝有DDP雙層和QDP四層, 顆粒之間通過Wire Bonding打線接合的方式連接, 每個Die都通過PCB電路連接到內存控制器或Data Buffer. 3D TSV顧名思義則是通過Through-Silicon Via硅穿孔將各Die連接到一起, 同時分出Master Chip和Slave Chips, 無論多少層堆疊僅有一個Master Chip與內存控制器或Data Buffer相連. 3D TSV在多Die封裝上帶來的優勢顯而易見, 減少了Rank間的操作進一步降低負載提高性能, 容量擴展性更高, 相比同層數的普通堆疊封裝更省電.



DDR5時代的RDIMM和LRDIMM




DDR5延續了RDIMM上RCD和LRDIMM上RCD+Data Buffer的設計, 和DDR4最大的的區別在上文第一部分已經提到

同DRAM芯片一樣, DDR5 LRDIMM上的Date Buffer也會從9個增加到10個, 兩邊對稱各5顆


Part C: DRAM DIMM配置之Balanced Memory的藝術

Memory Interleaving & Rank Interleaving 內存和Rank交錯

這裏以Intel Xeon SP爲例, 每個CPU有兩個iMC內存控制器, 每個iMC控制三通道, 每個通道支持1條DIMM(1DPC)或者2條DIMM(2DPC)



內存交錯分散連續內存訪問到每一個通道, 而不是全部分配到單一通道, 從而提高內存帶寬

內存交錯會產生一個Set交錯集, 這個集=1的時候性能最好, 當兩邊配置不平衡時會出現額外的Set

這時候內存控制器會耗費大量的Overhead去維護這些Sets, 從而導致內存帶寬的下降

Set裏面的DIMM數量也決定了Memory Region的大小, Region越大性能越好, 所以六通道Set > 四通道Set > 二通道Set

此外, 在每個通道內部還發生着二級交錯叫Rank Interleaving, Intel平臺每通道Rank數小於等於4的情況下內存性能隨着Rank數的增加而提升

由於電氣性能有限, 每通道Rank數>4的情況下內存性能反而開始下滑, 原因是此時內存控制器在不同Rank之間切換要花掉更多時間

Balanced Memory的三條評判準則

1. 所有已插DIMM的通道, 應有相同的總內存容量和總Rank數

2. 每一路U的內存控制器, DIMM配置應完全相同

3. 同一服務器的所有路U, DIMM配置應完全相同

以下是單路1-12條DIMM的帶寬對比, 測試採用了STREAM Triad

1DPC

1*DIMM 1:0:0,0:0:0 = Unbalanced = 18%


2*DIMM 1:0:0,1:0:0 = Balanced = 35%
2*DIMM 1:1:0,0:0:0 = Unbalanced = 34%



3*DIMM 1:1:1,0:0:0 = Unbalanced = 51%
3*DIMM 1:1:0,1:0:0 = Unbalanced = 20%, iMC0多出的一根形成了一個單通道交錯集, 性能大幅下滑



4*DIMM 1:1:0,1:1:0 = Balanced = 67%
4*DIMM 1:1:1,1:0:0 = Unbalanced = 35%



5*DIMM 1:1:1,1:1:0 = Unbalanced = 34%


6*DIMM 1:1:1,1:1:1 = Balanced = 97%, 大部分情況下的推薦配置, 這裏用的是2R所以"只有"97%, 4R可以達到100%


2DPC

7*DIMM 2:1:1,1:1:1 = Unbalanced = 30%, 在上面6條基礎上即便只增加一條, 多出來的交錯集也會導致性能大幅下降
7*DIMM 2:2:0,1:1:1 = Unbalanced = 34%, 出現了四通道, 雙通道和單通道3個交錯集



8*DIMM 2:2:0,2:2:0 = Balanced = 68%
8*DIMM 2:1:1,2:1:1 = Unbalanced = 34%



9*DIMM 2:2:2,1:1:1 = Unbalanced = 51%
9*DIMM 2:2:1,2:1:1 = Unbalanced = 34%



10*DIMM 2:2:1,2:2:1 = Unbalanced = 67%
10*DIMM 2:2:2,2:2:0 = Unbalanced = 17%, 這個看起來挺平衡, 但實際上是所有配置中性能最差的



11*DIMM 2:2:2,2:2:1 = Unbalanced =41%


12*DIMM 2:2:2,2:2:2 = Balanced = 100%, 在服務器整機系統上2DPC是相當常見的, 這個時候12根2R毫無疑問是最好的選擇


彙總, 2/4/6/8/12根都可以配置Balanced Memory, 優先級12>6>8>4>2




DIMM合理配置指南

1. 如果板子只能1DPC, 可選4Ranks最大化Rank Interleaving效能, 如果2DPC插滿12根應選2Ranks, 總之2Ranks是萬金油

2. 由總容量需求和板子搭配跳最佳單條容量, 比如單路192GB/6*DIMM=32GB, 雙路768GB/12*DIMM=64GB

3. 如果因爲各種原因無法達到Balanced Memory, 也應做到Near-Balanced Memory, 後者會損失3%的性能

Near-Balanced與Balanced的配置方法相同, 唯一的區別在於兩個內存控制器下的DIMM容量不同, 比如3根32GB和3根16GB DIMM(但Rank數要一致)

如果近期有采購Samsung RDIMM/LRDIMM需求的可以輔助閱讀這片文章 https://www.chiphell.com/thread-1994873-1-1.html


Part D: Intel DCPMM(Optane DIMM Gen1 Apache Pass)在單/雙路系統中的配置指南

DCPMM的幾條基本規則

1. 第一代DCPMM總線運行在2666的等效頻率, 和DDR4-2933 DRAM一起使用時DRAM會降頻到2666

2. 每個通道內只能插一根DCPMM, 不同容量DCPMM不能一起混用

3. 在易失的MM(Memory Mode)模式下, DRAM和DCPMM必須在iMC0和iMC1上對應搭配

爲了最大化DRAM, 一般只推薦先插滿6根DRAM再配置DCPMM, 如6*DRAM+2*DCPMM, 或6*DRAM+6*DCPMM

4. 在非易失的AD(App Direct)模式下, 只需要每個iMC下有1根DRAM, 1DPC就是2*DRAM+4*DCPMM, 2DPC則爲2*DRAM+10*DCPMM

但實際情況下推薦的配置仍爲Balanced DRAM+DCPMM, 如6*DRAM+2*DCPMM, 或6*DRAM+6*DCPMM

5. 在MM模式下, DRAM爲NM(Near Memory)做緩存, DCPMM爲FM(Far Memory)做系統實際可用內存

DRAM和DCPMM的容量比應在1:4和1:16之間, 低了浪費DRAM的緩衝容量, 高了則DRAM命中率不足, 最佳效能的容量比是1:4

6*128GB DCPMM最佳搭配是6*32GB DRAM, 最小搭配是6*8GB DRAM

6*256GB DCPMM最佳搭配是6*64GB DRAM, 最小搭配是6*16GB DRAM

6*512GB DCPMM最佳搭配是6*128GB DRAM, 最小搭配是6*32GB DRAM

那麼6+2的板子又是什麼情況呢, 你會發現DCPMM這時候和大容量DRAM是完全衝突的

2*128GB DCPMM=256GB, 再除以4=64GB, 6*16GB DRAM已有96GB, 於是只能插6*8GB DRAM, 比例爲5.33

2*256GB DCPMM=512GB, 再除以4=128GB, 6*32GB DRAM已有192GB, 於是只能插6*16GB DRAM, 比例同上

2*512GB DCPMM=1024GB, 再除以4=256GB, 6*64GB DRAM已有384GB, 於是只能插6*32GB DRAM, 比例同上

當然以上說的都是MM模式, AD模式不受此限制, 對於普通用戶來說AD模式應用不太可能接觸到, 因此很顯然到目前爲止DCPMM並不適合一般人使用

下面是各種板型的具體配置, 其中包含Symmetric對稱和Asymmetric不對稱兩種插法, 只有在1根DCPMM的情況下才會採用不對稱插法


單路6*DIMM, 可以4*DRAM+2*DCPMM, 但因爲只有6根建議插滿DRAM, 不推薦上DCPMM



單路6+2*DIMM, 毫無疑問是6*DRAM+2*DCPMM, 注意到DCPMM是插在兩個內存控制器距離CPU最近的兩個插槽



雙路12*DIMM(每路6*DIMM), 和單路6*DIMM一樣只推薦插滿DRAM



雙路16*DIMM(每路6+2*DIMM), 推薦每路6*DRAM+2*DCPMM, 注意到DCPMM是插在四個內存控制器距離CPU最近的四個插槽



雙路24*DIMM(每路12*DIMM), 使用DCPMM最佳的平臺, 毫無疑問每路應選擇6*DRAM+6*DCPMM




References
https://pc.watch.impress.co.jp/docs/column/semicon/1076835.html
https://pc.watch.impress.co.jp/docs/column/semicon/1080032.html
Introducing Micron DDR5 SDRAM: More Than a Generational Update
Memory Modules in the Clouds
Introducing LRDIMM - A New Class of Memory Modules
Unprecedented Memory Bandwidth on Samsung DDR4 LRDIMM Enabled by IDT's Register and Data Buffer
LRDIMMs provide a superior alternative solution for both deeper memory and higher data bandwidth
Boosting the Performance of SAP S/4HANA and Analytical Banking Applications on SAP HANA
Overview of DDR4 memory in HPE ProLiant Gen9 Servers with Intel Xeon E5-2600 v3 Best Practice Guidelines
DDR4 for Dummies 3rd HPE Special Edition
Intel Xeon Scalable Family Balanced Memory Configurations
Memory Configuration for X11 UP/DP/MP Motherboards

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章