DDR5 SPD 採用 I3C 介面進行定址,而非 DDR4 的 SPD 介面。I3C 介面是一種雙向、兩線式匯流排,
可同時傳輸資料和時鐘訊號。DDR5 SPD 晶片具有兩個 I3C 埠,分別用於與記憶體控制器和 PMIC 晶片進行通訊。
DDR5 SPD 晶片的 I3C 地址為 7 位元,範圍為 0x00 到 0x7F。
記憶體控制器可透過 I3C 介面對 SPD 晶片進行讀寫操作,以獲取或設定 SPD 數據。
以下是 DDR5 SPD 晶片的 I3C 地址分配:
記憶體控制器可透過 I3C 介面向 SPD 晶片發送以下命令:
讀命令:讀取 SPD 數據 寫命令:設定 SPD 數據 設備 ID 命令:獲取 SPD 晶片的設備 ID
以下是 DDR5 SPD 晶片的 I3C 命令格式:
讀命令: [Start Bit] [Slave Address] [Command Code] [Address] [Data Length] [Stop Bit] 寫命令: [Start Bit] [Slave Address] [Command Code] [Address] [Data] [Stop Bit] 設備 ID 命令: [Start Bit] [Slave Address] [Command Code] [Stop Bit]
其中: Start Bit:表示命令的開始 Slave Address:SPD 晶片的 I3C 地址 Command Code:命令代碼 Address:要讀取或設定的 SPD 數據的地址 Data:要寫入 SPD 數據的資料 Data Length:要讀取的 SPD 數據的長度 Stop Bit:表示命令的結束 記憶體控制器可根據需要向 SPD 晶片發送上述命令,以獲取或設定所需的 SPD 數據。
以下是一些 DDR5 SPD 晶片的 I3C 命令範例:
讀取 SPD 數據: [Start Bit] 0x40 0x00 0x00 0x10 [Stop Bit] 此命令將讀取 SPD 晶片中第 0x00 到第 0x0F 位元的數據,共 16 位元組。
寫入 SPD 數據: [Start Bit] 0x40 0x01 0x10 0x0A 0x00 0x00 0x00 0x00 0x00 0x00 [Stop Bit] 此命令將向 SPD 晶片中第 0x10 位元寫入值 0x0A,第 0x11 位元寫入值 0x00,第 0x12 位元寫入值 0x00,第 0x13 位元寫入值 0x00。
獲取 SPD 晶片的設備 ID: [Start Bit] 0x40 0x02 [Stop Bit] 此命令將獲取 SPD 晶片的設備 ID。
記憶體控制器可透過上述命令獲取或設定所需的 SPD 數據,以正確初始化和優化系統記憶體通道。
edit 顯示草稿 volume_up
每一根 DDR5 SPD 的位址由以下因素決定:
I3C 匯流排上的位置:DDR5 SPD 晶片具有兩個 I3C 埠,分別用於與記憶體控制器和 PMIC 晶片進行通訊。
每個 I3C 埠具有 0x00 到 0x7F 的 7 位元地址範圍。
SPD 晶片上的設備 ID:每個 SPD 晶片都具有唯一的設備 ID。設備 ID 用於區分不同的 SPD 晶片。
具體來說,DDR5 SPD 的位址由以下公式計算得出:
位址 = I3C 埠地址 + 設備 ID
例如,如果一個 SPD 晶片位於 I3C 埠 1(地址為 0x40)上,其設備 ID 為 0x20,則該 SPD 晶片的位址為:
記憶體控制器可透過 I3C 介面使用上述公式計算每個 SPD 晶片的位址,然後向該 SPD 晶片發送命令以獲取或設定所需的 SPD 數據。
以下是一些 DDR5 SPD 位址的範例:
位於 I3C 埠 1(地址為 0x40)上的 SPD 晶片,其設備 ID 為 0x20: 位址 = 0x40 + 0x20 = 0x60 位於 I3C 埠 1(地址為 0x40)上的 SPD 晶片,其設備 ID 為 0x30: 位址 = 0x40 + 0x30 = 0x70 位於 I3C 埠 2(地址為 0x41)上的 SPD 晶片,其設備 ID 為 0x20: 位址 = 0x41 + 0x20 = 0x61
記憶體控制器可根據需要計算每個 SPD 晶片的位址,然後向該 SPD 晶片發送命令,以獲取或設定所需的 SPD 數據。