Bruce
Sanderson's General Windows Information
RAM, Virtual Memory, PageFile and all that stuff
This article explains some
aspects of the Virtual Memory implementation in Windows 2000, XP, 2003 Server etc.
It is intended for a general audience that has an interest in the relationship
between RAM (Random Access Memory), Address Spaces, Virtual Memory and pagefile
in those systems. An abbreviated version of this article is available at
http://support.microsoft.com/?kbid=555223.
The article is arranged with basic information covering
the scope of the article in 1. Basic Concepts
with more details in 2. Additional Detail.
This should enable the casual reader to get basic information without getting
buried in detail, but those interested in a greater understanding can read the
detailed material further down in the article.
This article is mainly concerned with 32 bit Windows
versions, but most of the discussion is equally applicable to 64 bit versions.
See 3. 64 Bit Processors and
Address Spaces for some information specifically about 64 bit versions.
1. Basic Concepts
1.1.
Virtual Memory
In most
modern operating systems, including Windows, application programs and many
system processes always reference memory using virtual memory addresses which
are automatically translated to real (RAM) addresses by the hardware. Only
core parts of the operating system kernel bypass this address translation and
use real memory addresses directly. The virtual memory management component of
the operating system maintains the tables used by the hardware to provide the
mapping of virtual addresses into real addresses. A small amount of RAM is
used by those parts of the operating system that can not be paged out (for
example, the virtual memory manager) and is thus not available for assignment to
virtual memory.
The key point here is that Virtual Memory is always in
use, even when the memory required by all running processes does not exceed the
amount of RAM installed on the system.
See 2.1 Virtual Memory for
more information.
1.2.
Address Spaces and Process
Any process
(e.g. application executable) running under 32 bit Windows versions gets a set
of virtual memory addresses (a Virtual Address Space) going from 0 to 4,294,967,295
(2*32-1 = 4 GB), no matter how much RAM is actually installed on the
computer. Actually, this is essentially the same for all operating systems
running on 32 bit hardware that implement Virtual Memory.
In the
normal, default Windows OS configuration, 2 GB of this virtual address space
are allocated to the process’ private use and the other 2 GB are allocated to
shared and operating system use.
Only that portion of the address space that is actually
referenced (used) by a process or the system is associated with a page frame in
real memory, or in the pagefile.
See 2.2 Address
Spaces and Processes for more information, about features to make more virtual
memory available to processes. For information about using more than 4 GB of
installed RAM, see 2.4 Physical
Address Extension (PAE).
The only way to actually increase the size of the virtual
address space beyond 4 GB is by using 64 bit hardware with an operating system
and application built for that hardware. See 3. 64 Bit Processors and Address
Spaces for additional information about 64 bit architectures.
1.3.
Pagefile
RAM is a
limited resource, whereas virtual memory is, to a large extent, unlimited in
that there can be a large number of processes each with its own 4 GB virtual
address space, of which 2 GB is private to the process. When the memory in use
(that is, has been reference) by all the existing processes exceeds the amount
of RAM available, the operating system will move pages (4 KB pieces) of one or
more virtual address spaces to the computer’s hard disk, thus freeing some RAM
for other uses. In Windows systems, these “paged out” pages are stored in one
or more files with the name pagefile.sys. There can be one such file in each
disk partition.
A
frequently asked question is “how big should I make the pagefile”? There is no
single answer to this question, because it depends on the workload on the
computer and how much virtual memory space that workload requires. There
is quite a variety of ideas on this subject, but here’s a place to start:
-
If the computer has 256 MB or less of RAM
-
Minimum – 384 MB
-
Maximum – 1 GB (or less if disk space is in short supply)
Typically, computers like this are used as workstations. With
operating systems like Windows XP it is not uncommon for power users to have
many windows open (and thus processes running) and to exhaust the available
RAM. In this situation, the goal is provide sufficient pagefile space to avoid
running out of available virtual memory, which could cause application failures
or at least, significant inconvenience.
-
If the computer has more than 256 MB and less than 1 GB of RAM
-
Minimum – 256 MB
-
Maximum – 1 GB (or less is disk space is in short supply)
Computers configured with this amount of RAM are typically
workstations or small servers. Usually, there is sufficient RAM available that
having more virtual memory than the available RAM is a relatively rare
occurrence. There is little point in allocating a large minimum size pagefile,
since it typically won’t be used. However, having a relatively large maximum
will avoid “out of virtual memory” conditions without dedicating a big chunk of
disk space for that rare situation.
-
If the computer has more than 1 GB of RAM
-
Minimum – 1 GB to the amount of RAM installed
-
Maximum – 1 GB to the amount of RAM installed
Computers with this amount of RAM are typically used as
servers, although as workstation computers get faster and since RAM is relatively
cheap, workstations with 1 GB or RAM are becoming more common. A common
objective in configuring a server is to ensure sufficient RAM so that paging
doesn’t happen. Providing a large maximum pagefile is insurance against “out
of virtual memory” situations that could cause service interruptions. Servers
running a few applications are typically configured with enough RAM that paging
is rare. A possible exception are servers used for Terminal Services, where it
would be common for some users to be relative inactive for long periods of time
and paging may occur routinely without a significant performance penalty.
2. Additional Detail
2.1.
Virtual Memory
There are several advantages to Virtual Memory
implementations with per process virtual address spaces, some of which are:
-
Application writing is simplified. The application developer
doesn’t have to worry about how much RAM is available or what addresses are
available to it. The application writer (and
compiler) knows that every application will get its own set of virtual
addresses (called an Address Space) that it can use any way it wishes (except
for the portion of the address space reserved by the operating system) without
regard to what other applications are doing.
-
The system is more robust and secure because applications can not
overwrite or read memory belonging to another application – there is no
addressability to another application’s address space.
-
Management of RAM allocation to processes is centralized in a
core part of the OS. The algorithms used by the Virtual Memory management part
of the OS have a long history, are well understood, quite sophisticated and
highly optimized. The knowledge and skills required to do this well are very
specialized and not usually present in application developers whose focus is on
the application/business requirements.
2.2.
Address Spaces and Processes
A process is essentially, the combination
of:
-
Some executable code
-
A virtual address space
-
One or more threads of execution.
The only way to increase the size of the virtual address
space for a process beyond 4 GB is by using 64 bit hardware with an operating
system and application built for that hardware.
The nub of it is, that no matter how much physical RAM is
in the computer, the amount of memory available in the
process’ private part of the virtual address space in 32 bit Windows
implementations is limited to:
-
2 GB - without the /3GB switch - this is the normal, default
maximum private virtual address space
or
or
2.3.
Pagefile
A common recommendation is to make the page file 1.5
times the size of the installed RAM. This recommendation makes sense only for
computers with small amounts of RAM (256 MB or less). For example, there is
usually not much point in allocating a page file that is 3 GB if the computer
has 2 GB of RAM. The objective in such RAM rich systems is to avoid using the
pagefile at all by providing sufficient RAM that all virtual memory can be in
RAM all the time. If the virtual memory in use exceeds the amount of installed
RAM, performance will suffer and having a larger pagefile will not help this
situation.
Windows only assigns space in the pagefile when a virtual
memory page must be paged out. Thus the total available virtual memory is
approximately the sum of installed RAM and the size of the pagefile(s).
See "Virtual Memory" at
http://support.microsoft.com/?kbid=294418.
An argument sometimes made is that the minimum pagefile
has to be at least the size of the RAM so that a full memory dump can be taken
when the operating system crashes. However, this is not a very powerful
argument because:
-
Operating systems such as Windows XP, Windows 2000 and Windows
2003 rarely crash
-
A full dump is rarely required to diagnose the cause of system
failures. Should a problem be escalated (e.g. to Microsoft Support) and full
dump be requested, it is usually a relatively simple matter to reconfigure the
pagefile for this specific instance.
-
If there is more than 2 GB of RAM, a full memory dump is not
possible in any case, so configuring a minimum pagefile larger than 2 GB for
this reason is pointless (see
http://support.microsoft.com/?kbid=274598).
The operating system uses a small amount of space in the
pagefile even when RAM is not exhausted, but in general terms, this is not
particularly important. The main thing is that space in the page file will be
allocated to virtual memory pages for which no corresponding RAM page is
available.
If the minimum and maximum pagefile sizes are not the
same, the pagefile will initially be allocated to the minimum size, then
expanded as more space is needed, up to the maximum. On most systems, this
will mean that the pagefile will be fragmented, possibly in widely separated
parts of the disk. If there is a significant amount of paging activity, this
can lead to unnecessary performance degradation. Setting the minimum and
maximum the same size may still result in a fragmented pagefile, but does
reduce the likelihood of serious fragmentation. If the system is paging
heavily and the pagefile is heavily fragmented, consider moving the pagefile to
a newly formatted partition on a separate disk.
The best way to size the pagefile is to monitor how much
of the pagefile is in use and the system paging activity. If very little of
the pagefile is ever used, there is not much point in having a large minimum
size. Conversely if the pagefile is typically 80% or more used, increasing the
minimum size may be advantageous. See 2.8.
Monitoring RAM and Virtual Memory usage for more information about
monitoring memory and pagefile use.
For best performance when there actually is paging
activity, the pagefile should be on a disk that is otherwise not used or that
has very little activity. If possible, the page file should be created on a
freshly formatted disk partition (or one that has been de-fragmented). This
will usually ensure that the pagefile is contiguous on disk, thus minimizing
head motion and increasing performance.
However, if there is significant paging activity, the
best way to improve performance is to add more RAM. This will be far more
effective in improving performance than any optimization of the pagefile
location or size.
2.4.
Physical Address Extension (PAE)
PAE is a feature of later Intel processors (Pentium Pro
or later and others that implement the Intel architecture, such as those from
AMD) to address physical memory (RAM) above 4 GB. To support this, the
processor, supporting chip sets and mother boards provide up to 36 physical address
bits. Using the processor architecture defined registers and tables, 32 bit
virtual addresses can be mapped into RAM pages above the 4 GB boundary. This
hardware feature is supported by Windows NT, 2000, XP, 2003 and later. This feature
is activated by using the /PAE switch in the boot.ini. PAE may be enabled
automatically (without the /PAE switch in the boot.ini entry) if the processor
supports hardware DEP (Data Execution Prevention - see
http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx for
more information).
Using this feature does not change the size of the
virtual address space used by processes, but does allow the virtual memory for
more processes to be resident in RAM, thus reducing paging in large system
environments.
You may see statements that the PAE feature slows down
the processor and thus should not be used, for example, on a Terminal Server.
While some Intel documentation does say that the processor performance will be
degraded if PAE is enabled, it doesn’t say by how much and this is most likely
very small amount. Unless the bottleneck in your system is CPU time, the fact
that the processor runs a bit slower (e.g. equivalent of 2.0 MHz instead of 2.1
MHz) will be hardly noticeable or measurable (by the way, having multiple
processors in a computer also degrades processor performance – but two
processors does allow the system to handle a larger load, just not two times as
much). The slowest process in almost any computer is disk access. So if your
computer is doing a lot of paging and to use more RAM you need to enable the
PAE feature the few percentage point slowdown in the CPU will most likely be
more than offset by the reduction in paging activity due to the additional RAM.
The only way to tell for sure is to do the measurements – e.g. monitor CPU time
with Performance Monitor before and after enabling PAE with the same load (e.g.
number of users).
The maximum amount of physical RAM that is supported
varies by 32 bit Windows version and edition. The list below is taken from the
articles at:
http://www.microsoft.com/windowsserver2003/evaluation/features/compareeditions.mspx
http://www.microsoft.com/windowsserver2003/evaluation/sysreqs/default.mspx
http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx
http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx
http://www.microsoft.com/downloads/details.aspx?FamilyID=bbc16ebf-4823-4a12-afe1-5b40b2ad3725&DisplayLang=en
(Vista Product Guide)
-
Windows NT 4.0: 4 GB
-
Windows 2000 Professional: 4 GB
-
Windows 2000 Standard Server: 4 GB
-
Windows 2000 Advanced Server: 8GB
-
Windows 2000 Datacenter Server: 32GB
-
Windows XP Professional: 4 GB
-
Windows Vista: 4GB
-
Windows Server 2003 Web Edition: 2 GB
-
Windows Server 2003 Standard Edition: 4 GB
-
Windows Server 2003 Standard Edition SP1: 4 GB
-
Windows Server 2003 R2 Standard Edition: 4 GB
-
Windows Server 2003 Enterprise Edition: 32 GB
-
Windows Server 2003 Enterprise Edition SP1: 64 GB
-
Windows Server 2003 R2 Enterprise Edition: 64 GB
-
Windows Server 2003 Datacenter Edition: 64 GB
-
Windows Server 2003 Datacenter Edition SP1: 128 GB
-
Windows Server 2003 R2 Datacenter Edition: 128 GB
For additional information on PAE and other large memory
features see:
2.5.
Application Memory Tuning - /3GB switch
To accommodate those
applications (e.g. mail servers, database management systems) that can
effectively use private virtual memory larger than 2 GB, Windows NT 4, 2000 etc.
provide the Application Memory Tuning feature (renamed to 4 GB RAM Tuning in
Windows Server 2003 documentation) that moves the boundary between the private
part of the 4 GB virtual address space from 2 GB to 1 GB so that the private
part of the address space is 3 GB. This feature is activated by using the
/3GB switch in the boot.ini file.
Note that if the /3GB switch is
used, the maximum RAM addressable by any Windows version is 16 GB (Large Memory
Support Is Available in Windows 2000 and Windows Server 2003
http://support.microsoft.com/default.aspx?scid=kb;en-us;283037).
More information about this
feature is available in the article Memory Support and Windows Operating Systems
(http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx).
Here are some of the details from that article:
2.5.1.
The /3GB switch is available on these operating systems:
-
Windows XP Professional
-
Windows Server 2003, Standard Edition
-
Windows Server 2003, Enterprise Edition
-
Windows Server 2003, Datacenter Edition
-
Windows 2000 Advanced Server
-
Windows 2000 Datacenter Server
-
Windows NT Server 4.0, Enterprise Edition
2.5.2.
Application implications (a quote from http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx):
“No APIs are required to support application memory tuning.
However, it would be ineffective to automatically provide every application
with a 3-GB address space.
Executables that can use the 3-GB address space are required
to have the bit IMAGE_FILE_LARGE_ADDRESS_AWARE set in their image header. If
you are the developer of the executable, you can specify a linker flag (/LARGEADDRESSAWARE).
To set this bit, you must use Microsoft Visual Studio Version
6.0 or later and the Editbin.exe utility, which has the ability to modify the
image header (/LARGEADDRESSAWARE) flag. For more information on setting this
flag, see the Microsoft Visual Studio documentation.”
2.6.
Address Windowing Extensions
This feature (also known
as AWE) is a set of functions (APIs) that an application can use to request the
operating system to map pages of RAM into its 4 GB virtual address space.
Using this feature, an application can thus use more RAM than the usual 2 GB
(or 3 GB if the /3GB switch is used) available in the private part of the virtual
memory. This can be useful for applications that can benefit from more memory
than is normally available. There are two important things about this feature
to understand:
-
The size of the virtual address space is not changed. 32 bit
addresses are still used. What is done is that different RAM pages are mapped
into application specified virtual addresses. Although exercising this mapping
has an overhead, since the mapped pages are in RAM, the overhead is
considerably less than reading and writing to a disk file.
-
The application program has to be specifically designed to use
this feature and special application coding is required to use the AWE APIs.
More information about this feature is available in the
article Address Windowing Extensions (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/address_windowing_extensions.asp).
2.7.
Performance, Architectural Limits and RAM
On any computer system, as load
(number of users, amount of work being done) increases, performance (how long it
takes to do each task) will decrease, but in a non linear fashion. Any
increase in load (demand) beyond a certain point will result in a dramatic
decrease in performance. This means that some resource is in critically
short supply and has become a bottleneck.
At some point, the resource in
critical short supply can not be increased. This means an architectural
limit has been reached. Some commonly reported architectural limits in Windows
include:
1. 2 GB of shared virtual address space for the system
2. 2 GB of private virtual address space per process
3. 660 MB System PTE storage
4. 470 MB paged pool storage
5. 256 MB non-paged pool storage
6. 1 GB System cache
7. 16,000 GB pagefile size
The above applies to Windows
2003 Server specifically (from
http://support.microsoft.com/?kbid=294418), but also apply to Windows XP and
Windows 2000.
Commonly found and quoted
statements such as:
with a Terminal Server, the 2
GB of shared address space will be completely used before 4 GB of RAM is used
may be true in some situations,
but you need to monitor your system to know whether they apply to your
particular system or not. In some cases, these statements are conclusions
from specific Windows NT 4.0 or Windows 2000 environments and don't necessarily
apply to Windows Server 2003. Significant changes were made to Windows
Server 2003 to reduce the likelihood that these architectural limits will in
fact be reached in practice. For example, some processes that were in the
kernel have been moved to non kernel processes to reduce the amount of memory
used in the shared virtual address space.
2.8.
Monitoring RAM and Virtual Memory usage
Performance Monitor (Start,
Administrative Tools, Performance) is the principle tool for
monitoring system performance and identifying what the bottleneck really is.
Here's a summary of some important counters and what they tell you.
Memory,
Committed Bytes - this is a measure of the demand for virtual memory
This counter shows
how many bytes have been allocated by processes and to which the operating
system has committed a RAM page frame or a page slot in the pagefile (perhaps
both). As Committed Bytes grows above the amount of available RAM, paging will
increase and the amount of the pagefile in use will also increase. At some
point, paging activity will start to significantly impact perceived performance.
Memory,
Pages/Sec - this is one of the most misunderstood measures.
A high value for
this counter does not necessarily imply that your performance bottleneck is
shortage of RAM. The operating system uses the paging system for purposes
other than swapping pages due to memory over commitment.
This counter
counts all page activities, which includes:
-
Demand Zero Page Faults – these happen when a process
first references newly allocated virtual memory pages. These do not involve
the pagefile at all. Any process that does frequent memory allocations and
de-allocations will experience a significant number of Demand Zero Page
Faults. Processing these events is a very low overhead activity and does
not indicate that demand for memory has exceeded the amount of available RAM.
Very high Demand Zero Page Fault rates are quite common for some
applications but this by itself has little affect on performance. The design
and implementation of the application affects the rate of Demand Zero Page
Faults the application experiences, so this can not be changed by adding
RAM or reconfiguring the pagefile.
-
Reading of some files using the paging system. This is commonly
done for loading executables (e.g. dlls) and other “system” type files. Again,
these events do not indicate a shortage of RAM and don’t involve the use of the
pagefile.
See
http://support.microsoft.com/?kbid=139609 for more information about Memory:
Pages/sec.
Memory: Pages
Input/sec- this shows how many virtual memory pages were read from the
pagefile into a free RAM page frame each second.
This is an
important counter to monitor if you suspect that paging is your performance
bottleneck. In most cases, a page in operation means that some process has
been suspended because the virtual memory it referenced is not in RAM and had to
be reloaded from the pagefile. Some processes may be idle for a long time
(e.g. a Terminal Server user is away from their workstation for some reason).
When such an idle process becomes active again, the operating system will reload
some paged out pages in anticipation that they will be required. This
pre-loading of pages reduces processing delays and improves performance.
On a workstation or Terminal Server, users may notice a degradation in
performance if their processes experience a significant number of page in
operations.
Memory, Pages Output/Sec - this shows how many virtual memory pages were
written to the pagefile to free RAM page frames for other purposes each second.
This is the best
counter to monitor if you suspect that paging is your performance bottleneck.
Even if Memory, Committed Bytes is greater than the installed RAM, if
Pages Output/sec is low or zero most of the time, there is not a significant
performance problem from not enough RAM. If RAM is in short supply, the
operating system will pre-emptively steal pages from idle processes so that
there are always empty RAM page frames available for assignment to running
processes, thus minimizing delays for the active processes.
Memory, Cache Bytes
Memory, Pool Nonpaged Bytes
Memory, Pool Paged Bytes
Memory, System Code Total Bytes
Memory, System Driver Total Bytes
The sum of these
counters is a measure of how much of the 2GB of the shared part of the 4 GB
virtual address space is actually in use. Use these to determine if your
system is reaching one of the architectural limits discussed above.
Memory, Available MBytes - this measures how much RAM is available to
satisfy demands for virtual memory (either new allocations, or for restoring a
page from the pagefile).
When RAM is in
short supply (e.g. Memory, Committed Bytes is greater than installed
RAM), the operating system will attempt to keep a certain fraction of installed
RAM available for immediate use by copying virtual memory pages that are not in
active use to the pagefile. For this reason, this counter will not go to zero
and is not necessarily a good indication of whether your system is short of RAM.
Process,
Working Set, _Total - this is a measure of the amount of virtual memory in
"active" use
This counter shows
how much RAM is required so that the actively used virtual memory for all
processes is in RAM. This is always a multiple of 4,096, which is the page
size used in Windows. As demand for virtual memory increases above the
available RAM, the operating system will adjust how much of a process's virtual
memory is in its Working Set to optimize the use of available RAM and minimize
paging.
Paging File,
%pagefile in use - this is a measure of how much of the pagefile is actually
being used
This is the
counter to use to determine if the pagefile is an appropriate size. If
this counter gets to 100, the pagefile is completely full and things will stop
working. Depending on the volatility of your workload, you probably want
the pagefile large enough so that it is normally no more than 50 - 75% used.
If a lot of the pagefile is in use, having more than one on different physical
disks, may improve performance.
3.
64 Bit Processors and Address Spaces
As mentioned in 1.2
Address Spaces and Process, 64 bit processor architectures provide virtual
and physical address spaces greater than 4 GB, which can be advantageous for
some applications. 64 bit architectures can provide other advantages to
applications that are not directly related to the amount of addressable memory,
but those are not discussed here.
It is important to realize that a 64 bit architecture
does not necessarily mean a 64 bit virtual or physical (RAM) address space is
available. Processor, mother board, chip set and operating system design may
well limit the available virtual or real addresses to less than 64 bits.
The size of the address spaces provided by these
architectures appears, at this juncture, to be more than one could imagine using.
However, history has shown that our ability to predict address space
requirements for future systems has been pretty poor. For example:
-
The designers of the IBM 360 architecture in the early 1960’s
provided a 16 GB address space (24 bits). RAM on those early mainframes was
typically in the 10’s of Kbytes, so 16 GB was out of sight. By the 1970’s, 16
GB had already become a real limitation, so the architecture was changed to provide 31
bit (2 GB) address spaces, both virtual and physical. Why 31 instead of 32
bits had to do with the way backward compatibility for systems and applications
designed and coded for the 24 bit address architecture was implemented.
-
The designers of the IBM PC architecture in the 1980’s said they
could not conceive of anyone requiring more than 1 MB of memory (a 20 bit
address space) on a PC (despite the relatively recent experience with the IBM
360/370 architecture!). By the end of the 1980’s, this was becoming a
significant limitation that lead to the design of “expanded memory” (a form of
memory mapping related to the AWE scheme implemented in Windows NT etc.) and
“extended memory” – an enlarged address space.
Maximum RAM supported by 64 bit
editions of Windows:
-
Windows XP: 128 GB
-
Windows Server 2003 R2 Standard Edition: 32 GB
-
Windows Server 2003 R2 Enterprise Edition: 1 TB
-
Windows Server 2003 Enterprise Edition for Itanium: 1 TB
-
Windows Server 2003 Datacenter x64 Edition: 1 TB
-
Windows Server 2003 Datacenter Edition for Itanium: 1 TB
See:
http://www.microsoft.com/windowsxp/64bit/overview.mspx
http://www.microsoft.com/windowsserver2003/evaluation/overview/family.mspx
http://www.microsoft.com/windowsserver2003/64bit/x64/standard.mspx http://www.microsoft.com/windowsserver2003/64bit/extended/enterprise.mspx
http://www.microsoft.com/windowsserver2003/64bit/ipf/datacenter.mspx
Architectural limits (see 2.7. Performance,
Architectural Limits and RAM) for 64 bit Windows memory are:
1. 8 TB of shared virtual address space for the system
2. 8 TB GB of private virtual address space per process
3. 128 GB System PTE storage
4. 128 GB paged pool storage
5. 128 GB non-paged pool storage
6. 1 TB System cache
7. 512 TB pagefile size
From
http://support.microsoft.com/?kbid=294418 and
http://www.microsoft.com/windowsserver2003/techinfo/overview/x64benefits.mspx.
Here’s some information from various sources about address space implementations
in various 64 bit processor architectures from Intel and AMD.
Intel
Itanium (see
http://www.intel.com/design/itanium/downloads/24532003.pdf)
- Physical Address - 44 bits - ~ 17,590 GB
- Virtual
Address 54 - ~ 18,000,000 GB
Itanium 2 (see
ftp://download.intel.com/design/Itanium/manuals/245318.pdf)
-
Physical Address 50 Bits - ~ 1,126,000 GB
-
Virtual Address 64 Bits ~ 18,400,000,000 GB
Intel Pentium
and Xeon EM64T 64
bit (see http://www.intel.com/technology/64bitextensions/4071_Intel_Xeon_rev3.pdf)
-
Physical Address 40 Bits - ~ 1,100 GB
-
Virtual Address 48 Bits - ~ 281,000 GB
AMD
Athlon (see http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24659.PDF)
- Physical Address 40 Bits - ~ 1,100 GB
- Virtual Address 48 Bits - ~ 281,000 GB
Opteron http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/23932.pdf
-
Physical Address 40 Bits - ~ 1,100 GB
-
Virtual Address 48 Bits - ~ 281,000 GB
Last updated 4 Dec 2006
|