NVIDIA Tegra3,高通S4 MSM8960,三星Exynos4【新一代手机处理器大比拼】

你一定很厌烦Android平台上无穷无尽的硬件大战,但我们很遗憾的告诉你:在谷歌对Android发展方向作出战略性调整之前,硬件规格是评价Android设备好坏的重要标准,甚至是唯一标准。看看那些历代些热销的Android手机型号:Droid 2、Galaxy II、One X、Galaxy S III,它们无不具备同时代手机中领先的硬件规格。即便是iPhone和iPad,为了实现一流的体验,也配备了地球上最庞大的嵌入式GPU。可以这么说:一台硬件规格强悍的手机不一定是好的Android手机,但一台好的Android手机,必然是一台硬件规格强悍的手机。

如今时间已经过去整整一年,面对市面上那些眼花缭乱的新品,我们再次拿出了一份新的评析,帮助大家擦亮双眼,更好的识别Android手机硬件。

由于德州仪器没有参与今年的旗舰SoC之争,因此这一轮的竞争对手只有骁龙S4、Tegra3、Exynos4 Quad三款,不过它们之间的理念和技术差异却大大超过以往,体现了厂家之间鲜明而迥异的风格和特点。按照惯例,我们依然先单独介绍每一个SoC处理器,接着结合性能测试进行技术横评,最后展望未来发展。如果你对自己的技术水平没有信心,也不要紧,看个热闹就行,你来我往的手机处理器军备竞赛还是挺有乐趣的。

Part.1 三款处理器的今生前世

四核先锋——nVIDIA Tegra3

nVIDIA的策略一向是以快制胜。早在去年年底,Tegra3就已经走入了实际产品,今年第一批搭配四核处理器的手机也采用了这颗芯片。Tegra3的架构与Tegra2相比改动并不大,只是将CPU子系统从双核Cortex A9增加到了四核Cortex A9,集成的GPU也依是较老的GeForce ULP系列,不过像素处理、光栅化等组件进行了增强。内存方面,Tegra3并没有做出改动,依然只支持单通道LPDDR2,虽然引入了DDR3支持,但对于手机而言这样的支持实际意义并不大。

作为台积电最大的合作伙伴之一,nVIDIA很清楚台积电在28nm工艺上的进度,因此选择了使用较为保守的40nm工艺。为了抵消这个的影响,nVIDIA引入了一个非常有意思的设计,那就是我们所知道的“4+1架构”。这方面之前已有介绍,这里就不再重复了,没有看过的同学可以点这里

Tegra2由于存在缺少NEON协处理器这个明显的缺点而在双核时代竞争力大减,Tegra3没有再犯同样的错误。但这并不意味着Tegra3没有缺点。由于主核和伴核共享同一片1MB的二级缓存,而两者的频率之间最多可以差到3倍,因此Tegra3的二级缓存被设计为按照一个固定的时间返回核心所请求的数据——对于主核而言,二级缓存的等待周期会多一些,而对于伴核而言则少一些。这样的设计可以简化硬件复杂度,但不可避免的会让二级缓存工作在一个比较“慢”的状态(尤其是对主核心而言),进而影响整体性能。而实际上由于伴核的工作条件比较受限,并不是随时随地都可以切换,因此很多时候Tegra3也不得不以高功耗的主核心去应付低负载,也许会对功耗产生负面影响,这些问题在后面的测试中我们会尝试去观察解析。

架构为王——高通骁龙S4 MSM8960

虽然有所规划,但高通首先拿出的却不是四核产品,而是双核的MSM8960。不过千万不要觉得这一代高通又跪了,实际上MSM8960可能是这一代中最为先进的产品。除去28nm工艺之外,它还采用了新的Krait核心。与上一代Scorpion类似,Krait同样也是高通在ARM v7-A指令集上自行发展的核心设计,就像ARM官方以Cortex A命名的核心设计一样。值得一提的是,在很多场合下,很多人都觉得Krait是和Cortex A15同级的产品,这个说法是不准确的,这在后面我们会单独拿出来详细解释。

言归正传,自行设计处理器的好处就是灵活,不需要跟着ARM的脚步走。所以高通的策略就是隔代升级,每一次设计一个比ARM官方这一代强一点、比下一代弱一点的核心,然后ARM升级两次,自己升级一次——Krait核心面对Cortex A9核心就如同当年Scorpion核心面对Cortex A8一样,是具备一定优势的,而面对Cortex A15核心则处于劣势。作为私有核心IP的设计者,高通不愿意也不需要研发那么多种核心实现,因此这样的思路是合适、也可以节约很多成本。

MSM8960的GPU比较令人失望,因为它只是将上一代S3的GPU简单超频50%而来,除此以外并没有任何改变。当然这里并不是说超频这种方法不好——后面可以看到另外一家厂商也采用了同样的策略,主要是因为S3的3D性能本身就不是很强,因此仅仅简单超频的结果就是S4的3D性能依然比较弱。当然高通也知道这点,因此计划推出搭载了全新架构Adreno300的S4 Pro,只是这个产品将何时用于手机还是未知数。

其它方面,MSM8960都是中规中矩,双通道LPDDR2内存、1MB二级缓存,1080p多媒体支持,外加高通高集成度解决方案(这其中自然也包括备受争议的高通音频Codec),尤其是作为现阶段唯一的LTE实现方案,因此很容易理解为什么众多厂家选择在中高端产品上纷纷应用这颗处理器。

稳扎稳打——三星Exynos4 Quad

