首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DC PMM (内存模式)缓存一致性是如何表现的?

DC PMM (内存模式)缓存一致性是如何表现的?
EN

Stack Overflow用户
提问于 2020-12-16 02:19:59
回答 1查看 304关注 0票数 4

当前设置:

如今,大多数最新的英特尔架构都有非包容性的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和IA-32架构优化参考手册 2.1.31节

(我想在内存模式下,尽管他们没有在部分中指定)

在具有多个处理器的系统上,一个目录用于缓存一致性。该目录被实现为一个分布式内存目录,每个缓存行的一致性状态都存储在内存中的行本身的元数据中。 在不同处理器中有内核重复读取Intel Optane持久存储模块中的同一组行的情况下,将多次写入Intel Optane持久存储模块,记录每次一致性状态下的变化。

这表明PMM使用内存目录。

这些写被称为“目录写”,并且在本质上是随机的。因此,其中一些写操作可以降低应用程序可用的Intel光导纤维直流持久存储器模块的有效带宽。

在类似的设置中,正常的DRAM也会受到随机目录写入的影响吗?

或者在写入b/w为48 of /s的DRAM中,PMM只有~2.3GB/s的(1)并不重要。

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

Optane持久内存模块可以被不同的线程访问,如果观察到这种模式,需要考虑的一种选择是,通过禁用目录系统范围的目录,将Intel Optane持久存储模块区域的一致性协议从基于目录的变为基于窥探的。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-17 22:06:30

今天,最新的英特尔体系结构都有非包容性的L3缓存,其中每个片段(+CHA)

带有服务器核心设计的处理器在自Skylake以来在网状结构上具有一个非包容的L3。泰格湖(TGL)是第一个同质(仅大核心)微体系结构的客户端核心设计,其中包括一个非包容性的L3。见:在将数据从缓存集中逐出后,在Intel Core i3/i7的情况下。但茶的设计并没有在TGL中使用。

包括一个“窥探筛选器”,其中包含L3目录如果包含的话会提供的位置信息。

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

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

片上环互连不符合QPI或UPI规范.这些互连实际上彼此之间有很大的不同。在片上互连和外部互连之间有专门的接口单元,可以在消息格式之间进行转换。英特尔使用QPI/UPI作为芯片之间的链接。

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

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

一旦RFO到达负责的本地代理,它就会决定是否必须将监听发送到其他套接字/核心,并返回给调用者(可以并行执行)。

本地代理(或CHA的本地代理功能)不会在本地发送窥探。在L3中错过一次之后,假设出现了家庭窥探模式,则会发生以下情况:

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

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

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

我不明白你所说的“可以并行完成”是什么意思。

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

它不只是跟踪修改的副本,而是在任何州的行的存在。

请注意,我们在这里讨论的所有缓存代理都位于同一个一致性域中。这只是一个一致性域。我想你是说另一个NUMA节点。

在类似的设置中,正常的DRAM也会受到随机目录写入的影响吗?

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

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

无论是在DRAM中还是在3D XPoint中,一致性状态都与每一行一起存储。读取状态和行只需要一个事务,而不是两个事务,因为所有目录都存储在DRAM中。我不确定哪种设计性能更好--从性能和数量上看,但是用每一行存储状态肯定更简单。

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65316397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档