加大吞吐量,是时候该装备L4级缓存了
扫描二维码
随时随地手机看文章
处理器性能与广义上的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也不例外。