When 4 = 3


I just built a new machine and loaded it up with RAM to 4 GB. Little did I know that I would need a 64 bit version of Windows to use it all. After all 32 bits allows for 4 GB of address space, and the Microsoft web site says Windows 32 bit can handle up to 4 GB. But in most cases, if you want to use more than 3 GB of RAM, you will need to use a 64 bit version of Windows, and even then you may still be stuck at around 3 GB depending on your hardware (Even if it says it supports up to 4 GB).  More


Comments (5)

  1. 64bitter says:

    I think that’s a bit misleading. The system is using all the RAM, it’s just that some of it is reserved for certain devices. As I understand it, anyway.

  2. MSDN Archive says:

    No, thats not correct. What is happening is that the devices need memory addresses, not memory. This is used to communicate with the devices is my guess. ie for a video card to map its RAM into a space that Windows can see, or for SCSI to map its cache, etc… But absolutely it is not using the physical RAM and I’ve confirmed this with Microsoft engineers. The RAM gets hidden and is NOT usable.

    Also if this were the case, then upgrading my machine to 64 bit I would still see the same amount of memory available, but I don’t. I see more.

  3. 64bitter says:

    So, you are saying that there is a physical chunk of RAM into which the kernel never maps  any address space  ?

    When you say the RAM is not usable, what exactly do you mean ? It it obviously used by the kernel to talk to these devices.  

    What I was driving at, was that this chunk of memory is probably a virtual address-space region that is always reserved for certain devices (DMA, maybe).  When you have less than 4GB, you don’t see it. When your physical address space is equal to your VM space, you suddenly see "holes".

    I would bet that if you were able to load a 64-bit system with memory equal to its address space, there would be "holes" in it as well. They would just be at a different place.

  4. 64bitter says:

    please disregard my previous comment(s). I now understand what you meant (via Raymond Chen’s blog). Thanks !

  5. MSDN Archive says:

    Is there a specific post in Raymond’s blog that helped and might be worth linking to?

Skip to main content