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