文档库 最新最全的文档下载
当前位置:文档库 › 手机双核CPU处理器详细介绍

手机双核CPU处理器详细介绍

手机双核CPU处理器详细介绍
手机双核CPU处理器详细介绍

手机双核CPU处理器详细介绍

转自:爱活

不少群众对小米手机那颗1.5GHz的双核心处理器是否具备世界第一性能表示好奇。为了帮助大家更好的理解市面上双核处理器的异同,以便作出自己的选择,我们撰写了下面的这些文字。本文将从多个角度带领大家对目前市场中的双核产品做一次较为全面的了解。

参赛选手亮相

首先,让我们来看看市面上有哪些双核心手机处理器。

提到双核,可能大家首先想到的就是nVIDIA的Tegra 2。作为业界新人,nVIDIA 必须要有一些别人不具备的优势,才能站稳脚跟,而nVIDIA选择的优势就是速度。Tegra 2是一款早在2010年1月就发布的双核手机处理器,为nVIDIA赚足了眼球,甚至俨然成了双核的代名词。

Tegra 2是nVIDIA在ARM SoC领域的第二款作品,由于第一款Tegra表现并不好,nVIDIA很早就开始设计Tegra 2,最终成为了移动消费领域第一款量产型双核ARM处理器,也正是靠这点,诸多厂家为了能赶在苹果之前推出双核产品,纷纷下单采购。因此大家便看到了今年年初MWC2011上双核设备的密集发布。这些双核机型成功从苹果手里抢走了“业界首款双核”的名头,直接导致苹果不得不在iPad2发布会上退而将A5 称为第一款量产的双核处理器——尽管大家都知道,当iPad2发布的时候,搭载Tegra 2的手机和平板已经开卖多时了。

Tegra 2的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,而且仅支持单通道内存。当然,随着现代手机对于多媒体功能,例如视频回放的需求,Tegra 2也引入了诸多格式最大1080p分辨率的硬件视频解码能力。

在nVIDIA宣布双核Tegra 2后仅仅一个月,另一家老牌半导体公司德州仪器也宣布了自己的OMAP4双核心平台,包含了OMAP4430、OMAP4460与2011年初发布的OMAP4470三个型号。与Tegra 2相同,OMAP4也搭载了Cortex A9 MP架构的双核心,缓存资料不详,而GPU采用的则是PowerVR SGX540(不包括OMAP4470在内,下面的介绍仅指4430/4460)。可能有些读者能看出,这颗GPU与单核时代的三星蜂鸟处理器是一样的,为此,德州仪器将这颗GPU的频率提升了50%,达到了300MHz,希望借此提升性能以拉开与单核处理器的差

距。

OMAP4系列均采用45nm工艺制造,OMAP4430设计频率为1GHz,OMAP4460则设置为1.5GHz,因此可以认为前者是针对手机平台设计的,而后者是针对平板机设计的。值得一提的是,与Tegra 2不同的是,OMAP4支持双通道内存,内部具备两个完全一样的内存控制器,这点在后面的文章中也可以看到。至于内存规格,OMAP4430最高至支持LPDDR2 1066,在频率上也要比Tegra 2高了几乎一倍。

另一家单核时代的主流供应商高通,则在2010年6月宣布了自家的双核产品规划,其中主频高达1.2GHz的MSM8x60是最吸引眼球的。这是第一款针对手机,且设计频率达到1.2GHz的双核处理器,但与之前两家不同的是,高通在自家双核处理器上并没有采用类似于Cortex A9 MP的核心,而继续采用了与其单核处理器类似的Scorpion内核。

MSM8x60的内存支持能力与OMAP4430处于同一水平既LPDDR2 1066,但是对于是否支持双通道内存我们不得而知。GPU依然是高通自有的Adreno系列,当然型号升级到了更高级的Adreno220,高通号称可以提供前一代两倍的性能。虽然高通不止一次提到自己将用28nm工艺生产ARM处理器,但MSM8x60采用的还是45nm工艺,一级缓存与Cortex A9一样,但二级缓存却只有512KB,比标准的Cortex A9 MP少了一半。多媒体支持级别与主流双核一样,也是1080p 级别的视频回放。

