iPhone 5纯硬件评测:给你想要的一切

iPhone 5发布这么久了,相关的主流评价、跑分测试已经数不胜数,而权威硬件评测网站AnandTech近日奉上由创始人兼老大Anand Lal Shimpi,以及另外两位业内权威Brian Klug、Vivek Gowri合著的一篇巨作,从纯粹硬件的角度对iPhone 5进行了极为细致的考察。

CPU架构与性能、GPU性能、功耗、电池续航、屏幕、摄像头、视频、4G LTE数据网络、GPS定位、Wi-Fi无线、扬声器……无论你关注iPhone 5的哪一点,都可以在这里找到答案,特别是对苹果首次自主设计的CPU架构进行了深度的技术挖掘,功耗和续航做了全面的对比测试,屏幕和摄像头都有非常专业的考察,4G LTE网络同样有实地检验,扬声器的测试更是百年难得一见。

总之我敢担保,在这个地球上你绝对找不到更详尽的iPhone 5技术型评测了。

iPhone 5纯硬件评测:给你想要的一切

iPhone 5纯硬件评测:给你想要的一切
这里边藏着一个小秘密,猜猜看?

【苹果的SoC处理器之路】

对于计算设备而言,中央处理器无疑是最为重要的零部件。早期的时候,苹果基本上完全依赖三星去设计和制造处理器,而三星也不傻,在倾听、满足苹果的同时也把经验用在了自家处理器和智能手机上,然后和苹果对着干。

苹果显然不喜欢这样,于是乔布斯召集了CPU、GPU行业的顶级人才,开始走自主之路,掌握核心科技。iPhone 4、iPad上使用的A4是苹果第一个自己命名的SoC处理器,不过内部的CPU、GPU技术授权还是来自ARM、Imagination,分别是Cortex-A8、PowerVR SGX535,而且仍旧由三星代工制造(到现在也是)。

后来的A5升级到了Cortex-A9、PowerVR SGX543MP2,并且经历了一次制造工艺的升级。第三代iPad里的增强版A5X则将GPU核心数量翻番为四个,也就是PowerVR SGX543MP4,而因为工艺仍是45nm,核心面积相当“庞大”,达到了163平方毫米。

iPhone 5 A6则可能是苹果历史上具有转折意义的处理器。一方面,它还在用ARM ARMv7指令集、Imagination PowerVR SGX 543MP3图形核心,但是CPU内核第一次是苹果自己设计的(后文细述);另一方面,它是苹果第二次采用三星32nm LP HKMG工艺代工,面积比A5还要小,但明年可能就会转向台积电,彻底完成去三星化。

iPhone 5纯硬件评测:给你想要的一切
苹果处理器进化史

A6虽然比A5X小了很多,甚至比A5还小,但对于移动SoC处理器而言仍然有些偏大。97平方毫米的它不仅大于Tegra 3/2,甚至已经超过了GT1图形核心的Intel Ivy Bridge双核心型号,而后者可是要卖100多美元的。

但是我们还不好说移动SoC处理器核心面积的“甜点”到底是多少,120平方毫米?反正200平方毫米肯定不行。

iPhone 5纯硬件评测:给你想要的一切
苹果处理器核心面积对比

iPhone 5纯硬件评测:给你想要的一切
苹果处理器与Intel、NVIDIA Tegra横向对比

通过观察内核照片,我们可以清晰地看到A6内部的两个CPU核心、三个GPU核心、两组32-bit LPDDR2内存控制器,以及其它一些模块。

iPhone 5纯硬件评测:给你想要的一切
A6内核照片(Chipworks)

iPhone 5纯硬件评测:给你想要的一切
A6内核照片(Chipworks)

iPhone 5纯硬件评测:给你想要的一切
A6内核照片(UBM Tech Insights)

iPhone 5纯硬件评测:给你想要的一切
从A4到A6

Chipworks第一个指出,苹果自行设计的CPU内核看起来主要是手工布局的,而不是使用自动化工具。这种做法并不罕见(Intel就一直是这么干的AMD以前也是),但对ARM SoC来说却不常见。iPhone 5发布后我们很快就确认,A6 SoC的确第一次使用了苹果自己设计的CPU核心。

