1、技术强帖 详谈主流双核处理器,让你充分了解自己的手机技术, 双核处理器, 手机新技术研习社已经许久没有在爱活露脸,所以在今天我们开始前,小编先要考考大家:现今市面上究竟有多少款双核心手机?答不出来吧?其实,小编自己也不清楚 _ (汗)。因为我们的手机市场实在是太杂了。抛开黑莓惠普这些国内见得少的牌子不说,单是Android 一家,同一个时期内就有数十家厂商上百款产品充斥市面,颇有当年大炼钢铁赶英超美的气势。大家都号称自己是双核心手机,这就带来了一个问题:究竟选哪个好呢?或者换个说法,都是“双核心”,它们之间难道就真的没有区别吗?关于这个问题,大家在昨天的小米手机分析文章后面已经进行了热情洋溢的
2、讨论。不少群众对小米手机那颗 1.5GHz 的双核心处理器是否具备世界第一性能表示好奇。为了帮助大家更好的理解市面上双核处理器的异同,以便作出自己的选择,我们撰写了下面的这些文字。本文将从多个角度带领大家对目前市场中的双核产品做一次较为全面的了解。参赛选手亮相首先,让我们来看看市面上有哪些双核心手机处理器。提到双核,可能大家首先想到的就是 nVIDIA 的 Tegra 2。作为业界新人,nVIDIA 必须要有一些别人不具备的优势,才能站稳脚跟,而 nVIDIA 选择的优势就是速度。Tegra 2 是一款早在 2010 年1 月就发布的双核手机处理器,为 nVIDIA 赚足了眼球,甚至俨然成了双
3、核的代名词。Tegra 2 是 nVIDIA 在 ARM SoC 领域的第二款作品,由于第一款 Tegra 表现并不好,nVIDIA很早就开始设计 Tegra 2,最终成为了移动消费领域第一款量产型双核 ARM 处理器,也正是靠这点,诸多厂家为了能赶在苹果之前推出双核产品,纷纷下单采购。因此大家便看到了今年年初 MWC2011 上双核设备的密集发布。这些双核机型成功从苹果手里抢走了“业界首款双核”的名头,直接导致苹果不得不在 iPad2 发布会上退而将 A5 称为第一款量产的双核处理器尽管大家都知道,当 iPad2 发布的时候,搭载 Tegra 2 的手机和平板已经开卖多时了。Tegra 2
4、的 CPU 部分采用的是双核 ARM Cortex A9 MP,图形芯片(GPU)则是NV 自有的 GeForce ULP。它由 TSMC 以 40nm 工艺制造,预设工作频率为 1GHz。相对于单核时代的 Cortex A8 而言,Cortex A9 是 ARM 公司性能更强、功能更多,并且支持多核心配置的新核心。关于它的特性,在后面的文章中会详细解释,这里就先不详述了。在 Tegra 2 上,nVIDIA 为每一个核心配备了 32KB+32KB 的一级缓存,以及累计 1MB 的二级缓存,但是在内存子系统上最高只支持到 DDR2 667 或 LPDDR2 600,而且仅支持单通道内存。当然,
5、随着现代手机对于多媒体功能,例如视频回放的需求,Tegra 2 也引入了诸多格式最大1080p 分辨率的硬件视频解码能力。在 nVIDIA 宣布双核 Tegra 2 后仅仅一个月,另一家老牌半导体公司德州仪器也宣布了自己的 OMAP4 双核心平台,包含了 OMAP4430、OMAP4460与 2011 年初发布的 OMAP4470 三个型号。与 Tegra 2 相同,OMAP4 也搭载了 Cortex A9 MP架构的双核心,缓存资料不详,而 GPU 采用的则是 PowerVR SGX540(不包括 OMAP4470 在内,下面的介绍仅指 4430/4460)。可能有些读者能看出,这颗 GPU
6、 与单核时代的三星蜂鸟处理器是一样的,为此,德州仪器将这颗 GPU 的频率提升了 50%,达到了 300MHz,希望借此提升性能以拉开与单核处理器的差距。OMAP4 系列均采用 45nm 工艺制造,OMAP4430 设计频率为 1GHz,OMAP4460 则设置为1.5GHz,因此可以认为前者是针对手机平台设计的,而后者是针对平板机设计的。值得一提的是,与 Tegra 2 不同的是,OMAP4 支持双通道内存,内部具备两个完全一样的内存控制器,这点在后面的文章中也可以看到。至于内存规格,OMAP4430 最高至支持 LPDDR2 1066,在频率上也要比 Tegra 2 高了几乎一倍。另一家单
7、核时代的主流供应商高通,则在 2010 年 6 月宣布了自家的双核产品规划,其中主频高达 1.2GHz 的 MSM8x60 是最吸引眼球的。这是第一款针对手机,且设计频率达到 1.2GHz 的双核处理器,但与之前两家不同的是,高通在自家双核处理器上并没有采用类似于 Cortex A9 MP 的核心,而继续采用了与其单核处理器类似的 Scorpion 内核。MSM8x60 的内存支持能力与 OMAP4430 处于同一水平既 LPDDR2 1066,但是对于是否支持双通道内存我们不得而知。GPU 依然是高通自有的 Adreno 系列,当然型号升级到了更高级的Adreno220,高通号称可以提供前一
8、代两倍的性能。虽然高通不止一次提到自己将用 28nm工艺生产 ARM 处理器,但 MSM8x60 采用的还是 45nm 工艺,一级缓存与 Cortex A9 一样,但二级缓存却只有 512KB,比标准的 Cortex A9 MP 少了一半。多媒体支持级别与主流双核一样,也是 1080p 级别的视频回放。与这些厂家的积极表现不同,作为三巨头之一三星在双核方案上似乎显得有些低调,一直到 2010 年 9 月才发布自家的双核平台,即大家熟知的代号猎户座的双核心处理器,量产型号为 Exynos 4210。作为一款最晚发布的产品,猎户座在规格上也是最高的,不仅 CPU 配备了设计频率同样高达 1.2GH
9、z 的双核 Cortex A9 MP, GPU 也使用了 ARM 自行设计的 Mali400 多核心 GPU,而且不仅整合的是最高端的 4 核心设计,还大幅提高了工作频率三星官方宣称猎户座的 3D 填充率高达 32 亿像素每秒,这个数字要远远超过竞争。视频解码是三星的传统优势,在猎户座身上这个优势依然得到了保持,对各种格式的硬件编解码都达到了 1080p 级别。至于内存,猎户座提供了独一无二的 DDR3 支持,这点是其它竞争对手所不具备的,而对于 DDR2 的支持也达到了最顶级的 LPDDR2 1066,并且同样支持双通道。为了方便对比,让我们来列一个表格:好,这些就是即将上阵的选手了。下面我
10、们会依次考量它们在诸多方面的表现,看看究竟哪个双核名副其实,哪个双核浪得虚名。较量项目一:处理器核心架构作为执行计算任务的最终单位,处理器核心本身的架构无疑是非常重要的一部分。从 ARM11 到 Cortex A8,同样频率下性能的提升可以达到 25 倍,这无疑就是核心的优势。在这四款双核处理器中,Tegra 2、OMAP4430、Exynos 4210 均采用了 Cortex A9 MP 内核,而 MSM8x60 采用的则是 Scorpion MP 核心,它们之间有什么差距?要解释这个问题,我们先要回头看看 Cortex A8 和 Cortex A9 的区别。在单核时代,Cortex A8
11、架构是绝对的主流。作为 ARM 官方设计的产品,虽然 Cortex A8和 Cortex A9 都基于 ARM v7 指令集架构,但是它们之间依然有很多的不同点,其中最重要,也是用户最能感觉到的,是一项叫做乱序执行的功能。虽然 Cortex A8 和 Cortex A9都支持同时执行两条指令,但是只有 Cortex A9 支持乱序执行能力,这个功能究竟是什么意思?我们知道,计算机程序,都是由一条一条的指令组成的。这些指令有很多种功能,有的是把数据从一个地方复制到另一个地方,有的是做数学运算,有的负责判断某一个条件,有的负责从一处跳转到另一处。编译器会把所程序员写出的程序编译成一条一条顺序的指令
12、,就像电器的使用指南一样,让处理器遵照它去做。为了方便理解,我们假设一个程序的内容是做一份考试卷,执行的过程是先做完选择题,再做完问答题;做选择题的条件是要有铅笔去涂答题卡,而做问答题的条件则是要有钢笔去写答题纸。如果你忘了带铅笔,那么为了完成考卷,就必须要等到邻座的做完了选择题,你找他借来铅笔,才能继续自己的考卷,这样就耽误了时间。对于一颗标准处理器而言,很多时候都会遇到这类“没有带铅笔”的情况,比如需要访问的数据在内存里,这就需要处理器通知内存管理器,让内存管理器去把数据调入处理器,才能继续执行这一条指令。由于处理器内部的时钟延迟是纳秒级别,而内存的运行频率则有数十纳秒的延迟,两者之间差了
13、许多倍,因此处理器一般需要消耗很长的等待时间,才能继续开始工作,最终的结果就是性能下降。这时候,乱序执行就派上用场了。一个程序的指令都是有严格的逻辑顺序的,但是所谓的乱序执行,就可以打破这种原本的指令顺序,在逻辑允许的范围内以一种新的顺序去执行程序。如果继续用考试的例子,那就是这样:虽然编译器生成的考试指南告诉你,要先做完选择题,再去做问答题,但懂得变通的人会在没有铅笔的时候先去做问答题,这样就节省了大量的时间。支持乱序执行的处理器也懂得这样去“变通”,在遇到需要等待的指令时,如果后面的指令并不需要等待这条指令的结果,那么就可以先跳过这条指令,去执行后面的指令,大大节约等待时间,提升程序性能。
14、当然,乱序执行并不是没有条件的,它要求被乱序的指令之间不存在严格的相关性。例如假设问答题里需要选择题的结果,那么你就不能跳过选择题去做问答题,只能老老实实去等邻座的铅笔了。那么回头来看看 Scorpion 核心。这个核心是高通在单核时代设计出来的,虽然也是基于ARM v7 指令集架构,但在具体设计上属于高通自己的实现,与 Cortex A8 相比有很多区别,其中最重要的就是高通为 Scorpion 核心引入了部分的乱序执行能力。所谓部分的,就是说在某些特定指令序列下,Scorpion 可以实现乱序的效果,Cortex A8 则不行。在单核时代正是由于这点,高通的处理器核心在很多测试中的表现都要
15、稍好于 Cortex A8,但是当双核时代来临后,大家都升级到了支持完整的乱序执行的 Cortex A9 核心,而高通则依然沿用老旧的 Scorpion 核心,当年的优势就成为了现在的劣势。不仅如此,在纯执行能力上,Scorpion 面对 Cortex A9 也处于劣势。根据高通提供的数据,同样在 1000MHz 的频率下,Cortex A8 的执行能力为 2000DMIPS(可以简单认为是每 1 周期执行两条指令),Scorpion 比它要高一些,为 2100DMIPS,但是 Cortex A9 则高达 2500DMIPS,领先Scorpion 接近 20%。虽然高通试图通过超频 20%的方
16、式弥补这个差距,但是在单线程性能上,还是被竞争对手甩开了不小的距离,毕竟乱序执行的能力在很多应用中可以获得的性能提升远远不是这 200MHz 的频率可以弥补的,而且更高的频率也会抵消 Scorpion 核心在省电上的特点。这点在后面的测试里也可以看出来。英特尔给出的 CPU 性能参考当然,Scorpion 核心也不是没有自己的优势。作为高通自行设计的核心实现,它在一些方面有着超出 ARM 官方 Cortex A 系列的地方,例如它的二级缓存是直接连在两颗 CPU 上,而不是通过 AXI 总线共享的,在带宽和延迟上有着自己的优势。但是整体而言,Scorpion 作为上一代核心,在新一代 Cort
17、ex A9 双核的面前还是显得比较孱弱的。最后,我们给这些处理器的核心架构作个评分(考虑到默认频率):Tegra 2 OMAP4430 MSM8x60 Exynos 4210 较量项目二:处理器核心的协同作战能力可能多处理器架构这个词对于不少读者而言都是很陌生的,很多人可能从来都没注意到过这方面的东西。所谓多处理器架构,就是说多颗处理器以何种模式共同运行,以怎样的方式合作执行程序。在 PC 领域,这个概念并不重要,因为大家看到的多处理器(多核心处理器也可以看作制作在一个芯片上的多处理器),在逻辑架构上都是一样的,那就是同步多处理器,英文为 Synchronous Multi-Processor
18、s,缩写为 SMP(不是对称多处理器的那个 SMP)。但是在多处理器体系刚刚出现的阶段,曾经也有过很多不同的逻辑架构,而在目前的手机市场上就恰恰存在着不采用SMP 架构的多处理器,那就是高通的 MSM8x60。与 SMP 不同,高通所采用的架构名为ASMP,即异步多处理器架构。所谓同步和异步,差距并不是简单的两个字,在具体实现上的区别非常大。但是在此我们并不需要了解它们之间学术上的区别,我们只从最粗略的角度来看一下这两种架构的工作方式。所谓同步多处理器,顾名思义就是同步的,即多枚处理器运行在同样的时钟频率,共享同样的缓存数据,协同工作。简单来说,同步多处理器系统在工作的时候,每当一个任务完成后
19、,空闲的处理器会立刻寻找下一个新的任务,对于外部而言,这两颗处理器是一个整体,共同完成同一个工作。而异步多处理器则更接近于若干个独立工作的处理器,它们之间可以运行在不同的频率下,每个处理器维护自己私有的缓存数据,最重要的是,它们之间会利用一种仲裁机制,以轮流工作的方式执行任务。它们更像是一些互不干扰的独立处理器,各自完成各自的事情,轮流执行不同的工作。看到这儿,相信大家也看出来了,同步和异步最大的区别就在于轮流工作这四个字。具体而言,就是在同一时间,只有一颗处理器可以接受任务,另一颗不论是否繁忙,都不能接受新任务。可能光靠文字说明还不是那么生动,下面我们就来看几张图,了解一下相对于同步多处理器
20、“谁空闲谁接单“的工作模式而言,这种轮流工作到底是怎样进行的,又会导致怎样的结果。图中每一横行代表一个时钟周期,我们用红色的方块代表正在读取任务,绿色的方块代表正在执行任务,方块中的数字代表不同的任务,而空白代表着空闲状态。在第一张图里,我们假设任何任务只需要一个周期就可以执行完毕。可以看到,在每一个周期内,异步多处理器架构最多只能有一个核心接受任务,而如果两个处理器都空闲,就会有一个消极怠工。如图所示,执行四条指令,异步多处理器用了 5个周期,同步多处理器用了 4 个周期,异步多处理器慢了 25%。那么如果指令执行时间是两个周期呢?当指令执行长度为 2 周期时,新问题就出现了。由于 ASMP
21、 架构中,处理器 1 只能在奇数周期接受任务,处理器 2 只能在偶数周期接受任务,虽然 ASMP 中的处理器 1 在第 3 个周期的时候结束了当前的任务,但随之而来的第 4 个周期却只有处理器 2 可以接受任务。因为处理器 2 此时正忙于上一个任务,因此对于外部程序而言,在第 4 个周期上处理器会处于不可用状态,等到第 5 个周期到来以后才能继续接受新任务。因此 SMP 架构只需要 6 个周期就能完成的任务,ASMP 却消耗了 8 个周期,慢了 33%。这就是为什么 ASMP 目前采用的越来越少的缘故。虽然 ASMP 存在着设计简单、结构清晰、耗电较低的优势,但是由于性能不足,在 PC 领域从
22、来都没有成为过主流。而在移动领域,高通认为手机对于耗电的要求要大于性能,又希望可以在双核时代继续沿用单核时代的核心架构而不需要彻底重新研发,因此采用了 ASMP 架构。但是事实证明,高通在这点上可能有些耍小聪明之嫌,因为既然消费者决定购买双核,那么就一定是冲着性能去的,并且对功耗也已经做好了心理准备。 最近比较火热的小米手机就选用了高通 MSM 8260 芯片,不过它自称的“最快”还要打上一个问号根据高通的官方数据,其 1.2GHz 的 MSM8x60 芯片组在满负荷工作的时候,仅处理器部分就要消耗大约 1.2 瓦特的功率,这相对于单核时代不到 500 毫瓦的功耗而言,也已经是非常高的数值了,
23、这证明了不管怎么去省电,双核都依然是双核,既然如此,去追求双核应有的性能显然应该比如何去节省那么一点点的电更加重要。换一个方面说,性能足够强的话,系统可以以更短的时间完成任务,进而更多地进入低功耗的状态。高通通过ASMP 也许节约了一定的耗电,但是其最大 33%的性能损失会导致系统多出 33%的时间处于高功耗状态,消耗的功率可能抵消甚至反超节约的,让高通的如意算盘打空。回到话题上来,可能有些读者会认为,单独来看,可能 ASMP 和 SMP 的差距也并不是那么巨大,在之前图中的极限状况下也就相差 33%而已,在实际运行中的差距很难达到这个数字。但是不要忘记,之前的文章中我们讨论过乱序执行的重要性
24、,那么如果我们将指令等待也引入到之前的图中,那么会发生什么情况呢?在此,我们用灰色的方块代表需要等待的指令,而等待时间为两个周期。可以看到,一旦引入指令等待,将乱序执行与多核架构结合起来以后,不支持乱序执行的ASMP 架构(ScorpionMSM8x60)需要 10 个周期才能完成的工作,支持乱序执行的 SMP 架构(Cortex A9 MP其它主流双核方案)只需要 6 个周期,相对于支持乱序执行的 SMP 而言,不支持乱序执行的 ASMP 架构慢了 66%。这就是 MSM8x60 面对其它双核 Cortex A9 的情况。虽然由于实际运行中指令的执行长度可能会更长,以至于减小轮流工作的影响,
25、但由于 Scorpion 核心对乱序执行的支持并不完善,因此漫长的指令等待依然可能会导致高通的处理器浪费大量的时间,最终性能变慢。这点,我们也会在后续的测试中加以体现。同样,让我们也来针对多处理器架构,给四款双核一个评分:Tegra 2 OMAP4430 MSM8x60 Exynos 4210 较量项目三:通讯总线现代手机所采用的主芯片早已不能简单称之为处理器,而是一套复杂得多的系统,包含了处理器、显示加速芯片、内存控制器、视频解码核心、标准总线控制器等等,有些甚至还包含了数字信号处理器,它们被合起来称之为片上系统(SoC)。实际上一颗 ARM SoC 中,CPU 所占据的硅片面积可能都不到总
26、面积的二十分之一,而其中很大的一部分面积,都被各种各样的互联结构占用了。其实这也很好理解,片上系统就上一个大城市,如果交通不畅,整个城市的运行就会陷入瘫痪。在片上系统里有各种各样的总线,内部的、外部的,私有的、公用的。在这其中有一条最为重要的外部总线,连接着几乎所有的内部设备,那就是 AXI。总线在片上系统中有多重要,可以看下面的这张图:可以看到,几乎所有的内部设备,都通过多层次、多区域的 AXI 互联接口进行沟通,更重要的是,内存控制器也是通过 AXI 连接到处理器,这就意味着不论你的内存颗粒或者内存控制器可以提供多大的带宽,处理器能够获得的带宽都直接且仅取决于总线带宽。因此这个总线的宽度,
27、决定了整个系统内部最大的内存带宽,同时也在某些情况下决定了诸如 3D GPU 这些对内存带宽需求巨大的模块的性能。正如城市的发展需要高速交通一样,随着片上系统的复杂化,内部互联的带宽也要求越来越大。由于总线方面的信息不属于一般用户所理解的范畴,因此厂家往往也不会对此做出详细的说明,所以每一款芯片究竟总线宽度多少也是不容易查证的。这点上 nVIDIA 相对而言做的最好,因为他们曾经直接把 AXI 总线位宽标在了网页上:32bit,类型为 AMBA-3(这个参数在现在的网页上已经找不到了,原因未知)。这个数字是相当“惊悚”的,因为如果总线宽度真的是 32bit,那么意味着 Tegra 2 的内部总
28、线位宽只是 ARM11 级别的。因此nVIDIA 在 Tegra 2 的内部,很可能采用了与标准 ARM 不同的总线配置方式,但是不论如何,Tegra 2 的总线带宽都是难以置信的小,即便 AXI 频率达到 300 甚至 400MHz,带宽最多也只能达到 Cortex A8 的水平。根据测试,Tegra 2 的内存复制成绩大约只能达到 1GB/s 左右,这也基本符合其带宽的表现。再来看看德州仪器的 OMAP4430。与 Tegra 2 上的诸多猜测不同,德州仪器提供了 OMAP4430 的完整技术手册,因此各方面的资料非常容易获取。在 OMAP4430 中,互连结构分为若干级别和层次,但是就最
29、主要的而言,是 L3 互联。德州仪器并没有采用 ARM 的 AMBA AXI 总线,而是在芯片内部的主互联上采用了 Arteris 公司的产品:从图中可以看出,OMAP4430 的 L3 互联宽度为 128bit,是 Tegra 2 的四倍,因此即便工作频率为 200MHz,总带宽也可以轻易达到 3.2GB/s,远远超过 Cortex A8 和 Tegra 2。说实话,这才是双核 Cortex A9 MP 应有的水准。当然,由于各家 SoC 的内部体系都不太一样,在此也不能 100%确定 Tegra 2 的实际情况。这点我们也会在后面的测试中继续研究。值得注意的是,OMAP4430 的两个内存
30、控制器在搭配 LPDDR2 1066 的时候可以提供的最大总带宽可以超过 8GB/s,但由于总线带宽缘故,实际效果可能并不会有对应的提升,这也是 ARM体系中一个比较头疼的问题之一。言归正传,下面继续来看看 MSM8x60。一直以来,高通对于自家芯片的技术资料都守口如瓶。这维护了高通的知识产权,但是却苦了笔者这样的人,因为根本无从查证芯片的详细参数,因此只能靠猜测了。一方面,MSM8x60 基本上就是“双核版”的 MSM8x55,另一方面在后续测试中也可以看出 MSM8x60 在内存方面的性能并不是很突出,因此在此笔者猜测 MSM8x60 的内部互联可能和单核时代一样,即64bit、200MH
31、z,总带宽 1.6GB/s。各位读者如果有详细的信息,也不妨告知。最后我们来看看 Exynos 4210。三星和高通在这个方面有一定的相似性,也不肯公开提供芯片的技术手册。但是我们在三星自己的 Exynos 4210 宣传资料中还是可以发现一些端倪的。在图中可以明显看出 Exynos 4210 同样支持双通道内存(DRAMC0 与 DRAMC1),而在之前的关键技术列表中,三星赫然写出了内存带宽 6.4GB/s 的数字。由于 Exynos 4210 是一颗几乎全以 ARM 公司产品打造的芯片,因此这个数字就意味着 Exynos 4210 的内部总线宽度可能是惊人的 256bit,只有这样才可以
32、在 200MHz 的频率下达到 6.4GB/s 的内存带宽。这个数字已经远远的甩开了单核 Cortex A8、Tegra 2 和 MSM8x60,甚至比 OMAP4430 还要高出一倍,在双核时代的 SoC 中显然是傲视群雄的。关于总线的研究就到此为止了,依然按照惯例,最后给一个分数:Tegra 2 OMAP4430 MSM8x60 Exynos 4210 较量项目四:多媒体作为一台现代手机,多媒体功能是不可或缺的。早在 15 年前 PC 处理器巨头 Intel 就高瞻远瞩,为大家带来了一款叫 Pentium MMX 的产品,其最大的特色就是引入了名为多媒体扩展(Multi Media eXt
33、ension,MMX)的扩展指令集。何谓多媒体扩展指令集?由于原理复杂坚涩,小编就简单的打个比方:厂商们分析平时处理器干哪些事情最慢、又最经常用到,然后把这些最消耗时间的事情固化成电路,做成一个额外的部分,和处理器集成到一起。使用的时候,只通过一条指令,就能够访问和计算多组数据,把最消耗时间的事情尽快做完。在计算机词汇里,这种指令集叫做 SIMD(Single Instruction Multiple Data,单指令多数据)指令集。回到手机上,在 ARM 的世界里,由于日益增长的多媒体计需求,也出现了属于 ARM 自己的多媒体扩展指令集,它的名字叫做 NEON。它可以帮助处理器加速任何格式视
34、频的编解码,帮助显示芯片加速矢量数据的解析和打包,也可以让系统可以更快的处理几百万像素的图片。它所能带来的性能提升根据应用的不同,可以从比较明显的 50%,到难以置信的8000%。长期以来 NEON 指令集都是各种高端 ARM SoC 的标配,从 ARM11 到 Cortex A8,基本上所有高端 SoC 都包含了对应版本的 NEON 指令集。而在 Cortex A9 时代,它更是像是理所应当一样,作为一个基本而不可或缺的功能,出现在各大厂商最高端 SoC 的蓝图中。在德州仪器的 OMAP4430 和三星的 Exynos 4210 中,每一个 Cortex A9 核心都拥有自己专属的 NEON
35、 协处理器,拥有专用的 32 个 64 位寄存器,以多通道操作的方式,加速系统的多媒体计算性能。而在 MSM8x60 中,高通甚至把它的 NEON 协处理器的位宽增加到了128bit,两倍于标准的 ARM 实现,让 NEON 协处理器可以一次性处理两倍的数据,带来更大的加速效果。那么 Tegra 2 呢?令人感到意外的是,不知道出于何种原因或者考虑,Tegra 2 没有搭配 NEON 协处理器。这对于一颗定位于顶级的双核 SoC 而言是十分不可理解的,因为 NEON 可以为几乎所有的多媒体过程提供明显的加速特性,而 nVIDIA 却选择了放弃。可能有读者会说,Tegra 2 有强大的显示芯片,
36、不需要 NEON 的加速,但是不要忘记,显示芯片是不能完全独立处理所有的 3D 运算过程的,其中诸如数据解包和组合这种操作还是需要 CPU 来完成,由于没有 NEON,处理器必须要花费几倍于对手的时间才能“喂饱”显示核心,最终的结果就是性能无法发挥。而在视频解码方面,Tegra 2 也会因为不具备 NEON 协处理器而受到很大的影响。因为我们知道,Tegra 2 虽然号称可以支持诸多格式的 1080p 全高清解码,但是它对视频的编码格式有着非常严格的要求,例如 Tegra 2 的视频解码核心只能硬件解码 Main Profile 的H.264 视频,而对于其它的就只能靠处理器来进行软件解压。这
37、时没有 NEON 协处理器的帮助,视频解压就很难高效的进行,最终导致 Tegra 2 的多媒体特性缩水。也许 nVIDIA 是认为 NEON 协处理器的授权价格过于昂贵,或者可能因为规模太大而提升制造成本,而最终选择了放弃,但作为消费者而言,不具备 NEON 指令集的 Tegra 2 无疑会在多媒体方面的竞争中被对手远远甩开。好了,关于多媒体的比拼也要告一段落了,最后我们照例为每个处理器给出评分。Tegra 2 OMAP4430 MSM8x60 Exynos 4210 (实际视频性能测试中 GS2 要比 SS 好不少,具体原因不知)较量项目五:3D 加速说到 3D 加速,这个概念哪怕放在区区
38、5 年前,对于手机而言都几乎是可有可无的。但是这几年随着 iOS 的崛起,与 Android 的飞速发展,3D 加速一夜之间变成了高端手机必备的特性,甚至成为了整个手机用户体验的决定性因素。而在新一代双核 Cortex A9 MP SoC 中,图形处理器(GPU)的竞争彻底进入了白热化阶段。从结构而言,四家的 CPU 好歹是一个蓝本(大家所采用的都是 ARM v7 架构),但四家的GPU 却选择了四种完全不同的方案,这的确从另一方面印证了 GPU 的重要性与竞争的激烈性。nVIDIA 作为 PC 领域图形技术的领导者,在这方面是有着先天的巨大优势。Tegra 2所采用的 GPU 是 nVIDI
39、A 自行研发的 GeForce Ultra Low Power,缩写为 GeForce ULP。它拥有四个顶点处理器,四个像素处理器,支持 OpenGL ES 1.1/2.0、OpenVG 等主流标准。在 Tegra 2 发布的时候,这枚 GeForce ULP 就是 nVIDIA 的宣传重点,因此消费者对于它的性能也有着极大的期待。而作为曾经参与桌面竞争、当下专注嵌入式 GPU 的 Imagination 公司,自然不愿意让出嵌入式独立 GPU 市场的性能领导地位。在 OMAP4430 上,我们看到的就是这家公司设计的PowerVR SGX540。这是一颗大家很熟悉的 GPU,因为早在单核
40、Cortex A8 时代,三星就在代号蜂鸟的处理器中采用了这颗 GPU,它强大的性能也让采用蜂鸟处理器的机型在单核时代傲视群雄。与 GeForce ULP 不同的是,PowerVR SGX540 内并没有单独的顶点处理器或者像素处理器,而是包含了四组通用处理器。这种类似于桌面显示核心统一渲染器的设计结构可以让 PowerVR GPU 用最少的硬件获取最大的性能,从而节约成本和功耗。值得一提的是,也正是由于通用处理器的设计,PowerVR SGX540 成为了当前唯一一颗支持 OpenCL 通用运算标准的 GPU。而在高通 MSM8x60 上,GPU 则不出意外的是高通自行设计的 Adreno。
41、这是高通从前ATi 公司收购而来并自行发展的图形架构,经过四代的发展,来到了最新的 Adreno 220。相对于单核时代主流的 Adreno 205,这颗 GPU 可以达到前者两倍的性能,从而得以参与到双核时代的 GPU 争夺战之中。当然,由于高通的“优良传统”,Adreno 系列的架构一直不得而知,详细参数也很难查明,但是考虑到这是从 ATi 收购而来的架构,因此笔者猜测应该也是基于分离的顶点处理器和像素处理器,只是各自的数量依然不甚明确。而四大双核里最后登场的 Exynos 4210,它在 GPU 上的选择也是最为有趣的,因为它所搭载的是由ARM 官方设计的 Mali400 图形核心。这是
42、一颗相对而言比较陌生的显示核心,因为这还是它第一次在顶级 SoC 中露面。从架构上而言,Mali400 也基于分离的顶点处理器与像素处理器,从逻辑角度而言要比PowerVR SGX540 落后一些,也不支持 OpenCL 通用运算标准。但是这样的结构在目前的应用需求下,性能也未必会显得落后。标准的 Mali400 GPU 包含一组顶点处理器,而像素处理器则可以在一组到四组之间自由搭配,取决于你愿意支付多少授权费和制造成本。由于Exynos 4210 是三星最顶级的 ARM SoC,因此三星也当仁不让的选择了完整的四像素渲染器配置,即 Mali400MP4。稍微岔开一下话题,虽然 ARM 宣称
43、Mali400 的这种设计是“多核心”架构,但笔者认为 Mali400 的“MP”与苹果 A5 处理器所采用的 PowerVR SGX543MP2的多核是不一样的,后者才是真正的多核心,而前者只能称之为像素处理器可变而已。那么这四颗 GPU 的基础性能参数是怎样的呢?我们来看下面这张表格:可以看到,在规格指标方面,Exynos 4210 是遥遥领先的,而 Tegra 2 紧随其后。至于具体的性能表现,我们在后面的测试中将简单介绍。值得注意的是,上表中的参数未必是最终的实际性能,理论参数一般都会受到实际应用环境的强烈影响。不过不管怎样,我们还是要打个分的,暂时按照物理参数吧。Tegra 2 OM
44、AP4430 MSM8x60 Exynos 4210 这里开始是实际机型性能测试谁是纯爷们?四款双核大混战经过上述炫目的技术分析,相信大家都累了。下面就让我们从一些性能测试中一窥这几颗处理器在实际产品中的表现吧。首先介绍一下采用了这四颗芯片的实际产品。需要注意的是,下面的测试并不是每一个产品都可能会有数据,也许某些测试只会有一部分的产品参与,而由于各个手机的分辨率不同,所以在 3D 测试里也需要加以考虑,不能只看原始数据。有些测试因为太老,进入双核时代后大家的性能都受限于垂直同步而导致没有足够的差异性,例如 Neocore,因此这里就不列成绩了。作为对比,我们额外引入单核的 Nexus S,方
45、便大家查看性能区别。下面的测试对比就将在这五款机器中展开。首先让我们来看看 Smartphone Benchmark 2011 的结果。成绩来源为独立第三方手机性能测试网站 Smartphone Benchmarks 的官网首页,选择分数的标准为能确认的原始频率下最高的得分,采集时间为 2011 年 7 月 15 日,下同。游戏,即 GPU 方面,可以看到 Mali400MP4、SGX540、GeForce ULP 得分相近。而生产力,即 CPU 方面,则是 Exynos 4210 一枝独秀。当然这也有一部分原因在于它的默认频率为1.2GHz。但是可以看到的是 MSM8x60 不论是 GPU
46、还是 CPU,都被远远的甩在了后面,甚至还不如单核的 S5PC110,其原因不外乎老旧的处理器核心与异步多核心架构。然后我们来看看 NenaMark 2.0。成绩来源依然是官网,所有型号的成绩取平均值:在这个测试中,Exynos 4210 的成绩遥遥领先与所有对手,而 Tegra 2 也许是因为较低的内存带宽,导致成绩反而不如 MSM8x60,甚至和上一代的单核也相去不多。当然,Galaxy S II 的分辨率只有 800x480,这里需要再一次强调。下面再来看看另一款测试,名叫Electopia。这是一款游戏内建的测试,成绩为论坛收集:注:由于没有 Atrix 4G 的成绩,因此此处用同为 Tegra 2 的 Optimus 2X 代替,分辨率800x480。OMAP4430 成绩依然欠奉。同样,Exynos 4210 依然遥遥领先,而在这项测试中Tegra 2 依然垫底,甚至不如上一代 S5PC110,而且落后 MSM8x60 的比例比之前更大。最后我们再来看看 GLBenchmark 的测试。这是一款以 3D 为主的测试软件,我们选取其中的 Egypt 场景作为对比,接着再来看看处理器性能。成绩来源为官网。由于此测试历史久