Professional Documents
Culture Documents
Physical Address Extension
Physical Address Extension
History
Design
With PAE, IA-32 architecture is augmented with additional address lines used to select the additional memory,
so physical address size increases from 32 bits to 36 bits.
This increases the physical memory addressable by the
system from 4 GB to 64 GB. The 32-bit size of the virtual address is not changed, so regular application software continues to use instructions with 32-bit addresses
1
physical page number. Combined with 12 bits of oset within page from the page table entry, a maximum
of 52 bits are available to address physical memory. This
allows a maximum RAM conguration of 252 bytes, or 4
petabytes (about 4.51015 bytes).
On x86-64 processors in native long mode, the address
translation scheme uses PAE but adds a fourth table, the
512-entry page-map level 4 table, and extends the page
directory pointer table to 512 entries instead of the original 4 entries it has in protected mode. Currently 48 bits
of virtual page number are translated, giving a virtual address space of up to 256 TB.[5](p120) In the page table entries, in the original specication, 40 bits of physical page
number are implemented.
Page table structures
No PAE, 4 KB pages
the 4 GB address limit. However, it led to compatibility problems with 3rd party drivers which led Microsoft
to remove this capability in Windows XP Service Pack
2. Windows XP SP2 and later, by default, on processors
with the no-execute (NX) or execute-disable (XD) feature, runs in PAE mode in order to allow NX.[15] The no
execute (NX, or XD for execution disable) bit resides in bit
63 of the page table entry and, without PAE, page table
entries on 32-bit systems have only 32 bits; therefore PAE
mode is required in order to exploit the NX feature. However, client versions of 32-bit Windows (Windows XP
SP2 and later, Windows Vista, Windows 7) limit physical address space to the rst 4 GB for driver compatibility [11] via the licensing limitation mechanism,[10] even
though these versions do run in PAE mode if NX support
is enabled.
Windows 8 will only run on processors which support
PAE, in addition to NX and SSE2.[16]
No PAE, 4 MB pages
With PAE; 4 KB pages
With PAE; 2 MB pages
Support
5.2 OS X
All Intel versions of OS X support PAE and the NX bit.
Mac Pro and Xserve systems can use up to 64 GB of
RAM.[17]
5.3 Linux
See also: Executable space protection Linux
3
all 6.x and later releases. Support requires the kernel
PAE conguration-option. Loadable kernel modules can
only be loaded into a kernel with PAE enabled if the
modules were built with PAE enabled; the binary modules in FreeBSD distributions are not built with PAE enabled, and thus cannot be loaded into PAE kernels. Not
all drivers support more than 4 GB of physical memory; those drivers won't work correctly on a system with
PAE.[25]
OpenBSD has had support for PAE since 2006 with the
standard GENERIC i386 kernel. GeNUA mbH supported the initial implementation.[26] Since release 5.0
PAE has had a series of changes, in particular changes
to i386 MMU processing for PMAP, see pmap(9).[27]
Solaris supports PAE beginning with Solaris version 7.
However, third-party drivers used with version 7 which
do not specically include PAE support may operate erratically or fail outright on a system with PAE.[28]
[6] Volume 2: System Programming (PDF). AMD64 Architecture Programmers Manual. Advanced Micro Devices. November 1, 2009. pp. 124143. Retrieved
2015-02-07. Long-mode page translation requires the use
of physical-address extensions (PAE). Before activating
long mode, PAE must be enabled by setting CR4.PAE to
1. Activating long mode before enabling PAE causes a
general-protection exception (#GP) to occur.
[7] Volume 3A: System Programming Guide, Part 1 (PDF).
Intel 64 and IA-32 Architectures Software Developers
Manual. Intel Corporation. January 2015. pp. 419
through 429. Retrieved 2015-02-07. A logical processor uses IA-32e paging if CR0.PG = 1, CR4.PAE = 1, and
IA32_EFER.LME = 1.
[8] Microsoft Sysinternals: Coreinfo. Windows Sysinternals. Microsoft. 19 December 2013. Retrieved 20 April
2014.
[9] Detecting your Hardware. Gentoo. October 8, 2008.
Retrieved 2013-04-28.
See also
Page Size Extension
PCI hole
PSE-36
Architecture of Windows NT
3 GB barrier
Large Physical Address Extension (LPAE) in the
ARM architecture
References
[1] T. Shanley (1998). Pentium Pro and Pentium II System Architecture. Addison-Wesley Professional. p. 439. ISBN
978-0-201-30973-7.
[2] Operating Systems and PAE Support. Hardware Developers Center. 14 July 2006. Retrieved 20 April 2014.
[3] AMD Athlon 500 - AMD-K7500MTR51B C. Cpuworld.com. 26 March 2014. Retrieved 20 April 2014.
[4] AMD-762 System Controller (p. 2): Supports up to 4
Gbytes of memory
[5] AMD Corporation (September 2012). Volume 2: System Programming (PDF). AMD64 Architecture Programmers Manual. AMD Corporation. Retrieved 201502-07.
8 FURTHER READING
Further reading
Intel 64 and IA-32 Architectures Software Developers Manual, Volume 3A: System Programming
Guide, Part 1. Intel. 11 February 2014.
Physical Address Extension. MSDN. Microsoft.
9.1
Text
9.2
Images
9.3
Content license