当前设置:
如今,大多数最新的英特尔架构都有非包容性的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吗?
发布于 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中错过一次之后,假设出现了家庭窥探模式,则会发生以下情况:
然后,HA检查目录缓存(如果支持和启用),如果丢失,则检查内存中的目录(如果支持和启用),并根据结果向其他NUMA域发送窥探。
所有响应都由HA收集,然后HA将返回请求的行并更新目录。
我不明白你所说的“可以并行完成”是什么意思。
“内存目录”是与DRAM中的缓存线数据位于一起的一个或多个位,指示另一个一致性域是否可能有缓存行的修改副本。
它不只是跟踪修改的副本,而是在任何州的行的存在。
请注意,我们在这里讨论的所有缓存代理都位于同一个一致性域中。这只是一个一致性域。我想你是说另一个NUMA节点。
在类似的设置中,正常的DRAM也会受到随机目录写入的影响吗?
是。如果对目录的访问太多,并且不支持或禁用目录缓存,即使对DRAM也会产生重大影响。但是在3D XPoint中,影响要大得多,因为写入具有更低的行缓冲区局部性(甚至在一般情况下,不仅仅是目录写入),并且3D XPoint的预充电时间要比DRAM高得多。
为什么当DRAM‘内存目录’存在时,PMM需要使用目录一致性协议?
无论是在DRAM中还是在3D XPoint中,一致性状态都与每一行一起存储。读取状态和行只需要一个事务,而不是两个事务,因为所有目录都存储在DRAM中。我不确定哪种设计性能更好--从性能和数量上看,但是用每一行存储状态肯定更简单。
对远程PMM的RDMA请求也需要通过远程DRAM吗?
我不明白这个问题。如果请求的地址被映射到PMM,为什么您认为它必须通过DRAM?
https://stackoverflow.com/questions/65316397
复制相似问题