手机双核知多少?四大主流双核CPU全比拼
回到话题上来,可能有些读者会认为,单独来看,可能ASMP和SMP的差距也并不是那么巨大,在之前图中的极限状况下也就相差33%而已,在实际运行中的差距很难达到这个数字。但是不要忘记,之前的文章中我们讨论过乱序执行的重要性,那么如果我们将指令等待也引入到之前的图中,那么会发生什么情况呢?
本文引用地址:https://www.eepw.com.cn/article/139451.htm在此,我们用灰色的方块代表需要等待的指令,而等待时间为两个周期。

异步多核心和同步多核心运行状况:带等待的指令
可以看到,一旦引入指令等待,将乱序执行与多核架构结合起来以后,不支持乱序执行的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连接到处理器,这就意味着不论你的内存颗粒或者内存控制器可以提供多大的带宽,处理器能够获得的带宽都直接且仅取决于总线带宽。因此这个总线的宽度,决定了整个系统内部最大的内存带宽,同时也在某些情况下决定了诸如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。各位读者如果有详细的信息,也不妨告知。
评论