各位互联网好朋友,大家好,
今年我参加了英特尔技术巡展,英特尔介绍了即将推出的 Panther Lake 和 Clearwater Forest CPU。我有幸与英特尔 x86 核心首席架构师 Stephen Robinson 进行了交流,探讨了英特尔对 Cougar Cove 和 Darkmont 的策略,以及它们与前几代产品相比有哪些变化。
希望大家喜欢!
为了便于阅读和简洁起见,我们对记录进行了编辑。
George Cozma :各位互联网朋友们,大家好!我们现在在亚利桑那州凤凰城参加英特尔2025技术巡演,会上公布了一系列关于Panther Lake和Clearwater Forest的资讯。Stephen Robinson将与我一起探讨这两款CPU的核心架构。您在英特尔做什么工作?
斯蒂芬·罗宾逊:我是一名 CPU 架构师,我领导 x86 内核的架构团队。
George Cozma :太棒了。那么,我们直接进入正题吧:我们确实做了一个关于Skymont的录音采访。回到Skymont,从你之前的Crestmont架构到Skymont架构,有什么重大变化吗?
斯蒂芬·罗宾逊:是的,Skymont 做了很多工作。我们想打造一台更宽、更深的机器,以便能够运行更多工作负载。所以,“覆盖范围”是我们有时会用到的一个术语。如果我们能在 E 核心上运行更多工作负载,就能提高整个平台的效率。
所以,你知道,有时候人们会想:“为什么要给 E 核增加 IPC?这样会让它更贵,对吧?” 嗯,实际上,软件运行得更好。所以我们把乱序深度增加了大约 50%,大概是这个数字。我们从两个加载端口增加到三个。我们的矢量硬件大约翻了一番。所以 Crestmont 有两个 FMA。现在 Skymont 有四个 FMA。然后是前端,我们从六宽、两个集群、三个解码前端变成了九宽、三个集群。然后是八宽分配,你知道,还有更多的分支预测,稍微多一点的 L2 带宽,等等。
George Cozma :我注意到 Skymont 的一个有趣的特点是它有四个储料口和三个装货口。为什么是四个储料口?通常装货口比储料口多。为什么这次会有更多储料口呢?
斯蒂芬·罗宾逊:是的。那么,我们把它分解成地址生成和执行。假设有三个加载执行端口,那么就需要三个加载地址生成器。就是这样。在存储方面,我们有四个存储地址生成单元。但我们只支持将两个存储操作写入数据缓存。
所以我们在存储方面存在一些不对称。所以你说得对。为什么我们的存储地址单元比存储端口多呢?答案是,我们在加载和存储之间存在风险。有时加载会被阻塞在存储上,因为我们不知道存储地址,因为我们的顺序都是乱序的。所以通过增加存储地址带宽,可以减少解析未知存储的延迟。
因此,基本上我们只需花费更多的时间和精力来生成存储地址,这样负载就不会被阻塞,从而获得性能。
George Cozma :太棒了。我知道在《Darkmont》中,引起我注意的是内存消歧功能。这通常与存储到加载转发有关。但这项技术已经存在很长时间了,所以您在《Darkmont》中增强了哪些功能,可以谈谈吗?
Stephen Robinson :当然,是的。所以你说得对。这和存储加载连接有关。所以……人们有几种不同的方法。你可以用一个很大的表来告诉你什么时候可以安全地忽略存储。你也可以用一个小表来告诉你什么时候忽略存储是不安全的。
所以你可以用任何一种方式来做。这两种技术最终都会崩溃,最终得到相同的结果,因为大表饱和了,一切都安全了。然后,你知道,你发现了危险。我们在这里所做的是,我们花了更多时间尝试让硬件不仅仅是一个历史表,而是在地址生成之前,真正地判断出设备是否需要连接。
因此,当我们将微指令引入内存子系统进行地址生成时,我们会查看一些信息,然后说:“哦,我相当确信这些加载和存储操作是关联的。” 所以我不使用表格,而是使用指令本身的信息,无论我是否认为它们会关联。这使我们能够减慢加载速度或类似操作,这样,当存储操作完成后,我们就知道执行我们认为可能关联的加载操作应该更安全。
George Cozma :有意思。我知道你也对 Cougar Cove(Panther Lake 的 P 核心)的内存消歧功能发表了评论。Cougar Cove 也有类似的情况吗?
Stephen Robinson :概念上类似,但在实现上略有不同。所以说,这是一种不同的方法,但最终,我们仍然需要弄清楚,相对于我们将要依赖的存储,何时才是调度加载的最佳时机。所以,你知道,我讲了一个关于两张表的故事。嗯,这有点像是另一张表。同样,我们试图说:“好吧,现在我认为是时候进行加载了,因为我认为它将连接到存储。” 所以,概念相似,实现不同。
George Cozma :好的。我想问一下,是什么导致了这两种不同的实现?应该说,是这两种不同实现背后的原因。
Stephen Robinson :我想说,这很简单,两个团队并行工作,进行独立研究,解决局部问题,并提出解决方案。最终,我们得到了两个相似但又不同的实施方案。
乔治·科兹玛:好的。
史蒂芬·罗宾逊:两支球队。
George Cozma :酷。说到 Cougar Cove,Lion Cove 的一个关键变化就是缺少了 SMT。Lunar Lake 和 Arrow Lake 的 SMT 已经不存在了。为什么没有呢?如果您愿意的话,可以把它重新添加到 Cougar Cove 吗?为什么没有把它加回来?原因是什么?
Stephen Robinson :是的。那么我们先来谈谈客户端,对吧?我们之前推出的产品没有使用 SMT 技术。当你使用混合计算时,SMT 的价值就没那么高了,对吧?所以,当你安排某个任务时,如果你想要性能,你会把它安排在 P 核上。然后,你会把它安排在 E 核上。等到这些任务都用完后,你再回来安排一个线程。
在 Alder Lake 和 Raptor Lake 中,它们的工作原理大致如此。所以这些线程就像甜点上的线程,对吧?在 Lion Cove、Lunar Lake 和 Arrow Lake 中,你知道,我们移除了线程。我们没有实现线程。让我这么说吧。这样一来,我们并没有因为混合和核心数量而损失太多客户端性能。但我们在设计执行方面获得了一些提升,功耗降低了一点,因为你没有晶体管和逻辑来支持 SMT。面积也缩小了一点,原因也一样。而且更容易达到频率目标。因为,你知道,有个老笑话说 SMT 有点像多路复用器,对吧?这话没错。某个地方确实存在多路复用器。这会导致延迟。所以现在你得到了某种可能更简单、更便宜、速度更快的东西。
因此,当你拍摄《Cougar Cove》时,你只需采纳这些基本前提,然后说,是的,这也是我将为下一代所做的事情。
George Cozma :关于服务器,我知道有一些数据表明SMT确实有帮助。那么您对此有何看法?
Stephen Robinson :是的。所以服务器和客户端有点不同。你知道,人们讨论过在服务器中进行混合计算,但没有人真正这么做。简单的解释是,如果你想在服务器中实现混合计算,你应该在机架级别进行,而不是在SOC内部。如果我可以实现不对称,比如一台200核服务器,再来一台200核服务器,我有很多这样的服务器,那为什么还要在SOC内部实现不对称呢?所以你有选择。你知道,亚马逊和其他公司提供不同的实例供你使用。那么,在一个服务器中部署不同的实例有什么价值呢?
首先,现在的服务器普遍没有混合架构。其次,就像我之前讲的,你会在 P 核和 E 核上进行调度,然后再使用线程。如果没有 E 核,那你就只能使用线程了。服务器工作负载、游戏工作负载等等,它们的延迟会比较大。所以,当它们发生延迟并且延迟比较大时,你就有可用的硬件了。所以在服务器领域,线程是更适合的工作负载。比如网络工作负载。它们通常喜欢线程,因为它们会移动大量数据,从而暴露出延迟问题。所以服务器工作负载的情况略有不同。如果没有混合架构,那么同步多线程 (SMT) 就更有价值。
George Cozma :实际上,说到客户端和服务器之间的区别,Darkmont 在 Panther Lake 和 Clearwater Forest 中都有使用。在 RAS 功能等方面,服务器和客户端之间的核心需要做出哪些区别?那么,在实现方面以及需要进行哪些设计方面,它们之间有哪些区别?
斯蒂芬·罗宾逊:是的。好问题。所以在客户端领域,你可以拥有 RAS 功能,但由于客户端系统不同,它们的价值就没那么高了,对吧?如果我有数百个或数千个核心,可靠性就变得非常非常重要。
如果我用的是自己的小笔记本电脑,而且电脑数量更少,那就另当别论了,对吧?谷歌云一旦宕机,大家都会很沮丧。
乔治·科兹玛(George Cozma):一切都会好起来。
Stephen Robinson :没错。大家都很失望。所以,可靠性的门槛显然就在那里。所以,如果我们想要一个目标服务器,我们会在一个核心中添加一些额外的功能。比如缓存中的ECC……所以在核心内部,我们确实会添加一些功能。如果我们愿意,我们可以把这个核心放在两个平台上,对吧?所以,这两个平台的核心之间并没有太多的物理差异,但环境却截然不同。所以在服务器端,我们可能每个核心都有电源门控,也可能没有。电源传输是不同的。由于电源传输不同,你可能会改变何时开启电源门控、何时关闭电源门控的决定。而且功率水平也不同。所以,电源门控在服务器中可能不那么重要,因为服务器是全天候运行的。
另一件事是,有些东西只能在SOC层面真正发挥作用,因为你需要SOC组件作为其中的一部分。比如SGX或TDX这样的技术,也就是安全性,也就是安全计算元素。如果你的客户端没有安全性和控制器,那么即使你在核心内部实现了它,也毫无意义,因为你需要整个系统来实现它。所以,很多东西可能在核心中,但你实际上只能用完整的堆栈来测试、运行和产品化它。
George Cozma :说到客户端和服务器之间的差异,我知道在 Lunar Lake 中,您多次提到了一些新颖的分支预测技术。您认为这对服务器工作负载有帮助吗?还是说这些改进更侧重于客户端?
Stephen Robinson :每个人都想要分支预测。说实话,每个人都想要。所以在客户端,你知道,这很有趣。游戏。游戏和网络服务器类似吗?
乔治·科兹玛:不是的。
Stephen Robinson :其实不然。但就代码占用空间、路径和大小而言,它们比你想象的更相似。数据库也一样。数据库是非常大的二进制文件。
George Cozma :数据库实际上非常接近——在核心方面与游戏非常相似。
Stephen Robinson :没错。说实话,说到分支预测,我们每个人都会用,对吧?我们为客户端做,也为服务器做。我们做的事情有时会根据工作负载而有所不同,这取决于你从中获得的收益。但客户端和服务器中总会有工作负载会感激你的工作。
George Cozma :那么,在此基础上进行改进,是否有可能开发出更适合服务器工作负载和/或客户端工作负载的分支预测器?或者说,两者之间其实并没有什么区别?
Stephen Robinson :我想说的是,在英特尔内部,我们倾向于认为服务器需要更多分支预测、更大的容量,对吧?更大的路径。因为我们知道服务器的工作负载很复杂,而且二进制文件很大。但客户端也确实如此,对吧?你知道,你处理的是哪些工作负载,对吧?
乔治·科兹玛:没错。
斯蒂芬·罗宾逊:你知道的。SPEC,好吧,这显然是不同的,对吧?不过,游戏和数据库,是的,它们……
乔治:我认为在大多数情况下,游戏和数据库之间的联系比 SPEC 之间的联系更紧密。
斯蒂芬·罗宾逊:确实如此。
乔治·科兹玛:当然,我的最后一个问题是,您最喜欢哪种奶酪?
斯蒂芬·罗宾逊:哦。我喜欢上好的烟熏高达奶酪。不过说实话,我们最近在做蓝纹奶酪,洛克福奶酪之类的。因为,你知道,有点麝香味。
乔治·科兹玛:我承认,蓝纹奶酪不是我的最爱。我吃过华盛顿产的切达奶酪,味道真的很棒。是烟熏切达奶酪。我平时不太喜欢烟熏切达奶酪。
斯蒂芬·罗宾逊:我确实喜欢烟熏奶酪。真的喜欢。
乔治·科兹玛:好的,非常感谢。
史蒂芬·罗宾逊:当然。
George Cozma :非常感谢大家的收看。如果你们喜欢这样的采访,请点赞、订阅。很遗憾,我不得不说这么多,因为这确实对算法有帮助。大家可以去 Substack 看看,上面有文字记录。另外,如果想捐款,可以在下方使用 PayPal 和 Patreon 捐款。祝大家一切顺利!
原文: https://chipsandcheese.com/p/interviewing-intels-chief-architect