I have 64 GB of RAM, specifically this model (I think): https://www.gskill.com/specification/165/396/1731653269/F5-6000J2836G32GX2-FX5-Specification fortunately purchased just before RAM prices went insane.
Last night, I ran memtest86+ and noticed it showed I have "61.6GB" of RAM. This is 2.4 GB less than the stated 64 GB. I know that storage sizes are specified in GB (1000³B) instead of GiB (1024³B), so it wouldn't have shocked me if RAM is the same, but this actually doesn't explain it: 64 GB makes 59.6 GiB, so if that was it then I got 2 GiB extra, which makes no sense.
To be clear, I'm not complaining and there's no issue to fix, I just want to understand where the numbers are coming from.
My friend has 96 gigs of RAM, and for him Windows reports 93.6 GB, which is also 2.4 GB less than stated, same as me! So it seems more likely right now that RAM is actually measured and marketed in GiBs, and the same effect is causing both of us to "lose" 2.4 GB. But what effect is it?
It gets weirder.
In the FAQ of memtest, there's this:
Why is Memtest86+ testing more memory than I have?
It doesn't. The memory on a modern computer is not necessarily mapped in a linear way. E.g.: 16GB of RAM can be virtually mapped from 0-15GB and 16-17GB with a hole between 15GB and 16GB.
Which I thought might be related, so to get to the bottom of it I tracked which regions of memory it tests. This is what it showed:
- 4MB - 1GB (1020MB)
- 1GB - 2GB (1GB)
- 2GB - 2.4GB (416 MB)
- 4GB - 5GB (1GB)
- 5GB - 6GB (1GB)
- ... more 1GB regions with no gaps ...
- 62GB - 63GB (1GB)
- 63GB - 63.4GB (478MB)
Summing them all up gives a total of 60GiB + 1914MiB = 61GiB + 890MiB = 61.87GiB if my math is right, so it doesn't even match the 61.6 figure it reports!
... What's going on? WHERE ARE THE NUMBERS COMING FROM?!
If there's a better community for this, let me know and I'll cross-post it there.
Unlike hard drives and SSDs which as you have observed are incessantly manufactured in powers-of-ten mega/giga/terabytes but marketed as if they were powers-of-two mebi/gibi/tebibytes, a RAM chip's capacity is absolutely, definitely, 100% down to the individual bit precisely the capacity at which it is rated in powers-of-two megabytes. Due to the way that memory is accessed there is no other way and it cannot be fudged. (The exception is ECC RAM which typically has an extra bit per byte to hold the parity data, but this is not accessible to the user so that's moot.)
There is a small bite of your memory space taken out for Memtestx86 to reside in, which is necessary in order for it to run. Your BIOS probably has some portion of memory reserved as well, either for peripheral memory mapping or for use as video memory, or similar.
There is probably also some rounding going on in the total capacity that Memtestx86 reports.