Intel最新性能核Lion Cove微架构设计

文摘   2024-11-14 21:22   北京  

导言

相比较AMD,Intel的微架构资料相对较少,软件优化手册也没看出太多东西,以前对Intel的微架构关注不多,所以也不清楚其进步性。尽管有分析说,Intel的本代桌面端升级并不明显,但出于对技术的研究,亦安还是收集一些资料分享。

概述

今年Intel发布的微架构叫Lunar Lake,其P核(性能核)代号是Lion Cove,本文主要关注Lion Cove。相比较前代的微架构,本代改变很大,至少从技术上讲是的,可能出于AI的原因,这几年各家CPU的微架构变化都很大。

和前代相比,Lion的发射宽度和Decode升级到8,这也是当前各家旗舰CPU的主流参数。预测器的L0 BTB由前代的128entry升级到256entry,覆盖的指令范围变得更大,但是L1和L2的BTB并没有作容量上的升级,对于方向预测器亦安没有找到相关的资料。

Micro-Op Cache4096entry升级到5250entry,相比较AMD的Zen5的6K略低。有意思的是,对于DCache在传统的L1和L2之间插入了一级192KB的Cache,这是一个很有趣的设计,本文将48KBCache称为L0192KBCache称为L1L2Cache由前代的2MB的大小升级为最高3MB,目前主流的旗舰CPU是2MB大小。

MMU

对于MMU的考量,Zen5和Lion的设计可以说天差地别,LionL1 TLBLoadStore分开的,而Zen5是全相联的,这点设计我觉得没什么奇怪的,只要能接受延迟面积的因素,L1 TLB怎么设计都有道理。但同样是X86架构,AMD的L2 TLB2048entry+1024entry+4096entry,而intel则是1024entry+1024entry,常规的聚合类的技术大家都是有的,但参数上居然有如此巨大的差距?AMD的巨大容量可以理解为它采用了非常激进的预取来掩盖页面翻译的延迟,但从intel的L1设计看,LS常用的页面应该是4KB和2MB,AMD给1G的页面单独给出了1024entry巨大的TLB还是挺奇怪的,只能理解为Zen5想压缩L2的延迟以及它可能测试了大量的未来可能需要的AI应用?不管怎么说,intel的MMU设计还是属于当前各家的主流设计范围内的,细节虽然不清楚,但MMU也不会太出花活。

DCache

从公开的资料看,此处的改变属于比较大的(执行单元和BPU没看到更多资料),在L0和L2之间插入了一个大小为192KBL1 Cache(原本前代的L1 Cache对应本代的L0 Cache,只是个名字,也可以称为L1.5)。这种设计似乎脱离了各个厂商的主流设计L1/L2/L3,这就涉及到那个经典的问题“为什么Cache需要分级?应该分多少级呢?分级是怎么确定的?”。目前主流的厂商的CPU L2容量是2MB,而Lion的L2容量“最高到3MB”,我们知道Cache容量越大延迟越高,就设计水平以及使用的工艺都差不多的情况下,Intel应该很难使用3MB的L2的情况下将延迟压到和其它厂商一致,所以这个所谓L1(192KB)的Cache应该是了掩盖L2大容量带来的延迟而作的设计平衡。当然增加带宽也是可能的原因。

分支预测器

Spec2K17分支预测的测试结果看,Lion和前一代相比没有太多进步,甚至有的方面有退步,而相比较Zen5综合似乎稍微弱一点,因为没有看到比较多的预测器参考资料,不好评价,但2taken/cycle这些都是有的,至于具体的算法没有找到资料。使用3级的BTB,资源大小似乎和前代没有变化,预测方向的算法不清楚,按照行业的主流设计应该还是Tage,不清楚具体的微架构设计与前代相比变化多少。

取指和解码

ICache是16路的64KB大小,取指带宽是128Byte/CycleMop-Cache的带宽是12条指令,容量从4096增加到5250decode是当前典型大核具有的8宽度,并且每个解码槽都可以为单线程提供服务。


处芯积律
处芯积律,而后知所至。一个芯片人的技术和行业研究分享。
 最新文章