cost 129 ms
clwb+sfence,如果写入是缓存行对齐的,我们可以删除 sfence 吗? - clwb+sfence, can we remove sfence if writes are cache-line aligned?

根据 clwb 订购信息(链接), " CLWB 指令仅按存储围栏操作排序。例如,软件可以使用 SFENCE、MFENCE、XCHG 或 LOCK 前缀指令来确保回写中包含先前的存储。CLWB 指令不需要按以下顺序排序“ 如果 Intel X86-64 上的操作集如下所示,如果写入 (A) 和写 ...

(持久性)将英特尔非临时存储排序到同一缓存行 - (Persistence) ordering of Intel non-temporal stores to the same cache line

非临时存储(例如 movnti)是否按程序顺序到达 memory 由同一线程发出的同一高速缓存行? 因此,对于带有 NVRAM 的系统(例如带有 Intel 3D XPoint NVRAM 的 Intel Cascade Lake 处理器),在发生崩溃时,缺少重新排序可以保证写入同一缓存行的前缀占上 ...

Intel Optane Persistent Memory 上的 clwb 和 ntstore 的延迟是多少? - What is the latency of `clwb` and `ntstore` on Intel's Optane Persistent Memory?

文中写到,optane PM的clwb和ntstore的8字节顺序写入延迟分别为90ns和62ns,顺序读取为169ns。 但在我使用 Intel 5218R CPU 的测试中, clwb约为 700ns, ntstore约为 1200ns。 当然,我的测试方法和论文是有区别的,但是结果太差了, ...

如何使用非时间(流)存储指令来存储自定义结构? - how to use non-temporal (streaming) store instructions to store a self-defined struct?

我刚刚开始使用非临时存储指令将某些类型的数据存储到 memory(可以是 DRAM 或 NVM)。 我查看了 Intel Intrinsics Guide 以了解此类存储函数,并找到了 _mm_stream_si32、_mm_stream_si18、_mm_stream_si256 等函数。似乎这 ...

在 kubernetes 1.20 中安装到持久内存支持的本地持久卷失败 - Failed mounting to Persistent-Memory-Backed local persisten volume in kubernetes 1.20

我正在尝试使 k8s pod 能够在不使用privileged mode的情况下使用 PMEM。 我正在尝试的方法是在 k8s 中使用 PVC 在 fsdax 目录之上创建一个本地 PV,并让我的 pod 使用它。 但是,我总是收到MountVolume.NewMounter initializat ...

为什么“movnti”后跟“sfence”保证持久排序? - Why “movnti” followed by an “sfence” guarantees persistent ordering?

SFENCE 防止 NT 存储在 SFENCE 本身之前从存储缓冲区提交。 NT 存储数据直接从存储缓冲区进入 LFB。 因此 SFENCE 只能保证数据进入 LFB 的顺序。 例如, 这里的 SFENCE 只能保证第一个 NT 存储将比下一个更早地提交到 LFB。 但是,由于 LFB 是易失 ...

在 x86-64 上,当系统崩溃时,“movnti”或“movntdq”指令是原子的吗? - On x86-64, is the “movnti” or “movntdq” instruction atomic when system crash?

当使用像 Intel optane DCPMM 这样的持久 memory 时,如果在执行 movnt 指令时系统崩溃(断电),是否可以在重启后看到部分结果? 为了: 4 或 8 字节movnti哪个 x86 保证原子用于其他目的? 16 字节 SSE movntdq / movntps不能保证 ...

DC PMM(内存模式)缓存一致性如何表现? - How does DC PMM (memory mode) cache coherence behave?

当前设置: 当今大多数最新的英特尔架构都具有非包容性 L3 缓存,其中每个切片 (+CHA) 都包含一个“窥探过滤器”,其中包含 L3 目录在包容性情况下将提供的位置信息(这种设计选择可能会避免一致性消息占用超过网状带宽)。 大多数还默认启用“内存目录”,可用于过滤远程监听或以其他方式更改一致性事 ...

clwb 是否负责存储缓冲区中的写入? - Does clwb take care of the write in store buffer?

英特尔软件手册说clwb “将包含用内存操作数指定的线性地址的缓存行(如果修改)写回内存,该线性地址来自缓存一致性域中缓存层次结构的任何级别。该行可以保留在缓存层次结构中未修改的状态。 clwb 是根据较旧的写入缓存线被回写的顺序排序的“ 我的问题是,在下面的伪代码中 clwb 是否负责存储 ...

RISC-V 指令将脏缓存行写入下一级缓存 - RISC-V instruction to write dirty cache line to next level of cache

是否有任何 RISC-V 指令将脏缓存行写回下一级缓存,或主 memory,如x86中的 clwb 或 ARMv8-A 中的cvac ? 我想确保对非易失性持久 memory 的承诺。 我的意图是为 RISC-V 改编下面提到的 ARMv8_A 代码并在 Gem5 中执行它。 #代码 ...

计算写入挂起队列的分配数量 - NV 内存出现意外的低结果 - Counting number of allocations into the Write Pending Queue - unexpected low result on NV memory

我正在尝试使用一些非核心硬件计数器,例如: skx_unc_imc0-5::UNC_M_WPQ_INSERTS 。 它应该计算写入挂起队列的分配数量。 该机有2颗Intel Xeon Gold 5218 CPU,采用cascade Lake架构,每个CPU有2个内存控制器。 linux 版本是 5 ...

英特尔的 CLWB 指令使缓存行无效 - Intel's CLWB instruction invalidating cache lines

我正在尝试为英特尔的clwb指令找到不会使缓存行无效的配置或内存访问模式。 我正在使用 NVDIMM 对 Intel Xeon Gold 5218 处理器进行测试。 Linux 版本是 5.4.0-3-amd64。 我尝试使用 Device-DAX 模式并将这个字符设备直接映射到地址空间。 我还尝 ...

区分 volatile 和持久变量,它会影响正确性吗? - Distinguishing volatile vs persistent variable, does it affect correctness?

根据我对持久性编程模型的理解,正确区分 volatile 变量和持久性变量取决于程序员。 持久变量需要某种原子更新,以便在发生电源故障时,恢复程序可以将程序的数据清理到一致的状态。 例如,如果我使用持久内存支持的程序将一个节点插入到链表的开头,我将必须执行以下操作: 创建包含新数据的新节点 ...

用于写入和读取的持久内存缓存策略 - Persistent memory cache policy to write and read

是否有人知道在 App Direct 模式(即作为非易失性内存)下尝试使用英特尔傲腾DC 内存(DCPMM) 使用直写 (WT) 或不可缓存( UC)内存策略? 这个想法是将常规内存用作非易失性(在发生故障时数据不会丢失),具有脏缓存线并不理想,因为它是易失性的。 有多个链接显示了使用回写 (WB) ...

如何在 x86 上读取过时的值 - How to read stale values on x86

我的目标是在没有缓存一致性的情况下读取过时和过时的内存值。 我试图使用prefetchnta来执行非临时加载,但它无法获取过时的值。 我正在考虑执行某种流式内存到内存直接内存访问,但由于继续我当前的项目所需的大量背景知识,我遇到了一些麻烦。 目前我正试图弄乱udmabuf ,但即使这样也进展缓慢。 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM