Jeff, I think you should edit this article, because your recommendation:
“The proper solution to this whole conundrum is to use a 64-bit operating system”
is misleading, and may well cause people serious grief. There are loads of systems out there with 64-bit CPUs that only have a 32-bit physical address range. For example, the vast majority of laptops only have a 32-bit physical address range, even though many are now available with 64-bit CPUs. And plenty of desktop systems have the same issue.
People following your advice are liable to put themselves to the inconvenience of switching to a 64-bit OS only to find that it doesn’t actually solve the problem - they’re still limited to 3.5GB of RAM, but now they have the additional problems that half their devices are no longer properly supported, and their OS now has a bigger memory footprint thus reducing the amount of memory available for doing useful work… Most people will not regard this as an improvement, and they could reasonably be annoyed with your advice.
The bottom line is this: a lot of chipsets only use 32 address bits - the higher order address bits on the processor are not wired up to anything more than terminating resistors. Turning on /PAE or switching to 64-bit won’t help you if you have such a chipset because the CPU doesn’t have a way of asking for stuff above the 4GB mark. 64-bit will let you get more than 2GB of virtual address space in a process, but you’ll still be stuck with 3.5GB or so of physical memory.
So if I were you I’d qualify your recommendation before you get a horde of angry people beating a path to your door… Make it clear that you need to have a suitable chipset. Moreover, if you do have a suitable chipset you probably don’t actually need to go 64-bit. /PAE may actually be a better option in reality, given today’s less than total support for 64-bit. PAE may be a hack, but who cares? The OS deals with it; it’s no uglier than the fact that my machine has 4GB of virtual memory (my physical memory + page file is 4GB, on my 32-bit system). 64-bit isn’t about breaking through the 4GB barrier of physical addressing - it’s only really useful if you’ve hit virtual address space limits, which is really a completely different class of problem than the one you open this blog entry with.
(Although if you need more than 64GB of memory, I believe 64-bit is necessary. PAE only goes up to 64GB of physical address space.)
In short: the 3.5GB problem is usually a chipset thing, not a 32 vs 64 thing. Unless you have individual processes requiring more than 3GB of memory, /PAE is often a better solution. (With most people I know who need this much memory, it’s because they are hosting a couple of VMs, and /PAE is just fine for that.) And if /PAE doesn’t work on your system, switching to 64-bit probably won’t either.