当前位置: 首页 > news >正文

x86/x64/x86_64/i386/ia32/ia64/amd/amd64 辨析

现在的硬件发展正在随着摩尔定律的预言在阔步向前,从最初的8-bit CPU到后来的16-bit CPU,再到后来的32-bit CPU,最后到时下大热的64-bit CPU,硬件的性能得到大幅度的提升。提到CPU,不得不提到Intel AMD;提到CPU的发展,我们不得不提到操作系统的发展,提到操作系统,我们不得不提到Mcirosoft、Linux。这些都是国际上有名的大厂商,客户遍及全世界的各个角落。硬件发展这么快,不是所有的这些大厂的客户在每次硬件或者操作系统跟新的时候都会去购买新的硬件设备或者操作系统的,这样随着时间的流逝,可能CPU发展到了64bit了,还有很多企业在使用装配32-bit的CPU的机器呢。这样就出现了兼容性的问题了。这些国际大厂(比如Intel、Microsoft)为了更好的服务这些厂商,当然也是为了不惹怒客户,在设计新一代的产品的时候,都是考虑向后兼容的(backwards compatible)

x64 = x86_64 = amd64

64位指令集,是对IA-32的扩展,由AMD提出。可兼容32位指令集(IA-32)

目前大部分64位计算机均使用这套指令集。

为什么叫x86-64,因为它是X86的一部分,兼容X86的其他指令集(32-bit,16-bit)。

x86-64 (also known as x64x86_64 and AMD64) is the 64-bit version of the x86 instruction set. It supports vastly larger amounts (theoretically, 264 bytes or 16 exabytes) of virtual memory and physical memory than is possible on its 32-bit predecessors, allowing programs to store larger amounts of data in memory. x86-64 also provides 64-bit general-purpose registers and numerous other enhancements. It is fully backward compatible with 16-bit and 32-bit x86 code.Because the full x86 16-bit and 32-bit instruction sets remain implemented in hardware without any intervening emulation, existing x86 executables run with no compatibility or performance penalties, whereas existing applications that are recoded to take advantage of new features of the processor design may achieve performance improvements.

The original specification, created by AMD and released in 2000, has been implemented by AMD, Intel and VIA. The AMD K8 processor was the first to implement the architecture; this was the first significant addition to the x86 architecture designed by a company other than Intel. Intel was forced to follow suit and introduced a modified NetBurst family which was fully software-compatible with AMD's design and specification. VIA Technologies introduced x86-64 in their VIA Isaiah architecture, with the VIA Nano.

The x86-64 specification is distinct from the Intel Itanium (formerly IA-64) architecture, which is not compatible on the native instruction set level with the x86 architecture.

IA-64

Intel Archtecture 64 bit,intel提出的64位指令集,是一种不向下兼容的Intel 64-bit CPU 架构

IA-32 = i386

32位的X86指令集,是一种不向下兼容的Intel 32-bit CPU 架构。我们用的32位系统大部分都是这个指令集,例如xp,win2k3等。从80386时代传承来的。

IA-32 (short for "Intel Architecture, 32-bit", sometimes also called i386 is the 32-bit version of the x86 instruction set architecture (ISA), first implemented in the Intel 80386 microprocessors in 1985. IA-32 is the first incarnation of x86 that supports 32-bit computing; as a result, the "IA-32" term may be used as a metonym to refer to all x86 versions that support 32-bit computing.

The IA-32 instruction set was introduced in the Intel 80386 microprocessor in 1985 and, as of 2017, remains supported by contemporary PC microprocessors. Even though the instruction set has remained intact, the successive generations of microprocessors that run it have become much faster. Within various programming language directives, IA-32 is still sometimes referred to as the "i386" architecture.

Intel is the inventor and the biggest supplier of IA-32 processors, and the second biggest supplier is AMD. For a while, VIA, Transmeta and others also produced IA-32 processors, but since the 2000s all manufacturers moved to the 64-bit variant of x86, x86-64.

AMD64

跟上面的X64、X86-64、X64是一样的(注:AMD也是一家设计CPU的国际大厂)。

Itanium

是Intel 的64-bit不向下兼容的CPU架构。

X86并不是指令集!

X86是对于Intel 8086及后续CPU产品的统一称呼。X86名字的由来是从80<|3|4|5>86这一系列处理器得来的。与X86相对的概念是arm,mips等。

到这里相信你对64-bit,兼容X86的64-bit,IA-32、IA-64以及常见的X86有了比较好的理解。

那么,32-bit X86 CPU的机器上能装64-bit操作系统吗?

不能。因为64-bit操作系统需要64-bit 的CPU,它的向下兼容性只体现在Win32应用程序能运行在64-bit的windows上

那么,64-bit X64 CPU的机器上能装32-bit操作系统吗?

能。因为X64向下兼容32-bit指令

到了这里,我们也知道了IA-32 CPU,只能安装32-bit操作系统,IA-64 CPU,只能安装64-bit操作系统,不能像X64CPU一样也能安装32-bit操作系统,因为IA-64不向下兼容32-bit指令。

相关文章:

  • 理清gcc、libc、libstdc++的关系
  • gcc/g++/clang/cl编译器
  • 深入浅出让你理解什么是LLVM
  • Ninja - chromium核心构建工具
  • depot_tools
  • 智能指针 unique_ptr 详解
  • C++11中“= delete;“的使用
  • C++Error2208:...尝试引用已删除的函数
  • Ninja 构建系统
  • ICU
  • 交叉编译详解
  • GYP,GN和Ninja
  • Visual C++ 新增功能(2003 - 2015)
  • v8引擎编译全记录2021-2-23
  • c++ mutex
  • ----------
  • .pyc 想到的一些问题
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • AngularJS指令开发(1)——参数详解
  • golang 发送GET和POST示例
  • JavaScript异步流程控制的前世今生
  • LeetCode算法系列_0891_子序列宽度之和
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • MQ框架的比较
  • python docx文档转html页面
  • Python利用正则抓取网页内容保存到本地
  • Sublime Text 2/3 绑定Eclipse快捷键
  • text-decoration与color属性
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 浏览器缓存机制分析
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 那些年我们用过的显示性能指标
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​决定德拉瓦州地区版图的关键历史事件
  • #NOIP 2014# day.1 T2 联合权值
  • (14)Hive调优——合并小文件
  • (floyd+补集) poj 3275
  • (HAL库版)freeRTOS移植STMF103
  • (poj1.2.1)1970(筛选法模拟)
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (顺序)容器的好伴侣 --- 容器适配器
  • (五)关系数据库标准语言SQL
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .cfg\.dat\.mak(持续补充)
  • .NET gRPC 和RESTful简单对比
  • .net refrector