[PConline 杂谈]苹果发布了使用了ARM架构M1处理器的MacBook,其惊人的能效表现,以及深度和移动平台融合的生态,给人留下了深刻的印象。M1处理器打破了很多人ARM性能羸弱的固有印象,而macOS和M1的契合度,更是令人惊叹连连——M1这颗ARM处理器,通过macOS 11中Rosetta 2转译层运行X86软件,很多时候竟然比Intel高端处理器原生运行X86软件更快!
macOS 11兼容ARM芯片,从另一维度挑战Windows
苹果M1的出彩,是出乎很多人的意料的。特别是对比微软在ARM领域的步履蹒跚,更凸显出苹果新产品的不可思议。要知道,微软早在2012年,就推出了使用ARM处理器的Surface平板,并为之配备了转制的Windows RT系统;最近,微软更是力推使用骁龙ARM处理器的Surface Pro X平板,其上搭载的是兼容X86软件的Windows 10 on ARM。
微软早已经涉足ARM领域,推出了基于ARM的Windows平板,但表现不尽如人意
然而,微软的ARM产品实际表现却令人失望。初代Surface上的Windows RT无法兼容X86软件,而Windows 10 on ARM则无法运行64位软件,且使用X86软件时性能极其低下。和M1以及macOS 11相比,表现有云泥之别。
微软借助Wintel联盟,统治了桌面市场三十年。苹果macOS凭借M1这颗表现惊人的ARM芯片,能否挑战Windows?今天一起来谈谈这个话题吧。
M1芯片为何能有如此高性能?Windows的成功,和X86处理器在性能上的强势是密不可分的。业界有一个很著名的说法,叫“安迪-比尔”定律,安迪指的是Intel前CEO安迪·格鲁夫,比尔则是大家都熟悉的微软创始人比尔·盖茨。这个定律的主要内容,就是安迪提供什么,比尔就会拿走什么,意思是Intel为代表的X86处理器提供的性能,都会被Windows为代表的软件吃掉。
虽然这个定律很有吐槽软件吃性能的意味,但也肯定了X86处理器的性能表现。而现在,M1这颗ARM处理器,在轻薄笔记本的使用环境下,性能大大压过了X86处理器一头,这到底是怎么做到的呢?这和M1处理器的诸多特性是密不可分的。
·工艺。得益于多年和台积电的密切合作,苹果M1处理器得以用上了最先进的5nm工艺,先进的工艺带来了能效方面的先天优势。而M1的设计也是和台积电的工艺特点相契合的,对比Intel,台积电的工艺并不追求高频率,而M1的架构则主攻高IPC,并不需要高频,双方共同铸造出了M1芯片的极高能效。
M1芯片使用了与之特性相契合的先进工艺
·规模。受益于5nm工艺,M1芯片得以在有限的面积中,集成不亚于X86处理器规模的晶体管。M1处理器包含8个CPU核心,芯片面积为119mm²,集成了160亿个晶体管;作为对比,当前桌面顶级处理器AMD Zen 3中的一个CCD同样包含8个CPU核心,面积为80.7mm²,集成41.5个晶体管。考虑到M1还封装了GPU、RAM等其他模块,事实上双方在CPU单元部分,规模已经是并驾齐驱。
·架构。M1的CPU架构设计是非常激进的。举个例子,根据外媒Anandtech推测出来的架构图,M1拥有8解码超宽架构的大核心,这是一个非常夸张的规模——顶级X86处理器只做到了4解码。而在ALU单元、FPU单元的数量配置上,M1对比当前的X86处理器也有优势。尽管受限于工艺以及架构特点(超宽架构、短流水线),M1的频率并不高,但IPC却超过了许多顶级的X86处理器。
M1的大核心架构设计非常激进,X86处理器没有这么多路前端解码
·专用电路。很多朋友都看过M1版MacBook的剪片演示,新MacBook在视频剪辑的速度上,居然远胜于售价高好几倍iMac Pro,小小的甚至不需要风扇散热的M1芯片,表现更胜于i9处理器。这其实在很大程度上,得益于M1芯片集成的专用电路。
很多需要算力的特定功能,在M1中都有专用电路实现
专用电路这个名词听起来,似乎有点陌生,但其实如果你关注挖矿,就知道这是什么意思了。在挖矿领域,CPU速度远不如GPU,而GPU又远不如ASIC矿机,这是因为ASIC芯片是专为挖矿算法定制的专用电路。在M1芯片中,也存在诸多这样的专用电路,它们能为视频编码解码、机器学习、图像处理、数据加密等计算提供硬件加速,结合macOS 11专为其打造的API,一些生产力任务能够前所未有地高效运行。
·片上互联。这又是M1芯片的一大杀手锏。在传统的PC硬件架构中,内存、GPU、CPU等部件,需要经由主板相关总线来传输数据,而M1芯片则将这些部件进行了SoC化,将其集成到了同一块芯片当中。相比传统做法,M1芯片能极大程度地提升数据传输的速度,性能得到了系统性的提升。
macOS可以凭借M1芯片挑战Windows吗M1芯片结合macOS 11,表现令很多人眼前一亮。对比Windows在ARM领域的坎坷进军,苹果这套组合拳更显得出类拔萃。那么问题来了,在这个ARM愈发强势的时代,macOS能否凭借M1这颗顶级的ARM芯片,挑战Windows以及X86体系?恐怕依然是不行的。
首先来说说硬件方面。上文提到了M1芯片性能强大的秘密,但这是否意味着它就可以挑战X86处理器?X86处理器之所以没有使用M1这样的激进架构设计,是有很多现实方面的原因的。
首先,和ARM相比,X86背负着更沉重的历史兼容问题。虽然当前的X86处理器本质上也是将复杂指令拆分为简单指令进行解码,但X86指令的长度并不固定(变长指令),不像ARM处理器那样,只解码长度固定的定长指令,这意味着X86处理器很难通过堆砌指令解码器,来大幅提升性能。如今的X86处理器仍兼容多年前的MMX等古老指令,这些又需要耗费额外的晶体管。这些现状,令X86无法像ARM那样轻装上阵。
需要耗费更多晶体管,去兼容MMX等古老指令,这就是所谓的“X86税”
而苹果从来对向后兼容不上心。为了追求性能,苹果的兼容可以烂到什么程度呢?例如你买了最新版的使用M1处理器的MacBook,想要打开几年前剪视频的项目文件,发现新版Final Cut已经不支持这个旧版文件,而现在的MacBook,又安装不了旧版的Final Cut(不再支持32位)……你几年前拍摄的素材,就这么废掉了。
几年前的文件,用新Mac打不开,苹果可不考虑旧软件的兼容
苹果主攻消费市场,它可以让M1芯片彻底抛弃ARMv7指令集、放弃32位支持,让晶体管用在刀刃上;但X86广泛用于企业、工控等领域,它敢这样做吗?想想Intel安腾IA-64的惨淡下场,答案不言而喻。
X86当前对比M1有能效劣势,那它能不能像M1那样,使用8解码的超宽架构?由于变长指令等限制,X86处理器要实现超宽架构,设计难度太大,因此当前X86处理器选择了多核心超线程、超宽SIMD(例如AVX512)作为性能路线。
这又带来一个问题。和ARM处理器相比,想要发挥出应有的性能,代码需要专门为这些特性进行优化。X86并不像M1芯片那样,运行苹果为其高度优化定制的macOS系统,这进一步削弱了X86处理器在性能上的优势——最近的一个典型例子,就是Windows并不能很好地调度Zen 2处理器的CCX模块,需要为其制作补丁。
Win10 1903对Zen架构的优化:优先调用同一CCX内的核心、缩短响应时间,但如果没有这补丁呢?
而不得不提的是,M1的激进设计,以及macOS的优化,令Mac表现出匪夷所思的性能,但这些性能优势,是否将一直持续?前面提到,M1的强劲性能很多是通过专用电路来实现的,苹果系统通过API活用这些电路,让Mac拥有了出色的能效比。然而专用电路的软肋也在于“专用”,M1今天能够实现高规格HEVC视频的硬件加速,当新的视频编码面世,它还能有如此大的性能优势吗?恐怕无法做到。
最关键的一点在于,M1芯片是苹果专属,它不会外卖给其他厂商。这意味着,除了Mac电脑对应的消费市场,它没法在更多领域上,向X86发起冲击。与之相比,X86以及Windows的分布更加广泛,或许搭载M1的macOS能够在某些领域刺到消费者的痛点,但苹果仍无力打破X86和Windows筑起的壁垒。
M1芯片是Apple Silicon,它不会外卖给他人,无法在更多领域对X86和Windows发起挑战
简而言之,和M1芯片相比,X86处理器的设计没有那么激进,也没有这么多专属优化,因此在不少情况下性能会落于下风。但X86处理器的向后兼容、多线程并发等优势,也是M1芯片无法企及的。X86芯片在商用、工控、消费市场都能独挑大梁,ARM阵营并不能凭借M1芯片,就挑翻盘根错节的X86体系。
再来说说软件。macOS 11非常惊艳,通过SwiftUI以及Mac Catalyst,融合了苹果移动平台的生态。加之使用Rosetta 2转换层兼容已有的X86软件,这让它能够在保有大部分X86生态的同时,在ARM生态中活用M1的性能长处。很多朋友可以观察到,macOS 11并不缺软件,而很多跨平台同时支持Windows和macOS 11的软件,在macOS 11中性能表现会更好。例如微软家的Office、Visual Studio Code,就是其中例子。
M1为macOS提供了澎湃的性能,macOS能否藉此挑战Windows?在轻薄本领域,新的M1版MacBook已经鹤立鸡群,但macOS所面对的局限,和M1芯片是如出一辙的——它并不对外开放授权。
macOS将慢慢成为苹果ARM芯片的独占,PC机运行macOS的“黑苹果”将成为历史
如果说X86时代,macOS还可以通过黑苹果的方式,安装在其他机器上,那么进入到ARM时代后,macOS必然会渐渐成为Mac电脑的独占。当苹果未来进一步在Mac电脑中普及ARM处理器,Mac和PC没有了共通的硬件基础,macOS自然也就无法通过伪装硬件型号等手段,安装到其他PC中。
也就是说,ARM处理器的应用,反而减少了macOS的适用范围。macOS只能在苹果的既定硬件产品上,和对应的Windows PC竞争;而Windows开放的系统授权,必然能覆盖远多于苹果产品线的PC产品。从这个层面来看,macOS只能凭借少数的尖端产品、吸引少部分PC用户,不可能在整体上和Windows产生竞争。
反观Win10 ARM,可以安装在其他ARM设备上,这是否会重演X86时代PC围攻Mac的故事?
在可以预见的未来,这一情况不会改变。苹果从诞生起,一直秉持着制作小而精产品的理念,苹果从来就没打算让macOS像Windows那样,成为大众之选。对于苹果而言,无论是M1芯片还是macOS 11系统,都只不过是构造心目中某款理想产品的部件,它们不需要攻城略地占下大片市场份额,只需站上某个高耸的小山头即可。
M1芯片是macOS的一把尖刀,但它们显然是无法撬动Windows和X86处理器筑成的这堵庞大城墙的。
后话总的来说,macOS不太可能凭借M1芯片,来挑动Windows和X86的市场地位。
·M1芯片和macOS的高性能,当然是受益于先进的工艺、激进的架构以及专门的优化,但也很大程度上也是以牺牲向后兼容性为代价的,需要长期稳定运行的环境无法接受这样的产品;
·M1芯片和macOS都只服务于品类稀少的苹果产品,无法与Windows、X86在更多的细分领域竞争。
无论如何,M1芯片的横空出世,的确刷新了很多人的观念。ARM也可以用于高性能计算,在特定的环境下,它能比X86做得更好,这足以支撑Mac这样的小众产品成为爆品。Windows 10 on ARM以及Windows 10X也正在紧锣密鼓地开发中,微软在ARM时代能再创辉煌吗?除了macOS,Windows是否会遇到新的挑战者?我们拭目以待吧。