Menu Close

电脑为什么用 x86,手机为什么用 ARM?两种 CPU 架构一次讲明白

今天的计算设备,大致生活在两个处理器世界中。

传统台式电脑、游戏电脑和大量服务器,主要使用 x86 处理器;手机、平板电脑、路由器、单板计算机和大量嵌入式设备,则主要采用 ARM 处理器。

不过,这条边界正在迅速模糊。

一文读懂 x86 与 ARM

苹果已经让 Mac 产品线全面转向 Apple Silicon;高通正在推动 ARM Windows PC;亚马逊则在数据中心大规模部署自研 Graviton 服务器处理器。与此同时,Intel 和 AMD 也在不断改善 x86 处理器的能效,并将性能核心、能效核心、GPU 和 NPU 集成到同一套平台中。

因此,x86 与 ARM 的区别,已经不能简单概括为:

x86 性能高但耗电,ARM 性能低但省电。

这句话曾经有一定道理,但已经无法准确描述今天的处理器。

要真正理解两者的区别,我们需要从指令集、微架构、芯片集成、软件生态和商业模式几个层面分别讨论。


一、什么是 CPU 指令集架构?

x86

处理器并不能直接理解 C、C++、Python 或 Java。

程序最终必须转换成处理器能够执行的机器指令,例如:

  • 把数据从内存读入寄存器;
  • 将两个数字相加;
  • 比较两个数值;
  • 根据比较结果跳转;
  • 把结果写回内存。

规定这些机器指令格式、寄存器、数据类型、内存访问方式和异常处理机制的规范,叫作:

Instruction Set Architecture,简称 ISA,也就是指令集架构。

可以把 ISA 理解为软件与处理器之间的一份合同。

编译器按照这份合同生成机器代码,处理器则按照这份合同执行机器代码。

x86 和 ARM 都属于 ISA 家族,但它们使用不同的机器指令编码。为 x86 编译的程序,通常不能直接在 ARM 处理器上执行;为 ARM 编译的程序,也不能直接在 x86 处理器上运行。

需要注意的是:

指令集架构不等于具体芯片

x86 是指令集家族,Intel Core、Intel Xeon、AMD RyzenAMD EPYC 是采用这套指令集的不同处理器。

ARM 同样是一套架构体系。Apple M 系列、高通 Snapdragon、联发科 Dimensity、AWS Graviton,以及许多微控制器,都可以使用 ARM 指令集,但它们的内部设计和性能可能相差巨大。


二、x86 是怎样发展起来的?

ARM

x86 的历史通常追溯到 Intel 在 1978 年推出的 8086 处理器。

随后,8088、80286、80386、80486、Pentium 和 Intel Core 等处理器不断发展。AMD 后来推出自己的兼容处理器,并设计了今天广泛使用的 64 位扩展,也就是 AMD64 或 x86-64。

x86 最重要的特点,并不是“指令复杂”,而是:

它拥有极其强大的向后兼容传统。

几十年来,Intel 和 AMD 不断增加新的寄存器、运行模式和指令扩展,同时尽量保留旧软件所依赖的行为。

这种兼容性让大量旧程序能够继续运行,也形成了 x86 最深的护城河:

  • Windows 桌面软件;
  • PC 游戏;
  • 企业管理系统;
  • 工业控制软件;
  • CAD、CAM 和工程软件;
  • 虚拟化平台;
  • 长期运行的服务器应用。

但是,向后兼容也需要付出代价。

现代 x86 处理器必须理解许多历史时期形成的指令格式、运行模式和特殊行为。x86 指令长度不是固定的,可以从 1 字节变化到最多15字节,处理器前端需要识别前缀、操作码、寄存器字段、寻址方式和立即数等不同部分。

因此,现代 x86 处理器需要非常复杂的取指和译码电路。


三、ARM 是怎样发展起来的?

ARM 架构起源于20世纪80年代的英国 Acorn Computers。

