在研究RISC-V ISA时,我在内存模型部分看到了一个指令(FENCE指令)。它的确切含义是什么?
在研究RISC-V ISA时,我在内存模型部分看到了一个指令(FENCE指令)。它的确切含义是什么?
来源:RISC-V ISA(第2.7节第20页)
根据Chris P的评论:
通过FENCE指令,可以单独控制I/O(I和O标志)和内存访问(R和W)。例如:您可以控制只有内存写入应由FENCE排序,但内存读取和I/O操作不受FENCE的影响。为此,应设置PW和SW位。如果仅设置了PW(前任写入),则FENCE将确保在FENCE之前所有内存写入也被其他harts(线程)观察到,但是FENCE之后的内存写入也可以在FENCE之前被观察到。
在使用FENCE指令时,我发现有一种情况是必要的。
IMAFD
(这是不带围栏的 G),所以我想知道它是否更好。 - Aaron Franke