ARM和X86功耗差异的深层缘由探讨

   ARM和X86功耗的差异一直是个很热的话题.ARM能够作的很低,甚至1瓦都不到.而X86服务器的芯片能够达到100-200瓦,就算是嵌入式处理器Atom系列也须要几瓦.不少人说这是指令集的关系.ARM采用精简指令集,X86采用复杂指令集,前者每条功能简单,单挑指令耗电低.然后者每条指令复杂,单个指令耗电高.可是这种解释很模糊.若是你们都作一样的事情,完成一个大功能,精简指令集须要指令较多,而复杂指令集须要指令少,加起来到底谁耗电多呢.还有,如今处理器广泛采用微指令,大的指令会被拆分红更小的指令,以达到更高的流水线效率.简单指令集的单条微指令和复杂指令集的单条微指令相比的话,状况就更复杂.我手头没有关于比较的具体数据,可是至少前文所列出关于功耗和指令集相关的解释不是颇有说服力.

    今天碰到一个资深人士,总算找到一个比较合理的解释.

    首先,功耗和工艺制程相关. ARM的处理器,不论是哪家,主要是靠台积电等专业制造商生产的.而Intel的是本身的工厂制造的.通常来讲后者比前者的工艺领先一代,也就是2-3年.若是一样的设计,造出来的处理器因该是Intel的更紧凑,好比一个是22纳米,一个是28纳米,一样功能确定是22纳米的耗电更少.

    那为何反而ARM的比X86耗电少得多呢.这就和另一个因素相关了,那就是设计.

    设计又分为前端和后端设计,前端设计体现了处理器的构架,精简指令集和复杂指令集的区别是经过前端设计体现的.后端设计处理电压,时钟等问题,是耗电的直接因素.

    先说下后端怎么影响耗电的.咱们都学过,晶体管耗电主要两个缘由,一个是动态功耗,一个是漏电功耗.动态功耗是指晶体管在输入电压切换的时候产生的耗电,而全部的逻辑功能的0/1切换,归根结底都是时钟信号的切换.若是时钟信号保持不变,那么这部分的功耗就为0.这就是所谓的门控时钟(Clock Gating).而漏电功耗能够经过关掉某个模块的电源来控制(Power Gating).固然,其中任何一项都会使得时钟和电源所控制的模块没法工做.他们的区别在于,门控时钟的恢复时间较短,而电源控制的时间较长.此外,若是条单条指令使用多个模块的功能,在恢复功能的时候,并非最慢的那个模块的时间,而多是几个模块时间相加,由于这牵涉到一个上电次序(Power Sequence)的问题,也就是恢复工做时候模块间是有前后次序的,不遵守这个次序,就没法恢复.而遵守这个次序,就会使得总恢复时间很长.因此在后端这块,能够获得一个结论,为了省电,能够关闭一些暂时不会用到的处理器模块.可是也不能轻易的关闭,不然一旦须要,恢复的话会让完成某个指令的时间会很长,整体性能显然下降.此外,子模块的门控时钟和电源开关一般是设计电路时就决定的,对于操做系统是透明的,没法经过软件来优化.

    再来看前端.ARM的处理器有个特色,就是乱序执行能力不如X86.换句话说,就是用户在使用电脑的时候,他的操做是随机的,没法预测的,形成了指令也没法预测.X86为了加强对这种状况下的处理能力,增强了乱序指令的执行.此外,X86还加强了单核的多线程能力.这样作的缺点就是,没法颇有效的关闭和恢复处理器子模块,由于一旦关闭,恢复起来就很慢,从而形成低性能.为了保持高性能,就不得不让大部分的模块都保持开启, 而且时钟也保持切换.这样作的直接后果就是耗电高.而ARM的指令强在肯定次序的执行,而且依靠多核而不是单核多线程来执行.这样容易保持子模块和时钟信号的关闭,显然就更省电.

    此外,在操做系统这个级别,我的电脑上一般会开不少线程,而移动平台一般会作优化,只保持必要的线程.这样使得耗电差距进一步加大.固然,若是X86用在移动平台,确定也会由于线程少而省电.凌动系列(ATOM)专门为这些特性作了优化,在必定程度上下降乱序执行和多线程的处理能力,从而达到省电.

    此外,如今移动处理器都是片上系统(SoC)结构,也就是说,处理器以外,图形,视频,音频,网络等功能都在一个芯片里.这些模块的打开与关闭就容易预测的多,而且能够经过软件来控制.这样,总体功耗就更加取决于软件和制造工艺而不是处理机结构.在这点上,X86的处理器占优点,由于Intel的工艺有很大优点,而软件优化只要去作确定就能够作到.

   以上缘由我以为较好的解释了ARM和X86的功耗差异.

   如今看看趋势.

    Intel如今积极推动晶体管工艺革新,简化前端设计,因此功耗劣势会逐步减低.再有,随着工艺的进一步发展,之后的移动设备主要功耗会转移到外部设备而非处理器.好比内存,显示屏,通信模块等.这样,性能会变的愈来愈重要.不过Intel有个难以跨越的鸿沟,就是成本,为了保持高利润,就算能够下降也不会愿意下降.等到不得不靠降成本维生的那一天,说明技术优点不复存在,公司也快走到头了,只能转型依靠服务和平台来挣钱.这点能够参照思科和华为的竞争史.大胆预测,若是2013以后人类仍旧存在,移动处理器会逐渐分为两个市场,低端ARM把持,高端Intel独占.html

 

转自CSDN移动平台-开发平台论坛前端

相关文章
相关标签/搜索