RAMI’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):

  1. Keep your video memory to a minimum. This will allow you to use as much of the 4 GB of RAM as possible
  2. 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.
    1. Make sure your chipset supports at least 8GB of address space.
    2. Ensure the CPU supports the x64 instruction set.
    3. Get 64-bit Vista.
  3. Make sure any new hardware that you purchase supports PAE.
  4. Enable PAE in Windows using the BCDEdit /set command. But be aware of the risks (see above).
  5. Look for applications that support AWE and PAE.
  6. Keep your RAM requirement under (gasp!) 3 GB.

Here are a few links with some further reading: