У нас есть значения прерываний I/O
для определения приоритетности задачи для лучшего отклика на компьютере, но для какого модуля на компьютере у нас зарезервированы Non-Maskable interrupts
и что такое Non-Maskable interrupts
?
2 ответа
Как правило, ЦП может быть настроен на игнорирование нормальных прерываний (IRQ), и для этой цели предоставляется регистр или бит "Interrupt Disable" или "Interrupt Mask". Это желательно, потому что вы обычно не хотите, чтобы вас снова "прерывали" во время обработки IRQ.
NMI - это прерывание без сброса, которое не может быть замаскировано или проигнорировано ЦП - нет регистров отключения или маски.
Аппаратные средства, которые генерируют NMI, часто могут указывать не генерировать их, поэтому их обычно можно отключить косвенно. Например, в 8-битном NES микросхема дисплея будет генерировать NMI в конце рисования кадра, но вы можете установить определенный бит в определенном регистре, чтобы указывать микросхеме дисплея не делать этого. Другое оборудование, подключенное к выводу NMI ЦПУ, может по-прежнему вызывать NMI.
Аппаратное обеспечение x86 обычно использует NMI для индикации фатальных аппаратных ошибок в чипсете. Windows остановится сразу после получения (пример). Вы не можете использовать NMI для чего-либо другого на оборудовании x86 (РЕДАКТИРОВАТЬ: я могу ошибаться, прочитайте ссылку ниже), и можно сказать, что набор микросхем (или некоторые наборы микросхем) не должны посылать NMI путем записи в определенный Порт ввода / вывода.
Я думаю, что неисправимые ошибки из ОЗУ ECC могут вызвать это. Современные процессоры x86 предоставляют механизм, называемый "Исключения проверки компьютера", который также запускает проблемы, связанные с оборудованием, поэтому новые чипсеты могут делать что-то другое. Прочитайте это для дальнейшего понимания.
Одним из примеров того, где NMI полезен, является встроенная система. Рассмотрим возможность отказа, когда электростатический разряд отправил процессор в сорняки, где он мог застрять в петле.
Если этот цикл происходит, когда обычные прерывания отключены, то система ничего не может сделать для восстановления из режима ошибки. Поскольку NMI не маскируется, т.е. никогда не может быть отключен, сигнал NMI может вернуть процессор в рабочее состояние. Этот сигнал может быть от сторожевого таймера, или сопроцессора, или кнопки, активированной человеком.
Строка сброса аналогична NMI, но не является прерыванием. Невозможно возобновить фоновую задачу, если обработчик прерываний решает, что в действительности это не сбой. У обработчика прерываний NMI есть эта опция.
Рассмотрим такие случаи, как тепловое событие, когда необходимо предпринять шаги для предотвращения повреждения, или сбой питания, когда необходимо выполнить резервное копирование данных в энергонезависимой памяти до полного отключения питания. Это те события, где часто используется NMI.