当前设置:
当今大多数最新的英特尔架构都具有非包容性 L3 缓存,其中每个切片 (+CHA) 都包含一个“窥探过滤器”,其中包含 L3 目录在包容性情况下将提供的位置信息(这种设计选择可能会避免一致性消息占用超过网状带宽)。大多数还默认启用“内存目录”,可用于过滤远程监听或以其他方式更改一致性事务的本地和远程部分的时间属性。当访问属于不同套接字的内存位置时,RFO 直接发送到 QPI/UPI 环,而不是 L3+CHA。内核复制 L3 维护的源地址解码器 (SAD) 寄存器,这些寄存器确定哪个 NUMA 节点负责物理地址。一旦 RFO 到达负责的家乡代理,它决定是否必须将窥探发送到其他套接字/内核并响应调用者(可以并行执行此操作)。如果带宽可用,还有 OSB 可以让 L3 进行推测性窥探。
“内存目录”是与 DRAM 中的高速缓存行数据一起定位的一个或多个位,指示另一个相干域是否可能具有高速缓存行的修改副本。
这些位不会针对来自本地核心/缓存的负载进行更新,因为 L3/CHA 会跟踪它。在 M 状态高速缓存行回写失效后,内存目录位被清除,因为只有一个 L3/CHA 可以使高速缓存行处于 M 状态。
英特尔 DC PMEM、
From、英特尔® 64 和 IA-32 架构优化参考手册第 2.1.31 节
(我想是在内存模式下,尽管他们没有在该节中指定)
在具有多个处理器的系统上,目录用于缓存一致性。该目录实现为分布式内存目录,每个缓存行的一致性状态存储在内存中行本身的元数据中。
如果不同处理器中的内核重复读取 Intel Optane DC Persistent Memory Module 中的同一组行,则每次都会对 Intel Optane DC Persistent Memory Module 进行多次写入,记录一致性状态的变化。
这表明 PMM 使用内存目录。
这些写入被称为“目录写入”并且在本质上往往是随机的。因此,其中一些写入会降低应用程序可用的有效 Intel Optane DC Persistent Memory Module 带宽。
在类似的设置中,普通 DRAM 也会遭受随机目录写入的影响吗?还是在具有 48GB/s 写入 b/w 而 PMM 只有 ~2.3GB/s (1)
的 DRAM 中无关紧要?
当 DRAM 内存目录存在时,为什么 PMM 需要使用目录一致性协议?
Optane DC Persistent Memory Module 可能被不同的线程访问,如果观察到这种模式,需要考虑的一个选项是通过禁用目录系统范围。
对远程 PMM 的 RDMA 请求是否也需要通过远程 DRAM?