Я пытаюсь понять, что такое барьер памяти. Основываясь на том, что я знаю до сих пор, барьер памяти (например: mfence) используется для предотвращения переупорядочения инструкций от до и после и после этого до барьера памяти.
Это пример используемого барьера памяти:
instruction 1
instruction 2
instruction 3
mfence
instruction 4
instruction 5
instruction 6
Теперь мой вопрос: является ли команда mfence просто маркером, mfence CPU, в каком порядке выполнять инструкции? Или это инструкция, что процессор фактически выполняет, как он выполняет другие команды (например: mov).