似乎人们已经习惯了WWDC 09能带来惊喜的惯例,今年WWDC 09虽然乔布斯很不争气的再次缺席苹果所召开的大会。Phil Schiller却不负众望揭开了
第三代iPhone G S神秘面纱——苹果公司推出iPhone手机两年后第一次硬件重大升级。而号称第二代iPhone 3G则只是在第一代iPhone基础之上增加了3G网络功能,基础核心硬件几乎没有任何改良或变换。

毋庸置疑,iPhone凭借自身众多优势让其在全球智能手机市场占有率节节攀升。但吃老本总是有个度,如果一味依靠老本与众多后起之秀竞争的话,吃亏那是肯定的。特别是被寄予厚望的Palm Pre已在全球上市,Palm Pre所采用的
TI OMAP 3430(Cortex A8 CPU + PowerVR SGX 530 GPU)硬件性能指标大大超越iPhone。因此,iPhone 3G硬件革新势在必行。好在苹果也及时认识到了问题的严重性,iPhone 3G S便是认知下的产物——iPhone 3G S有着2倍于iPhone 3G的运行速度。
追本溯源iPhone 3G硬件规格


iPhone/iPhone 3G CPU选用了嵌入式领域使用较为普遍的ARM 11处理器,一颗节能模式下运行在412MHz,全速运行在667MHz下的ARM1176JZF-s。ARM11由Fetch1、Fetch2、Decode、Issue、Shift/MAC1(转换/MAC1)、Execute/MAC2(执行/MAC2)、Memory/MAC(内存访问/MAC3)和Write 这8级流水线组成。集成32KB一级缓存(16KB指令缓存和16KB数据缓存),但不带二级缓存单元。ARM11使用了先进的ARMv6指令集,该指令集可以进一步增强多媒体和数字处理能力、增强的代码密度。ARM11的执行单元包含一个64位、4种状态的地址转换缓冲,它主要用来存储最近使用过的转换位址。当采用动态转换预测机制而无法在地址缓冲内找到正确的地址时,静态转换预测功能就会立刻接替它的位置。在实际测试中,单纯采用动态预测的准确率为88%,单纯采用静态预测机制的准确率只有77%,而ARM11的静/动态预测组合机制可实现92%的高准确率。如果您看到这些内容感觉相当抽象的话,那么就把iPhone/iPhone 3G中所使用的ARM11简单理解成486处理器性能就行了。由于ARM11引入一项名为IEM(Intelligent Energy Manager)的智能电源管理技术,使得ARM11常规应用下功耗仅有10mW,在空闲模式下功耗数字还会更低。与此相比,您现在所使用的CPU功耗最少也在10~35W之间。

当然,iPhone/iPhone 3G仅有ARM11根本无法完成诸如
《命令与征服》、
《极品飞车》这类画质超炫的游戏。相应的GPU必不可少,iPhone/iPhone 3G便使用了PowerVR MBX-Lite与ARM11搭配工作。与ARM11一样,PowerVR MBX-Lite采用了90nm工艺制程。该款GPU支持硬件多边形转换与光源处理,但是从现阶段来性能看相当低级,仅相当于DirectX 6/7水平(Riva TNT2/GeForce 256)。值得一提的是,PowerVR MBX-Lite与PowerVR MBX基于相同的硬件架构,不过PowerVR MBX-Lite却在基础架构之上进行优化,具有更高效的执行效率。虽然我们没有iPhone/iPhone 3G手机中PowerVR MBX-Lite确切的工作频率,但我们猜测大概在60MHz左右。
486,1989年产物;3dfx Voodoo显卡,1996年产物。不过正是这两种相对过失的东西在SoC“包装”下出现在iPhone/iPhone 3G还引得消费者竞相追逐。正如前文所说,苹果不能停歇不前,升级硬件与时俱进才是不断吸血之法。
ARM Cortex A8助iPhone 3G S一臂之力

