1.一些背景介绍1.1ARM核心ARM核心是主控SOC中的重要部分,系统的日常应用都由ARM核心来完成,因此ARM核心的效能很大程度上跟用户体验有关。ARM公司一般用DMIPS/MHz来标称ARM核心的性能。DMIPS是DhrystoneMillionInstructionsexecutedPerSecond的缩写,反映核心的整数计算能力。但Dhrystone算法代码本身比较叫,可以完全放到Cache中执行,因此反映的只是核心能力,并不能反映缓存、内存I/O性能。SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上。能支持智能系统的ARM核心有以下几类:ARM9:指令集ARMv5,5级流水线,1.1DMIPS/MHzARM10E:指令集ARMv5,intel获得授权后发展的,如PXA270,PXA210系列,6/7级流水线,1.35DMIPS/MHzARM11:指令集ARMv6,8级流水线,1.25DMIPS/MHzCortex-A8:指令集ARMv7-A,13级整数流水线,超标量双发射,2.0DMIPS/MHz,标配Neon,不支持多核Scorpion:指令集ARMv7-A,高通获得指令集授权后在A8的基础上设计的。13级整数流水线,超标量双发射,部分乱序执行,2.1DMIPS/MHz,标配Neon,支持多核Cortex-A9:指令集ARMv7-A,8级整数流水线,超标量双发射,乱序执行,2.5DMIPS/MHz,可选配Neon/VFPv3,支持多核Cortex-A5:指令集ARMv7-A,8级整数流水线,1.57DMIPS/MHz,可选配Neon/VFPv3,支持多核Cortex-A15:指令集ARMv7-A,超标量,乱序执行,可选配Neon/VFPv4,支持多核×目前只有指令集ARMv7-A的核心才能在Android2.2上支持AdobeFlash。×Neon是什么?Neon是ARM核心附带的浮点SIMD引擎,可以把它当一个DSP用,可以把它理解为桌面CPU上的SSE,SSE2。合理的利用可以增强处理器在游戏、多媒体中的表现,当然需要软件支持。标准的Neon宽度是64bit。A9的Neon相对A8略有升级。如果不使用Neon,就只能有CPU自带的VFP进行浮点运算。标准A8的VFP没有管线化,速度是比较低的。A9的VFP管线化后,效能有明显提升,但还是不如Neon。×超标量:A8A9A15都是超标量结构,他们具有两条流水线,一个周期可以发射最多两条指令进行执行。因此同频效能比ARM9ARM11等高的多。×Cortex-A5是Cortex-A家族中的小弟,功耗较低,单位功耗的效能很高,用于代替ARM9和ARM11占据低端市场。Cortex-A15是最新发布的,作为高端产品出现,目前资料不多。×Scropion是高通根据Cortex-A8修改的。关键的特点是同频下比A8节能30%,或者同功耗的频率高25%。Scorpion具有部分A9的特性,如乱序执行,管线化的VFP,支持多核。此外,Scorpion的NeonSIMD引擎(高通称之为VeNum)宽度为128bit,是A8和A9的两倍,能提供更强劲的浮点运算支持,并且在不需要的时候可以关闭一半变成64bit以节省能源。总体上,Scorpion是具有部分A9特性的A8,高频率节能浮点加强版。1.2工艺与频率、功耗这三者是密切相关的,当然频率与SOC的后端设计也有很大关系。根据参考文献,45nm工艺可以比65nm节省30%的能耗。45nmScorpion在1.0GHz、1.2GHz和1.5GHz下的典型功耗是350mW、420mW和650mW,其中1.5GHz下已经需要加压,功耗上升更多。根据以上信息我们可以推测出Cortex-A8虽然性能强劲,但不是省油的灯。于是新一代mid主控在45nm、55nm下动辄1.2GHz的主频,能耗有点让人担心。当然,如果采用的GP工艺,可能会好些。同样制程的工艺,可以分为LP和GP。LP是LowPower,降低漏电,使得芯片在闲置状态下的能耗最低。GP是GeneralPurpose,可以在相同的满载能耗下达到比LP更高的频率,但是闲置状态下功耗高。国际大厂用于手机的SOC一般都采用LP工艺,以降低待机功耗,毕竟手机大部分时间都在待机。1.3视频的“硬解”与“软解”在Android下,个人认为硬解就是通过芯片自带的加速器进行解码,无论用的是DSP还是硬布线的解码器。软解就是通过软件使用ARM核心进行解码,ARM作为一个通用核心做视频解码,自然效能不会太高,并且依赖软件的算法,一般普遍使用的就是FFMPEG对ARM进行优化,调用neon等。不过就我个人的使用经验而言,1GHz的Cortex-A8处理器,使用rockplayer,vplayer等基于FFMPEG的软件解码,只能勉强解码480p的视频。对于848×480,24分钟100M左右的RMVB视频,大部分时间都无法达...