与这些厂家的积极表现不同,作为三巨头之一三星在双核方案上似乎显得有些低调,一直到2010年9月才发布自家的双核平台,即大家熟知的代号猎户座的双核心处理器,量产型号为Exynos 4210。作为一款最晚发布的产品,猎户座在规格上也是最高的,不仅CPU配备了设计频率同样高达1.2GHz的双核Cortex A9 MP,GPU也使用了ARM自行设计的Mali400多核心GPU,而且不仅整合的是最高端的4核心设计,还大幅提高了工作频率——三星官方宣称猎户座的3D填充率高达32亿像素每秒,这个数字要远远超过竞争。

视频解码是三星的传统优势,在猎户座身上这个优势依然得到了保持,对各种格式的硬件编解码都达到了1080p级别。至于内存,猎户座提供了独一无二的DDR3支持,这点是其它竞争对手所不具备的,而对于DDR2的支持也达到了最顶级的LPDDR2 1066,并且同样支持双通道。

为了方便对比,让我们来列一个表格:

好,这些就是即将上阵的选手了。下面我们会依次考量它们在诸多方面的表现,看看究竟哪个双核名副其实,哪个双核浪得虚名。

较量项目一:处理器核心架构

作为执行计算任务的最终单位,处理器核心本身的架构无疑是非常重要的一部分。从ARM11到Cortex A8,同样频率下性能的提升可以达到2~5倍,这无疑就是核心的优势。在这四款双核处理器中,Tegra 2、OMAP4430、Exynos 4210均采用了Cortex A9 MP内核,而MSM8x60采用的则是Scorpion MP核心,它们之间有什么差距?要解释这个问题,我们先要回头看看Cortex A8和Cortex A9的区别。

在单核时代,Cortex A8架构是绝对的主流。作为ARM官方设计的产品,虽然Cortex A8和Cortex A9都基于ARM v7指令集架构,但是它们之间依然有

很多的不同点,其中最重要,也是用户最能感觉到的,是一项叫做乱序执行的功能。虽然Cortex A8和Cortex A9都支持同时执行两条指令,但是只有Cortex A9支持乱序执行能力,这个功能究竟是什么意思?

我们知道,计算机程序,都是由一条一条的指令组成的。这些指令有很多种功能,有的是把数据从一个地方复制到另一个地方,有的是做数学运算,有的负责判断某一个条件,有的负责从一处跳转到另一处。编译器会把所程序员写出的程序编译成一条一条顺序的指令,就像电器的使用指南一样,让处理器遵照它去做。为了方便理解,我们假设一个程序的内容是做一份考试卷,执行的过程是先做完选择题,再做完问答题;做选择题的条件是要有铅笔去涂答题卡,而做问答题的条件则是要有钢笔去写答题纸。

如果你忘了带铅笔,那么为了完成考卷,就必须要等到邻座的做完了选择题,你找他借来铅笔,才能继续自己的考卷,这样就耽误了时间。对于一颗标准处理器而言,很多时候都会遇到这类“没有带铅笔”的情况,比如需要访问的数据在内存里,

这就需要处理器通知内存管理器,让内存管理器去把数据调入处理器,才能继续执行这一条指令。由于处理器内部的时钟延迟是纳秒级别,而内存的运行频率则有数十纳秒的延迟,两者之间差了许多倍,因此处理器一般需要消耗很长的等待时间,才能继续开始工作,最终的结果就是性能下降。

这时候,乱序执行就派上用场了。一个程序的指令都是有严格的逻辑顺序的,但是所谓的乱序执行,就可以打破这种原本的指令顺序,在逻辑允许的范围内以一种新的顺序去执行程序。如果继续用考试的例子,那就是这样:

虽然编译器生成的考试指南告诉你,要先做完选择题,再去做问答题,但懂得变通的人会在没有铅笔的时候先去做问答题,这样就节省了大量的时间。支持乱序执行的处理器也懂得这样去“变通”,在遇到需要等待的指令时,如果后面的指令并不需要等待这条指令的结果,那么就可以先跳过这条指令,去执行后面的

