×
嵌入式 > 存储技术 > 详情

加大吞吐量,是时候该装备L4级缓存了

发布时间:2020-12-29 发布时间:
|
广义上来说,处理器性能与广义上的DRAM主存储器性能之间的差距至少在三十年前就成为一个问题。但在此期间,那些聪明的硬件和软件工程师创建了缓存层次结构的以及可以利用缓存层次结构的软件来缓解相关问题。

但是,随着我们坐在不断扩展的内存层次结构的风口浪尖上,诸如Optane 3D XPoint(相变内存的一种变体)之类的持久性内存已应用于DIMM和SSD尺寸因素以及诸如CXL,OpenCAPI,CCIX,NVLink和Gen等新协议,同时Gen-Z也被用来把处理器和加速器存储器连贯地(对称地或非对称地)连接在一起。

我们不得不思考:是时候向服务器添加4级缓存了吗?

由于有这么多不同的设备挂在CPU组件上(有些相对较近,有些相对较远),因此逻辑上想知道是否需要另一个高速缓存级别来掩盖这些其他内存的延迟并提高整体系统吞吐量。

为了了解可能的情况,我们与IBM,Intel,AMD和Marvell的服务器芯片架构师联系,以了解他们对使用L4高速缓存存储器的想法。在服务器上。L4缓存绝不是一个新的发展,但在系统体系结构中也不是司空见惯。

但是在我们进行讨论之前,需要先了解一些背景知识。

在1980年代后期,工程师向处理器添加了1级高速缓存,当时只有一种核心方式,这是在向内存子系统添加总体延迟以换取绝对降低处理器对数据和指令请求的总体平均延迟之间进行的权衡。

L1缓存最初是外部SRAM,它们安装在主板上并连接到CPU内存组合中。这个L1高速缓存在时钟时间和主板空间上都非常靠近处理器,这意味着CPU可以保持忙碌的状态。最终,这些1级缓存被拆分,因此它们可以将常用数据存储在一个块中,而流行指令存储在另一个块中,这有助于提高性能。

随着处理器时钟速度的提高以及CPU速度和DRAM速度之间的差距进一步扩大,L2高速缓存被添加到进来,但更臃肿,更慢,更便宜(基于每个位或每个带宽),再次在CPU封装之外,然后集成在上面。而且,当越来越多的内核被添加到CPU以及更多的DRAM存储器控制器来馈送(feed)它们时,甚至更大的L3高速缓存块也被添加到层次结构中以保持这些CPU的馈送。

在大多数情况下,这已经很好地解决了。在大多数CPU设计中,有一些经验法则可以反映出处理中缓存层次结构的级别,因为我们打算采用第四层。

英特尔的芯片工程师兼架构师克里斯·吉亚诺斯(Chris Gianos)领导了许多上一代至强处理器的设计,他这样解释道:“通常,对于每个缓存级别,我们都需要将它们增加一个合理的数量以达到上一个级别,以使其有意义,着是因为您需要足够有趣的命中率( hit rate)才能对系统性能产生显着影响。如果您仅在百分之几的时间访问高速缓存,那么可能很难注意到。其他所有东西都会淹没您的演奏,而您并没有动太多。因此,您需要相对较大的缓存,而在谈论更高级别时,则需要非常大的缓存。现在,我们的L2以兆字节为单位,而我们的L3以数十或数百兆字节为单位。显然,如果您开始考虑使用L4高速缓存,那么可能不是数百兆字节就是几百兆字节。而且由于它们很大,因此它们的成本无疑是一个问题。您必须付出足够的努力才能使其变得有趣,而且价格也不菲。”

AMD的架构师则不愿直接对话,因为他们不希望AMD被误解,让大家觉得AMD承诺将在Epyc处理器系列中添加L4缓存,但其实AMD并没有说出这样的话。但是它确实意识到这是下一步要考虑的事情,就像英特尔一样。

他们相信每个架构师都在考虑L4缓存,并且他也分享了一些想法。基本上,AMD的相关人士表示,缓存层数和延迟之间的折衷已经在行业和学术界进行了很好的研究,并且对于每个更大,更慢且访问更广泛的新缓存层,必须进行必要的折衷,以增加通往DRAM的总路径,因为大多数设计不会与上层的高速缓存标签查找并行地连续地推测性地访问层次结构中更下方的高速缓存层。当Gianos说您需要在命中率和缓存容量之间找到平衡时,这正是Intel在上面所说的,那就意味着L4也不例外。

而IBM则早在2000年代就在其自己的某些X86芯片组中添加了L4缓存,并在2010年在System z11大型机的NUMA互连芯片组中添加了L4缓存。

z11处理器具有四个内核,每个内核具有64 KB的L1指令和128 KB的L1数据高速缓存,以及每个内核1.5 MB的L2高速缓存和在这四个内核之间的24 MB共享L3高速缓存。z10的NUMA芯片组具有两排96 MB的L4缓存,总计192 MB。

使用z12,IBM将数据高速缓存的容量减少到每个内核98 KB,但将每个内核的L2高速缓存增加到2 MB,同时将其分成指令和数据一半,例如L1高速缓存。L3高速缓存在裸片上的六个内核上增加了一倍,达到48 MB,而NUMA芯片组上实现的这对芯片的L4高速缓存容量增加到384 MB。

在System z处理器世代中,高速缓存已经全部增长,去年9月发布z15处理器后,这对L1高速缓存对每个的大小为128 KB,这对L2高速缓存对的大小每个为4 MB,并且跨12个内核的共享L3高速缓存Die的大小为256 MB。z15大型机中的L4缓存在NUMA芯片组中具有960 MB的L4缓存,在五个可扩展到190个内核的完整系统中,总共有4.68 GB。

