x86-64(also known asx64, i.e. English wordssixty-four-bit exTended, short for 64 bit extension) isx86frameworkOf64 bitExtended, backward compatible with 16 bit and32-bitX86 architecture.X64 was created in 1999 byAMDBy design, AMD first exposes a 64 bit set to extend to x86, called“AMD64”。LaterIntelIt is called by Intel“Intel 64”, previously used "Clackamas Technology" (CT), "IA-32e" and "EM64T".
Apple IncandRPM Package AdministratorThis 64 bit architecture is referred to as "x86-64" or "x86_64".OracleandMicrosoftCall it "x64".BSDFamily and other Linux distributions use "x64-64", and 32-bit versions are called "i386" (or i486/586/686),Arch LinuxThis 64 bit architecture is called x86_64.
x86-64(also known asx64, i.e. English wordssixty-four-bit exTended, short for 64 bit extension) isx86frameworkOf64 bitExpand, backward compatible with16 bitand32-bitX86 architecture.X64 was created in 1999 byAMDBy design, AMD first exposes a 64 bit set to extend to x86, called“AMD64”。LaterIntelIt is called by Intel“Intel 64”, previously used "Clackamas Technology" (CT), "IA-32e" and "EM64T".
Apple IncandRPM Package AdministratorThis 64 bit architecture is referred to as "x86-64" or "x86_64".OracleandMicrosoftCall it "x64".BSDFamily and othersLinux distribution"X64-64" is used, and the 32-bit version is called "i386" (or i486/586/686),Arch LinuxThis 64 bit architecture is called x86_64.
Before x86-64, Intel andHPJointly designedIA-64framework;However, IA-64 is not compatible with x86, and the market reaction is relatively cold. At the same time, IA-64 is subject to multiplepatent 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 universalregister, 64 bit integer and logical operation, and 64 bitVirtual addressThe designers also made many improvements to the architecture, and some major changes are as follows:
NX bitOne of the characteristics of AMD64 is that it has "No Execute" bits, which can preventworm-type viruswithbuffer overflow To attack.
market analysis
AMD64 represents that AMD has abandoned its consistent style of following Intel standards and has chosen a 16 bitIntel 8086Expand to 32-biteighty thousand three hundred and eighty-sixOK, go get itx86The architecture is extended to 64 bit version and compatible with the original standards.
AMD64 architectureIA-32A 64 bit register is added on the, and is compatible with the earlier 16 bit and 32-bit software, which can make the existing x86compilerEasy to convert to AMD64 version.besides,NX bitIt is also one of the striking features.
Many people think that, likeDEC Alpha64 bit likeRISCChips will eventually replace the existing outdated and changeablex86framework.But in fact, the application software for x86 system is too large, which is the main reason why Alpha cannot replace x86. AMD64 can effectivelyx86The architecture is moved to a 64 bit environment and can be compatible with existing x86 applications.
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 2004Intel Developer ForumLater, Intel named it "IA-32E", which meansIA-32Extension 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 ItaniumIA-64The 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 technologyimitation;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 thatsecrecyIn 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 technologyIntel 64。
Architecture features
Intel 64 allows processors to directly access more than 4GB of memory, allowing larger applications to run.andx86-64The 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 previouslyItaniumThe processor uses its own 64 bitIA-64Although 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 toXeonModel, supports dual processors, and its core name is Nocona.Because Xeon is directly based on desktopPentium 4The Pentium 4 motherboard can also use Intel 64, such asHyper 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 systemsLong mode(long mode).
DOS
stayDOSThrough DOS Extender (such asDOS4GW)To enter protected mode.
FreeBSD
FreeBSDIn 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
LinuxThe 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.6Snow LeopardStart providing 64 bitkernel, and can be used inPartial processorOpen the 64 bit kernel on the.The 64 bit kernel only supports 64 bitKernel extensionAnd 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.5LeopardAt Intel andPowerPCProvide pair onCocoa,Quartz,OpenGLAndX1164 bit support for GUI programs, and support all command line libraries and programs.But the kernel is still only 32-bit.
Mac OS X UseUniversal BinaryThe 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 IncFrom April 2018macOS High SierraWhen 32-bit applications are running in the operating system, a message will be prompted.And has been issued in June 2018WWDCAnnounced onmacOS MojaveIt will be the last version of macOS that supports 32-bit applications.
MenuetOS
X86-64 versionMenuetOSThe system was launched in June 2005. Although the original 32-bit version of Menuet is licensed by GPL, the x86-64 version remains exclusive andfreewareAnd provide the source code of some components.
NetBSD
X86-64 versionNetBSDFirst proposed on June 19, 2001, NetBSD 2.0 launched on December 9, 2004 can fully support x86-64.
OpenBSD
OpenBSDX86-64 has been supported since version 3.5, which was introduced on May 1, 2004.
Solaris
HeliotropicSolarisX86-64 has been supported since version 10.
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 asMicrosoftandSolar microsystemUse "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.
BSDSystem (e.gFreeBSD、NetBSDandOpenBSD)And someLinuxRelease (e.gDebian、Ubuntu, andGentoo)Both AMD64 and Intel64 are called "amd64".Red HatOfRPMThe x86-64 is called x86_64 or x86-64, and the 32-bitIA-32It is called i * 86 (* is the number 3-6, such as i386).Arch LinuxCall x86-64 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.