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