正如我们之前指出的那样,Power8和Power9处理器都具有缓冲内存,并且IBM在每个“ Centaur”缓冲区中添加了16 MB的L4高速缓存块,每个插槽中的32个记忆棒总共有128 MB的L4高速缓存。使用Power9,低端计算机没有缓冲的内存,因此没有L4缓存。但IBM的架构师完成Power10设计并之后,现在正在执行Power11设计的最后冲刺,所以无法拨通电话,但是掌管Power10的工作的William Starke还是花了一点时间将这种想法加进去:

“通常,我们发现大型的末级缓存为企业工作负载提供了显着的性能价值,” Starke 通过电子邮件向The Next Platform解释。(我们曾在2019年8月与Starke讨论过使用Power9和Power10芯片提高主存储器组的带宽。用于在存储类内存层次结构中进行缓存(可能类似于L4)。”

这正是我们的想法。顺便说一句,我们不建议L4高速缓存一定要位于将来的DDR5 DIMM上的缓冲内存上或旁边。它可能更适合处理器上的PCI-Express和L3高速缓存之间,或者更适合存储缓冲区中以及PCI-Express总线和L3高速缓存之间。这可能意味着将其堆叠在I / O和内存控制器集线器芯片的顶部,形成类似于英特尔Foveros技术的未来小芯片服务器体系结构。

现在,公平地说,还有另一种看待这种情况的方法,那就是IBM拥有裸片尺寸和晶体管,并且没有为System z NUMA互连或Power8和Power9内存缓冲芯片添加L4高速缓存。这本身就是目标,但最好的办法是一旦添加了其他必需的功能,即可在这些设备上使用剩余的晶体管预算。

有时我们认为,相对于可以放置的L3缓存数量,Intel X86处理器上的内核数量是机会。有时候,英特尔似乎会为每个芯片设置一个L3缓存预算,然后对于三个不同大小的至强芯片来说,这一切都应有尽有。而在最近的世代中,具有10、18或28个内核的Xeon芯片采用14纳米工艺。

虽然这还没有定论,但是这表明IBM和其他芯片组制造商可能会增加L4缓存。它不仅可以帮助一些人,而且很显然可以尝试。我们把这样的I / O怪物看作System z的大型机,毫无疑问,IBM已经在那里放置工作的最好的L4缓存权,并通过增加这些机器的吞吐量,允许他们在运行带来的价值给客户一个随着大型机中处理器核心数量和NUMA规模的增长,而CPU利用率持续达到98%至99%。

并没有人规定L4缓存必须由嵌入式DRAM(就像IBM对其芯片所做的那样)或更昂贵的SRAM构成,一个曾经任职于Cray Research,Sun Microsystems,Oracle,Broadcom,Cavium和Marvell的芯片架构师Rabin Sugumar提醒我们。

Sugumar说:“就目前而言,我们的L3已经很大。” “因此,针对您正在谈论的这个特定用例,必须使用不同的技术来制作L4缓存。也许是eDRAM,甚至是HBM或DRAM。在这种情况下,一个看起来很有趣的是——L4高速缓存实现是将HBM用作高速缓存,而不是延迟高速缓存,而不是带宽高速缓存。这样做的想法是,由于HBM容量有限且带宽较高,因此我们可以获得一些性能提升,并且在带宽受限的使用案例中我们确实看到了显着的收益。缓存未命中数。但是,就性能和成本而言,需要做的数学就是添加另一个缓存层是否值得。

(再次,Sugumar与我们谈论此事并不意味着 Marvell致力于向未来的ThunderX处理器添加L4缓存。但这的确意味着架构师和工程师总是在很久以前就尝试过想法-通常是通过模拟器来实现的。蚀刻到晶体管中。)

Sugumar说,另一个可能的类似L4的缓存选项是使用本地DRAM作为缓存。“这不在开发实验室之类,而是诸如此类,但是假设我们的芯片上有一个高带宽接口,该接口将连接到电线另一端某个地方的共享分布式内存,距离在500纳秒到一微秒之间。然后,一个用例是创建一个缓存,将该数据从共享的分布式DRAM移到本地DRAM。我们可以想象运行一个管理内存的硬件状态机,因此在大多数情况下,它占用本地DRAM,并且可以最大程度地减少访问共享DRAM的次数。”

对我们来说,这听起来像是一种时髦的NUMA。顺便说一下,Sugumar在Sun Microsystems致力于高端并行系统的分布式内存。但拥有这些不同的内存层次结构的一个问题是,如果其中之一由于网络或互连故障而丢失,那么整个计算机就会崩溃。所以你必须要更好地解决这些问题。

另一件事是,我们希望任何更高级别的缓存(即使不是L4缓存)也要在硬件中尽可能多地实现,并且软件调整和应用程序更改尽可能少。无论是添加内核还是L3或L4高速缓存或可寻址的持久性内存,操作系统内核和系统软件都需要一段时间才能赶上硬件。

Gianos说:“在某种程度上,不可避免地要达到另一个缓存级别。” “我们拥有第一级缓存,最终有了第二级。最终我们增加了第三级,我们也将获得第四级,剩下的只是时间问题。而且我认为您的观察表明,那里有很多机会是好的。但是,您知道,英特尔尚未确定我们愿意在何时或为什么进行宣传。其他公司也在研究它。如果他们不考虑就太愚蠢了,因为它迟早会发生。”



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
手机内存:NAND优势明显.NOR风光不再