x86、amd64、x86-64、x64以及ia64的基本概念

时间:2022-09-01 07:43:15

http://www.liuyongkang.com/archives/487.html


X86

x86是一个指令集,是刚有个人电脑时候的什么8086,286,386的那个兼容的指令集。

 

x86-64

  x86-64有时会简称为“x64”,是64位微处理器架构及其相应指令集的一种,也是Intel x86架构的延伸产品。“x86-64”1999由AMD设计,AMD 首次公开 64 位集以扩充给 IA-32,称为 x86-64(后来改名为 AMD64)。 其后也为Intel所采用,现时英特尔称之为“Intel 64”.

 

AMD64

     AMD64架构在IA-32上新增了64位寄存器,并兼容早期的16位和32位软件,可使现有以x86为对象的编译器容易转为AMD64版本。

由于AMD64和Intel64基本上一致,很多软硬件产品都使用一种不倾向任何一方的词汇来表明它们对两种架构的同时兼容。出于这个目的,AMD对这种CPU架构的原始称呼——

“x86-64”被不时地使用,还有变体“x86_64”。其他公司如微软和Sun在营销资料中使用“x64”作为对“x86-64”的缩写。

许多操作系统及产品,尤其那些是在Intel进入这块市场之前就引入“x86-64”支持的,使用“AMD64”或“amd64”同时指代AMD64和Intel64。

 

IA-64

     Intel在之前已在Itanium处理器上使用了自家的64位IA-64技术,虽然说Intel 64也是64位,但两者并不兼容,即IA-64的软件不能直接在Intel 64上运行。Intel 64所用的x86-64是IA-32指令集的延伸,而IA-64则是另一款独立的架构,没有任何IA-32的影子。虽然IA-64可通过模拟来运行IA-32的指令,但指令在运行前需经转换,才能在IA-64上运行,导致其速度变慢。由于x86-64是从IA-32派生而来,因此运行IA-32与64位程序的表现也显得绰绰有余。

 

    32位操作系统,配合32位CPU,寻址空间位2^32次方,计算出来是4294967296字节,就是4G,32位系统最大支持4G空间,如果想要32位系统支持4G以上空间的话,就要用PAE的特殊内核,采用特殊方式访问,但是系统效率会比原生的64位系统低。当然有时有的Linux只能识别到3G多,因为据说是当初在设计上的缺陷。这里不做详解。

     而64位操作系统配合64位CPU,寻址空间是2^64次方,计算出来是18446744073709551616字节,换算一下4G个G,太大了,反正是N多G,一辈子也用不完。当然这是64位系统的理论最大内存支持,实际上谁也用不了这么大内存.
因此我们要下载64的操作系统,而我们看到有64的操作系统最经常见到的有ia64/amd64,它们如何区分呢,哪些CPU是属于AMD64,哪些是属于IA64呢?

其实很多人从字面上,都以为AMD64就是针对AMD CPU的,IA64是针对INTEL CPU,其实是错的,我最初也是这样认为,其实不然:

你在市面上买的到的intel 64位 CPU都属于amd64范畴这个架构应该称为 x86_64,因此不管是AMD的64位CPU,还是INTEL的64位CPU,都是属于AMD64范畴.

而IA64指的是Intel安腾系列CPU,不是X86架构的。ia64主要用在服务器上面,而不是我们平常使用的桌面,通常这些cpu很贵,相关的内存以及硬盘同样很贵!

因此你以后你PC的CPU是64位的[有Intel,也有AMD],非安腾的CPU的话,你就下载AMD64的OS进行安装即可.

目前市场上Intel兼容处理器可以实现64位计算的主要有3种:

1) Intel IA64,基于安腾2处理器,不兼容32位应用,软件相对本模式的版本叫 xxx for Itanium 。
2) Intel EM64T,基于Xeon DP “Nocona”和MP处理器,兼容32位应用,软件相对本模式的版本叫 xxx for  x86-64。
3) AMD AMD64,基于Opteron处理器,兼容32位应用,软件相对本模式的版本叫 xxx for  x86-64。