最后登场的Exynos4 Quad和之前的两位比起来就显得朴素多了:除去额外的两个核心、增加的一个图像信号处理器(据说性能和功能都很烂)、HDMI接口提升至1.4版以及视频硬件解码上的些许改善以外,和上一代双核“猎户座”Exynos 4 Dual 45nm可以说是毫无差别。但是即便如此,三星依然可以对这款产品底气十足,原因之一是上一代Exynos 4 Dual 45nm在规格和性能上已经足够优秀,而更重要的是,Exynos4 Quad的杀手锏是先进的工艺。

相对于高通对于自家产品工艺宣传方面的高调,三星在这方面相对要低调一些,很多人知道高通S4芯片组是采用28nm工艺制造,但实际上三星采用的工艺更加先进——32nm HKMG。可能很多人会觉得费解,为什么32nm要比28nm工艺先进?这里我们暂时卖个关子,后面的文章中会详细介绍这方面的细节。

之前我们提到了,除了高通以外,还有厂家在新产品上采用了超频大法,那就是三星。Exynos4 Quad集成的GPU依然是Mali400 MP4,虽然并不是传言中的Mali T604,但由于新工艺的引入,三星将它的工作频率直接提升了到原来的两倍,在性能也几乎翻倍的同时基本维持了功耗的不变。至于其它方面的特性,因为实在是乏善可陈,这里就不重复了。

OK,到此为之新一代旗舰平台的三位成员就介绍完毕了。可以看出这三个厂家的产品的确具备了完全不同的风格和倾向,那么到底谁是这个时代的最强者呢?

Part.2 庖丁解牛——三款处理器技术浅析

第一回合:半导体工艺制程

在高集成度的半导体微处理器行业中,半导体工艺制程可能是除去设计以外最重要的因素。高通、三星、NV三家公司分别选择了三种不同的工艺:Tegra3采用了台积电“40nm Fast G”,MSM8960采用了台积电“28nm LP”,Exynos 4 Quad则采用了三星自家的“32nm LP HKMG”。这些工艺的代号可能会让你眼花缭乱,但实际上它们才是理解工艺细节的关键。我先来好好了解一下半导体工艺的相关基础细节。

线宽可能是半导体工艺中最直观的一个参数,例如28nm、45nm,但这也可能是最具欺骗性的参数。大家都可能认为数字越小越先进,但实际情况远没有这么简单。

目前的半导体行业中存在两种类型的企业,一种是以Intel、三星为代表的拥有自主制造能力的企业,另一种则是以nVIDIA、高通为代表的Fabless,即设计代工型企业。对于后者而言,芯片的制造往往交给诸如台积电、意法半导体等代工厂负责。最近10年来,每一代逻辑芯片工艺的线宽基本上都是以70%的比例不断降低,就Intel为例,近几年我们熟悉的有 90nm、65nm、45nm、32nm和最新的22nm。由于这些企业的工厂主要为自用,工艺参数往往只是用于辅助宣传,但对于台积电而言,由于它的业务是代工,因此有可能是出于宣传自己工艺的角度,台积电自130nm节点开始,每一代工艺的线宽都要比Intel小一点——分别是 80nm、65nm、40nm、28nm和20nm。这样的确会营造一种更加先进的感觉,但实际上可能只是商业策略居多,就本质而言大家依然是同一代工艺。

Tegra3所采用的40nm工艺是属于45nm一代的节点,而Exynos 4 Quad和MSM8960采用的32/28nm则是最新一代的节点,后两者之间不存在谁更先进的区别。那么为何nVIDIA要采用上一代工艺呢?原因相信在最近的新闻中大家都能明白——那就是产能。

由于nVIDIA长期以来和台积电在最先进工艺领域深入合作(NV的PC显卡基本全由台积电代工,这些产品可比手机处理器复杂多了),因此NV很清楚台积电28nm工艺的进度比预期要慢得多。为了保证Tegra3不会被影响,NV依然选择了上一代的40nm工艺。这自然会付出功耗和性能的代价,但这也让nVIDIA可以提前对手接近半年推出自己的产品,占得市场先机——华硕Transformer、谷歌Nexus 7、HTC One X,LG 擎天 4X,第一批上市的四核心Android设备用的全是Tegra3,为何?答案是:只有Tegra3一块芯片可用,其它根本还没生产出来。

台积电28nm工艺原本计划在2011年9月量产,而一直到今天,它还只进入早期量产阶段,产能预计要到年底才能勉强达到供需平衡,高通自然也深受其害。当然,功耗的代价也是nVIDIA必须付出的,否则也不会有4+1架构的出现。

好了,你已经明白“线宽”这个参数的区别,让我们接着来看线宽后面的参数,如上图中提到的“Fast”和“Low power”。

大体来说,一代线宽下都会有三个工艺方向:高性能型、通用型、低功耗型。高性能型工艺功耗大、漏电大,但是可以让芯片工作在极高的频率下,获取最大的性能;低功耗型工艺功耗低、漏电小,但芯片的最高工作频率会受到明显限制,通用型则介于两者之间。同样的线宽,不同的工艺方向,差别甚至可以达到数倍之多,因此只谈论线宽是没有意义的。在这一代的旗舰平台中,高通和三星的芯片均采用了低功耗型即LP工艺,唯独nVIDIA因为设计了LP工艺制造的伴核,从而使用通用型即Fast G 工艺制造剩下的部分以追求更低的满负荷功耗。

