Some background first: When I built my latest system two years ago and got a DDR4 motherboard I bought 16 GB of RAM (2 x 8 GB). Today I had the money to finally order another set, identical to the first one so that all 4 memory modules are the exact same model in every way. I just installed them and everything works fine, I have 32 GB of memory and the system even feels a little faster.
Still I wanted to make sure the system is running in dual-channel mode given I never used all 4 memory slots before. The BIOS doesn’t seem to inform me. I looked up the Linux command commonly used to verify, but for some odd reason it doesn’t appear to give me a clear verdict.
[linux-qz0r mircea]# dmidecode -t 17
# dmidecode 3.3
Getting SMBIOS data from sysfs.
SMBIOS 3.1.1 present.
Handle 0x0034, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x002C
Error Information Handle: 0x0033
Total Width: 64 bits
Data Width: 64 bits
Size: 8 GB
Form Factor: DIMM
Set: None
Locator: DIMM_A1
Bank Locator: BANK 0
Type: DDR4
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 3200 MT/s
Manufacturer: Kingston
Serial Number: 89FA951F
Asset Tag: Not Specified
Part Number: KHX3200C16D4/8GX
Rank: 1
Configured Memory Speed: 3200 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 1.2 V
Configured Voltage: 1.2 V
Handle 0x0037, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x002C
Error Information Handle: 0x0036
Total Width: 64 bits
Data Width: 64 bits
Size: 8 GB
Form Factor: DIMM
Set: None
Locator: DIMM_A2
Bank Locator: BANK 1
Type: DDR4
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 3200 MT/s
Manufacturer: Kingston
Serial Number: B74E32EC
Asset Tag: Not Specified
Part Number: KHX3200C16D4/8GX
Rank: 1
Configured Memory Speed: 3200 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 1.2 V
Configured Voltage: 1.2 V
Handle 0x003A, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x002C
Error Information Handle: 0x0039
Total Width: 64 bits
Data Width: 64 bits
Size: 8 GB
Form Factor: DIMM
Set: None
Locator: DIMM_B1
Bank Locator: BANK 2
Type: DDR4
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 3200 MT/s
Manufacturer: Kingston
Serial Number: 89FA90A7
Asset Tag: Not Specified
Part Number: KHX3200C16D4/8GX
Rank: 1
Configured Memory Speed: 3200 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 1.2 V
Configured Voltage: 1.2 V
Handle 0x003D, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x002C
Error Information Handle: 0x003C
Total Width: 64 bits
Data Width: 64 bits
Size: 8 GB
Form Factor: DIMM
Set: None
Locator: DIMM_B2
Bank Locator: BANK 3
Type: DDR4
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 3200 MT/s
Manufacturer: Kingston
Serial Number: AD8E3007
Asset Tag: Not Specified
Part Number: KHX3200C16D4/8GX
Rank: 1
Configured Memory Speed: 3200 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 1.2 V
Configured Voltage: 1.2 V
I understand my locator should be something like ChannelA-DIMM0 but instead I have ones like DIMM_A1. Does this indicate there might be a problem and I could be on single channel? Could that happen even when all memory modules are identical in every way? How do I check with certainty?
From quick research I found there is no way to tell that from the system, the above command is often given, also the long command sudo dmidecode -t 17 | awk 'BEGIN { FS=":"; OFS="\t" } /Size|Channel/ { line = (line ? line OFS : "") $2 } /^$/ { print line; line="RAM" }' | grep -iv 'no' is often given, but apparently it doesn’t seem to give an answer.
The real method is to check your motherboard manual, and position the memory modules in the appropriate slots. Check your BIOS it is the reliable method.
For an example here are my ‘results’ with the often given commands to check:
Just realized I might be misinterpreting the data here: My motherboard might be reporting the same thing mentioned by other people but in different words.
Wouldn’t it be correct to assume the 1 and 2 are the memory slots, but the A and B represent the channels? In this case that should be correct: I have channel A and channel B.
The BIOS only seems to have one option for interleaved memory, either Auto or Disabled. It’s on Auto obviously, so as far as settings go it should all be good.
If somehow it weren’t working I don’t see what I could do anyway: They’re all the same model and make so it should be fine. This is mostly a curiosity just to be extra sure everything’s in order.
I’ll risk it and repeat a third time. Check you mother board manual, do as they say then you’ll be sure.
Apparently Memtest is able to tell that (the Mode seem to be for single/dual/triple/quad channel respectively for 64/128/196/256 bits). Windows tools also reliably tell that too. On Linux, on a booted system, my research lead me to the conclusion that you can NOT know at all, from the system.
Oh, that must be why I don’t have it (UEFI system with secure boot). I remember Clonezilla used to have Memtest too so if I ever find the time maybe I’ll leave it running sometime and check this as well. Thanks for the idea and suggestion.