从小米想到的异步双核

By | 2012年3月15日

  应该也算是个偶然的机会,在查看MSM8260的规格的时候不经意发现了这款处理器是异步双核,有1.2G和1.5G两个版本(其实说1.5G是超频版更好)。其实小米所宣称的比其他手机快多少多少还是让我印象挺深刻的,回过头来想一想也许不是那么回事。

  这款MSM8260应该算是A8架构的产物,高通管他叫Scorpion。这边引入一段注释来介绍一下A8和A9:

  • Cortex-A8:指令集ARMv7-A,13级整数流水线,超标量双发射,2.0DMIPS/MHz,标配Neon,不支持多核
  • Cortex-A9:指令集ARMv7-A,8级整数流水线,超标量双发射,乱序执行,2.5DMIPS/MHz,可选配Neon/VFPv3,支持多核

  对,A8架构原本是不支持双核的,不过高通在把授权买过来之后,做了些修改就成了现在的Scorpion双核。相较于A8而言支持双核和部分乱序,13级整数流水线。

  再来说同步和异步的区别,所谓同步多处理器即多枚处理器运行在同样的时钟频率,共享同样的缓存数据,协同工作。目前X86平台均为同步处理器。而异步多处理器则更接近于若干个独立工作的处理器,它们之间可以运行在不同的频率下,每个处理器维护自己私有的缓存数据,以轮流工作的方式执行任务。同步和异步的最大区别,就在于异步同时只能有一个处理器能接受新任务。

  这边有两个很通俗易懂的图例,图中每一横行代表一个时钟周期,我们用红色的方块代表正在读取任务,绿色的方块代表正在执行任务,方块中的数字代表不同的任务,而空白代表着空闲状态。在第一张图里,我们假设任何任务只需要一个周期就可以执行完毕。(ASMP代表异步双核,SMP代表同步双核)

  显而易见的,在此种情况下ASMP相较SMP要慢25%。

  再来看第二种情况,此时假设每个任务需要2个周期执行

  在此种假设状态,ASMP需要8个周期才能完成,比SMP要慢33%。

  高通花了A8的钱,弄出了ASMP的双核,却把问题抛给了消费者。虽然高通宣称同频下Scropion较A8省电30%,但由于ASMP的本质却需要花更长的时间停留在高功率状态才能完成计算。这样下来,是不是省电还真的难说。再加上Scropion的乱序执行并不像A9那样完善,更进一步的影响到手机的续航能力。

  说到这里,Scropion更像是当年的胶水双核。无论是性能还是功耗,高通都有所妥协。MSM8260不仅仅为小米所用,也大量出现在HTC的新机当中。至少在面对竞争对手的时候,性价比是能够胜出的。

  文章并非要批评MSM8260,一款产品能够批量生产自然是有他的长处的,不过需要纠结性能的话,也许A9架构的猎户座才是明智的选择。

附上民间测试一篇:http://tieba.baidu.com/p/1405487658    8260多次垫底的事实也许能够说明点什么

2 thoughts on “从小米想到的异步双核

发表评论

电子邮件地址不会被公开。 必填项已用*标注