64 Bit Processors and Address Spaces

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 MB address space (24 bits). RAM on those early mainframes was typically in the 10’s of Kbytes, so 16 MB was out of sight. By the 1970’s, 16 MB 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 Vista Home Basic: 8 GB
  • Windows Vista Home Premium: 16 GB
  • Windows Vista Business, Enterprise and Ultimate: 128+ GB
  • Windows Server 2003 Enterprise Edition for Itanium: 64 GB
  • Windows Server 2003 Datacenter Edition: 2 TB
  • Windows Server 2003 Datacenter Edition for Itanium: 1 TB
  • Windows Server 2003 R2 Standard Edition: 32 GB
  • Windows Server 2003 R2 Enterprise Edition: 2 TB
  • Windows Server 2003 R2 Datacenter Edition: 2 TB
  • Windows Server 2003 R2 Datacenter Edition for Itanium: 2 TB
  • Windows Server 2008 Web Edition: 32 GB
  • Windows Server 2008 Standard Edition: 32 GB
  • Windows Server 2008 Enterprise Edition: 2 TB
  • Windows Server 2008 Datacenter Edition: 2 TB Windows Server 2008 for Itanium-Based Systems: 2 TB

See:

  • http://www.microsoft.com/downloads/details.aspx?FamilyID=bbc16ebf-4823-4a12-afe1-5b40b2ad3725&DisplayLang=en (Windows Vista Product Guide - Windows Vista Editions Feature Table)
  • http://www.microsoft.com/hk/server/windowsserver2003/evaluation/features/default.mspx
  • http://www.microsoft.com/windowsserver2003/64bit/ipf/datacenter.mspx
  • http://www.microsoft.com/windowsserver2008/en/us/compare-specs.aspx

Architectural limits for 64 bit Windows memory are:

  • 8 TB of shared virtual address space for the system
  • 8 TB of private virtual address space per process
  • 128 GB System PTE storage
  • 128 GB paged pool storage
  • 128 GB non-paged pool storage
  • 1 TB System cache
  • 256 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

Not all processors actually have (implement) the same number of physical and virtual address bits. However, all the relatively new processors support larger physical address spaces than are actually supported by any version of Windows, so the actual number of physical address bits implemented is somewhat irrelevant.

For virtual addresses, the operating system must ensure that it does not attempt to allocate virtual memory addresses using un-implemented virtual address bits because there will be application or system failures if it does. The processors provide a way for the operating system to determine the number of virtual address bits and thus the maximum useable virtual address actually implemented (e.g. on Itanium processors, the PAL_VM_SUMMARY "procedure" - see page 2-450 in

  •  (http://download.intel.com/design/Itanium/manuals/24531805.pdf ).
  • Itanium (see http://www.intel.com/design/itanium/itanium/itaniumprodbrief.pdf and http://download.intel.com/design/Itanium/manuals/24531805.pdf section 4.3.2)
  • Physical Address - 44 bits - ~ 17,590 GB
  • Virtual Address - varies by processor model - minimum 51 - ~ 2,250,000 GB Itanium 2 (see http://download.intel.com/design/Itanium/manuals/24531805.pdf)
  • Physical Address 50 Bits - ~ 1,126,000 GB
  • Virtual Address varies by processor model - minimum 51 - ~ 2,250,000 GB Intel Pentium, Xeon, Core 64 bit (see http://download.intel.com/design/processor/manuals/253665.pdf)
  • Physical Address - varies by processor model - minimum 36 - 64 GB for most since 2004 Virtual Address 48 Bits (minimum) - ~ 281,000 GB

AMD

  • Athlon, Opteron, Sempron and Turion:
  • Physical Address 40 Bits - ~ 1,100 GB
  • Virtual Address 48 Bits - ~ 281,000 GB Athlon - http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24659.PDF)
  • Opteron - http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/23932.pdf
  • Sempron - http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/31805.pdf
  • Turion - http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32816.pdf
loading...