手机双核知多少?四大主流双核CPU全比拼

本文引用地址:https://www.eepw.com.cn/article/139451.htm
在单核时代,Cortex A8架构是绝对的主流。作为ARM官方设计的产品,虽然Cortex A8和Cortex A9都基于ARM v7指令 集架构,但是它们之间依然有很多的不同点,其中最重要,也是用户最能感觉到的,是一项叫做乱序执行的功能。虽然Cortex A8和Cortex A9都支持同时执行两条指令,但是只有Cortex A9支持乱序执行能力,这个功能究竟是什么意思?
我们知道,计算机程序,都是由一条一条的指令组成的。这些指令有很多种功能,有的是把数据从一个地方复制到另一个地方,有的是做数学运算,有的负责判断某一个条件,有的负责从一处跳转到另一处。编译器会把所程序员写出的程序编译成一条一条顺序的指令,就像电器的使用指南一样,让处理器遵照它去做。为了方便理解,我们假设一个程序的内容是做一份考试卷,执行的过程是先做完选择题,再做完问答题;做选择题的条件是要有铅笔去涂答题卡,而做问答题的条件则是要有钢笔去写答题纸。

如果你忘了带铅笔,那么为了完成考卷,就必须要等到邻座的做完了选择题,你找他借来铅笔,才能继续自己的考卷,这样就耽误了时间。对于一颗标准处理器而言,很多时候都会遇到这类“没有带铅笔”的情况,比如需要访问的数据在内存里,这就需要处理器通知内存管理器,让内存管理器去把数据调入处理器,才能继续执行这一条指令。由于处理器内部的时钟延迟是纳秒级别,而内存的运行频率则有数十纳秒的延迟,两者之间差了许多倍,因此处理器一般需要消耗很长的等待时间,才能继续开始工作,最终的结果就是性能下降。
这时候,乱序执行就派上用场了。一个程序的指令都是有严格的逻辑顺序的,但是所谓的乱序执行,就可以打破这种原本的指令顺序,在逻辑允许的范围内以一种新的顺序去执行程序。如果继续用考试的例子,那就是这样:

虽然编译器生成的考试指南告诉你,要先做完选择题,再去做问答题,但懂得变通的人会在没有铅笔的时候先去做问答题,这样就节省了大量的时间。支持乱序执行的处理器也懂得这样去“变通”,在遇到需要等待的指令时,如果后面的指令并不需要等待这条指令的结果,那么就可以先跳过这条指令,去执行后面的指令,大大节约等待时间,提升程序性能。当然,乱序执行并不是没有条件的,它要求被乱序的指令之间不存在严格的相关性。例如假设问答题里需要选择题的结果, 那么你就不能跳过选择题去做问答题,只能老老实实去等邻座的铅笔了。

乱序执行能有效节省时间
那么回头来看看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核心在省电上的特点。这点在后面的测试里也可以看出来。
当然,Scorpion核心也不是没有自己的优势。作为高通自行设计的核心实现,它在一些方面有着超出ARM官方Cortex A系列的地方,例如它的二级缓存是直接连在两颗CPU上,而不是通过AXI总线共享的,在带宽和延迟上有着自己的优势。但是整体而言,Scorpion作为上一代核心,在新一代Cortex A9双核的面前还是显得比较孱弱的。
最后,我们给这些处理器的核心架构作个评分(考虑到默认频率):
Tegra 2 ★★★★
OMAP4430 ★★★★
MSM8x60 ★★★
Exynos 4210 ★★★★★
较量项目二:处理器核心的协同作战能力
评论