你可能会发现最近这样的新闻越来越多:苹果要换 A 系列芯片给 Mac 了,英特尔没落了要被 AMD 反超,次世代游戏主机自定义了 AMD 和显卡和处理器。乍一看可能有些混乱,硬件世界到底发生了什么?本文中,我会先聊聊技术背景,接着举例一些设备,来讨论的硬件原理。最以谈我所见到的未来。
市面上的硬件厂商及产品系列众多,比如华为麒麟,高通骁龙,微软 SQ 系列,苹果 A 系列,英特尔酷睿,AMD Ryzen 系列等等。但实际上归根到底,大家在争论的无非是 3 件事情。
第一是工艺水平:比如 5nm, 7nm, 10nm 等;这数字好比你手上拿的雕花刀,数字越小刀尖越细,理论上同空间内可雕出的产品越细致。我们上述的硬件厂商设计好了芯片往往要交给这些雕花厂制作出来,工艺越好的芯片效能更佳。经过一番洗牌后,世界上留下的两个最大雕花厂便是台积电的 5 纳米技术,和英特尔的 10 纳米技术。因为英特尔雕花厂自产自销,所以市面上的其他大厂的高端芯片基本都是台积电做的,因为它们有这个精钢钻,做得了这瓷器活。
第二是自家迭代:比如英特尔的 skylake, lakefield 等;这些名字意味着每个厂家内部的芯片设计迭代,一般来说,越新代的芯片的各方面性能越佳。除在命名上作弊除的厂家外,这个原理放在每个厂家都类似。比如苹果的 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 这两种指令集好比说话方式不同,因此在此基础上与软件的交流方式必然也不同。想要 ARM 处理器听得懂指令,要么是用它的语言与他说话,要么就是找个翻译官。
微软目前在 Windows 使用了 WOW64 兼容层来处理所有早先的 32 位应用,而传闻中的 64 位兼容层也即将到来。苹果这边,我们看到苹果早在过去的三年中干掉了 32 位应用为 ARM 铺路,OpenGL 图形层也用 Metal 框架完成大一统。AppKit,Catalyst 和 SwiftUI 所组成的原生框架均可以在 macOS 上顺利运行。取决于翻译官的开发进度,我们会在很快看到自己熟悉的应用跑在 ARM 芯片上的场景。而这一切硬件变化,对用户来说甚至很难感知,只觉得电脑反应更快,这便足矣。
浅谈未来
今日,我看到 ARM 在许多设备上的未来十分光明; x86 虽不会被立刻淘汰,却注定长期腹背受敌。篇幅所限,本文还有许多地方无法涉及,比如 AMD Navi 架构的极佳扩展性使其在移动端和游戏主机中得意重用;Zen 架构的发展前景;高通骁龙存在的问题等。不过不急,我们已处在硬件的变革之中,静观其变便是。
现在我们所经历的,不是变革的开始,而是数年心血后的成果展示。