早在几年前,对于你希望手机或PC电脑CPU使用何种架构,可能没有太多选择。长期以来,英特尔制造的x86架构和AMD制造的x64构架多年来一直主导着消费计算。大多数情况下,即使在今天,绝大多数计算机都是使用x86,尽管该架构已有数十年历史。
不过近年来开始出现新的竞争者。ARM与为手机提供驱动力的架构相同,正逐渐在慢慢接管PC领域。可以看出,当前大多数计算设备都可能配备英特尔处理器或者ARM处理器,例如智能手机、平板电脑或者台式电脑中的CPU。
这两种芯片架构都针对低功耗操作进行了优化,可为计算设备提供所需的较长电池寿命。那么,什么是ARM架构?什么是x86架构?你知道它们的区别吗?下面就一起来看看吧。
什么是CPU架构?
中央处理器(CPU)是设备的“大脑”,但它并不完全智能。CPU仅在给出非常具体的指令时才工作,被称为指令集(IS),它告诉处理器在寄存器和内存之间移动数据或使用特定的执行单元(例如乘法或减法)执行计算。独特的CPU硬件块需要不同的指令,并且这些指令往往会随着更复杂和更强大的CPU的扩展而扩展,所需的指令也可以为硬件设计提供信息。
CPU架构与指令集架构(ISA)相关,它定义了处理指令、访问内存和管理IO的方式。不同公司开发的CPU有不同的架构,但都分为两类:RISC(精简指令集计算机)CPU和CISC(复杂指令集计算)CPU。x86 CPU是CISC CPU,而ARM CPU是RISC CPU。
什么是x86构架?
x86是PC上使用最广泛的指令集,也许也是历史最悠久的指令集。x86起源于1970年代。在1971年推出4位芯片(第一个微处理器)后,英特尔于1972年推出了8位8008 CPU,紧接着又在1974年推出了同样是 8位的8080。然后,自然推出的是16位。英特尔公司在1978年推出了Intel 8086。这催生了x86指令集的产生,其后的产品名称逐渐演变为80186、80286、80386等。
不过,我们今天所知道的x86架构与最原始的8086并没有密切的关系。相反,当今市场上所有x86处理器的始祖是英特尔80386处理器,它是在七年后的1985年推出,x86有时也称为“i386”或“IA-32”。此外,x86是第一个使用32位指令集启动,同时保持正确运行在基于8086设计上运行的旧16位代码的能力。
随后该体系结构的继续扩展,已经达到64位。目前所有现代x86 CPU使用的后续架构被称为“x86-64”、“x64”或“AMD64”。实际上,提出该架构的实际上是AMD,而不是英特尔。英特尔正在推出自己的64位替代方案IA-64,但它不向后兼容x86。AMD将自己的指令集作为x86指令集的扩展,最终成为采用最广泛的解决方案。
什么是ARM构架?
ARM 架构(也称为Advanced RISC Machine)由英国ARM Holdings plc公司开发。这种架构主要用于智能手机、平板电脑、多媒体播放器、掌上视频游戏等嵌入式设备的CPU,甚至是其它军用设施。
实际上,ARM芯片的历史比你想象的要长,尽管它们在PC上的广泛使用开始成为主流。第一个ARM设计于1985年推出——同年Intel最初的80386 CPU发布。Acorn Computers(ARM公司前身)开发了该架构,第一个ARM芯片(称为ARM1)以6MHz的速度运行,与现代芯片相比,运行速度并不快。所以几年后,它经历了一些改造,而第一台基于ARM的设备是RiscPC计算机,其最后一个型号于1994年由 Acorn Computers推出。是的,第一台ARM设备实际上是一台PC!
不过,它并没有起飞。Acorn早期ARM设计,以及一般的RISC芯片,试图在1990年代与英特尔的主导地位作斗争,但这是徒劳的,ARM被降级为嵌入式系统。不过,从那时起,它们进入了手机和手持设备市场,并最终进入了智能手机和平板电脑——当前几乎所有使用的智能手机都是基于ARM CPU运行。
现在,ARM通过笔记本电脑看到了在PC领域的复苏。2017年,高通宣布正式将其成功的移动芯片系列Snapdragon扩展到笔记本电脑领域,其首款专用笔记本电脑芯片Snapdragon 850将于2018年推出。2020年,Apple推出了其首款基于ARM的计算机,基于M1的MacBook Air,在使用x86 Intel CPU多年后,使用其内部的Apple M1 ARM芯片。Apple还偶尔推出了基于ARM的台式PC,即Mac mini、iMac 和Mac Studio。
另外,与x86架构类似,ARM架构也支持64位指令集。2011年发布的ARMv8是第一个支持64位指令集的ARM架构。
x86与ARM的区别差异
其实x86和ARM 之间存在根本差异,接下来就详细的分析介绍下。
1、x86架构使用CISC,而ARM架构使用RISC
CISC特点包括使用微码和庞大的指令集,可以减少新CPU的研发工作量。然而,这也使得新CPU的指令集比旧CPU 复杂。此外,不同的指令需要不同的时钟周期。这可能会增加机器故障率并降低指令执行效率。最后但同样重要的是,在CISC CPU中,每条指令都有许多操作步骤,这些操作步骤依次串行执行,增加了空闲单元电路的等待时间。
RISC的特点包括使用简单的指令和减少微代码的使用。当开发RISC CPU 时,开发人员将花费大量时间将每个活动拆分为简单的指令。这些简单的指令具有相同的长度,并且大部分可以在一个时钟周期内执行。此外,处理器可以同时执行一系列指令。因此,如果使用相同的芯片技术和相同的运行时钟,RISC系统的运行速度将比CISC系统快2到4倍。而且90%的RISC指令直接由硬件完成,只有10%的指令由软件组合完成,因此RISC系统的指令执行时间将进一步缩短。
当然,RISC体系结构也有其缺点。例如,它需要更多的内存来执行指令。
2、x86架构侧重于高性能,而ARM架构侧重于降低功耗
x86 CPU通常使用比ARM CPU更先进的处理技术,它们还使用更多的寄存器来完成多项任务,从而实现高吞吐量和性能。因此,x86 CPU通常具有更高的性能,但代价是更高的功耗。
相反,ARM CPU需要较少的硬件。因此,它消耗更少的功率。如果你只是想要一台高性能的PC,x86 CPU仍然是你的最佳选择。如果你想要一台电池寿命长的PC,可以使用ARM CPU。
例如,x86笔记本电脑芯片的功耗在15W到45W之间,而Apple M1的 功耗约为10W。
3、x86 CPU比ARM CPU有更好的软件兼容性
x86 CPU通常被Windows和许多其它PC系统使用,而ARM CPU几乎只被Linux系统使用。因此,x86 CPU拥有庞大的用户群,几乎支持所有的软件。但与x86 CPU兼容的软件不能直接与ARM CPU一起使用。因此,ARM CPU需要从头开始构建自己的软件环境。
4、核心对称性
在ARM方面,使用非对称CPU内核是一个有趣的优势。多个但相同的内核存在于Intel和其它x86处理器中。不过,ARM CPU通常具有许多不同的内核。
例如,智能手机中的8核ARM CPU可能包含四个低功耗内核,这些内核的速度足以完成常见操作,例如浏览网页、观看视频、听音乐和管理小的后台事务。一旦开始玩视频游戏或开始进行照片编辑等内容创建工作,四个高性能CPU就会启动。
x86 CPU比ARM CPU详细的区别差异如下表格总结:
ARM | x86 | |
---|---|---|
构建 | RISC | CISC |
电源效率 | 一般来说更省电 | 通常功率效率较低 |
指令流水线 | 较多 | 较少 |
指令系统 | 精简指令集 | 复杂指令集 |
市场占有率 | 在移动设备和物联网领域占据主导地位。 | 在台式机、笔记本电脑和服务器市场占据主导地位 |
指令译码 | 指令解码很容易处理 | 解码以复杂的方式处理 |
指令执行速度 | 更快的指令执行减少了时间 | 执行时间更长 |
指令执行效率 | 多条指令从复杂指令生成并单独执行 | 其架构能够同时管理复杂的语句执行 |
处理器操作管理 | 编译器在管理操作中起着至关重要的作用 | 微程序就完成了这个工作 |
寄存器和内存管理 | 需要更少的寄存器但更多的内存 | 使用更多的寄存器和更少的内存 |
性能优化方法 | 使用以软件为中心的方法优化性能 | 优化性能的硬件方法 |
内存使用和计算 | 使用可用内存进行计算 | 需要补充内存进行计算 |
x86与ARM哪个好,如何选择?
正如上面所介绍的,ARM和Intel处理器目前各有优缺点。至于选择哪个,主要看你想用你的电子设备做什么以及它们是否与其他硬件和软件兼容。Intel处理器比ARM处理器更强大、更快。同时,ARM芯片比英特尔处理器(在大多数情况下)更适合移动设备。
如果是PC用户,Windows仍然是x86系统上的最佳选择。虽然Windows支持ARM,但在所有PC用户都能正确使用它之前还需要做一些工作。ARM有一个可在其上运行x86软件的兼容层,但它仍在开发设计中,具体要根据你使用的应用程序而异。其中一些可能运行良好,而另一些则运行得很糟糕。
但是,如果您想利用ARM的优势,最好选择Apple并为自己购买MacBook。Rosetta被认为是一个出色的兼容层,让用户几乎可以完美地运行x86 Mac应用程序。最起码,你可能关心的大多数应用程序已经是 M-native,或者开发人员正在努力使它们成为M-native。
除非你真的需要ARM PC上的Windows为你提供内置调制解调器的“始终连接”功能,否则应该在Windows上使用 x86。另一方面,M1/M2 Mac比它们的x86前身要好得多,不利用这一点就错了。
另外,基于Intel的设备可以运行整个范围的Android应用程序,包括那些专门为ARM架构设计的应用程序。但是,如果应用程序包含特定于ARM的代码,则必须先对其进行翻译,然后才能运行。由于这需要时间和精力,因此电池寿命和一般性能可能会受到影响。这是否是一个严重的问题值得商榷,但相关测试表明,英特尔在电池寿命方面落后于ARM,但差异并不显着,整体性能总体上非常出色。与此同时,英特尔正在努力鼓励开发人员创建其应用程序的英特尔原生版本,因此翻译在未来应该不会成为问题。
一句话,如果是Windows系统,建议还是选用x86构建,如果是Android系统,那么ARM购买目前还是更好选择。
总结
在过去十年的ARM与x86竞争中,ARM赢得了智能手机等低功耗设备的选择,该架构还在笔记本电脑和其它需要提高能效的设备中取得进展。尽管在手机上输了,但英特尔在低功耗方面的努力多年来也有所改进,Alder Lake和Raptor Lake等混合理念现在与手机中的传统ARM处理器有更多共同点。
也就是说,从工程的角度来看,ARM和x86仍然明显不同,并且它们仍然具有各自的优势和劣势。然而,随着生态系统越来越多地支持这两种架构,两者之间的消费者用例变得越来越模糊。不过,尽管ARM与 x86还存在一定的差异,但在短期内可预见的未来,ARM肯定仍是智能手机行业的首选架构,该架构也显示出对笔记本电脑级计算和效率的重大承诺,而Windows仍然是x86 PC上的最佳选择。