gpt4 book ai didi

x86-64 - 在 x86-64 上,系统崩溃时 “movnti” 或 "movntdq"指令是原子指令吗?

转载 作者:行者123 更新时间:2023-12-03 16:47:06 26 4
gpt4 key购买 nike

当使用像 Intel optane DCPMM 这样的持久内存时,如果在执行 movnt 指令时系统崩溃(断电),是否可以在重启后看到部分结果?
为了:

  • 4 或 8 字节 movnti哪个 x86 保证原子用于其他目的?
  • 16 字节 SSE movntdq/movntps不能保证是原子的,但实际上可能在支持持久内存的 CPU 上。
  • 32 字节 AVX vmovntdq/vmovntps
  • 64 字节 AVX512 vmovntdq/vmovntps全线门店
  • 奖金问题: MOVDIR64B 在支持它的 future CPU 和 DC-PM 上保证了 64 字节的写入原子性。例如Sapphire Rapids Xeon / Tiger Lake / Tremont .
  • movntpd假定与 movntps 相同.

    相关问题:
  • On x86-64, is the "movnti" instruction atomic?是的
  • Is clflush or clflushopt atomic when system crash?
  • 最佳答案

    以下操作保证是持久原子的:

  • 不跨越 8 字节边界到任何有效内存类型的位置的存储微指令,以及
  • MOVDIR64B .

  • 请注意,英特尔 SDM V3 第 8.1.1 节中提到的所有原子保证都适用于持久内存。
    此外,以下操作始终是原子的:
  • 高速缓存行刷新(CLFLUSHCLFLUSHOPT),
  • 高速缓存行写回 ( CLWB ) 和
  • 非架构高速缓存行逐出。
  • 英特尔处理器上的完整写入组合缓冲区刷新。 WCB 的存在和大小以及刷新的原因是特定于实现的。见:(Persistence) ordering of Intel non-temporal stores to the same cache line .

  • 其他所有内容都没有架构持久原子性保证,包括 64 字节 AVX512 vmovntdq/ vmovntps全线商店。
    这些保证适用于异步 DRAM 刷新 (ADR) 平台和增强型异步 DRAM 刷新 (eADR) 平台。 (在 eADR 上,缓存层次结构位于持久域中。参见: Build Persistent Memory Applications with Reliability Availability and Serviceability.)
    此答案基于我与 Andy Rudoff(英特尔)的私有(private)通信。

    关于x86-64 - 在 x86-64 上,系统崩溃时 “movnti” 或 "movntdq"指令是原子指令吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65558114/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com