私は何がメモリバリアであるかを正確に理解しようとしています。 これまで知っていたことに基づいて、メモリーバリアー(例:mfence
)を使用して、メモリーバリアーの前から後、および後ろまでの命令の並べ替えを防止します。メモリバリアはCPUが実行する命令ですか、それとも単なるマーカーですか?
これは、使用中のメモリバリアの例である:
instruction 1
instruction 2
instruction 3
mfence
instruction 4
instruction 5
instruction 6
今私の質問です:mfence
命令は、命令を実行するためにどのような順序でCPUを伝えるだけでマーカーですか?あるいは、CPUが他の命令(例えば、mov
)を実行するように実際に実行する命令です。
CPUが実行する命令ですが、他の種類の命令はありません。 –