As i was playing with the Maximus VIII Gene and tweaking ram i came to notice how things work regarding training and having the right RTL/IO depending on frequency and CAS latency.
It is important to understand that having properly set RTL/IO will also gain stability versus non optimized training and of course give you that small amount of performance needed to beat damn bullant's 32M run
😄 Having said that i tested the following method on basically all memory IC's on the market and found out that it works good .
What have i done here ? Basically i found how to set the proper RTL/IO combination that fits given frequency/cas timings.
First of all,Skylake is a much more nicer platform then X99 on DDR4 so if you are a memory fanatic this suits you perfectly.There are enough secondary and tertiary and also RTL variables to make you spend days tweaking and discovering new scenaries . Asus did a good job with Maximus VIII Gene as always and the motherboard behaviour in memory fiddling is great.
Hardware used:
Core i7 6700K Retail,nothing extraordinary
Maximus VIII Gene 0004 Bios
Kingston 3466C16 ES Kit(AFR)
The reason of using AFR was that besides being my best memory it accomodates a larger range of CAS/Frequency,especially the ones that we are interested of,meaning tight CL of 11,12,13
Now what is this topic really about.In the RTL IOL CONTROL you will find beside the usual RTL/IOL settings also two new areas :
IO Latency OFFSET
IO Latency RFR Delay.
Ofc with 2 tabs used for the 2 memory channels.
How does this work:
Say you plug your good old Hynix MFR and aim for DDR4-3000 C11.
All set and go the usual RTL/IOL for this will be 44/45/6/6 In order to keep this values and avoid bad training you might want to set RTL Initial Value to lowest value that can boot and you will be good.
If you are not happy you can improve this.How ? Move from standard IO Latency offset of 21/21 one value higher.Apply and reboot.You will notice tighter RTL/IO.Repeat this until you fail to POST.Go back one step and you have the tightets RTL/IOL combination that your system can handle at this scenario.In my case : 43/44/1/1 .
Now all you have to do is type manually the values and you are good to bench.
Test Scenarios :
CAS 11 :
DDR4-3000 C11 Auto Set RTL/IOL = 44/45/6/6
DDR4-3000 C11 IO latency= 24==>44/45/2/2
DDR4-3000 C11 IO Latency =25==>43/44/1/1
DDR4-3200 C11 Auto Set RTL/IOL = 45/56/3/13 (Bad training this is the case when stability fails because of missed training)
DDR4-3200 C11 IO latency 24==> 45/46/2/2
DDR4-3333 C11 Auto Set RTL/IOL = 54/47/15/6 (again missed training)
DDR4-3333 C11 Auto set RTL/IOL = 46/47/7/6 Standard settings
DDR4-3333 C11 IO Lantecy 23 = 46/47/4/3
CAS 12 :
DDR4-3333 C12 Auto Set RTL/IOL = 48/49/7/6
DDR4-3333 C12 IO Latency 23 = 48/49/4/3
DDR4-3466 C12 Auto set RTL/IOL = 48/51/6/8
DDR4-3466 C12 IO Latency = 48/49/3/3
DDR4-3600 C12 Auto set RTL/IOL = 53/50/11/6
DDR4-3600 C12 IO Latency 23 = 49/50/5/4
CAS 13 :
DDR4-3333 C13 Auto Set RTL/IOL = 49/53/6/8
DDR4-3333 C13 IO Latency 23 = 50/51/4/3
DDR4-3466 C13 Auto Set RTL/IOL = 50/51/6/6
DDR4-3466 C13 IO Latency 23 = 50/51/3/3
DDR4-3600 C13 Auto Set RTL/IOL = 51/54/7/8
DDR4-3600 C13 IO Latency 23 = 51/52/5/4
DDR4-3733 C13 Auto Set RTL/IOL = 51/53/6/7
DDR4-3733 C13 IO Latency 23 = 51/53/4/6
I used AIDA64 as a quick performance measure to see the gains however you should feel small boost in the memory dependent benchmarks such as XTU,S-pi 32M,Maxmemm,Geekbench,etc.
Please note that you can adjust IO latency separate on each channel altough they have to stay 1 value close to each other so for example if you found that 23/23 works you should try 24/23 or 23/24 as ultimate tuning.
Also you can try tweaking IO Latency RFR Delay also,there are scenarios when if you are on edge you can try going higher with this as well and it will have the same effecto of training lower RTL/IOL.
By doing this guide i wanted to help people having a starting base for basic tuning of memory aspects in DDR4 early times using Asus Motherboards based on Z170 .
Have fun playing with your DDR4 !