现在的位置: 首页 > 综合 > 正文

ARM和X86功耗差别的深层原因

2013年10月04日 ⁄ 综合 ⁄ 共 2023字 ⁄ 字号 评论关闭

ARMX86功耗的差别一直是个很热的话题。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的工艺有很大优势,而软件优化只要去做肯定就可以做到。

以上原因,我觉得较好的解释了ARMX86的功耗差别。

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

抱歉!评论已关闭.