Microsoft KB Archive/929605
Article ID: 929605
Article Last Modified on 3/17/2007
- Windows Vista Business
- Windows Vista Enterprise
- Windows Vista Home Basic
- Windows Vista Home Premium
- Windows Vista Starter
- Windows Vista Ultimate
- Windows Vista Enterprise 64-bit edition
- Windows Vista Home Basic 64-bit edition
- Windows Vista Home Premium 64-bit edition
- Windows Vista Ultimate 64-bit edition
- Windows Vista Business 64-bit edition
If a computer has 4 gigabytes (GB) of random-access memory (RAM) installed, the system memory that is reported in the System Information dialog box in Windows Vista is less than you expect. For example, the System Information dialog box may report 3,120 megabytes (MB) of system memory on a computer that has 4 GB of memory installed (4,096 MB).
Note You can access the System Information dialog box in the following ways:
- Click Start, type System in the Search box, and then click System under Programs.
- Double-click System in Control Panel.
- Click Start, right-click Computer, and then click Properties.
- Click Show more details in the Windows Vista Welcome Center window.
This behavior is the expected result of certain hardware and software factors.
Various devices in a typical computer require memory-mapped access. This is known as memory-mapped I/O (MMIO). For the MMIO space to be available to 32-bit operating systems, the MMIO space must reside within the first 4 GB of address space.
For example, if you have a video card that has 256 MB of onboard memory, that memory must be mapped within the first 4 GB of address space. If 4 GB of system memory is already installed, part of that address space must be reserved by the graphics memory mapping. Graphics memory mapping overwrites a part of the system memory. These conditions reduce the total amount of system memory that is available to the operating system.
The reduction in available system memory depends on the devices that are installed in the computer. However, to avoid potential driver compatibility issues, the 32-bit versions of Windows Vista limit the total available memory to 3.12 GB. See the "More information" section for information about potential driver compatibility issues.
If a computer has many installed devices, the available memory may be reduced to 3 GB or less. However, the maximum memory available in 32-bit versions of Windows Vista is typically 3.12 GB.
For Windows Vista to use all 4 GB of memory on a computer that has 4 GB of memory installed, the computer must meet the following requirements:
- The chipset must support at least 8 GB of address space. Chipsets that have this capability include the following:
- Intel 975X
- Intel P965
- Intel 955X on Socket 775
- Chipsets that support AMD processors that use socket F, socket 940, socket 939, or socket AM2. These chipsets include any AMD socket and CPU combination in which the memory controller resides in the CPU.
- The CPU must support the x64 instruction set. The AMD64 CPU and the Intel EM64T CPU support this instruction set.
- The BIOS must support the memory remapping feature. The memory remapping feature allows for the segment of system memory that was previously overwritten by the Peripheral Component Interconnect (PCI) configuration space to be remapped above the 4 GB address line. This feature must be enabled in the BIOS configuration utility on the computer. View your computer product documentation for instructions that explain how to enable this feature. Many consumer-oriented computers may not support the memory remapping feature. No standard terminology is used in documentation or in BIOS configuration utilities for this feature. Therefore, you may have to read the descriptions of the various BIOS configuration settings that are available to determine whether any of the settings enable the memory remapping feature.
- An x64 (64-bit) version of Windows Vista must be used.
Contact the computer vendor to determine whether your computer meets these requirements.
Note When the physical RAM that is installed on a computer equals the address space that is supported by the chipset, the total system memory that is available to the operating system is always less than the physical RAM that is installed. For example, consider a computer that has an Intel 975X chipset that supports 8 GB of address space. If you install 8 GB of RAM, the system memory that is available to the operating system will be reduced by the PCI configuration requirements. In this scenario, PCI configuration requirements reduce the memory that is available to the operating system by an amount that is between approximately 200 MB and approximately 1 GB. The reduction depends on the configuration.
PAE-mode-induced driver compatibility issues
Driver compatibility issues that are related to Data Execution Prevention (DEP) are typically physical address extension (PAE) mode-induced compatibility issues.
Note PAE is required only on computers that have processors that support hardware-enforced DEP.
DEP may cause compatibility issues with any driver that performs code generation or that uses other techniques to generate executable code in real time. Many drivers that experienced these issues have been fixed. Because DEP is always on for drivers that are on 64-bit versions of Windows, these drivers typically experienced compatibility issues. However, there is no guarantee that all drivers have been updated to fix PAE-mode-induced compatibility issues. However, there are few drivers that use these techniques. DEP alone does not typically cause driver compatibility issues.
The primary driver compatibility issues that you may experience occur when you run PAE mode on 32-bit computers. PAE mode enables processors to use more than 4 GB of memory. The primary difference between PAE memory paging schemes and non-PAE memory paging schemes is the additional level of paging that is required in PAE mode. PAE mode requires three levels of paging instead of two levels of paging.
Some drivers might not load if PAE mode is enabled because the device might be unable to perform 64-bit addressing. Or, the drivers might be written with the assumption that PAE mode requires more than 4 GB of memory. Such drivers are written with the expectation that the drivers will always receive 64-bit addresses in PAE mode and that the driver or the device cannot interpret the address.
Other drivers might load in PAE mode but cause system instability by directly modifying system page table entries (PTE). These drivers expect 32-bit page table entries but receive 64-bit PTEs in PAE mode instead.
The most common PAE compatibility issue for drivers involves direct memory access (DMA) transfers and map register allocation. Many devices that support DMA, typically 32-bit adapters, cannot perform 64-bit physical addressing. When these devices run in 32-bit mode, the devices can address all physical address space. In PAE mode, data can be present at a physical address that is larger than 4 GB. To enable devices that have these constraints to function in this scenario, Microsoft Windows 2000 Server and later versions of Windows provide double-buffering for the DMA transaction. Windows 2000 Server and later versions of Windows do this by providing a 32-bit address that is indicated by a map register. The device can perform the DMA transaction to the 32-bit address. The kernel copies the memory to the 64-bit address that is provided to the driver. When the computer runs with PAE mode disabled, drivers for 32-bit devices do not require that system memory be allocated to their map registers. This means that double-buffering is not required because all devices and all drivers are contained within the 32-bit address space. Tests of drivers for 32-bit devices on 64-bit processor–based computers have demonstrated that DMA-capable drivers that are client tested typically expect unlimited map registers.
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.
Keywords: kbtshoot kbprb KB929605