IT-словарь › Оборудование › Эксклюзивный монитор (LDREX/STREX)

Эксклюзивный монитор (LDREX/STREX)

Оборудование Svenska → Обновлено: 2026-11-04

Аппаратный механизм ARM для атомарного «прочитать–изменить–записать»: загрузка помечает адрес, а запись удаётся, только если за это время к нему никто не прикасался.

LDREX читает значение и просит монитор следить за этим адресом. Программа вычисляет новое значение, и STREX пытается записать его обратно. Если тем временем что-то произошло — другое ядро записало туда или вклинилось прерывание, — запись не удаётся, STREX возвращает 1, и код идёт на новый круг. Принцип называется load-linked/store-conditional и был ещё в MIPS; в ARM он появился с ARMv6.

В Cortex-M3 и новее каждый вход в исключение сбрасывает монитор, так что инкремент в главном цикле не столкнётся с таким же инкрементом в обработчике прерывания. В Cortex-M0 этих инструкций нет вовсе, поэтому атомарные операции там делают, маскируя прерывания внутри критической секции.

← Назад к словарю