MemTest86 Technical Information

RAM SPD Issues

What is SPD?

SPD or Serial Presence Detect is a JEDEC standard for storing and accessing static memory specifications on the memory module. This information is retrieved by the BIOS on startup in order to detect the installed memory modules and configure the operating parameters to use such as the memory timings.

The SPD information is typically stored in an EEPROM device located on the memory module. JEDEC defines the byte structure of the SPD data stored in the EEPROM. These bytes contain timing parameters, capacity, layout, ECC support, manufacturer data and other specifications.

To access the SPD EEPROM, the 2-wire SMBus interface is used to read the raw SPD bytes of each memory module's EEPROM. Each EEPROM acts as an SMBus device which can be addressed by a 7-bit SMBus address. SMBus commands are issued by the motherboard's host controller in order to read the raw SPD data, as defined by JEDEC specifications.

See Serial presence detect - Wikipedia for more details on the SPD specifications.

SPD cannot be detected on some mobile/laptop PCs

Many mobile PCs have RAM soldered directly on the board that cannot be removed/replaced. These on-board DIMM modules do not have an SMBus interface which is required to access SPD raw data. As such, the SPD info is typically hardcoded directly in the BIOS firmware and cannot be read by any 3rd party software, including MemTest86.

This does not apply to laptops with replacable SO-DIMMs, however, where SPD data can still be accessed via the standard SMBus interface.

Cannot access SPD on DIMMs with temperature sensors on Intel Xeon chipsets

If your system contains an Intel Xeon chipset which supports Temperature Sensor on DIMM (TSOD), there is the possibility that hardware TSOD polling is interfering with the SPD data collection process. This results in missing or incorrect SPD info. MemTest86 attempts to temporarily disable TSOD polling while collecting the SPD data but in may not possible in some cases. As a workaround, there may be a BIOS option to disable hardware TSOD polling such as "Memory Thermal Throttling" or "Closed Loop Thermal Throttling" such as the BIOS setup for ASUS Z8NA-D6C below.

ASUS Z8NA-D6C Memory Thermal Throttling

Cannot view SPD info for DDR5 RAM on certain motherboards

By default on certain platforms (such as ASUS), the BIOS disables SPD Writes which prevents access to the SPD raw data on the DDR5 module.

Although no actual writes are performed on the SPD, SMBus write operations are required to access the full 1024 SPD bytes. This is because only pages of 128 byte SPD data can accessed at once, and SPD Writes are performed to read all 8 pages.

**Update** Since MemTest86 v10.6, DDR5 SPD data can be read even with SPD write is disabled.

Fortunately, on a few motherboards (such as ASUS), there is a BIOS setting for enabling SPD writes. This is shown for an ASUS system in the screenshot below.

ASUS SPD Write Disable

After setting Extreme Tweaker ➤ Tweaker’s Paradise ➤ SPD Write Disable to FALSE, MemTest86 should be able to retrieve DDR5 SPD data.

For vendors that use Aptio-based BIOSes (such as Fujitsu Celsius W5012), the SPD Write Disable setting may appear under Advanced in the BIOS setup as below.

Fujitsu Celsius W5012 SPD Write Disable