x86与x64
x86和x64最重要的区别在于前者是32位体系结构,后者是64位指令集体系结构。指令集体系结构(ISA)是一个非常重要的术语,适用于任何CPU。指令、内存寻址、寄存器和CPU的许多其他体系结构部分都是由ISA指定的。x86是英特尔1978年推出的世界著名的ISA,采用8086处理器。然后各种扩展发生了,在2000年,AMD创建了一个规范,以AMD64的名称将x86指令集扩展到64位。后来,其他公司,如Intel,也实现了该规范,而AMD64就是用名称x64标识的AMD64。
什么是x86个(x86)?
x86是英特尔公司推出的一种指令集体系结构,采用著名的8086处理器。1978年,英特尔推出了一款16位处理器8086。后来他们又引进了各种处理器,如80186、80286、80386和80486,它们都与8086处理器中使用的原始指令集向后兼容。由于所有这些处理器都以86结尾,因此指令集体系结构被命名为x86。随着80386的引入,x86指令被扩展到32位系统。这里,32位意味着所有寄存器、内存总线和数据总线都是32位的。然后奔腾处理器出现了奔腾I、奔腾II、奔腾III、奔腾IV,所有这些都遵循32位体系结构。但是x86体系结构中还出现了其他各种扩展,比如添加了MMX、SSE和SSE2等指令。除此之外,还进行了许多其他改进。然后,x86指令集被扩展到64位指令集,从这一点开始,它被称为x64,我们将在下一节中讨论。总之,一般来说,x86指的是32位体系结构,它是从8086处理器出现的16位体系结构演变而来的。
什么是x64个(x64)?
一个32位系统只能代表232个不同的值,因此,内存寻址被限制在这个数量的地址。232字节等于4GB,因此x86的最大可寻址内存限制为4GB。为了克服这个问题,对x86体系结构做了进一步的扩展。AMD在2000年左右推出了这样的规范,将x86体系结构扩展到64位。这是以AMD64的名义引入的。x64是这个AMD64体系结构的另一个名称。这种AMD64或x64体系结构也称为x86_64。在64位体系结构中,所有寄存器变为64位,内存总线和数据总线也变为64位。现在可以寻址264个不同的值,这对可能的最大内存有一个很大的上限。AMDK8是第一个实现这种64位体系结构的处理器。后来英特尔也采用了这种架构。从Intel Core 2开始的Intel Core处理器,Intel开始在其处理器中使用此架构。目前,所有英特尔处理器,如酷睿i3、酷睿i5和酷睿i7都使用这种x64架构。需要强调的是,这种x64体系结构仍然与旧的x86指令集向后兼容。
x86个(x86)和x64个(x64)的区别
•x86大约在1978年推出,而x64则在2000年出现。
•x86源于著名的Intel 8086处理器,因此,x86由Intel推出。但作为x86的扩展而来的x64是由AMD推出的。
•x86体系结构为32位。(最初的x86处理器是16位的,但是在后来的处理器中,扩展到了32位)。x64体系结构为64位。
•因此,采用x86指令集架构的处理器有32位寄存器、32位内存总线和32位数据总线。但x64有64位寄存器、64位内存总线和64位数据总线。
•x86对最大可寻址内存的限制是4 GB(232字节)。但是,在x64系统上,这个限制非常大,即264字节。
•x64是x86的扩展;因此,它比旧的x86有了很大的改进和强大。
•在x64系统中,可以存储在寄存器中的值大于可以存储在基于x86的寄存器中的值。因此,x64可以更快地处理更大整数的计算,因为在这种情况下没有必要使用多个寄存器来分割值并像x86那样存储。
•x64可沿数据总线并行传输较大尺寸的数据。也就是说,64位的数据总线可以并行传输64位,而具有32位总线的x86体系结构只能并行传输32位。
小结:
x86与x64
x86指令集体系结构为32位,x64指令集体系结构为64位。x64是现有x86体系结构的扩展。x86体系结构上的寄存器、内存总线、数据总线是32位的,而在x64上是64位。因此,x64系统中可寻址的最大内存量远远高于x86系统。x86是由Intel推出的,8086处理器是一个16位处理器,随着时间的推移,x86扩展到了32位。后来,AMD通过扩展现有的x86体系结构引入了x64体系结构,这种x64完全向后兼容x86指令集。
- Appalosa提供的Intel 8086(CC by-SA 3.0)
- Appalosa的64位处理器(CC比3.0)