显然iPhone 3G S不是第一个吃螃蟹的人,早在iPhone 3G S发布的前一周的Palm Pre也同样适用了ARM Cortex A8处理器。与Palm Pre类似,苹果也使用了ARM Cortex A8 + PowerVR SGX组合来替换老掉牙的ARM11加PowerVR MBX-Lite。如此一来,iPhone 3G S性能将会大大超越iPhone/iPhone 3G。

如果说ARM11性能相当于一颗486处理器的话,那么ARM Cortex A8则相当于一颗Pentium处理器。ARM Cortex A8流水线级数由之前ARM11的8级提升到了13级,此外,执行模式也升级成为2-issue。何为2-issue?简单地说,2-Issue就是在同一时间向流水线送入两条指令进行处理,从而提高处理器的指令处理效率。不过,ARM Cortex A8仍旧属于In-Order执行模式。对传统的In-order构架来说,高延时指令操作所造成的后果是非常严重的。比如,当一个依赖数据操作的指令在已经开始执行之后,才发现其所要操作的数据恰恰又没有在缓存当中,那么整个执行单元都会空闲下来以等待相应数据从内存中调入到执行单元。然而不幸的是,从内存中将数据调入到执行单元这一操作往往要耗费超过一百个时钟周期!这也就意味着在这一百多个时钟周期内,执行单元什么事情都没做但同时却消耗着同样的资源。形成这一事实的主要原因最有可能便是考虑到功耗,因为Out-of-Order构架功耗一般来说会高于In-order。英特尔ATOM与ARM Cortex A8一样采用了In-order架构,不过英特尔为ATOM设计了一套安全指令识别技术(SIR,Safe Instruction Recognition)技术来平衡效率与功耗之间的矛盾。至于ARM Cortex A8是否也有类似的技术,目前还不得而知。

不仅如此,ARM Cortex A8在ARM11架构基础的向量浮点运算单元基础之上添加了高级SIMD引擎和双精度浮点寄存器。这两个功能部件的引入,使得ARM Cortex A8在架构形态方面与Pentium/ATOM更加接近。此外,ARM Cortex A8集成缓存方面不仅把一级缓存容量从原有16KB提升至32KB(16KB指令缓存和16KB数据缓存),还增加了ARM11不具备的256KB大小二级缓存。
|
iPhone 3G (ARM11) |
iPhone 3GS (ARM Cortex A8) |
| Manufacturing Process |
90nm |
65nm |
| Architecture |
In-Order |
In-Order |
| Issue Width |
1-issue |
2-issue |
| Pipeline Depth |
8-stage |
13-stage |
| Clock Speed |
412MHz |
600MHz |
| L1 Cache Size |
16KB I-Cache + 16KB D-Cache |
32KB I-Cache + 32KB D-Cache |
| L2 Cache Size |
N/A |
256KB |
处理器工作频率的提升、缓存容量的加大和2-issue引入,性能不提升真的是件很难的事情。所以,iPhone 3G S标称的性能达到了iPhone/iPhone 3G 2倍成绩是有据可依的。不过,对于针对手持设备设计的处理器来说,功耗成绩是一项远比性能更为重要的考核指标。虽然ARM Cortex A8工艺制程从ARM11所使用的90nm升级至65nm,但工艺制程所降低的功耗不能抵消由于性能方面的改良所新增的功耗。根据ARM官方资料显示,ARM11处理器每MHz 0.25mW功耗来看,ARM Cortex A8则应该在0.59mW左右。换句话说,ARM Cortex A8功耗可能是ARM11的3倍左右。苹果又如何来解决电池寿命问题呢?苹果肯定不能坐视不管。左思右想,我们猜测ARM Cortex A8可能采用类似于英特尔早在2000年IDF提出的一项名为Quick Start技术——通过此项技术使得ARM Cortex A8峰值功耗高于ARM11,但总体平均功耗却可以低于ARM11。
PowerVR SGX,打破iTunes统一架构
如果您是位PC硬件玩家的话,历史上Imagination Technologies和PowerVR这两个名词您一定不会感到陌生。遗憾的是,随着NVIDIA和ATI日益壮大,PowerVR也渐渐淡出了人们视野。不过,PowerVR凭借着低功耗特性在iPhone智能手机中卷土重来。而PowerVR SGX则是Imagination Technologies基于PowerVR架构的第五代产品。同样,PowerVR SGX具备PowerVR架构引以为豪的Tile Based Rendering(图块式裁切绘画)技术,通过此项技术能够在绘制3D场景的时候能够节约宝贵的带宽。为了便于爱活客们更加清楚了解图块式裁切绘画技术,下面我们再利用一段内容简单的描述一下此项技术。
3D场景中由于多个物体的存在,势必会出现相互重叠相互遮掩的情况。一旦出现这类情况,呈现在我们显示器的画面我们是无法看到被掩盖在背后的事物。但是,如果图形处理芯片没有相应技术优化的话是无法判断哪些是隐藏部分,于是不假思索的执行多边形填充像素。为了读取Z-Buffer以及材质数据,需要经常对显存空间范围,也因此耗掉了不少带宽。而PowerVR架构由于Tile Based Rendering设计,会首先检查在一个3D场景中哪些多边形需要被填充,哪些多边形不用去管。

