人文艺术 > 为啥arm架构比x86 x64省电?

为啥arm架构比x86 x64省电?

2020-10-25 21:32阅读(62)

为啥arm架构比x86 x64省电?:这个问题可以扩展为:为什么arm架构的芯片都那么省电!引言最初的ARM架构被设计成即使是一个相对简单的指令译码器,也能以:-x64,ar

1

这个问题可以扩展为:为什么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 :)


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

2

应用场景和商业目的决定了各自产品的特点: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的物联网市场呢?我们拭目以待吧。


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

3

X86采用复杂指令集是诞生于通用计算应用,ARM采用精简指令集诞生于嵌入式应用。精简指令集(RISC:Reduced Instruction Set Computing)是一种执行较少类型计算机指令的微处理指令集,它能够以更快的速度执行操作。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。纽约约克镇IBM研究中心的John Cocke证明,计算机中约20%的指令承担了80%的工作,于1974年,他提出RISC的概念。

因此精简指令集架构运行效率高于X86架构

4

嵌入式系统

消费者计算趋势一方面推动了功耗敏感型移动x86处理器(例如Intel Atom和Celeron)的出现,另一方面又推动了利用Cortex-A系列等内核的基于性能的基于Arm的处理器的出现。对于嵌入式系统开发人员而言,这意味着在开始一个新项目时,现在有更多选择来选择最佳平台(图1)。

但是,选择越多,选择过程就越复杂。此外,尽管传统的软件方法已将Arm项目引向Linux,而将X86项目引向Windows,但是针对ARM处理器的嵌入式Windows?操作系统和针对x86的轻量级Linux发行版也意味着,与以往相比,这种划分没有那么明显。

从开发人员的角度来看,有充分的理由继续使用经过验证的成功公式。同样,评估未尝试的选项也可以创建令人惊讶的新产品,这些新产品具有出乎意料的功能。

RISC与CISC

Arm处理器的起源可以追溯到1980年代中期,它基于Advanced RISC Machines(ARM)开发的精简指令集计算机(RISC)架构。

RISC处理器致力于将指令的多样性保持在最低限度同时还要使这些指令尽可能简单。每个时钟周期执行一条指令,这确保了可预测的处理并简化了流水线之类的加速技术。简单的指令只需要很少的硅晶体管,从而使芯片设计者可以自由地优化诸如成本和功耗之类的参数。另一方面,由于要选择的指令较少,每个时钟周期只有一条指令,因此需要大量指令才能完成给定任务。对于CISC处理器可以更轻松,快速地处理的复杂工作负载,这可能导致对RAM的严重依赖以及执行时间的降低。

x86家族始于1978年,最初是16位8086微处理器。它们被称为CISC(复杂指令集计算)处理器。与RISC不同,CISC指令可以执行复杂的任务,需要执行多个周期。这些可以包括浮点数学计算和图形处理指令。就每个程序的指令数量而言,CISC可以非常高效,与RISC相比,对代码存储和RAM的需求更低。另一方面,CISC处理器必须包含更多的晶体管来处理指令的复杂性。

x86已成为用于描述与Intel 8086及其后续产品兼容的CPU指令集的通用术语,包括台式机和笔记本电脑中常用的Atom,Celeron,Pentium和Core iX处理器。

性能和功耗

由于按照RISC设计原则在管芯上制造晶体管的强度较低,并且速度相对较低,因此ARM磁芯可以实现高效率,因此在低功耗设计中表现出色。基于ARM的处理器的典型最大功耗小于5W,并且具有许多封装,包括GPU,外围设备和内存。

英特尔内核由于复杂性的增加,往往比ARM内核消耗更多的功率。针对物联网和嵌入式用例的英特尔处理器的功耗通常从最小6W到大约30W。

对于要求不高的应用程序或需要较少命令的应用程序, Arm可以独立使用。但是,更复杂的应用程序(例如涉及高分辨率,高端图形或流数据的应用程序)可能更适合x86处理器。随着x86处理器有更多处理可用功率,任务可以更快地完成,并且当接收到更高优先级的中断不暂停,这最终提高了系统的可靠性并降低了软件崩溃。

ARM或x86是否最适合产品寿命?

按照PC市场的模式,x86处理器在过去的5/7年生命周期中已被替换对于工业和医疗领域的许多嵌入式产品而言,这并不是理想的选择。英特尔最近宣布其打算支持工业CPU达15年。

现在,这使x86架构与基于Arm的处理器处于同一类,后者通常具有超过10年的保证生产寿命

什么时间开发?技术支持如何?

