Вопросы к Поиску с Алисой
Некоторые отличия атомарных операций в процессорах x86 и RISC:
В процессорах x86 атомарные операции выполняются с использованием инструкций, которые атомарны даже без префикса LOCK. ru.wikipedia.org ru.ruwiki.ru Например, операция XCHG для обмена данными между регистром и ячейкой памяти или между двумя регистрами. ru.ruwiki.ru Также есть основная атомарная инструкция CMPXCHG, которая выполняет сравнение и обмен. ru.ruwiki.ru
В процессорах RISC атомарные операции реализуются с использованием пары инструкций эксклюзивного чтения-записи LL и SC. ru.wikipedia.org ru.ruwiki.ru Процесс происходит так: загрузка с пометкой (LL — load linked), изменение данных, попытка записи (SC — store conditional). ru.wikipedia.org ru.ruwiki.ru Запись данных из регистра в память производится только в том случае, если значение ячейки памяти не менялось. ru.wikipedia.org ru.ruwiki.ru Если значение менялось, три операции (LL, изменение данных и SC) следует повторить. ru.wikipedia.org ru.ruwiki.ru
Таким образом, в процессорах x86 атомарные операции основаны на инструкциях, которые выполняются атомарно без дополнительных условий, в то время как в процессорах RISC атомарные операции реализуются через специальный механизм эксклюзивного доступа к памяти. ru.wikipedia.org ru.ruwiki.ru