Marvell详细介绍了ThunderX3 CPU-2021年每个芯片最多60个内核,96个双芯片

2020-08-18 14:27:08

今天,作为HotChips 2020的一部分,我们看到Marvell终于展示了他们新的ThunderX3服务器CPU和核心微体系结构的微体系结构的一些细节。该公司早在3月份就宣布了新服务器和基础设施处理器的存在,现在可以分享更具体的规范,说明内部CPU设计团队承诺如何将自己从快速增长的竞争-ARM服务器市场-中脱颖而出。

早在2018年,我们就对ThunderX2进行了审查-当时,在设计和团队被Marvell收购之前,ThunderX2还是一款Cavium产品,就在那一年的几个月后。自那以后,ARM服务器生态系统一直由ARM的Neoverse N1 CPU核心和合作伙伴设计(如亚马逊(Amazon)和安培(Ampere)的Graviton2和Altra)启动,情况截然不同,随着AMD在市场上的成功回归,情况也截然不同。

Marvell以其产品路线图开始了HotChips演示文稿,详细介绍了ThunderX3代不仅是单一设计,而且实际上代表了一种使用多芯片的灵活方法,第一代60核CN110xxSKU将在2020年使用单芯片作为单芯片设计,明年将发布旨在提高性能的96核双芯片变体。

像这样的双芯片方法的使用非常有趣,因为它代表了完全单片设计和AMD等供应商的芯片方法之间的中间点。这里的每个模具都是相同的,因为它可以作为独立的产品独立使用。

从SoC的角度来看,ThunderX3芯片最高可扩展到60个内核,2芯片变种最高可扩展到96个内核。当看到这些数字时,人们首先想到的问题是,为什么2芯变种没有扩展到完整的120核-Marvell在演讲中没有涉及到这一点,但在演示中有一些线索。

Marvell声称,在同等功率水平下,性能比ThunderX2提高了2-3倍。后者的TDP为180W-如果TX3保持这个散热范围,则意味着双芯片设计必须将TDP提高到高达360W,这远远超过了典型服务器外形和机架在功率密度方面的风冷能力。假设只像宣传的那样线性缩减到96个核心,我们最终将达到288W左右-这更符合当前没有水冷的高端服务器CPU部署。当然-这是我们自己对这件事的分析和看法。

单个芯片支持8个通道的DDR4-3200,这是这一代服务器产品的标准,基本上与市场上的其他所有产品一致。在I/O方面,我们看到PCIe 4.0的64个通道的披露-这也与竞争对手一致,但只有Ampere或AMD的高端替代产品可以实现的一半。

目前一个很大的未知数是,双芯片产品将如何划分I/O和内存控制器-如果两个芯片之间的资源将各占一半,或者我们是否会看到不平衡的设置-或者平台是否真的可以处理来自每个芯片的全部资源,并将其自身转换为16通道128通道的野兽?

至少在理论上,ThunderX3似乎与亚马逊的Graviton2非常相似,因为它们都拥有类似数量的CPU内核,以及相似的内存和IO配置。人们可以立即指出的更大区别是,ThunderX3在其CPU内核中采用了SMT4,因此每个芯片最多支持240个线程。TDP也有不同,但我将这归因于Graviton2在时钟频率上比较保守,而Ampere的SKU更符合ThunderX3,特别是64核3.0 GHz 180W Q64-30在规格上最接近。

ThunderX3的另一个突出之处是90MB的L3高速缓存,这让上一代的32MB以及安培和亚马逊的32MB配置相形见绌。

Marvell在这里选择发展自己的互连微体系结构,现在已经从简单的环设计演变为具有三个子环或列的交换环。环停止由具有4个核心的CPU磁片和两个带有3MB高速缓存的L3-Slice组成。这给出了一个具有15个环停止(3x5列)和全部60个核心90MB的总L3高速缓存的完整裸片,这是一个相当可观的数量。

在问答环节中,Marvell透露,与单环或网状设计相比,他们采用交换式环拓扑或网状结构设计的基本原理是,在内核数量较高的情况下,单环无法在性能和带宽方面进行扩展。网格设计将会是一个很大的改变,并且需要减少核心数量。交换环代表了两种体系结构之间的良好权衡。事实上,如果这就是Marvell比其最接近的竞争对手拥有高达3倍的缓存的原因,那么它似乎是一个很好的选择。

我注意到的一件奇怪的事情是,该系统仍在使用基于窥探的一致性算法,这与业内其他基于目录的系统形成了鲜明对比。这可能会降低实现的复杂性和面积,但在芯片的功率效率和一致性流量方面可能会落后。

内存控制器接入环路,Marvell的插座间/芯片CCPI3接口可提供高达84 Gb/s的带宽。

继续到核心层面,我们将看到Marvell新的Triton CPU微体系结构的首批披露。这一设计是ThunderX2火神核心的演变,该公司在前端和后端都拓宽了核心的很多方面。

从核心的前端开始,我们看到了一些非常重要的变化,因为我们几乎看到核心中的大多数结构和带宽都翻了一番。指令高速缓存增加了一倍,从32KB增加到64KB,现在提供给一个8妻子读取单元,也是上一代的两倍。

与ARM最近的微体系结构非常相似,这是一种新的解耦获取单元,可以实现更好的节能效果。解码单元与8条指令宽度的读取带宽相匹配--这实际上与IBM的Power10内核一起代表了目前业界最宽的解码器,这相当令人惊讶。

在中间内核中,我们看到解码单元馈送到Marvell所称的“滑动缓冲区”中,该缓冲区本质上是一个循环缓冲区,每个线程被分割成32个微操作,再分为8个四宽的微操作捆绑包。它是内核中少有的在线程之间静态分区的结构之一,它代表了微体系结构的前端和中核之间的边界。

Trition微体系结构最有趣和最令人困惑的部分在内核的这一部分,因为即使内核的读取和解码单元是8个宽的,从滑动缓冲器出来、进入重命名单元并发送到内核后端的微操作仅在每个时钟4个微操作发生。因此,这里似乎正在发生的是,Marvell正在利用非常宽的前端设计,实际上并不是为大型后端提供服务,而是更好地隐藏在更广泛的“破裂”中工作的管道气泡。

分派到核心的后端,我们看到全球统一调度器的持续使用,该调度器馈送到7个执行端口。在调度程序级别,我们看到条目略有增加,从60个增加到70个。

核心的无序窗口略有增加,例如重新排序缓冲器(ROB)从180个条目增加到220个条目。

在执行端口上,最大的变化是增加了第四个能够执行ALU指令的执行流水线和第二个分支端口,这意味着我们看到简单整数ALU执行吞吐量增加了33%,内核的分支转发增加了一倍。除了这些改进之外,所有四个执行流水线都扩展了FP/SIMD功能,这意味着这些指令的吞吐量现在翻了一番,使Triton内核成为市面上为数不多的4x128b机器之一。

在核心的内存子系统部分,改进相对较小,因为我们似乎没有对微体系结构进行重大的高层更改。我们仍然看到两个加载-存储单元和一个存储数据单元,每个单元的带宽为16字节/周期,从32KB L1数据缓存馈送和获取数据。加载和存储队列的深度增加了,加载和存储队列分别从64个条目增加到80个条目,36个条目增加到48个条目。

内核的L2也翻了一番,从256KB增加到512KB,但是Marvell在这里关于这一变化的措辞很有趣,因为他们说它增加了面积和延迟,而只有“微小的增量性能好处”,这在语气上听起来相当令人失望。我们将在下一张幻灯片中看到,这意味着2.5%。

硬件预取器相当简单,使用传统的Next-line、Stride和基于区域的设计将数据拉入L2。

总体而言,在SPECint中,新核心的几代IPC改进总和高达30%,Marvell非常慷慨地向我们概述了新核心的特性,以及每种特性是如何实现总体改进的:

在结构方面,最大的改进是由于中间核心的更大的OOO增长,虽然增长并不都很大,但代表着5%的IPC改进。与L1I和L2缓存增加等其他加倍的结构相比,这似乎是一个相当好的权衡,后者只获得了0.5%和2.5%的好处。

