为啥arm架构比x86 x64省电?

烧音箱


arm的通用计算市场建立在使用电池的移动设备上,节能是首要目的,所以现存的应用很节能,传统意义上靠性能吃饭的程序(如各种生产力软件,3A游戏)就不会为这些平台开发特定版本(或提供阉割版)。

x86建立在能源不紧缺的基础上(持续接着电源线),而稳定的能源供应确保不需要为节能设置各种限制,以榨干性能为最大需求,所以这才是生产力的根本不同的背景造就不同的市场,这不是 Intel做个低功耗的x86芯片就能决的问题,也不是 arm 芯片性能做强就能解决的问题。

ARM架构

ARM架构过去称作进阶精简指令集机器(AdvancedRISCMachine,更早称作:AcornRISCMachine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。

在今日,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的派生产品,重要产品还包括Marvell的XScale架构和德州仪器的OMAP系列。

X86架构

目前的PC架构绝大多数都是Intel的X86架构,貌似也是因为INTEL的这个X86架构早就了目前INTEL如日中天的地位。X86架构(The X86 architecture)是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。

两种架构各自使用的环境不同

X86和ARM在移动平台和传统平台分道扬长的结局是必然的。他们的应用场景本来就不一样,一个是计算密集型和高度兼容性的目标,一个是超低功耗和不考虑旧软件兼容性的目标。除非有一天电池技术和半导体工艺有巨大进步,使得硬件上的成本能够抵消兼容性带来的影响,那么X86走入千家万户的手机是比较现实的。

总的来说:基本上芯片的性能和功耗成正相关,省电了就别指望有多高的性能。


木易ai科技


这个问题可以扩展为:为什么arm架构的芯片都那么省电!


引言

最初的ARM架构被设计成即使是一个相对简单的指令译码器,也能以架构允许的最大速度运行。

后来的ARM版本有稍微复杂一点的指令解码逻辑,但是每条指令都是一个或两个单词长。

在x86架构上,指令可以是1字节长,也可以是14字节长。

在设计最初的x86架构时,指令是按顺序执行的,而且每个指令都需要多个周期才能执行。

如果执行一条指令需要三个周期,那么找到下一条指令的起始点也需要三个周期。

另一方面,现在人们很难忍受x86代码运行得那么慢了。


设计能够快速运行x86指令的硬件是有可能的

20年前,你可能会认为复杂的指令解码会限制x86的速度,但事实并非如此。

x86架构要求英特尔和其他芯片制造商,包括一些相当复杂的转换和缓存逻辑,以便一段代码第一次运行时,就转换成易于解码的形式。

如果代码再次运行,则可以跳过转换。可纵然是非常快的芯片,这些逻辑也消耗能量。

相对而言,许多低功耗ARM芯片的前端逻辑要少得多。

x86有这么缓存转换性能,arm比不上;可是,没有了额外技能加身的x86,比arm要逊色的多。


说说功耗

在低功耗的应用中,ARM处理器一直是首选,现在仍然是首选。

比较功耗并不是一件简单的事情。操作系统、RAM大小和类型、闪存和使用的接口等方面需要与处理器的影响分开。

然而,一般的规则是,ARM在关闭处理器和等待唤醒的模式和可能性方面非常强大。这种空闲模式是指操作系统正在运行,但只等待输入(例如来自鼠标、键盘或应用程序的输入)。

X86处理器的预期功耗大约为1瓦特。在i.MX6处理器的功耗将是这个数字的一半。

此外,ARM高端部分得益于少数状态/模式,这些 状态/模式 (states/modes)的功耗低至100mW,而不牺牲合理快速唤醒的可能性。

低功耗有许多优点。

手持式和电池供电的产品,将受益于增加电池寿命。做产品设计则可以使用更小的电池。由于需要更小的冷却装置,材料清单、BOM成本和产品尺寸可能会进一步减少。


写在最后

天下武功,唯快不破!小而快而全的arm架构普及也得益于其自身设计上的权衡。

Happy coding :)


我是@程序员小助手,持续分享编程故事,欢迎关注。

程序员小助手


应用场景和商业目的决定了各自产品的特点:ARM面向移动设备,从来只是设计低功耗处理器;Intel面向桌面和服务器,向来关注点在超高性能。

商业目的和芯片的架构设计决定了ARM比x86的处理器,在能耗处理上更优。


CPU是什么东东?

ARM和x86,通常都是指CPU的架构。

CPU(Central Processing Unit,缩写:CPU),即中央处理器,是计算机(手机也可以理解为计算机)的核心部件,功能主要是解释计算机指令以及处理计算机软件中的数据。1970年以前,中央处理器由多个独立单元构成,后来发展成为由集成电路制造的中央处理器,这些高度收缩的组件就是所谓的微处理器,主要由运算器、控制器、寄存器三部分组成。

CPU的主要运作原理,不论采用什么架构,都遵循冯·诺伊曼结构设计。程序以一系列数字储存在计算机存储器中,CPU的运作原理可分为四个阶段:提取、解码、执行和写回。

