Fact-checked by Grok 2 weeks ago

Physical Address Extension

Physical Address Extension (PAE) is a memory management feature in the x86 processor architecture that extends the physical address space beyond the standard 32-bit limit of 4 gigabytes (GB), enabling access to up to 64 GB of physical memory through a modified paging mechanism using 64-bit page table entries and an additional level of page tables known as the page directory pointer table (PDPT). Introduced by with the Pentium Pro processor in 1995, PAE was designed to address the growing demand for larger memory capacities in and environments while maintaining compatibility with existing 32-bit software. It achieves this by supporting 36-bit physical addresses initially, structured through a three-level : the PDPT (with four 64-bit entries), page directories, and page tables, each contributing to the address translation process. PAE is enabled by setting bit 5 (PAE) in the CR4 , in conjunction with paging enabled via CR0.PG, and requires operating system support to utilize the extended addressing. In practice, PAE has been widely adopted in 32-bit versions of operating systems like , , , and Server editions, where it allows systems to address more than 4 GB of without expanding the 32-bit per process, which remains limited to 4 GB. On capable x86 processors from both and , PAE supports larger page sizes such as 2 MB for improved performance in memory-intensive applications, and it integrates with security features like the No-Execute ( for data execution prevention (DEP). Although largely superseded by 64-bit architectures like (which support up to 48 or 52 bits natively), PAE remains relevant for legacy 32-bit systems, virtualization environments using Extended Page Tables (EPT), and scenarios requiring hot-add memory or (NUMA) configurations.

Background

x86 Memory Addressing Basics

In the x86 architecture, memory addressing in relies on to provide an between the programs' view of memory and the actual physical hardware, enabling features such as multitasking, , and efficient use of limited through demand paging to secondary storage. This is achieved via two complementary mechanisms: segmentation and paging. Segmentation divides the into variable-sized, protected regions called segments, defined by descriptors in tables such as the (GDT) or Local Descriptor Table (LDT); a is formed by a segment selector (from a segment register like or ) and an offset, which the processor translates into a linear address by adding the segment's base address while enforcing privilege levels (e.g., current privilege level or CPL against descriptor privilege level or DPL). In practice, modern operating systems often employ a flat memory model where segments span the entire with a base of zero, minimizing segmentation's role and relying primarily on paging for isolation. Paging further translates the linear address into a physical address, dividing the 32-bit virtual address space—which totals 4 GB (2³² bytes, ranging from 0x00000000 to 0xFFFFFFFF)—into fixed-size pages for granular management and mapping to physical memory. Enabled by setting the PG flag in control register CR0, paging uses a two-level hierarchy: the page directory (a 4 KB table with 1024 32-bit entries, located at the physical address in CR3) points to page tables, each of which is another 4 KB table containing 1024 32-bit entries that map individual 4 KiB pages (2¹² bytes) to physical page frames. A 32-bit linear address is split into three parts: the upper 10 bits index the page directory entry (PDE), the middle 10 bits index the page table entry (PTE), and the lower 12 bits serve as the offset within the 4 KiB page; the PTE provides the 20-bit physical page frame number (shifted left by 12 bits), yielding a 32-bit physical address in standard mode. To optimize performance, the (TLB)—a hardware cache in the —stores recent translations from page tables, avoiding repeated accesses to the directory and tables for frequently used addresses; TLB entries can be invalidated via instructions like INVLPG or by reloading CR3 during context switches. If a translation fails—such as when a page is not present (P flag = 0 in the PTE or PDE), access violates protection rules, or a reserved bit is set—the generates a exception (#14 or #PF), providing an to the operating system handler to resolve the issue, such as loading a page from disk. Memory protection is enforced through attributes in segment descriptors and paging structures, including read/write (R/W bit: 0 for read-only, 1 for read/write), user/supervisor (U/S bit: 0 for supervisor-only, 1 for user-accessible), and present/not present flags, which collectively prevent unauthorized access based on privilege levels and operation types (e.g., write to a read-only page). Additional flags like (page cache disable) and PWT (page write-through) control caching behavior, while later extensions such as execute-disable ( bit, enabled via IA32_EFER.NXE) allow marking pages as non-executable to enhance security against . Physical Address Extension (PAE) builds upon these foundations to support larger physical address spaces beyond 32 bits.

Standard 32-bit Paging Limitations

In standard 32-bit x86 paging without Physical Address Extension (PAE), the architecture limits physical addresses to 32 bits, allowing a maximum of 4 GB (2^{32} bytes) of physical memory to be addressed. This constraint arises from the use of 32-bit physical address fields in paging structures, such as page directory and page table entries, which map linear addresses to physical locations within this range. This 4 GB ceiling prevented systems from utilizing more than that amount of RAM, resulting in memory exhaustion for workloads requiring larger capacities, particularly in server environments handling databases, virtualization, or multiple concurrent processes. As DRAM prices declined in the mid-1990s, midrange servers commonly equipped with 2-4 GB of memory encountered frequent out-of-memory conditions, forcing administrators to implement workarounds like partitioning applications across multiple machines or using inefficient memory-sharing techniques. In high-memory scenarios, such as early enterprise databases or scientific computing tasks, this limitation often led to application crashes, system instability, or severe performance degradation due to excessive paging to disk. Pre-2000s 32-bit operating systems, such as and early distributions on x86, amplified these issues in production servers, where exceeding the addressable limit could halt operations without graceful degradation, contributing to in data centers before extensions like PAE became widespread. For instance, programs designed for growing needs frequently failed when total approached or surpassed 4 , requiring code rewrites or downgrades to maintain . While the Page Size Extension (PSE) allowed for 4 MiB pages in non-PAE mode to reduce translation overhead and improve performance for large contiguous allocations, this feature offered only marginal scalability within the overarching 4 GB physical limit, as it did not expand the addressable space and still required consistent memory types across pages. PAE addresses these constraints by extending physical addressing to 36 bits, enabling up to 64 GB of RAM.

History

Development and Introduction

In the mid-1990s, the rapid decline in prices and the growing demands of applications, such as databases and enterprise workloads, began to exceed the 4 GB physical memory limit imposed by standard 32-bit x86 addressing, prompting to develop Physical Address Extension (PAE) as a solution to enable larger memory configurations without transitioning to a full 64-bit . PAE was introduced in 1995 alongside the , which featured a 36-bit physical address bus to support up to 64 GB of physical memory, addressing the needs of high-end workstations and where memory-intensive tasks were becoming commonplace. This extension allowed 32-bit operating systems to utilize expanded physical memory while maintaining compatibility with existing software ecosystems. The first formal specification of PAE appeared in Intel's Pentium Pro Family Developer's Manual (Volume 1: Specifications, 1996), which detailed the 36-bit addressing mechanism, including ASZ[1:0]# signals for distinguishing 32-bit (up to 4 ) and 36-bit (up to 64 ) address spaces, and integration with enhanced paging structures to manage the extended range. Key aspects included support for memory transactions via REQa[4:0]# signals and compatibility with both 32-bit and 36-bit agents on the , ensuring scalability for environments. followed suit by adopting PAE in its processors, launched in June 1999, extending the feature to competitive x86 implementations and broadening hardware availability. Despite its technical promise, PAE faced initial challenges due to limited operating system support, which delayed its widespread adoption in the late 1990s and early 2000s. Full integration arrived with in 2000, enabling reliable access to more than 4 GB on supported hardware. Similarly, the introduced preliminary PAE support in version 2.3.23 (1999), but practical, stable implementation for general use solidified in kernel 2.6 series around 2003, requiring compatible distributions and drivers to fully leverage the extension. These delays meant that many early PAE-capable systems operated under the 4 GB constraint until OS vendors updated their kernels and routines.

Evolution in Processor Generations

Following its introduction in the Intel Pentium Pro processor in 1995, Physical Address Extension (PAE) saw expanded adoption across subsequent x86 processor generations, enabling 36-bit physical addressing to support up to 64 GB of RAM in 32-bit environments. Intel integrated PAE into the Pentium II in 1997 as part of the P6 microarchitecture family, providing consistent support for enhanced paging structures in desktop and early server applications. This was further refined in the Pentium III in 1999, where PAE combined with the new Page Attribute Table (PAT) for improved memory typing and cache control, alongside the introduction of Streaming SIMD Extensions (SSE) for vector processing, though SSE itself did not directly alter PAE functionality. In parallel, extended PAE to its server-oriented processors starting with the in , targeting multi-processor systems that benefited from larger memory capacities beyond the 4 limit of standard 32-bit paging. implementations maintained the 36-bit addressing of the P6 family, with PAE enabling scalable memory configurations in enterprise environments, and later generations like the in 1999 incorporating for finer-grained memory attribute management. AMD entered the PAE ecosystem with its K7 architecture in the processor family starting in 1999, marking the first implementation and aligning with Intel's P6 extensions to support 36-bit physical addressing. This was advanced in the K8 architecture with the and processors in 2003, where PAE expanded to 40-bit addressing for up to 1 TB of physical memory, integrating seamlessly with the new AMD64 64-bit mode while retaining for 32-bit PAE paging. A key evolution occurred in 2003 when AMD's introduced the No-eXecute ( as part of AMD64, requiring PAE mode in 32-bit operations to enforce non-executable memory pages for , a feature later adopted by in its processors. This integration enhanced PAE's role in modern protection mechanisms, with SSE instructions from Pentium III-era processors continuing to coexist in PAE-enabled environments without modifying the core addressing logic. By the 2010s, PAE's prominence waned as 64-bit architectures like Intel 64 and AMD64 dominated, offering vastly larger address spaces without the overhead of PAE's three-level paging in 32-bit mode. Nonetheless, PAE persisted in embedded and legacy x86 systems through 2025, with ongoing improvements for 32-bit PAE support to handle memory-constrained environments exceeding 4 GB.

Design Principles

Physical Address Expansion

The Physical Address Extension (PAE) enables the architecture to support physical addresses beyond the standard 32-bit limit by extending them to 36 bits. This extension is activated by setting bit 5 (PAE) in the , which allows the processor to generate physical addresses up to 36 bits wide while operating in 32-bit paging. As a result, systems can address a maximum of $2^{36} bytes, or 64 GiB, of physical memory, calculated as $2^{32+4} bytes to reflect the four additional address bits. In PAE mode, the additional physical address bits 32 through 35 are incorporated into the page table entries to reference memory regions above the 4 GiB boundary. These bits enable mapping of 32-bit virtual addresses to physical locations in the expanded space, particularly for higher memory areas that would otherwise be inaccessible in non-PAE configurations. The mechanism ensures that the remains limited to 32 bits, preserving the 4 GiB per-process addressing model without requiring changes to . This design maintains full with existing 32-bit operating systems and applications, as PAE operates transparently within the legacy when paging is enabled (CR0.PG=1) and is not (IA32_EFER.LME=0). By extending only the physical addressing capability, PAE allows servers and workstations to utilize larger amounts of RAM for tasks like or database management without disrupting the established 32-bit software ecosystem.

Modifications to Paging Structures

The Physical Address Extension (PAE) modifies the x86 paging mechanism in 32-bit by introducing a three-level paging hierarchy to accommodate physical addresses beyond 32 bits, up to 36 bits, while maintaining compatibility with existing software interfaces. This structure consists of a page directory pointer table (PDPT) with four 64-bit entries, each pointing to a page directory () containing 512 page directory entries (PDEs), each of which points to a containing 512 page table entries (PTEs) for 4 KiB pages or directly to a 2 page if large pages are enabled; the in turn indexes () for 4 KB pages. Each paging entry is expanded to 64 bits to encode the extended physical address bits, with the linear address divided into 2 bits for PDPT indexing, 9 bits for , 9 bits for , and 12 bits for the page offset. These changes enable mapping of up to 64 GB of physical memory without altering the 32-bit . A key alteration is to the CR3 control register, which, when PAE is active, holds the physical base address of the PDPT rather than a page directory, with bits 31:5 specifying the address and bits 4:0 reserved as zero. Enabling PAE requires setting bit 5 (PAE) in the CR4 control register to 1, which activates the new paging mode and loads the four PDPT entries into internal registers upon the next to CR3; this transition flushes the (TLB) to ensure consistency. The CR4 PSE (page size extension) bit (bit 4) interacts with PAE by enabling support for 2 MB large pages via the PS (page size) bit in page directory entries, reducing TLB pressure for contiguous regions, though 4 MB pages are not supported in PAE mode. Additionally, PAE integrates with the PSE-36 mode, a processor-specific extension (indicated by CPUID feature bit 17) that allows 36-bit physical addressing for 4 MB pages in non-PAE paging when CR4.PSE is set and CR4.PAE is cleared, modifying page directory entries to include bits 35:32 for the upper address bits. Regarding TLB handling, PAE requires the TLB to cache 64-bit entries and extended physical translations, with invalidations triggered by INVLPG instructions, CR3 loads, or CR4 modifications; global page entries (enabled by CR4.PGE bit 7) remain resident across context switches to optimize performance. These adjustments ensure backward compatibility while extending addressable memory, though mode switches between standard and PAE paging necessitate full TLB flushes.

Page Table Structures

32-bit Paging with 4 KiB Pages without PAE

In the standard 32-bit paging mechanism without Physical Address Extension (PAE), memory management employs a two-level hierarchy to translate 32-bit virtual addresses to 32-bit physical addresses, supporting a total physical address space of 4 GB (2^32 bytes). Paging is enabled by setting the PG bit in the CR0 register, and the base address of the page directory is stored in the CR3 register (bits 31:12, page-aligned to 4 KiB). This setup uses 4 KiB pages, providing fine-grained memory allocation while mapping the entire 4 GB virtual address space. The top level consists of a page directory, which is a single 4 KiB page containing 1,024 entries (each 4 bytes), indexed by the upper 10 bits (31:22) of the virtual address. Each page directory entry (PDE) points to a when the page size bit (PS, bit 7) is 0, providing the 20-bit physical base address (bits 31:12) of a 4 KiB , along with control flags. The s form the second level, with each being a 4 KiB page holding 1,024 entries (each 4 bytes), indexed by the next 10 bits (21:12) of the virtual address. A single maps 4 MiB of (1,024 × 4 KiB), and up to 1,024 such tables can cover the full 4 GB. Page directory entries and page table entries share a similar 32-bit format, combining a 20-bit physical base address (shifted left by 12 bits to align to 4 KiB boundaries) with flags for protection, caching, and usage tracking. The following table outlines the key bits in these entries:
Bit(s)FieldDescriptionApplies to PDE/PTE
31:12Physical Base Address20-bit base address of the page table (PDE) or 4 KiB page (PTE), page-aligned.Both
11ReservedMust be 0.Both
10:9AvailableFor OS/software use.Both
8Global (G)1 = Global page (TLB entry not invalidated on task switch); 0 = Non-global.Both
7Page Size (PS)0 = Points to page table (PDE only); must be 0 for PTE.PDE only
6Dirty (D)1 = Page has been written to (hardware-set on write); 0 = Clean.PTE only
5Accessed (A)1 = Page has been read/written (hardware-set); 0 = Not accessed.Both
4Cache Disable (PCD)1 = Caching disabled for the page; 0 = Caching enabled.Both
3Write-Through (PWT)1 = Write-through caching policy; 0 = Write-back.Both
2User/Supervisor (U/S)1 = Accessible in user mode; 0 = Supervisor mode only.Both
1Read/Write (R/W)1 = Writable; 0 = Read-only.Both
0Present (P)1 = Entry maps a valid page; 0 = Page not present (triggers page fault).Both
The virtual-to-physical address translation process splits the 32-bit virtual address into three fields: bits 31:22 (directory index, 10 bits), bits 21:12 (table index, 10 bits), and bits 11:0 (page offset, 12 bits, since 2^12 = 4 KiB). The processor first loads the page directory base from CR3, uses the directory index to fetch the PDE, and if present (P=1), retrieves the page table base from the PDE. The table index then selects the PTE from that page table; if the PTE is present, its base address is combined with the offset to yield the final 32-bit physical address. This mechanism relies on the translation lookaside buffer (TLB) for performance, caching recent translations, but invalidations occur on CR3 loads or via INVLPG instructions. This 32-bit limit became a constraint for systems exceeding 4 GB of RAM, motivating extensions like PAE.

32-bit Paging with 4 MiB Pages without PAE

In 32-bit x86 paging without Physical Address Extension (PAE), the Page Size Extension () feature enables the use of 4 pages through a one-level paging mechanism, where Page Directory () entries directly map these larger pages when the PSE bit is set. This mode requires CR4.PSE to be enabled (bit 4 set to 1) and operates with CR0.PG enabled for paging and CR4.PAE disabled. The linear virtual address is translated by indexing the PD (located via CR3) using bits 31:22, with the selected PD entry providing the physical base address and the remaining address bits (21:0) serving as the offset within the 4 MiB page. Each entry is a 32-bit that, when is active, specifies a 4 physical page covering 2^{22} bytes. The entry format includes a 32-bit physical base address shifted left by 22 bits (effectively using bits 31:22 of the entry for the upper address bits, requiring 4 MiB alignment), along with control bits for attributes like presence, access rights, and caching. The bit (bit 7) in the PD entry indicates the large page size, distinguishing it from the default 4 KiB pages used in two-level paging.
Bit PositionFlag/FieldDescription
0Present (P)Indicates if the page is present in .
1Read/Write (R/W)0 for read-only, 1 for read/write .
2User/Supervisor (U/S)0 for supervisor only, 1 for user .
3Page-Level Write-Through (PWT)Controls write-through caching behavior.
4Page-Level Cache Disable (PCD)Disables caching for the page if set.
5Accessed (A)Set by hardware on .
6Dirty (D)Set by hardware on write (for 4 KiB pages only; ignored for 4 MiB).
7Page Size (PS, formerly PSE)1 for 4 MiB page, 0 for 4 KiB (requires CR4.PSE=1).
8 (G)Indicates global page if CR4.PGE=1.
9-11ReservedMust be 0.
12Page Attribute Table ()Extended caching if supported.
13-21ReservedMust be 0.
22-31Physical Base AddressUpper 10 bits of the 32-bit base address.
This large-page approach reduces (TLB) pressure by requiring fewer entries to cover the same and shortens page walks to a single level for contiguous memory regions, enhancing performance in scenarios like mappings or large data structures. However, it remains limited to a 4 GB space without PAE, and physical base addresses must be aligned to 4 boundaries to avoid invalid mappings. In contrast to the small-page (4 KiB) variant, which uses two-level paging for finer , the 4 MiB mode prioritizes efficiency over precise control.

32-bit Paging with 4 KiB Pages with PAE

In 32-bit paging with Physical Address Extension (PAE) enabled for 4 KiB pages, the x86 architecture employs a to translate 32-bit linear addresses into physical addresses supporting up to 36 bits. This structure replaces the of non-PAE paging, which uses 1024-entry page directories and tables with 4-byte entries, by introducing larger 8-byte entries to accommodate extended physical addressing while maintaining compatibility with 4 KiB page granularity. The top level of this hierarchy is the Page Directory Pointer Table (PDPT), a small table with exactly 4 entries, each 64 bits (8 bytes) in size, for a total size of 32 bytes. The physical base address of the PDPT is loaded into the CR3 control register, and it is indexed by bits 31:30 of the 32-bit linear virtual address, allowing selection of one of the four possible page directories for the upper 1 GiB of the virtual address space. Each valid PDPT entry contains a 32-bit (later extended) physical base address of a page directory, aligned to a 32-byte boundary, along with control bits such as the present (P) bit and page-level write-protect (PS) bit; if the present bit is clear, a page fault occurs. The second level consists of the Page Directory (PD), which has 512 entries when PAE is active, each also 64 bits wide, fitting within a standard 4 KiB page (4096 bytes). The PD is indexed by virtual address bits 29:21 (9 bits), selecting one of the 512 possible page tables that map the middle portion of the . For 4 KiB pages, the page-size (PS) bit in each PD entry must be 0, indicating a pointer to a page table rather than a direct 2 MiB mapping; the entry includes a physical base address (up to 36 bits) for the page table, aligned to 4 KiB, plus flags for attributes like user/supervisor access and caching controls. If the PS bit is set, the structure supports larger pages, but this mode is distinct and not used here. At the third level, the Page Table (PT) similarly contains 512 64-bit entries within a 4 KiB page, indexed by virtual address bits 20:12 (another 9 bits), to resolve the final 4 KiB page frame. Each PT entry provides the physical base address of the target page (bits 35:12 for 36-bit addressing, aligned to 4 KiB), combined with the 12-bit page offset (bits 11:0 of the virtual address) to form the complete . PT entries include protection bits (e.g., read/write, user/) and are checked for validity via the present bit; invalid entries trigger page faults handled by the operating system. This design ensures that the entire 4 GiB can be mapped to up to 64 GiB of using 4 KiB pages. The address translation process begins with the loading the PT base from CR3, then using bits 31:30 to fetch the relevant PD base from the PDPT. Next, bits 29:21 index the PD to obtain the PT base, and finally, bits 20:12 index the PT to yield the page frame, which is concatenated with bits 11:0 for the . This multi-level traversal occurs on every memory access when paging is enabled (via the PG bit in CR0), with the PAE bit in CR4 activating the extended format; optimizations like the TLB subsequent translations to minimize overhead.

32-bit Paging with 2 MiB Pages with PAE

In 32-bit paging with Physical Address Extension (PAE) enabled, support for 2 MiB pages utilizes a simplified two-level paging hierarchy consisting of a Page Directory Pointer Table (PDPT) and a Page Directory (PD), omitting the Page Table (PT) level to map larger memory regions efficiently. The PDPT is a small structure with four 64-bit entries, totaling 32 bytes and aligned on a 32-byte boundary, while the PD contains 512 64-bit Page Directory Entries (PDEs) and spans 4 KiB, aligned on a 4 KiB boundary. The physical base address of the PDPT is loaded into CR3, with bits 31:5 specifying the address and the remaining bits reserved. This configuration allows the processor to address up to 64 of physical memory, as each of the four PDs can map 512 × 2 = 1 , for a total of 4 per PDPT entry across four directories. The key mechanism for enabling 2 MiB pages is the Page Size (PS) bit (bit 7) in each PDE, which, when set to 1, indicates that the entry directly maps a 2 MiB page rather than pointing to a PT for finer-grained 4 KiB mappings. With PS=1, the PDE provides the physical base address of the 2 MiB page, which must be aligned on a 2 MiB boundary (bits 20:0 of the physical address are implicitly zero). The base address field occupies bits 51:21 of the 64-bit PDE, supporting a 36-bit physical address space characteristic of PAE; specifically, bits 51:36 are reserved (must be 0), leaving bits 35:21 to specify the 15 most significant bits of the 36-bit address (bits 35:0 overall, with alignment ensuring coverage for 2^{21}-byte pages). Other PDE bits control attributes such as present (P, bit 0), read/write (R/W, bit 1), user/supervisor (U/S, bit 2), accessed (A, bit 5), and execute disable (XD, bit 63), with the dirty (D, bit 6) bit unused for large pages. This direct mapping bypasses the third level, reducing translation latency and TLB usage compared to the full three-level structure used for 4 KiB pages in PAE. The advantages of this approach include lower overhead from fewer paging levels, which minimizes memory consumption for page tables (only PDPT and PD needed) and decreases TLB misses for applications with large contiguous memory allocations. It supports the full 64 GB addressable by PAE while enforcing 2 MiB alignment, making it suitable for optimizing performance in scenarios like database servers or virtual machines where superpages reduce fragmentation. In contrast to the three-level setup for 4 KiB pages, this variant streamlines address translation for bulk mappings. Processor support for PAE, including 2 MiB pages, is detected using the instruction: executing with =1 returns bit 6 (PAE) set to 1 if available. Enabling occurs by setting CR4 bit 5 (PAE) to 1 after ensuring CR0 bit 31 (PG) is 1 for paging, with CR3 updated to point to the PDPT base; the processor then uses this mode for 32-bit linear addresses unless is activated.

Summary of 32-bit Paging Variants

The 32-bit paging variants in x86 architecture provide flexible options, balancing limitations, performance, and hardware requirements through configurations with and without Physical Address Extension (PAE). Without PAE, systems are restricted to two-level paging structures supporting up to 4 GiB of physical , while PAE introduces a three-level hierarchy to extend this to 64 GiB using 36-bit physical addresses. These modes differ in page sizes, entry formats, and efficiency, influencing their suitability for various workloads. The following table summarizes the key attributes of the primary 32-bit paging variants, highlighting levels, page sizes, maximum memory, TLB efficiency considerations, and typical use cases:
VariantPage Table LevelsPage Sizes SupportedMaximum Physical MemoryTLB Efficiency NotesUse Cases
4 KiB pages without PAE2 (Page Directory + )4 KiB4 GiB (32-bit addresses)Higher TLB pressure due to more entries for small pages; separate TLBs for 4 KiB vs. large pagesLegacy 32-bit systems with fine-grained memory allocation and low fragmentation needs
4 MiB pages without PAE2 (Page Directory only for large pages)4 MiB (with PSE)4 GiB (32-bit addresses; 64 GiB with PSE-36)Improved efficiency with fewer TLB entries for contiguous regions; global pages reduce flushesPerformance-critical applications requiring large contiguous allocations in memory-constrained environments
4 KiB pages with PAE3 ( Table + Page Directory + )4 KiB64 GiB (36-bit addresses)Increased overhead from additional level but supports execute-disable for security; TLB misses more costlyExtended memory systems needing precise protection and isolation, such as servers
2 MiB pages with PAE3 ( Table + Page Directory only for large pages)2 MiB (with PS flag)64 GiB (36-bit addresses)Better TLB utilization than 4 KiB for medium-sized allocations; mitigates pressure in high-memory scenariosWorkstations or servers with moderate fragmentation, balancing granularity and speed
Key differences across these modes include entry sizes and address bit handling: non-PAE variants use 4-byte page directory and table entries with 32-bit physical addresses (extended to 36 bits via PSE-36 in large-page ), whereas PAE employs 8-byte entries to accommodate 36-bit physical addresses, enabling the higher ceiling at the cost of larger structures. TLB efficiency generally favors larger pages (4 or 2 ) across both PAE and non-PAE, as they require fewer translations and reduce miss rates, though PAE's extra level can introduce slight overhead in small-page scenarios. Non-PAE modes are typically used for 32-bit compatibility in resource-limited setups, while PAE variants are preferred for demands in pre-64-bit environments, such as early deployments exceeding 4 GiB. These 32-bit approaches laid foundational principles later integrated into paging for broader .

x86-64 Paging Integration

In processors, legacy mode maintains compatibility with 32-bit by utilizing the Physical Address Extension (PAE) paging structures, which enable access to up to 64 GB of physical memory through a three-level of page directory pointer tables (PDPTs), page directories (PDs), and s (PTs). This setup requires setting the PAE bit (bit 5) in the CR4 register to activate 64-bit page table entries while preserving 32-bit virtual addressing. The of extends PAE's three-level structure to a four-level paging , incorporating a above the PDPT, PD, and PT levels, to support canonical 48-bit virtual addresses addressing up to 256 terabytes. This configuration also accommodates up to 52-bit physical addresses, enabling up to 4 petabytes of physical memory, with all entries formatted as 64 bits to handle the expanded . In , the CR3 points to the base address of the PML4 table, and paging is enabled via CR0.PG=1 after PAE activation. PAE serves as a mandatory prerequisite for into , where the CR4.PAE bit must be set to 1 prior to enabling the long mode enable (LME) bit in the extended feature enable register (EFER). This sequence ensures the processor transitions from legacy PAE paging to the extended four-level structure without disrupting . Key differences between PAE in legacy mode and its integration in include the addition of the PML4 level, the use of 64-bit entries throughout for , and the dramatic expansion of addressable from 32-bit virtual/36-bit physical to 48-bit virtual/52-bit physical. further supports 1 GB pages in addition to 4 KiB and 2 MiB pages, enhancing efficiency for large memory allocations.
AspectLegacy Mode with PAELong Mode Paging
Paging Levels3 (PDPT, PD, PT)4 (PML4, PDPT, PD, PT)
Virtual Address Bits3248 (256 TB)
Physical Address Bits36 (64 GB)52 (4 PB)
Entry Size64 bits (but 32-bit addressing)64 bits
Page Sizes4 KiB, 2 MiB4 KiB, 2 MiB, 1 GiB
This table illustrates the conceptual evolution from PAE's compatibility role to its foundational support for expansive 64-bit in x86-64.

Hardware Implementation

Processor Support Timeline

Physical Address Extension (PAE) support began with Intel's processor, released in 1995, which introduced the feature to expand physical addressing beyond the 4 limit of standard 32-bit paging, allowing up to 64 of physical memory through 36-bit addressing. All subsequent processor families, starting from the in 1997, have included PAE as a standard capability, with full implementation across the , , and microarchitectures. This support persists in modern offerings, including the i series embedded processors, such as those in the 14th-generation family available through 2025 for industrial and embedded applications. AMD introduced PAE with its processor family in 1999, enabling similar 36-bit physical addressing for 32-bit compatibility modes and supporting up to 64 GB of memory. Support expanded with the server processors in 2003, which integrated PAE into AMD's early 64-bit architecture while maintaining legacy 32-bit operation. AMD has continued PAE compatibility in later families, including the processors since 2017, to ensure for 32-bit environments. and other secondary x86 vendors offered limited PAE support in some low-power processors; for instance, the series (2008 onward) included PAE, though the VIA C3 family lacked it.
YearProcessor FamilyVendorMax PAE Memory Supported
199564 GB
199764 GB
199964 GB
200364 GB
2006Core 264 GB
2008VIA64 GB
2008Core i7 (1st gen)64 GB
201764 GB
2025Core i (embedded, e.g., 14th gen)64 GB

Compatibility and Detection

Software detects Physical Address Extension (PAE) support primarily through the instruction. When is set to 1, the instruction returns feature flags in the register, where bit 6 set to 1 indicates PAE capability, allowing physical addresses beyond 32 bits via extended paging structures. This detection is essential for operating systems and bootloaders to determine if PAE-enabled kernels can be loaded. Bootloaders such as perform PAE checks using the cpuid -p command, which returns true if the CPU supports PAE, enabling the bootloader to select appropriate kernel variants. If PAE is unsupported, the bootloader or operating system kernel falls back to non-PAE paging modes to ensure boot compatibility, limiting addressable memory to 4 GB. In multi-socket systems, compatibility issues arise when mixing PAE-capable and non-PAE CPUs, as the operating system requires uniform feature support across all processors for ; presence of a non-PAE CPU forces the entire system to operate in non-PAE mode to avoid inconsistencies. Similar challenges occur in virtualized environments with hypervisor passthrough, where guest VMs inherit PAE exposure from the host CPU, but mismatched configurations—such as running a PAE-requiring 32-bit on a non-PAE-emulated —may necessitate or fallback modes for stability. System administrators can verify PAE support using diagnostic tools. On , the lshw -C cpu | [grep](/page/Grep) capabilities command lists CPU features, including PAE if present. On Windows, running msinfo32 and exporting the system information report allows searching for "Physical Address Extension" to confirm enablement, particularly if total physical memory exceeds 3 GB.

Operating System Support

Microsoft Windows Implementations

In Microsoft Windows implementations, Physical Address Extension (PAE) was introduced to enable 32-bit versions of the operating system to access more than 4 GB of physical memory on compatible hardware. For and , PAE mode is activated using the /PAE boot switch in the , allowing systems to support up to 128 GB of physical , though actual limits depend on the edition and licensing—for instance, Advanced Server is capped at 8 GB and Datacenter Server at 64 GB, while supports up to 4 GB of physical memory, with or without PAE, on supported configurations. Beginning with , PAE became the standard for 32-bit editions configured with more than 4 GB of RAM, enabling access to up to 128 GB of physical memory depending on the edition, such as 4 GB for Standard Edition, 32 GB for Enterprise Edition, and 128 GB for Datacenter Edition. Additionally, hardware-enforced Data Execution Prevention (DEP), which relies on processor features like the , requires PAE mode on 32-bit and later versions to function, automatically enabling PAE when DEP is activated for all programs and services. This integration persisted in subsequent 32-bit server editions, including , where PAE was essential for systems exceeding 4 GB RAM and for DEP enforcement, though 64-bit editions from onward use paging instead of PAE. For and later, including up to 2019, 32-bit installations are not available, rendering PAE irrelevant as these versions exclusively support 64-bit architectures with extended physical addressing. In 32-bit versions of , PAE remains supported but is largely deprecated in practice, with a maximum of 4 GB physical memory addressable regardless of hardware capabilities, as the focus has shifted to 64-bit installations that employ for vastly larger memory spaces. does not offer a 32-bit edition at all, further emphasizing the transition away from PAE-dependent systems. A key limitation of PAE in all 32-bit Windows implementations is that while it expands physical memory access beyond 4 GB, the virtual address space for individual 32-bit applications remains capped at 4 GB (or 2 GB for user-mode processes by default, expandable to 3 GB with the /3GB boot switch), preventing applications from directly utilizing the additional physical RAM without specialized techniques like Address Windowing Extensions (AWE).

macOS and Unix-like Systems

In macOS, Physical Address Extension (PAE) was utilized in 32-bit kernels to extend physical memory addressing beyond the standard 4 GB limit during the transition from PowerPC to x86 architectures, enabling support for up to 32 GB of RAM on compatible Intel-based systems such as early Mac Pros and Xserves. This feature was integral from Mac OS X 10.4 Tiger (2005) through 10.6 Snow Leopard (2009), allowing the operating system to leverage 36-bit physical addressing on IA-32 processors while maintaining compatibility with legacy 32-bit applications and drivers. By macOS 10.7 Lion (2011), Apple shifted exclusively to a 64-bit kernel, rendering PAE obsolete for new installations, though legacy 32-bit kernel options persisted in some configurations until macOS 10.15 Catalina (2019), the final release supporting 32-bit applications. Support for PAE in macOS was particularly relevant for professional workloads requiring substantial memory, such as and , where the extended addressing helped mitigate the 4 GB barrier without a full migration to 64-bit processing. However, individual processes remained limited to approximately 4 GB of under the 32-bit , even with PAE-enabled physical memory expansion. In , a prominent system, PAE is enabled as a build option to allow 32-bit architectures to address more than 4 of physical memory, supporting up to 64 on hardware with compatible processors like and later. This is configured by adding the options PAE directive to a custom derived from the , followed by recompilation and installation, which was common in environments to handle growing memory demands without upgrading to 64-bit amd64 kernels. FreeBSD's implementation ensured compatibility with non-PAE modules by restricting loadable drivers that assume 32-bit addressing, promoting stability in mixed environments. Solaris, another key Unix-like operating system, introduced PAE support starting with version 7 (1998) to overcome the 4 GB physical memory limit on x86 platforms, with Solaris 8 (2000) explicitly adding IA-32 PAE mode to address up to 32 GB of system memory while capping individual processes at 3.5 GB of virtual memory. Kernel options for PAE in Solaris were managed through configuration files like /etc/system, enabling administrators to tune memory mapping for enterprise servers running database and virtualization workloads until the widespread adoption of 64-bit SPARC and x86-64 architectures in the mid-2000s. Across Unix-like systems such as and , enabling PAE typically involves recompilation or boot-time options rather than runtime adjustments via or loader.conf, though loader.conf can set related tunables like memory limits post-boot. This extension positively impacts advanced filesystems like by permitting larger adaptive replacement cache () allocations, enhancing read performance in memory-intensive scenarios such as storage servers, where additional RAM beyond 4 GB directly improves data caching efficiency. As of 2025, PAE remains a legacy feature in macOS and systems, confined to 32-bit x86 environments for maintaining older hardware; Apple's transition to (ARM-based) processors since 2020 has entirely eliminated x86 PAE support, with macOS (15) and later versions optimized exclusively for 64-bit ARM architectures. Similar legacy usage persists in and derivatives for specialized servers, but most deployments have shifted to 64-bit kernels for scalability beyond 64 GB. Parallels exist in features for PAE, though specifics vary by distribution.

Linux Kernel Features

Support for Physical Address Extension (PAE) in the Linux kernel began with version 2.6, released in 2003, where it was integrated as a configurable option for 32-bit x86 (i386) architectures via the CONFIG_X86_PAE kernel configuration parameter. This enabled the kernel to utilize PAE-enabled processors to address up to 64 GB of physical memory by extending the physical address space beyond the standard 32-bit limit of 4 GB. The configuration requires selecting high memory support options, such as CONFIG_HIGHMEM64G, which allocates kernel resources for systems exceeding 4 GB of RAM while mapping only the lower 896 MB directly into the kernel's virtual address space. Prior to kernel 2.6, support for large memory configurations on 32-bit systems relied on experimental patches like the bigmem series applied to the 2.4 kernel series, which introduced high memory (highmem) handling to manage RAM beyond 4 GB using temporary mappings. These patches addressed limitations in the 2.4 memory management by enabling PAE mode and highmem zones, but they were not mainline until integrated into 2.6 as standard features, including HIGHMEM64G for up to 64 GB addressing on suitable hardware. Today, highmem handling is a core part of the kernel for 32-bit builds, eliminating the need for separate patches. Boot-time configuration of PAE-enabled kernels often involves the mem= to specify the total physical limit, such as mem=64G, which overrides automatic detection and ensures compatibility with PAE for large systems. The forcepae can enforce PAE mode on compatible but disabled , though it may taint the and introduce stability risks. PAE integrates with modules like IOMMU (Input-Output Management Unit) drivers, such as Intel's VT-d via intel_iommu=on, by providing the extended physical necessary for secure DMA mappings on systems with more than 4 GB of RAM, preventing conflicts in or device passthrough scenarios. As of 2025, PAE remains enabled in the for 32-bit x86 support, with recent patches improving page table isolation (PTI) compatibility and simplifying PAE-specific code paths to align with non-PAE 32-bit and 64-bit modes, ensuring ongoing viability for hardware. Distributions like continue to offer 32-bit PAE kernels in documentation and builds for systems requiring enforcement via PAE, though full 32-bit ISO support is limited to use cases with recommendations to prefer 64-bit architectures for new deployments. , in its Trixie (13) release, supports i386 as a partial co-architecture for running 32-bit software on amd64 hosts but has deprecated full standalone 32-bit PAE kernels, issuing warnings about transitioning to 64-bit for better performance and .

Other Operating Systems

, an open-source operating system designed for binary with , incorporates Physical Address Extension (PAE) support to emulate the ntkrnlpa.exe kernel variant used on PAE-enabled systems. Initial implementation of PAE was introduced in the 0.4.14 release in 2021 through contributions focused on enhancements. As a 32-bit OS, remains limited to approximately 4 GB of addressable , akin to early Windows 32-bit editions, though PAE enables to additional physical in configurations mirroring Windows requirements. Haiku, an open-source operating system derived from , integrates PAE support in its kernel to extend physical memory addressing beyond the 4 GB limit for desktop environments. This feature, enabled since around 2019 or earlier, utilizes 36-bit physical addressing to support up to 64 GB of system , while maintaining a 2 GB limit per application due to its 32-bit architecture. Users can disable PAE via the for compatibility with non-PAE hardware, such as older 486 processors. The RTOS, targeted at and applications, provides PAE support on x86 platforms for industrial and x86 boards requiring expanded . This allows addressing up to 64 GB of physical on compatible processors, with features including variable page sizes such as 2 MB pages when PAE is active. QNX's extensions facilitate this in selective configurations for high-reliability systems. VMware ESXi, a type-1 , virtualizes PAE for 32-bit operating systems, enabling them to utilize more than 4 of assigned provided the OS supports PAE. This allows 32-bit environments, such as certain Windows editions, to operate with larger allocations—up to 128 in supported cases—while adhering to the 's inherent addressing limits. ESXi's hardware version compatibility ensures PAE passthrough for enhanced performance in virtualized setups.

Modern Relevance and Limitations

Usage in Legacy Systems

Despite the widespread adoption of 64-bit architectures, Physical Address Extension (PAE) persists in legacy 32-bit x86 systems as of 2025, enabling access to more than 4 GB of physical in environments where upgrading to full 64-bit operation is not feasible or cost-effective. This feature remains relevant in embedded and industrial PCs, thin clients, and legacy servers running 32-bit operating systems, such as older versions of Windows or kernels configured for x86 compatibility, allowing these systems to handle increased memory demands without architectural overhauls. These deployments often prioritize stability and compatibility over modern performance, with PAE providing a practical extension for hardware that supports it, such as Intel Pentium Pro and later processors. However, PAE introduces performance trade-offs, primarily through increased page table overhead from the additional paging level (a page directory pointer table), which expands entries from to bits and requires more translation steps during . This can result in a minor efficiency penalty—estimated at 1-2% in operations—compared to non-PAE -bit paging, though the gains in addressable often outweigh the cost in memory-intensive legacy workloads. Overall, while PAE's role diminishes amid ongoing discussions to phase out -bit support, it sustains operations in niche and sectors where full migration remains impractical.

Transition to 64-bit Architectures

The introduction of the AMD64 architecture, first implemented in AMD's processors in 2003 and broadly adopted starting in 2004, represented a pivotal transition away from 32-bit x86 systems reliant on Physical Address Extension (PAE) for expansion. Unlike PAE, which extends 32-bit physical addressing to a maximum of 64 GB through modified page tables, AMD64 provides native 64-bit addressing capable of supporting up to 2^52 bytes (4 petabytes) of physical in , eliminating the need for PAE-like workarounds to access RAM beyond 4 GB. This shift enabled servers and workstations to handle exponentially larger configurations directly, with adopting a compatible () later in 2004, accelerating industry-wide migration to for performance-critical applications. Migrating from PAE-enabled 32-bit environments to 64-bit architectures typically involves recompiling source code for 64-bit targets using tools like or , which adjust pointer sizes, data structures, and calls to leverage the expanded while addressing potential issues like in legacy algorithms. For maintaining compatibility with existing 32-bit applications, Microsoft Windows employs the subsystem, a user-mode layer that translates 32-bit calls to 64-bit interfaces, allowing seamless execution of x86 software on systems without full recompilation. Similar compatibility layers exist in via multiarch support, though native 64-bit recompilation remains the preferred path for optimal and . Despite these tools, barriers to full adoption persist, particularly with 32-bit software that assumes 32-bit pointers and may fail due to or issues during , necessitating extensive testing and updates. 32-bit kernel-mode drivers are entirely incompatible with 64-bit operating systems, requiring complete rewrites, which has delayed transitions in environments dependent on specialized . In embedded sectors, additional hurdles include higher power consumption and development costs for 64-bit processors, as well as the overhead of larger code sizes, making 32-bit PAE systems preferable for resource-constrained devices despite their memory limitations. By 2025, efforts in the , including the removal of support for 32-bit x86 systems exceeding 4 of or eight CPUs in version 6.15 (May 2025), the unification and simplification of PAE handling with Page Table Isolation (PTI) in version 6.16 (July 2025), and planned deprecation of highmem/PAE support around 2027, signal a broader trend toward phasing out 32-bit PAE in favor of 64-bit architectures, reducing maintenance complexity for modern distributions. This aligns with discussions on phasing out 32-bit kernel architectures, as their usage diminishes amid rising capabilities.

References

  1. [1]
    [PDF] Intel® 64 and IA-32 Architectures Software Developer's Manual
    NOTE: The Intel® 64 and IA-32 Architectures Software Developer's Manual consists of nine volumes: Basic Architecture, Order Number 253665; Instruction Set ...<|control11|><|separator|>
  2. [2]
    Physical Address Extension - Win32 apps - Microsoft Learn
    Jan 7, 2021 · Physical Address Extension (PAE) is a processor feature that enables x86 processors to access more than 4 GB of physical memory on capable versions of Windows.Missing: documentation | Show results with:documentation
  3. [3]
    [PDF] Intel® 64 and IA-32 Architectures Software Developer's Manual
    This is Volume 3A, Part 1 of the Intel 64 and IA-32 manual, which is a system programming guide. The manual has nine volumes.
  4. [4]
    [PDF] Intel® 64 and IA-32 Architectures Software Developer's Manual
    NOTE: The Intel® 64 and IA-32 Architectures Software Developer's Manual consists of ten volumes: Basic Architecture, Order Number 253665; Instruction Set ...Missing: x86 | Show results with:x86
  5. [5]
    The Long Road to 64 Bits - ACM Queue
    Oct 10, 2006 · 32-bit microprocessor systems evolved into 64/32-bitters needed to address larger storage and run mixtures of 32- and 64-bit user programs.Missing: PAE | Show results with:PAE
  6. [6]
    Paging Extensions for the Pentium Pro Processor - Robert R. Collins
    PAE gave the processor the ability to address up to 64 GB of physical memory (36-bit address bus), and access page sizes of 2 MB. The larger physical-address ...
  7. [7]
    What Is PAE (Physical Address Extensions)? - Computer Hope
    Jan 31, 2019 · PAE was released in 1995 with the introduction of the Intel Pentium Pro and today is supported in all recent processors and operating systems.
  8. [8]
    None
    Below is a merged summary of Physical Address Extension (PAE) in the Pentium Pro Processor, consolidating all information from the provided segments into a single, comprehensive response. To maximize detail and clarity, I’ve organized the key information into a table format where appropriate, followed by a narrative summary that integrates additional context and details not easily tabularized. This ensures all information is retained while maintaining readability.
  9. [9]
    Physical Address Extension - OSDev Wiki
    This article discusses the Physical Address Extension (PAE) available on many x86 processors. It assumes good understanding of virtual memory (as discussed ...Missing: documentation | Show results with:documentation
  10. [10]
    a "Q" about forcepae -- and helpful answers
    Oct 21, 2024 · 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 ...
  11. [11]
    [PDF] Intel® 64 and IA-32 Architectures Software Developer's Manual
    NOTE: This document contains all four volumes of the Intel 64 and IA-32 Architectures Software. Developer's Manual: Basic Architecture, Order Number 253665; ...
  12. [12]
    [PDF] Intel Xeon Processor
    Revision History ... forces the memory type of large (PSE-4M and PAE-2M) pages to UC memory type regardless of the MTRR settings.
  13. [13]
    AMD Athlon Architecture Manual? (yes, K7. Not K8) - Ars Technica
    Apr 13, 2017 · Discussion with someone who claims AMD doesn't support PAE, or at least didn't until the K8. ... The "AMD Athlon Processor x86 Code Optimization ...
  14. [14]
    [PDF] AMD Hammer Family Processor BIOS and Kernel Developer's Guide
    Jul 8, 2007 · ... physical address extension (PAE) to support a 40- bit address space. Thus, the BIOS can set up a 32-bit page table that allows it to size ...
  15. [15]
    x86 32-bit Operating Systems Aren't Dead Yet: New Linux Patches ...
    Jan 23, 2025 · The Linux x86 32-bit PAE kernel support for Physical Address Extensions allows addressing more than 4GB of memory for those still running 32-bit ...
  16. [16]
    [PDF] Addendum— Intel Architecture Software Developer's Manual
    To use the 36-bit PSE feature, the PAE feature must be cleared (as indicated in Table 3-1). However, the 36-bit PSE in no way affects the PAE feature.
  17. [17]
    [PDF] Intel® 64 and IA-32 Architectures Software Developer's Manual
    NOTE: The Intel® 64 and IA-32 Architectures Software Developer's Manual consists of ten volumes: Basic Architecture, Order Number 253665; Instruction Set ...
  18. [18]
    None
    Below is a merged summary of Physical Address Extension (PAE) based on the provided segments from the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A. To retain all information in a dense and comprehensive format, I will use a table in CSV format for key details, followed by a narrative summary that consolidates additional context and notes. The table will cover the core aspects of PAE (Modifications to Paging Structures, Changes to CR3, Enabling via CR4.PAE, PSE Bit, PSE-36, and TLB Handling) with references to page numbers and sections where available. The narrative will address discrepancies, additional details, and useful URLs.
  19. [19]
  20. [20]
  21. [21]
    What processors do/do not support PAE? - Server Fault
    Nov 18, 2009 · PAE is provided by Intel Pentium Pro (and above) CPUs - including all later Pentium-series processors except the 400 MHz bus versions of the Pentium M.
  22. [22]
    CPUID — CPU Identification
    The CPUID instruction returns processor identification and feature information to the EAX, EBX, ECX, and EDX registers, based on input in EAX.
  23. [23]
    GNU GRUB Manual 2.12
    This is the documentation of GNU GRUB, the GRand Unified Bootloader, a flexible and powerful boot loader program for a wide range of architectures.
  24. [24]
    23.14. Hypervisor Features | Red Hat Enterprise Linux | 7
    Hypervisor features include <pae> for 32-bit memory, <acpi> for power management, <apic> for programmable IRQ, and <hap> for hardware assisted paging.
  25. [25]
  26. [26]
    Hyper-V Features and Terminology Overview - Microsoft Learn
    Aug 11, 2025 · Physical Address Extension (PAE) technology allows a 32-bit Linux kernel to access a physical address space that is larger than 4GB. Older Linux ...
  27. [27]
    Linux commands to display your hardware information
    Sep 16, 2019 · Show CPU features (e.g., PAE, SSE2), lshw -C cpu | grep -i capabilities ; Report whether the CPU is 32- or 64-bit, lshw -C cpu | grep -i width.
  28. [28]
    Disabling Windows Physical Address Extension (PAE) - Dialogic
    First check if PAE is enabled. To do this, right-click My Computer, and select Properties. Look under the Computer Processor information, and if Physical ...
  29. [29]
    Memory Limits for Windows and Windows Server Releases
    Jun 11, 2025 · X86 client versions of Windows don't support physical memory above the 4GB mark, so they can't access these remapped regions. Any X64 Windows ...
  30. [30]
    [DOC] Memory Management: What Every Driver Writer Needs to Know
    Feb 28, 2005 · On the Intel Pentium Pro and later processors, which support PAE, Windows can support up to 128 GB of physical memory. PAE provides only ...
  31. [31]
    Large memory support is available in Windows Server 2003 and in ...
    Jan 15, 2025 · The following operating systems can use PAE to take advantage of physical memory beyond 4 GB: Microsoft Windows 2000 Advanced Server.
  32. [32]
    Data Execution Prevention - Win32 apps - Microsoft Learn
    May 1, 2023 · Data Execution Prevention (DEP) is a memory protection feature that marks memory as non-executable, preventing code from running from data ...
  33. [33]
    Deprecated features in the Windows client - Microsoft Learn
    Support for 32-bit Arm versions of applications will be removed in a future release of Windows 11. After this change, for the small number of applications ...
  34. [34]
    Memory Maximum: 64 bit kernel vs 32 bit k… - Apple Community
    The 32-bit kernel uses PAE, so it should have 36-bit addressing which should give you up to 64GB. Unless for some reason Apple is limiting the 32-bit kernel.
  35. [35]
    Road to Mac OS X 10.6 Snow Leopard: 64-Bits | AppleInsider
    Aug 26, 2008 · In order to attack the RAM limitation problem in advance of moving to 64-bit CPUs, Intel added support for "Physical Address Extension" or PAE ...
  36. [36]
    64 GB of RAM DOES indeed work in a Mac Pro 2,1, check it out.
    28‏/03‏/2016 · For you to use more than 32GB of RAM on your Mac Pro 2,1, you must be running a 64-Bit Kernel. If you are running any OS up to 10.7.5, the ...
  37. [37]
    What are the benefits of 64-bit computing? - Apple Community
    Actually, the 32-bit kernel is quite capable of handling more then 4GB of memory, as it has for years on Mac Pro's and XServe's. The issue is how much memory ...
  38. [38]
    Chapter 10. Configuring the FreeBSD Kernel
    Aug 29, 2025 · This chapter covers how to configure the FreeBSD Kernel. When to build a custom kernel, how to take a hardware inventory, how to customize a ...Missing: PAE PAE_MAP_4GB
  39. [39]
    Large Memory Configuration (PAE) Kernel for FreeBSD 9.2 i386 (x86)
    Nov 12, 2013 · The FreeBSD kernel supports PAE as a build option. After compiling a PAE enabled kernel, the 4 GB limit will increase to 64 GB. ... In case you ...Kernel memory issues with PAE u/g | The FreeBSD Forums16GB of memory, PAE, and custom FreeBSD 8.1 KernelMore results from forums.freebsd.orgMissing: PAE_MAP_4GB | Show results with:PAE_MAP_4GB
  40. [40]
  41. [41]
    IA: Added Support for PAE Mode (What's New in the Solaris 8 ...
    By using PAE, Solaris Intel Platform Edition can address up to 32 Gbytes of physical memory. Individual processes are still limited to a maximum of 3.5 Gbytes ...
  42. [42]
    Physical Address Extension - Wikipedia, the free encyclopedia
    Mar 30, 2009 · Mac OS X for Intel Macs supports PAE and the NX bit on all CPUs supported by Apple (from 10.4.4—the first Intel release—onwards). Mac Pro and ...
  43. [43]
    Chapter 22. The Z File System (ZFS) | FreeBSD Documentation Portal
    May 29, 2025 · ZFS is an advanced file system designed to solve major problems found in previous storage subsystem software.Missing: impact | Show results with:impact
  44. [44]
    Mac transition to Apple silicon - Wikipedia
    The Mac transition to Apple silicon was the process of switching the central processing units (CPUs) of Apple's line of Mac computers from Intel's x86-64 ...Missing: PAE | Show results with:PAE
  45. [45]
    FreeBSD 13.0-RELEASE Hardware Notes
    Sep 30, 2025 · FreeBSD will take advantage of Physical Address Extensions (PAE) support on CPUs that support this feature. The default kernel supports memory ...
  46. [46]
    Arnd Bergmann: [PATCH v2 06/11] x86: remove HIGHMEM64G ...
    Dec 10, 2024 · The HIGHMEM64G support was added in linux-2.3.25 to support (then) high-end Pentium Pro and Pentium III Xeon servers with more than 4GB of addressing, NUMA and ...Missing: Bigmem | Show results with:Bigmem
  47. [47]
    Linux Kernel Driver DataBase: CONFIG_HIGHMEM64G: 64GB
    64GB found in arch/x86/Kconfig. The configuration item CONFIG_HIGHMEM64G: Help text Select this if you have a 32-bit processor and more than 4 gigabytes of ...
  48. [48]
    The kernel’s command-line parameters — The Linux Kernel documentation
    Below is a merged response summarizing the information from all provided segments regarding the `mem=` parameter, PAE (Physical Address Extension), and high memory mentions. To retain all details in a dense and organized format, I’ll use tables in CSV-style text for clarity, followed by a narrative summary where appropriate. The response includes all unique information across the segments, with references to sources and useful URLs consolidated at the end.
  49. [49]
    CPU features - Ubuntu security documentation
    Oct 28, 2025 · If you run 32-bit kernels without PAE, you will still have the partial NX emulation. It is required that you use PAE if you want true NX support ...
  50. [50]
    Debian “trixie” Release Information
    Sep 6, 2025 · The legacy 32-bit PC (i386) architecture is supported only as a co-architecture for running 32-bit software on amd64; The EABI ARM (armel) ...Debian Release Management · Debian 13 -- Errata · Installing Debian 12.12
  51. [51]
    Techwiki:Ntoskrnl - ReactOS Wiki
    May 10, 2021 · ntoskrnl.exe (and ntkrnlpa.exe on systems with Physical Address Extension support) is the kernel image for the family of Microsoft Windows NT operating systems.
  52. [52]
    How much RAM will ReactOS be able to address?
    Apr 16, 2014 · In short: Windows 32-bit (x86) Platform only supports 3 GB of RAM, with a Physical Address Extension of 512 MB => max 3,5 GB of RAM. ReactOS is also 32 bit.
  53. [53]
    Pae kernel for haiku? - Development
    Aug 12, 2019 · Haiku already has PAE enabled… since quite awhile. I don't think the particular implementation allows using the full 4GB address space per ...
  54. [54]
    AMD E350 Zacate - Haiku Community
    Haiku was given PAE support (uses 36-bit). No longer is there a 4GB boundary. Haiku should see 64GB of system RAM which is available to the OS. Each ...
  55. [55]
    Haiku on 486? - OS
    Oct 11, 2024 · The non-PAE paging code is always built and can be enabled by choosing “Disable PAE” in the bootloader. 1 Like. VoloDroid October 12, 2024, 10: ...
  56. [56]
    extended memory support beyond 4G?? - QNX6 - OS - OpenQNX
    Feb 28, 2008 · QNX does support up to 64GB of physical memory on x86 (and PPC and MIPS) processor versions that implement it. It seems that your particular ...Missing: PAE | Show results with:PAE
  57. [57]
    TeamForge : View Wiki Page - QNX
    x86: Primary Page Sizes of 4k, 4M (2M if ~PAE is enabled) · PowerPC book E: Primary Page Sizes of 4k – 1TB in 4x steps (not all page sizes are supported on all ...
  58. [58]
    The future of 32-bit support in the kernel - LWN.net
    Sep 1, 2025 · This is a good solution for memory-constrained systems; switching to 32-bit halves the memory usage of the system. Since, on most systems, ...
  59. [59]
    For a 32-bit kernel, what are the pros/cons of PAE vs. non-PAE?
    Jun 15, 2012 · PAE allows 32-bit systems to use more RAM, but has slight overhead. Non-PAE may be 1-2% faster. 64-bit is faster than both.How can I install on a non-PAE CPU? (error "Kernel requires ...Does 32-bit PAE with more than 4GB RAM improve speed?More results from askubuntu.comMissing: paging | Show results with:paging
  60. [60]
    What Is AMD64 and Why Is It Important? | phoenixNAP IT Glossary
    Aug 7, 2025 · In 2004, Intel introduced their own AMD64-compatible implementation, initially branded as Intel 64 or EM64T (Extended Memory 64 Technology).Missing: PAE replacement
  61. [61]
    WOW64 Implementation Details - Win32 apps | Microsoft Learn
    Aug 19, 2020 · The WOW64 emulator runs in user mode. It provides an interface between the 32-bit version of Ntdll.dll and the kernel of the processor, ...
  62. [62]
    Overview of the compatibility considerations for 32-bit programs on ...
    Jan 15, 2025 · This article discusses the compatibility considerations and limitations for 32-bit programs that are running on 64-bit versions of Windows.Missing: PAE | Show results with:PAE
  63. [63]
    [PDF] Challenges in Designing Exploit Mitigations for Deeply Embedded ...
    Jul 5, 2020 · Due to cost sensitivity as discussed in. Section IV-A, embedded systems manufacturers are unlikely to migrate to costlier higher-end processors ...
  64. [64]
    Intel Engineer Preparing To Land Change For Cleaning Up 32-bit ...
    Apr 14, 2025 · The work talked about back in January for improving the 32-bit PAE Linux kernel code for Physical Address Extensions to better jive with the ...