Acorn 的工程师希望设计一种结构相对简洁、容易实现并且效率较高的处理器。早期名称是 Acorn RISC Machine,后来 ARM 公司成立,ARM 被解释为 Advanced RISC Machines。

ARM 的发展道路与 x86 不同。

x86 首先在个人电脑中建立生态,而 ARM 则广泛进入:

  • 微控制器
  • 手机;
  • 平板电脑;
  • 路由器;
  • 智能电视;
  • 汽车电子;
  • 工业设备;
  • 物联网设备。

这些设备通常受到电池容量、芯片面积、散热能力和成本限制,因此ARM生态长期高度重视性能功耗比。

今天主流高性能 ARM 处理器通常使用 AArch64 执行状态和 A64 指令集。A64 指令采用固定32位编码。这里的“AArch64”表示64位执行环境,而不是说每条指令有64位。

不过,不能因此说历史上所有 ARM 指令都是固定32位。较早的 ARM 体系还包括 A32 和 T32,T32 中就存在16位与32位编码。


四、CISC 与 RISC 到底是什么意思?

x86 通常被归类为 CISC,也就是复杂指令集计算机。

ARM 通常被归类为 RISC,也就是精简指令集计算机。

早期两种思想的区别比较明显。

CISC 希望一条机器指令完成较多工作。例如,一条指令可能同时完成内存访问、运算和结果写回。

RISC 则倾向于采用更规则的指令格式,把复杂任务拆分成多条较简单的指令。

但是到了现代处理器时代,CISC 与 RISC 的边界已经不像教科书中那么清楚。

现代 x86 处理器通常会把复杂的 x86 指令解码成一个或多个内部微操作,也就是 micro-ops,再由乱序执行后端调度和执行。

现代高性能 ARM 核心也并不“简单”。它们同样可能拥有:

  • 多路取指和译码;
  • 分支预测;
  • 推测执行;
  • 寄存器重命名;
  • 乱序执行;
  • 多级缓存;
  • 向量运算单元;
  • 大型重排序缓冲区。

所以,更准确的说法是:

x86 与 ARM 在软件可见的指令集编码上存在明显差异,但现代高性能处理器的内部执行技术已经越来越相似。


五、两者最直观的技术差异

对比项目 x86 ARM
主要64位架构 x86-64 AArch64
指令编码 变长,最长可达15字节 A64固定32位
通用寄存器 x86-64通常有16个通用寄存器 AArch64提供31个通用寄存器
内存操作 许多指令可直接使用内存操作数 通常采用Load/Store方式
译码难度 较高 相对规则
向后兼容负担 很重 相对较轻,但也存在多个架构版本
主要市场传统 PC和服务器 移动、嵌入式和SoC
主要授权方式 高度集中于Intel和AMD ARM进行架构或处理器IP授权
芯片定制能力 终端厂商通常购买成品CPU 许可证持有者可设计高度定制的SoC

这些区别确实会影响处理器设计,但它们并不能直接决定最终性能。

一颗处理器有多快,还取决于:

  • 制造工艺;
  • 核心宽度;
  • 主频;
  • 分支预测准确率;
  • 缓存容量与延迟;
  • 内存带宽;
  • 功耗预算;
  • 编译器;
  • 操作系统
  • 应用程序是否经过优化。

因此,不能看到ARM就自动认为“低性能”,也不能看到x86就自动认为“高性能”。


六、为什么ARM通常更容易实现高能效?

ARM处理器长期拥有高能效优势,但这不是由单一因素造成的。

1. 指令编码相对规则

A64指令固定为32位,字段位置相对规则,前端取指和译码设计通常更容易处理。

这并不意味着ARM处理器不需要复杂译码器,而是说在相同设计目标下,它不必承担x86那样沉重的历史编码兼容负担。

2. ARM长期面向低功耗市场

ARM生态长期服务手机、嵌入式设备和微控制器

芯片厂商从一开始就会围绕有限功耗设计:

  • 核心规模;
  • 时钟频率;
  • 缓存;
  • 电源管理;
  • 睡眠状态;
  • 芯片面积。

