x86 имеет связные кэши. Последний процессор, который записывает в строку кэша, получает все это и выполняет запись в кэш. Это гарантирует, что однобайтовые и 4-байтовые значения, записанные в соответствующих значениях, будут атомарно обновлены.
Это отличается от "его безопасно". Если каждый из процессоров выполняет запись только в байты / DWORDS, «принадлежащие» этому процессору, то обновления будут корректными. На практике вы хотите, чтобы один процессор считывал значения, записанные другими, и это требует
синхронизации.
Он также отличается от "эффективного". Если несколько процессоров могут писать в разные места в строке кэша, то строка кэша может пинг-понг между процессорами, и это намного дороже, чем если бы строка кэша уходила в один процессор и оставалась там.
Обычное правило - помещать специфичные для процессора данные в собственную строку кэша.
Конечно, если вы собираетесь написать только одно слово, только один раз, и
объем работы является значительным по сравнению с перемещением строки кэша, то
Ваше выступление будет приемлемым.