Nikolay
Правильно ли понимаю работу мемори барьера ? На каждом ядре помимо кэша L0 есть ещё очередь . И часть операций перед записью в кэш идёт через эту очередь ( для упорядочивания ). И если на одном из процессоров нужно считать по адресу , на который был установлен мемори барьер , то это приводит к фактическому flush на эту очередь
На store-инструкции - да, +- uncached, на load - барьером можно запретить спекуляцию на те load’ы что за барьером. Аппаратно на, собственно, flush очереди могут и забить, главное чтобы состояние в очереди стало глобально видимым