x86 refers to Intel's development of a 32-bit instruction set, starting from the beginning of the 386 era, has been used to date, is a CISC instruction set, all Intel early CPU,AMD early CPU support this instruction set, Ntel Official document is called "IA-32"
X84_64 is the x86 CPU starts to 64 bits, there are 2 options: 1, backward compatible x86. 2, completely redesigned instruction set, incompatible with x86. AMD False start, the first to create a commercially compatible x86 cpu,amd called AMD64, robbed the 64-bit PC of gold and was recognized by the user. And Intel chose to design an incompatible x86 of the new 64 as the instruction set, called IA-64 (which seems to be Itanium), but a step behind AMD, and IA-64 is very bleak, because it is a completely new design of the CPU, no compiler, Also does not support Windows (Microsoft has fooled Intel, promised to release the version of the version of Windows Server, but slow to get things) ... Later had to start supporting AMD64 's instruction set under the circumstances, but changed the name, called X86_64, said to be the 64 extension of the x86 instruction set, presumably unwilling to admit that this thing was designed by AMD.
That is, in fact, X86_64,X64,AMD64 is basically the same thing, we are now using the INTEL/AMD desktop-level CPU is basically x86_64, and the relative ARM,PPC is not x86_64.
The main differences between x86 and x86_64 are the 32-bit and 64-bit problems, with only 8 32-bit general-purpose registers in x86, Eax,ebx,ecx,edx, EBP, ESP, ESI, EDI. The x86_64 expands the 8 general-purpose registers to 64-bit and adds several registers (as if 8 have been added to a total of 16 general-purpose registers) than x86. The number of bits and numbers of the same MMX registers is also extended. In addition, the CPU expands to 64 bits to support more memory, and so on many benefits.
For ordinary programs, the expansion of the number of CPUs, the increase in the number of registers will not lead to significant performance gains, such as IE browser, office office, such as software. The specific program can take full advantage of the 64-bit CPU, more register advantages, such as MMX in addition to improve the performance of multimedia programs, the matrix, polynomial, vector computing can bring improvements, more MMX register, a larger register word length is conducive to the execution of SIMD instructions, Ability to increase CPU data throughput (RISC instruction set CPU has hundreds of registers, can effectively cache intermediate results, do not need to write the intermediate result to memory, thus reduce memory access times, significantly improve performance)
What is the difference between X86 and x86_64 and X64?