由于CPU发展经历了太多的阶段,太多的架构(ARM、X86、MIPS、PowerPC等),彼此差距都非常的大,但是从逻辑的角度可以分为两大类:复杂指令集(CISC)和精简指令集(RISC)。

ARM处理器

说起ARM有两个含义:ARM公司和ARM架构处理器,ARM公司是一家英国的公司(已被软银收购),是全球领先的半导体知识产权(IP)提供商——只卖IP,不卖芯片。所以ARM(Advanced RISC Machine)架构处理器是ARM公司设计的处理器及附带的相关技术及软件。

ARM通常是用于为移动设备构建CPU的体系结构,所以它的特点是性价比高、耗能低。基于ARM(32位)的处理器采用RISC体系结构。大多数指令都很简单,并在一个时钟周期内执行。

ARM64处理器

业务的发展对CPU的处理能力提出了挑战,为了提升性能,CPU的地址空间从32扩展到了64位,这样可以提升性能,用以保存和处理更多的信息。ARM64只是对支持64位处理的ARM体系结构的扩展或发展。

ARMv8-A于2011年10月发布,代表了ARM体系结构的根本变化。它增加了可选的64位体系结构,苹果公司是第一个在消费类产品(iPhone 5S)中发布ARMv8-A兼容内核(Apple A7)的公司。


x86处理器

1978年6月8日,Intel发布了史诗级的CPU处理器8086,由此X86架构传奇正式拉开帷幕。X86架构使用的是CISC复杂指令集。同时8086处理器的大获成功也直接让Intel成为了CPU巨头。使用x86架构制造的处理器通常用于台式机和笔记本电脑。即使是AMD,英特尔的竞争对手,也使用Intel的x86和x64(x86体系结构的64位版本)体系结构来创建其CPU。x86处理器上的指令大多很复杂。因此,它们占用多个CPU周期来执行每个指令。


是什么使基于ARM的芯片具有相对较高的电源效率和较低的功耗

虽然处理器的功耗还取决于许多其他因素,例如缓存,总线宽度等,但是ARM处理器总体占优。Intel i7处理器平均发热率为45瓦。基于ARM的片上系统的发热率最大瞬间峰值大约是3瓦,约为Intel i7处理器的1/15。

以下设计功能使ARM处理器具有比x86处理器更高的性能优势:它们更慢,更小,花费更多的时间在睡眠中,并且没有很多遗留的支持。

(1)它们的速度较慢:由于低功率操作通常比性能更重要,因此可以使用低速晶体管,从而改善漏电流并降低最低电压。尽管使用的制造技术落后于现代x86一代或两代,但结果是功耗明显降低。

(2)它们更小:使用的晶体管更少,部分原因是ARM是精简指令集计算(RISC)架构。这意味着大型操作将以小的,简单的块进行处理,但要付出更多的机器代码。这意味着ARM具有较少的一次性部件,这些部件在不使用时会消耗功率,并且体积更小/成本更低。

(3)低功耗睡眠模式:ARM处理器采用无时钟的内核设计。处理器通过停止内核直到收到执行某项操作的指令来节省功耗。目前,X86仅支持降低核心频率以在较低电压下运行,并关闭处理器的外围部件。

(4)指令执行方式:指令集简单,通用,最小限度,并且可能会保持这种状态;扩展指令集是通过与类似内存进行交互的协处理器完成的。

(5)采用了更多的寄存器:ARM拥有更多的寄存器,还具有加载指令,该指令可以一次将多个值加载到多个寄存器中。同时因为ARM在一条指令中比传统的RISC指令集执行的功能要多得多,从而提供了良好的指令高速缓存命中率,并在提取指令时节省了功率。

(6)大小核架构:从前的X86传统CPU,如果是四核或者是双核,内部的四个、两个核心都是一模一样的,这样的话,由于一旦软件只能调度一个核心,处于高频工作,但由于架构限制,其余核心也要保持同样的高频率和高电压状态,这样就浪费了大量的能量在做无用功。后来才发展出了异步多核,允许不同核心工作在不同频率上,以此换来更低功耗。

由于移动设备更加在意功耗,所以ARM采用了更加激进的做法,八个核里面允许有不同Cortex-A架构核心,那就是著名的ARM big LITTLE。这样的大小核设计目的很明确,就是在有限的电池容量中,兼顾性能、续航的需求,因此SoC内部的CPU是采用异构计算,既有高性能大核心,也有低功耗小核心。


最后

ARM和X86架构孰优孰劣,一直以来纷争不断,X86无法做到ARM的功耗,而ARM也无法做到X86的性能。公平地说,过去英特尔的不断努力,通过推动制造低功率晶体管的新技术的开发以及采用类似RISC的内核设计,已经实现了巨大的效率提升,下一代x86和ARM处理器的功耗差异将越来越小。

处理器的选择取决于应用程序要求和预期的性能水平。虽然英特尔已经失去了移动市场,但是未来5G的物联网市场呢?我们拭目以待吧。


以上是我的浅薄之见,欢迎指正,谢谢!


分享到:


相關文章: