0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么搭载ARM架构的苹果MacBook跑x86软件不卡

如意 来源:太平洋电脑网 作者:Aimo 2020-11-15 09:34 次阅读

相信大家都已经知道,苹果在最新一场秋季发布会中,宣告了全新的MacBook产品。新MacBook换用了苹果自研的基于ARM架构的M1芯片,苹果从X86阵营转向,投入了ARM的怀抱。

在传统观念中,ARM是用于移动平台的架构,和桌面的X86芯片相比,ARM芯片的能效更高,但性能羸弱。这次苹果MacBook换用ARM,同时macOS 11仍对以往基于X86 macOS开发的软件兼容,这就让很多朋友感到困惑——用新的MacBook跑当前的X86软件,到底会不会卡?

这种担心是有道理的。在此之前,微软已经做过了这方面的尝试。微软推出了使用ARM芯片的Surface Pro X平板电脑,兼容X86的Win10软件。然而人们发现,体验并不理想,传统软件运行起来缓慢迟钝。换用ARM芯片的MacBook会不会有这样的问题?这就来分析一下。

MacBook的ARM芯片足够强吗?

新MacBook跑旧软件到底慢不慢,最关键的因素自然是新的M1芯片。人们普遍认为,ARM芯片的性能水平无法和X86比肩,毕竟ARM是简单指令集RISC而X86是复杂指令集CISC,复杂指令集自然强大得多,但事实上这是一个误会。

在规模上,苹果M1芯片足以和顶尖的X86桌面处理器并驾齐驱

CPU发展到今天,RISC和CISC的边界其实已经相对模糊了。在当前的X86处理器中,复杂指令也是会分拆成为类简单指令来执行的。

而在规模上,苹果设计的ARM芯片已经追赶上了X86,例如A14的芯片面积为88mm,共118亿个晶体管,而AMD最新发布的Zen3处理器中一个CCD的面积为80.7mm,共41.5亿个晶体管。考虑到A14还封装了AI模块、GPU等,A14芯片使用的是5nm工艺,而5800X使用的是7nm工艺,事实上大家的CPU单元部分,规模已经是并驾齐驱。

了解了规模,再来看看性能实测,这里引用Anandtech的数据。Anandtech使用了行业权威性能测试套件SPEC 2006来对比测试苹果A14、AMD Zen3以及英特尔Tiger Lake的性能,结果如下。

首先是整数性能,可以看到A14并不落下风。

再来看看浮点性能,A14和Zen3要明显领先于Tiger Lake。

Anandtech还使用了大家非常熟悉的Geekbench来测试,结果如下。

可以看到,在单线程性能上,A14的确已经能追上当前顶级的X86处理器。这次苹果MacBook使用的M1处理器,架构和A14相似,但规格更高,晶体管规模达到了160亿个,增加了两个大核心,在性能上方面是可以令人放心的。

其实到了这里,我们也不难找出为什么Surface Pro X运行缓慢的原因。Surface Pro X使用的是高通SQ1/SQ2处理器,这基本是骁龙855的马甲。而即使是骁龙865+,对比A14以及最新的X86处理器,性能也依然不太够看……

此情此景下,加之Win10 on ARM较低下的指令翻译效率,Surface Pro X运行X86软件的体验就不甚理想了。是的,到了这里大家应该也能看到ARM处理器运行X86软件,除了自身性能之外的其他影响因素了——操作系统的指令翻译效率。

macOS 11的指令翻译效率高吗?

X86软件想要在ARM芯片上运行,需要进行指令翻译。虽然ARM指令集并不意味着性能低下,但毕竟它和X86还是不同的,指令需要翻译过来,才能让ARM芯片执行。

在今年的WWDC大会上,苹果已经公布了指令翻译的方案。苹果宣布,将会为macOS平滑过渡到ARM平台,推出Rosetta 2中间转换层。如果你是老果粉,对于Rosetta这个词一定很熟悉——苹果Mac电脑当年从IBM PowerPC架构,迁移到Intel X86平台,所使用的转换层正是Rosetta。

Rosetta 2的作用在于,它通过指令翻译,可以让ARM平台的macOS,直接运行绝大部分的X86软件。从苹果的介绍来看,Rosetta 2的性能还相当不错,它并不是在软件运行的时候,才翻译指令的,而是在软件安装时就做好了转换。

当然,这也并非说Rosetta 2可以实现性能完全无损,它对AVX指令兼容并不好,如果X86软件依赖AVX乃至AVX2,那么在ARM平台上由于没有对应的高性能指令,运行效率会有明显下滑。并不是所有的软件都会用到AVX指令集,总体来说,Rosetta 2的性能应该还是可以接受的。

这次Mac从X86迁移到ARM,Rosetta 2对旧有X86软件的兼容也起着至关重要的作用

至于Rosetta 2的实际表现会如何?我们可以从两方面来衡量。

首先是参考Rosetta。苹果从PowerPC迁移到X86时,也使用了类似方案,当年并没有太多人抱怨Rosetta性能低下,我们自然也可以对Rosetta 2抱有期待。

其次是参考开发者的实测。实际上,苹果早前就已经推出了基于A12Z芯片的Mac mini开发机,开发者们很早就能接触到Rosetta 2,但到目前为止并没有什么关于Rosetta 2性能低下的爆料,可见Rosetta 2的实战表现应该相当不错。

到了这里,我们又可以来分析一下为什么Surface Pro X的表现会如此糟糕了。在Surface Pro X的Windows 10 on ARM中运行X86软件,是边转码边运行的,并不像苹果Rosetta 2那样在安装时作好转码工作,运行时无需再次转码。加上性能较弱的SQ1/SQ2处理器,运行X86软件拖慢卡顿也就在情理之中了。

总结

到了这里,相信大家都可以得出结论了。MacBook使用的M1处理器性能非常强大,足以和顶尖的X86处理器同台竞技;而苹果又在macOS 11中准备了高效的Rosetta 2指令翻译方案,因此对于能否流畅运行之前的X86软件,大家无需太过担心。

根据苹果的说法,情况要比笔者文中分析的更加乐观。苹果宣称,M1要比之前MacBook所使用的X86处理器性能高1倍,同时功耗仅为25%。从各种角度来看,新的MacBook都非常值得期待,一起来静待上市实测吧。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8644

    浏览量

    361663
  • 苹果
    +关注

    关注

    61

    文章

    23651

    浏览量

    191554
  • intel
    +关注

    关注

    19

    文章

    3451

    浏览量

    184764
  • macbook
    +关注

    关注

    0

    文章

    479

    浏览量

    41430