值得一提的是,iPhone/iPhone 3G所采用的PowerVR MBX-Lite同样具有Tile Based Rendering技术,只不过PowerVR SGX更加出色而已。
基于65nm工艺制程的PowerVR SGX同现在大多数DirectX8/DirectX9一样,是一款可编程体系架构。不过,PowerVR MBX-Lite基于OpenGL ES 1.1标准而PowerVR SGX支持OpenGL 2.0标准,使得其整体架构更像是一款现代GPU。OpenGL ES 2.0补充和修改了原有的OpenGL ES 1.1标准着色器语言及API,主要体现在更强大的可编程性、OpenGL Shader编程语言的支持和引入新型纹理压缩技术三方面。如此一来,广泛的3D特性让OpenGL ES 2.0拥有更强大的图形渲染加速能力,进一步减轻了处理器的工作负担,这在某种程度上能起到降低系统总功耗的目的。此外,OpenGL ES 2.0未能对之前的OpenGL ES 1.X保持良好的兼容,这也引出了我们对iTunes分家的猜测。

再回到PowerVR SGX图形处理芯片本身,PowerVR SGX使用了一项名为USSE(Universal Scalable Shader Engine)引擎。据悉,PowerVR SGX 520具备了一套USSE引擎流水线,而高端版本的PowerVR SGX 543MP16则具备64条USSE2引擎流水线。我们有理由相信,iPhone 3G S处于功耗等方面的考虑肯定会首选最低端的PowerVR SGX 520这种芯片。就USSE引擎流水线来说,一个时钟周期能够处理2条矢量运算或者2-Way/4-Way SIMD运算;而USSE引擎流水线则能够在一个时钟周期处理3/4矢量运算或者更宽的SIMD操作。
|
iPhone 3G (PowerVR MBX-Lite) |
PowerVR SGX @ 100MHz |
PowerVR SGX @ 200MHz |
| Manufacturing Process |
90nm |
65nm |
65nm |
| Clock Speed |
~60MHz |
100MHz |
200MHz |
| Triangles/sec |
1M |
3.5M |
7M |
| Pixels/sec |
100M |
125M |
250M |
根据PowerVR相关参数,我们可以大致计算出iPhone 3G S所使用的PowerVR SGX 520图形处理芯片工作在200MHz的性能参数——7M/s三角形填充率和250M像素填充率。仅从这两项关键性性能指标来看,iPhone 3G S图形处理能力就分别达到了iPhone/iPhone 3G的7倍和2.5倍。即便让PowerVR SGX 520工作在100MHz工作频率下,性能也能达到3.5倍和1.25倍。