指令,大大节约等待时间,提升程序性能。当然,乱序执行并不是没有条件的,它要求被乱序的指令之间不存在严格的相关性。例如假设问答题里需要选择题的结果,那么你就不能跳过选择题去做问答题,只能老老实实去等邻座的铅笔了。

OOO能有效节约指令的执行时间

那么回头来看看Scorpion核心。这个核心是高通在单核时代设计出来的,虽然也是基于ARM v7指令集架构,但在具体设计上属于高通自己的实现,与Cortex A8相比有很多区别,其中最重要的就是高通为Scorpion核心引入了部分的乱序执行能力。所谓部分的,就是说在某些特定指令序列下,Scorpion可以实现乱序的效果,Cortex A8则不行。在单核时代正是由于这点,高通的处理器核心在很多测试中的表现都要稍好于Cortex A8,但是当双核时代来临后,大家都升级到了支持完整的乱序执行的Cortex A9核心,而高通则依然沿用老旧的Scorpion 核心,当年的优势就成为了现在的劣势。

不仅如此,在纯执行能力上,Scorpion面对Cortex A9也处于劣势。根据高通提供的数据,同样在1000MHz的频率下,Cortex A8的执行能力为2000DMIPS (可以简单认为是每1周期执行两条指令),Scorpion比它要高一些,为

2100DMIPS,但是Cortex A9则高达2500DMIPS,领先Scorpion接近20%。虽然高通试图通过超频20%的方式弥补这个差距,但是在单线程性能上,还是被

竞争对手甩开了不小的距离,毕竟乱序执行的能力在很多应用中可以获得的性能提升远远不是这200MHz的频率可以弥补的,而且更高的频率也会抵消Scorpion 核心在省电上的特点。这点在后面的测试里也可以看出来。

英特尔给出的CPU性能参考

当然,Scorpion核心也不是没有自己的优势。作为高通自行设计的核心实现,它在一些方面有着超出ARM官方Cortex A系列的地方,例如它的二级缓存是直接连在两颗CPU上,而不是通过AXI总线共享的,在带宽和延迟上有着自己的优势。但是整体而言,Scorpion作为上一代核心,在新一代Cortex A9双核的面前还是显得比较孱弱的。

最后,我们给这些处理器的核心架构作个评分(考虑到默认频率):

Tegra 2 ★★★★

OMAP4430 ★★★★

MSM8x60 ★★★

Exynos 4210 ★★★★★

较量项目二:处理器核心的协同作战能力

可能多处理器架构这个词对于不少读者而言都是很陌生的,很多人可能从来都没注意到过这方面的东西。所谓多处理器架构,就是说多颗处理器以何种模式共同运行,以怎样的方式合作执行程序。在PC领域,这个概念并不重要,因为大家看到的多处理器(多核心处理器也可以看作制作在一个芯片上的多处理器),在

逻辑架构上都是一样的,那就是同步多处理器,英文为Synchronous

Multi-Processors,缩写为SMP(不是对称多处理器的那个SMP)。但是在多处理器体系刚刚出现的阶段,曾经也有过很多不同的逻辑架构,而在目前的手机市场上就恰恰存在着不采用SMP架构的多处理器,那就是高通的MSM8x60。

与SMP不同,高通所采用的架构名为ASMP,即异步多处理器架构。所谓同步和异步,差距并不是简单的两个字,在具体实现上的区别非常大。但是在此我们并不需要了解它们之间学术上的区别,我们只从最粗略的角度来看一下这两种架构的工作方式。

电脑里的多核心处理器早已进化为全套SMP结构

所谓同步多处理器,顾名思义就是同步的,即多枚处理器运行在同样的时钟频率,共享同样的缓存数据,协同工作。简单来说,同步多处理器系统在工作的时候,每当一个任务完成后,空闲的处理器会立刻寻找下一个新的任务,对于外部而言,这两颗处理器是一个整体,共同完成同一个工作。

