The AMD64 microarchitecture of the AMD K8 - generation ( and x86 -64) is AMD's entry into the 64 -bit microprocessor market. Intel uses the new 64 -bit instructions under the name Intel 64 (formerly EM64T) in its newer x86 -based processors.
In contrast to Intel's 64- bit architecture, the IA-64 builds on AMD's design on the traditional 32 -bit processors, the registers are widened in 64- bit mode. He is thus fully backward compatible with today's 32 -bit and even old 16 -bit software. In addition, there is now a 64 -bit mode is available, which allows especially to address a larger memory area and brings in some cases improvements in performance by wider and especially twice as many registers with it. With AMD64 AMD therefore initiated a smooth transition from 32 - to a 64- bit environments.
The AMD64 architecture has been designed as an alternative to the IA -64 architecture, Intel and Hewlett Packard - while Intel has created a completely new 64 -bit architecture, which has little in common with today's most commonly used in PCs IA- 32 architecture, chose AMD one far less radical approach: The chip is a full 32 -bit processor, the registers are widened in 64- bit mode.
Intel introduced the first " Itanium " processor before October 4, 1999. The day after AMD announced its counter-proposal and published the "x86 -64 " specification in August 2000. Intel introduced the first generation of Itanium in June 2001 and pushed out even in 2002, the second generation behind. At AMD, it took until April 2003, when the first Opteron were available with the now " AMD64 " baptized 64- bit extension - they were so well received by the market that Intel began in June 2004, the first Xeon processors ( " Nocona " 64- bit extension to equip " ) compatible with the " EM64T.
In the further course of AMD paid all model series with the AMD64 extension, while Intel 64 -bit still sat on the IA-64 series - until July 2006, the first mobile processors "Intel Core 2 " series with were now "Intel 64 " sold baptized architecture. Then all subsequent generation of IA32 compatible processors were also at Intel designed in a 64 -bit architecture, most recently the Atom processors from 2008. Other manufacturers followed the market trend, the 64 -bit VIA Nano for example, was available from January 2008.
Operating System Support
The first operating system that offered a functioning support for the 64 -bit mode of the AMD64 processors, was Linux ( official introduction to the Linux kernel 1 March 2002). From the Microsoft Windows XP Professional x64 Edition for AMD64 was available in April 2005, however, only a temporary solution offered until Windows Vista came on the market in January 2007.
The x64 edition of Windows XP was very reticent marketed by Microsoft as an OEM System Builder version to keep support costs within limits and not to endanger the future sales of Vista. There is no home version, no box version for retail and not a complete localization for languages other than English. However, it is possible to " translate" this version with MUI (Multi User Interface) packs to.
Mac OS X supports the x64 architecture since the beginning of his conversion platform from PowerPC to Intel processors in 2006.
During the development of AMD called the architecture or x86 -64, just before the launch of the AMD processors, however, changed the name in AMD64. Recently, the abbreviation x64 Microsoft and some trade publications for this extended programming model will be used.
All registers have a width of 64 bits for AMD64. If the processor is in 32 -bit compatibility mode, it top 32 bits of each register are set to 0. In 64 -bit mode, the processor also has eight additional integer and SSE registers which are not available for reasons of compatibility in 32- bit mode.
The AMD64 architecture has the following application registers that are available in normal application programs:
The orange registers R8 -R15 and XMM8 - XMM15 available exclusively in 64- bit mode. The registers RAX -RSP and RFLAGS and RIP in 32 -bit mode, only 32 bits long and hot there EAX ESP, EFLAGS and EIP, as was the case 80386th to access the 64 -bit register is via newly introduced Befehlspräfixe. This opcodes are used, which are already in the 32 -bit mode for other commands. For this reason, the 64 -bit register - unlike the 32 -bit prefixes, which are also available in 16-bit mode only - available only in 64- bit mode.
Although for floating-point operations is for compatibility reasons an x87 FPU on the processor. However, the manufacturer generally recommends only to use the more performant and problem poorer SSE unit for floating-point calculations. The problem here, however, that SSE unit until today dominated no transcendental functions (sine, cosine, arctangent, logarithm ); they must continue to be calculated on the x87 FPU or emulated by software. In addition, the SSE unit is only capable of 64 -bit floating-point arithmetic, while the x87 FPU unit works internally with 80 -bit floating-point arithmetic.
Since no memory segmentation is supported in 64- bit mode, system calls can be greatly accelerated, as no more segmentation information must be saved and restored. AMD contributed to the introduction of a new SYSCALL machine instruction statement. Although as yet could perform a system call interrupts or the SYSENTER command theory in 64 -bit mode, SYSCALL is faster.
One of the main reasons for preferring AMD64 the x86 architecture, the ability to use more memory. If the memory you installed the maximum address space of a CPU, the memory remains, which is beyond the address space unused. The memory size limits the x86 processors:
- From 8086: Total Address Space 1 MiB, linear address space 64 KiB
- From 80286: total address space 16 MiB, linear address space 64 KiB
- ( 80386SX: the upper 8 address lines are not led out of the chip, so that the usable address space 16 MiB large)
With AMD64 the width of a virtual address is 48 bits. That is, a process capable of addressing 256 TiB. While in the usual, the introduction of AMD64 AMD processors generation K8 still had 40 address pins, and therefore could only address one TiB physically store the current processor generation K10 has the full address pins 48, which now physically addressable memory 256 TiB.
The doubling of the number of stops in the general arithmetic unit is in the instruction set independently from the 64 - bit transfer available. However, the implementation of the AMD64 extension in the CPUs includes this extension forever. Modern compilers can so often store intermediate values of calculations in CPU registers, rather than outsource to the main memory. Complex calculations are accelerated so that compute-intensive programs benefit from it.
At the same time a new calling convention for program functions ( ABI) was introduced with AMD64. In this calling convention function parameters are not transferred mainly through the program stack, as with the classic x86-32 calling conventions, but usually passed in registers. This register -based ABI, which (like PowerPC), with other processor families already longer common, was made possible by the Registrar extension and can lead to an acceleration of compute-intensive programs.
Modes of operation
We can distinguish two basic modes of operation:
- Long Mode: This mode consists of two sub-modes: 64- bit mode: The "real" 64- bit mode for 64 bit applications on a 64- bit operating system.
- Compatibility Mode: This mode is used to run 32bit applications on a 64 -bit operating system. The application " sees" while an environment that seems to correspond to protected mode. In truth, yet mechanisms of AMD64 architecture are used, such as a four-level page table hierarchy. Likewise, 16- bit protected -mode programs in Compatibility Mode are supported, but not real-mode programs that are running in legacy mode in a Virtual - 8086 Mode environment. The compatibility mode must be explicitly supported by the operating system and then can be enabled for a single code segment.
At system startup, a AMD64 processor is initially in real mode. Therefore, it is possible without any problems to run an old operating system: This would be the long mode, respectively, 64- bit mode, do not activate (since it does not know of its existence ), the CPU would run ie a maximum in legacy protected mode. A 64- bit operating system then switches the processor during boot first in the classical Protected Mode, then in the 64 -bit long mode.
Intel 64 - AMD64 from Intel
Since AMD meantime could bring many well-known OEM manufacturers in the AMD64 boat and also at the time of massive transition runs on 64-bit desktop and workstation computers, currently, almost all observers believe that AMD64 in the future, the most significant 64- bit will be architecture. This has now also recognized main competitor Intel and processors with Intel 64 (formerly EM64T also, Extended Memory 64 Technology, also known as IA- 32e ) in the offer. This happened mainly because Intel's own IA -64 architecture for desktop use is too expensive and, moreover, is still struggling with some conceptual difficulties, on the other hand, Microsoft had signaled to only want to support a 64 -bit extension in Windows.
Use of 64- bit extension
The latter advantage affects mainly databases and video editing, which greatly benefited from the expansion of addresses to 64 bits. The SSE - unit largely determines the execution of games and mathematical programs - as far as they involve complex part calculations on a few memory elements, they may benefit more from the advantages. This mainly concerns the areas of 3D modeling.
Basically the benefits are strongly specific to each application and the algorithms used: Use Many old programs on 32-bit optimized algorithms that can benefit from the 64- bit extension only after adaptation by programmers. This applies to both auxiliary mathematical functions (including multimedia and games) as well as memory management. Many programs from the Unix world here have a head start because there 64- bit architectures have long been common.