最近有機會碰到使用 DDR5 記憶體的案子,因為是很新的技術,所以順便了解一下SPD讀取的方式,進一步了解才發現讀取的方式與以往DDR3,DDR4 有些差異。
先簡單列一下 DDR5 上的特點 :
1. 支援 SPD HUB , 以 Jedec 規範分為 SPD5118 與 SPD5108。
2. SPD5118 , 51 是指 SPD HUB 的 ID,18 是指有 Temp Sensor,08 是指沒有 Temp Sensor。
3. SPD HUB 內的 NVM 總容量為 1024 Byte。
4. SPD HUB 內的 NVM 分為 8 Pages,每個 Page 有 128 Byte。
5. 對應記憶體用的 SPD 會落在 NVM 區域內。
讀取步驟 :
1. 使用 SMBUS Read Byte,讀取 Slave Addr (SA),偏移位置為 0x00 (MR0),確認讀取到的值是否為 0x51。
2. 確定有 SPD HUB 的存在後,開始進行 SPD 的讀取。
3. 先進行切換 Page 的動作,偏移位置為 0xB (MR11) 的 BIT [2:0],3b000 - 3b111。
4. 讀取 NVM 的動作,填上偏移位置,且須將偏移位置的 BIT7 設定為 1 ( MemReg [BIT7] ),切換為內部 NVM 區域。
5. 讀完 128 Byte 後,再切換Page,共八次。
Thanks