Follow-up–I answer some reader questions about this topic here. Read this article first, though.
Hi, I found your website today during a search on Vista. My question is will 32 bit Vista Ultimate support more RAM? IE 4 or 3?
I thought this was a slam-dunk, but it turns out to be a damn good question! The short answer is, the practical upper limit is usually about 3GB of RAM.
The long answer takes some explanation… Here’s the official answer from Microsoft:
- 32-bit versions of Windows Vista Home Basic, Home Premium, Business, Enterprise, and Ultimate: 4GB
- 32-bit Windows Vista Starter: 1GB
- 64-bit versions of Windows Vista Home Basic: 8GB
- 64-bit versions of Windows Vista Home Premium: 16GB
- 64-bit versions of Windows Vista Business, Enterprise, and Ultimate: 128GB
- This guy had 3.2GB available.
- People here had 2GB, 3.58GB, and 3GB available.
- This guy had 2.5 GB.
- And this guy had 2.8GB available.
This paper from HP helps explain it–the platform can theoretically support the full 4GB, but your hardware is going to allocate some of the address space (not the physical RAM) to the PCI bus, the video adapter memory address space, and other resources. 32-bit OSs need to use part of the full 4GB address space to address these resources, subtracting from the maximum memory you have available to the OS and applications:
The PCI memory addresses starting down from 4 GB are used for things like the BIOS, IO cards, networking, PCI hubs, bus bridges, PCI-Express, and video/graphics cards. The BIOS takes up about 512 KB starting from the very top address. Then each of the other items mentioned are allocated address ranges below the BIOS range. The largest block of addresses is allocated for todayâ€™s high performance graphics cards which need addresses for at least the amount of memory on the graphics card. The net result is that a high performance x86-based computer may allocate 512 MB to more than 1 GB for the PCI memory address range before any RAM (physical user memory) addresses are allocated.
So, if your video adapter has 512MB of RAM (like mine does), your maximum memory is going to at most be 3.5GB, because Vista has to use 512MB of that address space to address your video memory. It’ll actually be lower than the 3.5GB because there are other hardware resources that need address space, too. So, it never hurts to fill your computer with 4GB of RAM–you’ll definitely get the max, but you won’t be able to address it all. You probably won’t be able to address much more than 3GB, and you might not be able to address more than 2GB.
The paper also mentions something interesting about 64-bit computers. Basically, depending on the hardware, you might be limited to 4GB of RAM even if you install 64-bit Windows Vista:
Windows XP Professional x64 Edition uses 64-bit addressing enabling virtually the entire amount of installed RAM to be made available on computers that have large address infrastructures (where the entire system has more than 4 GB addressing capabilities via the processor, chipset, physical memory capacity, etc). The HP xw4300, xw6200, xw8200 and xw9300 Workstations have the required infrastructures and even the PCI memory address range is recovered by re-mapping it above the top of physical memory.
Thanks for the great question. If you’re using 4GB of RAM with 32-bit Vista, add a comment and let us know about your experiences.
Update 4/9/07: To address the lively Linux-vs-Windows debate in the comments, it seems wildly irrelevant. First, it’s still true that any 32-bit OS needs to use part of the 4GB address space to address resources. However, you’re right that Physical Address Extension (PAE) can be used to address more than 4GB from 32-bit OSs–this is true of some Linux distributions and many 32-bit Windows OSs. Here’s the catch: applications have to be written specifically to take advantage of PAE, and the only applications that do that are very specialized tools or server applications like SQL Server, which don’t typically require that much RAM when running on a desktop OS. So, PAE won’t make your Photoshop or video editing app any faster, and it isn’t nearly as useful as it sounds. While 64-bit Windows Vista isn’t perfect, it will give you access to your full address space, and you’re bound to have far fewer application compatibility problems (and get more out of your memory) than you would with 32-bit Linux and PAE.
Oh, and take a break from stressing about OS limitations, and read something funny.