Epic Blog of Awesome

code.tech.sci.math.art.write

Windows Server 2003 PAE and AWE memory settings

http://www.redbooks.ibm.com/redpapers/pdfs/redp3943.pdf

Using PAE and AWE to access memory above 4 GB (32-bit x86)
As described in , “The /3GB BOOT.INI parameter (32-bit x86)” on page 30, the native 32-bit
architecture of the x86 processor allows a maximum addressable memory space of 4 GB.
The Intel Physical Address Extension (PAE) is a 36-bit memory addressing mode that allows
32-bit (x86) systems to address memory above 4 GB.
PAE requires appropriate hardware and operating system support to be implemented. Intel
introduced PAE 36-bit physical addressing with the Intel Pentium® Pro processor. Windows
has supported PAE since Windows NT Server 4.0, Enterprise Edition and is supported with
the Advanced and Datacenter Editions of Windows 2000 Server and the Enterprise and
Datacenter Editions of Windows Server 2003.
Windows uses 4 KB pages with PAE to map up to 64 GB of physical memory into a 32-bit (4
GB) virtual address space. The kernel effectively creates a “map” in the privileged mode
addressable memory space to manage the physical memory above 4 GB.
The 32-bit (x86) editions of Windows Server 2003 allow for PAE through use of a /PAE switch
in the BOOT.INI file. This effectively allows the operating system to use physical memory
above 4 GB. As the 64-bit (x64) editions of Windows are not bound by this same memory
architecture constraint, the PAE switch is not used in these versions of the Windows Server
2003 operating system.
Even with PAE enabled, the underlying architecture of the system is still based on 32-bit
linear addresses. This effectively retains the usual 2 GB of application space per user-mode
process and the 2 GB of kernel mode space because only 4 GB of addresses are available.
However, multiple processes can immediately benefit from the increased amount of
addressable memory because they are less likely to encounter physical memory restrictions
and begin paging.
Address Windowing Extensions (AWE) is a set of Windows APIs that take advantage of the
PAE functionality of the underlying operating system and allow applications to directly
address physical memory above 4 GB.