Memory Fence and Barrier(内存屏障)

Memory fence 是一条同步指令:排空处理器内部缓冲(Store Buffer、Invalidate Queue、Write Combining Buffer),并强制后续访存排在屏障之后。它是 Memory Consistency Model 在 ISA 层的实现手段——ISA 层 1 条指令,硬件路径却穿透 ROB → LSQ → SBUF → L1 → Coherence/NoC → Directory → 远端 L1/IQ——跨核同步链。

五种「看不见的缓冲」

Out-of-Order Execution 为填满流水线会异步化访存;fence 约束的对象:

缓冲引起的乱序
Store Buffer (SBUF)StoreStore、StoreLoad
Load BufferLoadLoad
Invalidate Queue (IQ)LoadStore(远端 invalidate 先 ack 后处理)
Write Combining BufferStoreStore(x86 WC)
ROB 推测态跨分支 load 乱序

四种顺序约束

类型约束主要跨越
StoreStore旧 store 先于新 store 提交SBUF 排空
LoadLoad旧 load 结果先于新 load 可见Load Buffer / 推测
StoreLoadstore 全局可见后才允许后续 loadSBUF + coherence(TSO 关键)
LoadStoreload 所见 ≤ 后续 store 影响IQ

x86 MFENCE / RISC-V FENCE rw,rw 四者全约束;StoreLoad 最难——需 store 对其他核可见,不只是本核 L1 更新。

MFENCE 微架构路径(Skylake 风格)

MFENCE 入 ROB → 设 Barrier bit → SBUF drain(stall 新 store)
  → 旧 store 写 L1 或发 ReadEx → NoC → Directory → Invalidate 远端 Owner
  → SBUF 空 → MFENCE retire → 后续 load/store 可发射

Invalidate Ack ≠ 处理完成:协议常要求低延迟 ack,但远端 IQ 异步处理 tag——ack 回来不保证其他核已看不到旧值。ARM DSB 等 outstanding coherence;DMB 只排空本核 SBUF/LBUF。

Store Buffer 高性能实现多为 Speculative + Replay(地址消歧);fence 强制 SBUF drain——Skylake/Zen 上单条 MFENCE 约 30–50 cycles

ISA 变体

ISA指令特点
x86MFENCE / LFENCE / SFENCETSO,store 全局有序
ARMDMB / DSBDSB 强于 DMB(含远端 IQ)
RISC-VFENCE pred,succ位掩码组合 rw/w/r
RISC-VFENCE.II/D cache 一致性(自修改代码)
RISC-VFENCE.VMA页表变更 + TLB Shootdown

RISC-V FENCE.VMA 路径:排空 outstanding 访存 → TLB shootdown IPI → 等全核 ack——64 核量级 ~30–100 μs(与 Virtual Memory and TLB 一致;FENCE.VMA 还可能叠加排空 outstanding 访存的开销)。

NoC 与多核延迟

场景延迟量级关键路径
单核 SBUF drain~5–20 cyclesROB → L1 hit
同 socket directory~100–500 nsDirectory 双跳 + Owner
DSB(最严)~500–2000 ns远端 IQ + 全局可见
TLB Shootdown(64 核)~30–100 μsIPI + 全核 TLB flush/ack(见 Virtual Memory and TLB

多核 fence 延迟 ≈ max(本核 SBUF drain, 最远核 IQ 处理);全局 MFENCE 触发 O(N) coherence 消息——众核需 tree barrier 或硬件聚合。

WSE / DSA:无 coherence 的退化

Cerebras WSE 无共享地址空间、无 Cache coherence(DSA Processor Design Tradeoffs):

  • 无 SBUF/IQ/coherence 链 → 无 x86 式 MFENCE 语义
  • 片内同步退化为 PE barrier / 显式 NoC 消息Deterministic Execution
  • NoC 无 shootdown、无 memory ordering traffic——协议大幅简化

开放问题:CPU↔NPU 异构 fence、coherence-light 混合模型下的屏障语义。

相关页面

Citations

[1] memory-fence-hardware-2026-06-28.md — Memory Fence 深度研究报告(2026-06-28) [2] arch-study-30d-day-19.md — H&P Ch.5.4–5.6 一致性模型(Day 19)