

The designers took the opportunity to make other improvements as well. The primary defining characteristic of AMD64 is the availability of 64-bit general-purpose processor registers (for example, rax), 64-bit integer arithmetic and logical operations, and 64-bit virtual addresses. The first AMD64-based processor, the Opteron, was released in April 2003.ĪMD's processors implementing the AMD64 architecture include Opteron, Athlon 64, Athlon 64 X2, Athlon 64 FX, Athlon II (followed by "X2", "X3", or "X4" to indicate the number of cores, and XLT models), Turion 64, Turion 64 X2, Sempron ("Palermo" E6 stepping and all "Manila" models), Phenom (followed by "X3" or "X4" to indicate the number of cores), Phenom II (followed by "X2", "X3", "X4" or "X6" to indicate the number of cores), FX, Fusion/APU and Ryzen/ Epyc. As AMD was never invited to be a contributing party for the IA-64 architecture and any kind of licensing seemed unlikely, the AMD64 architecture was positioned by AMD from the beginning as an evolutionary way to add 64-bit computing capabilities to the existing x86 architecture while supporting legacy 32-bit x86 code, as opposed to Intel's approach of creating an entirely new, completely x86-incompatible 64-bit architecture with IA-64.
X86 instruction set architecture tom shanley full#
AMD originally announced AMD64 in 1999 with a full specification available in August 2000. The architectures are not compatible on the native instruction set level, and operating systems and applications compiled for one cannot be run on the other.ĪMD64 (also variously referred to by AMD in their literature and documentation as “AMD 64-bit Technology” and “AMD x86-64 Architecture”) was created as an alternative to the radically different IA-64 architecture designed by Intel and Hewlett-Packard, which was backward-incompatible with IA-32, the 32-bit version of the x86 architecture. The x86-64 architecture is distinct from the Intel Itanium architecture (formerly IA-64). VIA Technologies introduced x86-64 in their VIA Isaiah architecture, with the VIA Nano. Intel was forced to follow suit and introduced a modified NetBurst family which was software-compatible with AMD's specification. This was the first significant addition to the x86 architecture designed by a company other than Intel. The AMD K8 microarchitecture, in the Opteron and Athlon 64 processors, was the first to implement it. The original specification, created by AMD and released in 2000, has been implemented by AMD, Intel, and VIA. 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. While newer or modified applications can take advantage of new features of the processor design to achieve performance improvements.

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, The compatibility mode defined in the architecture allows 16- and 32-bit user applications to run unmodified, coexisting with 64-bit applications if the 64-bit operating system supports them. (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. Floating-point arithmetic is supported via mandatory SSE2-like instructions, 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. for stack management) to 16 (fully general), and provides numerous other enhancements.


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. 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. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging mode. X86-64 (also known as 圆4, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. The five-volume set of the x86-64 Architecture Programmer's Manual, as published and distributed by AMD in 2002