x86过去主要服务台式机和服务器,这些设备能够使用风扇、大型散热器和更高电源功率,因此传统设计目标不同。

3. SoC集成程度高

ARM处理器通常不是孤立的CPU,而是SoC的一部分。

一块SoC中可以集成:

  • CPU
  • GPU
  • NPU;
  • 图像信号处理器;
  • 视频编解码器;
  • 内存控制器;
  • 安全模块;
  • USB和网络控制器。

专用电路处理特定任务,通常比让通用CPU完成所有工作更节能。

4. 芯片可以针对具体设备定制

手机厂商、云服务商和计算机厂商可以围绕自身需求设计ARM芯片

苹果可以针对macOS和自己的应用生态设计Apple Silicon;AWS可以围绕云服务器负载设计Graviton;手机芯片厂商可以围绕摄像、通信和电池寿命设计移动SoC。

因此,ARM真正强大的地方不仅是RISC,而是:

较规则的架构,加上灵活的授权模式和高度定制的SoC设计。


七、为什么不能简单说ARM一定比x86省电?

这是理解两种架构时最容易出现的误区。

指令集会影响处理器实现,但不会单独决定功耗。

一颗追求极致性能的大型ARM核心,可能比一颗低功耗x86核心消耗更多电力;一颗运行简单任务的x86处理器,也可能工作在很低的功耗范围。

功耗大致受到以下因素共同影响:

  • 晶体管数量;
  • 工作电压;
  • 时钟频率;
  • 同时翻转的电路数量;
  • 缓存和内存访问;
  • 制造工艺;
  • 芯片温度;
  • 软件负载;
  • 电源管理。

因此,比较两颗芯片时,应当比较具体产品在相同任务、相同性能目标和相同系统条件下的表现,而不是只比较ISA名称。

ARM比x86省电”更准确的表达应该是:

ARM生态长期围绕低功耗和SoC定制发展,因此许多ARM芯片拥有优秀的性能功耗比;但最终能效仍然由具体微架构和系统设计决定。


八、为什么苹果从Intel转向Apple Silicon?

苹果从Intel处理器转向Apple Silicon,是x86与ARM竞争中最具代表性的事件。

不过,苹果并不是简单地把Intel CPU换成了一颗普通ARM CPU

Apple Silicon的优势来自完整的系统工程。

1. 苹果能够控制整个产品

苹果同时控制:

  • 处理器设计;
  • macOS;
  • 编译工具;
  • 应用框架;
  • 笔记本电脑;
  • 台式电脑;
  • 电池和散热系统。

这种软硬件一体化能力,使苹果能够围绕实际产品进行整体优化,而不是分别优化孤立的CPU操作系统

2. 苹果拥有自己的高性能CPU核心

Apple Silicon虽然执行ARM指令,但CPU核心微架构主要由苹果自行设计。

它并不是简单购买一个普通ARM核心后直接使用,而是在ARM架构授权基础上设计高性能核心。

这说明Apple Silicon的性能不能仅仅归功于“ARM”三个字。

3. 统一内存减少数据搬运

Apple Silicon将CPUGPU和其他加速器放在统一的SoC体系中,并允许多个计算单元访问统一内存池。

传统系统中,CPU内存与独立GPU显存常常需要通过总线复制数据。统一内存能够在适合的工作负载中减少复制,提高带宽利用率并降低延迟。

不过,统一内存并不是ARM专属技术,x86系统也可以采用高度集成和共享内存设计。

4. 大量任务由专用硬件处理

Apple Silicon还集成了:

  • GPU
  • Neural Engine;
  • 视频编码器;
  • 视频解码器;
  • 图像处理器;
  • 安全模块。

播放视频、处理照片或运行AI任务时,不一定需要CPU承担全部计算。

这就是为什么一台Mac在执行视频处理等任务时,可能同时拥有较高性能、较低功耗和较小噪音。

