当前位置:首页 > 智能手机 > iPhone > 导购
Cortex-A50系列架构浅析
  • 2013-10-21 17:17:42
  • 类型:原创
  • 来源:电脑报
  • 报纸编辑:何庆
  • 作者:
【电脑报在线】苹果iPhone 5S的发布将ARMv8指令集架构再一次带入媒体聚光灯下,初步测试结果显示苹果A7 SOC内部基于ARMv8指令集设计的Cyclone核心性能不凡,考虑到安卓阵营的旗舰机型已经开始配备2GB甚至3GB的内存容量,触及32bit的寻址能力瓶颈相信已经不远,而安卓阵营里具备CPU设计实力的公司寥寥无几,若向64bit的指令集架构迁移。
  苹果iPhone 5S的发布将ARMv8指令集架构再一次带入媒体聚光灯下,初步测试结果显示苹果A7 SOC内部基于ARMv8指令集设计的Cyclone核心性能不凡,考虑到安卓阵营的旗舰机型已经开始配备2GB甚至3GB的内存容量,触及32bit的寻址能力瓶颈相信已经不远,而安卓阵营里具备CPU设计实力的公司寥寥无几,若向64bit的指令集架构迁移,可以预见大多数厂商仍会考虑Cortex-A50系列架构,本文将尝试窥探Cortex-A50系列的微架构设计。
  

指令集架构变化的影响
  相对上一代32位指令集,ARMv8引入了许多调整,其中包括在64位环境下运行虚拟机中的32位操作系统等服务器级别的特性,能够与C++11等新兴编程语言匹配的弱内存模型等,我们在此前的文章中也分析了64bit环境下的寄存器数量与访存操作对性能带来的影响,抛开这些部分不谈,ARMv8的改变仍有两个有趣的地方。
  第一是SIMD,128bit位宽的SIMD寄存器数量增长至32个,能够进行以64bit为粒度的重新切分,将一个128bit寄存器视为两个64bit寄存器,引入了双精度浮点,并且终于与经典的IEEE 754标准完全兼容,程序员们将能够看到规整的舍入模式,非规格数与NaN的处理,这项改进终于补上了先前指令集架构上对浮点支持孱弱的缺点。利用SIMD层面的进步,ARMv8将开始提供AES,SHA-1,SHA-256加密算法的指令级支持,未来的嵌入式安全领域有了进一步的性能保障。加速效果尚缺乏测试数据的证实,抛开加速效果不谈,仅从覆盖面上看,Cortex-A50相比支持广谱加密算法加速的Silvermont架构服务器SKU仍有较大差距,可以说ARM在这方面的脚步仍旧落后于Intel。


Cortex-A系列发展历史趋势:A50高性能、低功耗齐头并进


  其次是谓词执行。由于分支指令在指令流中大致占据20%左右的比重,硬件上要进行准确的分支预测,需要维护巨大的辅助记录表,保存分支指令的历史走向,作为预测未来走向的参考。谓词执行的理念是,让指令携带谓词标志,指令执行&结果写回阶段时可以根据谓词标志位来判断指令是否需要被执行&结果写回,这种做法将消除大量难以预测的复杂分支,因此曾被寄予厚望。目前NVIDIA GPGPU就是使用谓词执行来控制分支,而ARM则激进的多,它的整套指令集几乎全部支持谓词执行,这在很久以来被视为ARM的一大特色,这种做法表明ARM曾经抱有这样的期待:分支预测器在嵌入式处理器的紧张面积、功耗预算下难以给出较高的预测准确率,而谓词执行有望弥补分支预测的缺憾。而随着时间推移,我们所看到的事实是,ARM在Cortex-A15等微架构的设计中,开始逐渐引入桌面处理器微架构里使用的分支预测器基本框架,并且ARMv8指令集也一改以往作风,大幅削减谓词执行,现在只剩下寥寥少数指令支持谓词化。这表明ARM已经开始逐渐倾向于使用复杂的分支预测器来处理分支,而谓词执行已经被边缘化。除此以外,由于每条指令执行与否都要访问谓词寄存器,因此在寄存器重命名阶段,每条谓词指令都要多占一个物理寄存器,这是一份额外的开销,也是ARM取消谓词执行的另一个原因。谓词执行在分支指令上的理论优势能否转化为实际优势,又能否弥补开销,是一个值得关注的问题,ARM内部对此应该做过量化分析,可惜结果没有发表。但从ARMv8大规模裁剪谓词执行的状况看,笔者推测量化评估的结果是比较负面的。

本文出自2013-10-21出版的《电脑报》2013年第41期 D.智能手机
(网站编辑:pcw2013)


我来说两句(0人参与讨论)
发表给力评论!看新闻,说两句。
匿名 ctrl+enter快捷提交
读者活动
48小时点击排行
论坛热帖