X86-64

AMD Opteron, the first CPU to introduce the x86-64 extensions in April 2003
The five-volume set of the x86-64 Architecture Programmer's Manual, as published and distributed by AMD in 2002

x86-64 (also known as x64, x86_64, AMD64, and Intel 64)[note 1] is a 64-bit version of the x86 instruction set, first announced in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging mode.

With 64-bit mode and the new paging mode, it supports vastly larger amounts of virtual memory and physical memory than was possible on its 32-bit predecessors, allowing programs to store larger amounts of data in memory. x86-64 also expands general-purpose registers to 64-bit, and expands the number of them from 8 (some of which had limited or fixed functionality, e.g. for stack management) to 16 (fully general), and provides numerous other enhancements. Floating-point arithmetic is supported via mandatory SSE2-like instructions[citation needed], and x87/MMX style registers are generally not used (but still available even in 64-bit mode); instead, a set of 16 vector registers, 128 bits each, is used. (Each register can store one or two double-precision numbers or one to four single-precision numbers, or various integer formats.) In 64-bit mode, instructions are modified to support 64-bit operands and 64-bit addressing mode.

The compatibility mode defined in the architecture allows 16-bit and 32-bit user applications to run unmodified, coexisting with 64-bit applications if the 64-bit operating system supports them.[11][note 2] As the full x86 16-bit and 32-bit instruction sets remain implemented in hardware without any intervening emulation, these older executables can run with little or no performance penalty,[13] while newer or modified applications can take advantage of new features of the processor design to achieve performance improvements. Also, a processor supporting x86-64 still powers on in real mode for full backward compatibility with the 8086, as x86 processors supporting protected mode have done since the 80286.

The original specification, created by AMD and released in 2000, has been implemented by AMD, Intel, and VIA. The AMD K8 microarchitecture, in the Opteron and Athlon 64 processors, was the first to implement it. This was the first significant addition to the x86 architecture designed by a company other than Intel. Intel was forced to follow suit and introduced a modified NetBurst family which was software-compatible with AMD's specification. VIA Technologies introduced x86-64 in their VIA Isaiah architecture, with the VIA Nano.

The x86-64 architecture was quickly adopted for desktop and laptop personal computers and servers which were commonly configured for 16 GiB (gibibytes) of memory or more. It has effectively replaced the discontinued Intel Itanium architecture (formerly IA-64), which was originally intended to replace the x86 architecture. x86-64 and Itanium are not compatible on the native instruction set level, and operating systems and applications compiled for one architecture cannot be run on the other natively.

  1. ^ "Debian AMD64 FAQ". Debian Wiki. Archived from the original on September 26, 2019. Retrieved May 3, 2012.
  2. ^ "x86-64 Code Model". Apple. Archived from the original on June 2, 2012. Retrieved November 23, 2012.
  3. ^ arch(1) – Darwin and macOS General Commands Manual
  4. ^ Kevin Van Vechten (August 9, 2006). "re: Intel XNU bug report". Darwin-dev mailing list. Apple Computer. Archived from the original on February 1, 2020. Retrieved October 5, 2006. The kernel and developer tools have standardized on "x86_64" for the name of the Mach-O architecture
  5. ^ "Solaris 10 on AMD Opteron". Oracle. Archived from the original on July 25, 2017. Retrieved December 9, 2010.
  6. ^ "Microsoft 64-Bit Computing". Microsoft. Archived from the original on December 12, 2010. Retrieved December 9, 2010.
  7. ^ "AMD64 Port". Debian. Archived from the original on September 26, 2019. Retrieved November 23, 2012.
  8. ^ "Gentoo/AMD64 Project". Gentoo Project. Archived from the original on June 3, 2013. Retrieved May 27, 2013.
  9. ^ "WOW64 Implementation Details". Archived from the original on April 13, 2018. Retrieved January 24, 2016.
  10. ^ "ProcessorArchitecture Class". Archived from the original on June 3, 2017. Retrieved January 24, 2016.
  11. ^ AMD Corporation (December 2016). "Volume 2: System Programming" (PDF). AMD64 Architecture Programmer's Manual. AMD Corporation. Archived (PDF) from the original on July 13, 2018. Retrieved March 25, 2017.
  12. ^ Raymond Chen (October 31, 2013). "If there is no 16-bit emulation layer in 64-bit Windows, how come certain 16-bit installers are allowed to run?". Archived from the original on July 14, 2021. Retrieved July 14, 2021.
  13. ^ "IBM WebSphere Application Server 64-bit Performance Demystified" (PDF). IBM Corporation. September 6, 2007. p. 14. Archived (PDF) from the original on January 25, 2022. Retrieved April 9, 2010. Figures 5, 6 and 7 also show the 32-bit version of WAS runs applications at full native hardware performance on the POWER and x86-64 platforms. Unlike some 64-bit processor architectures, the POWER and x86-64 hardware does not emulate 32-bit mode. Therefore applications that do not benefit from 64-bit features can run with full performance on the 32-bit version of WebSphere running on the above mentioned 64-bit platforms.


Cite error: There are <ref group=note> tags on this page, but the references will not show without a {{reflist|group=note}} template (see the help page).