Английское слово Серийный - прилагательное :
происходит в серии, а не одновременно
Компьютеры.
a) или относящиеся к кажущемуся или фактическому выполнению операций по обработке данных по одному (отличается от параллельных).
b) или относящиеся к передаче или обработке каждой части целого в последовательности, как каждый бит байта или каждый байт компьютерного слова (отличается от параллельного).
( Сериализация также может означать преобразование представления объекта в поток битов или поток байтов, который можно сохранить на диск или отправить по сети вне программы. Ноэто не значение, которое применяется в контексте sfence
).
База данных https://en.wikipedia.org/wiki/Serializability является более тесно связанной концепцией.
SFENCE заказывает глобальную видимость более ранних магазинов относительно самой SFENCE, а затем более поздних магазинов. Сериализация = наложение порядка на вещи, предотвращение их наложения или параллельного выполнения.
Обратите внимание, что в терминологии Intel «инструкция сериализации» имеет особое значение: инструкция, котораяочищает буфер хранилища и конвейер инструкций, вышедших из строя, прежде чем любые последующие инструкции смогут выполнить .(Они могут декодировать и, возможно, даже выдавать ядро из строя, но не выполнять). Сколько инструкций по барьерам памяти имеет процессор x86?
sfence
- это , а не - "инструкция сериализации" в этом смысле;это только заказывает магазины NT относительно друг друга и обычных магазинов.(Обычные магазины уже заказаны по отношению друг к другу, поэтому sfence
не действует, если в полете нет магазинов NT. Все, что вам нужно для правильной семантики релиза, - это разместить обычные магазины в правильном порядке, например, с барьером компиляторапрекратить переупорядочение во время компиляции.)
"сериализация" в определении Intel sfence
- это просто простое английское значение термина, а не специальное значение "инструкция по сериализации" x86.
Текущая формулировка Ручной ввод Intel ISA для sfence
:
Intel переписала вступительный абзац, чтобы сказать «заказы» вместо «сериализовать»,кроме краткого описания: Сериализует операции хранилища.
Основное описание:
Заказывает выполнение процессора относительно всех хранилищ памяти перед инструкцией SFENCE.Процессор гарантирует, что каждый магазин до SFENCE будет виден глобально, прежде чем любой магазин после SFENCE станет глобально видимым.Инструкция SFENCE упорядочена относительно хранилищ памяти, других инструкций SFENCE, инструкций MFENCE и любых команд сериализации (таких как инструкция CPUID).Он не упорядочен в отношении загрузок памяти или инструкции LFENCE.
Первое предложение, тем не менее, по-прежнему неестественно. Выполнение не упорядочено, только фиксация в кэш L1d.