IT-словарь › Оборудование › NMI (немаскируемое прерывание)

NMI (немаскируемое прерывание)

Оборудование Svenska → Обновлено: 2026-11-03
Подробнее
Автор
Gregory Nutt
Год
2007
Владелец
Apache Software Foundation
Тип
Операционная система реального времени
Лицензия
Apache 2.0
Официальный сайт
nuttx.apache.org

Прерывание, которое процессор не может отключить: оно проходит, даже когда все остальные прерывания запрещены.

Обычные прерывания можно маскировать: код отключает их на время критической секции и обрабатывает после. У NMI такого выключателя нет. Поэтому это канал для событий, важнее которых ничего нет, чем бы ни занималась программа: ошибка чётности памяти, срабатывание сторожевого таймера, отказывающий блок питания.

Идея старая. У 6502 был отдельный вывод NMI, с помощью которого NES будила игру в каждый кадровый гасящий импульс. В x86 ранние ПК сообщали через него об ошибках памяти, а Linux до сих пор использует его для «NMI watchdog», ловящего зависшее ядро. В Cortex-M NMI — исключение номер 2 с фиксированным приоритетом −2; выше только сброс.

Подвох в том, что обработчик NMI может вклиниться куда угодно, в том числе в код, считавший себя защищённым. Поэтому он должен быть коротким и никогда не брать блокировок.

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