On Windows:
wmic memoryChip get /?
Will give you various RAM information you can ask for right from the command prompt.
For example,
wmic memorychip get serialnumber
Gives you the serial number. You can also use Speed
, Model
sometimes, Manufacturer
and more.
WMI is the Windows method of querying SMBIOS data. Apple, Linux, Windows and anyone else who wants to run on most hardware made needs to support SMBIOS at some level, for different reasons.
You can use SMBIOS (e.g. through WMI or WMIC in Windows) to also gather hard drive information, network information (is it a 10/100 or 10/100/1000 card?).
To take it one step further, every manufacturer has a code for MAC addresses on NICs. RAM also has a manufacturers code. So all you have to do to get their code, for example my 2 x2GB in this laptop are 830B, is build a database for the manufacturers (830B might be one brand and then resold too!) and also what models mean what. That is how CPUz works I believe—basic queries and a really complete and current database.
6Note: I've removed the comments as they weren't going anywhere. You can use [chat] for discussing. – slhck – 2013-03-28T14:32:43.703
@Celeritas: I've rolled back your latest edit. Asking why a developer/manufacturer chose to add or omit a feature from their product is not constructive. – Karan – 2013-03-29T06:09:06.320
@Karan I was wondering if the Mac hardware or OS is somehow different than the hardware Windows runs on that makes it easier to determine the type of RAM. It seems like a useful feature to be built into the OS so that people know what kind of RAM to get if they want to upgrade. You can edit the question to reflect what I just told you but reword it so it fits better. – Celeritas – 2013-03-29T07:24:37.947
1Since you've already asked whether it's possible to do it on Windows and have received answers telling you how, it's clear there's no fundamental hardware difference that prevents Windows from displaying the info if it wants (SPD data as you've seen below is stored on the RAM module, and is accessible to any OS/app that cares to read it). Beyond this there's no point really in discussing why exactly MS choose not to do so, even if it's useful for end users. – Karan – 2013-03-29T07:54:38.797
i2c bus is a standard that any OS can interface with. The SPD presents itself as a 128-byte, 256-byte or 512-byte EEPROM. The OS just needs to collect these bytes, which obey another standard called JEDEC, from the EEPROM using i2c and then use that data to figure out what kind of memory it is talking about. It's very OS agnostic. – LawrenceC – 2013-04-09T23:29:24.863