苹果目前的Mac产品线已经全面围绕Apple Silicon构建。


九、ARM为什么开始进入服务器?

数据中心最关心的不只是单颗处理器有多快,还关心:

  • 每台服务器能够运行多少任务;
  • 每个机架能放多少核心;
  • 消耗多少电力;
  • 需要多少散热;
  • 每次计算需要多少成本。

在一座大型数据中心中,即使每颗处理器只节省少量电力,扩大到数万台服务器后,也会产生巨大差异。

AWS的Graviton处理器就是典型案例。

AWS不需要让Graviton兼容世界上每一种旧PC软件,它只需要让处理器适合云端工作负载,例如:

  • Web服务器;
  • 容器;
  • 微服务;
  • 数据处理;
  • Java应用;
  • Linux服务;
  • 云原生软件。

AWS表示,Graviton实例可在多种工作负载中提供最高可达40%的性价比提升,但这是AWS针对特定实例和可比较工作负载给出的结果,不应理解为所有ARM服务器在任何程序中都固定快40%。

对于能够重新编译并经过测试的Linux开源软件,迁移到ARM通常比迁移封闭的旧Windows软件容易。


十、x86为什么仍然难以被取代?

ARM发展很快,但x86仍然拥有强大的现实优势。

1. 庞大的软件生态

大量软件、驱动程序、插件和游戏已经围绕x86开发多年。

即使程序理论上可以重新编译,实际迁移仍然可能遇到:

  • 第三方库缺少ARM版本;
  • 驱动程序不兼容;
  • 插件只提供x86二进制文件;
  • 程序包含x86汇编;
  • 反作弊系统不支持;
  • 虚拟机镜像需要更换;
  • 企业软件无法重新编译。

2. PC游戏优势

目前绝大多数PC游戏首先针对Windows x86-64开发和测试。

ARM Windows可以通过翻译层运行一部分x86程序,但翻译可能带来性能、兼容性和反作弊问题。

因此,在高端游戏电脑领域,x86仍具有明显优势。

3. 企业和工业系统迁移缓慢

企业购买计算机时,不只考虑处理器性能。

它们还要考虑:

  • 软件认证;
  • 硬件驱动;
  • IT维护;
  • 安全策略;
  • 虚拟化环境;
  • 员工培训;
  • 供应商支持。

一套已经稳定运行十几年的系统,不会仅仅因为另一种处理器更加省电就立即迁移。

4. Intel和AMD也在改善能效

现代x86处理器已经大量采用:

  • 动态电压和频率调节;
  • 核心休眠;
  • Chiplet;
  • 先进封装;
  • 性能核与能效核;
  • 集成GPU
  • NPU;
  • 更先进的制造工艺。

所以,x86并没有停留在传统高功耗桌面CPU时代。


十一、软件为什么不能直接跨架构运行?

假设我们使用C语言编写下面的程序:


这段C语言源代码既可以编译成x86-64程序,也可以编译成AArch64程序。

但是编译后生成的机器码不同。

因此需要区分三个概念:

源代码可移植

同一份源代码可以分别在x86和ARM平台编译。

二进制不兼容

已经编译好的x86可执行文件通常不能直接作为ARM机器指令执行。

指令翻译

系统可以在运行时把一种架构的指令转换为另一种架构的指令。

例如,苹果使用Rosetta 2帮助Apple Silicon Mac运行许多原有的Intel Mac程序。Windows on ARM也提供x86和x64程序模拟或翻译能力。

不过,翻译层不是魔法。

它可能带来:

  • 额外性能开销;
  • 更高内存占用;
  • 驱动程序无法转换;
  • 某些特殊指令不兼容;
  • 调试和性能分析更加复杂。

所以,原生ARM版本通常仍是更理想的方案。


十二、x86和ARM谁的性能更高?

这个问题没有统一答案。

