i386, x86, x86_64, IA-32, IA-64, 安腾, AMD64 的关系是什么?
x86 是一个统称,用来表示 XX86 指令集兼容的 CPU 架构, Intel 提出,但不专属于 Intel。代码里,i386 通常用来表示 32 位 x86 架构,x86_64 表示 64 位 x86 架构,和 CPU 厂商无关。
x86 兼容架构:
i386, x86, x86_64, IA-32,AMD64,Xeon,Pentium
IA-64 兼容架构:
IA-64, 安腾
进化路径:
Intel 时代:8008 -> 80386 -> 80486 -> 奔腾系列 -> 酷睿系列 -> Xeon 系列
AMD 时代:32 位跟随 Intel,率先推出桌面级的 x86_64
Intel 的 64 位路径:本来希望创新,全新安腾架构(为什么失败);后跟随 AMD64 推出 x86_64 架构。
从命名上也可以看出 Intel 的被动:
本来,它准备 IA-32, IA-64 往前编号,结果做 x86_64 的时才发现 IA-64 命名被安腾架构占领,只要弄一个毫无特色的 x86_64 命名。不过,现在 Intel 把 IA-64 改名为 Itanium 64 架构,IA64 的名字貌似又空出来,给 x86_64 使用了。具体使用中 IA64、Intel64、x86_64 交叉使用。如下例:
安腾停产:https://www.eet-china.com/mp/a67282.html
原文:
https://www.zhihu.com/question/19573226/answer/14267936(以下内容转自知乎回答)
x86架构首度出现在1978年推出的Intel 8086中央处理器,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。Intel之后又推出了包括80186、80286、80386以及80486。 在设计上,这些后续的处理器使用的指令集都是在8086的基础上添加新支持的指令进行改进的,因此可以说都是向下兼容的(backward compatibie),即能再8086上运行的程序在80486上也一定能运行。由于都是以86结尾(不过8088也是x86),所以把这一系列的指令集称之为x86指令集(架构)。准确的来讲,x86这一术语并不是指的某一个(具体CPU使用的)具体的指令集,而是在8086(的指令集)基础上发展而来 的所有指令集的泛称。
实际上,在80486以后Intel推出的绝大多数CPU都是“x86”的,包括Pentium 、Pentium Pro 、Pentium MMX ,Pentium 2 ,还有后面的Pentium 3、Pentium 4 、Pentium D 、Core全系列,(x86系列的) Xeon。另外,使用x86架构的处理器制造商远非Intel一家,最著名的就是AMD,其他的还有VIA,Cyrix。具体的产品及特性可以见附录的表 格。可以说,x86架构就是桌面级CPU的标准,你能买到的品牌或者组装的PC,几乎没有不是x86 CPU的。不过虽说都是x86的,但只能说明使用的指令集是兼容8086的,除8086指令集之外的其他指令支持情况就不一样;其内部实现的微体系结构microarchitecture显然也是各自不同,就好比Linux和Unix虽然都是POSIX兼容的OS,都有fork这个系统调用,但是这个调用的实现确实各不相同。
从1985年80386开始,Intel通过对x86架构进行32位的扩展,实现了32位CPU,而之前的都是16位。Intel把支持32位的x86指令集架构命名为IA-32(Intel Architecture 32bit)。实际上由于32位x86处理器的统治性,术语“x86”几乎等于IA-32,即32位的x86或x86-32,例如Windows和Linux发行版的32位命名都是x86(而不是x86-32或IA-32)。后来的“x86-64”名称也继续强化了这种约定方式。这里还是要强调 x86是一系列架构的泛称,支持16位、32位和64位的指令都有。
该来的还是会来,在1999年,AMD宣布了x86-64架构。其实现方式与之前的80386思路一致,继续对IA-32扩展,增加64位通用寄存器、证书预算单元和逻辑操作,支持64位虚地址;向前兼容IA-32。2003年第一款x86-64处理器发布,AMD Operon。同时AMD也将x86-64正式命名为AMD64。这下Intel彻底2B了(原因后面说),以前都是AMD小弟追随者Intel大哥的脚步,如今AMD先实现了64位民用桌面级CPU。其实Intel也有其64位计划,在2004年的IDF上,Intel承认其64位计划,命名为IA-32e,即IA-32 extension,之后又改成EM64T,Extended Memory 64 Technology,最终命名为Intel64。 实际上EM64T与AMD64几乎相同。早期EM64T不兼容AMD64的少量指令,但是由于AMD在64位技术中的领先地位,Intel2005年不得不宣布将完全兼容AMD64。所以现在装的64位版本操作系统从没有说是面向Intel还是AMD的。不过在称谓上,大多数厂商还是使用x86-64(x86_64,或者就是x64)来称呼此架构,从而保持中立。
“i386“和”i486″作为Intel 80386和80486处理器的别名是比较显然的。由于不能使用数字作为注册商标,而且也需要一个正式的名称命名,从586开始就变为Pentium了, 这时候i586就作为了最原始Pentium的微处理架构“P5”的别名,同样的i686对P6(Pentium Pro使用),i786对应P68,或NetBurst架构。
在我看来,在软件包的命名上使用“i某86”时应该是说适用于使用这一代微架构的CPU。但微架构是硬件上事,因此还是在说明适用对应CPU使用的指令集。比如,i386对应IA-32,并且由于兼容性肯定适用于i486~i686;i686不仅适用Pentium Pro,也适用K7架构的Athlon。
前文提到Intel在AMD推出民用64位技术后很被动。其实Intel也有64位x86 CPU的计划,但是由于对于这个市场的不重视,认为需求不足,一直不见面世。而在对64位需求更加强劲的企业服务器和高性能计算市场上,1994年HP就和Intel合作开始开发一款与x86架构完全没关系的全新的IA-64架构。显然IA-64不兼容x86-64更别说IA32,IA64天生就是64位,基于显式并行指令运算(EPIC)。 2001年第一款IA-64架构的处理器Itanium安腾发布。可见,IA-64跟IA-32在实现上没有什么关系,跟x86-64也是完全并行的两种架构,x86架构的Intel的Xeon就是Intel Itanium的竞争对手之一。后来Intel把IA-64也干脆改称为Intel Itanium架构。
参考:https://zh.wikipedia.org/wiki/Intel_80386
i386, x86, x86_64, IA-32, IA-64, 安腾, AMD64 的关系是什么?相关推荐
- 32位怎么兼容64位java_Java 32位与64位兼容
是的,假设您使用独立于平台的库,Java字节码(和源代码)是独立于平台的. 32与64位应该没有关系. 我不小心在一个64位的虚拟机上运行我们的(大的)应用程序,而不是一个32位的虚拟机,直到一些外部 ...
- 64位ie加载java失败_java-无法在AMD 64位平台上加载IA 32位.dll
java-无法在AMD 64位平台上加载IA 32位.dll 我正在尝试通过此页面上的JNI包装器使用Java中的SVMLight: static { System.loadLibrary(" ...
- Linux 适用硬件平台/系统架构(i386 / i586 / i686 / x86 / x86_64)名词理解和区别
我们在网上下载各种版本的 Linux OS 时,会经常看到不同版本的系统镜像名中带有 i386.i486 .i586.i686.x86x86_64/AMD64,那么这些 i386.i486 .i586 ...
- 发行版中的i386/i686/x86-64的区别: i386用来处理32位系统,i686是i386的下集;x86-64用来处理64位系统。 linux发行版中的i386/i686/x86-64各自含
发行版中的i386/i686/x86-64的区别: i386用来处理32位系统,i686是i386的下集:x86-64用来处理64位系统. linux发行版中的i386/i686/x86-64各自含义 ...
- 如何检查Windows Vista , XP和2003系统是32位或64位( x86或x64 )版本
您可能会收到一个电脑作为礼物,以及想要找出系统是否设置了一个32位或64位(微软标签,他们作为x86或x64 )为基础的作业系统,这需要特别建造的应用软件. ) . For computer or P ...
- 64位Java开发平台的选择,如何区分JDK,Tomcat,eclipse的32位与64版本
2019独角兽企业重金招聘Python工程师标准>>> 作者:赵磊 博客:http://elf8848.iteye.com 当你想下载Linux.JDK.Tomcat.eclipse ...
- linux内核学习之三:linux中的32位与64位
linux内核学习之三:linux中的"32位"与"64位" 在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位" ...
- i386 、x86_64 、ppc是指
引文地址:http://blog.163.com/zhangzhiyin88@126/blog/static/75966301200822610172134/ i386 .x86_64 .ppc是指C ...
- 辨析:×86架构:×86(i386…),×64(×86-64/amd64);arm架构:arm,arm64
×86架构: ×86(又称:i386-/ IA32)表示32位cpu位数 ×64(又称:×86-64 / amd64 / inter64)表示64位cpu位数 arm架构: arm / A32 / a ...
最新文章
- 常见Android Native崩溃及错误原因
- Linux_Bash脚本基础
- Live2D WebGL实现
- 2017年度最值得读的AI论文评选 | 大张旗鼓送福利
- Mac下的Parallel Windows忘记密码怎么办?
- python中mysql更新字段中传参问题
- Application.mk文件官方使用说明
- mysql 目录的了解以及Linux
- Python 使用pyinstaller将py文件发布成exe程序
- i3 2310M i7 9700T i7 9700K MacBookPro 16寸 CPU 跑分对比
- 企业手机装配线平衡改善研究
- 在IE缓存文件夹找到我想要的视频
- Flink 实践教程-进阶(11):SQL 关联:Regular Join
- python阿拉伯数字转换为英文,python – 将东部阿拉伯数字转换为西方阿拉伯数字...
- Spark集群环境搭建+Maven、SBT编译部署+IDEA开发(二)
- 外网远程访问管家婆ERP进销存
- 2021-05-24 Nyquist图背后的信息
- TreeView添加treeView1_NodeMouseClick----多么痛的领悟。。。
- Mac 开发 打开系统偏好设置
- android 安装第三方应用,Android手机常识 第三方应用如何安装