当前位置: 首页 > 科技观察

CPU架构分析:ARMvs.x86比拼

时间:2023-03-14 10:26:07 科技观察

信不信你随便抓人问问他懂不懂CPU。我想他的回答会是肯定的,但是如果你再问他,他知道ARM和X86架构吗??两者有什么区别?绝大多数人一定是一头雾水。今天,小编就带大家了解一下CPU的两大架构:ARM和X86。以后出去装X全靠它了!重温什么是CPU。中央处理器(CPU)主要由三部分组成:运算器、控制器和寄存器。它负责发布CPU每条指令所需要的信息。寄存器是一些用于保存操作或指令的临时文件,可以保证更高的速度。CPU有四大功能:处理指令、执行运算、控制时间、处理数据。打个比方,CPU就像我们的大脑,帮助我们完成各种生理活动。所以没有CPU,计算机就是一坨屎,不能工作。移动设备实际上很复杂。这些CPU需要执行数百万条指令才能使其按照我们想要的方向运行,而CPU的速度和能效至关重要。速度影响用户体验,而效率影响电池寿命。完美的移动设备是高性能和低功耗的结合。要了解X86和ARM,必须先了解复杂指令集(CISC)和精简指令集(RISC)。IA64,他们之间的差距非常大。但如果从最基本的逻辑角度来分类,可以分为两大类,即所谓的“复杂指令集”和“精简指令集”系统,也就是我们常看到的“CISC”和“RISC””。.Intel和ARM处理器的第一个区别是前者使用复杂指令集(CISC),而后者使用精简指令集(RISC)。属于这两类的各种架构之间的最大区别在于它们的设计者思考问题的方式。下面小编分别介绍一下:x86:Intel独有。说到芯片巨头英特尔,各位网友应该都不陌生。英特尔的CPU制造技术是世界上最好的,但是你知道这家巨头公司是如何发家致富的。什么?它始于1978年6月8日,当时英特尔发布了一款新的微处理器“8086”。而这款处理器在刚出道的时候并没有受到太多的关注,但是他却开创了一个新的时代。8086意味着x86架构的诞生,x86作为特定微处理器执行计算机语言的指令集,定义了芯片的基本使用规则。8086也直接带动了英特尔成为全球领先的芯片巨头。而x86不仅让Intel一跃而上,更成为了业界的标准。在过去的几十年里,在笔记本电脑、服务器、超级计算机和书写设备中都可以看到x86的身影。此外,x86架构仍在以不同的方式进行改进。AMD和VIA都可以利用X86指令集的灵活性来对付Intel,迫使x86改变。通过几十年的技术积累,x86服务器在服务器领域的地位几乎是独树一帜。小型灵活的x86服务器在市场上得到广泛应用,可用于文件、打印、通信、Web、电子邮件、数据库、Internet和LAN上的应用服务等诸多领域。x86服务器最大的特点就是兼容Windows操作系统,全部采用IntelCPU。而Intel的x86服务器也可以分为两代。最初采用的80x86系列是在产品80486之后发布的,Intel对该系列产品进行了更名注册。这是现在英特尔的奔腾系列。当然,这个系列在国内还有一个比较响亮的名字,奔腾系列。目前的Pentium系列CPU包括:Pentium、PentiumMMX、PentiumPro、PII、PIIXeon(至强)、PIII、PIIIXeon、P4Xeon、Celeron2(赛扬)等。x86:最年轻的,坚持x86超过40年?从时间来看,确实是老了。x86从1978年至今已经将近40年了。但经过各种变迁,x86仍然是服务器行业的绝对领导者。说这样的服务器行业龙头老了,无异于指责支撑整个互联网的服务器行业老了。而且,经过多代改进和变化,x86架构服务器仍然是最快的架构之一。而现在x86也是整个行业的标杆。从技术角度来看,x86从来没有落后过。只是服务器与其他架构的差距是否缩小了。从指令集架构来看,CISC确实有点老了。就连英特尔也承认,CISC架构确实限制了CPU的发展。CISC微处理器程序的指令是相互串行执行的,指令运算也需要串行执行。这种方式对任务执行的控制当然很简单,但是却阻碍了计算机的整体利用率。执行速度比较慢。这也是低端服务器采用CISC架构的原因之一。复杂指令集是随着计算机的诞生而存在的一种指令集。它具有很强的处理高级语言的能力,有利于提高计算机的性能。越来越复杂的指令系统不仅带来效率低下,而且增加了系统结构的复杂性,这也会导致CISC的通用性变差。ARM:移动端的异军突起在PC领域,英特尔的CPU一枝独秀。在移动端?那就是ARM。ARM的全称是AdvancedRISCMachine,是一种先进的精简指令集机器。ARM是RISC微处理器的代表作之一,广泛应用于嵌入式系统设计中。而且ARM处理器最大的特点就是节能,这也是它在移动通信领域立于不败之地的原因之一。打造ARM64位服务器过去,ARM专注于32位架构的研发,称霸移动端多年,让英特尔眼馋。在PC和服务器领域,英特尔的市场也让ARM眼红。ARM在2011年底发布了ARMv8作为其首款64位处理器,戴尔在2013年发布了首款基于ARM64位架构的服务器,相应的服务器解决方案也相继开发。专家认为,虽然英特尔的x86处理器在服务器领域依然立于不败之地,但64位ARM架构应该找到自己的位置,尽可能缩短ARM的内存和网络接口与计算核心的距离。这里承载着大量的计算进程,密度极高。此功能非常适合Web服务器及其应用程序。在服务器领域,英特尔的芯片也有很多让人难以接受的地方。例如,当内存容量、I/O和处理性能不成比例时,ARM处理器的性能会更加合格。ARM处理器的ISA复杂度低很多,开发成本也低。相应的,ARM服务器厂商针对这些应用场景开发的服务器也具备了打败英特尔的先决条件。从这些应用环境进入服务器市场的基于ARM的服务器,也是针对x86的一些原始客户。而英特尔也不会轻易放手。在服务器领域,其技术一直领先于ARM,处理器性能远高于ARM处理器,但在功耗方面一直是英特尔的心病。此外,英特尔还想进军移动端。想要打败ARM,在低功耗服务器领域发力是一个不错的选择。采用14nm工艺的Xeon-D,包含两个1.4GBroadwell核心,GPU功耗仅为6W,无论是性能还是功耗都远高于ARM。2008年,英特尔推出了凌动处理器,这是英特尔历史上体积最小、功耗最低的处理器。ARM称霸多年,Intel在技术和经验上并不占优势。打败ARM谈何容易?既然双方都虎视眈眈,那么ARM与英特尔之间的大战是绝对在所难免的。那么,想要进入英特尔的服务器领域,ARM就需要大显身手了。基于其64位处理器的芯片设计具有低功耗、低成本、架构灵活等特点。获胜的机会有多大?从另一个角度来看,ARM芯片架构具有一定的灵活性,可以满足很多企业的特性需求,比如缓存一致性、容错性和高可用性等,其软件生态环境的成熟度不如英特尔。即便有更多的企业关注度,也未必能有信心击败英特尔,那么是什么支撑ARM在客场挑战英特尔呢?ARM与X86的竞争从几个方面对比ARM与X86架构Intel与ARM除了最本质的复杂指令集(CISC)与精简指令集(RISC)的区别外,再对比一下ARM与X86从以下几个方面进行架构。1、制造工艺ARM与英特尔处理器的最大区别在于,ARM一直只设计低功耗处理器,而英特尔的强项是超高性能台式机和服务器处理器的设计。长期以来,英特尔一直是台式机服务器行业的龙头老大。然而,当它进入移动业务时,英特尔仍然使用与台式机相同的复杂指令集架构,试图将其硬塞进更小的移动设备处理器中。但英特尔i7处理器的平均发热量为45瓦。基于ARM架构的片上系统最大瞬时峰值发热率约为3瓦,约为Inteli7处理器的1/15。其最新的凌动系列处理器采用了类似于ARM处理器的温控设计,英特尔必须为此采用最新的22纳米制造工艺。2.64位计算对于64位计算,ARM和Intel也有一些显着的差异。英特尔尚未开发出64位版本的x86指令集。称为x86-64(有时简称为x64)的64位指令集实际上是由AMD开发的。英特尔想做64位计算。它知道如果从自己的32位x86架构演化到64位架构,新架构的效率会很低,所以它推出了一个名为IA64的新64位处理器项目。这创建了Itanium系列处理器。在看到移动设备对64位计算的需求后,ARM在2011年发布了ARMv864位架构,这是其为下一代ARM指令集架构多年努力的结晶。为了在原有的原理和指令集的基础上开发简洁的64位架构,ARMv8使用了AArch32和AArch64两种执行模式。顾名思义,一个运行32位代码,一个运行64位代码。ARM设计的巧妙之处在于处理器在运行过程中可以在两种模式之间无缝切换。这意味着64位指令的解码器是从头开始设计的,无需考虑32位指令,并且处理器仍然向后兼容。3、异构计算ARM的big.LITTLE架构是Intel暂时无法复制的创新。在big.LITTLE架构中,处理器可以是不同类型的。传统的双核或四核处理器包含相同的2个内核或4个内核。双核凌动处理器有两个相同的内核,提供相同的性能和相同的功耗。ARM通过big.LITTLE为移动设备带来异构计算。这意味着处理器中的内核可以具有不同的性能和功耗。设备正常运行时,使用低功耗内核,运行复杂游戏时,使用高性能内核。这是如何运作的?在设计处理器时,需要考虑采用大量的技术设计,这些技术设计决定了处理器的性能和功耗。Intel和ARM处理器在解码指令并准备执行时都使用流水线,这意味着解码是并行完成的。为了更快地执行指令,可以将这些流水线设计成允许指令乱序执行(乱序执行)。一些巧妙的逻辑结构可以判断下一条指令是否依赖于当前指令执行的结果。Intel和ARM都提供乱序执行逻辑结构。可想而知,这种结构非常复杂,复杂就意味着更多的功耗。那为什么ARM的功耗比X86低很多呢?这与另一个因素有关,那就是设计。设计分为前端设计和后端设计。前端设计反映了处理器的架构,精简指令集和复杂指令集的区别体现在前端设计上。后端设计处理电压、时钟等问题,这些都是功耗的直接因素。当然,其中任何一个都会导致由时钟和电源控制的块无法运行。它们的区别在于时钟门控的恢复时间较短,而电源控制的时间较长。另外,如果单条指令使用了多个模块的功能,当功能恢复时,不是最慢模块的时间,而是可能加上几个模块的时间,因为这涉及到一个上电顺序问题,也就是说,复工时,模块之间是有顺序的。如果不遵守此命令,则无法恢复。而按照这个顺序,会让总的恢复时间很长。所以在后端,我们可以得出一个结论,为了省电,我们可以关闭一些暂时不会使用的处理器模块。但也不能轻易关闭,否则一旦需要,恢复后需要很长时间才能完成某个命令,整体性能会明显下降。另外,子模块的门控时钟和电源开关通常在设计电路时就已经确定,对操作系统是透明的,无法通过软件进行优化。我们再看看前端。ARM的处理器有个特点就是乱序执行能力不如X86。换句话说,当用户使用计算机时,他的操作是随机的、不可预测的,从而导致不可预测的指令。为了增强这种情况的处理能力,X86加强了乱序指令的执行。此外,X86还增强了单核的多线程能力。这样做的缺点是处理器子模块不能有效的关闭和恢复,因为一旦关闭,恢复很慢,导致性能低下。为了保持高性能,大部分模块必须保持开启状态并且时钟保持切换。这样做的直接后果就是高功耗。但是ARM的指令决定执行顺序的能力很强,依赖多核而不是单核多线程执行。这样子模块和时钟信号就很容易保持关闭状态,显然更省电。ARM和X86现在发展的怎么样了?X86架构和ARM架构谁来统一市场一直存在争议,但也有人说两者根本没有可比性。X86无法达到ARM的功耗,ARM也无法达到X86的性能。现在ARM架构已经具备了进入服务器芯片的能力,很多芯片研发公司纷纷采用ARM架构来研发服务器芯片,这无疑会促进他们的繁荣。2015年,一款采用ARM架构的Windows10平板电脑出现,这也是全球首次曝光。是一款非X86架构,运行Windows系统的平板产品。随着移动网络与互联网的融合互通越来越明显,ARM开发后端数据中心已是大势所趋。因此,它比ARM更像是最后一搏。ARM和Intel都没有出路。