Comparison of 32-bit and 64-bit memory architecture for 64-bit editions of Windows XP and Windows Server 2003

SUMMARY

In given table, the increased maximum resources of PC that are depend on 64-bit versions of Windows and the 64-bit Intel processor are compared with existing 32-bit resource maximums.

Architectural component 64-bit Windows 32-bit Windows
Virtual memory 16 terabytes 4 GB
Paging file size 256 terabytes 16 terabytes
Hyperspace 8 GB 4 MB
Paged pool 128 GB 470 MB
Non-paged pool 128 GB 256 MB
System cache 1 terabyte 1 GB
System PTEs 128 GB 660 MB


MORE INFORMATION

Virtual memory

This is a technique of expanding the available physical memory on a PC.
In a virtual memory system, the operating system generates a pagefile, or swapfile, and separates memory into units known as pages. Now referenced pages are located in physical memory, or RAM. If a page of memory is not indicated for a while, it is written to the pagefile. This is known as "swapping" or "paging out" memory. If that piece of memory is then later referenced by a program, the operating system reads the memory page back from the pagefile into physical memory, also known as "swapping" or "paging in" memory. The whole amount of memory that is available to programs is the amount of physical memory in PC in addition to the size of the pagefile. A main thought in short term is that even 32-bit applications will benefit from improved virtual memory address space when they are running in Windows x64 Editions. Applications that are compiled with the /LARGEADDRESSAWARE option, as would be essential to take advantage of the /3GB switch in 32-bit Windows, will automatically be able to address 4 GB of virtual memory without any boot time switches or changes to x64 Windows. In addition, the operating system does not have to share that 4 GB of space. Thus, it is not constrained at all.

Paging file

This is disk file that used to increase the quantity of physical storage for virtual memory.

Hyperspace

This is a particular region that is used to map the process working set list and to temporarily map other physical pages for such operations as zeroing a page on the free list when the zero list is empty and the zero page is wanted, invalidating page table entries in other page tables like when a page is removed from the standby list, and in regards to process creation, setting up the address space of a new process.

Paged pool

This is an area of virtual memory in system space that can be paged in and out of the working set of the system process. Paged pool is created through system initialization and is used by Kernel-mode components to assign system memory. Uniproccessor systems contain two paged pools, and multiprocessor systems contain four. Having more than one paged pool decreases frequency of system code blocking on immediate calls to pool routines.

Non-paged pool

This is a memory pool that has ranges of system virtual addresses that are definite to be occupy in physical memory at all times and thus can be accessed from any address space without acquiring paging input/output (I/O). Non-paged pool is created through system initialization and is used by Kernel-mode sections to assign system memory.

System cache

These are pages that are used to map open files in the system cache.

System PTEs

A group of system Page Table Entries (PTEs) that is used to map system pages like I/O space, Kernel stacks, and memory descriptor lists. 64-bit programs use a 16-terabyte tuning model (8 terabytes User and 8 terabytes Kernel). 32-bit programs still use the 4-GB tuning model (2 GB User and 2 GB Kernel). This indicates that 32-bit processes that run on 64-bit versions of Windows run in a 4-GB tuning model (2 GB User and 2GB Kernel). 64-bit versions of Windows do not support the use of the /3GB switch in the boot options. In theory, a 64-bit pointer could address up to 16 exabytes. 64-bit versions of Windows have presently executed up to 16 terabytes of address space.