Sunday, September 15, 2013

Physical Address Extension (PAE) on 32-bit Windows

One friend complains to me that his company issued computer has more than 4GB physical memory but the system property shows that he can only access 3GB. This information can be revealed from Windows Control Panel (Control Panel\System and Security\System on Windows Vista and above).  It shows you how much physical memory installed and how much the operating system can get access to. If you have a 32-bit Windows installed, like my friend, your system can address up to 4GB physical memory. Microsoft provides memory limits for various Windows releases. See the page. What makes the situation worse is that your 32-bit Windows typically can access even less than 4GB memory. It happens when some of I/O devices are operated using memory-mapped I/O. You may refer to Microsoft Knowledge Base KB929605 for more detailed discussion.  However, I simply cite the "cause" section as follows,

Various devices in a typical computer require memory-mapped access. This is known as memory-mapped I/O (MMIO). For the MMIO space to be available to 32-bit operating systems, the MMIO space must reside within the first 4 GB of address space.

For example, if you have a video card that has 256 MB of onboard memory, that memory must be mapped within the first 4 GB of address space. If 4 GB of system memory is already installed, part of that address space must be reserved by the graphics memory mapping. Graphics memory mapping overwrites a part of the system memory. These conditions reduce the total amount of system memory that is available to the operating system.

The reduction in available system memory depends on the devices that are installed in the computer. However, to avoid potential driver compatibility issues, the 32-bit versions of Windows Vista limit the total available memory to 3.12 GB. See the "More information" section for information about potential driver compatibility issues.

If a computer has many installed devices, the available memory may be reduced to 3 GB or less. However, the maximum memory available in 32-bit versions of Windows Vista is typically 3.12 GB.

Oops! How would I access more the rest of physical memory then? The memory is important to system performance. Of course, you may upgrade your Windows to a 64-bit version. However, you may avoid the hassle by enabling Physical Address Extension (PAE) on your 32-bit Windows. Microsoft has an entry (aa366796) on PAE in MSDN library. To make it simple, you may following the following steps on your 32-bit Windows,

  1. Run a Windows command window as  administrator. (Search cmd, then right click on the short cut, choose Run as Administrator)
  2. In the command window, run

    bcdedit /set pae ForceEnable

    which allows Windows on x86-based systems to access up to 64 GB or 128 GB of physical memory, depending on the physical address size of the processor.Wikipedia has a table that lists the physical address bus size.

No comments:

Post a Comment