整理了下网上的资料,归类了下,大似表述是这样的:
IBM/PC兼容机,也就是Intel的i80x86指令架构,就简称了x86。
x86并非指32位环境,而是指80x86架构,这个架构目前有32位,64位两种。
曾经据说还包括了过8位和16位,不过我没机会看过。架构
习惯上来讲,x86架构就是32位的,但AMD扩展出了64位环境,并且64位硬件支持32位,称为amd64
intel叫EM64T,EM64T本质上和amd64同样都是IA-32的加强版本,Xeon借助于EM64T可实现高达1TB(40bit)的物理内存寻址和256TB(48bit)的虚拟内存寻址,而且良好地支持现有32位x86代码的执行,这一点跟AMD64无异,同时也是Intel开发EM64T的出发点—让现有的x86指令集可以执行64位代码,而继续保持对32位代码的良好兼容。但因为多方面的限制,不管是EM64T仍是AMD64均只能实现比32位指令集更大内存空间的寻址,而没法真正作到纯64位指令集的1PB(50bit)和16EB(64bit)的物理内存和虚拟内存寻址(IA-64就能作到这一点),其关键在于EM64T和AMD64本质上还是基于32位的x86指令集,只是Intel和AMD分别采用不一样的技术手段对x86指令集进行扩展,从而实现对64位的支持。内存
大多数状况下,amd64不叫amd64也不叫em64t,而是x86_64,从而代表他和x86这个32位的关系。
其实x86其实也不全叫x86,Linux下还分红 i386 i486 i586 i686。如当年intel推出的新一代586处理器,叫Pentium(奔腾)。
后面的64就成了这个架构的一个分支指令集的描述。x86就成了一个统称,而不是专指32位环境。
所以,要明白x86的涵义,那个x能够是3,4,5,6等等。开发
扩展信息:it
x86:指Intel制造的普通CPU(提出x86这个表示法时,我的电脑上以32位Intel的CPU为主)
x64:x86_64的缩写(同时也至关于amd64,em64t),指x86的基础上加入64位地址扩展
IA32:表示纯32位架构
IA64:表示纯64位架构
表示32位兼容的64位架构用(AMD是这一架构的主要生产商)。基础