比较处理器时,至少要明确:

  • 单核还是多核;
  • 短时间突发还是长期满载;
  • 插电还是电池供电;
  • 笔记本还是服务器;
  • CPU计算还是GPU计算;
  • 整数、浮点、向量还是AI
  • 是否使用专用硬件;
  • 软件是否针对平台优化;
  • 芯片处于什么功耗水平。

高端x86桌面处理器可以在较高功耗下提供强大的持续性能和扩展能力。

Apple Silicon则可能在有限功耗、集成图形、媒体处理和移动续航方面表现更好。

服务器中的ARM处理器可以依靠大量核心和较高能效提升机架密度,而x86服务器仍然拥有成熟的软件、虚拟化和企业生态。

因此,真正应该问的不是:

x86和ARM谁更快?

而是:

在指定功耗、指定软件和指定任务下,哪一颗具体芯片更合适?


十三、如何选择x86还是ARM?

适合选择x86的情况

  • 需要最成熟的Windows软件兼容性;
  • 主要玩PC游戏;
  • 使用依赖x86插件的专业软件;
  • 需要运行大量旧程序;
  • 需要成熟的独立显卡和扩展卡生态;
  • 企业环境已经全面建立在x86平台上;
  • 需要运行现有x86虚拟机。

适合选择ARM的情况

  • 重视笔记本续航和低噪音;
  • 使用Apple Mac生态;
  • 开发手机、平板或嵌入式设备;
  • 部署能够重新编译的Linux服务;
  • 需要高度定制的SoC;
  • 数据中心特别重视性能功耗比;
  • 设备受到散热和电池限制。

十四、未来会是谁取代谁吗?

x86与ARM的竞争不太可能以一种架构彻底消灭另一种架构结束。

更可能出现的趋势是:

1. 两者的微架构继续趋同

高性能x86和ARM处理器都会使用复杂的乱序执行、分支预测、多级缓存和向量单元。

2. 芯片从CPU中心转向异构计算

未来处理器的竞争重点,不只是CPU本身,还包括:

  • GPU
  • NPU;
  • 视频处理单元;
  • 安全处理器;
  • 内存系统;
  • 芯片互连;
  • 软件工具链。

3. ARM继续扩张到PC和服务器

ARM已经证明,它不仅能够用于手机,也能够用于高性能笔记本和数据中心。

4. x86继续依靠生态和性能守住核心市场

PC游戏、企业软件、高性能桌面系统和传统服务器不会在短期内整体离开x86。

5. RISC-V成为第三个变量

x86高度集中于Intel和AMDARM则需要商业授权。

RISC-V提供开放的指令集规范,让企业能够在另一种模式下设计处理器。

不过,RISC-V能否在高性能PC和服务器领域挑战x86与ARM,最终仍取决于微架构、软件生态、操作系统、开发工具和芯片制造能力,而不只是指令集是否开放。


结论

x86与ARM最根本的区别,是它们提供了两套不同的软件与硬件接口,并且在几十年的发展中形成了不同的历史传统和商业生态。

x86的主要优势是:

  • 强大的向后兼容性;
  • 成熟的PC和服务器生态;
  • 广泛的软件支持;
  • 强大的高性能处理器设计;
  • 完善的游戏、企业和虚拟化平台。

ARM的主要优势是:

  • 相对规则的指令编码;
  • 灵活的IP授权模式;
  • 容易构建高度定制的SoC;
  • 长期积累的低功耗经验;
  • 在移动、嵌入式和云计算市场拥有广泛应用。

但是,不能把它们简单理解为“复杂指令对精简指令”,也不能认为ISA会单独决定性能和功耗。

Apple Silicon成功的真正原因,是ARM架构、苹果自研微架构、先进制造工艺、SoC集成、统一内存、专用加速器,以及macOS软硬件协同共同作用的结果。

现代处理器的竞争,早已不再只是一场指令集战争。

它正在变成一场关于CPUGPU、NPU、内存、封装、软件生态和整个系统设计能力的综合竞争。

理解这一点,才算真正理解了今天的x86与ARM之争。

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!
Posted in CPU结构