温故知新,计算机CPU架构AMD64、Intel 64、X86-64背后的故事
我们熟知的Windows系统的X64其实是对X86-64的缩写,这个标准最早是由AMD提出的,所以另外一个名称叫AMD64,Intel后来推出一样的东西,取名为Intel 6,它的实质是x86指令集的64位扩展超集。
x86
1978年x86架构鼻祖英特尔8086问世
1978年6月,Intel发布了新款16位微处理器8086,开创了一个全新时代,x86架构由此诞生。x86架构指的是特定微处理器执行的计算机语言指令集,定义了芯片的基本使用规则。
事实上,8086处理器发布之初并没有获得太多关注,也没有被大范围采用。但8086在PC历史上的地位,怎么形容都不为过。这是因为它带来x86架构,奠定了Intel在微处理器界的霸主地位,也成为了一种业界标准。
在此后40年的发展中,x86家族不断壮大,从桌面转战笔记本、服务器、超级计算机、移动设备,期间还打败了众多竞争对手,让不少处理器厂商及其架构技术成为历史名字。比如2005年,苹果就放弃了IBM的PowerPC架构,全面转入Intel怀抱。
amd64(x86-64)
2003年,AMD推出了业界首款64位处理器Athlon 64,带来了amd64(x86-64)指令集,即x86指令集的64位扩展超集,具备向下兼容的特点。amd64代表AMD放弃跟随Intel标准的一贯作风,类似Intel把16位的8086扩充成32位的80386那样,把x86架构扩充成64位版本,且兼容原有标准。
IA64、EM64T
在amd64(x86-64)出现以前,英特尔与惠普联合设计出IA64架构,但IA64并不与x86兼容,只是用在服务器处理器Itanium(安腾)上。Intel不想引起客户混淆,把高贵的Itanium(安腾)IA-64处理器与x86混为一谈。IA64处理器市场反应较冷淡,同时受制于多个专利权,使其他厂商不能模仿。
为了和AMD展开竞争,Intel在2004年推出了自己的64位版x86,也就是EM64T(Extended Memory 64 Tenchnology,扩展64位内存技术)。Intel这种实现64位的方法和AMD的x86-64技术有异曲同工之妙,都是通过64位扩展指令同时兼容32位和64位运算。
其实Intel早就有64位处理器计划,眼见使用amd64的Opteron(皓龙)及Athlon(速龙)取得成功,Intel的计划被打乱。Intel为了自身的面子,必然不能承认使用了对手AMD的技术,因此Intel把该技术以EM64T这个名字来推出,实际上与AMD64几乎相同。另外,如果使用amd64这个名字,等于在帮对手做广告宣传。
在以往Intel的行销中,Intel总把AMD的产品贬为自家技术的仿制品。不过这回AMD率先开发民用64位技术,并取得成功,Intel需要反过来吸纳AMD的技术,使Intel在研发x86处理器技术的领导地位受到重挫。在EM64T的资料中,Intel对其指令集的起源只字不提,后来索性将此技术正式命名为Intel 64。
对此,AMD和Intel互相指责对方,但无论如何至少推动了64位技术的发展和普及,也让x86技术得以发扬光大,平稳过渡。
第三方
由于amd64和Intel 64基本上一致,很多软硬件产品都使用一种不倾向任何一方的词汇来。出于这个目的,AMD对这种CPU架构的原始称呼x86-64被不时地使用,还有变体x86_64。其他公司如微软和Sun在营销资料中使用x64作为对x86-64的缩写。许多操作系统及产品,尤其那些是在Intel进入这块市场之前就引入x86-64支持的,使用amd64同时指代amd64和Intel 64。