Some questions I have about DDR4 RAM speed and latency in underclocked memory

March 9, 2018

Suppose, not hypothetically, that you're putting together an Intel Core i7 based machine, specifically an i7-8700, and you're not planning to overclock. All Coffee Lake CPUs have an officially supported maximum memory rate of 2666 MHz (regardless of how many DIMMs or what sort of DIMM they are, unlike Ryzens), so normally you'd just buy some suitable DDR4 2666 MHz modules. However, suppose that the place you'd be ordering from is out of stock on the 2666 MHz CL15 modules you'd normally get, but has faster ones, say 3000 MHz CL15, for essentially the same price (and these modules are on the motherboard's qualified memory list).

At this point I have a bunch of questions, because I don't know what you can do if you use these higher speed DDR4-3000 CL15 DIMMs in a system. I can think of a number of cases that might be true:

  • The DIMMs operate as DDR4-2666 CL15 memory. Their faster speed does nothing for you now, although with a future CPU and perhaps a future motherboard they would speed up.

    (Alternately, perhaps underclocking the DIMMs has some advantage, maybe slightly better reliability or slightly lower power and heat.)

  • The DIMMs can run at 2666 MHz but at a lower latency, say CL14, since DDR4-3000 CL15 has an absolute time latency of 10.00 ns and 2666 MHz CL14 is over that at 10.5 ns (if I'm doing the math right).

    This might require activating an XMP profile in the BIOS, or it might happen automatically if what matters to this stuff is the absolute time involved, not the nominal CLs. However, according to the Wikipedia entry on CAS latency, synchronous DRAM cares about the clock cycles involved and so CL15 might really be CL15 even if when you're underclocking your memory. DDR4 is synchronous DRAM.

  • The DIMMs can run reliably at memory speeds faster than 2666 MHz, perhaps all the way up to their rated 3000 MHz; this doesn't count as CPU overclocking and is fine on the non-overclockable i7-8700.

    (One possibility is that any faster than 2666 MHz memory listed on the motherboard vendor's qualified memory list is qualified at its full speed and can be run reliably at that speed, even on ordinary non-overclockable i7 CPUs. That would be nice, but I'm not sure I believe the PC world is that nice.)

  • The system can be 'overclocked' to run the DIMMs faster than 2666 MHz (but perhaps not all the way to the rated 3000 MHz), even on an i7-8700. However this is actual overclocking of the overall system (despite it being within the DIMMs' speed rating), is not necessarily stable, and the usual caveats apply.

  • You need an overclockable CPU such as an i7-8700K in order to run memory any faster than the officially supported 2666 MHz. You might still be able to run DDR4-3000 CL15 at 2666 MHz CL14 instead of CL15 on a non-overclockable CPU, since the memory frequency is not going up, the memory is just responding faster.

Modern DIMMs apparently generally come with XMP profile(s) (see also the wikichip writeup) that let suitable BIOSes more or less automatically run them at their official rated speed, instead of the official JEDEC DDR4 standard speeds. Interestingly, based on the Wikipedia JEDEC table even DDR4-2666 CL15 is not JEDEC standard; the fasted DDR4-2666 CL the table lists is CL17. This may mean that turning on an XMP profile is required merely to get 2666 MHz CL15 even with plain standard DDR4-2666 CL15 DIMMs. That would be weird, but PCs are full of weird things. One interesting potential consequence of this could be that if you have DDR4-3000 CL15 DIMMs, you can't easily run them at 2666 MHz CL15 instead of 2666 MHz CL17 because the moment you turn on XMP they'll go all the way up to their rated 3000 MHz CL15.

(I learn something new every time I write an entry like this.)

PS: People say that memory speed isn't that important, but I'm not sure I completely believe them and anyway, if I wind up with DIMMs rated for more than 2666 MHz I'd like to know what they're good for (even if the answer is 'nothing except being available now instead of later'). And if one can reliably get somewhat lower latency and faster memory for peanuts, well, it's at least a bit tempting.

Comments on this page:

By Door at 2018-03-09 05:02:51:

The way I remember this working back when I was an overclocker who cared about such things (which was back in the early DDR3 era and earlier) was that case 1 in your bullet points is always true and case 2 is usually true. (and it works in reverse - you can sometimes overclock memory to higher speeds by loosening timings.) DIMMs had settings for common speeds lower than their rated speed programmed into them, and if you set the timings to "auto" with a lower speed selected, you'd get them. This was vanilla SPD, not the more aggressively-tuned XMP, but the programmed timings were still often tighter than they were at rated speed. Regarding cases 3-5, I believe that case 4 is true, but I'm hazy on the details since I haven't kept pace with the overclocking scene in recent years, or with recent CPUs.

Regarding memory speed, have you seen this Phoronix article? This is very close to how I remember memory speed working - a big boost for a few things, especially integrated graphics, but little for most tasks. They have some other similar tests with different CPUs that might be of interest also.

Written on 09 March 2018.
« Some things I mean when I talk about 'forged HTTP referers'
In Fedora, your initramfs contains a copy of your sysctl settings »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Fri Mar 9 01:56:50 2018
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.