而异步多处理器则更接近于若干个独立工作的处理器,它们之间可以运行在不同的频率下,每个处理器维护自己私有的缓存数据,最重要的是,它们之间会利用一种仲裁机制,以轮流工作的方式执行任务。它们更像是一些互不干扰的独立处理器,各自完成各自的事情,轮流执行不同的工作。

看到这儿,相信大家也看出来了,同步和异步最大的区别就在于轮流工作这四个字。具体而言,就是在同一时间,只有一颗处理器可以接受任务,另一颗不论是否繁忙,都不能接受新任务。可能光靠文字说明还不是那么生动,下面我们就来看几张图,了解一下相对于同步多处理器“谁空闲谁接单“的工作模式而言,这种轮流工作到底是怎样进行的,又会导致怎样的结果。

图中每一横行代表一个时钟周期,我们用红色的方块代表正在读取任务,绿色的方块代表正在执行任务,方块中的数字代表不同的任务,而空白代表着空闲状态。在第一张图里,我们假设任何任务只需要一个周期就可以执行完毕。

可以看到,在每一个周期内,异步多处理器架构最多只能有一个核心接受任务,而如果两个处理器都空闲,就会有一个消极怠工。如图所示,执行四条指令,异步多处理器用了5个周期,同步多处理器用了4个周期,异步多处理器慢了25%。那么如果指令执行时间是两个周期呢?

当指令执行长度为2周期时,新问题就出现了。由于ASMP架构中,处理器1只能在奇数周期接受任务,处理器2只能在偶数周期接受任务,虽然ASMP 中的处理器1在第3个周期的时候结束了当前的任务,但随之而来的第4个周期却只有处理器2可以接受任务。因为处理器2此时正忙于上一个任务,因此对于外部程序而言,在第4个周期上处理器会处于不可用状态,等到第5个周期到来以后才能继续接受新任务。因此SMP架构只需要6个周期就能完成的任务,ASMP却消耗了8个周期,慢了33%。

这就是为什么ASMP目前采用的越来越少的缘故。虽然ASMP存在着设计简单、结构清晰、耗电较低的优势,但是由于性能不足,在PC领域从来都没有成为过主流。而在移动领域,高通认为手机对于耗电的要求要大于性能,又希望可以在双核时代继续沿用单核时代的核心架构而不需要彻底重新研发,因此采用了ASMP架构。但是事实证明,高通在这点上可能有些耍小聪明之嫌,因为既然消费者决定购买双核,那么就一定是冲着性能去的,并且对功耗也已经做好了心理

准备。

最近比较火热的小米手机就选用了高通MSM 8260芯片,不过它自称的“最快”还要打上一个问号

根据高通的官方数据,其1.2GHz的MSM8x60芯片组在满负荷工作的时候,仅处理器部分就要消耗大约1.2瓦特的功率,这相对于单核时代不到500毫瓦的功耗而言,也已经是非常高的数值了,这证明了不管怎么去省电,双核都依然是双核,既然如此,去追求双核应有的性能显然应该比如何去节省那么一点点的电更加重要。换一个方面说,性能足够强的话,系统可以以更短的时间完成任务,进而更多地进入低功耗的状态。高通通过ASMP也许节约了一定的耗电,但是其最大33%的性能损失会导致系统多出33%的时间处于高功耗状态,消耗的功率可能抵消甚至反超节约的,让高通的如意算盘打空。

回到话题上来,可能有些读者会认为,单独来看,可能ASMP和SMP的差距也并不是那么巨大,在之前图中的极限状况下也就相差33%而已,在实际运行中的差距很难达到这个数字。但是不要忘记,之前的文章中我们讨论过乱序执行的重要性,那么如果我们将指令等待也引入到之前的图中,那么会发生什么情况呢?在此,我们用灰色的方块代表需要等待的指令,而等待时间为两个周期。

