DDR-1333 timings on Intel DX58SO motherboard

From Mann Systems
Jump to: navigation, search

The Intel DX58SO motherboard doesn't use faster RAM properly. I have DDR3-1333 RAM but it runs at DDR3-1066 speeds by default. Changing the BIOS memory performance overrides to "Manual - User Defined" exposes many timing settings beyond the basic tCL-tRCD-tRP-tRAS:

 Memory Configuration
 
 Memory Correction                     <Non-ECC>

 Performance Memory Profiles            <Manual - User Defined>
   Uncore Multiplier                    [16]
   Memory Multiplier                    <8>
   tCL                                  [7]
   tRCD                                 [7]
   tRP                                  [7]
   tRASmin                              [19]
   tRFC                                 [86]
   tRRD                                 [4]
   tWR                                  [8]
   tWTR                                 [4]
   tRTP                                 [4]
   tRC                                  [26]
   tFAW                                 [16]
   Memory Voltage                       <1.54>
   QPI / Uncore Voltage Override        <1.150>
  
   Command Rate                         <Auto>
  
 DIMM Reference Voltage Training        <Off>

Simply setting the Memory Multiplier to 10 (10 x 133 = 1333) and the tCL-tRCD-tRP-tRAS values to 9-9-9-24 results in a system that fails to POST. Suitable values for the other timings are needed.

Under Linux, the SPD registers on the RAM can be queried as follows:

[root@saturn ~]# dnf install i2c-tools-perl
[root@saturn ~]# modprobe eeprom
[root@saturn ~]# decode-dimms
# decode-dimms version $Revision$

Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others


Decoding EEPROM: /sys/bus/i2c/drivers/eeprom/9-0050
Guessing DIMM is in                              bank 1

---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-116                        OK (0x7EF6)
# of bytes written to SDRAM EEPROM               176
Total number of bytes in EEPROM                  256
Fundamental Memory type                          DDR3 SDRAM
Module Type                                      UDIMM

---=== Memory Characteristics ===---
Maximum module speed                             1333 MHz (PC3-10600)
Size                                             4096 MB
Banks x Rows x Columns x Bits                    8 x 15 x 10 x 64
Ranks                                            2
SDRAM Device Width                               8 bits
Bus Width Extension                              0 bits
tCL-tRCD-tRP-tRAS                                9-9-9-24
Supported CAS Latencies (tCL)                    10T, 9T, 8T, 7T, 6T, 5T

---=== Timings at Standard Speeds ===---
tCL-tRCD-tRP-tRAS as DDR3-1333                   9-9-9-24
tCL-tRCD-tRP-tRAS as DDR3-1066                   7-7-7-20
tCL-tRCD-tRP-tRAS as DDR3-800                    6-6-6-15

---=== Timing Parameters ===---
Minimum Cycle Time (tCK)                         1.500 ns
Minimum CAS Latency Time (tAA)                   13.125 ns
Minimum Write Recovery time (tWR)                15.000 ns
Minimum RAS# to CAS# Delay (tRCD)                13.125 ns
Minimum Row Active to Row Active Delay (tRRD)    6.000 ns
Minimum Row Precharge Delay (tRP)                13.125 ns
Minimum Active to Precharge Delay (tRAS)         36.000 ns
Minimum Active to Auto-Refresh Delay (tRC)       49.125 ns
Minimum Recovery Delay (tRFC)                    160.000 ns
Minimum Write to Read CMD Delay (tWTR)           7.500 ns
Minimum Read to Pre-charge CMD Delay (tRTP)      7.500 ns
Minimum Four Activate Window Delay (tFAW)        30.000 ns

---=== Optional Features ===---
Operable voltages                                1.5V
RZQ/6 supported?                                 No
RZQ/7 supported?                                 Yes
DLL-Off Mode supported?                          Yes
Operating temperature range                      0-95 degrees C
Refresh Rate in extended temp range              2X
Auto Self-Refresh?                               Yes
On-Die Thermal Sensor readout?                   No
Partial Array Self-Refresh?                      No
Module Thermal Sensor                            No
SDRAM Device Type                                Standard Monolithic

---=== Physical Characteristics ===---
Module Height                                    30 mm
Module Thickness                                 2 mm front, 2 mm back
Module Width                                     133.35 mm
Module Reference Card                            B revision 0
Rank 1 Mapping                                   Mirrored

---=== Manufacturer Data ===---
Module Manufacturer                              Crucial Technology
DRAM Manufacturer                                Micron Technology
Manufacturing Date                               2012-W03
Part Number                                      CT51264BA1339.M16F
Revision Code                                    0x4D52

... [repeated for each detected DIMM] ...

The 'Timing Parameters' section contains the required information, but the timings are expressed as nanosecond values. The BIOS settings require values expressed as clock cycles.

To convert these values to clock cycles, we first need the length of a clock cycle in nanoseconds. Take the DDR speed in Hz and halve it to obtain the clock speed, then take the reciprocal:

DDR3-1333 speed = 1333333333 Hz
Clock speed = 1333333333 / 2 = 666666666 Hz
Clock cycle = 1 / 666666666 = 1.5ns

Dividing each of the SPD timings by 1.5 will give the required clock cycle values which, rounded up, give suitable values enter into the BIOS settings.

Timing parameter Nanoseconds Clock cycles Rounded up
Minimum Cycle Time (tCK) 1.500 ns 1 1
Minimum CAS Latency Time (tAA)* 13.125 ns 8.75 9
Minimum Write Recovery time (tWR) 15.000 ns 10 10
Minimum RAS# to CAS# Delay (tRCD) 13.125 ns 8.75 9
Minimum Row Active to Row Active Delay (tRRD) 6.000 ns 4 4
Minimum Row Precharge Delay (tRP) 13.125 ns 8.75 9
Minimum Active to Precharge Delay (tRAS) 36.000 ns 24 24
Minimum Active to Auto-Refresh Delay (tRC) 49.125 ns 32.75 33
Minimum Recovery Delay (tRFC) 160.000 ns 106.667 107
Minimum Write to Read CMD Delay (tWTR) 7.500 ns 5 5
Minimum Read to Pre-charge CMD Delay (tRTP) 7.500 ns 5 5
Minimum Four Activate Window Delay (tFAW) 30.000 ns 20 20

* tAA will be used as tCL

Entering these values into the BIOS settings, we have:

 Memory Configuration
 
 Memory Correction                     <Non-ECC>

 Performance Memory Profiles            <Manual - User Defined>
   Uncore Multiplier                    [20]
   Memory Multiplier                    <10>
   tCL                                  [9]
   tRCD                                 [9]
   tRP                                  [9]
   tRASmin                              [24]
   tRFC                                 [107]
   tRRD                                 [4]
   tWR                                  [10]
   tWTR                                 [5]
   tRTP                                 [5]
   tRC                                  [33]
   tFAW                                 [20]
   Memory Voltage                       <1.50>
   QPI / Uncore Voltage Override        <1.150>
  
   Command Rate                         <Auto>
  
 DIMM Reference Voltage Training        <Off>

The system now POSTs successfully with the RAM running at the correct speed.