为嵌入式项目选择最佳平台时,还应考虑对适当的开发工具和工程技能的任何现有投资。从理论上讲,开发在x86处理器上运行的软件应该是相对容易的杠杆工具,并支持PC软件开发。提供了专门为嵌入式开发而创建的IDE和编译器。使用基于Arm的硬件的开发人员将更有可能需要优化其软件,使其仅包含基本要素并相应地集成/优化驱动程序。制造商提供的可用开发工具,驱动程序和技术支持的质量,可能会极大地影响完成此操作的时间和成本。

5

什么叫arm架构

  ARM架构过去称作进阶精简指令集机器,是一个32位精简指令集处理器架构,其广泛地使用在许多嵌入式系统设计。ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的派生产品。

什么叫x86架构

  目前的PC电脑处理器架构绝大多数都是Intel的X86架构,X86架构是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。

两者之间的差异:

这就是从一开始设计的时候,ARM是为了低功耗设计的,而X86是为了高性能。也就是相当于ARM是F1赛车,而X86是高铁。你想把ARM做到X86一样的最高速度和拉人多,势必会增加ARM核心复杂度,增加指令集,等加到性能差不多的时候估计体积和功耗两者也差不多了。

X86架构也憎精简过核心规模,抛弃了部分指令集,一样也做到了功耗5W以下的ATOM系列处理器。这也就是说,X86可以用来做大型服务器主机,而ARM只能做一个小手机系统,运行一些简单的APP,甚至连WIN10这样的系统流畅运行都比较困难,更不用说开多个大型的软件了。所以,F1赛车比高铁轻巧,载人少,所以看起来也很快,相对高铁来说,能量的消费也是非常的少。但它的缺点也就是F1赛车只能载一个人,高铁可以几百人。

6

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走入千家万户的手机是比较现实的。

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

7

ARM 主要是控制运行内存,简单来说就是一张内存,内部CPU 运算不必要那么多!

X86是多性质控制,是万能处理器,ARM只是X86的一个小分支!X86考虑到多硬件控制处理,列如高频超频带动GPU大型运行内存,高容量储存器,外部扩展串口控制,特别是物理外部控制X86是吊打任何构造,那么X86是一个大型企业,ARM只是一个小作坊!

ARM本事用于低压运算处理,用于移动平台,便捷式的小型电脑!

X86是无论高压超频超载负荷都要承受,用于服务器,PC,工业控制,大型显示器等等!

X86虽然耗电高但运行速度是吊打ARM,就算X86工艺在50纳米到100ARM都比不赢,有本事你让ARM试一下中频就可以,你的手机绝对可以拿来烧开水了!

ARM要运算速度快必须压缩工艺技术,并且多核多线控制,X86单核时速200公里,ARM单核时速30公里,那么ARM控制开关速度是30,X86是200,差异很明显,那么ARM 要达到X 86单核,就需要200除以30等于那么多手去同时控制,那么最少也要6核心才能达到X86的速度!

ARM 虽然工艺技术越小,那么刷新次数越低,原本是30的时速就要随着工艺减小降低到20甚至还要低,这是没有办法的办法不然烫手还要考虑到电压电流抗干扰问题,只能通过压缩工艺采用多线控制同时运动弥补这个问题,那么必须降频率消耗低点,那么7纳米与5纳米之间只会挺升一点效率不够大不够快,还要压缩比例值!

如果我没有差错ARM 公司准备要出新的构造,采用互感技术代替刷频开关技术,那么通过放大倍速轮转解决功率发热问题,攻壳后速度是原来的3倍甚至10倍左右速度,那么ARM 有可能不采用7纳米而是回归14纳米,主要考虑到耐久度跑频把工艺升回14纳米而不是3纳米,由于7纳米以下的工艺物理不稳定很多问题并未解决,目前材料上很难攻壳,光刻机解决了间隔但无法解决材料的厚度,厚度过大导电性能差很容易出现跑程序卡死不精准!

因为光刻机是平面打印不具备立体打印,用 蚀刻机只能单点无法实现这个问题!所以成熟工艺是14纳米

8

结构决定的。

arm在设计之初面向低功耗的应用场景,放弃cisc里面的不定长指令转向定长短指令,可以帮助移动端的芯片更好预测指令行为。而且在分支预测、连续执行方面,arm的复杂程度也不如Intel的产品,同时不提供超线程技术。这些都对降低功耗有帮助。

9

省电没性能,所以要讲性能功耗比。arm有性能上限,x86也有功耗下限。各自在对方领域玩不转

10

一个摩托车发动机,一个12杠发动机,这么说你明白了吗?