ARM的授权有两种类型,其中处理器授权允许你直接拿过来ARM设计的CPU核心,放到自己的SoC里,苹果A4/A5/A5X都是如此,而架构授权让你可以使用ARM的指令集自己设计CPU核心,高通、Marvell就一直是这么做的,现在苹果也加入了他们的行列。

iPhone 5纯硬件评测:给你想要的一切
典型自动布局与手动布局对比

【Swift:苹果自主设计揭密】

研究苹果的硬件总是让人十分头疼,因为苹果从来不喜欢公开硬件规格,哪怕是粗略的参数,也不会公布任何技术白皮书,甚至,你知道苹果自己设计的CPU内核叫什么吗?

如果你仔细看文章开头的表格,应该已经发现答案了:“Swift”(敏捷的)。这个成果一方面要感谢有心读者的爆料,还有对iOS 6系统代码的挖掘和研究,一般人还真不知道。

然后,频率是多少?这个倒不算太难,iPhone 5发布没多久我们就确定了其主频为1.3GHz,大大高于A5 800MHz,但并没有其它厂商动辄1.5GHz乃至2GHz的疯狂。在频率提升62.5%的情况下,苹果宣称性能进步是2x,这显然证明Swift是在A9架构上做了优化和增强的。

Chipworks估计,A6 Swift CPU核心的面积要比A5 Cortex-A9大了50%左右,如图:

iPhone 5纯硬件评测:给你想要的一切
两个Swift核心

iPhone 5纯硬件评测:给你想要的一切
两个A9核心

一级和二级缓存容量都没变,所以可以很清楚地看到CPU核心的增大。

但由于Swift可能使用了新架构,而且频率比上一代高很多,所以要对比它和Cortex-A9的底层计算性能变化并不容易,我们只好假定性能随频率线性变化,从而把800MHz A5的性能数据乘以1.625(1300/800),得到Cortex-A9 1.3GHz下的假想性能。这种做法当然不精确,但相信也不会差得很离谱。

iPhone 5纯硬件评测:给你想要的一切

Geekbench 2整数性能对比,平均提升了37.2%,而且每个项目的幅度都不小,也比较均衡。

Cortex-A9有两个整数ALU单元,苹果Swift或许增加了第三个,或者3宽度前端可以更好地利用已有两个单元,但这两种可能性似乎都不是很大。如果不是并行处理的数据更多了,那就是执行单元可以更快地处理数据。

iPhone 5纯硬件评测:给你想要的一切

Geekbench 2浮点性能对比,平均提升了61.6%,但是分布不均,最高的超过了1.2倍,最低的则仅有7.6%。这或许与内存访问有关,毕竟A6的内存性能进步了很多,而这也能解释整数性能的提升:数据缓存访问延迟也随着内存性能的提升而大大缩短了。

另外,Cortex-A9只有一个浮点操作发射端口,严重束缚浮点性能,Swift会不会做了改变呢?

【Swift:定制代码解读定制核心】

为了深刻理解Swift,Anand Shimpi同学决定自己写代码(他爹是计算机科学教授),并求助于北卡罗来纳州大学的天才移动开发者Nirdhar Khazanie,将其C语言代码转换成了一个iPhone应用,还得到了一个可以设定指令和数据集大小的框架,一切就简单了。

为了验证Swift是否有第三个整数ALU单元,首先设置一个独立的整数加法循环,所有变量均彼此无关,可以最大程度地并行化,然后在iPhone 4S/5上算它几百万次。

iPhone 5纯硬件评测:给你想要的一切

结果同频下Swift只快了不到10%,平均延迟也只缩短了两个时钟周期,这就可以排除第三个整数ALU单元的存在了。

结合苹果自己的文档可以进一步证实,Swift只有两个整数ALU单元,每时钟周期可以执行三个操作,暗示解码器也是3宽度的,但不清楚性能提升是否与此有关。

再看浮点方面,将之前的代码改成单精度和双精度浮点加法就行了。

iPhone 5纯硬件评测:给你想要的一切

单精度的反而有所倒退,证明从800MHz到1.3GHz不可能完美线性提升,而在双精度下,Cortex-A9变慢了,Swift却加快了1.2倍,自然差距极大。这说明,苹果极有可能增加了第二个浮点单元,来改进FMA或者双精度浮点性能,也可能是所用代码可以利用218-bit NEON。

