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



http://hi.baidu.com/nqkafzesyqgsuzr/item/6fdbbc04f37c88e4ff240dd7

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

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


对比Cortex-A9: 


Swift的前端从2宽度升级为3宽度,仍旧是个相对很小的乱序核心,但执行端口从3个增加到5个。注意专用的载入与存储单元,可能是浮点性能骤增的原因之一。
我们知道,高通Krait也是人家自己设计的CPU核心,但高通不肯公布任何具体资料。它也是类似的3宽度前端,但是7个执行单元只有4个端口,不过具体分布就不知道了。Intel Haswell发布前九个月就敢公开整数和浮点寄存器文件,高通的都出货半年了却连高级架构都不肯透露一点!


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


流水线深度方面,Cortex-A8是13级,Cortex-A9精简为8级但频率基本不变(所以性能更突出),Cortex-A15则又加深到15级,高通Krait定制的是11级,顺便说Intel Atom拥有最深的16级。 
Swift是多少呢?Anand Shimpi又写了两种不同的代码路径,分别有简单可预测的分支和复杂难预测的分支,最后以主代码循环的时钟周期衡量延迟。 


无论简单还是复杂预测,Swift都和Cortex-A8差不多,但是要比Cortex-A9长很多,证明Swift的预测错误要比Cortex-A9多了大约50%,但是和Cortex-A8基本一致,复杂的稍多一点。据此猜测,Swift的流水线可能是12级的,跟高通Krait很接近。
但是尽管流水线深度加大了,苹果依然保住了IPC,从前边的Geekbench 2对比数据就可以看出来。应该是分支预测精度有了大幅度的改进,这也是加深流水线深度的时候芯片设计师必须注意的问题。苹果做得很好。 
最后是内存延迟。iPhone 5性能测试显示了CPU核心内存带宽的大幅提升,但既然外部位宽仍是64-bit,所有这些改变肯定来自内部的缓存和内存控制器。继续自己写代码测试。 


无论何种尺寸,Swift的延迟都是最低的,只不过4-16KB左右的时候差距不大。超过32KB(一级数据缓存容量)之后,Swift的优势就凸显出来了(Cortex-A8有256KB二级缓存所以有延迟增加很快)。这与其它iOS内存测试表现相符合。 
低得多的内存延迟再配合专用的载入与存储端口,iPhone 5的内存性能相比iPhone 4S可以提升2.5-3.2倍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值