ARM vs x86:指令集、架构以及所有关键差异比较

Android系统可以在三种不同的处理器架构上运行:ARM、Intel和MIPS。在英特尔(Intel)放弃手机CPU业务后,ARM成为了目前手机普遍使用的架构,而用于手机的MIPS处理器已经多年未见。ARM架构是Android和Apple体系中所有智能手机都在使用的CPU架构。Arm公司的处理器也正通过Arm版的Windows以及苹果公司为Mac定制的M1 CPU进军PC市场。Arm和Intel CPU大战持续升温,下面是你需要知道的关于Arm与x86的一切。

CPU架构对比

中央处理器(CPU)是设备的“大脑”,但它并不完全是智能的。CPU只有在给定具体的指令(可称为指令集)时才能运作,指令集命令处理器在寄存器和内存之间传输数据,或者使用特定的执行单元(例如乘法或减法)进行计算。不同的CPU硬件块需要不同的指令。随着CPU复杂性的增加和功能的越发强大,指令往往还会增多。所需指令也可以为硬件的设计提供指导,我们稍后会讲到这一点。
手机上运行的应用程序并不是用CPU指令进行编写的;如今的大型跨平台应用程序却无法在各种芯片上运行,这简直是疯狂。相反,用各种高级编程语言(如Java或C++)编写的应用程序是为特定的指令集编写的,以便能在ARM或x86 CPU上正确运行。这些指令会被进一步解码为CPU内部的微代码来进行操作,而这是需要硅空间和功率的。如果您想要最低功率的CPU,那保持指令集简便是最重要的。但是,复杂的硬件和指令虽然能耗大,但却有更好的性能。这是ARM和Intel的CPU设计理念的本质区别。

X86注重性能,而ARM则注重能效

ARM是基于RISC(精简指令集)构建的,而Intel(X86)则是基于CISC(复杂指令集)。Arm的CPU指令相当原子化,指令数和微操作之间有着非常密切的联系。相比之下,CISC提供了更多的指令,其中许多指令可执行多个操作(如优化数学和数据移动)。这会带来了更好的性能,但解码这些复杂的指令往往需要更大的能耗。

这种指令和处理器硬件设计之间的联系是CPU架构的本质。通过这种方式,CPU架构可以因不同的用途(如极数运算、低能耗或更小的面积)来进行搭建。这是ARM和x86在CPU方面的一个关键区别——前者基于较低的功耗、指令集和硬件。

现代64位CPU架构

如今,64位架构已成为智能手机和个人电脑的主流,但也不是全部都是。直到2012年,也就是在个人电脑问世十年之后,手机才实现了这一转变。简言之,64位计算能够利用足够大的寄存器和内存地址来使用64位(1和0)长数据类型。除了兼容硬件和指令之外,您还需要配备64位的操作系统,比如android。

业内资深人士可能还记得,苹果在其竞争对手安卓之前就推出了首款64位处理器。64位的这一转变并没有改变日常计算。然而,在使用高精度浮点数时,它的优势就体现出来了。64位寄存器还可以提高3D渲染的准确性以及加密速度,并且有比4GB的RAM更简便的寻址方式。

如今,两种架构都支持64位运算,但在手机领域确是最近才开始的。

个人电脑在智能手机之前就已经发展到了64位,但并不是英特尔公司开发了现代的x86-64体系(也称为x64)。这得归功于AMD公司1999年发布的公告,该公告改进了英特尔现有的x86架构。而英特尔的IA64Itanium替代架构则被搁置一边。

ARM公司在2011年推出了ARMv8 64位架构。该架构并不是在32位指令集的基础上开发的,而是全新搭建的64位架构。为此,ARMv8架构使用了两种执行状态,AArch32和AArch64。顾名思义,一个用于运行32位代码,另一个用于运行64位代码。ARM设计的巧妙之处就是处理器在运行中可以无缝地在两种模式间切换。这意味着64位指令的解码器是全新设计的,不用兼顾32位指令,但处理器依旧可以向后兼容。

ARM的异构计算使它在手机领域获胜

上面对架构差异的讨论部分地解释了这两个芯片巨头目前的成功和面临的问题。ARM的低功耗设计非常适合手机3.5W的热设计电源(TDP)要求,并且其性能也能达到与英特尔笔记本电脑芯片一样的性能。与此同时,英特尔的100 W TDP的Corei7在服务器和高性能台式机上赢得了巨大的胜利,但在5W以下规模的却在缩减。

当然,我们也不能忘记在过去的十年里,硅制造工艺在提高电效率方面所起的作用。一般说来,较小的CPU晶体管消耗的功率较少。英特尔一直在试图突破其2014年内部的14nm制程。在那时,智能手机芯片组已经从20nm推进到了14、10、甚至目前达到5nm工艺(2021年)。这仅仅是通过三星和台积电之间的竞争来实现的。

不过,Arm架构的一项独特功能(异构计算)在使手机应用的TDP保持较低水平方面特别有用。这个方法其实很简单,构建一个架构,允许不同的CPU部件(与性能和功率方面相关)在其中一起工作,就可提高效率。



Arm在高性能和低性能CPU内核之间共享负载的能力对于降低能效来说是一个福音

