ARM V2处理器微架构分析

ARM V2处理器微架构介绍

****   

简介

ARM V2的微架构是ARM处理器的基础,它包括了指令集、寄存器、控制单元等。这篇文章主要分析了ARM V2的一些微架构内容。如果您需要更详细的信息,可以参考这篇文章。

IFU

文章内容经过优化如下:1、Cycle预测两个分支的特性,在服务器系列N2/V2中实现难度较大。复杂度高,需平衡多种因素。

2、实现uOp Cache,这一选择在RISC指令集中并不常见。尽管N2/V2系列才刚实现此特性,但实际移动端早在A77就已经开始采用这个微架构。然而,今年发布的V3/N3却放弃了uOp Cache设计。这可能是出于对功耗的考虑,以及优化ICache和其他IFU方面的特性所带来的收益更为显著。相较于uOp Cache,牺牲面积和功耗以获得收益的做法似乎更为明智,因此N3系列选择了放弃uOp Cache。

3、新增TAGE预测器及扩大BTB容量,属于常规升级。参数化调整为主,细节算法优化尚不明确。

4、针对间接指令,我们设计了独立的预测器。然而,由于历史原因,N和V系列实际上是从A系列演变而来的。在经典的A76微架构中,一开始移动端和服务器端的区分并不明显,因此之前的间接预测器与移动端一样,都是混合使用的。

随着时间的推移,服务器端间接指令的比例逐渐增加,而移动端的一些微架构在确定为间接指令后,再查找非独立IBTB设计方案(以节约面积和功耗)可能不再适用于服务器端。即使进行解耦设计,也难以完全消除间接指令预测带来的延迟问题。

6、取指队列也从原来的16entry升级到现在的32entry。

Decode/Rename/Dispatch

Decode/Rename/Dispatch细节已优化,宽度提升至6,借助uOp Cache实现低延迟发出8 uOps。Decode Queue从16增至32,新增Rename Checkpoint及优化Rename Rebuild,提高效率。

Issue/Execute

"新增了2个单周期ALUs,扩展了Issue Queues,SX/MX从20增至22entries,VX从20增加至28entries等。"

LSU

1、增加DTLB数量至48entry。

2、DCache将PLRU替换算法改为RRIP,ARM常用的替换算法,NRU/PLRU/RRIP,L1 Cache使用PLRU更多,更重视L1 Cache的时候会牺牲更多资源在替换算法上。现在论文常讲的更"细粒度"的替换算法,在实际工程中见的更频繁了。例如初始化区分历史,将数据或者指令视作不等价等。

简单讲,有一种观点是不全部强调命中率,更强调整体的性能,举个简单的例子,有些数据不命中,对其miss系统损失的代价更高,即使依据频繁访问原则"它"应该被踢掉,但由于"它"地位更高,所以不将"它"替换掉。

或者有观点,识别数据本身的特性以及访问频率等情况综合去考量替换问题,这无疑会消耗更多的资源,对于路数更多的L2可能使用类似"细粒度"的替换算法收益更高。但现在ARM L1 Cache也开始逐步使用相对复杂的替换算法。其它就是一些常规的参数级别的升级,例如2LS,1LD,一些buffer深度给出了升级。

L2

8路网络,2MB和1MB延迟保持一致(与前版本相比)。新算法采用6-state RRIP。单个bank每2个时钟周期读写64B,共4个bank。

总结

arm的微架构给我的感觉是细节特别多,很多微小的特性都会抓取去优化,这是国内很多公司不具备的,国际一线的CPU公司,微架构方向的优化每年提升都放缓了,更多的是面向特定场景的优化,反而是工艺的提升以及SoC系统级微架构的提升对芯片系统的影响更大了。

当然国内对CPU微架构的设计依然相对落后一些,即使在"参数上"追上了国际水平,并且抛开一些生态问题,实际"面积""功耗"以及常规情况下的性能依旧有不少的提升空间。

 

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

相关推荐
シ風箏1 天前
Neo4j【环境部署 02】图形数据库Neo4j在Linux系统ARM架构下的安装使用
linux·数据库·arm·neo4j
七灵微1 天前
进程与线程以及如何查看
linux·系统架构
oioihoii2 天前
桌面图形界面生成原理:从流水灯到电脑屏幕
系统架构
颯沓如流星2 天前
软件架构设计方法之The Clean Architecture 整洁架构
架构·系统架构
柔弱女子爱java2 天前
spring专题笔记(五):依赖注入--p命名空间注入、c命名空间注入、util命名空间
java·笔记·后端·spring·架构·系统架构
云空3 天前
《 QT 5.14.1 类库模块列表详述》
开发语言·qt·系统架构
星原飞火4 天前
2-2-18-16 QNX系统架构之自适应分区
车载系统·系统架构·qnx·blackberry
徐某人..4 天前
ARM嵌入式学习--第八天(PWM)
arm开发·学习·arm
重生之我是数学王子4 天前
ARM原理
arm开发·系统架构
徐某人..5 天前
ARM嵌入式学习--第七天(GPT)
学习·arm