想要搞清楚 x64、IA64、AMD64 指令集之间的关系,就要先了解 Intel 和 AMD 这两家公司在生产处理器上的发展历史。

x86 处理器

1978年 Intel 生产了它的第一款 16bit 处理器8086,之后几款处理器名字也都以86结尾,包括80186,80286, 80386,80486,这些处理器的架构被统一称为 x86 架构。其中8086、80186、80286是 16bit 处理器,80386和80486是 32bit 处理器,32bit 处理器向前兼容 16bit 的处理器。由于指令集属于处理器架构层面,因此这些处理器使用的指令集被称为 x86 指令集。后来 Intel 生产了比如奔腾、Xeon 等新的 32bit 处理器,它们仍然使用 x86 架构。

The CPU architecture defines the basic instruction set, and the exception and memory models that are relied on by the operating system and hypervisor.

The CPU microarchitecture determines how an implementation meets the architectural contract by defining the design of the processor and covering such things as: power, performance, area, pipeline length, and levels of cache.

针对 32bit 的 x86 系列处理器,Intel 给了一个全新的处理器架构名字 IA-32。同时由于 80386 是 Intel 第一款 32bit 处理器,32bit 的 x86 系列处理器也被称为 i386 处理器。总之,IA-32 与 i386 处理器都是指 Intel 的 32 bit 处理器,而 x86 处理器可能是 32bit 的,也可能是 16bit 的。但是无论是 32bit 还是 16bit,他们都属于 x86 架构,使用 x86 指令集。

合作

当1978年 Intel 生产出它的 x86 处理器时,1981年 IBM 生产了第一台个人 PC 电脑,并且希望搭载 Intel 的 x86 处理器。不过,为了防止 Intel 作为 x86 处理器唯一的供应商后期一家独大,IBM 留了一个心眼,提出 Intel 如果想合作,就必须授权另一家公司,也能生产 x86 处理器。为了达成这次合作,Intel 找到了 AMD 公司,签了一个10年期协议,将 x86 架构授权给 AMD,让 AMD 可以生产基于 x86 架构的处理器。

AMD(Advanced Micro Devices) 公司早期主要从事存储器生产,生产的存储器也会卖给 Intel 公司使用。1975年,AMD 开始涉足处理器市场,但是当时对 Intel 还够不成威胁。通过1981年这次和 Intel 的合作,AMD 经过10年来发展迅猛,已经成为 Intel 在处理器市场上最大的一个劲敌,Intel 完全可以说是养虎为患。

由于 AMD 和 Intel 生产的 CPU 都是基于 x86 架构,所以,在使用 Intel 处理器电脑上能运行的软件,在使用 AMD 处理器上的电脑也可以运行。

x64 处理器

时间来到1999年,Intel 向世界宣布了它全新的 64bit 处理器安腾,其使用的架构被命名为 IA-64。不过由于 Intel 过于激进,IA-64 架构并不兼容 x86 处理器,也就是原先众多运行在 x86 处理器上的 32bit 软件,完全不能运行在 IA-64 处理器上。这种不兼容问题,很快让 Intel 遭遇了滑铁卢,基于 IA-64 架构的安腾处理器并未得到市场的广泛认可。

就在 Intel 宣布安腾处理器的第二天,AMD 公司也向世界公布了自己全新的 64bit 处理器架构 AMD64。AMD64 架构可以看成是 x86 架构的扩展,完全向下兼容 x86 处理器,得到了市场的强烈反响。Intel 眼见大事不妙,赶忙调整了技术方向,放弃了之前的 IA-64 架构,采用了几乎与 AMD64 完全一样的技术方案,实现了自己的兼容 x86 处理器的 64bit 架构。不过为了面子,Intel 一开始将自己的 64bit 架构命令为 EM64T,后来又改为 IA-32e,再后来又改为 Intel64,总之就是只字不提 AMD 三个字。

由于 Intel 和 AMD 64bit 处理器都是遵循同样的架构,因此它们被统一被称为 x64 处理器。

