第 10 章:内存序
学习目标
- 理解内存序模型
- 实现 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 对性能的影响?