你可能会发现最近这样的新闻越来越多:苹果要换 A 系列芯片给 Mac 了,英特尔没落了要被 AMD 反超,次世代游戏主机自定义了 AMD 和显卡和处理器。乍一看可能有些混乱,硬件世界到底发生了什么?本文中,我会先聊聊技术背景,接着举例一些设备,来讨论的硬件原理。最以谈我所见到的未来。

市面上的硬件厂商及产品系列众多,比如华为麒麟,高通骁龙,微软 SQ 系列,苹果 A 系列,英特尔酷睿,AMD Ryzen 系列等等。但实际上归根到底,大家在争论的无非是 3 件事情。

第一是工艺水平:比如 5nm, 7nm, 10nm 等;这数字好比你手上拿的雕花刀,数字越小刀尖越细,理论上同空间内可雕出的产品越细致。我们上述的硬件厂商设计好了芯片往往要交给这些雕花厂制作出来,工艺越好的芯片效能更佳。经过一番洗牌后,世界上留下的两个最大雕花厂便是台积电的 5 纳米技术,和英特尔的 10 纳米技术。因为英特尔雕花厂自产自销,所以市面上的其他大厂的高端芯片基本都是台积电做的,因为它们有这个精钢钻,做得了这瓷器活。

第二是自家迭代:比如英特尔的 skylakelakefield 等;这些名字意味着每个厂家内部的芯片设计迭代,一般来说,越新代的芯片的各方面性能越佳。除在命名上作弊除的厂家外,这个原理放在每个厂家都类似。比如苹果的 A14 优于 A13;AMD 的 Zen 3 优于 Zen 2。这个后面的数字一般意味着自家芯片产品的设计升级。同时代的产品一般会被厂家根据需求阉割成不同价格和性能段,比如 AMD 采用 Zen 架构的 EPYC,ThreadRipper,Ryzen 三个系列分别对应服务器需求,创意需求和游戏需求。

第三是指令集:比如 ARM64 x86-64 x86-32 等;ARM 和 x86 分别代表其使用精简指令集 RISC 和复杂指令集 CISC。ARM 为代表的精简指令集能执行的单个任务更少,因此对晶体管的数量需求也少,但是遇到复杂的事情时需要拆解成多个小指令进行;AMD 和英特尔为代表的复杂指令集 CPU 晶体管设计更复杂,却也可以一次执行更高难度的指令。与工艺水平和自家迭代不同,指令集的选择更像选边站,便成为了最近几年硬件争论的焦点,也是本文讨论的核心。


更有优势的一方

上文我们提到,ARM 的精简指令集负责更单一的命令,英特尔和 AMD 选用的 x86 复杂指令集适合执行一步到位的指令。这里我们从 ARM 的优势聊起。首先是占地大小,ARM 因为指令更单一,因此使用的晶体管少了,占用的空间自然也小。这样能腾出地方给照片处理芯片,网络芯片等,整合度更高。

其次是能耗表现优秀,晶体管数量少了能呼吸的空间就多了,发热小了也就几乎用不上风扇了。这种指令集很适合移动设备的需求,耗电小并且集成度高。因此你在移动设备上看到的芯片几乎都是 ARM。

你也许会问,我没看到有哪个设备用 ARM 啊?我用的明明是麒麟处理器,骁龙处理器。其实这也好说,ARM 是一家 IP 提供商,即授权给每个厂家最初的设计图纸,每个厂家自己按照喜欢修修改改加上自己的名字。高通说我的叫骁龙,华为说我的叫麒麟,名字真的是大家怎么高兴怎么来。

说了半天 ARM,那英特尔和 AMD 使用的复杂指令集遍一无是处吗?当然不是,复杂指令集更精密的晶体管设计使得其可以一次执行 ARM 需要几步才能完成的指令。落实下来的表现就是吃得多做的也多。同时带来的与生俱来的副作用还有做的多发热也多。因此这一架构的处理器往往用于电脑和服务器等性能有需求,且对发热不那么敏感的地方。

x86 架构在急什么?

随着近几年 ARM 架构的进化,有一种精简指令集能做越来越复杂的事情的趋势。这时的采用 x86 架构的英特尔也开始思考会不会有一天自己会被挑战。除此之外,考虑到移动设备和 IOT 的设备越来越好卖,便也参与到这场竞争中来。

战争的号角由 8 年前发布的Windows RT 吹响,它是第一款运行 ARM 的 Windows 设备,一经发布就因其性能孱弱和软件缺失而被历史扫尽垃圾筐里。但这不是终点,8 年后的今天,微软又拿出了采用魔改版骁龙骁龙 8cx 的 SQ1 处理器来应战,这时的设备是 Surafce Book X。如下图所示,同代的左侧搭载 ARM 架构的新机器比右侧搭载 x86 英特尔处理器的 Surface Pro 轻薄了快足足一倍。


要单说这一个例子也许还不值得英特尔和 AMD 恐慌,真正让它们害怕的是这些 ARM 服务器的出现。服务器中的芯片很重要的一点便是可扩展性,也就是俗称的堆料。偏偏精简架构的 ARM 处理器又相对擅长做这些事。于是乎硬件厂商开始尝试制作 ARM 服务器,就连亚马逊的 AWS 云服务器也在 2019 年用上了自己设计的 ARM Graviton2 芯片。

于是乎以英特尔和 AMD 为代表的传统 x86 阵营面临了新问题,腹背受敌。前有移动端芯片的望眼欲穿又使不上力,后有服务器端 ARM 虎虎生威。英特尔和 AMD 在 2020 年的今天,分别掏出了自己的应对方案。比较有趣的是这两家大厂各选了一个方向应对。英特尔选择去重新设计新的 Lakefield 架构降低能耗,采用混合封装技术缩小芯片体积,来进攻移动端市场。其最新的成果便是题图的那颗处理器,史无前例的制作了 x86 架构下的大小核芯片 i5-L16G7,首发在 2020 年 7 月上市的三星盖世 Book S 笔记本中。


英特尔的大小核史无前例的震撼了看客,等等,史无前例吗?并没有,这个大小核架构是 ARM 已经在移动端深耕多年的布局。最新一版 ARM 的设计架构中推出的新 X1 处理器推荐布局图如下。你看看像不像在和英特尔找不同?
当下的 ARM 处在单核性能优秀,多核性能与 86 同等水平下,超多核心的探索还处于早期阶段。AMD 选择将视角放在多超多核心的处理器研发上,这恰好是当下 ARM 的软肋。经过多年的耕耘,ARM 新的 Zen 架构终于将多核型调度与性能优化的非常优秀,这也为 AMD 留下了接下来几年安身立命之本。


性能方面,苹果在大核心 ARM 的研发上开始的更早,也更早注重单核性能。用在 2018 年苹果发布的 A12X ARM 处理器性能已经可以在单核和多核芯表现上和英特尔同代 x86 产品打成平手甚至胜出。随着工艺和设计提升,未来的 A 系列在此基础上能耗更低,更有进化前景,这就不难解释为什么苹果在数年前就做出迁移 Mac 产品线到 ARM 的决定。


大家将要看到的新 iMac 上 A14 的 12 核处理器,这是很多人以为是变革的起步。比如移除 CPU 风扇降低噪音,比如采用新设计移除耳机口并发布新的 AirPods Studio 耳机;移除 Touch ID 而转向横向布局的 Face ID;集成 T3 安全芯片等。软件方面 ARM 架构的开发机便是部署 ARM 应用的最优解,因此 Xcode,FCPX 等软件在开发端 macOS 和移动端 iPad Pro 也呼之欲出。而实际上这一切改变,便是一切都是用心安排下的顺理成章。

兼容问题及解法

为什么会存在兼容问题呢?其实也好说。还记得 ARM 的 x86 这两种指令集好比说话方式不同,因此在此基础上与软件的交流方式必然也不同。想要 ARM 处理器听得懂指令,要么是用它的语言与他说话,要么就是找个翻译官。

微软目前在 Windows 使用了 WOW64 兼容层来处理所有早先的 32 位应用,而传闻中的 64 位兼容层也即将到来。苹果这边,我们看到苹果早在过去的三年中干掉了 32 位应用为 ARM 铺路,OpenGL 图形层也用 Metal 框架完成大一统。AppKit,Catalyst 和 SwiftUI 所组成的原生框架均可以在 macOS 上顺利运行。取决于翻译官的开发进度,我们会在很快看到自己熟悉的应用跑在 ARM 芯片上的场景。而这一切硬件变化,对用户来说甚至很难感知,只觉得电脑反应更快,这便足矣。


浅谈未来

今日,我看到 ARM 在许多设备上的未来十分光明; x86 虽不会被立刻淘汰,却注定长期腹背受敌。篇幅所限,本文还有许多地方无法涉及,比如 AMD Navi 架构的极佳扩展性使其在移动端和游戏主机中得意重用;Zen 架构的发展前景;高通骁龙存在的问题等。不过不急,我们已处在硬件的变革之中,静观其变便是。

现在我们所经历的,不是变革的开始,而是数年心血后的成果展示。