XMP 2 0 Specification Rev 1 0
XMP 2 0 Specification Rev 1 0
December 2013
Revision 1.0
Intel Confidential
Document Revision
Description Revision Date
Number Number
§§
1 Introduction
Intel® Extreme Memory Profile (Intel® XMP) provides a simple and robust high
performance, DDR4-based memory solution for Intel-based platforms. Modules are
designed around this specification. The XMP Spec was developed by Intel and it’s
memory partners to enable an enthusiast performance extension to the traditional
JEDEC SPD Spec.
Intel® XMPs are traditionally designed with two performance profiles. Profile 1 is used
for the Enthusiast/Certified settings and is the profile that is tested under the Intel®
XMP Certification program. Profile 2 is designed to host the extreme or fastest possible
settings that have no guardband and my or may not work on every system.
It should also be noted that Extreme Memory Profiles aren’t always defined as over-
frequency/over voltage parts. In some cases, Extreme Memory Profiles can be used to
define extremely power savvy settings or extremely fast latencies.
This appendix describes the Intel® XMP serial presence detect (SPD) values for all
DDR3 modules. These presence detect values are those referenced in the SPD standard
document for ‘Specific Features’ and are in some cases, are features outside of the
standard. The following SPD fields will be documented in the order presented in
Chapter 2, “Address Map”. All unused entries will be coded as 00h. All unused bits in
defined bytes will be coded as 0 except where noted. To allow for maximum flexibility
as devices evolve, SPD fields described in this document may support device
configuration and timing options that are not included in the JEDEC DDR4 SDRAM data
sheet JESD79-4. Please refer to DRAM supplier data sheets or JESD79-4 to determine
the compatibility of components.
2 Address Map
390 RFU 1
391 RFU 1
394 RFU
395 RFU
405 Minimum Active to Precharge Time (tRASmin), Least Significant Byte 2,4
406 Minimum Active to Active/Refresh Time (tRCmin), Least Significant Byte 2,4
407 Minimum Refresh Recovery Time (tRFC1min), Least Significant Byte 2,4
408 Minimum Refresh Recovery Time (tRFC1min), Most Significant Byte 2,4
409 Minimum Refresh Recovery Time (tRFC2min), Least Significant Byte 2,4
410 Minimum Refresh Recovery Time (tRFC2min), Most Significant Byte 2,4
411 Minimum Refresh Recovery Time (tRFC4min), Least Significant Byte 2,4
412 Minimum Refresh Recovery Time (tRFC4min), Most Significant Byte 2,4
Notes:
1. Global Parameters used across all profiles
2. Utilized for Profile 1 (Enthusiast / Certified Settings)
3. Utilized for Profile 2 (Extreme Settings)
4. Parameter utilized in the same fashion as the standard DDR4 SPD byte with the exception that it may
exceed the DDR4 SDRAM data sheet
415 Minimum Activate to Activate Delay Time (tRRD_Smin), different bank group 2,4
416 Minimum Activate to Activate Delay Time (tRRD_Lmin), same bank group 2,4
417-422 RSVD
425 Fine Offset for Minimum Row Active to Row Active Delay Time (tRRD_Lmin), same 2,4
bank group
426 Fine Offset for Minimum Row Active to Row Active Delay Time (tRRD_Smin), 2,4
different bank group
427 Fine Offset for Minimum Active to Active/Refresh Delay Time (tRCmin) 2,4
428 Fine Offset for Minimum Row Precharge Delay Time (tRPmin) 2,4
429 Fine Offset for Minimum RAS# to CAS# Delay Time (tRCDmin) 2,4
430 Fine Offset for Minimum CAS Latency Time (tAAmin) 2,4
431 Fine Offset for SDRAM Minimum Cycle Time (tCKAVGmin) 2,4
432-437 RSVD
441 RFU
442 RFU
452 Minimum Active to Precharge Time (tRASmin), Least Significant Byte 3,4
453 Minimum Active to Active/Refresh Time (tRCmin), Least Significant Byte 3,4
454 Minimum Refresh Recovery Time (tRFC1min), Least Significant Byte 3,4
455 Minimum Refresh Recovery Time (tRFC1min), Most Significant Byte 3,4
456 Minimum Refresh Recovery Time (tRFC2min), Least Significant Byte 3,4
457 Minimum Refresh Recovery Time (tRFC2min), Most Significant Byte 3,4
458 Minimum Refresh Recovery Time (tRFC4min), Least Significant Byte 3,4
459 Minimum Refresh Recovery Time (tRFC4min), Most Significant Byte 3,4
462 Minimum Row Active to Row Active Delay Time (tRRD_Smin), different bank 3,4
group
Notes:
1. Global Parameters used across all profiles
2. Utilized for Profile 1 (Enthusiast / Certified Settings)
3. Utilized for Profile 2 (Extreme Settings)
4. Parameter utilized in the same fashion as the standard DDR4 SPD byte with the exception that it may
exceed the DDR4 SDRAM data sheet
463 Minimum Row Active to Row Active Delay Time (tRRD_Lmin), same bank group 3,4
464-469 RSVD
472 Fine Offset for Minimum Activate to Activate Delay Time (tRRD_Lmin), same bank 3,4
group
473 Fine Offset for Minimum Activate to Activate Delay Time (tRRD_Smin), different 3,4
bank group
474 Fine Offset for Minimum Active to Active/Refresh Delay Time (tRCmin) 3,4
475 Fine Offset for Minimum Row Precharge Delay Time (tRPmin) 3,4
476 Fine Offset for Minimum RAS# to CAS# Delay Time (tRCDmin) 3,4
477 Fine Offset for Minimum CAS Latency Time (tAAmin) 3,4
478 Fine Offset for SDRAM Minimum Cycle Time (tCKAVGmin) 3,4
479-484 RSVD
Notes:
1. Global Parameters used across all profiles
2. Utilized for Profile 1 (Enthusiast / Certified Settings)
3. Utilized for Profile 2 (Extreme Settings)
4. Parameter utilized in the same fashion as the standard DDR4 SPD byte with the exception that it may
exceed the DDR4 SDRAM data sheet
Profile 2 Profile 1
Reserved Recommended Recommended Profile 2 Enabled Profile 1 Enabled
Channel Config Channel Config
Notes:
1. Reserved bytes must be programmed to 0 (zero)
2. Bit 0 must always be programmed to 1 - Profile 1 must always be enabled
Revision 0.0 0 0 0 0 0 0 0 0 00
Revision 0.1 0 0 0 0 0 0 0 1 01
... . . . . . . . . .
Revision 2.0 0 0 1 0 0 0 0 0 20
... . . . . . . . . ...
Undefined 1 1 1 1 1 1 1 1 FF
To recalculate the value of tXX from the SPD values, a general formula BIOSes may use
is:
Note: Examples assume MTB of 0.125 ns and FTB of 0.001 ns (or 1 picosecond).
tRCmin Profile 1 - 404 & 406 / Profile 2 - 451 & 453 Profile 1 - 427 / Profile 2 - 474
0 0000001 +1 01 +1 ps
0 0000000 0 00 0
1 1111111 -1 FF -1 ps
1 1111110 -2 FE -2 ps
Temp
Value @ tCKAVGmin Guardband Rounding Result
DDR4 Result
Parameter
Bin
ps ps nCK nCK nCK
This title indicates that both byte 396 and byte 443 are used for tCKAVGmin values and
should be programmed the same way. Byte 396 is for the first profile, while byte 443 is
for the 2nd profile.
Note: All bytes not programmed or RSVD MUST be programmed at 0 (zero). This is a
standard SPD programming protocol.
1.0V 1
0.00V See 0 0 0 0 0 0 0
Subfield
0.01V A 0 0 0 0 0 0 1
0.02V 0 0 0 0 0 1 0
0.03V 0 0 0 0 0 1 1
0.04V 0 0 0 0 1 0 0
0.05V 0 0 0 0 1 0 1
...
0.95V 1 0 1 1 1 1 1
0.96V 1 1 0 0 0 0 0
0.97V 1 1 0 0 0 0 1
0.98V 1 1 0 0 0 1 0
0.99V 1 1 0 0 0 1 1
Bit 7-0
If tCKAVGmin cannot be divided evenly by the MTB, this byte must be rounded up to the
next larger integer and the Fine Offset for tCKAVGmin (SPD byte 431 or 478) used for
correction to get the actual value.
9 0x09 0.125 -54 0xCA 0.001 1.071 DDR4-1866 (933 Mhz Clock)
8 0x08 0.125 -62 0xC2 0.001 0.938 DDR4-2133 (1067 Mhz Clock)
7 0x07 0.125 -42 0xD6 0.001 0.833 DDR4-2400 (1200 Mhz Clock)
CL = 14 CL = 13 CL = 12 CL = 11 CL = 10 CL = 9 CL = 8 CL = 7
0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1
CL=22 CL = 21 CL = 20 CL = 19 CL = 18 CL = 17 CL = 16 CL = 15
0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1
0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 1 0 or 1 0 or 1
0 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1 0 or 1
Note: For each bit position, 0 means this CAS Latency is not supported, 1 means this CAS Latency is
supported.
CAS
22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7
Latencies
CL Mask 0 0 0 0 0 1 0 0 1 0 1 1 0 1 0 0
CAS
tbd tbd tbd tbd tbd tbd tbd tbd tbd tbd tbd tbd tbd tbd 24 23
Latencies
CL Mask 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bit 7-0
If tAAmin cannot be divided evenly by the MTB, this byte must be rounded up to the
next larger integer and the Fine Offset for tAAmin used for correction to get the actual
value.
106 0x6A 0.125 -120 0x89 0.001 13.13 DDR4-2133N (1066 Mhz Clock)
113 0x71 0.125 -65 0xC0 0.001 14.06 DDR4-2133P (1066 Mhz Clock)
108 0x6c 0.125 0 0 0.001 13.50 DDR4-2133P (1066 Mhz Clock) downbin
107 0x6B 0.125 -55 0xCA 0.001 13.32 DDR4-2400R (1200 Mhz Clock)
Bit 7-0
If tRCDmin cannot be divided evenly by the MTB, this byte must be rounded up to the
next larger integer and the Fine Offset for tRCDmin used for correction to get the actual
value.
106 0x6A 0.125 -120 0x89 0.001 13.13 DDR4-2133N (1066 Mhz Clock)
113 0x71 0.125 -65 0xC0 0.001 14.06 DDR4-2133P (1066 Mhz Clock)
108 0x6c 0.125 0 0 0.001 13.50 DDR4-2133P (1066 Mhz Clock) downbin
107 0x6B 0.125 -55 0xCA 0.001 13.32 DDR4-2400R (1200 Mhz Clock)
Bit 7-0
If tRPmin cannot be divided evenly by the MTB, this byte must be rounded up to the
next larger integer and the Fine Offset for tRPmin used for correction to get the actual
value.
106 0x6A 0.125 -120 0x89 0.001 13.13 DDR4-2133N (1066 Mhz Clock)
113 0x71 0.125 -65 0xC0 0.001 14.06 DDR4-2133P (1066 Mhz Clock)
108 0x6c 0.125 0 0 0.001 13.50 DDR4-2133P (1066 Mhz Clock) downbin
107 0x6B 0.125 -55 0xCA 0.001 13.32 DDR4-2400R (1200 Mhz Clock)
2.3.8 Byte 404 or 451: Upper Nibbles for tRAS and tRC
This byte defines the most significant nibbles for the values of tRAS (byte 405/452) and
tRC (byte 406/453). This value is based off but may exceed the DDR4 SDRAM data
sheet.
If tRCmin cannot be divided evenly by the MTB, this byte must be rounded up to the
next larger integer and the Fine Offset for tRCmin used for correction to get the actual
value.
370 0x172 0.125 -120 0x89 0.001 46.13 DDR4-2133N (1066 Mhz Clock)
377 0x179 0.125 -65 0xC0 0.001 47.06 DDR4-2133P (1066 Mhz Clock)
372 0x174 0.125 0 0 0.001 46.50 DDR4-2133P (1066 Mhz Clock) downbin
363 0x16B 0.125 -55 0xCA 0.001 45.32 DDR4-2400R (1200 Mhz Clock)
Bit 7-0
If tRRD_Smin cannot be divided evenly by the MTB, this byte must be rounded
up to the next larger integer and the Fine Offset for tRRD_Smin used for correction to
get the actual value.
34 0x22 0.125 -50 0xCF 0.001 4.20 DDR4-1866 (933 Mhz Clock), 1/2 KB
page size
43 0x2B 0.125 -75 0xB5 0.001 5.30 DDR4-2133 (1066 Mhz Clock), 2 KB page
size
30 0x1E 0.125 -50 0xCF 0.001 3.70 DDR4-2133 (1066 Mhz Clock), 1 KB page
size
Bit 7-0
If tRRD_Lmin cannot be divided evenly by the MTB, this byte must be rounded up to the
next larger integer and the Fine Offset for tRRD_Lmin used for correction to get the
actual value.
43 0x2B 0.125 -75 0xB5 0.001 5.30 DDR4-1866 (933 Mhz Clock), 1/2 KB
page size
52 0x34 0.125 -100 0x9D 0.001 6.40 DDR4-2133 (1066 Mhz Clock), 2 KB
page size
43 0x2B 0.125 -75 0xB5 0.001 5.30 DDR4-2133 (1066 Mhz Clock), 1 KB
page size
2.3.19 Bytes 423 & 424 or 470 & 471: RSVD for Supplier Custom
Mods
These bytes are reserved for Supplier Custom Modification. Each supplier may utilize
these bytes in whichever manner they deem fit. Intel will leave these bytes as reserved
for suppliers.
2.3.20 Byte 425 or 472: Fine Offset for Minimum Row Active to
Row Active Delay Time (tRRD_Lmin), same bank group
This byte is modifies the calculation of XMP tRRD_Lmin byte 416 or 463 (MTB units) with
a fine correction using FTB units. The value of tRRD_Lmin comes from the SDRAM data
sheet. This value is a two’s complement multiplier for FTB units, ranging from +127 to
-128. See primary byte for more details. For two’s complement encoding, see Section
2.2.5.1, “Relating the MTB and FTB” for more details.
2.3.21 Byte 426 or 473: Fine Offset for Minimum Row Active to
Row Active Delay Time (tRRD_Smin), different bank group
This byte is modifies the calculation of XMP tRRD_Smin Byte 415 or 462 (MTB units) with
a fine correction using FTB units. The value of tRRD_Smin comes from the SDRAM data
sheet. This value is a two’s complement multiplier for FTB units, ranging from +127 to
-128. See primary byte for more details. For two’s complement encoding, see Section
2.2.5.1, “Relating the MTB and FTB” for more details.
2.3.22 Byte 427 or 474: Fine Offset for Minimum Active to Active/
Refresh Delay Time (tRCmin)
This byte is modifies the calculation of XMP tRCmin byte 404 & 405, or 451 & 453 (MTB
units) with a fine correction using FTB units. The value of tRCmin comes from the
SDRAM data sheet. This value is a two’s complement multiplier for FTB units, ranging
from +127 to -128. See primary byte for more details. For two’s complement encoding,
see Section 2.2.5.1, “Relating the MTB and FTB” for more details.
2.3.23 Byte 428 or 475: Fine Offset for Minimum Row Precharge
Delay Time (tRPmin)
This byte is modifies the calculation of XMP tRPmin byte 403 or 450 (MTB units) with a
fine correction using FTB units. The value of tRPmin comes from the SDRAM data sheet.
This value is a two’s complement multiplier for FTB units, ranging from +127 to -128.
See primary byte for more details. For two’s complement encoding, see Section
2.2.5.1, “Relating the MTB and FTB” for more details.
2.3.24 Byte 429 or 476: Fine Offset for Minimum RAS# to CAS#
Delay Time (tRCDmin)
This byte is modifies the calculation of XMP tRCDmin byte 402 or 449 (MTB units) with a
fine correction using FTB units. The value of tRCDmin comes from the SDRAM data
sheet. This value is a two’s complement multiplier for FTB units, ranging from +127 to
-128. See primary byte for more details. For two’s complement encoding, see Section
2.2.5.1, “Relating the MTB and FTB” for more details.
§§