方向之外,一个节点的工艺还有很多其他的技术细节。我们注意到开头的工艺介绍中,Exynos 4 Quad的工艺介绍中有HKMG字样,这四个字母就代表着工艺技术细节,它指高介电常数金属栅极,英文为High-K Metal Gate,缩写为HKMG。这是一个非常先进但也非常复杂的技术,这里就不介绍具体细节了,大体而言,HKMG就是利用高介电常数的金属氧化物(例如氧化铪或者氧化铝)代替二氧化硅作为栅极绝缘层,提高栅极对电子的容纳能力与对沟道的控制力,进而降低漏电,更重要的是降低高频率下的功耗。根据三星提供的数据, HKMG相对于SiON/Poly-Si工艺在同样的延迟(即频率)下漏电最多可以降低到十分之一,而同样的漏电下频率最多可以提升40%。Exynos 4 Quad也正是借助这样的先进工艺,在核心数翻倍的情况下,整体功耗依然降低了20%。

而高通在MSM8960上的选择就相对保守。虽然台积电也拥有28nm HPL HKMG工艺,但高通选择的却是基于SiON/Poly-Si的28nm LP工艺。这一方面是因为HKMG会抬高制造成本,更重要的是台积电的28nm HPL HKMG工艺产量太低且延期太久,迫使高通不得不选择较为早量产的28nm LP——这自然会对MSM8960的功耗带来一定负面的影响。因此综合来看,这一代平台中工艺最为先进的是三星Exynos 4 Quad,其次是高通MSM8960,再次是Tegra3。当然,Tegra3也达到了自己的目的——它的发布时间已经抢占先机,成功进驻了一大批设备。

第二回合:基础架构——骁龙S4真的是A15吗?

前文中我们曾提到,骁龙S4所采用的核心是自行研发的,高通表示这颗处理器的基础架构要远比Cortex A9先进,那么,它算不算ARM新一代架构Cortex A15呢?为了解释这个问题,首先我们要来看一下所谓核心的概念。

首先要明确的是,ARM所谓的Cortex A架构并非只有一个执行核心,它是一套完整的处理子系统,包含核心、内存管理单元、协处理器、多核心协同控制器、总线控制器、缓存控制器等等在内,而执行核心仅仅是其中的一个部分而已。看过很多介绍文章的读者应该知道,Krait核心拥有3指令并发、全乱序执行等“类似于A15”的设计参数,但这仅仅是处理核心上的某些共同之处而已,实际上它们之间有着很大的区别。

我们用Cortex A9作为例子,带领大家粗略了解一下处理器的架构:

处理器的工作过程是拾取指令->解码指令->分派给执行机构->进行运算->把结果写回内存->拾取下一条指令。可以看到,指令从左下角的预取(Prefetch Stage)级进入到上方的解码(Decode Stage)级,经过必要的处理(Register Rename)后,进入乱序指令分发(Dispatch)级,送给各个执行(ALU/NEON)器,最后进入乱序写回(Write back)部分。这一条路径,就是所谓的指令流水线,也就是下面这张图。

Cortex A9的指令解码器(图中De)具备单周期解码两个指令的能力,而乱序指令分派器(图中Iss)具备3+1个端口,也就是说每个时钟周期最多可以分派4个指令,而执行单元部有两个通用执行器(其中一个支持并发执行一个硬件乘法)、一个访存器和命名为“Compute Engine”的运算协处理器,也就是我们知道的VFP和NEON。

Cortex A15的执行管线相对于Cortex A9而言得到了比较大的强化,取指宽度从Cortex A9的64bit提升到了128bit,而且单周期解码能力增加到了三个指令。这是我们最常提到的提升,但这其实并不是最大的改变,最大的改变有两点,这里先看分派器和执行器。与Cortex A9的3+1分派不同,Cortex A15的分派器具备8指令分派能力,相较A9而言提升了一倍有余,执行器不仅4组对应的扩充到了8组,还额外增加了分支跳转单元和硬件乘除法单元。在Cortex A9上,VFP和NEON公用一个分派端口,而在Cortex A15上它们各自拥有自己的分派端口,这可以有效缓解指令冲突问题。

相对而言Krait的资料比较缺乏,目前只知道单周期解码能力为3、指令分派能力为4、执行单元一共有7个,其它方面则不得而知,很可能缺少的就是分支单元。从规格而言,Krait的执行核心部分介于Cortex A9和A15之间,如果从指令分派角度来看,Krait更像是增强版Cortex A9,高通给出的3.3DMIPS/MHz的理论运算数据也说明了这一点。当然这只是理论运算能力,实际表现和很多其它因素也有关系,后面我们会分析。

协处理器方面,Krait采用的NEON协处理器拥有128bit的SIMD宽度,这要比Cortex A9处理器的64bit SIMD来的更宽,与Cortex A15同级。浮点协处理器方面也是如此,搭配的是Cortex A15的VFPv4,性能方面大约两倍于Cortex A9的VFPv3。但是这并不意味着Krait等同于Cortex A15,事实上Cortex A15第二个重大的改变就在这里。

上图就是Cortex A9的浮点运算单元。它的内部实现了管线化架构设计,拥有自己独立的指令队列和指令分派,但是每个周期只能分派一个指令。虽然图上没有画出来,但是VFP/NEON指令的具体解码在Cortex A9中是在浮点运算单元中实现的,因此相对于其他的执行管线而言,独立性显得比较明显。

到了Cortex A15,浮点运算单元被以其他运算器相同的运作方式整合到了处理器的主管线中,具体而言,就是VFP和NEON的指令解码和其它类型的指令一样是在前端直接实现,无需自行解码,运作架构也和其他执行器相同。此外,VFP和NEON运算器内部实现了双指令发射,可以同时执行两条SIMD指令,四个融合MAC运算,甚至还具备了乱序执行能力。我们都知道乱序执行对性能的贡献,因此可以看出,Cortex A15在这方面的改进也是非常巨大的。而根据现有的资料,高通S4并没有引入这些复杂的设计,因此与Cortex A15有着相当大的差距。最后我们用一张图来简单比较一下Cortex A9、Krait和Cortex A15的执行管线:

