32-Bit: Bottlenecks, Tales, And A Trick
Mistakes, tales, and things that definitely don’t work
Once and for all, the 32-bit (x86) versions of Windows XP, Vista, and 7 cannot handle more than 4 GB of RAM. PAE modes, registry hacks, and different boot options will definitely not produce the desired result. In fact, these have the potential to cause system instability and crashes.
We know that a 32-bit application only can address a maximum of 2 GB of RAM and that 32-bit Windows systems can actually handle just 3.25 GB (or even less if more than 4 GB of memory is installed). Windows Vista and 7 will show the full 4 GB in the System Info, but the "missing" RAM is reserved by the system for hardware that might be incompatible with 64-bit systems. Also, a portion of the system memory is needed by the graphics card, although the size of this portion is not the same as the size of the graphics card's video RAM. This is another misconception we'd like to dispel.
All graphics cards have a simple memory management unit called the GMP (graphics memory page table) on PCIe cards or GART (graphics address remapping table) on AGP cards. These are used to map different pages of the system memory into the address space of the GPU. This results in subsets of system RAM memory pages being accessible for the GPU at any time. Conversely, the video RAM must be addressable by the system.
The amount of system RAM utilized by this mapping process depends on the total capacity of the memory on your graphics card, which must be almost identical to what's available in system RAM. However, the memory capacity required for this mapping function is still a bit smaller than the actual capacity of the graphics memory. Finally, the amount of memory reserved for graphics also depends on the capacity of the system memory buffer that can be used by the video card as an external frame buffer for graphics purposes.
A common misconception found occasionally on forums is that the entire graphics card memory is always mirrored in the system RAM. This is not true.
The swap file trick: when RAM alone is not enough
The term "swap file" (or page file) refers to a file on a storage medium, such as a hard drive, used by the system in case it needs a larger address space than the available memory in physical RAM. Swap files prevent overflows and memory deficiencies. The operating system manages the memory such that data needed by active processes are typically stored in the faster RAM.
In memory-critical situations, there is a risk that all of this data won't be physically accommodated in system memory. Of course, this depends on the amount of physical memory installed. The system uses the following work-around: the addressable system memory is expanded and any data overflow is redirected to the swap file. Think of it as hard drive space that complements system memory. The RAM and swap file together are referred to as virtual memory, indicating the total amount of memory actually available when needed.
Windows is smart enough to store data from minimized applications or idle applications in the swap file so that active processes can access more RAM. The disadvantage of this solution is obvious. The performance of a mechanical hard drive is only a fraction of the throughput realized with memory modules. Solid state drives (SSDs) are an improvement, but the general problem remains. Frequent swap operations are poison to an SSD, possibly decreasing its speed.
However, by using a swap file, we can extend the virtual memory size to 8 GB or more, even in 32-bit versions of Windows. Doing so simply sacrifices speed, since "mechanical" RAM is seriously slow.
A simple solution
What if it were possible to use physical RAM like a hard drive and thus cross over the magical 4 GB limitation? You can do this by creating a so-called RAM disk from your system memory and then storing the swap file on it. The system will interpret the RAM disk as a normal hard drive, not noticing the physical difference. This way, if you have 16 GB of physical RAM installed, you can add an additional 12 GB to the 4 GB recognized as system memory.
Although this virtual memory is based on memory modules, it will be slower than directly-accessible RAM in a 64-bit system because data will have to be copied from the swap file to the RAM before it can be used. This is sometimes a good compromise, as the approach is much faster than any swap file on a hard drive. To take advantage of this tweak, you'll need some suitable RAM disk software. Check out the next couple of pages to see how we outsmart the system and boost our 32-bit Windows installation using this approach.