Arm对这个想法的第一次尝试是巨大的。公司早在2011年就有了大Cortex-A15和小Cortex-A7内核。对高要求的应用程序使用更大的无序CPU内核以及在后台任务中使用高效节能的有序CPU设计,这是如今智能手机用户认为理所当然的事情,但Arm公司经过几次尝试才解决了这个问题。ARM基于着这种思路在2017年使用DynamIQ和ARMAv8.2架构进行尝试,它们允许不同的CPU处于同一个硬件里,共享内存资源以进行更高效的运算。此外,Dynamiq还支持2+6 CPU设计,这一设计目前在中档芯片中越来越普遍。

英特尔的原子芯片因缺乏异构计算,在性能和效率的平衡上无法与Arm相媲美。直到2020年才等到英特尔的Foveros,嵌入式多模互连桥(EMIB)和混合技术项目的结合才设计出一款有竞争力的芯片——10nm的Lakefield。Lakefield将单一的、高性能的Sunny Cove内核与四个高效的Tremont内核结合在一起,还提供了图形和连接功能。然而,即使是这个配置也是针对带有7W TDP设计的笔记本电脑的,但对于智能手机来说,其TDP还是太高了。



如今,Arm与x86在低于10W TDP设计的笔记本电脑市场中竞争越来越激烈,在这一市场上,英特尔的规模缩减,而Arm的市场规模则越来越大。苹果(Apple)宣布将为其Mac定制ARM芯片,这是ARM架构性能越来越好的表现,虽然这在一定程度上归功于苹果的异构计算以及自定义优化

自定义ARM内核和指令集

ARM与英特尔的另一个重要区别是,后者从头到尾控制着整个生产流程,然后直接出售芯片。而ARM只是出售许可证。英特尔对其架构,CPU设计,甚至内部制造过程都完全保密。相比之下,ARM向苹果、三星和高通等合作伙伴则提供多种产品。这些设计包括现成的CPU内核设计(如Cortex-A78)、通过ARM CXC程序合作构建的设计、以及定制架构许可证,该许可证允许苹果和三星等公司构建定制CPU内核,甚至对指令集进行调整。

构建自定义CPU是一个昂贵且复杂的过程,但一旦成功,好处是巨大的。苹果公司的CPU就展示了定制硬件和指令如何将Arm的性能推向主流x86甚至更远的地方。尽管三星的Mongoose内核更具争议性。

苹果打算用自己基于Arm构架的芯片逐步取代Mac产品中的英特尔CPU。苹果M1就是这个计划下的第一款芯片,可为最新的MacBook Air、Pro和Mac Mini所使用。M1有一些令人印象深刻的性能改进,这表明高性能的Arm内核能够在高要求的计算场景下与x86相媲美。不过,要记住,苹果的比较是针对笔记本电脑的CPU,而不是台式机的。


与此同时,世界上功能最强大的超级计算机Fugaku正在ARM架构上运行

在消费硬件领域,英特尔的架构在原始性能方面仍处于领先地位。但在以高性能和能效为核心的产品领域(包括服务器市场)中,Arm架构非常有竞争力。在本文撰写时,世界上最强大的超级计算机首次在ARM CPU内核上运行。它的A64FX SoC是富士通设计的,也是第一个在Armv8-A SVE架构上运行的SoC。

软件兼容性



正如我们前面提到的,应用程序和软件必须按照它们运行的CPU架构进行编译。CPU和系统生态(比如Arm架构上的Android和x86架构上的Windows)之间的历史联姻表明着兼容性从来都不是一个真正的问题,因为应用不需要跨多个平台和体系结构运行。不过,目前运行在多CPU架构上的跨平台应用程序和操作系统的发展正在改变这种局面。

苹果基于Arm架构的Mac、谷歌的Chrome操作系统和微软的Windows-on-Arm都是软件需要同时在Arm和Intel架构上运行的现行例子。对于愿意投资于重新编译的新应用程序和开发人员来说,为两者编写本地软件是一种选择。为了填补这种空却,这些平台还依赖于代码模拟。换句话说,就是将为一个CPU体系结构编译的代码转换为在另一个CPU架构上运行。与本机应用程序相比,这种方法效率较低,还会影响其性能,不过良好的模拟目前可以确保应用程序正常工作。

经过多年的开发,在ARM芯片设备上运行Windows虚拟机也已经很成熟了,这样很多x86应用程序也能在Arm上运行。Android的应用程序在英特尔Chromebooks上运行起来也基本适配。此外,苹果也自己的翻译工具Rosetta2来支持传统的Mac应用程序。但是,与本机编译的应用程序相比,这三种应用程序的性能都较弱一些。

ARM VS x86:结语

在过去十年的ARM与x86竞争中,ARM已经成为智能手机等低功耗设备的首选。这种架构现在也在笔记本电脑以及其他需要提高能效的设备上取得了长足的进步。虽然在手机上失去了优势,但多年来英特尔的低功耗研究也有所突破,Lakefield现在与手机上传统的ARM处理器有着很多的相似之处。

也就是说,Arm和x86从工程的角度来看仍有明显的不同,但它们有各自的优点和不足。然而,随着软件生态越来越适配这两种架构,跨两种架构的消费者用例变得越来越模糊。然而,尽管在Arm与x86的比较中存在着一些交集,但可以预见,Arm肯定仍是智能手机行业的首选架构,并且该架构也在笔记本电脑这类产品中展现出了巨大的潜力。
ARM   x86
发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章