收藏 人收藏

    评论

    相关推荐

    x86Arm和RISC-V三大架构服务器CPU战况

    。可在服务器CPU领域,却又是另一片光景,英伟达从过去的观战方变成了如今的参战方,也陷入了三大架构混战的战局中去。   x86 的你来我往   由于x86赛道的玩家相当有限,且两家厂商都不愿意放弃这块蛋糕,所以呈现了一种互相拉扯
    的头像 发表于 05-26 01:02 2786次阅读

    谷歌发布Arm架构CPU,性能超越x86和通用Arm芯片

    据悉,谷歌计划借助谷歌云提供名为Axion的基于Arm的中央处理器(CPU)。该公司表示,其性能优越,超过同类x86芯片及云端通用Arm芯片。
    的头像 发表于 04-10 09:25 125次阅读

    x86 SBC vs ARM SBC:选择适合您的单板计算机

    比较,帮助您决定哪一种适合您。 基础知识 在我们深入比较之前,有必要了解什么是 x86ARM 架构x86是一种复杂指令集计算(CISC)
    的头像 发表于 03-07 13:26 99次阅读

    x86arm架构区别主板还是cpu

    x86ARM架构是计算机处理器的两种不同体系结构,涉及到CPU和主板两方面的区别。下面将详细介绍它们的特点和区别。 首先,我们需要先了解x86A
    的头像 发表于 12-21 17:08 764次阅读

    基于X86平台的ARM指令集模拟器的设计方案

    电子发烧友网站提供《基于X86平台的ARM指令集模拟器的设计方案.pdf》资料免费下载
    发表于 11-06 11:54 0次下载
    基于<b class='flag-5'>X86</b>平台的<b class='flag-5'>ARM</b>指令集模拟器的设计方案

    RT-Thread能在X86构架下访问PCI板卡设备

    RT-Thread能在X86构架下访问PCI板卡设备? 例如工控机,用于想要一个自主可控的系统,但是有些板卡还是PCI的,不知道RT-Thread能不能驱动?
    发表于 10-18 21:28

    基于X86平台的ARM指令集模拟器设计

    电子发烧友网站提供《基于X86平台的ARM指令集模拟器设计.pdf》资料免费下载
    发表于 10-11 15:03 0次下载
    基于<b class='flag-5'>X86</b>平台的<b class='flag-5'>ARM</b>指令集模拟器设计

    X86架构ARM架构的主要区别

    X86ARM是两种主要的CPU架构X86架构的CPU是PC服务器行业的老大,而ARM
    的头像 发表于 09-22 08:23 3989次阅读
    <b class='flag-5'>X86</b><b class='flag-5'>架构</b>与<b class='flag-5'>ARM</b><b class='flag-5'>架构</b>的主要区别

    CPU架构X86ARM的区别

    随着科技的快速发展,计算机技术已经深入到我们生活的方方面面。作为计算机的核心部件,CPU(中央处理器)的性能和架构对于整个系统的运行起着至关重要的作用。目前,市场上主流的 CPU 架构主要有两种:X86
    发表于 09-18 10:02 1241次阅读

    介绍三大主流芯片架构X86ARM、RISC-V

    我们主要应用的三大芯片架构X86ARM和RISC-V架构
    发表于 07-25 09:35 1.9w次阅读
    介绍三大主流芯片<b class='flag-5'>架构</b>:<b class='flag-5'>X86</b>、<b class='flag-5'>ARM</b>、RISC-V

    X86架构Arm架构的区别

    X86架构ARM架构是主流的两种CPU架构X86架构
    的头像 发表于 06-16 12:50 7364次阅读
    <b class='flag-5'>X86</b><b class='flag-5'>架构</b>与<b class='flag-5'>Arm</b><b class='flag-5'>架构</b>的区别

    分布式软件X86/ARM CPU混合部署

    近年来,随着 ARM 技术的发展,ARM 在服务器芯片领域的应用范围逐渐推广,在 Intel X86 的技术标准和产品供应链之外,提供了新的选择空间。
    的头像 发表于 06-06 14:31 1209次阅读
    分布式<b class='flag-5'>软件</b>:<b class='flag-5'>X86</b>/<b class='flag-5'>ARM</b> CPU混合部署

    为什么x86arm架构不同,但是都能装linux呢?

    为什么x86arm架构不同,但是都能装linux呢?他们的编译时如何实现的?
    发表于 05-16 10:21

    设备仿真模拟软件 QEMU 8.0 发布:改进对 ARM / RISC-V 架构支持

    转自https://m.ithome.com/html/690345.htm 开源 QEMU 8.0 设备仿真器和虚拟化软件已于 4 月 19 日发布,为 ARM、RISC-V、x86、s390
    发表于 05-05 09:48

    基于英特尔 x86 和 IOP 的系统互连软件 API

    基于英特尔 x86 和 IOP 的系统互连软件 API
    发表于 04-26 20:30 0次下载
    基于英特尔 <b class='flag-5'>x86</b> 和 IOP 的系统互连<b class='flag-5'>软件</b> API