“Dude, Where’s My 4 Gigabytes of RAM?”

Poor Johnny Menemonic; he maxed out at 80 gigs.Jeff “Coding Horror” Atwood writes about why he’s not getting full use of the 4 gigs of RAM he put into his computer. He’s got a 32-bit system, which means that the largest amount of space that it can address without resorting to jiggery-pokery is 232 bytes, which is 4 gigabytes, which is 4,096 megabytes or 4,294,967,296 bytes. Any address outside the zone bounded by 0 and 4,294,967,296 is “out of its field of vision”.

After installing extra RAM in his machine for a grand total of 4 gigs (which according to this article is the “sweet spot” for Vista), Jeff wondered why the System Information window on his machine said that there was only 3,454 megs of RAM on his machine. “Where, exactly,” asks Jeff, “did the other 642 megabytes of my memory go?”

It turns out that it went to memory-mapped I/O. CPUs access things in the system via their addresses. Most of a computer’s address space is devoted to RAM, some to ROM, and the rest is pretty much for I/O. In order to have I/O (without which your computer would be largely useless to you), you’ve got to sacrifice some address space that would otherwise go to RAM. Jeff explains it in detail quite well and ends with these two points:

  1. ” Although the performance benefits of 64-bit are somewhat dubious on the desktop, a 64-bit OS is absolutely essential if you run applications that need to use more than 2 GB of memory. It’s not common, but we’re getting there.”
  2. “Here’s one final bit of advice: if, like me, you’re planning to stick with a 32-bit operating system for the next few years, don’t waste your money on 4 GB of RAM. You won’t be able to use it all. Buy 3 GB instead. Every motherboard I’m aware of will happily accept 2 x 1 GB and 2 x 512 MB DIMMs.”

I myself have been spared the 4 gig limitation. The Taint (my name for the Acer Ferrari laptop sent to me by Microsoft in their controversial campaign to promote Vista in the blogosphere) has a 64-bit AMD CPU and runs the x64 version of Windows Vista Ultimate. From a RAM expansion point of view, I’m set for a while.

Now when considering the availability of drivers, that’s another story…