ARM世界之旅(二):Cortex-A12架构深入解析
  • 上方文Q
  • 2013年07月18日 15:37
  • 0

【A12后端设计】

A12的前端虽然比A9效率更高,但真正的性能提升来自于核心内部的执行。类似A15,A12在功能单元之前引入了多个独立的发射队列。

指令解码进入微操作,重命名指令分派进入发射队列,然后微操作在操作数可用的时候从发射队列中发射出来。这一切都依赖于发射队列的正确顺序处理,A12是可以乱序执行的(绝大部分情况下)。

A9只有一个发射队列,只能处理4个解码指令;A12增加到了三个队列,每个都比A9里更大。仅此一点就能大大提升IPC。

这三个发射队列分别是:整数、FP/NEON、载入/存储

下边就是A12、A9的简单架构对比图,其中蓝色部分是顺序执行的,粉色/黄色则是乱序执行的。很显然,A12仍然只是部分乱序架构,只不过比A9“更乱”而已。

ARM世界之旅(二):Cortex-A12架构深入解析 Cortex-A12

ARM世界之旅(二):Cortex-A12架构深入解析 Cortex-A9

A12保留了A9中的两条整数流水线,但是和A7/A15一样加入了对整数除法的支持,A系列其它架构都没有这一点,不过除此之外整数流水线没啥变化。

FP/NEON单元的改进非常大。A9刚发布的时候,NEON代码很少能用到,这也正是NVIDIA Tegra 2去掉了它的主要原因,不过现在情况不同了,Android和移动应用对NEON的支持已经很好了。

A12仍然是整数和浮点操作的物理寄存器文件相分离,但是比A9里更大了。

A9中的浮点和NEON指令都是顺序执行的,A12将它们改成了完全乱序,至少在非内存操作上如此。FP/NEON发射队列是双发射的,分成两个流水线,都可以完全乱序操作,配合也很紧密,可以在浮点和整数单元之间快速转移数据。

AGU单元也变成了两个,对应两条流水线,而且也成了完全乱序的。 

ARM世界之旅(二):Cortex-A12架构深入解析


文章纠错

  • 好文点赞
  • 水文反对

此文章为快科技原创文章,快科技网站保留文章图片及文字内容版权,如需转载此文章请注明出处:快科技

观点发布 网站评论、账号管理说明
热门评论
查看全部评论
相关报道

最热文章排行查看排行详情

邮件订阅

评论0 | 点赞0| 分享0 | 收藏0