Why and how is the memory running in dual-channel mode

bioscpu-zdual-channelmemory

Some time ago I built a PC with 8 GB RAM (DDR4 2666MHz DIMMs) since I did not have enough money to go for a 16 GB kit.

Later, I realized 8 GB was holding me back from doing a couple of things and went with the cheapest upgrade path available to me, which was buying a single 4 GB stick and adding it to my current setup. Unfortunately, the 8 GB kit I bought was from Corsair, and they did not sell a 4 GB stick by itself, so I had to go with a different manufacturer. I went with Crucial, and tried to match up the speed (obviously) as well as timings as best I could, although IIRC it wasn't quite perfect.

From research, I concluded this was probably going to cause me to revert from dual-channel mode to single-channel mode, which I reluctantly accepted as a compromise, since I doubt I'd see a noticeable drop in performance but I'd definitely benefit from the extra 4 GB of RAM.

However, after getting everything installed, I was greeted with a message from my BIOS to move one of the sticks to a different slot. I did, and still got a message. This time, it was to move the stick from the slot that it was in to the slot… that it was in, which continues to show up to this day. I chuckled at this and went into the BIOS to make sure the speed and timings were set up correctly, then loaded up Windows Memory Diagnostic to make sure it was all good to go. It passed and I checked various locations in Windows and everything showed up as 12 GB of available RAM. Then, I downloaded CPU-Z and ran the 64-bit version of the program. To my surprise, it detected my memory was running in dual-channel mode. After further research, I verified this with wmic memorychip list full and found that two of the sticks (which were the renegade Crucial and one of the Corsair) were running in dual-channel mode as indicated by InterleaveDataDepth=2, while one of the sticks (the odd Corsair one out) was running in single-channel as indicated by InterleaveDataDepth=0.

To illustrate my setup further, I'm using an MSI H370M BAZOOKA with the memory modules installed like this:

Crucial

Corsair

Corsair

Empty Slot

Going from research telling me that memory and channels are fairly sensitive and that my results shouldn't be possible outside of a specific subset of cases, I'm curious why this is working, and how. I have actually been using the system for a good while like this (and breached the 8 GB mark of used RAM multiple times if it matters), and came across a few things that reminded me of my setup. I'm still pretty confused about this. I did come across Intel FleX, but I'm having trouble understanding if it fits into my situation or what is happening here, exactly.

Best Answer

Having a different brand, or different speed RAM module doesn't always disable dual-channel mode.

You're seeing dual channel with two of them because of how you have them placed in your slots. Typically your motherboard will have four RAM slots, but they are color coded and numbered. Two will be one color, and two will be another color. See the picture below for the color reference. If your slots are not colored, you can refer to the numbering that will be printed on the board near the slots.

On your board, the slots are numbered as DIMM A1, DIMM A2, DIMM B1, DIMM B2. In the case that you only had two RAM modules, you would want to put them in DIMM B1 and DIMM B2 (the black slots). By having them in the correct corresponding slots, allows them to work together in dual channel mode.

In your current scenario, I would put the two Corsair modules in the black slots, DIMM B1 and DIMM B2, and the Crucial in DIMM A1, the white slot furthest to the left. Doing so might remove your error message. Then the Corsair modules will be running in dual channel. The Crucial module will be running in single channel, since it does not have a second module to pair with.

Here is the picture of the color coded RAM slots. enter image description here

Related Question