Windows Memory Has Physical, Design, and Marketing Limitations
Posted by Dave Methvin, Jul 25, 2008 03:40 PM
Mark Russinovich is one of Microsoft's best technical people, and he shows that every time he makes a blog post. This week he has a great post about the maximum supported memory in different versions of Windows. I thought I knew this story pretty well by now, but learned several new things about the limits--and the interesting reasons behind them.
The blog points to an MSDN article on memory limits, which does have a few quirks. As the commenter on that page points out, why should 64-bit Windows Vista Business (a desktop OS) allow 128 GB of RAM, but 64-bit Windows Server 2008 Standard top out at 32 GB? These are not limits born of technical reasons, but simply put there by the marketing department to convince one group or the other to pony up more money for what is essentially the same OS.
There is a way for 32-bit Windows to access memory using a technology called Physical Address Extensions (PAE). However, Microsoft intentionally limited desktop XP and Vista to 4 GB of RAM because many third-party drivers did not work properly when trying to access a memory address above 4 GB. Rather than risk crashes and system problems, Microsoft made it impossible to do.
This issue is compounded by hardware, particularly video boards, that map some of their memory into the 4 GB address space. Windows can do that fine, but in the process it maps some real RAM into the space above 4 GB where it won't be accessed by either applications or the operating system itself. That's why you'll often see Windows use much less than 4 GB RAM on 32-bit XP or Vista, even if you've installed 4 GB of physical memory.
I completely understand why Microsoft instituted the 4-GB limit for 32-bit desktop operating systems by default, but the finality of the implementation leaves something to be desired. Since this was ostensibly a patch to work around bad device drivers, it would have been good to have perhaps a boot.ini option that technical users could use to regain their missing memory. If I have well-behaved drivers, I should be able to use them with more than 4 GB on 32-bit Window -- or at the very least, get a full usable 4 GB of RAM.
One point that Russinovich didn't emphasize, perhaps because it's a hardware problem and not a Microsoft problem: many Pentium 4 northbridge chipsets for portables and desktops were limited until recently to addressing 4 GB of RAM. Even if you install a 64-bit version of Windows on these systems, you won't be able to install more than 4 GB of RAM, so it doesn't help much. Server chipsets allow a more generous helping of RAM as you might expect.