x86 БЛОКИРУЮТ вопрос на многоядерных центральных процессорах

Действительно ли это верно, что префикс x86 ASM команды "LOCK" заставляет все ядра замораживаться, в то время как инструкция после "БЛОКИРОВКИ" выполняется?

Я считал это в сообщении в блоге, и оно не имеет смысла. Я не могу найти ничего, что указывает, верно ли это или нет.

33
задан starblue 27 July 2010 в 17:02
поделиться

2 ответа

Речь идет о блокировке шины памяти для этого адреса. Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32 - Том 3A: Руководство по системному программированию, часть 1 сообщает нам:

7.1.4 Влияние операции LOCK на внутренние кэши процессора.

Для процессоров Intel486 и Pentium сигнал LOCK # всегда заявлено в автобусе во время БЛОКИРОВКИ работа, даже если область памяти блокировка кэшируется в процессор.

Для P6 и более поздних процессоров семьи, если область памяти заблокирован во время операции БЛОКИРОВКИ кэшируется в процессоре, который выполнение операции БЛОКИРОВКИ как память с обратной записью и полностью содержится в строке кэша, процессор не может подтвердить LOCK # сигнал на шине . Вместо этого он будет изменить расположение памяти внутри и разрешить согласованность [его] кеша механизм, гарантирующий, что операция осуществляется атомарно. Этот операция называется «блокировкой кеша». Механизм согласованности кеша автоматически предотвращает два или более процессоры с одинаковой площадью память от одновременного изменения данные в этой области. (курсив добавлен)

Здесь мы узнаем, что чипы P6 и более новые достаточно умны, чтобы определять, действительно ли им нужно блокировать шину, или они могут просто полагаться на интеллектуальное кэширование. Думаю, это изящная оптимизация.

Я обсуждал это подробнее в своем сообщении в блоге « Как блокировать блокировку? »

48
ответ дан 27 November 2019 в 18:21
поделиться

Нет, но это может заставить другие процессоры ждать, пока этот процессор обращается к памяти. Имеют ли эти состояния ожидания значение, зависит от того, в какой степени процессоры работают с кэшем.

6
ответ дан 27 November 2019 в 18:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: