Saturday, March 29, 2008

Large memory support is available in Windows Server 2003 and in Windows 2000

MORE INFORMATION

PAE is the added ability of the IA32 processor to address more than 4 GB of physical memory. The following operating systems can use PAE to take advantage of physical memory beyond 4 GB:
Microsoft Windows 2000 Advanced Server
Microsoft Windows 2000 Datacenter Server
Microsoft Windows Server 2003, Enterprise Edition
Microsoft Windows Server 2003, Datacenter Edition
To enable PAE, use the /PAE switch in the Boot.ini file.

Note In Windows Server 2003, PAE is automatically enabled only if the server is using hot-add memory devices. In this case, you do not have to use the /PAE switch on a system that is configured to use hot-add memory devices. In all other cases, you must use the /PAE switch in the Boot.ini file to take advantage of memory over 4GB.

Typically, a process running under Windows 2000 or Windows Server 2003 can access up to 2 GB of memory address space (assuming the /3GB switch was not used) with some of the memory being physical memory and some being virtual memory. The more programs (and, therefore, more processes) that run, the more memory you commit up to the full 2 GB of address space.

When this situation occurs, the paging process increases dramatically and performance may be negatively impacted. The Windows 2000 and Windows Server 2003 memory managers use PAE to provide more physical memory to a program. This reduces the need to swap the memory of the page file and results in increased performance. The program itself is not aware of the actual memory size. All the memory management and allocation of the PAE memory is handled by the memory manager independently of the programs that run.

The preceding information is valid for programs that run when the /3GB switch is used. A program that requests 3 GB of memory is more likely to be able to have more of its memory remain in physical memory rather than be paged out. This increases the performance of programs that are capable of using the /3GB switch. The exception is when the /3GB switch is used in conjunction with the /PAE switch. In this case, the operating system does not use any memory in excess of 16 GB. This behavior is caused by kernel virtual memory space considerations. Thus, if the system restarts with the /3GB entry in the Boot.ini file, and the system has more than 16 GB of physical memory, the additional physical random access memory (RAM) is not used by the operating system. Restarting the computer without the /3GB switch enables the use of all the physical memory.

AWE is a set of application programming interfaces (APIs) to the memory manager functions that enables programs to address more memory than the 4 GB that is available through standard 32-bit addressing. AWE enables programs to reserve physical memory as non-paged memory and then to dynamically map portions of the non-paged memory to the program's working set of memory. This process enables memory-intensive programs, such as large database systems, to reserve large amounts of physical memory for data without having to be paged in and out of a paging file for usage. Instead, the data is swapped in and out of the working set and reserved memory is in excess of the 4 GB range. Additionally, the range of memory in excess of 4 GB is exposed to the memory manager and the AWE functions by PAE. Without PAE, AWE cannot reserve memory in excess of 4 GB.

The following is an example of a Boot.ini file where the PAE switch has been added:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /fastdetect /PAE


Warning The contents of your Boot.ini file will vary based upon your configuration. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
317526 (http://support.microsoft.com/kb/317526/) How to edit the Boot.ini file in Windows Server 2003
To summarize, PAE is a function of the Windows 2000 and Windows Server 2003 memory managers that provides more physical memory to a program that requests memory. The program is not aware that any of the memory that it uses resides in the range greater than 4 GB, just as a program is not aware that the memory it has requested is actually in the page file.

AWE is an API set that enables programs to reserve large chunks of memory. The reserved memory is non-pageable and is only accessible to that program. For more information about AWE and PAE, click the following article number to view the article in the Microsoft Knowledge Base:
268363 (http://support.microsoft.com/kb/268363/) Intel Physical Addressing Extensions (PAE) in Windows 2000
For more information, visit the following Microsoft Web sites:
http://msdn2.microsoft.com/en-us/library/aa213764(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa213764(SQL.80).aspx)
http://msdn2.microsoft.com/en-us/library/ms810461.aspx (http://msdn2.microsoft.com/en-us/library/ms810461.aspx)
If you add more memory to the system, it is possible that the BIOS will recognize the full amount of physical RAM that is installed in the server but that Windows will recognize only a part of the RAM. If the server has a redundant memory feature or a memory mirroring feature that is enabled, the full complement of memory may not be visible to Windows. Redundant memory provides the system with a failover memory bank when a memory bank fails. Memory mirroring splits the memory banks into a mirrored set. Both features are enabled or disabled in the BIOS and cannot be accessed through Windows. To modify the settings for these features, you may have to refer to the system user manual or the OEM Web site. Alternatively, you may have to contact the hardware vendor.

For example, if you are running a system that has 4 GB of RAM installed and you then add 4 GB of additional RAM, Windows may recognize only 4 GB of physical memory or possibly 6 GB instead of the full 8 GB. The redundant memory feature or the memory mirroring feature may be enabled on the new memory banks without your knowledge. These symptoms are similar to the symptoms that occur when you do not add the /PAE switch to the Boot.ini file.

Back to the top

REFERENCES

For more information, visit the following Microsoft Web site: Operating Systems and PAE Support http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx

Intel Physical Addressing Extensions (PAE) in Windows 2000

SUMMARY

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.

MORE INFORMATION

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.