一文搞懂 x64 IA-64 AMD64 Inte64 IA-32e 架构之间的关系的更多相关文章

  1. 一文搞清楚Minor GC、Major GC 、Full GC 之间的关系

    前言 文章要求读者熟悉 JVM 内置的通用垃圾回收原则.堆内存划分为 Eden.Survivor 和 Tenured/Old 空间,代假设和其他不同的 GC 算法超出了本文讨论的范围. Minor G ...

  2. 一文搞懂所有Java集合面试题

    Java集合 刚刚经历过秋招,看了大量的面经,顺便将常见的Java集合常考知识点总结了一下,并根据被问到的频率大致做了一个标注.一颗星表示知识点需要了解,被问到的频率不高,面试时起码能说个差不多.两颗 ...

  3. 一文搞懂RAM、ROM、SDRAM、DRAM、DDR、flash等存储介质

    一文搞懂RAM.ROM.SDRAM.DRAM.DDR.flash等存储介质 存储介质基本分类:ROM和RAM RAM:随机访问存储器(Random Access Memory),易失性.是与CPU直接 ...

  4. 基础篇|一文搞懂RNN(循环神经网络)

    基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...

  5. 一文搞懂 Prometheus 的直方图

    原文链接:一文搞懂 Prometheus 的直方图 Prometheus 中提供了四种指标类型(参考:Prometheus 的指标类型),其中直方图(Histogram)和摘要(Summary)是最复 ...

  6. Web端即时通讯基础知识补课:一文搞懂跨域的所有问题!

    本文原作者: Wizey,作者博客:http://wenshixin.gitee.io,即时通讯网收录时有改动,感谢原作者的无私分享. 1.引言 典型的Web端即时通讯技术应用场景,主要有以下两种形式 ...

  7. 一文搞懂vim复制粘贴

    转载自本人独立博客https://liushiming.cn/2020/01/18/copy-and-paste-in-vim/ 概述 复制粘贴是文本编辑最常用的功能,但是在vim中复制粘贴还是有点麻 ...

  8. 三文搞懂学会Docker容器技术(中)

    接着上面一篇:三文搞懂学会Docker容器技术(上) 6,Docker容器 6.1 创建并启动容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] --na ...

  9. 三文搞懂学会Docker容器技术(下)

    接着上面一篇:三文搞懂学会Docker容器技术(上) 三文搞懂学会Docker容器技术(中) 7,Docker容器目录挂载 7.1 简介 容器目录挂载: 我们可以在创建容器的时候,将宿主机的目录与容器 ...

  10. 一文搞懂 js 中的各种 for 循环的不同之处

    一文搞懂 js 中的各种 for 循环的不同之处 See the Pen for...in vs for...of by xgqfrms (@xgqfrms) on CodePen. for &quo ...

随机推荐

  1. js的时间比较

    time1的传参数类型是"2022-11-10 23:23:20" 点击查看代码 function times(time1) { let now = new Date() //当前 ...

  2. json提取器通过多条件筛选提取ID

    可能在某些列表中如名称会有重复,此时就需要使用多个搜索条件来判定唯一性 $.data.[?(@.tymc=="测试测试")].[?(@.plat_merchandise_id==& ...

  3. go 发布

    rm test-serv.bingo build -o test-serv.bin main.go

  4. DVWA-XSS (Reflected) 反射性 XSS

    反射性XSS,是非持久性,也是最常见的XSS,通过解析传入前段页面,常见为交互式输入框 LOW 审计源码 <?php // 发送请求头 header ("X-XSS-Protectio ...

  5. Web For Pentester File include

    File include(文件包含) Example 1 没有任何过滤 审计源码 没有对我们传参的page进行任何过滤,payload如下 http://172.16.1.104/fileincl/e ...

  6. Linux 用户密码不能设置问题

    当我们有时候要更改linux账户密码时,有时候会遇到下面这种情况: Password has been already used. Choose another.passwd: Have exhaus ...

  7. 关于如何编写好金融科技客户端SDK的思考

    引言 回想起来,我在目前的团队(金融科技领域)待了有很长一段时间了,一直在做SDK研发,平时工作中经历过大刀阔斧一蹴而就的喜悦,也经历过被一个问题按在地上摩擦,无奈"废寝忘食"的不 ...

  8. MySQL学习(三)DQL/DML/DDL/DCL 介绍

    参考博客:https://blog.csdn.net/tomatofly/article/details/5949070 DQL(data query language) :数据查询语言 select ...

  9. mybatis-plus update的三种方式

    参考博客:https://blog.csdn.net/weixin_44162337/article/details/107828366 1.最常见:根据id更新,xxxService.updateB ...

  10. 使用python爬虫爬取链家潍坊市二手房项目

    使用python爬虫爬取链家潍坊市二手房项目 需求分析 需要将潍坊市各县市区页面所展示的二手房信息按要求爬取下来,同时保存到本地. 流程设计 明确目标网站URL( https://wf.lianjia ...