logo

Главная Система команд x86 Базовая система команд CPU LOCK

Система команд x86

Программирование - Архитектура и система команд микропроцессоров x86
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

LOCK

Префикс выдачи сигнала блокировки шины LOCK#

Влияние команды на флаги и форматы команды:

OF

DF

IF

TF

SF

ZF

AF

PF

CF

 

 

 

 

 

 

 

 

 

 

Код

Команда

Описание

Проц.

Пример

F0

LOCK

Выдавать сигнал блокировки шины LOCK# во время выполнения следующей за префиксом команды

8086

lock

Описание:

Префикс выдачи сигнала LOCK# (префикс блокировки шины) заставляет процессор установить сигнал LOCK# во время выполнения следующей за ним команды. В многопроцессорной среде этот сигнал может быть использован для гарантии того, что процессор имеет исключительный доступ к любой памяти с распределенным доступом, пока установлен сигнал LOCK#.

Префикс LOCK функционирует только со следующими командами (причем только с теми их формами которые используют операнды в памяти): ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCHG8B, DEC, INC, NEG, NOT, OR, SBB, SUB, XOR, XADD и XCHG. В процессорах, начиная с Intel386, при попытке использования префикса с любой другой командой генерируется особая ситуация #UD.

Команда XCHG всегда производит блокировку шины, независимо от наличия префикса LOCK.

Последовательность чтение-модификация-запись с префиксом LOCK обычно используется для осуществления операции "проверить и установить" по команде BTS.

Целостность префикса LOCK не подвергается воздействию выравниванием полей памяти. Блокировка памяти отслеживается для произвольных невыровненных полей.

Начиная с процессора Pentium Pro, при доступе к памяти с применением префикса LOCK внешний сигнал LOCK# как правило не выставляется, поскольку все обращения обрабатываются чепез внутреннюю КЭШ-память. При этом происходит внутренняя блокировка КЭШ, а за соответствием содержимого КЭШ внешней памяти следит специальный механизм управления КЭШ.

Особые ситуации защищенного режима:

#UD, если префикс LOCK используется с командой не из списка, приведенного выше, другие особые ситуации могут генерироваться последующей (блокированной) командой.

Особые ситуации режима реальной адресации:

#UD, если префикс LOCK используется с командой не из списка, приведенного выше, другие особые ситуации могут генерироваться последующей (блокированной) командой.

Особые ситуации режима V86:

#UD, если префикс LOCK используется с командой не из списка, приведенного выше, другие особые ситуации могут генерироваться последующей (блокированной) командой.

Замечание:

Автоматическая блокировка шины происходит не только при применении префикса LOCK. Существует достаточно широкий диапазон ситуаций, когда процессор для поддержания стабильности производит блокировку данных в памяти, не допуская их изменения. Полное описание всех таких ситуаций и тонкости написания самомодифицирующихся кодов ищите в технических описаниях конкретных микропроцессоров.


Входит в группу команд: Базовая система команд CPU




Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru

Top.Mail.Ru       Сервер радиолюбителей России - схемы, документация,

 соревнования, дипломы, программы, форумы и многое другое!   схемы новости электроники