Collection
zero Useful+1
zero

X86-64

64 bit expansion of x86 architecture
x86-64 (also known as x64 , i.e. English words sixty-four -bit e x Tended, short for 64 bit extension) is x86 framework Of 64 bit Extended, backward compatible with 16 bit and 32-bit X86 architecture. X64 was created in 1999 by AMD By design, AMD first exposes a 64 bit set to extend to x86, called“ AMD64 ”。 Later Intel It is called by Intel“ Intel 64 ”, previously used "Clackamas Technology" (CT), "IA-32e" and "EM64T".
Apple Inc and RPM Package Administrator This 64 bit architecture is referred to as "x86-64" or "x86_64". Oracle and Microsoft Call it "x64". BSD Family and other Linux distributions use "x64-64", and 32-bit versions are called "i386" (or i486/586/686), Arch Linux This 64 bit architecture is called x86_64.
Chinese name
X86-64
Foreign name
X86-64
Support
64 bit
Compatible
X86 instruction set
Launch company
AMD
Abbreviation
X64

Introduction to architecture

Announce
edit
x86-64 (also known as x64 , i.e. English words sixty-four -bit e x Tended, short for 64 bit extension) is x86 framework Of 64 bit Expand, backward compatible with 16 bit and 32-bit X86 architecture. X64 was created in 1999 by AMD By design, AMD first exposes a 64 bit set to extend to x86, called“ AMD64 ”。 Later Intel It is called by Intel“ Intel 64 ”, previously used "Clackamas Technology" (CT), "IA-32e" and "EM64T".
Apple Inc and RPM Package Administrator This 64 bit architecture is referred to as "x86-64" or "x86_64". Oracle and Microsoft Call it "x64". BSD Family and others Linux distribution "X64-64" is used, and the 32-bit version is called "i386" (or i486/586/686), Arch Linux This 64 bit architecture is called x86_64.

AMD64

Announce
edit
AMD64 The instruction set is applied to the Athlon 64 Athlon 64 FX Athlon 64 X2 Turion 64 Turion 64 X2 Opteron And newer Sempron Phenom AMD APU AMD Ryzen On the processor.

Architecture features

Before x86-64, Intel and HP Jointly designed IA-64 framework; However, IA-64 is not compatible with x86, and the market reaction is relatively cold. At the same time, IA-64 is subject to multiple patent right , so that other manufacturers cannot imitate. The x86 compatible AMD64 architecture came into being. Its main features are as described in the name. It supports 64 bit universal register , 64 bit integer and logical operation, and 64 bit Virtual address The designers also made many improvements to the architecture, and some major changes are as follows:

market analysis

AMD64 represents that AMD has abandoned its consistent style of following Intel standards and has chosen a 16 bit Intel 8086 Expand to 32-bit eighty thousand three hundred and eighty-six OK, go get it x86 The architecture is extended to 64 bit version and compatible with the original standards.
AMD64 architecture IA-32 A 64 bit register is added on the, and is compatible with the earlier 16 bit and 32-bit software, which can make the existing x86 compiler Easy to convert to AMD64 version. besides, NX bit It is also one of the striking features.
Many people think that, like DEC Alpha 64 bit like RISC Chips will eventually replace the existing outdated and changeable x86 framework. But in fact, the application software for x86 system is too large, which is the main reason why Alpha cannot replace x86. AMD64 can effectively x86 The architecture is moved to a 64 bit environment and can be compatible with existing x86 applications.

Intel 64

Announce
edit
Intel 64 The instruction set is applied to Pentium 4 Pentium D Pentium Extreme Edition Celeron D Xeon Intel Core 2 Intel Core i3 Intel Core i5 Intel Core i7 and Intel Core i9 On the processor.

development history

The history of Intel 64 program is quite long and complex, mainly because of Intel's internal affairs. At the beginning of the plan, its code name was "Yamhill", but Intel has always claimed that its plan does not exist; By the beginning of 2004, Intel had changed its name to CT (Clackamas Technology). Within weeks of announcing the CT plan, Intel gave the plan several new names. In the spring of 2004 Intel Developer Forum Later, Intel named it "IA-32E", which means IA-32 Extension of; It was renamed EM64T several weeks later.
Intel kept the plan confidential for a long time for the following two reasons. First, Intel does not want to confuse information with customers, and will take the future Itanium IA-64 The prospect of processors is confused with x86; However, when Intel sees the success of Opteron and Athlon 64 using AMD64, it needs to confront the threat of competitors. The second reason is that Intel, for its own sake, will not admit to using rival AMD's technology. Therefore, Intel launched this technology under the name of EM64T. Although the core is almost the same as AMD64, which is like a pair of twins, if Intel uses the name of AMD64, it will be tantamount to helping the rival to advertise. In past Intel's marketing, Intel always demoted AMD products to its own technology imitation However, this time AMD took the lead in developing civil 64 bit technology, and Intel needs to absorb AMD's technology in turn, which has severely undermined Intel's leadership in developing x86 processor technology. Therefore, Intel needs to use more manpower and material resources to create momentum. Craig Barrett, chairman of Intel, later admitted that secrecy In terms of protection, this secret is the worst.
In Intel 64 (EM64T) files, the origin of its instruction set is not mentioned at all; Therefore, some media gave it the nickname "iAMD64", satirizing that Intel used AMD's technology in its civil 64 bit technology to attack AMD, directly absorbed AMD64, and repackaged it under a new name. Later, Intel simply officially named this technology Intel 64

Architecture features

