Science Fair Project Encyclopedia
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, and Opteron processors.
AMD's x86-64 instruction set (later renamed AMD64), is an ambitious attempt to clean up the idiosyncrasies of Intel's x86-32 architecture, and update the x86 architecture to a format more closely resembling leading edge 64 bit RISC environments. Dirk Meyer one of the original co-architects of the DEC Alpha 64 bit chip, was also involved in drawing up the AMD64 specifications. The project benefited from his experience, and that of other ex Alpha engineers working at AMD. Some of the most notable changes include the following:
- 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. In comparison, IBM's PowerPC architecture has 32 registers, so this tackles one of the most outstanding deficiencies of x86-32. No longer will code be required to shuffle data round, to cope with a shortage of register space. Once optimized applications appear, this should be a significant area of speed improvement, especially for software with computationally intensive deeply nested loops. Additionally, the number of 128-bit XMM registers (used for Streaming SIMD instructions) is also increased from 8 to 16.
- Larger address width. Due to the larger width for address space, the AMD64 architecture can address up to 256 tebibytes 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 of available memory.
- SSE instructions. The AMD64 architecture explicitly adopts Intel's SSE and SSE2 as core instructions. SSE2 replaces the x87 FPU's IEEE 80-bit precision, with the choice of either IEEE 32-bit or 64-bit floating-point math. The result is floating-point results comparable to modern RISC CPUs. The SSE and SSE2 instructions have also been extended to support the eight new XMM registers. Since SSE and SSE2 are a basic feature of the AMD64 instruction set, and they duplicate the features of the traditional x87 FPU, MMX and 3DNow!, 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 more streamlined CPU layouts. Most likely over time the outdated aspects of the x86 instruction set, will end up emulated either in processor microcode or by the operating system.
- NX bit. While not technically required for 64-bit computing, the NX Bit is a processor feature that provides for a more tightly controlled software environment. Hardware set permission levels make it much more difficult for malicious code to take control of the system. It is intended to make 64-bit computing a more secure environment.
|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|
|Protected Mode||Legacy 32-bit OS||no||32||32||no||32|
|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 the 64-bit version of Windows XP . 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 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 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.
While it was considered at one point RISC chips would inevitably replace the outdated and quirky x86 architecture, in fact AMD64 effectively turns x86 into a modern RISC type programming environment. The benefit of AMD64 is that it undertakes this major architecture upgrade while retaining legacy compatibility.
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')
- AMD's technical documentation for the AMD64 architecture
- Free AMD64 documentation on CD-ROM (US, Canada only), and download format
- PlanetAMD64 - Nice AMD64 Source site with 64bit database of Drivers & Software
- 64-bit computing in theory and practice
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details