Я понимаю, что на уровне ассемблера архитектуры набора инструкций обеспечивают сравнение и обмен и аналогичные операции. Однако я не понимаю, как чип может обеспечить эти гарантии.
Насколько я понимаю, выполнение инструкции должно
- Получить значение из памяти
- Сравните значение
- В зависимости от сравнения, возможно, сохраните другое значение в памяти
Что мешает другому ядру получить доступ к адресу памяти после того, как первое извлекло его, но до того, как оно установит новое значение? Контроллер памяти этим управляет?
edit: если реализация x86 является секретной, я был бы рад услышать, как ее реализует какое-либо семейство процессоров.