投稿|IBM,预言了缓存的未来?( 三 )


IBM,告诉他们如何处理缓存新系统取消了带有 L4 缓存的单独存储控制器 。相反,我们有一个看起来像八核的普通处理器 。基于三星 7nm 和 530mm构建,IBM 将两个处理器封装在一起,然后将四个封装(8 个 CPU,64 核)集成到一个单元中 。四个单元构成一个系统,总共 32 个 CPU/256 个内核 。
投稿|IBM,预言了缓存的未来?
文章图片

在单个芯片上,我们有八个内核 。每个内核具有 32 MB 的私有 L2 缓存,具有 19 个周期的访问延迟 。这对于 L2 缓存来说是一个很长的延迟,但它也比 Zen 3 的 L2 缓存大 64 倍,这是一个 12 周期的延迟 。
投稿|IBM,预言了缓存的未来?
文章图片

从芯片设计来看,中间的所有空间都是 L2 缓存 。没有 L3 缓存 。没有可供所有内核访问的物理共享 L3 。如果没有 z15 那样的集中式缓存芯片,这意味着为了让具有一定数量共享数据的代码能够工作,它需要往返主内存,这很慢 。但IBM已经想到了这一点 。
这个概念是L2缓存不仅仅是L2缓存 。
从表面上看,每个 L2 缓存确实是每个核心的私有缓存,而32MB是非常巨大的 。但是,当需要从 L2 逐出缓存行时,无论是处理器有意还是需要腾出空间,而不是简单地消失,它会尝试在芯片上的其他地方寻找空间 。如果它在不同内核的 L2 中找到一个空间,它就会坐在那里,并被标记为 L3 缓存线 。
IBM 在这里实施的是存在于私有物理缓存中的共享虚拟缓存的概念 。这意味着 L2 缓存和 L3 缓存成为相同的物理事物,并且缓存可以根据工作负载的需要包含来自所有不同内核的 L2 和 L3 缓存线的混合 。这对于租户不需要完整 CPU 的云服务(是的,IBM 在其云中提供 IBM Z)或不能完全跨内核扩展的工作负载变得很重要 。
这意味着具有 8 个私有 32 MB L2 缓存的整个芯片也可以被视为具有 256 MB 共享“虚拟”L3 缓存 。在这种情况下,考虑消费领域的等效情况:AMD 的 Zen 3 小芯片具有 8 个内核和 32 MB 的 L3 缓存,每个内核只有 512 KB 的私有 L2 缓存 。如果它实现了像 IBM 这样更大的 L2/虚拟 L3 方案,我们最终会得到每个核心 4.5 MB 的私有 L2 缓存,或者每个小芯片 36 MB 的共享虚拟 L3 。
这种 IBM Z 方案有一个优势,如果一个核心恰好需要位于虚拟 L3 中的数据,而该虚拟 L3 线路恰好位于其私有 L2 中,那么 19 个周期的延迟比共享的低得多 。物理 L3 缓存将是(~35-55 个周期) 。然而,更有可能的是,所需的虚拟 L3 高速缓存线位于不同内核的 L2 高速缓存中,IBM 表示,在其具有 320 GB/s 带宽的双向环互连中,这会导致平均 12 纳秒的延迟 。5.2 GHz 下的 12 纳秒约为 62 个周期,这将比物理 L3 缓存慢,但更大的 L2 应该意味着 L3 使用的压力更小 。但也因为 L2 和 L3 的大小是如此灵活和大,根据工作负载,整体延迟应该更低,工作负载范围应该增加 。
但IBM的设计优势远不止于此 。我们必须更深入地探讨 。
对于IBM Telum,我们在一个封装中有两个芯片,一个单元中有四个封装,一个系统中有四个单元,总共有32个芯片和256个内核 。IBM 没有使用外部 L4 缓存芯片,而是更进一步,使每个私有 L2 缓存也可以容纳相当于虚拟 L4 的缓存 。
这意味着如果一个缓存线从一个芯片上的虚拟 L3 中被逐出,它会去寻找系统中的另一个芯片来生存,并被标记为虚拟 L4 缓存线 。

推荐阅读