除去执行管线的增强,Cortex A15的二级缓存也进行了大幅度的升级。在Cortex A9上,ARM设计了多核心共享式二级缓存,但这个缓存是通过外部总线访问的。

可以看到,两颗Cortex A9处理器通过标记为PL310的二级缓存控制器连接到1MB的缓存上。PL310的内部结构如下:

结合之前的架构图,我们就可以推测,PL310提供的两个AMBA3 AXI 64bit接口,一个会用来进行指令拾取,而另一个则用户访问二级缓存。

在Cortex A15上,ARM将二级缓存控制器直接整合进了A15多核心控制器SCU中,与所有的核心构成了一个紧密耦合的整体。

不但如此,Cortex A15的二级缓存架构还针对多核心访问设计了4个独立的TAG队列,将多核心控制器整合进L2系统并支持直接的CPU到CPU数据传输,这一切都是为了极大提升多核心下并发访问缓存的性能。Intel曾经说过Cortex A9糟糕的二级缓存性能限制了它的性能,很明显,ARM决心在Cortex A15上改进这个缺陷。

至于高通S4平台,根据目前的资料,虽然Krait已经淘汰了S3平台上每个核心私有缓存的设计,但是并没有达到Cortex A15的高度,实际上采用的应该是类似于Cortex A9的缓存架构。

到这里大家应该就明白了,认为Krait是类似于Cortex A15架构的说法是不准确的。事实上,骁龙S4的“Krait”架构是一个相对上代Scorpion而言执行核心经过强化、配备了Cortex A15级协处理器、采用了类似Cortex A9存储架构的处理子系统,整体而言介于Cortex A9和A15之间,看作是“增强版A9”而不是A15级设计比较恰当。

第三回合:多核心构成方式——胶水 vs 胶水

关注高通的读者应该都知道,高通的移动处理器采用的都是所谓的异步架构,高通自始至终对外将异步架构宣传为一个先进的技术,而大家则把它戏称为“胶水”。抛开其中的戏虐调侃之意,异步多核究竟能不能被称为“胶水”呢?三款处理器多核心结构有何优劣或者不同?本次我们打算用一个浅显易懂的例子来解释异步多核心。

如果我们把智能手机系统看作一个银行的营业厅,处理器就是窗口和窗口后面坐着的客服人员,而指令就是排队的人。如果一个营业厅只有一个窗口和一位客服人员,可以简单理解为营业厅是“单核”的——如果业务过多的话,这个客服人员就会忙不过来,也就是说这个单核的手机就会变得很卡。

在这种情况下,银行可以增加一些客服人员与窗口,来提升处理能力,这就是所谓的“多核心”。

此时有两种选择,第一是在唯一的窗口后面增加一名客服人员,而另一种选择则是额外开启一个新窗口,并再配备一名客服人员。在计算机系统内,前一种方案就对应异步架构,而后一种方法则对应同步架构。

银行客服人员可以看作是“运算能力”,而银行窗口则代表着“吞吐能力”。异步架构的本质是维持同样的吞吐能力,提高运算能力,而同步架构则会同时提升这两者。

自然的,前者要付出的代价比后者低,因为不需要额外再设计一个窗口,但缺点也显而易见:如果客户办理的都是非常简单的业务例如存款取款,那么整个营业厅的工作效率最终会受制于窗口的数量(一个)而不是客服人员的数量(两个)。在这种情况下,拥有两个窗口的营业厅可以获得接近两倍的处理能力,而用有两个客服人员的窗口则不会有太多的提升。当然,如果客户办理的都是诸如购买保险这类复杂业务,那么一个窗口拥有两个客服人员就可以较好的提升营业厅的处理能力,但在目前的手机应用环境下,这样的情况是比较少的。因此,异步架构总体而言相对同步架构而言性能损失比较明显。

理论上,异步架构的好处是设计简单、实现方便,缺点是性能低、吞吐量差。我们可以考虑极端的情况,假设在一个窗口后安排四名甚至八名客服人员,这个窗口是绝不可能获得四倍或是八倍与单人的工作效率,因此异步架构只有在高强度运算密集型的体系中才会得到应用,而在民用领域,以Pentium D为代表的异步架构处理器在2006年后基本就被淘汰了,目前只有ATOM还在采用这样的设计。

虽然异步架构通过合适的任务分发机制可以让多个核心运行在不同的频率下——例如某个核心负载较小,就可以让其运行在更低的频率下,高通声称这最多可以节约40%的功耗。但是,如果要获得明显的功耗优势,这两个核心的频率和负载就要有足够大的差异,在这样的情况下,由于其中一个核心负载非常小,同步架构也可以选择关闭这颗核心。因此异步架构的省电特性未必能反映到实际使用中,而且随着硬件升级浪潮下核心数量的增加,异步架构所带来的性能损失会越来越大。很不幸的是,高通骁龙S4,也就是MSM8960依然选择了异步架构,甚至高通未来规划中的四核Krait产品(如APQ8064)也将继续沿用异步架构,这不得不说是一个遗憾。

至于Exynos 4 Quad和Tegra3,它们因为基于Cortex A9设计,因此采用的都是同步架构。虽然理论上同步架构的吞吐不是问题,但实际中依然会受到很多因素的影响,比如存储系统带宽,准确说是PL310这根数据总线。

之前我们提到了,由于PL310只提供了两个64bit的AMBA3 AXI接口,因此众多核心只能通过一个64bit的AMBA3 AXI接口访问二级缓存。另一个接口则用于CPU取指,宽度也仅仅只有64bit。由于AMBA3总线的设计特性,这种设计的并发性会相当差,导致CPU会长时间处于等待状态,从这个角度而言,四核心Cortex A9的确不是一个很好的设计,因为它同样会遇到吞吐量的瓶颈——S4的瓶颈是吞吐量,而A9的瓶颈是存储系统带宽。这个问题对于Tegra3而言会更加严重,因为Tegra3为了实现“4+1架构”,二级缓存的工作速度大约只有正常速度的一半,这无疑会进一步削减多核心时的系统性能。

所以说,不论是MSM8960、Tegra3还是Exynos 4 Quad,其多核心架构都有缺陷,第一代四核手机处理器,大家都不完美。相对而言,至少在缓存方面,Exynos 4 Quad要好于MSM8960,而Tegra3再一次为它“只求最快问世”策略付出了一定的代价。

第四回合:内存——最容易被忽视的细节

内存是一个极易被忽视的重要环节,智能手机的CPU和GPU都要从主内存中存取数据,随着屏幕尺寸的步步提升,智能手机内存容量、带宽的压力与日俱增。自从进入Cortex A9以来,绝大部分主流的手机SoC处理器均引入了双通道内存的设计。

只有两个例外,其中一个是Tegra2, 另外一个则是MSM8x60。这两颗SoC均只支持单通道内存,因此带宽方面有一定的缺陷,也最终导致了性能的不理想。那么在新一代的旗舰平台中,大家都选择了双通道吗?答案依然是否定的,因为Tegra3再一次成为了例外。

但是不要急着先骂nVIDIA,因为他们的解决方案简单粗暴而又有效——Tegra3直接提升了内存的运行频率,照样可以实现较高的带宽。

根据官方提供的资料,高通的MSM8960支持双通道LPDDR2内存,但它的内存频率仅仅运行在等效533MHz下,也就是说MSM8960的内存系统实际上是双通道LPDDR2 533。通过计算可以得到,这样的内存系统,带宽约为4.2GB/s。

Tegra3虽然仅支持单通道LPDDR2内存,但等效频率高达1066MHz,因此它的带宽同样也是4.2GB/s,而且由于频率的提升,Tegra3的内存访问延迟要大大低于MSM8960,具体的数字可能会在30~40%左右。这是一个非常有趣的结果,单通道的性能反而比双通道更加优胜。当然,NV这样的提升牺牲了功耗,就像双核1GHz的处理器功耗要低于单核2GHz一样。

至于Exynos 4 Quad,它的内存子系统是双通道LPDDR2 800MHz,因此拥有最大的带宽——6.4GB/s,延迟则比Tegra3略高。究竟带宽和延迟在实际应用中谁更重要是一个很难直接给出的结论,在后面的测试中我们会想办法去寻找由这点带来的差异。但是不论如何,MSM8960的内存子系统相对而言都是最弱的,Tegra3和Exynos 4 Quad可以说是各有优劣。考虑到未来高通的四核Krait产品依然将沿用这样的内存规格,过小的带宽和过大的延迟可能会成为制约高通产品发挥性能的一大桎梏。

第五回合:功耗——谁是好男人

在之前的工艺对比一节中,我们知道Exynos 4 Quad、Tegra3、MSM8960三款旗舰平台采用了三种不同的工艺,因此自然也会产生不同的功耗。目前智能手机的功耗越来越大,一天数次充电已经成为了常态,因此谁的功耗最低,有可能谁就将会在这一轮的旗舰大战中占据有利位置。Tegra3包含别具一格的伴核,MSM8960拥有目前代工领域最小的线宽,Exynos 4 Quad则有最先进的HKMG加持,究竟鹿死谁手,下面我们来详细分析。

nVIDIA在Tegra3的白皮书中给出了功耗对比,Tegra 3的整个CPU部分工作在1GHz频率下的功耗大约是1.26W,而Tegra3的实际产品运行频率是1.5GHz,这个频率下的功耗nVIDIA并没有提供,我们只能根据经验来预估。由于Fast G工艺的漏电比例较大,因此Tegra3在1.5GHz下的功耗可能是在2.5W左右。考虑到Tegra3的几乎整颗芯片都用的是40nm Fast G工艺制造,因此也可以猜测在其它通用硬件上,Tegra3的功耗会相对大一些。

当然,Tegra3有一个LP工艺制造的伴核。但是这个伴核更多是用于在待机时避免Fast G工艺的高漏电而设计的,对于正常使用的贡献并不大。

GPU方面,由于完全没有任何可以参考的资料,所以Tegra3的GPU究竟功耗多少,只能从实际使用续航中加以猜测。根据我们的实际测试,Tegra3手机的续航时间都不会太长,我们推测Tegra3的GPU功耗应当在1W左右,也就是说整颗Tegra3芯片在CPU和GPU满载的时候,功耗大约在3.5W左右(该数字并非官方提供,仅供参考)。

其次是Exynos 4 Quad。到目前为止三星依然没有公布Exynos 4 Quad的详细资料,但我们知道同样工艺的双核版Exynos 4 Dual 32nm的信息。

在图上可以看出,1.5GHz的双核Exynos 4 Dual 32nm的CPU部分功耗大约是在1W左右,每颗核心大约500mW。而Exynos 4 Quad的工作频率为1.4GHz,因此估计的功耗大约会是430mW,也就是说四核心的总功耗在1.7W左右,相对于Tegra3而言大约低了30%。

猎户座的GPU部分功耗图中也有所体现,45nm工艺下,运行频率为266MHz的Mali400 MP4的功耗大约是105mW,由于Exynos 4 Quad的GPU运行频率大约是400MHz,因此经过估算功耗大约在160mW左右。至此,Exynos 4 Quad的CPU+GPU最大总功耗就可以计算出来了,大约是在1.9W左右。

最后是MSM8960。相对于前两者的频繁估计不同,由于高通提供了MSM8960的开发平台,因此各项功耗都可以轻松直接测量。

借用其它媒体的结果,虽然功耗随着频率和负载的波动变化很大,但当工作在1.5GHz时,Krait CPU功耗大约是在700~750mW,因此总功耗这里取1.4W。这个数字在这一代的旗舰平台中是最低的(当然单颗核心功耗不是最低的),也就是说MSM8960在纯CPU的任务下是最省电的。

但是令人惊讶的是,MSM8960的GPU功耗高的难以置信,最高达到了1.6W,平均而言也有1.1W左右——几乎是Exynos 4 Quad的七倍。受到GPU拖累,MSM8960的CPU+GPU总功耗还是突破了2W大关,大约在2.5W左右。Android 4.0以后的系统中对于GPU的使用会非常频繁,这也许会对MSM8960的功耗带来一定的影响。

在之前的工艺分析中,我们提到过,高通没有选择最先进的28nm HPL HKMG工艺,可能会对产品的功耗表现产生一定的负面影响,在这里我们可能已经看到了结果,拥有HKMG技术加持的Exynos 4 Quad在三大旗舰平台的功耗里是最小的,其次是MSM8960,Tegra3由于伴核的存在,实际使用中的功耗比较难以估测,但如果是极限情况下则明显不容乐观。毫无疑问,最容易让手机变成好男人的是Tegra3。

Part.3 三国演义:实测数据对比分析

看完了理论分析对比,相信大家也都累了。三颗处理器究竟孰优孰劣,还得经过实际测试才能知晓。我们整理了Anandtech、gsmarena等数家国外权威媒体的测试成绩,并尝试通过分析结果来验证一下理论分析的结论。在未来,我们还会亲自对这三个平台进行性能测试,以追求更加全面的结果。

需要注意的是,因为各种原因,有些测试程序的参考价值有限,如Neocore、Nenamark v1和Vellamo。对于这类测试,我们决定直接忽略。

首先我们来看一些理论性能测试,作为对比,我们在图表里加入了1.2GHz的Exynos 4210与1.5GHz的MSM8260。Linpack是最近出厂率比较高的测试之一,靠求解线性方程组来测试系统的浮点运算能力。

双核的MSM8960在这个测试中取得了压倒性的领先,超过其它两款四核对手,这主要是缘于Krait的浮点协处理器为VFPv4,而A9和Scorpion只有VFPv3。浮点运算性能在现阶段的实际应用中体现的较少,因此这项测试的实际意义可能更多是体现在未来。比较有趣的是,Exynos 4 Quad的单线程性能不如Exynos 4210,这也许就是受到了带宽问题的影响。

接下来是几乎逢评测必测试的兔子跑分。这是一个综合测试项目,我们先来看总分,再慢慢分析。

Exynos 4 Quad是三大平台里分数最高的,其次是Tegra3,再次是MSM8960。双核和四核在这里体现出了差距,但是我们还需要来仔细看一下单项得分。

内存的结果比较有趣,看起来兔子跑分的内存测试会消耗很多的CPU性能,这导致拥有同样内存配置的Exynos 4210得分只有Exynos 4 Quad的一半都不到。而若只看新一代平台,即可发现Exynos 4 Quad依靠最大的带宽还是取得了最高的成绩,而MSM8960的低分也许是受到了延迟的影响,也许是因为CPU核心较少,成绩有些不成比例。整数部分的差距体现的是双核和四核的差距,虽然Krait拥有架构的优势,但这并不足以抵消核心数量的差距,和Exynos 4210相比,骁龙S4同频性能仅仅提升了6%,浮点甚至倒退了(兔子跑分的浮点部分并没有使用VFP加速,因此性能和整数是挂钩的,参考意义不大)。

而2D和3D由于测试强度过低,因此在目前的顶级平台上大家的分数均受制于屏幕刷新率,无法拉开差距。至于其它项目,对于总分的贡献很少。所以说,兔子跑分虽然设计上是一个全面的测试软件,但在旗舰平台上,基本总分只取决于内存和整数性能,参考意义大大下降。虽然网站很热衷于用它来进行测试,不得不说的是兔子跑分并不是一个好的测试软件。MSM8960在这个测试中的成绩并不理想。

CF-Bench也是一个理论性能测试软件。这里我们也来对比一下测试成绩。

再一次,核心数量显示出了决定性的作用,但是MSM8960的Java性能要好于其它两款四核平台,相对于前一代Scorpion而言更是有超过两倍的飞跃。这个结果比较出乎意料,也许是因为Krait引入的额外执行器在起作用,不论如何,这样的结果意味着在纯Java的应用中高通MSM8960会有较大的优势,甚至要比四核A9更好。

Quadrant测试向来是热门测试之一,我们也来对比一下,这里收集的是支持多核心的V2版,由于总分受IO影响过大,我们只看CPU和内存。

Quadrant V2的结果显得相当难以理解,S4的内存性能有些异乎寻常的高,这或许是因为Quadrant大体上是一个测试Java性能的程序,内存测试结果受到了S4超高的Java效率影响,变成了虚拟机访存效率测试而不是真正的内存测试。

看过了这些理论性能测试,我们下面来看一下实际环境模拟的测试。首先采集的是Smartphone Benchmark 2012中反映CPU性能额Productivity项。

虽然MSM8960有新架构的优势,但是由于核心数量少,性能依然赶不上四核Cortex A9。

浏览器测试也是实际应用中很常见的项目,我们先看看Sunspider。

时间越短越好,不过从双核A9、双核Krait到四核A9,差距并不大。因为SunSpider测试的成绩主要受到浏览器JS引擎的影响,与系统层面的优化关系密切,因此差距不大是可以理解的。

接下来是BrowserMark。

BrowserMark的结果可以说是一枝独秀,除了Exynos 4 Quad以外,其它平台基本处于同一水平,有趣的是不论Tegra3还是MSM8960,都不如上一代的Exynos 4210,这说明三星在软件上针对浏览器进行的单独优化效果是远超其他厂家的。

接下来我们看看3D性能。首先登场的自然是大名鼎鼎的GLBenchmark。Egypt场景使用了大量的Shader,尤其是Pixel Shader,比较看重GPU进行像素处理的能力。为了避免分辨率的影响,我们采集的是720p Offscreen的数据。

不出意料,Exynos 4 Quad再次夺得第一,MSM8960则不幸垫底。考虑到GPU功耗,这个结果实在是显得相当杯具。当然像素性能一向不是高通的强项,因此我们换一个测试。

Basemark ES2.0 Taiji是一个比较注重定点处理能力的测试,这个测试的结果又如何呢?

测试统一在800×480分辨率下进行。虽然依然落后于Exynos 4 Quad,但MSM8960在这个测试中进步明显,超过了Tegra3。不过Exynos 4 Quad似乎已经跑到了屏幕刷新率上限(成绩为58.9FPS),所以实际性能有可能不止于此。

最后我们来看看Nenamark V2。这也是一个比较注重顶点性能的测试。

在新一代SoC面前,Nenamark2也败下阵来,MSM8960和Exynos 4 Quad都跑到了屏幕刷新率的上限。考虑到它们的GPU均为上一代超频50%而来,因此应该还是Exynos 4 Quad占有上风。

能耗比和同频性能的初步探究

和以往测试性能不同,由于存在两种架构和两种核心数,所以这次我们尝试更加深入一点,去计算了一下三大旗舰平台在不同项目中的能耗比。除了Linpack以外,我们假定在测试中各个平台的功耗均处于最大,数据采用之前的结果。MSM8260的功耗之前并未提及,根据估测应当在650毫瓦左右。下面先来比较一下CPU部分的性能功耗比,这里用MSM8960的性能作为单位1。

接下来比较GPU部分。

可以看到,Exynos 4 Quad的能耗比在四个产品中是一枝独秀的,这应当主要是32nm HKMG工艺的功劳。而MSM8960的能耗比虽然位居第二,但是和Exynos 4 Quad有着不小的差距,这意味着在未来将要推出的四核心Krait产品,如何权衡功耗和性能会成为一个麻烦的事情。

GPU则对高通而言相当不妙。Tegra3由于采用的是落后的40nm工艺,能耗比不理想是可以理解的,但S4已经采用了28nm工艺(虽然工艺细节比较落后),再考虑到架构上的巨大优势,不仅能耗比大幅落后,连性能都是如此,这样的结果很难令人接受。

【表格S0】

很快,高通将会发布新一代的Adreno300系列GPU,宣称性能最高将达现有的四倍,实际泄露出的测试成绩则比Exynos 4 Quad高了大约15%,几乎达到Adreno225的两倍。但如果高通无法提升自己GPU的能耗比,只是一味的去“堆”运算单元,即便最终可以获得强大的性能,这样的提升也会变得毫无意义,毕竟便携设备靠电池供电,不可能无限制的允许功耗的增大。

能耗比之后,我们再来看看同频性能。由于和四核产品对比同频性能比较困难,因此这里我们用MSM8960与Exynos 4210进行对比。

从结果可以看出,骁龙S4的Krait核心在整体的执行性能方面和Cortex A9互有胜负,并不像很多文章中所说,“远超Cortex A9,与Cortex A15同级”。领先较多的三项中,Linpack源于Krait更高版本的VFP处理器,真正有实际意义的是Java性能,这点可能会在实际使用中带来很大的区别。总体而言,Krait与Cortex A9的关系更多类似于“基本持平”而并不是“远远甩开”。这个结果对高通而言可能有些沮丧,毕竟高通奉行的是两年一升级的策略,骁龙S4在自己生命周期的起始阶段无法彻底击败上一代架构的对手,随着下一代产品的陆续上市,Krait核心届时会变得更加被动。

结论与展望:骁龙S4——起大早,赶晚集?

看到这里,相信现在大家已经对三位选手有了足够的了解。骁龙S4确实是一颗优秀的处理器,高通的策略很明显——循序渐进,隔代升级。高通自行开发的处理器升级时间点和ARM是错开的——ARM拿出Cortex A8,高通就有骁龙S3 A8改进版;ARM拿出Cortex A9,高通就有骁龙S4 A9改进版。

通过架构换代的时间差,高通赢得了针对Cortex A9的优势,但这个优势并并没有太好的发挥出来,因为台积电工艺的问题,骁龙S4问世要比预定时间晚,而且它对普通A9处理器的优势要比想象的小,也许我们把它形容为“弥补了骁龙S3的劣势”更加准确一些。

只要使用最先进的工艺,现阶段的四核Cortex A9处理器(如Exynos 4 Quad)依然可以达到与之相当甚至更佳的性能。

MSM8960的实际表现比较令人惋惜。其实高通本来可以在能耗比上表现得更好,只是放弃采用HKMG技术的决定令工艺的优势大打折扣。骁龙S4虽然在工艺和架构上都进行了升级,能耗比的提升依然比不过单纯更换了新工艺的Cortex A9核心。

