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

 

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

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

相关推荐
不想看见40425 分钟前
Qt 项目中实现良好封装(模块化设计)的详细流程指南
数据库·系统架构
黄俊懿3 小时前
【架构师从入门到进阶】第二章:系统衡量指标——第一节:伸缩性、扩展性、安全性
分布式·后端·中间件·架构·系统架构·架构设计
学嵌入式的小杨同学9 小时前
STM32 进阶封神之路(二十二):DMA 实战全攻略 ——ADC 采集 + 串口收发 + 内存复制(库函数 + 代码落地)
c++·stm32·单片机·嵌入式硬件·mcu·硬件架构·pcb
学嵌入式的小杨同学11 小时前
STM32 进阶封神之路(二十一):DMA 深度解析 —— 从直接内存访问到无 CPU 干预数据传输(底层原理 + 寄存器配置)
stm32·单片机·嵌入式硬件·mcu·硬件架构·硬件工程·智能硬件
学嵌入式的小杨同学21 小时前
STM32 进阶封神之路(十九):ADC 深度解析 —— 从模拟信号到数字转换(底层原理 + 寄存器配置)
c++·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
安逸sgr1 天前
Agent 记忆系统完整实现(二):记忆系统架构全景——分层设计与核心模块!
ai·系统架构·大模型·aigc·负载均衡·agent
深蓝电商API1 天前
缓存策略在海淘代购系统中的应用
缓存·系统架构·跨境电商·代购系统·反向海淘·代购平台
梦..1 天前
Allegro学习记录(一)
arm开发·单片机·嵌入式硬件·学习·硬件架构·硬件工程·pcb工艺
weiyvyy1 天前
接口开发的完整流程:从需求到验证
驱动开发·嵌入式硬件·硬件架构·硬件工程
慧一居士1 天前
springboot 项目集成 seate 分布式事务AT模式使用nacos完整配置步骤及说明
系统架构