前端的翻倍和更宽的解码从4到8只提高了2%的性能,这是非常温和的,但考虑到较窄的中核调度和相对较窄的执行后端,很可能会受到瓶颈。

IPC中最大的改进是减少了解码器的微操作扩展-Marvell在这里表示,他们在ThunderX2 Vulcan内核上在这方面过于激进,将指令扩展为多个微操作,因此他们显著减少了这一点,这可能缓解了中核的瓶颈,并导致每条实际指令的后端利用率更高。

考虑到IPC增益和频率增益的世代性能改进,我们预计SPECint将获得1.5倍的增益。考虑到我们在TX2上的历史数据,根据这些预测,我们应该预计TX3的表现将比Graviton2高出约10%。

SPECrate增益自然更高,约为性能的2.5倍,这要归功于新设计的更高内核数量进一步放大了微体系结构的改进。

使雷霆系列从竞争中脱颖而出的一件事是它包含了4路SMT,这意味着每个内核可以执行多达4个线程。

从操作系统来看,每个线程都被视为一个完全独立的CPU,并且每个线程都有自己独立的ARM体系结构状态,除了前面提到的滑动缓冲区等极少数例外情况外,它们共享绝大多数内核资源。

微体系结构一直是多线程的,但Marvell进一步重新考虑了SMT对面积的影响,并透露它只占用内核的5%左右。

该公司进一步详细介绍了其SMT的一些机制,例如线程之间的仲裁机制。例如,在获取阶段,内核将挑选当前在内核的流水线中存在的指令量最少的线程,以确保流水线下游的微操作和指令的数量在线程之间达到平衡。我们在分派阶段看到了类似的逻辑,在流水线下游具有最少指令的线程是从滑动缓冲区中挑选出来的。

后端没有线程的概念,只是先执行最旧的微操作。退役优先于备份最多的退役指令的线程进行。

Marvell说,这种线程仲裁在大多数代码上都工作得很好,线程之间的执行延迟相当一致。

SMT可以给表带来的加速与给定工作负载的IPC成反比,这意味着较低的IPC工作负载将看到SMT的最大改进。描述这一点的另一种方式是,以数据平面为中心的工作负载在获取数据以供执行时具有较高的延迟,因此更适合通过SMT隐藏内核的此类瓶颈和空闲期。

低IPC工作负载(如数据库)在IPC中获得了相当大的收益,4个线程的性能最高可达2倍。数据占用越少的IPC工作负载越高,对IPC的好处就越有限。

将其转换为套接字级别的性能,我们可以看到最高可扩展到60个核心,这本质上是处理器的物理核心数量,以及更次线性,但仍然相当可观的最高可扩展到240个线程。性能从60个线程增加到240个线程大约提高了60%,考虑到SMT4对Marvell内核的面积影响非常小,这是一个不错的提升。

当被问及ThudnerX3在竞争中的定位时,Marvell表示,与基于英特尔的产品相比,该公司的单线程性能将略有落后,但将提供更大的多线程吞吐量。相对于AMD(我们假设是罗马),据说TX3在单线程性能上表现更好,AMD在数据共享程度较低的工作负载中处于领先地位,尽管TX3在数据共享程度更高的工作负载(如数据库应用程序)中表现更好。据说Graviton2是一个非常好的芯片,尽管它提供了低频和无线程支持,所以TX3在这些方面会更好。

总体而言,TX3在当前的服务器领域似乎是一个可靠的候选者,然而,除了提供SMT支持这一事实之外,我觉得它并没有太大的不同之处。我觉得CPU的微体系结构仍然相当狭窄,虽然IPC的改进是好的,但Marvell在发布之间的时间也比ARM长得多。在这一点上,仅仅略微胜过Graviton2似乎是不够的,我确实希望基于Altra的设计会更快。

我们将拭目以待ThunderX3在性能和能效方面的最终结果,但除了可以充分利用SMT的数据平面繁重工作负载之外,我觉得对Marvell来说,这可能是一场过于势均力敌的舒适竞赛。对于消费者和企业来说,无论哪种方式都是令人兴奋的,因为这意味着我们在不久的将来将有大量可行的选择。