资讯详情

资讯详情

不卖芯片却统领行业:ARM指令集、生态与商业模式深度解析

把标题里的“统计”换成“统领”这个问题才真正有味道。十年前我在实验室第一次接触ARM只觉得它是个便宜的开发板核心五年前我开始用ARM服务器跑容器集群这两年面试做芯片方向的应届生几乎每个人都会说一句“我懂ARM”。但真往深了问能把ARM的商业模式、指令集演进、生态壁垒讲清楚的人十个里面不超过两个。这篇文章想聊的就是ARM凭什么能在芯片设计行业长期占有那个独一无二的位置。无论你是刚接触STM32的嵌入式新手还是在x86服务器上跑着业务的运维工程师或者是正考虑转行芯片设计的在校生读完应该都能理解ARM的统治力从来不只是“省电”而是一整套商业、技术和生态叠加出来的系统优势。1. 不卖一块芯片的公司却成了整个行业的“图纸供应商”1.1 从Acorn Oak到智能手机里的那颗核ARM全称是Advanced RISC Machines起源可以追溯到上世纪80年代英国Acorn计算机公司。当时Acorn想做一颗比8051、6502更强的处理器跑了趟美国看了一圈主流芯片发现市面上的方案要么太贵要么性能不够干脆决定自己设计。1985年ARM1处理器诞生但真正改变命运的转折点是1990年。那一年Acorn和苹果、VLSI Technology合资成立了独立的ARM公司。苹果想给Newton掌上电脑找一颗低功耗处理器于是ARM从Acorn分拆出来专注做“处理器知识产权”生意。从那时起ARM就定下了一个延续至今的基调公司不制造、不销售任何物理芯片只设计和授权处理器架构、微架构以及相关IP。当时没人觉得这个模式能成。毕竟Intel、AMD都在卖芯片谁会把自家核心的“设计图纸”卖给对手但ARM恰恰靠这种“自己不造芯片”的定位活了下来并且活得比任何一个芯片制造商都长。2016年软银以320亿美元收购ARM2023年ARM在纳斯达克重新上市市值一度超过600亿美元。一个不卖芯片的公司价值却超过绝大多数“真造芯片”的厂商这件事本身就值得琢磨。1.2 指令集三十年不换接口才是最大的技术红利我在给刚入行的同事讲ARM时最喜欢打一个比方指令集架构就像一门语言的语法。你今天学的“if/else”“for循环”三十年后写代码大概率还是这么写而处理器的微架构则是每个时代对同一门语言的不同“口音”——有人说得快有人说得好听。ARM从1985年到现在核心指令集保持了一个相当克制且稳定的演进节奏。ARMv4、ARMv5时代的经典指令到今天ARMv8、ARMv9仍然向后兼容。哪怕ARMv8从32位切换到64位依然保留了AArch32执行状态让老软件不至于一夜之间全部作废。对比x86阵营Intel和AMD虽然也讲向后兼容但x86指令集三十多年膨胀得像个堆满杂物的车库光是指令前缀就够写一本书。这种稳定性对整个行业是极其重要的。芯片设计公司买ARM授权不只是买一套当前的微架构更是买了一个长达几十年的软件兼容承诺。你花三年做出来一颗SoC如果你的指令集接口说变就变那所有为这颗芯片写的编译器、操作系统、应用软件都得跟着重写这个代价没有任何公司承受得起。所以从某种意义上说ARM真正卖的不是“Cortex-A78很厉害”而是“你的业务在ARM上能稳定跑二十年”。1.3 手机只是表象ARM真正统治的是“怎么造芯片”这件事很多人以为ARM的统治力来自手机。这句话只对了一半。手机是ARM最显眼的战果但ARM真正统治的是所有需要“硅”但又没能力从零设计CPU的公司。从汽车里的MCU、路由器里的网络处理器到硬盘里的主控芯片、蓝牙耳机里的SoC只要这颗芯片需要跑代码大概率就绕不开ARM的Cortex-M或Cortex-A。我接触过的几家创业公司做AI边缘计算盒子的、做智能门锁的、做工业PLC的几乎无一例外选择了ARM核心。原因特别朴素自己做一颗核心团队至少需要五十人起步、研发周期三年起步而直接买一个Cortex-A55或者Cortex-M7的授权一年半就能把SoC流片回来。在“抢时间”和“省成本”面前自研处理器微架构是绝大多数公司根本承担不起的奢侈品。ARM真正的厉害之处是把“造芯片”这个原本只有Intel、IBM这种巨头能干的事降维成了一项可以按需采购的“服务”。它让一家五十人的小公司也能做出一颗还算像样的SoC也正因如此它成了全球芯片设计行业无可替代的地基。2. 低功耗只是入场券生态才是ARM真正的护城河2.1 RISC和CISC的路线之争最后被电池和散热终结了ARM属于RISC精简指令集阵营x86属于CISC复杂指令集阵营。教科书上的说法是RISC指令简单、长度固定、大多数指令单周期执行CISC指令复杂、能干大事但每条指令需要的时钟周期不一定。单纯从纸面性能看CISC并不输但RISC有一个x86在那个年代很难追的优势单位功耗下能做更多事。早年PC插着电源功耗高一点无所谓。但手机不一样电池就那么大散热就靠一块均热板。如果你把x86处理器塞进手机结果就是充电两小时通话五分钟。Intel当年在移动端不是没尝试过Atom系列做了好几代最后还是在功耗和兼容性的双重夹击下黯然退场。所以我常说ARM和x86根本不是谁碾压谁的关系而是“生于不同时代长于不同约束”。x86生在插座边上ARM生在电池旁边。插座可以无限供电电池不行。一旦“每瓦性能”成了核心指标x86的软肋就彻底暴露了而ARM从诞生起就在为“少耗电、少发热、能完成同样的任务”做优化。这个基因差异是后来一切格局的起点。2.2 每瓦性能衡量架构优劣的真正指标说完理论来点实际的。衡量一颗芯片好不好不能只看峰值算力得看它吃多少电、发多少热、占多大面积。行业里通用口径是每瓦性能也就是“1瓦功耗能跑出多少算力”。我实测过不少场景同一份Redis压测脚本在ARM服务器上跑的每瓦QPS经常比同价位的x86服务器高出一截。举一个直观的例子。某云厂商的ARM实例用的芯片是64核的Ampere Altra满载跑Nginx反向代理时整机功耗大约180瓦而同样承载能力的x86服务器满载功耗差不多260瓦以上。如果数据中心里有一万台服务器单是靠ARM把功耗从260瓦压到180瓦一年的电费差就是一笔不小的数字。这还没算散热和机房空调的额外负担。当然峰值性能上x86依然有优势尤其是那些对单线程延迟极其敏感的数据库事务场景。但数据中心的底层逻辑正在从“无脑堆算力”转向“为每一瓦功耗精打细算”这个趋势对ARM来说就像一场持续吹了十年的顺风。2.3 从Redis、FFmpeg到Nginx软件生态的反向加固生态这个词被讲滥了但ARM能长期统治芯片设计行业生态真的是最核心的壁垒。热词里频繁出现的Redis ARM版本、FFmpeg ARM版本、Nginx ARM安装包、Ubuntu ARM版这些在十年前还是“民间爱好者自己编译”现在已经变成了“官方发布原生安装包”的标准动作。我自己踩过不少坑记忆最深的是早年在一个ARM路由器上编译FFmpeg链接到h264库时缺符号折腾了整整一天。现在呢在ARM64的Ubuntu上敲一个sudo apt install ffmpeg装的就是官方针对ARM优化过的原生版本开箱即用。Redis官方提供ARM64的二进制包Nginx在ARM上编译也不会缺模块连TensorFlow、PyTorch这些重负载框架都以官方Docker镜像的方式提供了linux/arm64架构版本。这种生态成熟度是滚雪球滚出来的ARM芯片卖得越多愿意移植软件的公司就越多软件越丰富下游厂商越愿意选ARM下游厂商选ARM芯片流片量就更大授权费也就更丰厚。到后来很多软件团队做架构适配的时候已经不需要做“是否支持ARM”的取舍因为默认就得支持不然产品在市场上直接缺少一大块竞争力。3. 授权模式拆解为什么苹果、高通、华为都甘愿交钱3.1 三种授权三种完全不同的打法ARM的授权模式经常被误解成“交一笔钱拿一份图纸”。实际上它分三个层次按技术含量和自由度从低到高分别是处理器内核授权、指令集架构授权、物理IP授权。处理器内核授权最常见ARM把已经设计好的Cortex-A78、Cortex-M33等核心的RTL代码给你你把它集成到自己的SoC里稍作改动甚至不改。绝大多数中小芯片设计公司走这条路相当于“买毛坯房的钥匙自己装修一些局部”。架构授权等级最高也最贵ARM把指令集架构的知识产权转给你允许你基于ARM的指令集自行设计微架构。苹果和高通都是走这条路。苹果基于ARMv8设计出M系列和A系列芯片底层指令集是ARM的但微架构和调度器是完全自研的。高通早年用的Kryo核心也是基于架构授权魔改。物理IP授权相对最冷门但同样赚钱包括标准单元库、存储编译器、GPIO、USB控制器这些制造和集成所必需的“原材料”。做一颗SoC不光有CPU核就够外围模拟电路、高速接口、锁相环这些都可以向ARM按需采购。三类授权形成一个结构性的金字塔金字塔底是海量用现成内核做集成的小公司金字塔尖是少数能基于指令集自研核心的巨头。无论你在哪一层都要向ARM付钱只不过付的方式和金额不同。3.2 版税不是“一次性买断”而是跟着出货量走的现金流ARM的收费模型分两块前期授权费License Fee和后续版税Royalty。授权费是门槛你拿到IP使用的“门票”要先付一笔钱金额从几十万美元到数千万美元不等。版税则是每颗芯片出货之后按价格的一定比例抽成比例通常在中低个位数比如1%到3%。打个比方你就懂了。ARM不是卖咖啡机的而是卖“咖啡机图纸”外加“每卖出一杯咖啡抽一勺粉”。芯片公司卖得越多ARM赚得越多芯片公司卖不动ARM也跟着少赚。这个模式下ARM和客户利益高度绑定客户不会觉得ARM是个“一锤子买卖的供应商”而会把它当成长期的商业模式合作伙伴。我见过一些初创公司抱怨ARM版税太贵正经算一笔账一颗售价10美元的SoC如果版税率2%单颗税费20美分出货100万颗就是20万美元。对于一颗新芯片来说这个成本占比其实可控。但如果换一条路自研一套全新的指令集芯片能不能流片成功都另说更别谈软件生态了。这也是为什么大家嘴上骂Arm贵身体却很诚实。3.3 自研核心的账单不是不想省钱是时间太贵了经常有人问我“苹果都能自研微架构了为什么还要继续交ARM授权费为什么不干脆彻底不用ARM的指令集”问题的关键就是指令集不是芯片的终点指令集背后是几十年的软件生态。如果苹果放弃ARM指令集换一套自创指令集那意味着iOS生态里的上百万个App全部要重新编译甚至重写所有已有的开发框架、第三方库、编译器工具链全部归零。这个迁移成本会让苹果一夜之间掉回2000年的起点。自研微架构本身的成本也不低。一颗高性能应用处理器核心团队规模至少三四百人研发周期三年起步预算没有几亿美元捂不住。做出来之后还得验证、改版、再流片中间任何一步出了问题研发周期直接翻倍。而向ARM买一个Cortex-X4核心授权可能几百万美元就搞定了还能在第一时间用上成熟且经过验证的设计。所以“自研核心”这件事本质上是只有苹果、高通、华为海思这些有能力摊薄研发费用的巨头才玩得起的游戏。绝大多数芯片公司的最优策略就是老老实实买ARM现成的核心把时间花在SoC集成、系统软件和外设差异化上这才是性价比最高的路径。4. 一个嵌入式或服务器工程师每天接触的真实ARM4.1 交叉编译在x86上写代码让ARM去跑只要和ARM打过交道的工程师几乎都躲不开交叉编译这个词。它解决的问题很简单编译工具跑在性能强劲的x86服务器上目标程序却要在ARM设备上运行。我在日常开发中最常用的命令是这样的# 在x86_64的Ubuntu主机上安装aarch64ARM64交叉编译工具链 sudo apt install gcc-aarch64-linux-gnu # 查看当前机器的架构 uname -m # 编译一个简单的C程序目标平台是ARM64 aarch64-linux-gnu-gcc -o hello_arm hello.c # 用file命令查看生成的可执行文件格式 file hello_arm输出的文件格式里会有“ELF 64-bit LSB executable, ARM aarch64”这样的标识说明它就是给ARM机器用的。真正要把这套流程用得顺手还需要处理动态库、依赖和sysroot的问题否则编译出的程序在ARM目标机上会因为找不到.so库文件而直接崩溃。交叉编译看起来只是“换个编译器前缀”但这里面的坑不少。一个最典型的坑是把x86上编译的二进制拷贝到ARM机器上系统报“Exec format error”。这不是权限问题也不是文件损坏纯粹就是架构不匹配。判断方法很简单在目标机上跑一下uname -m如果输出的是aarch64你的程序必须是ARM64版本的才能执行。4.2 ARM Compiler 5老项目与AC6迁移的纠结热词里一堆人在搜“ARM Compiler 5.06 update 6 build 750下载”“ARM Compiler 5.06 update 7 build 960下载”这说明很多嵌入式老项目还卡在ARM Compiler 5简称AC5上。AC5和AC6之间的核心差异在于编译器后端工具链完全换了代AC5用的是ARM自家老牌编译后端AC6基于LLVM/Clang。AC6对C99、C11甚至更新的语言标准支持更好代码体积和性能优化也更激进。但问题就出在“更激进”上。很多老项目的代码其实并不规范依赖编译器某些未定义行为或特定优化选项从AC5切到AC6之后轻则多出一堆warning重则编译器直接报错甚至生成行为异常的目标代码。我自己就踩过一个大坑一个跑了几年的电机控制程序AC5编译一切正常换到AC6之后定时器中断偶尔丢事件。排查到最后发现是编译器对某个volatile变量的优化方式不一样导致中断标志位被错误地提前快读了。如果你的项目也在用很老的HAL库或者第三方协议栈切编译器之前一定先看看代码有没有未定义行为并且做好充分的回归测试。在Keil MDK开发环境里如果编译时提示“missing: compiler version 5”说明你当前MDK版本没带AC5需要去Arm官网下载历史版本的Arm Compiler 5安装包补上。这个大版本兼容问题可能是ARM生态里一个“幸福的烦恼”因为生态太庞大十年二十年前的项目到今天还得维护所以旧编译器反而成了一个刚需的东西。4.3 在ARM服务器上装软件已经顺滑得像在x86上一样过去想在ARM上跑一套Web服务光是编译Nginx、配置PHP、装MySQL就能劝退一大半人。现在完全不同了。我最近在一台ARM64的云服务器上部署一个业务服务全程没有遇到任何架构相关的阻碍# ARM64 Ubuntu上直接安装Redis sudo apt install redis-server # 安装Nginx sudo apt install nginx # 用Docker拉取ARM64镜像并运行 docker pull redis:7-alpine docker run --rm -d --name redis-arm redis:7-alpineDocker的多架构镜像机制解决了最大的迁移成本。docker pull的时候它会自动根据uname -m的结果选择对应的linux/arm64镜像层不需要人为指定什么。以前梦寐以求的“一次构建处处运行”正在真正落地ARM作为目标平台的“特殊感”正在消失。热词里还有“银河麒麟”“麒麟V10 ARM版”“飞腾ARM交叉编译”。这些年我在国产化平台上适配过不少服务最有体会的一点不是系统差异而是软件源和预编译包越来越全了。早期一个PIP包在ARM上找不到wheel只能现编译现踩坑现在绝大多数常用Python包都有了ARM64轮子pip install一把过。个别冷门包缺失的时候再去用源码编译也不迟。5. ARM与x86的正面交锋从各守一摊到抢同一个饭碗5.1 各自的堡垒与软肋x86的堡垒是PC和传统服务器特征是单核性能强、主频高、生态成熟。ARM的堡垒是移动设备和嵌入式特征是功耗低、能效比高、定制灵活。过去三十年这两个阵营基本是“井水不犯河水”PC里跑Windows手机里跑安卓谁也不抢谁的买卖。但这几年边界已经被打破。Intel和AMD做出过非常优秀的低功耗处理器依然很难在手机市场站稳ARM也一直在尝试进入PC和服务器以前总被质疑“大核性能不够、软件兼容性太差”。真正的转折点是苹果M系列芯片。苹果M1发布的时候很多人第一反应是“跑分很高”。但真正重要的不是跑分而是它证明了ARM架构在PC场景下不仅能做到“够用”还能在能效比上碾压同期的x86笔记本处理器。一个例子是我的MacBook Pro M1 Pro在剪辑视频、跑Docker容器时风扇几乎不转而此前大多数x86笔记本早就开始压着温度墙降频了。5.2 云厂商自研ARM芯片ARM攻入数据中心的冲锋号另外一个重要方向是数据中心。热词里出现“甲骨文云查看ARM机器余量”“VMware运行ARM系统”不是偶然的全球几大云厂商都在疯狂采购ARM服务器芯片。亚马逊Graviton系列、Ampere Altra、华为鲲鹏这些ARM服务器芯片已经在线上承载真实业务流量而且口碑都很不错。我拿Graviton2跑过一套容器化微服务和同代x86实例对比在Web网关、消息队列这些场景下性价比优势非常明显。原因也不难理解ARM核多每个核功耗低在数据中心的横向扩展模型里多核带来的并行吞吐能力远比单核极限性能重要。数据库这种强依赖单线程延迟的场景ARM依然吃亏但容器、微服务、静态Web、日志处理这类“能水平扩展”的业务ARM已经是极具竞争力的选择。5.3 软件迁移成本断崖式下降x86不再是默认选项其实“软件迁到ARM贵不贵”是x86堡垒能否守住的真正决定因素。以前全网几乎只有x86的编译产物很多软件根本找不到ARM版本。现在情况变了Java有“一次编译到处运行”的JVMGo和Rust直接交叉编译出ARM原生二进制Python和Node.js等解释型语言天然跨架构。剩下的一些编译型老系统Docker多架构镜像和CI/CD流水线也基本能自动覆盖。我这两年帮助团队做的几次服务器架构迁移最耗时的不是“改代码”而是“跑回归测试”。依赖关系理清楚之后迁移本身反而没那么可怕。当一个行业里“换到ARM”的边际成本从“伤筋动骨”降到“平平无奇”x86就不再是永远是默认选项这才是ARM真正开始动摇x86统治力的信号。6. RISC-V步步紧逼ARM的统治还能撑多久6.1 RISC-V让ARM第一次有了“免费对手”如果说x86是ARM的老对手那RISC-V就是ARM的新威胁。RISC-V是一套开放指令集架构完全开源、免授权费任何人可以基于它设计自己的芯片。过去几年RISC-V在中低端MCU、AI加速器、存储控制器等方向落地非常快很多初创公司直接用它替代Cortex-M系列。我评估过RISC-V在IoT方向的机会。如果做一颗极简的物联网控制芯片不需要复杂的外设生态RISC-V的授权成本优势就很明显省掉ARM的入门授权费和版税用openOCD、GCC工具链做开发完全不需要向任何人交“过路费”。在这个细分市场ARM确实面临实实在在的竞争压力。6.2 ARM的反制商用IP生态的护城河但RISC-V想全面挑战ARM还差着最关键的一环软件兼容性和验证成本。RISC-V自由度太高指令集可选扩展太多导致“同样是RISC-V甲芯片和乙芯片的软件兼容性并不完美”。碎片化在开源社区可以靠社区维护来缓解但在商业市场客户要的是“我在Cortex-M上写的代码换一颗芯片也能直接跑”的确定性。ARM应对RISC-V的策略也很清晰一方面持续强化Cortex-M系列在MCU市场的性价比和工具链成熟度另一方面主推ARMv9架构和Arm Total Compute Solution把安全、虚拟化、AI加速、系统级一致性打包成整体方案卖给芯片公司。其核心逻辑依然是“我用三十年建立的商业IP生态不是一天两天能复制的”。6.3 我的判断短期内ARM的地位不会动摇但裂痕已经出现从芯片设计行业的角度来看ARM在接下来五到十年内依然是最主流的选择。原因不是RISC-V不好而是整个产业链切换基础设施的代价太大了。芯片公司换指令集意味着EDA工具流程、验证环境、操作系统适配、编译器优化、第三方中间件全部要跟着变。这么庞大的一套体系想被掀翻需要的时间单位是十年不是三年。但裂痕真的已经出现。越来越多芯片公司会在同一个SoC里同时集成ARM核和RISC-V核ARM核跑主应用RISC-V核做电源管理、传感器采集这些“边角料”工作。这种情况下RISC-V不是在替代ARM而是从外围一点点蚕食。ARM要想维持长期统治不光要守住手机和服务器的高地还得在MCU这个基本盘上守住性价比。最后说点个人体会。我在用ARM和x86之间反复横跳过很多年最大的感受是ARM的长期统治不在于某个处理器性能有多强而在于它把“降低芯片设计门槛”和“降低软件迁移门槛”这两件事同时做到了极致。对一个行业而言最深的护城河往往不是性能参数表上的数字而是人们已经习惯了围绕它而建的各种工具、经验和流程。只要这个惯性还在ARM在芯片设计行业的统领地位就还会持续很多年。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →