拨开浮云见月明爱活带你详解手机双核处理器4i9{_7\.|,E,\%P;\#c2j2w2N我们的手机市场实在是太杂了。抛开黑莓惠普这些国内见得少的牌子不说,单是Android一家,同一个时期内就有数十家厂商上百款产品充斥市面,颇有当年大炼钢铁赶英超美的气势。大家都号称自己是双核心手机,这就带来了一个问题:究竟选哪个好呢?或者换个说法,都是“双核心”,它们之间难道就真的没有区别吗?关于这个问题,不少群众对小米手机那颗1.5GHz的双核心处理器是否具备世界第一性能表示好奇。为了帮助大家更好的理解市面上双核处理器的异同,以便作出自己的选择,我们撰写了下面的这些文字。本文将从多个角度带领大家对目前市场中的双核产品做一次较为全面的了解。首先,让我们来看看市面上有哪些双核心手机处理器。-o!Q#m:T!R4u0p7`%D#p!V9C/m提到双核,可能大家首先想到的就是nVIDIA的Tegra2。作为业界新人,nVIDIA必须要有一些别人不具备的优势,才能站稳脚跟,而nVIDIA选择的优势就是速度。Tegra2是一款早在2010年1月就发布的双核手机处理器,为nVIDIA赚足了眼球,甚至俨然成了双核的代名词。&T-c9n'[5C!zZx4t6P(?6G*C-a5l:q(g$R4Z*w4L.v4G;c#h%}Tegra2是nVIDIA在ARMSoC领域的第二款作品,由于第一款Tegra表现并不好,nVIDIA很早就开始设计Tegra2,最终成为了移动消费领域第一款量产型双核ARM处理器,也正是靠这点,诸多厂家为了能赶在苹果之前推出双核产品,纷纷下单采购。因此大家便看到了今年年初MWC2011上双核设备的密集发布。这些双核机型成功从苹果手里抢走了“业界首款双核”的名头,直接导致苹果不得不在iPad2发布会上退而将A5称为第一款量产的双核处理器——尽管大家都知道,当iPad2发布的时候,搭载Tegra2的手机和平板已经开卖多时了。+f6_#r%w2Q5a#Z_Tegra2的CPU部分采用的是双核ARMCortexA9MP,图形芯片(GPU)则是NV自有的GeForceULP。它由TSMC以40nm工艺制造,预设工作频率为1GHz。相对于单核时代的CortexA8而言,CortexA9是ARM公司性能更强、功能更多,并且支持多核心配置的新核心。关于它的特性,在后面的文章中会详细解释,这里就先不详述了。在Tegra2上,nVIDIA为每一个核心配备了32KB+32KB的一级缓存,以及累计1MB的二级缓存,但是在内存子系统上最高只支持到DDR2667或LPDDR2600,而且仅支持单通道内存。当然,随着现代手机对于多媒体功能,例如视频回放的需求,Tegra2也引入了诸多格式最大1080p分辨率的硬件视频解码能力。3|+K3]!Z'T1j/f%v在nVIDIA宣布双核Tegra2后仅仅一个月,另一家老牌半导体公司德州仪器也宣布了自己的OMAP4双核心平台,包含了OMAP4430、OMAP4460与2011年初发布的OMAP4470三个型号。与Tegra2相同,OMAP4也搭载了CortexA9MP架构的双核心,缓存资料不详,而GPU采用的则是PowerVRSGX540(不包括OMAP4470在内,下面的介绍仅指4430/4460)。可能有些读者能看出,这颗GPU与单核时代的三星蜂鸟处理器是一样的,为此,德州仪器将这颗GPU的频率提升了50%,达到了300MHz,希望借此提升性能以拉开与单核处理器的差距。/rS+U&_5\`(I#d:C8Q8C0N#@:zOMAP4系列均采用45nm工艺制造,OMAP4430设计频率为1GHz,OMAP4460则设置为1.5GHz,因此可以认为前者是针对手机平台设计的,而后者是针对平板机设计的。值得一提的是,与Tegra2不同的是,OMAP4支持双通道内存,内部具备两个完全一样的内存控制器,这点在后面的文章中也可以看到。至于内存规格,OMAP4430最高至支持LPDDR21066,在频率上也要比Tegra2高了几乎一倍。.z;^4\&h$N~+N]+I另一家单核时代的主流供应商高通,则在2010年6月宣布了自家的双核产品规划,其中主频高达1.2GHz的MSM8x60是最吸引眼球的。这是第一款针对手机,且设计频率达到1.2GHz的双核处理器,但与之前两家不同的是,高通在自家双核处理器上并没有采用类似于CortexA9MP的核心,而继续采用了与其单核处理器类似的Scorpion内核。!q9u-b,c3m*F9NS-x|.OA%HMSM8x60的内存支持能力与OMAP4430处于同一水平既LPDDR21066,但是对于是否支持双通道内存我们不得而知。GPU依然是高通自有的Adreno系列,当然型号升级到了更高级的Adreno220,高通号称可以提供前一代两倍的性能。虽然高通不止一次提到自己将用28nm工艺生产ARM处理器,但MSM8x60采用的还是45nm工艺,一级缓存与CortexA9一样,但二级缓存却只有512KB,比标准的CortexA9MP少了一半。多媒体支持级别与主流双核一样,也是1080p级别的视频回放。8Q/A'V$_1Z-e2N:V5v2U'A;i0L)m!E.c与这些厂家的积极表现不同,作为三巨头之一三星在双核方案上似乎显得有些低调,一直到2010年9月才发布自家的双核平台,即大家熟知的代号猎户座的双核心处理器,量产型号为Exynos4210。作为一款最晚发布的产品,猎户座在规格上也是最高的,不仅CPU配备了设计频率同样高达1.2GHz的双核CortexA9MP,GPU也使用了ARM自行设计的Mali400多核心GPU,而且不仅整合的是最高端的4核心设计,还大幅提高了工作频率——三星官方宣称猎户座的3D填充率高达32亿像素每秒,这个数字要远远超过竞争。.]&Ds3F0t4u0Wl'i+R*r)l-},o.P*u6Q%A:}-N视频解码是三星的传统优势,在猎户座身上这个优势依然得到了保持,对各种格式的硬件编解码都达到了1080p级别。至于内存,猎户座提供了独一无二的DDR3支持,这点是其它竞争对手所不具备的,而对于DDR2的支持也达到了最顶级的LPDDR21066,并且同样支持双通道。为了方便对比,让我们来列一个表格:!N$P#V+r-I#`6B.a好,这些就是即将上阵的选手了。下面我们会依次考量它们在诸多方面的表现,看看究竟哪个双核名副其实,哪个双核浪得虚名。较量项目一:处理器核心架构作为执行计算任务的最终单位,处理器核心本身的架构无疑是非常重要的一部分。从ARM11到CortexA8,同样频率下性能的提升可以达到2~5倍,这无疑就是核心的优势。在这四款双核处理器中,Tegra2、OMAP4430、Exynos4210均采用了CortexA9MP内核,而MSM8x60采用的则是A8ScorpionMP核心,它们之间有什么差距?要解释这个问题,我们先要回头看看CortexA8和CortexA9的区别。;V(|!o#V8V在单核时代,CortexA8架构是绝对的主流。作为ARM官方设计的产品,虽然CortexA8和CortexA9都基于ARMv7指令集架构,但是它们之间依然有很多的不同点,其中最重要,也是用户最能感觉到的,是一项叫做乱序执行的功能。虽然CortexA8和CortexA9都支持同时执行两条指令,但是只有CortexA9支持乱序执行能力,这个功能究竟是什么意思?我们知道,计算机程序,都是由一条一条的指令组成的。这些指令有很多种功能,有的是把数据从一个地方复制到另一个地方,有的是做数学运算,有的负责判断某一个条件,有的负责从一处跳转到另一处。编译器会把所程序员写出的程序编译成一条一条顺序的指令,就像电器的使用指南一样,让处理器遵照它去做。为了方便理解,我们假设一个程序的内容是做一份考试卷,执行的过程是先做完选择题,再做完问答题;做选择题的条件是要有铅笔去涂答题卡,而做问答题的条件则是要有钢笔去写答题纸。$M'e5j6}B6]!P%Z-m如果你忘了带铅笔,那么为了完成考卷,就必须要等到邻座的做完了选择题,你找他借来铅笔,才能继续自己的考卷,这样就耽误了时间。对于一颗标准处理器而言,很多时候都会遇到这类“没有带铅笔”的情况,比如需要访问的数据在内存里,这就需要处理器通知内存管理器,让内存管理器去把数据调入处理器,才能继续执行这一条指令。由于处理器内部的时钟延迟是纳秒级别,而内存的运行频率则有数十纳秒的延迟,两者之间差了许多倍,因此处理器一般需要消耗很长的等待时间,才能继续开始工作,最终的结果就是性能下降。4zK{_$b&Sp*?)B,w-K&}这时候,乱序执行就派上用场了。一个程序的指令都是有严格的逻辑顺序的,但是所谓的乱序执行,就可以打破这种原本的指令顺序,在逻辑允许的范围内以一种新的顺序去执行程序。如果继续用考试的例子,那就是这样:/w;^-p!W&O#p虽然编译器生成的考试指南告诉你,要先做完选择题,再去做问答题,但懂得变通的人会在没有铅笔的时候先去做问答题,这样就节省了大量的时间。支持乱序执行的处理器也懂得这样去“变通”,在遇到需要等待的指令时,如果后面的指令并不需要等待这条指令的结果,那么就可以先跳过这条指令,去执行后面的指令,大大节约等待时间,提升程序性能。当然,乱序执行并不是没有条件的,它要求被乱序的指令之间不存在严格的相关性。例如假设问答题里需要选择题的结果,那么你就不能跳过选择题去做问答题,只能老老实实去等邻座的铅笔了。)n4g:?$e0hb9m5`W那么回头来看看Scorpion核心。这个核心是高通在单核时代设计出来的,虽然也是基于ARMv7指令集架构,但在具体设计上属于高通自己的实现,与CortexA8相比有很多区别,其中最重要的就是高通为Scorpion核心引入了部分的乱序执行能力。所谓部分的,就是说在某些特定指令序列下,Scorpion可以实现乱序的效果,CortexA8则不行。在单核时代正是由于这点,高通的处理器核心在很多测试中的表现都要稍好于CortexA8,但是当双核时代来临后,大家都升级到了支持完整的乱序执行的CortexA9核心,而高通则依然沿用老旧的Scorpion核心,当年的优势就成为了现在的劣势。不仅如此,在纯执行能力上,Scorpion面对CortexA9也处于劣势。根据高通提供的数据,同样在1000MHz的频率下,CortexA8的执行能力为2000DMIPS(可以简单认为是每1周期执行两条指令),Scorpion比它要高一些,为2100DMIPS,但是CortexA9则高达2500DMIPS,领先Scorpion接近20%。虽然高通试图通过超频20%的方式弥补这个差距,但是在单线程性能上,还是被竞争对手甩开了不小的距离,毕竟乱序执行的能力在很多应用中可以获得的性能提升远远不是这200MHz的频率可以弥补的,而且更高的频率也会抵消Scorpion核心在省电上的特点。这点在后面的测试里也可以看出来。-k7v$N-M/W/M-M5K'S*k5W$\$wG+G英特尔给出的CPU性能参考5R%m7Xp'n)N$w;o7i2\.{)l&R#{;N8h+L0E2o2X:d;?;y5p当然,Scorpion核心也不是没有自己的优势。作为高通自行设计的核心实现,它在一些方面有着超出ARM官方CortexA系列的地方,例如它的二级缓存是直接连在两颗CPU上,而不是通过AXI总线共享的,在带宽和延迟上有着自己的优势。但是整体而言,Scorpion作为上一代核心,在新一代CortexA9双核的面前还是显得比较孱弱的。3n'{0p7Hq(G最后,我们给这些处理器的核心架构作个评分(考虑到默认频率):8h(P.h%X3i0F.X+I8m(|较量项目二:处理器核心的协同作战能力4Oi;v$b9p(F8Q/W'W*{可能多处理器架构这个词对于不少读者而言都是很陌生的,很多人可能从来都没注意到过这方面的东西。所谓多处理器架构,就是说多颗处理器以何种模式共同运行,以怎样的方式合作