DDR4: Need to be matched and bought in a set?

Stringtheory

Honorable
Dec 3, 2014
71
0
10,630
I am told by some techs that DDR4/DDR3 modules need to be matched by the manufacturer. IOW, you can't set up a machine with 16GB, then buy and add in another 16GB later on, even though the model numbers may be identical.

This sounds odd. How often would such a thing actually cause enough of a mismatch to create problems?
 
Solution

CPUs apply the same clock frequency and the same set of timings to all channels. If the channels' properties are different due to having different DIMM loadout, then it may mess up timings and IO driver properties which may get adjusted based on timings and frequency.

I haven't read Intel's DRAM controller specs but on FPGAs, IO blocks have many properties that can be either trained, pre-programmed or adjusted dynamically on a per-pin or per-group basis to cope with signal integrity issues. DDR3/4 chips also have a bunch of registers to tweak on-chip termination, delay-locked loops and other details...
Motherboard and memory manufacturers only test memory compatibility in matched sets. Anything else is mileage-may-vary. It should work most of the time in principle but it isn't officially supported by anyone as there is a practically infinite number of possible combinations.
 
It is not that you can't do it - just there is a chance they will not work that way. How often such problem appears? Hard to tell, but I can tell you it does happen, judging by the number of posts people make here on Tom's forum with such problem. For a typical user, knowing that problem exists, and preparing plan B in case they are unlucky enough to face it, is all that's required.
 

I'm surprised to hear this. By the sounds of it, it isn't all that uncommon.

It could be interesting to find out if the problem is worse for certain manufacturers.

.
 


It is actually hard to tell if it is common. Note that we only have reports of people for whom it failed - but we don't know for how many it worked. I doubt anyone did any real scientific research on that matter, to come up with numbers.
 

True, reporting is heavily biased on failures as people rarely report success unless it is at the end of a troubleshooting process. Personally, I have never had trouble mixing RAM but then again, I've never been into high-end high-speed low-latency RAM, which is where you are most likely to see issues creep up due to tighter timing margins.
 

That sounds logical (re tighter timing).

One of the techs I spoke with threw out the arbitrary number "10%", as a percentage who run into problems--presumably using the same exact model of RAM. Of course it's hard to tell if they mixed modules in different banks or did something else that would precipitate problems. I would have thought that RAM in separate banks would be relatively isolated from each other, so I'm surprised to hear any of this.

I'm in the process of setting up a couple machines for scientific apps--neural nets, molecular modeling and such. I haven't decided whether it's worthwhile to move from 64gb to 128gb. Given the expense of replacing that much ram, it's kind of a daunting decision.

 

CPUs apply the same clock frequency and the same set of timings to all channels. If the channels' properties are different due to having different DIMM loadout, then it may mess up timings and IO driver properties which may get adjusted based on timings and frequency.

I haven't read Intel's DRAM controller specs but on FPGAs, IO blocks have many properties that can be either trained, pre-programmed or adjusted dynamically on a per-pin or per-group basis to cope with signal integrity issues. DDR3/4 chips also have a bunch of registers to tweak on-chip termination, delay-locked loops and other details. Mixing DIMMs makes things more complicated than they already are.

In the earlier days of the DDR4 draft spec, JEDEC didn't even officially support having more than one DIMM per channel due to signal integrity concerns and when it got put in, initial support was only up to 2133MT/s.
 
Solution

I haven't been online much for a couple days, so sorry for the late followup, but I wanted to thank you for the terrific summary! You've obviously studied hardware engineering, and I appreciate the insights.


 

In that light then, I just added 16gb more DDR3 to a system, and it passed Memtest with no problems. Seems to be working fine. I did match the exact part number, though I had no way to match the 'vintage.' And of course this was DDR3, which may have less stringent timing requirements.