共用方式為


Why your 4G of RAM Windows 32-bit system may not report all of the 4G (even though it is in use )

The best explanation of this I have yet found is here; with this article as a supplement.

This explanation makes it pretty clear that even if Windows 32-bit doesn't report the memory, it is getting used by some part of the hardware.

If you had less memory, less would be reported since the hardware still requires that reserved memory space.

Note that PCI-E maps video memory into the 4G addressable space and thus leaves less system memory available for applications. So a 768m graphics card reduces the memory space "seen" by the OS as available to applications in terms of both physical memory and process address space.

Still, any physical RAM above 2G means standard 32-bit processes stand a chance of fitting entirely into RAM together with the OS which would mean zero page faults to virtual memory pages on the hard disk. That is certainly good for performance so it is worth the effort to try to stick to the mobo/chipset combos that support addressing 4G of RAM.

Finally, notice the potential for PAE and DEP errors. This helps to explain some of the DEP errors the community sees from time to time.

Comments

  • Anonymous
    January 03, 2008
    Hi Phil, When you say, « Note that PCI-E maps video memory into the 4G addressable space and thus leaves less system memory available for applications. So a 768m graphics card reduces the memory space "seen" by the OS as available to applications in terms of both physical memory and process address space», does it means the 768 card is better? If yes, is it alot much better than 512m, per example? Sorry if I ask, my first language is not english. Happy New Year to you and your collegues at ACES, and thank you so much for the tons of hours of fun you give with FS. Merci!

  • Anonymous
    January 03, 2008
    The comment has been removed

  • Anonymous
    January 03, 2008
    The comment has been removed

  • Anonymous
    January 07, 2008
    This blog is very confusing, causing more misunderstanding. The articles linked are good, though. Take one example from the blog: "This explanation makes it pretty clear that even if Windows 32-bit doesn't report the memory, it is getting used by some part of the hardware. If you had less memory, less would be reported since the hardware still requires that reserved memory space." This is not true. The problem here is the 4 GB limitation of the address space. When you have less then 3 GB, you will not hit this limitation, as the address space used by the HW and BIOS is not needed to access the RAM. Moreover, the HW and BIOS are not using the RAM (the physical memory), only the address space. Most systems with 3 GB RAM or less do report almost all this memory in Windows and you can access it.

  • Anonymous
    January 07, 2008
    Suma: the drivers and BIOS still take their bit regardless of how much is installed, that doesnt change in the equation. so you never get full memory reported.

  • Anonymous
    January 09, 2008
    Phil: This is a different issue, though. On 2 GB you get almost all memory reported (actually the difference is that small that it is easy to miss - e.g. my WinXP in My Computer properties report 2 GB with 2 GB installed ). Once you start hitting the 32b barrier, a significant part of physical memory is not used for anything, and the difference between what you have and what is reported (and used) starts to be very significant (like 3.5 GB reported when you have 4 GB installed). > If you had less memory, less would be reported ... i.e. 2nd "less" is different than the 1st "less" here. A lot of less memory (e.g. 3 GB) means only a little bit less reported (3- epsilon GB ). I am not indicating anything bad is going here, or Windows are doing something wrong. This limitation is inevitable with 32b system. I only wanted to point out your explanation is somewhat misleading, esp. compared to the papers your are linking to.