Physical Address Extension

PAE was first introduced by Intel in the Pentium Pro, and later by AMD in the Athlon processor.

PAE was first implemented in the Intel Pentium Pro in 1995,[3] although the accompanying chipsets usually lacked support for the required extra address bits.

When AMD defined their 64-bit extension of the industry standard x86 architecture, AMD64 or x86-64, they also enhanced the paging system in "long mode" based on PAE.

In the initial implementations of PAE the page frame number field was expanded from 20 to 24 bits.

Operating systems supporting this mode use page tables to map the regular 4 GB virtual address space into the physical memory, which, depending on the operating system and the rest of the hardware platform, may be as big as 64 GB.

Later work associated with AMD's development of x86-64 architecture expanded the theoretical possible size of physical addresses to 52 bits.

Control register CR3 holds the page-aligned physical address of a single 4 KB long page directory.

Because this allows only one half of the entries of the original scheme, an extra level of hierarchy has been added, so the system register CR3 now points physically to a Page Directory Pointer Table, a short table containing four pointers to page directories.

A free-of-charge program for Microsoft Windows is available which will list many processor capabilities, including PAE support.

To run the processor in PAE mode, operating system support is required.

To use PAE to access more than 4 GB of RAM, further support is required in the operating system, in the chipset, and on the motherboard.

Nevertheless, even if no more than 4 GB of RAM is available and accessible, a PAE-capable CPU may be run in PAE mode, for example to allow use of the No execute feature.

According to Microsoft Technical Fellow Mark Russinovich, some drivers were found to be unstable when encountering physical addresses above 4GB.

Windows 8 and later releases will only run on processors which support PAE, in addition to NX and SSE2.

[23] The Linux kernel includes full PAE-mode support starting with version 2.3.23,[24] in 1999 enabling access of up to 64 GB of memory on 32-bit machines.

The NX bit feature requires a kernel built with PAE support.

[25] Linux distributions now commonly use a PAE-enabled kernel as the default, a trend that began in 2009.

[26] As of 2012[update] many, including Ubuntu (and derivatives like Xubuntu and Linux Mint),[27][28] Red Hat Enterprise Linux 6.0,[29] and CentOS, have stopped distributing non-PAE kernels, thus making PAE-supporting hardware mandatory.

ArcaOS has limited support for PAE for the purpose of creating RAM disks above the 4 GB boundary.

No PAE, 4 KB pages
No PAE, 4 MB pages
With PAE; 4 KB pages
With PAE; 2 MB pages