I just built a new(ish) machine and I stuck 6 gigs of RAM into it. I decided to give the RC of Windows 7 (64bit) a try. As I was using it I noticed the machine said it had 6 gigs of ram, but only 5 was usable. This drove me a little nuts because it was able to detect 6 gigs. And it clearly wasn't this issue "Dude, Where's My 4 Gigabytes of RAM?" because I was getting 5 gigs. I also noticed that the BIOS was only reporting 5 gigs as usable. I thought it might be a bad RAM chip so I started swapping them in and out. Eventually I determined they were all good. I noticed the Memory remapping feature in the BIOS so I gave that a try and Windows and the BIOS is reporting all 6 gigs are usable.
Why does this remapping need to be done? Shouldn't the BIOS automatically be using all of the ram?
Actually, it's exactly the same issue as was listed in the codinghorror post. You've got memory and devices taking the same memory address space, and the devices win. Remapping the devices moves them way out of the way of the memory, so you don't have the problem (and until we get exabytes of RAM, won't ever have the problem again).
The BIOS doesn't do that because it needs to stay backwards compatible as much as possible.
See Microsoft's explanation [here]
From the KB: "When the physical RAM that is installed on a computer equals the address space that is supported by the chipset, the total system memory that is available to the operating system is always less than the physical RAM that is installed. For example, consider a computer that has an Intel 975X chipset that supports 8 GB of address space. If you install 8 GB of RAM, the system memory that is available to the operating system will be reduced by the PCI configuration requirements. In this scenario, PCI configuration requirements reduce the memory that is available to the operating system by an amount that is between approximately 200 MB and approximately 1 GB. The reduction depends on the configuration."