Немаскируемое прерывание

редактировать

В вычислениях, немаскируемое прерывание (NMI ) - это аппаратное прерывание, которое стандартные методы маскирования прерываний в системе не могут игнорировать. Обычно это происходит, чтобы сигнализировать о неисправимых аппаратных ошибках. (Некоторые NMI могут быть замаскированы, но только с использованием собственных методов, специфичных для конкретного NMI.)

NMI часто используется, когда время отклика критично или когда прерывание никогда не должно отключаться во время нормальной работы системы. Такое использование включает в себя создание отчетов о неисправимых аппаратных ошибках, отладку и профилирование системы, а также обработку особых случаев, таких как перезагрузка системы.

Современные компьютерные архитектуры обычно используют NMI для обработки неисправимых ошибок, которые требуют немедленного внимания. Следовательно, такие прерывания не должны маскироваться при нормальной работе системы. Эти ошибки включают невосстановимые внутренние системные ошибки набора микросхем, повреждение системной памяти, например ошибки четности и ECC, а также повреждение данных, обнаруженное на системной и периферийной шинах.

В некоторых системах пользователь компьютера может запускать NMI с помощью аппаратного и программного обеспечения отладки интерфейсов и кнопок сброса системы.

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

Содержание
  • 1 История
  • 2 См. Также
  • 3 Примечания
  • 4 Внешние ссылки
История

В старых архитектурах NMI использовались для прерываний, которые обычно никогда не отключались из-за необходимого времени отклика. Это были скрытые сигналы. Примеры включают контроллер гибких дисков на Amstrad PCW, сопроцессор 8087 на x86 при использовании в IBM PC или его совместимые устройства (хотя Intel рекомендовала подключить его к обычному прерыванию) и сигнал низкого заряда батареи на HP 95LX.

В исходном IBM PC сработал NMI если ошибка четности была обнаружена в системной памяти или сообщена внешним устройством. В любом случае ПК отобразит сообщение об ошибке и остановится. Некоторые более поздние клоны ПК использовали NMI, чтобы скрыть аппаратные отличия от стандартного ПК. На таких компьютерах NMI будет сгенерирован, когда программа попытается получить доступ к несовместимому оборудованию. Обработчик прерывания BIOS затем преобразовал бы запрос программы в соответствие с фактически присутствующим оборудованием. SMM в 386SL - лучший способ сделать это.

Некоторые 8-битные домашние компьютеры использовали линию NMI для разрешения «горячего старта», если система зависла. Как правило, это восстанавливает регистры управления до заведомо исправных значений, хранящихся в ROM, без уничтожения любых данных, которые пользователь мог в данный момент загрузить. На 8-битных машинах Commodore клавиша RESTORE была подключена прямо или косвенно к линии NMI на ЦП серии 6502, но сброс будет происходить только в том случае, если NMI подпрограмма обработчика в ПЗУ обнаружила, что RUN / STOP также удерживался при нажатии RESTORE (эта комбинация представляет собой Commodore версию приветствия тремя пальцами ). Commodore также подключил MOS Technology 6526 CIA # 2 в C64 и C128 к линии NMI процессора., который был частью средств, с помощью которых выполнялась программная эмуляция 6551 ACIA. В 8-битной строке Atari для этой же цели использовалась кнопка SYSTEM RESET.

Отладочные NMI появились в различных формах, включая «программистскую кнопку» Apple Macintosh и определенные комбинации клавиш на рабочих станциях Sun. С появлением Windows 2000, Microsoft разрешили использование NMI, чтобы заставить систему либо взломать отладчик, либо выгружать содержимое памяти в диск и перезагрузка.

Отладочные NMI также использовались устройствами, которые позволяют отдыхающим пользователям и геймерам манипулировать запущенными программами. Устройства, которые добавляли кнопку для генерации NMI, такие как Multiface от Romantic Robot, были популярным аксессуаром для 8-битных и 16-битных домашних компьютеров 1980-х годов. Эти периферийные устройства имели небольшой объем ПЗУ и кнопку NMI. Нажатие кнопки передает управление программному обеспечению в ПЗУ периферийного устройства, позволяя сохранить приостановленную программу на диск (очень полезно для игр на магнитной ленте без поддержки диска, но также для сохранения текущих игр), снимки экрана для сохранения или печати или ценности в памяти, которыми нужно манипулировать - например, метод обмана для получения дополнительных жизней.

Не все компьютеры предоставляют механизм для запуска NMI; однако многие машины (обычно стоечные серверы) имеют физическую кнопку специально для этой цели. Другие машины могут предоставлять эту функциональность через карту расширения.

Продукты DISCiPLE и + D от Miles Gordon Technology для ZX Spectrum "волшебная кнопка", производящая НМИ.

В Nintendo Entertainment System NMI генерируется во время каждого интервала вертикального гашения. Поскольку эти NMI (часто называемые «прерываниями vblank») происходят через частые регулярные интервалы, код, который управляет игровой графикой и звуком, часто выполняется внутри процедуры обработчика NMI. Очистка 7-го бита регистра $ 2000 PPU отключает прерывания vblank, а его установка включает их.

См. Также
Примечания
Внешние ссылки
Последняя правка сделана 2021-05-31 12:01:40
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте