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。
x86:Intel从16位微处理器8086开始的整个CPU芯片系列,系列中的每种型号都保持与以前的各种型号兼容,主要有8086,8088(前面两个是16位CPU),80186,80286(这两个是过渡产品), 80386,80486以及以后各种型号的Pentium芯片[奔腾,P2, P4,赛扬...](这些都是32位CPU)
x86-64:如下是维基百科上的解释,大致翻译一下,x86-64是x86指令集的超集,在x86处理器上可以运行的程序可以运行在x86-64上(这也是为啥现在买的一些64bits CPU可以直接运行Win XP的原因)。x86-64是AMD发明的,也叫AMD64,Intel克隆了一把,叫做Intel 64,也叫EM64T。
x86-64 is a 64-bit superset of the x86 instruction set architecture. Because the x86-64 instruction set is a superset of the x86 instruction set, all instructions in the x86 instruction set can be executed by central processing units (CPUs) that implement the x86-64 instruction set; therefore these CPUs can natively run programs that run on x86 processors from Intel, Advanced Micro Devices (AMD), and other vendors.
x86-64 was designed by AMD, who have since renamed it AMD64. It has been cloned by Intel under the name Intel 64 (formerly known as EM64T among other names).[1] This leads to the common use of the names x86-64 or x64 as more vendor-neutral terms to collectively refer to the two nearly identical implementations.
x86和x86-64可以认为就是一种特定的指令集
i386:也是维基上的解释,也就是指Intel 80386,是第一个32位的x86架构的处理器,用了20多年了,后面出的 486(80486,i486),586(80586,Pentium,P5),686(80686,Pentium Pro,P6)等等都与之兼容。
The Intel 80386, otherwise known as the Intel386, i386 or just 386, is a microprocessor which has been used as the central processing unit (CPU) of many personal computers and workstations since 1986. It was the first x86 processor to have a 32-bit architecture, with a basic programming model that has remained virtually unchanged for over twenty years and remains completely backward compatible.
IA32:可以认为就是x86或者x86-32,也是一个指令集。
IA-32 (Intel Architecture, 32-bit), often generically called x86 or x86-32, is the instruction set architecture of Intel's most commercially successful microprocessors. It is a 32-bit extension, first implemented in the Intel 80386, of the earlier 16-bit Intel 8086, 80186 and 80286 processors and the common denominator for all subsequent x86 designs. This architecture defines the instruction set for the family of microprocessors installed in the vast majority of personal computers in the world.
IA64:就是所谓的安腾,Intel跟HP联合折腾的一种64-bits全新架构,与x86系列不兼容,号称采用了很多非常好的体系结构方面的技术,但是没火起来,差点被AMD抓住机会cei掉Intel(有一阵中关村装机都流行AMD平台)。再次证明光有好的技术是行不通的,还要有市场眼光啊。
Itanium is the brand name for 64-bit Intel microprocessors that implement the Intel Itanium architecture (formerly called IA-64). Intel has released two processor families using the brand: the original Itanium and the Itanium 2. Starting November 1, 2007, new members of the second family are again called Itanium. The processors are marketed for use in enterprise servers and high-performance computing systems. The architecture originated at Hewlett-Packard (HP) and was later developed by HP and Intel together.
注:所谓16位,32位,64位的CPU一般是指处理器中“算数逻辑单元(ALU)”或者CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度。此外还有数据总线宽度和地址总线宽度两个参数,前者决定了CPU在进行运算时,一次可以并行拿到的二进制数据bit数(可以想想C语言中short/int/long型数据分别的位数),通常与ALU的宽度相同(极个别例外),而后者决定了内存地址空间的大小(16位的地址总线,就是64K,32位就是4G,64位是128T;可以想一下C语言中指针所占的二进制长度),地址总线宽度自然来讲应该是跟数据总线宽度一致,但由于诸多原因(历史,技术,兼容性等等)不是这样。
另外,还有操作系统的位数区分,可以认为是word size(字长),也就是一个整数和指针数据的长度,原则上就是指上述CPU位数(即通用寄存器的位数),但同时也决定了操作系统能够支持的最大内存容量(每个进程能够使用的虚拟内存大小,严格说来没有这么多)。