3,936 瀏覽數

Linux – DIMM SPD

在每一個記憶體模組上面都會有一塊 SPD(Serial presence detect) 他是一塊容量為256 字元(bytes) 的 EEPROM(Electrically Erasable Programmable Read Only Memory). 主要記載了該憶體模組的資訊,如:RAS to CAS Delay,CL(CAS Latency),Refresh 等時脈參數.主要可以讓系統開機時, BIOS 可以直接讀取記記體的 SPD 資訊不用再對記憶體進行偵測等動作.

圖片出自於 http://www.synnex.com.tw/asp/images/Info174661.jpg
紅色框框為 SPD EEPROM ,但每一家的記憶體的 SPD 位置均不相同.且 SPD 是一顆  I²C EEPROM.雖然部份 SPD 可以透過 BIOS 的設定環境去查詢,但 SPD 的資料不會完全顯示在 BIOS 設定中,此時我們可以在 Linux 底下透過 I²C (I2C)的方式去讀取該 SPD 的資訊
那在 Linux 要讀取  I²C 要用什麼方式呢!!我們可以透過 lm_sensors 所提供的 decode-dimms.pl 這一支工具去查詢這些資料.

[root@benjr ~]# modprobe eeprom
[root@benjr ~]# decode-dimms.pl
Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare and others
Version 2.10.6
 
Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/0-0050
Guessing DIMM is in                             bank 1
 
—=== SPD EEPROM Information ===—
EEPROM Checksum of bytes 0-62                   OK (0x4D)
# of bytes written to SDRAM EEPROM              128
Total number of bytes in EEPROM                 256
Fundamental Memory type                         DDR2 SDRAM
SPD Revision                                    1.2
 
—=== Memory Characteristics ===—
Maximum module speed                            800MHz (PC2-6400)
Size                                            512 MB
tCL-tRCD-tRP-tRAS                               6-6-6-18
Supported CAS Latencies                         6, 5, 4
Minimum Cycle Time (CAS 6)                      2.5 ns
Maximum Access Time (CAS 6)                     0.4 ns
Minimum Cycle Time (CAS 5)                      3 ns
Maximum Access Time (CAS 5)                     0.45 ns
Minimum Cycle Time (CAS 4)                      3.75 ns
Maximum Access Time (CAS 4)                     0.5 ns
 
—=== Manufacturing Information ===—
Manufacturer                                    Elpida
Manufacturing Location Code                     L
Part Number                                     EBE51ED8AJWA-8G-E 
Revision Code                                   0×3020
Manufacturing Date                              2007-W49
Assembly Serial Number                          0xB0A0BAA5
 …略
Number of SDRAM DIMMs detected and decoded: 4

上面會顯示出所有 bank 的記憶體模組的 SPD 資料.每個 bank 的資料內容大致一樣.不過使用 decode-dimms.p 並不會顯示出所有 SPD 的資訊l我們可以使用 Memtest86+ 他可以直接把記憶體模組的 SPD 資料 dump 出來 ,不過工具所顯示出的是 SPD  Raw data ,需要自行查詢各欄位所代表的意義,我們可以參考 wiki SPD 的說明 http://en.wikipedia.org/wiki/Serial_presence_detect

不過新版的 lm_sensors 已經將這些工具獨立成單一個套件 I2C tools, 這套件包含了 a bus probing tool, a chip dumper, register-level SMBus access helpers, EEPROM decoding scripts, EEPROM programming tools, 以及 a python module for SMBus access. 有興趣的可以上 Lm-sensors 的官方網站做查詢. http://www.lm-sensors.org/wiki/I2CTools

不過目前這一支工具只能用來看 SDRAM DIMM ,像是 RDIMM 是無法透過它來讀取 SPD.

關於 SPD 的官方網頁 JEDEC(Joint Electron Device Engineering Council) 如下 http://www.jedec.org/

2 個網友的想法 “Linux – DIMM SPD

  1. 自動參照通知: Temperature sensor with integrated SPD | Benjr.tw

  2. 自動參照通知: Vital Product Data (VPD) | Benjr.tw

發表迴響