ARM N2微架构深度解析:服务器端处理器的性能与功耗平衡之道
ARM N2微架构深度解析:服务器端处理器的性能与功耗平衡之道
ARM N2微架构是ARM针对服务器和云计算应用推出的第一代成熟处理器IP,相比前代产品在前端预测、指令缓存、重命名宽度等多个方面进行了显著优化。本文将详细介绍N2微架构的关键技术改进及其对性能和功耗的平衡优化。
简介
在之前的文章中,我们介绍了面向服务器和云计算应用的ARM V2处理器微架构。V系列处理器注重高性能,而N系列则在性能和功耗之间寻求平衡。本文将重点介绍ARM N2处理器微架构相对于前代产品的提升。尽管ARM还有一代N1/V1服务器处理器,但严格来说,N2才是ARM相对成熟的第一代服务器端处理器IP。
前端设计
N2微架构在前端设计上实现了重大突破,预测和取指模块继续保持解耦设计,但对预测器进行了重点升级。预测器的处理能力从每周期8条指令提升至每周期16条指令(2x8instrs/cycle),能够同时处理两个分支,分支执行也相应提升至每周期处理两个分支。这一特性在实现上较为复杂,AMD的Zen4 Epyc架构也实现了类似功能,但具体实现细节目前尚未有更多公开资料。
在分支目标缓冲(BTB)方面,NanoBTB的条目数从16个提升至64个,早期快速重定向能力显著增强。主BTB的大小从6K条目扩展到8K条目,延迟更低,并且分支目标标签关联了上下文信息以增强安全性。
指令缓存(ICache)容量为64KB,采用4路组相联结构,保持VIPT组织方式,使用奇偶校验,缓存行大小为64字节。值得一提的是Mop Cache,这是首次在服务器端使用该特性,最初在移动端A77处理器中引入,主要用于绕过解码阶段快速进入后续模块。Mop Cache具有1536个条目,采用4路偏斜组相联结构,VIVT组织方式,替换算法为PLRU,公开数据显示命中率可达85%。然而,这个特性在服务器和移动端的后续版本中都被放弃,服务器端在N3/V3中放弃,移动端则在X4中放弃。
取指队列(Fetch Queue)从原来的12个条目扩展到16个条目,解码宽度分别为ICache的4条指令和Mop Cache的5条指令。
中核与后端
重命名宽度从4条指令提升至5条指令,增加了检查点机制,重排序缓冲区(ROB)容量从128条目扩展到160条目,算术逻辑单元(ALU)数量从3个增加到4个,降低了分支预测错误的惩罚周期,从11个周期减少到10个周期。
一级数据缓存(L1 Dcache)容量为64KB,采用4路组相联结构,使用VIPT组织方式,校验方式为ECC,替换算法为PLRU,后续的N3版本改为RRIP。具有2个加载/存储单元和1个加载单元。二级缓存(L2)带宽翻倍,达到64B读+64B写。预取引擎也进行了优化,例如时间预取器可以预取任意重复的访问模式,以加速时间流工作负载。
关于CCS
N2架构的另一个重要改进是加入了CCS(Cache Coherent System),这使得用户在搭建复杂系统时更加便捷。虽然这不是本文的重点,但CCS的引入确实是一个值得关注的亮点。互联系统升级为CMN700,各种连接口都升级到下一代,但互联技术作为核心关键技术并未在文中详细展开。
总结
ARM N2微架构在多个方面实现了显著优化,不仅提升了性能,还在功耗控制上保持了良好平衡。其设计思路和具体实现细节为后续处理器架构设计提供了重要参考。对于对计算机体系结构感兴趣的读者来说,深入研究N2微架构的技术细节将大有裨益。