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. |