This discussion has been around the web for ages, and no doubt, if you're as geeky as me, you'll already know about it, however, today, of all days, it's become more relevant for me, as finally, I have a laptop with 4GB RAM. Woo Hoo!
Admittedly, it isn't as sexy as my Sony Vaio SZ3 (the one on the right, should you be wondering....), nor is it as light and mobile, but it packs a punch, with a 2.4Ghz Core 2 Duo CPU and 4GB RAM. Anyway, it's arrived with XP on there (and a number of Google apps I'll add :-( ) but that is about to get wiped, in favour of Windows Server 2003 R2 SP2 Enterprise Edition (x64), Vista (x64) and Windows Server 2008 (x64). I know what you are thinking. This is the GOD of demo machines!
Before I go ahead and wipe the machine, which, like I said, has currently got an x86 copy of XP SP2 on there, lets take a look at my System Properties:
So, there you have it, 3.5GB of RAM. I've been cheated out of some performance here! Well, yes and no. Yes, because I've lost half a gig of RAM, but no, because there are ways I can get it back. The easiest way would be to install the x64 version of the OS, as this loss of RAM isn't a Windows problem, it's an x86 problem. The current x86 architecture, as Doug Cook states supports access to up to 4 GB of physical memory, however, hardware reserves large chunks of the upper 1 GB of physical address space. Because of these reserved areas, a system with a 32-bit physical address space will be limited to somewhere around 3.1-3.5 GB of RAM. There is another solution to upgrading to an x64 OS - the PAE hack. I say hack, as it's not the most recommended solution, but it does work. Doug continues "To overcome the 32-bit limitation, recent x86 CPUs (Pentium Pro and later) have 36 address pins and can address 64 GB of RAM. The original design of the x86 32-bit protected mode only provided access to 32-bit addresses, so PAE (Physical Address Extensions) mode was created to allow access to 36-bit addresses." So, PAE is the answer? Well, not always. PAE can only access 64 GB of memory if all 36 address pins are properly wired up on the motherboard, which isn't always the case. There are other things to consider too, for which you should definitely check out Doug's post.
So, the moral of the story is, to address that full 4GB, you can take a risk, which for many people, pay's off fine, and go with the PAE extension, or you could upgrade to an x64 OS, which can take advantage of the full del monte. That's exactly what I'm doing, with x64 versions of Server 2003, Vista and Server 2008.
However, don't just install an x64 OS and assume it will show the full 4GB RAM - it has to be supported by the motherboard and chipset, as detailed in this KB Article.
If you really want to get geeky, down to the 1's and 0's, you'd be hard pressed to find a better post that Jeff's.
With a 32bit client version of Windows there is no way of accessing the full 4GB of RAM. PAE will not help you. PAE is not a hack, it simply adds a third level of address translation to the normal two. This is supported on most server systems (with compatible hardware). 64 bit systems always use 4 level translation, even with less than 4GB of RAM.
The reasons why PAE does not work on client systems is explained in the article by Doug Cook above.