The maximum addressable amount of memory in a 32-bit system is 4GB's.
However, what Windows does is that because Microsoft hadn't expected of anyone making a system with 4GB's of system RAM up until they had since migrated to 64-bit, at least 512MB of the very last section of addressable memory is then reserved for the I/O addresses used for device drivers and the like. In addition, Windows also caches a set of addresses to the video memory that you use, so if you have a 512MB video card, you lose another 512MB of RAM because its memory addresses are stored on system RAM so that the OS can actually interface and feed it data.
There are things to help, such as attempting to enable PAE in the OS if you have a 64-bit capable CPU; with that, theoretically what happens is that the first 512MB or so after that first 4GB's of RAM instead are then given to allow hardware addressing of the I/O addresses and caching bit.
Or at least, that's how it is supposed to execute. The reality is that most hardware drivers simply can't handle anything larger than a 32-bit memory address, period. So on the interest of stability, I believe it doesn't work anymore if it's a driver that can't handle said types of addressing.
Log in to comment