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

 

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

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

相关推荐
hhcccchh10 小时前
学习vue第七天 从单页面应用(SPA)进化为后台管理系统架构
vue.js·学习·系统架构
切糕师学AI1 天前
位带操作(Bit-Banding)是什么?
c语言·arm·嵌入式开发·cortex-m·位带操作
Tadas-Gao2 天前
Spring Boot 4.0架构革新:构建更精简、更安全、更高效的Java应用
java·spring boot·分布式·微服务·云原生·架构·系统架构
jiayong232 天前
多子系统架构下的Nginx部署策略与最佳实践
运维·nginx·系统架构
晓风残月淡2 天前
系统架构设计基础知识:软件架构风格
系统架构·软件架构风格
普中科技3 天前
【普中STM32F1xx开发攻略--标准库版】-- 第 17 章 STM32 中断系统
stm32·单片机·嵌入式硬件·arm·中断系统·普中科技
坏孩子的诺亚方舟3 天前
FPGA系统架构设计实践8_复位参考设计
fpga开发·系统架构·复位
贝塔实验室3 天前
Altium Designer 6.0 初学教程-如何生成一个集成库并且实现对库的管理
linux·服务器·前端·fpga开发·硬件架构·基带工程·pcb工艺
CoderIsArt4 天前
xorrisofs的系统架构与开源地址
系统架构
star _chen4 天前
【操作系统入门】文件系统
系统架构