可以看到,一旦引入指令等待,将乱序执行与多核架构结合起来以后,不支持乱序执行的ASMP架构(Scorpion@MSM8x60)需要10个周期才能完成的工作,支持乱序执行的SMP架构(Cortex A9 MP@其它主流双核方案)只需要6个周期,相对于支持乱序执行的SMP而言,不支持乱序执行的ASMP架构慢了66%。这就是MSM8x60面对其它双核Cortex A9的情况。虽然由于实际运行中指令的执行长度可能会更长,以至于减小轮流工作的影响,但由于Scorpion核心对乱序执行的支持并不完善,因此漫长的指令等待依然可能会导致高通的处理器浪费大量的时间,最终性能变慢。这点,我们也会在后续的测试中加以体现。

同样,让我们也来针对多处理器架构,给四款双核一个评分:

Tegra 2 ★★★★★

OMAP4430 ★★★★★

MSM8x60 ★★★★

Exynos 4210 ★★★★★

较量项目三:通讯总线

现代手机所采用的主芯片早已不能简单称之为处理器,而是一套复杂得多的系统,包含了处理器、显示加速芯片、内存控制器、视频解码核心、标准总线控制器等等,有些甚至还包含了数字信号处理器,它们被合起来称之为片上系统(SoC)。实际上一颗ARM SoC中,CPU所占据的硅片面积可能都不到总面积的二十分之一,而其中很大的一部分面积,都被各种各样的互联结构占用了。其实这也很好理解,片上系统就上一个大城市,如果交通不畅,整个城市的运行就会陷入瘫痪。在片上系统里有各种各样的总线,内部的、外部的,私有的、公用的。在这其中有一条最为重要的外部总线,连接着几乎所有的内部设备,那就是AXI。

总线在片上系统中有多重要,可以看下面的这张图:

可以看到,几乎所有的内部设备,都通过多层次、多区域的AXI互联接口进行沟通,更重要的是,内存控制器也是通过AXI连接到处理器,这就意味着不论你的内存颗粒或者内存控制器可以提供多大的带宽,处理器能够获得的带宽都直接且仅取决于总线带宽。因此这个总线的宽度,决定了整个系统内部最大的内存带宽,同时也在某些情况下决定了诸如3D GPU这些对内存带宽需求巨大的模块的性能。正如城市的发展需要高速交通一样,随着片上系统的复杂化,内部互联的带宽也要求越来越大。

数据总线相当于处理器内部的“高速公路”

由于总线方面的信息不属于一般用户所理解的范畴,因此厂家往往也不会对此做出详细的说明,所以每一款芯片究竟总线宽度多少也是不容易查证的。这点上nVIDIA相对而言做的最好,因为他们曾经直接把AXI总线位宽标在了网页上:32bit,类型为AMBA-3(这个参数在现在的网页上已经找不到了,原因未知)。这个数字是相当“惊悚”的,因为如果总线宽度真的是32bit,那么意味着Tegra 2的内部总线位宽只是ARM11级别的。因此nVIDIA在Tegra 2的内部,很可能采用了与标准ARM不同的总线配置方式,但是不论如何,Tegra 2的总线带宽都是难以置信的小,即便AXI频率达到300甚至400MHz,带宽最多也只能达到Cortex A8的水平。根据测试,Tegra 2的内存复制成绩大约只能达到1GB/s左右,这也基本符合其带宽的表现。

再来看看德州仪器的OMAP4430。与Tegra 2上的诸多猜测不同,德州仪器提供了OMAP4430的完整技术手册,因此各方面的资料非常容易获取。在OMAP4430中,互连结构分为若干级别和层次,但是就最主要的而言,是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的两个内存控制器在搭配LPDDR2 1066的时候可以提供的最大总带宽可以超过8GB/s,但由于总线带宽缘故,实际效果可能并不会有对应的提升,这也是ARM体系中一个比较头疼的问题之一。

言归正传,下面继续来看看MSM8x60。一直以来,高通对于自家芯片的技术资料都守口如瓶。这维护了高通的知识产权,但是却苦了笔者这样的人,因为根本无从查证芯片的详细参数,因此只能靠猜测了。一方面,MSM8x60基本上就是“双核版”的MSM8x55,另一方面在后续测试中也可以看出MSM8x60在内存方面的性能并不是很突出,因此在此笔者猜测MSM8x60的内部互联可能和单核时代一样,即64bit、200MHz,总带宽1.6GB/s。各位读者如果有详细的信息,也不妨告知。