Intel 64 allows processors to directly access more than 4GB of memory, allowing larger applications to run. and x86-64 The architecture also adds additional registers and other improvements to the instruction set. Through the upper limit of 64 bit memory address, the maximum theoretical memory size is 16000000TB (16EB), but the initial application did not support a full 64 bit address.
Intel has previously Itanium The processor uses its own 64 bit IA-64 Although Intel 64 is also 64 bit, the two are not compatible, that is, IA-64 software cannot run directly on Intel 64. The x86-64 used by Intel 64 is an extension of IA-32 instruction set, while IA-64 is another independent architecture, without any shadow of IA-32. Although IA-64 can run IA-32 instructions through simulation, the instructions need to be converted before they can run on IA-64, resulting in slower speed. Because x86-64 is derived from IA-32, it is more than enough to run IA-32 and 64 bit programs.
The first processor using Intel 64 technology belongs to Xeon Model, supports dual processors, and its core name is Nocona. Because Xeon is directly based on desktop Pentium 4 The Pentium 4 motherboard can also use Intel 64, such as Hyper Threading (Hyper Threading), etc. However, the Prescott version of Intel 64 was not activated at the initial stage, probably because it was not perfect at that time. Intel 64, known as Pentium 4 F, is available for Pentium 4 processors using the newer version of Prescott core E0. In addition, the updated version of E0 has added the "prohibit running" bit, called XD bit (eXecute Disable), which is equivalent to the NX bit of AMD64.

System support

Announce
edit
Supported by the following operating systems Long mode (long mode).
DOS
stay DOS Through DOS Extender (such as DOS4GW )To enter protected mode.
FreeBSD
FreeBSD In the official version 5.1, it was tested for x86-64, and in the official version 6.0, it solved some problems in running 32-bit programs on x86-64, and it can support many drivers.
Linux
Linux The 2.6 kernel starts to add long mode, supports x86-64, is compatible with 32-bit programs and analog 32-bit systems, and allows programs to be compiled into 64 bit versions in a 32-bit environment.
Mac OS X
Mac OS X 10.6 Snow Leopard Start providing 64 bit kernel , and can be used in Partial processor Open the 64 bit kernel on the. The 64 bit kernel only supports 64 bit Kernel extension And vice versa; But for ordinary applications, both 32-bit and 64 bit kernels can support applications with two bit widths, but 32-bit programs can only use 4GB of memory space.
Mac OS X 10.5 Leopard At Intel and PowerPC Provide pair on Cocoa , Quartz , OpenGL And X11 64 bit support for GUI programs, and support all command line libraries and programs. But the kernel is still only 32-bit.
Mac OS X Use Universal Binary The file format packages 32-bit and 64 bit programs and library code in the same file, and automatically selects the most appropriate version when loading. In Mac OS X 10.6, the kernel and kernel extensions also use a common binary format to support both architectures.
Apple Inc From April 2018 macOS High Sierra When 32-bit applications are running in the operating system, a message will be prompted. And has been issued in June 2018 WWDC Announced on macOS Mojave It will be the last version of macOS that supports 32-bit applications.
MenuetOS
X86-64 version MenuetOS The system was launched in June 2005. Although the original 32-bit version of Menuet is licensed by GPL, the x86-64 version remains exclusive and freeware And provide the source code of some components.
NetBSD
X86-64 version NetBSD First proposed on June 19, 2001, NetBSD 2.0 launched on December 9, 2004 can fully support x86-64.
OpenBSD
OpenBSD X86-64 has been supported since version 3.5, which was introduced on May 1, 2004.
Solaris
Heliotropic Solaris X86-64 has been supported since version 10.
Windows
For client use Windows XP Professional x64 Edition And for the server Windows Server 2003 SP1 x64 Edition Both were launched in March 2005. Windows Vista Windows Server 2008 Windows Server 2012 Windows Server 2012 R2 Windows Server 2016 Windows Server 2019 Windows 7 Windows 8 Windows 8.1 as well as Windows 10 There are corresponding 64 bit versions. from Windows Server 2008 R2 Started Windows Server operating system Only 64 bit versions are available.

Appellation convention

Announce
edit
Because AMD64 and Intel64 are basically the same, many software and hardware products use a term that does not favor either side to indicate that they are compatible with both architectures. For this purpose, AMD's original name for this CPU architecture - "x86-64" has been used from time to time, and there is also a variant "x86_64". Other companies such as Microsoft and Solar microsystem Use "x64" as the abbreviation for "x86-64" in marketing materials.
Many operating systems and products, especially those that introduced "x86-64" support before Intel entered this market, use "AMD64" or "amd64" to refer to both AMD64 and Intel64.
  • BSD System (e.g FreeBSD NetBSD and OpenBSD )And some Linux Release (e.g Debian Ubuntu , and Gentoo )Both AMD64 and Intel64 are called "amd64". Red Hat Of RPM The x86-64 is called x86_64 or x86-64, and the 32-bit IA-32 It is called i * 86 (* is the number 3-6, such as i386). Arch Linux Call x86-64 x86_64.
  • Fedora PackageKit The 64 bit architecture is called "x86_64".
  • Java Development Kit (JDK): The directory containing x86-64 files is named "amd64".
  • Mac OS X : The command arch under the terminal and the developer's documentation indicate that Apple calls the 64 bit architecture "x86_64".
  • Microsoft Windows : It is called "x64" to use 64 bit technology on IA-32 processors, but some related directories are marked with AMD64. For example, the system directory on the Windows x64 installation CD is named "AMD64", while the 32-bit version uses "i386".
  • Solaris : The operating system command isalist defines both AMD64 and Intel64 as "amd64". [1]

Application products

Announce
edit
The following processor products use x86-64 technology. As of September 2018, almost all consumer products in the market use x86-64 technology.