Physical Address Extension

from Wikipedia, the free encyclopedia

Physical Address Extension (PAE, English for extension (of) physical addressing ) is a technical extension in the field of computer architecture . With PAE in the 32- bit mode of x86 -compatible CPUs, more physical main memory can be addressed than the 4  GiB that can be reached via a 32-bit address register. The working memory that can be used for a process remains limited to 4 GiB with a linear memory model ("flat memory"). The process is used with processors from Intel Pentium Pro and AMD Athlon . Special expansions in the paging unit of the CPU ensure that longer physical addresses can be generated.

term

The term is rarely used with a hyphen ("physical address extension"), which is theoretically the correct spelling according to English. Grammar and is mainly used by AMD. However, the spelling without a hyphen is predominant.

Hardware support

Schematic representation of the conversion from linear to physical addresses for x86-compatible CPUs in 32-bit protected mode. Page size: 4 KiByte, with PAE.
processor address
lines
theoretically addressable
physical memory
i386 to Intel Pentium 32 0.000.004 GiB (no PAE)
Intel Pentium Pro to Intel Core 2 36 0.000.064 GiB
Intel Xeon 38 0,000.256 GiB
AMD Athlon 64 (K8) 40 0.001,024 GiB = 0.001 TiB
AMD K10 architecture 48 0.262,144 GiB = 0.256 TiB
theoretical limit of PAE 52 4,194,304 GiB = 4,096 TiB

x86 processors that support PAE have an advanced paging unit. The paging unit (shown in the graphic) converts the linear address into the physical address. To activate PAE, the operating system must set bit 5 in control register CR4.

When the PAE is activated, the page directory and page table tables (PD and PT) of the paging unit manage address entries with a width of 64 bits instead of 32 bits (some bits are used for management for each address entry so no address in the strict sense).

64-bit entry in the Page directory entry
Bits: 63 62… 52 51… 32
Content: NX reserved Bit 51… 32 of the base address
Bits: 31… 12 11… 9 8th 7th 6th 5 4th 3 2 1 0
Content: Bit 31… 12 of the base address AVL ig 0 ig A. PCD PHE U / S R / W P

So that the size of the tables remains unchanged at 4 KiB, the PD and the PT each manage only half of the entries (512 instead of 1024). In order to compensate for the decrease to a quarter of the possible address entries, the PD-PT combination is preceded by a further, so-called page directory pointer table, which can address 4 PDs instead of one PD.

The specified theoretically addressable memory quantities of the physical memory are maximum values. As a rule, however, only less memory can be used, as some address areas are used for overlaying hardware memory. In Microsoft Windows, you can see how much memory is actually available to the operating system in the computer properties. Only in the ideal case does this number correspond to the installed RAM. It must also be noted that many Windows versions have arbitrary memory limits, which also depend on the edition. All client versions of 32-bit editions are e.g. B. limited to 4 GiB.

Operating system support

To use PAE, it must also be supported by the operating system . However, PAE leads to longer access times due to virtual memory management , paging and 32-bit PCI access, which would not be necessary if the main memory was limited to 4 GiB.

On most computers, PAE is still activated, as the no-execute bit can only be used when the PAE is activated . This is intended to prevent malware from being smuggled into data areas that could lead to a virus attack on the computer. For this purpose, the corresponding data areas are marked as "not executable". If there is a jump to an address in such an area, a protection fault occurs and the corresponding program is stopped. Since some software that was not properly programmed would no longer work as a result, it is only switched on by default for processes within the operating system in Microsoft Windows. As a result, the originally intended higher security is only achieved for OS-specific functions.

BSD family

FreeBSD supports PAE in the 4.x series from 4.9, in the 5.x series from 5.1 and in all 6.x versions and all later versions. The PAE configuration option is required in the kernel. Loadable kernel modules can only be loaded into a kernel with activated PAE if the modules were created with activated PAE. Not all drivers support more than 4 GiB of RAM; in a system with activated PAE, such drivers do not run properly. NetBSD and OpenBSD (so far only in -current ) also support PAE. All address the entire 64 GiB address space.

Haiku

Haiku supports PAE from version Haiku R1 Alpha 3.

Linux

The Linux kernel contains full PAE support from version 2.3.23. PAE has been included by default in many Linux distributions since 2009 because PAE is required for the NX bit .

macOS

macOS for Intel Macs supports PAE and the NX bit from the first Intel version, Mac OS X Tiger (version 10.4.4) from January 2006, on all x86 processors supported by Apple . Mac Pro series models have been shipped with up to 64 GiB RAM since 2008.

Solaris

Solaris supports PAE version 7 and higher.

Windows

PAE is supported by Microsoft Windows from version 2000 (Professional and higher) and XP (all variants) and must usually be activated by a boot option. However, the maximum usable main memory is limited to 4 GB with the 32-bit desktop versions even with activated PAE. On the one hand, this is explained by the fact that it is probably part of Microsoft's marketing policy. Microsoft, on the other hand, justifies this restriction with the fact that some of the device drivers used would cause problems when accessing memory areas beyond 4 GB.

Applications may be able to take advantage of extended memory through Address Windowing Extension (AWE), depending on their hardware and operating system . Depending on the Windows version, additional service packs may have to be installed. There are also some unofficial patches for 32-bit Vista and Windows 7 that enable use of up to 64 GB.

See also

Individual evidence

  1. support.amd.com (PDF)
  2. Release Notes: Haiku R1 Alpha 3 (June 18, 2011)
  3. geoffchappell.com
  4. ^ Mark Russinovich: Pushing the Limits of Windows: Physical Memory . July 21, 2008. Retrieved September 4, 2013.
  5. 32 位 Vista / Win 7 4GB 大 内存 补丁 ReadyFor4GB ( Chinese ) April 26, 2009. Retrieved March 17, 2011.
  6. Unawave: Windows 7 32-bit with full 4 GB or 8 GB RAM support . Retrieved July 11, 2010.