Saturday, March 29, 2008

Intel Physical Addressing Extensions (PAE) in Windows 2000


Windows 2000 Advanced Server and Windows 2000 Datacenter Server support memory in excess of 4 gigabytes (GB) of random access memory (RAM) by way of the Intel Physical Addressing Extension (PAE) specification. Windows 2000 Advanced Server is limited to 8 GB, and Windows 2000 Datacenter Server is limited to 32 GB. You can enable PAE in the Boot.ini file. To enable PAE, follow these steps:
1.Click Start, and then click Run.
2.Type X:\boot.ini, where X is the drive letter of the location of the boot files, Ntldr, Boot.ini, and so forth.
3.Modify the line that corresponds to your operating system by appending the /PAE switch.
4.Save the file, and then restart the computer.
Even with PAE enabled, the underlying architecture of the system is still based on 32-bit linear addresses. This effectively retains the 2 GB of application space 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 RAM because they are less likely to encounter physical memory restrictions and begin paging. Additionally, applications can be modified to use the AWE API to allocate memory outside of the applications process space, bypassing the 2-GB limit for applications.


With PAE enabled, the operating system moves from a two-level linear address translation to a three-level address translation. The extra layer of translation is what provides access to physical memory beyond 4 GB. Instead of a linear address being split into three separate fields for indexing into memory tables, it is split into four separate fields; a 2-bit field, two 9-bit fields, and a 12-bit field that corresponds to the page size implemented by Intel Architecture (4 KB).

During a context switch the CR3 register is set by the operating system to point to a Page directory pointer index that is 2-bits wide. The first two bits are used as an index into this table, with the resulting value pointing to a Page directory. The first 9-bit field is then used to index into the Page directory. The indexed value then points to a Page table. The second 9-bit field is an index into the Page table. This value points to the actual page in memory where the desired byte is located. Finding this byte is a simple matter of using the remaining twelve bits of data to index into the page.

If you add more memory, the BIOS may recognize the full amount of physical RAM that is installed on the server. However, Windows will recognize only some of the RAM. If the server includes the Redundant Memory feature, the full amount of RAM is not exposed to Windows. The Redundant Memory feature provides the system with a fail-over memory bank when a memory bank fails. The Memory Mirroring feature splits the memory banks into a mirrored set. Both features are enabled in the BIOS and cannot be accessed through Windows. You may have to see the system user manual or the manufacturer's Web site to modify the settings for this feature.

For example, if you are running a system that has 4 GB of RAM installed, and you add 4 GB of RAM, Windows recognizes 4 GB or 6 GB of RAM instead of the full 8 GB of physical memory. One of these features may be enabled on the new memory banks without your knowledge. In this scenario, the symptoms are similar to the symptoms that may occur when the /PAE switch is not added to the Boot.ini file.

No comments: