The AMD64 or x86-64 is a 64-bit processor architecture invented by AMD. It is a superset of the x86 architecture, which it natively supports. The AMD64 Instruction set is currently used in AMD's Athlon 64, Athlon 64 FX, and Opteron processors.
Intel has also implemented the AMD64 architecture in its newer Xeon and Pentium 4 F processor lines, rebranding it EM64T.
Compared to x86-32 (called IA32 by Intel), x86-64 offers the following benefits:
- New registers. The number of general-purpose registers is increased from 8 in x86-32 to 16, and the size of these registers is increased from 32 bits to 64 bits. Additionally, the number of 128-bit XMM registers (used for Streaming SIMD instructions) is increased from 8 to 16.
- Larger address width. Due to the larger width for address space, the AMD64 architecture can address up to 256 terabytes of memory in its current implementations. Future implementations of the AMD64 architecture may provide up to 2 exabytes of available memory.
- New instructions. The AMD64 architecture has Streaming SIMD instructions such as SSE and SSE2 as basic features, although they have been previously available on Intel microprocessors. The SSE and SSE2 instructions have been extended to support the eight new XMM registers.
- NX Bit. The NX Bit is a processor feature that prevents certain kinds of malicious software known as worms from taking control of a computer via a software attack known as a buffer overflow. NX or "No Execute" (previously called DEP, or Data Execution Protection) is available as a software option for those running Windows XP Service Pack 2, or Windows Server 2003 Service Pack 1, on an existing 32-bit processor, such as Intel's Northwood core Pentium 4's, Intel's early Prescott core Pentium 4's, as well as AMD's own Athlon XP. In these cases, NX mode may be disabled by the user. However, if a 64-bit processor that supports the NX bit (such as Intel's newer Prescott core, their newer Xeon processors, and AMD's Athlon 64, Athlon 64-FX, and Opteron processors) is used, then NX mode is implemented in hardware and cannot be disabled from within the Operating System.
It is interesting to note that since SSE and SSE2 are a basic feature of the AMD64 instruction set and since they duplicate the features of the traditional x87 FPU, MMX and 3DNow! perfectly, Microsoft has chosen to not save the FPU/MMX registers across context switches in Windows XP 64-bit Edition for 64-bit programs. This effectively obsoletes the x87 FPU, MMX and 3DNow!, reducing the clutter of the instruction set and eventually allowing for better CPU designs.
|Operating Mode ||Operating System Required ||Application Recompile Required ||Default Address Size ||Default Operand Size ||Register Extensions ||Typical GPR Width |
|Long Mode ||64-bit Mode ||New 64-bit OS ||yes ||64 ||32 ||yes ||64 |
|no ||32 ||no ||32 |
|16 ||16 ||16 |
|Protected Mode ||Legacy 32-bit OS ||no ||32 ||32 ||no ||32 |
|16 ||16 |
|16 ||16 ||16 |
|Real Mode ||Legacy 16-bit OS |
Operating Mode Explanation
There are two primary modes of operation for this architecture:
- Long Mode
- The primary mode of operation of the architecture; it is a combination of the processor's native 64-bit mode and a 32-bit compatibility mode. It is used by 64-bit Operating Systems; currently the only operating systems readily available that fully support this are POSIX derivative such as virtually all Linux distributions and the various BSDs, although a 64-bit version of Windows XP is in beta stages. There is no performance penalty for executing x86 code, unlike Intel's IA-64 architecture (used in their Itanium and Itanium 2 processors). Using Long Mode, a 64-bit OS can run 32-bit applications and 64-Bit applications simultaneously. Also, x86-64 also includes native support for running 16-bit x86 applications; Microsoft explicitly left out 16-bit program support in Windows XP 64-bit Edition due to the problems in getting 16-bit x86 code to run via their WoW64 Emulator.
- Legacy Mode
- The mode used by 16-bit operating systems, like MS-DOS, and 32-bit operating systems, such as Windows XP. In this mode, only 16-bit or 32-bit code can be executed. 64-bit programs (such as the GUI setup program for Windows XP Professional x64 Edition) will not run.
AMD64 market analysis
AMD64 represents a break with AMD's past behavior of following Intel's standards, but follows Intel's earlier behavior of extending the x86 architecture, from the 16-bit 8086 to the 32-bit 80386 and beyond, without ever removing backwards compatibility. The AMD64 architecture extends the 32-bit x86 architecture (IA-32) by adding 64-bit registers, with full 32-bit and 16-bit compatibility modes for earlier software. Even the 64-bit mode is largely backward-compatible, allowing existing tools targeting x86 (eg. compilers) to be retargeted to AMD64 with minimal effort. The AMD64 architecture also features the NX bit.
The following processors implement the AMD64 architecture:
- AMD K8
- AMD K9
- (dual core AMD K8 based processors)
- Intel Xeon (some models since 'Nocona')
- Intel Pentium 4 (some models since 'Prescott')