当前位置: 华文问答 > 数码

为什么AMD首先设计了64位架构,intel也能用啊?

2020-04-09数码

因为现在的Intel 64实际上和amd64基本是一个东西。

另外64位架构也并不是AMD首先设计的,只是现在PC应用最广泛的x86-64(amd64)是AMD设计的。

上世纪英特尔在IBM的要求下把x86授权给了一些其他公司使用,这其中就有AMD,AMD早期的x86处理器也是在这个授权下制造的。

在世纪之交的时候,英特尔联合惠普设计了IA-64架构(其对应产品是安腾处理器),与此前的X86架构完全不兼容,因此所有的软件(包括操作系统)都需要使用专为IA-64编译的版本。而AMD64则是在x86架构基础上进行的拓展,兼容x86原有的操作指令,原有的32位程序不需要重新编译即可运行。

在那个过渡年代,这样的差异IA-64在软件兼容性方面处于劣势,导致市场表现远低于预期。尽管2005年英特尔推出了IA-32 EL模拟器提供对x86的支持,但这种跨架构模拟的效率较低,无法挽救IA-64走向失败的命运。

(2017年英特尔宣布停产安腾处理器,也宣告了IA-64的彻底死亡)

由于IA-64的滑铁卢,英特尔只能转而选择和AMD进行交叉授权拿到AMD64的使用权。很显然,英特尔不可能允许在架构名称中出现竞争对手的名字,所以一开始对外称呼为IA-32E,短时间后改名为EM64T,再后来又叫做Intel 64。

amd64还有其他叫法,大体如下(摘自维基百科):

由于AMD64和Intel64基本上一致,很多软硬件产品都使用一种不倾向任何一方的词汇来表明它们对两种架构的同时兼容。出于这个目的,AMD对这种CPU架构的原始称呼——「x86-64」被不时地使用,还有变体「x86_64」。其他公司如微软和太阳微系统在营销资料中使用「x64」作为对「x86-64」的缩写。
许多操作系统及产品,尤其那些是在Intel进入这块市场之前就引入「x86-64」支持的,使用「AMD64」或「amd64」同时指代AMD64和Intel64。
BSD系统(如FreeBSD、NetBSD和OpenBSD)和一些Linux发行版(如Debian、Ubuntu、和Gentoo)将AMD64和Intel64都称作「amd64」。Red Hat的RPM将x86-64称为x86_64或x86-64,将32位的IA-32称为i*86(*为数字3-6,比如i386)。Arch Linux将x86-64称为x86_64。
Fedora PackageKit称64位架构为「x86_64」。
Java Development Kit(JDK):包含x86-64文件的目录命名为「amd64」。
Mac OS X:终端下的命令arch以及开发人员文档都表明苹果称64位架构为「x86_64」。
Microsoft Windows:称在IA-32处理器上使用64位技术为「x64」,但一些相关目录使用AMD64来标明。例如,Windows x64版安装CD上的系统目录命名为「AMD64」,而32位版本上用「i386」。
Solaris:操作系统的命令isalist将AMD64和Intel64都定义成「amd64」。

参考内容: