[Slightly Revised 1/20/2019]
- Set VDIMM and VSOC to baseline values.
- Set frequency to a baseline value.
- Primary timings: initial tightening and gauging baseline timings
- tCL, tRCD, tRP
- Set tCL, tRCD, tRP, tRAS somewhat loose.
- Unstable: Repeat until stable:
- tCL + 1, tRCD + 1, tRP + 1, tRAS + 2
- Repeat until decrease of either pair causes instability:
- tCL - 1, tRP - 1
- Record subtimings.
- Stress test.
- tRCDWR - 1, tRCDRD - 1
- Stress test.
- Repeat until stable:
- tRP - 1
- Stress test.
- tRAS
- Set to the lower of the following values, if lower than current value:
- Values recommended by DRAM Calculator.
- tRAS = tCL + tRP or tCL + tRP + 2
- Stress test.
- Unstable: repeat until stable:
- tRAS + 2
- Stress test.
- Stable: repeat until unstable:
- tRAS - 2
- Stress test.
- Repeat at higher frequencies until true CAS latency required for stability is relatively very high.
- Increase VDIMM and VSOC if necessary.
- Determine frequency/-ies at which best true latency was achieved or which may achieve best true latency after more tweaking.
- Repeat until either one causes instability or calculator minimum voltages reached, whichever is higher:
- VDIMM - 1 step.
- VSOC - 1 step.
- Process for the following sections:
- Unstable (boot cycle): clear CMOS.
- Unstable (training failed): do the following, in order, until training successful:
- Change ProcODT.
- Change RTT_PARK.
- (If safe) VDIMM + 1 step, then repeat.
- (If safe) VSOC + 1 step.
- (If safe) Vcore + 1 step, then repeat.
- Unstable (BSOD/crash): do the following, in order, until stable:
- ProcODT ± 1 step, then repeat.
- (If safe) VDIMM + 1 step, then repeat.
- (If safe) VSOC + 1 step.
- (If safe) Vcore + 1 step, then repeat.
- Nothing worked: change CLDO_VDDP and disable Spread Spectrum.
- Stable (boots): stress test.
- Unstable (memory errors): do the following, when applicable/safe/possible, in order, until stable:
- Change CAD_BUS, then repeat.
- Change VDDP, then repeat.
- Change memory interleaving.
- Vcore + 1 step, then repeat.
- VDIMM + 1 step, then repeat.
- (Maybe VSOC + 1 step?)
- VSOC LLC + 1, then repeat.
- Set Geardown enabled (NOTE: THIS MAKES MANY TIMINGS ROUND UP IF THEY ARE ODD).
- Disable Spread Spectrum.
- Change timings:
- Set and loosen timings: tFAW (keep between 16 and 36), tRDWR (between 6 and 9), tWRRD (between 1 and 4), tRCDRD
- tRRDS + 1 or + 2
- Set tRFC to alternative calculator value.
- tRP ± 1
- Nothing worked: change:
- CLDO_VDDP (for memory holes), VPP, PLL voltage
- Loosen timings (and disable Geardown if loosening tCL)
- Primary timings: further tightening
- Where possible, set values for the following: RTT_PARK, RTT_NOM, RTT_WR, ProcODT, CAD_BUS (CLKDrvStr/AddrCmdDrvStr/CsOdtDrvStr/CKEDrvStr), VDDP, CLDO_VDDP, VPP, PLL Voltage.
- Repeat, in order, doing as many as of the following as possible until unstable:
- tCL - 1
- See 5.
- (If tRP did not need to be loosened previously) tRP - 1
- See 5.
- tRCDWR - 1
- See 5.
- (If tRCDRD did not need to be loosened previously) tRCDRD - 1
- See 5.
- Repeat until unstable
- tRAS - 2
- See 5.
- Subtimings
- Set to values recommended by DRAM Calculator, if lower than current values.
- See 5.
- tRC
- Set tRC = tRP + tRAS.
- Stress test.
- Unstable: repeat until stable:
- tRC + 2
- Stress test.
- tRFC
- If lower than recommended value, set tRFC = 8(tRC) + 8.
- Stress test.
- Repeat until opposite state of stability is reached:
- Unstable: tRFC + 32; Stable: tRFC - 32.
- Stress test.
- Stable: tRFC - 16; Unstable: tRFC + 16.
- Stress test.
- Unstable: tRFC + 8; Stable: tRFC - 8.
- Stress test.
- Stable: tRFC - 4; Unstable: tRFC + 2.
- Stress test.
- Unstable: tRFC + 2; Stable: tRFC - 2.
- Stress test.
- Stable: tRFC - 1; Unstable: tRFC + 1.
- Stress test.
- tCKE
- Repeat until unstable:
- tCKE - 1
- Stress test.
- tCWL
- If lower than recommended value, set tCWL = tCL or tCWL = tCL - 1 (whichever is even).
- Stress test.
- Repeat until unstable:
- tCWL - 1
- Stress test.
- tRRDS, tRRDL
- Repeat until reducing either one causes instability:
- tRRDS - 1
- Stress test.
- tRRDL - 1
- Stress test.
- tRDRDSCL, tWRWRSCL
- Repeat until reducing either one causes instability:
- tRDRDSCL - 1
- Stress test.
- tWRWRSCL - 1
- Stress test.
- (If greater than 1) tWRWRSC, tRDRDSC
- Repeat until reducing either one causes instability:
- tWRWRSC - 1
- Stress test.
- tRDRDSC - 1
- Stress test.
- tWRWRDD, tWRWRSD
- Repeat until reducing either one causes instability:
- tWRWRSD - 1
- Stress test.
- tRDRDSD - 1
- Stress test.
- tRDRDSD, tRDRDDD
- Repeat until reducing either one causes instability:
- tRDRDSD - 1
- Stress test.
- tRDRDDD - 1
- Stress test.
- tFAW (If tFAW did not need to be loosened previously)
- Set to 4(tRRDS).
- Unstable: Set to 5(tRRDS).
- Unstable: Set to 8(tRRDS).
- Unstable: Repeat until stable:
- tFAW + 2.
- Stress test.
- Stable: Repeat until unstable:
- tFAW - 2.
- Stress test.
- Stable: Repeat until unstable:
- tFAW - 2.
- Stress test.
- tWTRS (If tWTRS did not need to be loosened previously), tWTRL
- Repeat until reducing either one causes instability:
- tWTRS - 1
- Stress test.
- tWTRL - 1
- Stress test.
- tWR
- If lower than recommended value, set tWR = tRAS - tRCD
- Repeat until unstable or tWR = 8:
- tWR - 1
- Stress test.
- tRTP
- Repeat until unstable:
- tRTP - 1
- Stress test.
- tRDWR (If tRDWR did not need to be loosened previously), tWRRD (If tWRRD did not need to be loosened previously)
- Repeat until reducing either one causes instability:
- tRDWR - 1
- tWRRD - 1
- CR (If 2)
- CR - 1
- DISABLE GEARDOWN MODE
- Stress test.
- Repeat until either one causes instability:
- VDIMM - 1 step.
- VSOC - 1 step.