自己写的代码毕竟不可能完全靠谱,所以还得看看标准测试工具的。首先是大名鼎鼎Linpack的iOS移植版,对比性能和问题大小(problem size):

iPhone 5纯硬件评测:给你想要的一切

虽然曲线不是特别平滑,但很明显,Swift的浮点性能优势非常大,即便是问题大小很小的时候,这证实了有关第二个浮点发射端口的猜测。

再对比800MHz原始频率的iPhone 4S:

iPhone 5纯硬件评测:给你想要的一切

A6在问题大小变大的时候性能损失显然更小,证明Swift可以更好地对付内存延迟,并发浮点和内存操作都很棒。

最后是iOS下另一个常用的基准测试Passmark:

iPhone 5纯硬件评测:给你想要的一切

五个项目都有了大幅度的提升,其中整数47%、浮点118%、质数109%、qsort字符串22.8%、加密51%、压缩17.9%。

【Swift:高级架构、流水线深度、内存延迟】

根据之前的发现,以及其它一些资料,Swift的高级架构应该是这个样子。虽然只是象征性的,不同单元的分布位置谁也不清楚,但总体应该差不了多少。

iPhone 5纯硬件评测:给你想要的一切

对比Cortex-A9:

iPhone 5纯硬件评测:给你想要的一切

Swift的前端从2宽度升级为3宽度,仍旧是个相对很小的乱序核心,但执行端口从3个增加到5个。注意专用的载入与存储单元,可能是浮点性能骤增的原因之一。

我们知道,高通Krait也是人家自己设计的CPU核心,但高通不肯公布任何具体资料。它也是类似的3宽度前端,但是7个执行单元只有4个端口,不过具体分布就不知道了。Intel Haswell发布前九个月就敢公开整数和浮点寄存器文件,高通的都出货半年了却连高级架构都不肯透露一点!

iPhone 5纯硬件评测:给你想要的一切

Cortex-A15的前端也是3宽度,号称拾取带宽比Cortex-A9翻番,还可以乱序执行更多类型的指令,并使用3个独立的发射池(issue pool)来满足8个独立的流水线,包括载入与存储、两个整数ALU、两个浮点/NEON、一个分支、一个乘除法。

Swift比它肯定要差多了,更可能和Krait处在类似的水平上。

iPhone 5纯硬件评测:给你想要的一切

流水线深度方面,Cortex-A8是13级,Cortex-A9精简为8级但频率基本不变(所以性能更突出),Cortex-A15则又加深到15级,高通Krait定制的是11级,顺便说Intel Atom拥有最深的16级。

Swift是多少呢?Anand Shimpi又写了两种不同的代码路径,分别有简单可预测的分支和复杂难预测的分支,最后以主代码循环的时钟周期衡量延迟。

iPhone 5纯硬件评测:给你想要的一切

无论简单还是复杂预测,Swift都和Cortex-A8差不多,但是要比Cortex-A9长很多,证明Swift的预测错误要比Cortex-A9多了大约50%,但是和Cortex-A8基本一致,复杂的稍多一点。据此猜测,Swift的流水线可能是12级的,跟高通Krait很接近。

但是尽管流水线深度加大了,苹果依然保住了IPC,从前边的Geekbench 2对比数据就可以看出来。应该是分支预测精度有了大幅度的改进,这也是加深流水线深度的时候芯片设计师必须注意的问题。苹果做得很好。

最后是内存延迟。iPhone 5性能测试显示了CPU核心内存带宽的大幅提升,但既然外部位宽仍是64-bit,所有这些改变肯定来自内部的缓存和内存控制器。继续自己写代码测试。

iPhone 5纯硬件评测:给你想要的一切

无论何种尺寸,Swift的延迟都是最低的,只不过4-16KB左右的时候差距不大。超过32KB(一级数据缓存容量)之后,Swift的优势就凸显出来了(Cortex-A8有256KB二级缓存所以有延迟增加很快)。这与其它iOS内存测试表现相符合。

低得多的内存延迟再配合专用的载入与存储端口,iPhone 5的内存性能相比iPhone 4S可以提升2.5-3.2倍。

iPhone 5纯硬件评测:给你想要的一切

《后续》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值