能耗比决定了一颗芯片的适用范围,以及它未来可能的发展方向和代价。MSM8960相对于Exynos 4 Quad平均能耗比低了大约40%,这意味着高通要实现相同的性能需要额外付出40%的功耗。如果三星愿意达到与高通同样的功耗,就可以实现更强的性能,可以说,拥有能耗比优势,就拥有了产品策略的主动权。

而这点在GPU上体现的更加明显。可以说,高通如果不能以五倍以上的幅度去提升Adreno系列GPU的能耗比,在未来高端手机竞争中将很有可能处于下风,因为游戏永远是硬件发展的最大推动力。事实也是如此,MSM8960虽然在日常使用中的确非常省电,但是在游戏中的发热却相当的大,APQ8064实现了超过两倍于现有的性能,如果需要消耗超过两倍于现有的功耗,那么对于最终产品而言,这款GPU无疑会成为一场灾难。我们看到APQ8064的官方开发套件第一次以平板的形式提供,高通对其的定位也是平板,这也从另一个方面说明了这颗芯片功耗可能不是太理想。

最后,不得不承认的是,Tegra3在这一轮竞争中综合表现确实与两位对手有一定差距,最大的遗憾就是落后工艺带来的巨大功耗。但是对于nVIDIA而言,Tegra3已经完成了它的历史使命,作为第一款问世的四核SoC,Tegra3牺牲了能耗换取的时间和价格优势已经让它成为了目前市场上最普遍的四核产品,从这点来看,我们似乎也不能过多的责怪它。

Tegra3的综合性能与骁龙S4表现互有胜负,只要厂家针对散热处理到位,这颗处理器在大尺寸手机或者平板上依然具备强大的竞争力。毕竟Tegra3的杀手锏是价格——不论是Exynos 4 Quad,还是MSM8960,或是即将问世的APQ8064,都不可能成为199美元级设备的核心,而Tegra3能。

无论如何,骁龙S4的处境都有些尴尬——半代架构换代积累的时间优势几乎被台积电不争气的工艺进度浪费殆尽,A9/A15混合结构带来的性能优势,又被对手加倍处理核心、使用最先进工艺等手段轻易抵消,属于典型的起了个大早,赶了个晚集。

尾声:螳螂捕蝉 黄雀在后

谈到手机处理器,有一个巨大的影响因素我们永远无法忽视,那就是ARM本身。经过数年磨砺,ARM架构早已控制了智能手机市场大半江山,作为规则制定者,ARM的一举一动都将对市场产生强大影响。

不论是四核心Tegra3、猎户座,还是架构领先的骁龙S4,它们都将在半年后迎来强劲的挑战,那就是ARM全新一代移动处理器架构Cortex A15。根据目前零散的实际测试性能以及理论分析,Cortex A15不论是相对于Cortex A9还是Krait的提升都将非常明显,德州仪器(TI)的演示中甚至出现了单项测试中同频性能Cortex A15超越Cortex A9接近8倍的恐怖结果。

【OMAP5演示视频】

虽然现阶段Cortex A15的功耗暂时无法用于手机产品,但ARM已经宣布了一项名为big.LITTLE的技术,即用Cortex A15搭配低功耗处理器Cortex A7的方式,让程序和系统可以无缝的在两颗核心中切换,并利用Cortex A15的高性能与Cortex A7的高能源效率实现功耗和性能的平衡。

这个技术与Tegra3上采用的“4+1架构”很像,但是整合程度要深入的多,效果和适用范围自然也会大大提升。就目前的资料,下一代产品上,nVIDIA会继续开发自家的vSMP技术,而OMAP5已经确认整合的是Cortex M4而非A7,因此三星可能成为第一个将big.LITTLE技术带进现实的厂商。而高通则会比较头痛,因为骁龙S4已经出招完毕,而对手的绝招——Cortex A15还未到来。骁龙S4不仅要在明年继续作为当家花旦去面对Cortex A15的狂轰滥炸,甚至靠牺牲性能换来的功耗降低在big.LITTLE的面前也可能会黯然失色。

2012年注定是一个过渡之年,虽然三星、高通、nVIDIA都在今年拿出了新的旗舰SoC,但真正的大戏尚未上演。根据时间规划,nVIDIA将在2013年初推出基于Cortex A15的新一代SoC——Tegra4,而德州仪器公司在放弃了整个2012年后,也将在2012年底到2013年初推出基于Cortex A15的OMAP5产品线。至于三星,早在今年二季度就已经量产了世界上第一款Cortex A15处理器,即Exynos 5 Dual,在2012年底到2013年初这段时间很有可能会推出第二代Cortex A15 SoC。

ARM公司将Cortex A15称为“ARM架构有史以来最大的一次飞跃”,那些追求极致性能的用户可以暂时捂住自己的钱包,等到A15时代到来后再做决定。而对于实用主义者而言,现今的四核猎户座、Tegra3、骁龙S4都是不错的选择——最出彩的四核猎户座成本最高,综合表现较差的Tegra3却拥有无可比拟的价格优势,骁龙S4则刚好夹在中间,它们之间的胜负,将更多的取决于实际产品。

这个结果对于高通而言是难以接受的。很快,高通将推出新一代骁龙S4 Pro处理器APQ8064,它的四核心结构相当于把两个骁龙S4拼到了一起,集成的显示芯片也更新为Adreno 320,高通的意图很明显——用这块处理器竖立绝对性能优势,与NV、三星的四核A9产品划清界限。

猜你喜欢

转载自blog.csdn.net/zhengmeifu/article/details/11222751