最后我们来看看Exynos 4210。三星和高通在这个方面有一定的相似性,也不肯公开提供芯片的技术手册。但是我们在三星自己的Exynos 4210宣传资料中还是可以发现一些端倪的。

在图中可以明显看出Exynos 4210同样支持双通道内存(DRAMC0与DRAMC1),而在之前的关键技术列表中,三星赫然写出了内存带宽6.4GB/s的数字。由于Exynos 4210是一颗几乎全以ARM公司产品打造的芯片,因此这个数字就意味着Exynos 4210的内部总线宽度可能是惊人的256bit,只有这样才可以在200MHz 的频率下达到6.4GB/s的内存带宽。这个数字已经远远的甩开了单核Cortex A8、Tegra 2和MSM8x60,甚至比OMAP4430还要高出一倍,在双核时代的SoC中显然是傲视群雄的。

关于总线的研究就到此为止了,依然按照惯例,最后给一个分数:

Tegra 2 ★

OMAP4430 ★★★

MSM8x60 ★★

Exynos 4210 ★★★★★

较量项目四:多媒体

作为一台现代手机,多媒体功能是不可或缺的。早在15年前PC处理器巨头Intel 就高瞻远瞩,为大家带来了一款叫Pentium MMX的产品,其最大的特色就是引入了名为多媒体扩展(Multi Media eXtension,MMX)的扩展指令集。

何谓多媒体扩展指令集?由于原理复杂坚涩,小编就简单的打个比方:厂商们分析平时处理器干哪些事情最慢、又最经常用到,然后把这些最消耗时间的事情固化成电路,做成一个额外的部分,和处理器集成到一起。使用的时候,只通过一

条指令,就能够访问和计算多组数据,把最消耗时间的事情尽快做完。在计算机词汇里,这种指令集叫做SIMD(Single Instruction Multiple Data,单指令多数据)指令集。

大多数多媒体播放任务,使用SIMD技术都会带来更快的速度

回到手机上,在ARM的世界里,由于日益增长的多媒体计需求,也出现了属于ARM自己的多媒体扩展指令集,它的名字叫做NEON。它可以帮助处理器加速任何格式视频的编解码,帮助显示芯片加速矢量数据的解析和打包,也可以让系统可以更快的处理几百万像素的图片。它所能带来的性能提升根据应用的不同,可以从比较明显的50%,到难以置信的8000%。

长期以来NEON指令集都是各种高端ARM SoC的标配,从ARM11到Cortex A8,基本上所有高端SoC都包含了对应版本的NEON指令集。而在Cortex A9时代,它更是像是理所应当一样,作为一个基本而不可或缺的功能,出现在各大厂商最高端SoC的蓝图中。

在德州仪器的OMAP4430和三星的Exynos 4210中,每一个Cortex A9核心都拥有自己专属的NEON协处理器,拥有专用的32个64位寄存器,以多通道操作的方式,加速系统的多媒体计算性能。而在MSM8x60中,高通甚至把它的NEON 协处理器的位宽增加到了128bit,两倍于标准的ARM实现,让NEON协处理器可以一次性处理两倍的数据,带来更大的加速效果。

那么Tegra 2呢?令人感到意外的是,不知道出于何种原因或者考虑,Tegra 2没有搭配NEON协处理器。这对于一颗定位于顶级的双核SoC而言是十分不可理解的,因为NEON可以为几乎所有的多媒体过程提供明显的加速特性,而nVIDIA 却选择了放弃。可能有读者会说,Tegra 2有强大的显示芯片,不需要NEON的加速,但是不要忘记,显示芯片是不能完全独立处理所有的3D运算过程的,其中诸如数据解包和组合这种操作还是需要CPU来完成,由于没有NEON,处理器必须要花费几倍于对手的时间才能“喂饱”显示核心,最终的结果就是性能无法发

挥。

相关文档