Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Say I have a computer, standard 32 or 64-bit architecture. I can put any OS on it (*nix, Windows, etc). Is there some way for the computer to interrogate the hardware as to what the maximum RAM speed supported is, that works universally?

By "universally", I mean that this solution should work even on devices which aren't known to it/in its internal dictionary of parts/chipsets/processors/whatever. Right now, I can run dmidecode on a random MB and 9/10 times it will give me the correct current system specs. But that doesn't tell me the max supported RAM speed, and it is also wrong more than I'd like: especially on newer motherboards running older OSes, and in strange UEFI/BIOS compatibility environments.

Is this possible? If not, why not?

share|improve this question
add comment

1 Answer 1

up vote 1 down vote accepted

I would say it's easy to show it's impossible.

On a modern system, the memory controller is on the CPU. The maximum supported memory frequency is the lower of what the CPU supports and what the motherboard supports. Without a CPU database, the only way to tell the maximum frequency the CPU supports is for the BIOS to tell you. While BIOSes are supposed to report the actual clock frequency in the DMI table, there's no standard entry for the maximum supported frequency.

Another problem is that the DMI table has the actual clock frequency. If you are looking for the effective frequency (which is how RAM speed is usually reported), that would also require the program to understand the RAM technology's effective-to-actual ratio. What if QDR RAM becomes popular? Can you write a program today that can accurately detect QDR SDRAM that doesn't even exist as a specification yet?

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.