MIA: RAM in 32-bit Vista
I’ve been saving my pennies over the past while to buy a new computer. I want to get the new Vista Ultimate for home but I also want it to run well. I know that Vista is a memory hog so I was planning on pushing my RAM up to at least 8 GB but probably more. That is, until I read Dude, Where’s My 4 Gigabytes of RAM?
It appears, that even if I were to spring for more than 4 GB of RAM, chances are it will not be used! And, on top of this, people have known about this limitation for quite some time (apparently I have been living under a rock)!
If I understand this correctly, a 32-bit operating system can handle 232 bytes = 4,294,967,296 bytes = 4,096 MB of memory. But this is total memory. You need to subtract the amount of memory that is used by your video card and also by your BIOS. That means that you could be stuck with significantly less RAM than expected, especially with some of those new 1 GB video cards coming out!
So, what is the solution? There are a few things that have been put in place such as PAE enabled processors which allows the system to support up to 64 GB of RAM as long as the operating system also supports it. Windows uses AWE to accomplish this. From what I have read, this is more of a kludge than it is a solution, according to Microsoft:
The primary driver compatibility issues that you may experience occur when you run PAE mode on 32-bit computers. PAE mode enables processors to use more than 4 GB of memory. The primary difference between PAE memory paging schemes and non-PAE memory paging schemes is the additional level of paging that is required in PAE mode. PAE mode requires three levels of paging instead of two levels of paging.
Some drivers might not load if PAE mode is enabled because the device might be unable to perform 64-bit addressing. Or, the drivers might be written with the assumption that PAE mode requires more than 4 GB of memory. Such drivers are written with the expectation that the drivers will always receive 64-bit addresses in PAE mode and that the driver or the device cannot interpret the address.
Other drivers might load in PAE mode but cause system instability by directly modifying system page table entries (PTE). These drivers expect 32-bit page table entries but receive 64-bit PTEs in PAE mode instead.
Another option is going to a 64-bit operating system. The physical memory limit on a 64-bit system is 264 bytes = 18,446,744,073,709,551,616 bytes = 16,777,216 TB. That should be enough RAM to keep most of us going for the next while. Unfortunately, applications need to be written to support the new 64-bit structure and there seems to be a limited benefit at the desktop.
So, what’s a geek to do? Here are a few suggestions (you may not like them all):
- Keep your video memory to a minimum. This will allow you to use as much of the 4 GB of RAM as possible
- Go 64-bit and keep your eyes peeled for the programs that really take advantage of it. But beware. Some 32-bit applications can cause you some grief.
- Make sure any new hardware that you purchase supports PAE.
- Enable PAE in Windows using the BCDEdit /set command. But be aware of the risks (see above).
- Look for applications that support AWE and PAE.
- Keep your RAM requirement under (gasp!) 3 GB.
Here are a few links with some further reading:
- /pae
- Boot Options in Windows Vista
- Why can’t I see all of the 4GB of RAM in my machine?
- 3GB or 4GB - a ‘Virtual’ Memory Upgrade
- Dude, Where’s My 4 Gigabytes of RAM?
- AWE
- PAE
- The system memory that is reported in the System Information dialog box in Windows Vista is less than you expect if 4 GB of RAM is installed
- The 4GB Windows Memory Limit: What does it really mean?
- Windows Vista Not Seeing My 4GB Ram
5 Responses to “MIA: RAM in 32-bit Vista”
-
Light & Dark Says:
March 12th, 2007 at 2:11 amUmmm… unless your video card is built in, it’s using ram that’s supplied on the video card itself and has next to no effect on the ram availability of the main system for the OS and applications (barring I/O functions that require some ram overhead).
Since pretty much all high-end systems (certainly something you’re considering putting 8 gigs of ram into) should be running a dedicated video card anyway, that aspect at lest is a non-issue.
Frankly, I’d question the need for anyone to have more than 4 gigs of ram available, even under Vista, unless they have some pretty specific requirements. But then, Vista’s intensive hardware requirements are a significant reason why I won’t be upgrading. I’m not about to throw away that kind of horsepower on something that, for me, will have next to no beneficial functionality at all. YMMV.
Paul
-
Tim Fehlman Says:
March 12th, 2007 at 5:44 amBecause of the 32-bit 4 GB limit, the video RAM needs to be considered even if it is not shared because it is a total amount of RAM that the architecture can handle, not the total amount of RAM that is physically available.
It is an issue of accessibility, not availability.
Tim
-
Kriptópolis | Criptografia - Seguridad - Privacidad Says:
March 12th, 2007 at 9:07 amnotificada en el cuadro de diálogo Información del sistema de Windows Vista es menor que espera que se instale 4 GB de RAM [Microsoft]. Memory Support and Windows Operating Systems [Microsoft]. Windows Vista Not Seeing My 4GB Ram [Channel 9 Forum]. MIA: RAM in 32-bit Vista [Daily Cup of Tech]. Dude, Where’s My 4 Gigabytes of RAM? [Coding Horror].
-
N 82 50 24’s Blog Says:
May 20th, 2007 at 8:16 amhttp://www.dailycupoftech.com/2007/03/11/mia-ram-in-32-bit-vista/describes it) is the problem. There are definitely 4 1GB sticks of RAM in my machine, so I doubt it’s hardware. Plus, when I boot the computer, the BIOS sees the full 4 GB. So it’s some dumb Windows limitation and if I override it by “enabling PAE”
-
cloud9ine Says:
April 16th, 2008 at 3:35 amjust wanted to mention that the 32/64 bit actually refers to the size of data units handled by the processor (register width) but it is convenient to store a pointer in the register that’s why the 2^32 or 2^64 comes up.
There have been processors in the past in the 86 line with different register width and address size.
