Opentopia Directory Encyclopedia Tools

AMD64

Encyclopedia : A : AM : AMD : AMD64


AMD64 (also x86-64 or x64) is a 64-bit microprocessor architecture and corresponding instruction set designed by Advanced Micro Devices. It is a superset of the x86 architecture, which it natively supports. The AMD64 instruction set is currently implemented in AMD's Athlon 64, Athlon 64 FX, Athlon 64 X2, Turion 64, Opteron and later Sempron processors. In an ironic twist of computing history, it has been adopted (under the name EM64T or IA-32e) by Intel—the original creators of the x86 processor line—in its newer Pentium 4, Pentium D, Pentium Extreme Edition, Celeron D, and Xeon processors. Microsoft's marketing instead used the term x64.

Architectural features

AMD's x86-64 instruction set (later renamed AMD64) is an extension of Intel's IA-32 (x86-32) architecture. The primary defining characteristic of AMD64 is its support for 64-bit general purpose registers, 64-bit integer arithmetic and logical operations, and 64-bit virtual addresses. The designers took the opportunity to make other improvements as well. The most significant changes include:

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 (x86-64) OS (e.g.WinXPx64, Linux x86-64, Solaris 10) yes 64 32 yes 64
Compatibility mode no 32 32 no 32
16 16 16
Legacy Mode Protected Mode Legacy 16-bit or 32-bit OS no 32 32 no 32
16 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 intended primary mode of operation of the architecture; it is a combination of the processor's native 64-bit mode and a 32-bit/16-bit compatibility mode. It is used by 64-bit operating systems. Under a 64-bit operating system, 64-bit, 32-bit and 16-bit (or 80286) protected mode applications may be supported.
Since the basic instruction set is the same, there is no major performance penalty for executing x86 code. This is unlike Intel's IA-64, where differences in the underlying ISA means that running 32-bit code is like using an entirely different processor. However, on AMD64, 32 bit x86 applications may still benefit from a 64-bit recompile, due to the additional registers in 64-bit code, which a high-level compiler can use for optimization.
Legacy Mode
The mode used by 16-bit (protected mode or real mode) and 32-bit operating systems. In this mode, the processor acts just like an x86 processor, and only 16-bit or 32-bit code can be executed. 64-bit programs will not run.

Market analysis

AMD64 represents a break with AMD's past behavior of following Intel's standards, but repeats 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.

It was believed at one point that 64-bit RISC chips such as the DEC Alpha would eventually replace the outdated and quirky x86 architecture. Part of the reason this did not happen was the vast investment in application software for x86 systems. AMD64 effectively migrates the x86 architecture into a fully 64-bit environment, while maintaining legacy compatibility with x86 applications.

Operating system support

The following operating systems and releases support the AMD64 architecture in long mode.

DOS

It is possible to enter long mode under DOS with a DOS extender similar to DOS4GW. DOS itself is not aware of that and no benefits should be expected unless running DOS in an emulation with an adequate virtualization driver backend e.g. for the mass storage interface. DOSBox is the program to use to run old DOS software or games for the AMD64.

FreeBSD

FreeBSD/amd64 is a Tier 1 platform, being first added as an experimental architecture in 5.1-RELEASE. The 6.0-RELEASE version cleaned up some quirks with running 32-bit executables under AMD64, and most drivers work just as they do on i386 architectures. Work is currently being done to fully integrate the i386 ABI, in the same manner as the Linux ABI currently works.

Linux

Recent releases of the Linux kernel (v2.6 as of this writing) can be built natively in long mode, supporting AMD64 and EM64T, with backwards compatibility for loading 32-bit executables and emulating the 32-bit system call API. This permits programs to be recompiled into long mode while retaining the use of 32-bit programs. Debian, Gentoo, Novell, SUSE, Fedora, Mandriva, Red Hat, CentOS, Ubuntu and PLD Linux distributions currently ship with AMD64-native kernels and userlands.

Mac OS X

AMD64 CPUs are recognized by hacked versions of Mac OS X "for Intel." A patch is needed to emulate SSE3 instructions on the earlier AMD64 chips that support only SSE2.

MenuetOS

The AMD64 version of MenuetOS was released in June 2005. Although Menuet was originally written for 32-bit x86 architectures and released under the GPL, the AMD64 version is proprietary. It is distributed as freeware with the source code for some components.

NetBSD

Support for AMD64 was first committed to the NetBSD source tree on June 19th, 2001. As of NetBSD 2.0, released on December 9th, 2004, NetBSD/amd64 is a fully integrated and supported port.

OpenBSD

OpenBSD has supported AMD64 since OpenBSD 3.5, released on May 1st, 2004. Complete in-tree support for the platform was achieved prior to the hardware's initial release due to AMD's loaning of several machines for the project's hackathon that year. OpenBSD developers have taken to the platform because of its use of the NX bit, which allowed for an easy implementation of the W^X feature.

The code for the AMD64 port of OpenBSD also runs on the Intel processors with EM64T support which contain cloned support for the AMD64 extensions, but since Intel left out support for the page table NX bit in early EM64T processors, there is no W^X support on those Intel CPUs; later Intel EM64T processors added support for the NX bit under the name "XD bit". SMP is supported on OpenBSD's AMD64 port, starting with release 3.6 on November 1st, 2004.

Solaris

Solaris has supported AMD64 since Solaris 10.

Windows

x64 editions of Windows client and server, Windows XP Professional x64 Edition and Windows Server 2003 SP1 x64 Edition, were released in March 2005. Internally they are actually the same build (5.2.3790.1830 SP1), as they share the same source base and operating system binaries, so even system updates are released in unified packages, much in the manner of Windows 2000 Professional and Server editions for x86. Windows for x64 has the following characteristics:

Implementations

The following processors implement the AMD64 architecture:

An AMD Athlon 64 processor
Enlarge
An AMD Athlon 64 processor

The following future processors will implement the AMD64 architecture:

See also

External links

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: