学习目标

  • 理解内存序模型
  • 实现 Fence 指令
  • 保证顺序一致性

10.1 思考:乱序的问题

// 核心 0
x = 1;
y = 1;

// 核心 1
r1 = y;
r2 = x;

可能出现 r1=1, r2=0!

10.2 RISC-V 内存序

  • RVWMO(弱内存序)
  • Fence 指令强制顺序
fence rw, rw  # 所有访存顺序化

10.3 实现

if (fence_exec) begin
    wait_all_mem_complete();
    flush_store_buffer();
end

思考:Fence 对性能的影响?

下一步

第 11 章:AXI 总线

更新时间: