CPU、架构、指令集与系统
TL;DR
x86-32 = 32位
x86-64 = 64位
x64 = x86-64 = amd64 = em64t = ia32e(i家改名部也是挺厉害的)
x86 = x86-32 + x86-64 (依语境)
x86 = x86-32 (依语境)
CPU
我们的CPU从原来的8位,16位,到现在的32位和64位。
CPU处理计算的时候“数据”和“指令”是不同对待的。
8位的CPU,一次只能处理一个8位的“数据”或者一个8位的"指令"。比如00001101
. 又比如:“+1
”这个运算,你要先指示CPU做“+”,完成后再输入“1”数据给CPU。 8位的CPU优点是设计简单,处理速度比较快。 缺点就是:软件设计复杂,繁琐。不利于计算机的发展。
后来推出了16位的CPU,我们就可以一次处理两个字节(16位)的数据了,比如“加1”这个命令。“加”是一个指令,占用8个位,余下的8位我们可以存放数据“1”了。
32位的CPU就更加方便了,我们就可以一次处理一个a=a+b这样的命令了。
优点:简化了软件设计的复杂度 缺点:硬件设计更加复杂,计算速度下降。
一般来讲32位的CPU对于我们来讲是最理性的CPU,对于软件开发来讲足够了。
但是2的32次方 = 4294967296bit = 4G左右 很显然32位CPU只有4G左右的内存寻址空间,对于一些服务器来讲4G的内存的远远不够的了。我们需要更加大的内存寻址空间的话就需要对CPU进升级。64位CPU就这样诞生了。64位CPU的内存寻址空间是多少你算算看!呵呵。 2的64次方(理论上)。
但是现在的AMD和Inter的64位CPU并不是真正意义上的64CPU,只是进行了部分64位的改进,比如64位的内存寻址等。 要是真的全部都是64位的了,那么现在市场上的软件将全部被淘汰不能使用了~呵呵,想像一下会是什么样子。
目前主流CPU使用的64位技术主要有AMD公司的AMD64位技术、Intel公司的EM64T技术、和Intel公司的IA-64技术。其中IA-64是Intel独立开发,不兼容32位计算机,仅用于Itanium(安腾)以及后续产品Itanium 2,人们习惯性地称它为“纯64位技术”。
架构
狭义的x86架构,指只支持32位的Intel/AMD/NVDIA的CPU,并向下兼容16位(实模式);
狭义的x64架构,指的是支持32位和64位的Intel/AMD CPU,指令集与x86兼容,并向下兼容16位(实模式),目前绝大多数民用CPU和服务器CPU都是这样的;
狭义的ia64架构,指的是安腾系列的CPU,虽然指令集也是64位的,但不兼容32位,intel独有的,这种CPU比较少见,基本不生产了,近似于淘汰的状态;
广义的x86架构,泛指支持x86和x64架构Intel、AMD的CPU,但不包含ia64(安腾)。
x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人电脑的标准平台,成为了历来最成功的CPU架构。
其他公司也有制造x86架构的处理器,计有Cyrix(现为威盛电子所收购)、NEC集团、IBM、IDT以及Transmeta。Intel以外最成功的制造商为AMD,其早先产品Athlon系列处理器的市场份额仅次于Intel Pentium。
8086是16位处理器;直到1985年32位的80386的开发,这个架构都维持是16位。接着一系列的处理器表示了32位架构的细微改进,推出了数种的扩展,直到2003年AMD对于这个架构发展了64位的扩展,并命名为AMD64。后来英特尔也推出了与之兼容的处理器,并命名为Intel 64。两者一般被统称为x86-64或x64,开创了x86的64位时代。
值得注意的是英特尔早在1990年代就与惠普合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架构被称为IA-64。IA-64是一种崭新的系统,和x86架构完全没有相似性;不应该把它与x86-64或x64弄混。
系统
64位系统和32位系统的区别
操作系统只是硬件和应用软件中间的一个平台。
32位操作系统针对的32位的CPU设计。
64位操作系统针对的64位的CPU设计。
64位的操作系统针对64位CPU设计的,增加了一些64位的指令,但还是和32兼容的。对于普通用户来讲,64位系统意义不大。