【问题标题】:How does DC PMM (memory mode) cache coherence behave?DC PMM(内存模式)缓存​​一致性如何表现?
【发布时间】:2021-03-26 17:00:33
【问题描述】:

当前设置:
当今大多数最新的英特尔架构都具有非包容性 L3 缓存,其中每个切片 (+CHA) 都包含一个“窥探过滤器”,其中包含 L3 目录在包容性情况下将提供的位置信息(这种设计选择可能会避免一致性消息占用超过网状带宽)。大多数还默认启用“内存目录”,可用于过滤远程监听或以其他方式更改一致性事务的本地和远程部分的时间属性。 当访问属于不同套接字的内存位置时,RFO 直接发送到 QPI/UPI 环,而不是 L3+CHA。内核复制 L3 维护的源地址解码器 (SAD) 寄存器,这些寄存器确定哪个 NUMA 节点负责物理地址。一旦 RFO 到达负责的本地代理,它会决定是否必须将窥探发送到其他套接字/内核并响应调用者(可以并行执行此操作)。如果带宽可用,还有 OSB 可以让 L3 进行推测性窥探。

“内存目录”是与 DRAM 中的缓存行数据一起定位的一个或多个位,指示另一个一致性域是否可能具有缓存行的修改副本。
这些位不会针对来自本地核心/缓存的负载进行更新,因为 L3/CHA 会跟踪它。 在 M 状态高速缓存行回写失效后,内存目录位被清除,因为只有一个 L3/CHA 可以使高速缓存行处于 M 状态。

英特尔 DC PMEM,
来自,Intel® 64 and IA-32 Architectures Optimization Reference Manual 第 2.1.31 节
(我想是在内存模式下,虽然他们没有在部分中指定)

在具有多个处理器的系统上,目录用于缓存一致性。该目录实现为分布式内存目录,每个缓存行的一致性状态存储在内存中行本身的元数据中。
如果不同处理器中的内核重复读取 Intel Optane DC Persistent Memory Module 中的同一组行,则每次都会对 Intel Optane DC Persistent Memory Module 进行多次写入记录一致性状态的变化。

这表明 PMM 使用内存目录。

这些写入被称为“目录写入”并且在本质上往往是随机的。因此,其中一些写入可能会降低应用程序可用的有效英特尔傲腾 DC 持久内存模块带宽。

普通 DRAM 是否也会在类似的设置中遭受随机目录写入的影响?
或者在具有 48GB/s 写入 b/w 而 PMM 只有 ~2.3GB/s (1) 的 DRAM 中无关紧要?

当DRAM“内存目录”存在时,为什么PMM需要使用目录一致性协议?

Optane DC Persistent Memory Module 可能被不同的线程访问,如果观察到这种模式,需要考虑的一个选项是将 Intel Optane DC Persistent Memory Module 区域的一致性协议从基于目录更改为基于探听通过在系统范围内禁用目录。

对远程 PMM 的 RDMA 请求是否也需要通过远程 DRAM?

【问题讨论】:

  • 在我看来,在 PMM 中,DC 内存不是缓存,DRAM 是。所以 PMM 不能是非包容性的(只有一个 PMM 系统,所以它包含所有行)。其他 DMA 参与者像往常一样通过系统代理,然后像往常一样进入 DRAM 和 PMM。我认为需要 PMM 中存在的目录缓存,因为 PMM 比(直接映射的)DRAM 缓存大,因此 DRAM 访问不能告诉 PMM 中的哪一行真正被访问(因此通常的缓存机制是不够的)。但是没有 PMM,L3s 中的缓存目录就足够了(DRAM 本身没有目录写入)。
  • 是的,我很确定这仅适用于在“内存模式”下使用 PMM 时,其中 这对操作系统和应用程序是透明的 - 看起来就像有大量的物理内存。手册说系统中的 DRAM 内存被用作内存端缓存(12.1.1 内存模式)。我不知道为什么他们会在 PMM 而不是 DRAM 中保持相干状态;它不打算在重新启动后继续存在。 (同一段解释说,它使用在重新启动时丢弃的密钥对进出 PMM 的数据进行加密。)我根本不知道 Optane DC PM 有这样的模式,整洁。

标签: x86 intel cpu-architecture cpu-cache persistent-memory


【解决方案1】:

当今最新的英特尔架构具有非包含式 L3 缓存 其中每个切片 (+CHA)

自 Skylake 以来,具有服务器非核心设计的处理器在网状互连上具有非包容性 L3。 Tiger Lake (TGL) 是第一个具有客户端非核心设计的同构(仅限大核心)微架构,其中包括非包容性 L3。请参阅:Where data goes after Eviction from cache set in case of Intel Core i3/i7。但是 TGL 中没有使用 CHA 设计。

包括一个“窥探过滤器”,其中包含 L3 的位置信息 如果它是包容性的,就会提供目录

窥探过滤器是一个目录。这两个术语指的是用于保存一致性信息的相同硬件结构。

当访问属于不同套接字的内存位置时, RFO 直接发送到 QPI/UPI 环

片上环形互连不符合 QPI 或 UPI 规范。这些互连实际上彼此之间存在显着差异。在片上互连和在消息格式之间转换的外部互连之间有专用的接口单元。英特尔将 QPI/UPI 用于芯片之间的链接。

当访问属于不同套接字的内存位置时, RFO 直接发送到 QPI/UPI 环,而不是 L3+CHA。

您的意思是从核心访问?从核心到任何地址的所有类型的请求都通过一个缓存代理,它可以是与该核心或同一 NUMA 域中的另一个 CA 并置的代理。当 CA 接收到请求时,它会将请求发送到 SAD(位于 CA 内部)以确定哪个单元应该为请求提供服务。同时,根据请求的类型,它也被发送到相关的 L3 切片(如果存在并启用)进行查找。例如,如果请求是读取 E/F/S 状态的数据缓存行 (RdData),则并行执行 L3 查找操作。如果是从遗留 I/O 空间读取,则不执行查找。如果执行查找并且查找结果未命中,则 SAD 的输出用于确定将请求发送到何处。

一旦 RFO 到达负责的家乡代理,它会决定是否监听 必须发送到其他套接字/核心并响应调用者 (可以并行执行)。

家乡代理(或 CHA 的家乡代理功能)不会在本地发送窥探。在 L3 未命中后,假设 Home Snooping 模式,会发生以下情况:

  • 请求被发送到拥有线路的家乡代理,最终将为请求提供服务。
  • 如果线路所在的 NUMA 域与请求者所在的域不同,则会向拥有该线路的 CA 发送探听请求。
  • 监听请求被发送到与请求者相同的 NUMA 域中的每个 IIO 单元(因为每个 IIO 单元中都有一个缓存)。
  • 监听请求被发送到主 NUMA 域中的每个 IIO 单元。

HA 然后检查目录缓存(如果支持并启用),如果丢失,它会检查内存中的目录(如果支持并启用),并根据结果向其他 NUMA 域发送窥探。

所有响应都由 HA 收集,然后最终发回请求的行并更新目录。

我不知道您所说的“可以并行执行此操作”是什么意思。

“内存目录”是位于缓存行的一位或多位 DRAM 中的数据,指示另一个相干域是否可能具有 缓存行的修改副本。

这不仅仅是跟踪修改后的副本,而是跟踪任何状态下存在的行。

请注意,我们在这里讨论的所有缓存代理都在同一个一致性域中。这只是一个连贯域。我认为您的意思是另一个 NUMA 节点。

普通 DRAM 是否也会受到随机目录写入的影响? 类似的设置?

是的。如果碰巧有太多对目录的访问并且不支持或禁用目录缓存,即使对 DRAM 也会产生重大影响。但是 3D XPoint 的影响要大得多,因为写入的行缓冲区局部性要低得多(即使在一般情况下,不仅仅是目录写入),而且 3D XPoint 的预充电时间远高于 DRAM。

为什么PMM在DRAM的时候需要使用目录一致性协议 '内存目录'存在吗?

无论是在 DRAM 还是 3D XPoint 中,每条线都会存储相干状态。只需要一个事务来读取状态和行,而不是潜在的两个事务将所有目录都存储在 DRAM 中。我不确定哪种设计在性能方面更好以及性能更好,但是用每一行存储状态肯定更简单。

对远程 PMM 的 RDMA 请求是否需要通过远程 DRAM 好吗?

我不明白这个问题。如果请求的地址映射到 PMM,为什么你认为它必须经过 DRAM?

【讨论】:

  • 我无法理解为什么 PMM 首先需要缓存目录。它需要跟踪 DRAM 缓存中的行,但为什么要跟踪访问它们的内核及其状态呢?普通的缓存子系统不能做到这一点,而 PMM 只是显示为一组非常大的 DIMM?
  • @MargaretBloom 内存级目录用于支持具有多个NUMA节点的系统中的“home snooping with directory”一致性模式。 in-memory 目录跟踪一条线是否可能存在于其他 NUMA 节点中,并且在最近的微架构中,它可以跟踪该线可能处于的一致性状态。必须跟踪整个物理主内存中的每 64 字节线.这与 L3 级目录形成对比,后者跟踪同一 NUMA 域中的哪些内核可能具有该行的副本。
  • 这很有意义。谢谢哈迪!
猜你喜欢
  • 2015-09-06
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 1970-01-01
  • 2012-01-01
相关资源
最近更新 更多