Qualcomm Snapdragon X2 Elite微架构

来源:处芯积律 MCU/MPU 5 次阅读
摘要:简介 高通今年(2025)发布了自己的第三代Oryon核,之前没找到什么资料,最近在Chip&Cheese看到相关的PPT,但我在官方还是没找到这个PPT,所以就先拿CC网站的PPT介绍一下。 Oryon CPU一共集成了3个CPU的cluster,1和2 cluster每个集成6个Prime核,3 cluster集成6个优化功耗面积的Performance核,一共18个核。实际高通命名的

简介

高通今年(2025)发布了自己的第三代Oryon核,之前没找到什么资料,最近在Chip&Cheese看到相关的PPT,但我在官方还是没找到这个PPT,所以就先拿CC网站的PPT介绍一下。

Oryon CPU一共集成了3CPUcluster12 cluster每个集成6Prime核,3 cluster集成6个优化功耗面积的Performance核,一共18个核。实际高通命名的Prime核一般我们习惯称为性能核Performance Core,而高通所说的性能核实际是我们习惯说的能效核Efficient Core。而用户又习惯称为“大小核”,但是“大小核”名声不好,估计是这个原因,改个名字。

整体看,频率最高可达5GHz,基础频率是4.4GHz16M16路共享L2 Cache,每个集群6个核。就自研器件核而言,AppleQualcomm是共享L2Intel/AMD/ARM是私有L2 Cache

L2 Cache

6个核共享的16M16Shared L2 Cache,平均每个核大概2.7M的样子,和其它厂商私有L2相比差不多,一般2~3M,共享的好处是,当活跃的核少的时候,能有更多的空间被利用,即使多核都在活跃,也避免了多副本导致的利用率低。坏处就是无冲突访问延迟更大,并且有些情况可能会产生比较多的多核访问冲突,那么延迟可能更恶劣。所以一般情况下,这种共享的L2 Cache单核跑分高点,当然我只是从L2 Cache的视角谈跑分,影响跑分的因素很多。

采用MOESI一致性协议,和L1 ICache以及L1 Dcahceinclusive关系。回填带宽是64B,由于是共享的L2 CacheL1-Miss-L2-Hit延迟比较大,平均为21 cycle

Fetch & Decode

Apple用了很多年的192KB Cache,高通由于历史原因也一直在沿用,我之前写过一篇分析关于使用192KB缓存的原因,主要观点是分支预测器结构以及共享L2的因素,但我认为分支预测器是主要原因。

1-cyclenext-fetch PC预测器,就是最小的BTB(L1-BTB),一般不大且用DFF搭建,当然也有不是用DFF搭的,高通这个不清楚。2-cycle的条件分支预测器,算是比较低的延迟了,一般比较复杂的算法,做到3-cycle延迟就很不错了,当然整个前端结构也很有利于降低延迟。L2-BTB应该还是ICache。间接分支延迟2-cycle13cycle的分支预测错误惩罚,单纯就数值而言,不算优秀,考虑到处理器频率还挺高,也挺可以的。

9宽的decode

Rename & Dispatch

Decode宽度匹配的Rename宽度,同样是9。整数,向量有独立的物理寄存器files,都是400+checkpoint属于常规的技术支持了。同样支持指令融合技术,多数的核也都会支持,只是看最终能支持多少类型。每个周期能退休9uOpsROB650+的条目。

Integer Execution

6宽的64bit的整数执行流水线,400+GPR,每个cycle最多有6uOps4个分支,2MUL/MLA4个分支执行单元是比较多的,看图上只画了2个,可能是有2个分支执行单元,然后2个复用的流水线。延迟方面就是1-cycle ALU1-cycle Branch3-cycle MUL/MLA

Vector & FPU & SIMD

LSU

完全一致性的DCache,大小为96KB,每个CacheLine 64B,每个周期支持最多4个任意组合的load或者store。支持store-load forwarding,简单说这个技术就是,如果一个load依赖前面的store,但这个store还没有到缓存里面,那么load要等store写到缓存里面再load,而store-load forwarding在这种情况下,直接从store queue里面将数据读走,这样能很大程度降低延迟,提高性能,现在各家的旗舰处理器多多少少都支持一些。

192load queue条目,56store queue条目。预取方面支持不少类型的算法,strideadjacent line等。

MMU

内存管理单元,高通做的确实不太一样,支持4KB64KB的翻译粒度,我在它发布前一代核的时候就很困惑为什么不支持16KB的翻译粒度,因为ARM架构上是支持4KB16KB64KB一共3种翻译粒度的,支持了一种,另外2种实现的开销并不大。

支持虚拟化包括Nested虚拟化。

L1 ITLB以及L1 DTLB都是8-way256entry,而L2 TLB8K条目,目前为止我知道的厂商的器件核最大的(截至2025),我曾经怀疑过它将聚合的展开也算成单独的条目,具体我自己没有测试过,不过前一代的核Chip&Cheese测试过,远远没有达到它宣称的8k(大概1.5K~2K,而且他们同时测试Zen4是符合预期的)。当然了,典型的PWC这些技术也都是存在的。还有个比较特殊的点,支持16in-flight翻译,我知道的CPU基本都是4~8GPU会非常多,高通做了16个,不过这个模块面积开销不大,只要时序能做的下,多点总是有性能收益的。

预取方面,没有公开很多信息,但也是个性能点,一般是页表数据的预取和页面的预取。

Performance Core

姑且就按照官方的命名,这个集群也是6个核,优化了面积,功耗,当然频率也低一些,有3.6Ghz,共享的L2 Cache也砍到12MB,简单说就是各项的参数都做了降低,从公开的结构看,面积似乎只有Prime Cluster一半多一点。

总结

这一代的处理器,基本还是前代的优化,宏观看没有太多激进的改变,有意思的是,LSU那里的TLB数据和MMU那里的TLB数据不一致,很可能是PPT也是拿前一代的PPT改的,但没改干净。比较正面的是,高通的自研核真的有模有样了。

评论区

登录后即可参与讨论

立即登录