AMD64
|
The AMD64 or x86-64 or x64 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, Athlon 64 X2, Turion 64, and Opteron processors.
Contents |
Architecture overview
AMD's x86-64 instruction set (later renamed AMD64) is a straightforward extension of the x86 architecture to 64-bits, motivated by the fact that the 4GB of memory directly addressable by a 32-bit CPU is no longer sufficient for all applications. Some of the changes:
- New registers. The number of general-purpose registers (GPRs) 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 also increased from 8 to 16. The additional registers increase performance.
- Larger address space. Due to the 64-bit architecture, the AMD64 architecture can address up to 256 tebibytes (also known as terabytes) of memory in its current implementations. This is compared to just 4 GB for x86-32, only half of which is available to applications under the most common versions of Microsoft Windows. Future implementations of the AMD64 architecture may provide up to 2 exbibytes (also known as exabytes) of available memory.
- SSE instructions. The AMD64 architecture includes Intel's SSE and SSE2 instructions, newer E-stepping CPU include SSE3 as well. The x87 and MMX instructions are largely obsolete, but still supported.
- NX bit. The NX bit is a processor feature that allows the operating system to forbid code execution in data areas, improving security. This feature is available in both 32-bit and 64-bit modes, and is supported by Linux, Windows XP SP2, Windows Server 2003 SP1 and newer.
Operating modes
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 |
Compatibility Mode | no | 32 | no | 32 | |||
16 | 16 | 16 | |||||
Legacy Mode | Protected Mode | Legacy 32-bit OS | no | 32 | 32 | no | 32 |
16 | 16 | ||||||
Virtual 8086 mode | 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, the various BSDs, Solaris 10 and Windows XP Professional x64 Edition . 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 includes native support for running 16-bit x86 applications; Microsoft explicitly left out 16-bit program support in Windows XP Professional x64 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 and Windows Server 2003 x64 Edition) will not run.
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 backwards compatible, allowing existing tools targeting x86 such as compilers to be retargeted to AMD64 with minimal effort. The AMD64 architecture also features the NX bit.
Implementations
The following processors implement the AMD64 architecture:
- AMD K8
- AMD Athlon 64
- AMD Athlon 64 X2 (The recently released Dual Core variant of the Athlon 64)
- AMD Athlon 64 FX
- AMD Opteron
- AMD K9
- (dual core AMD K8 based processors)
- EM64T
- Intel Xeon (some models since 'Nocona')
- Intel Pentium 4 (some models since 'Prescott')
See also
External links
- AMD's technical documentation for the AMD64 architecture (http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_875_7044,00.html)
- Free AMD64 documentation on CD-ROM (US, Canada only), and download format (http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_4699_7980%5E875%5E4622,00.html)
- PlanetAMD64 - Nice AMD64 Source site with 64bit database of Drivers & Software (http://www.planetamd64.com)
- 64-bit computing in theory and practice (http://techreport.com/reviews/2005q1/64-bits/index.x?pg=1)de:AMD64
es:AMD64 fr:AMD64 hu:AMD64 it:AMD64 ja:AMD64 nl:AMD64 pl:AMD64 zh:AMD64