stringtranslate.com

Interrupción no enmascarable

En informática , una interrupción no enmascarable ( NMI ) es una interrupción de hardware que las técnicas estándar de enmascaramiento de interrupciones en el sistema no pueden ignorar. Por lo general, ocurre para señalar que se deben prestar atención a errores de hardware no recuperables . Algunos NMI pueden estar enmascarados, pero sólo mediante el uso de métodos propietarios específicos para el NMI en particular. Con respecto a SPARC , la interrupción no enmascarable (NMI), a pesar de tener la mayor prioridad entre las interrupciones, se puede evitar mediante el uso de una máscara de interrupción. [1]

Una NMI se utiliza a menudo cuando el tiempo de respuesta es crítico o cuando una interrupción nunca debe desactivarse durante el funcionamiento normal del sistema. Dichos usos incluyen informar errores de hardware no recuperables, depuración y creación de perfiles del sistema y manejo de casos especiales como reinicios del sistema.

Las arquitecturas informáticas modernas suelen utilizar NMI para gestionar errores no recuperables que necesitan atención inmediata. Por lo tanto, dichas interrupciones no deben quedar enmascaradas en el funcionamiento normal del sistema. Estos errores incluyen errores de chipset del sistema interno no recuperables , corrupción en la memoria del sistema, como errores de paridad y ECC , y corrupción de datos detectada en el sistema y los buses periféricos.

En algunos sistemas, un usuario de computadora puede activar una NMI a través de interfaces de depuración de hardware y software y botones de reinicio del sistema.

Los programadores suelen utilizar NMI de depuración para diagnosticar y corregir códigos defectuosos. En tales casos, una NMI puede ejecutar un controlador de interrupciones que transfiere el control a un programa de monitoreo especial. Desde este programa, un desarrollador puede inspeccionar la memoria de la máquina y examinar el estado interno del programa en el instante de su interrupción. Esto también permite depurar o diagnosticar computadoras que aparecen colgadas .

Historia

En arquitecturas más antiguas, las NMI se utilizaban para interrupciones que normalmente nunca se desactivaban debido al tiempo de respuesta requerido. Eran señales ocultas. Los ejemplos incluyen el controlador de disquete en Amstrad PCW , el coprocesador 8087 en x86 cuando se usa en IBM PC o sus compatibles (aunque Intel recomendó conectarlo a una interrupción normal [2] ) y la señal de batería baja en HP. 95LX .

En la PC IBM original , se activaba una NMI si se detectaba un error de paridad en la memoria del sistema o si un dispositivo externo lo informaba. En cualquier caso, la PC mostraría un mensaje de error y se detendría. Algunos clones de PC posteriores utilizaron un NMI para ocultar las diferencias de hardware con respecto al de una PC estándar. En tales computadoras, se generaría un NMI cuando un programa intentara acceder a hardware incompatible. Luego, un controlador de interrupciones del BIOS traduciría la solicitud del programa para que coincida con el hardware que realmente estaba presente. El SMM del 386SL es una mejor manera de hacer esto.

Algunas computadoras domésticas de 8 bits usaban la línea NMI para permitir un "arranque en caliente" si el sistema se bloqueaba. Normalmente, esto restauraría los registros de control a valores buenos conocidos almacenados en la ROM , sin destruir cualquier dato que el usuario pueda haber cargado actualmente. En las máquinas Commodore de 8 bits, la clave RESTORE estaba conectada directa o indirectamente a la línea NMI en la CPU de la serie 6502 , pero el reinicio se llevaría a cabo sólo si la rutina del controlador NMI en la ROM detectaba que también se estaba ejecutando RUN/STOP. mantenido presionado cuando se presionó RESTORE (esta combinación es la versión Commodore de un saludo con tres dedos ). Commodore también conectó el MOS Technology 6526 CIA #2 en el C64 y C128 a la línea NMI del procesador, que fue parte del medio por el cual se logró la emulación de software del 6551 ACIA . La línea de 8 bits de Atari utilizó un botón RESET DEL SISTEMA para este mismo propósito.

Los NMI de depuración han aparecido en varias formas, incluido el "botón de programador" de Apple Macintosh y ciertas combinaciones de teclas en las estaciones de trabajo Sun. Con la introducción de Windows 2000 , Microsoft permitió el uso de un NMI para hacer que un sistema entrara en un depurador o volcara el contenido de la memoria al disco y se reiniciara. [3]

Los NMI de depuración también se han utilizado en dispositivos que permiten a los usuarios recreativos y a los jugadores manipular los programas en ejecución. Los dispositivos que agregaban un botón para generar un NMI, como el Multiface de Romantic Robot , eran un accesorio popular para las computadoras domésticas de 8 y 16 bits de los años 80. Estos periféricos contaban con una pequeña cantidad de ROM y un botón NMI. Al presionar el botón se transfirió el control al software en la ROM del periférico, lo que permitió guardar el programa suspendido en el disco (muy útil para juegos basados ​​en cinta sin soporte de disco, pero también para guardar juegos en progreso), guardar o imprimir capturas de pantalla. , o valores en la memoria para ser manipulados (una técnica de trampa para adquirir vidas extra, por ejemplo).

No todas las computadoras proporcionan un mecanismo para activar NMI; sin embargo, muchas máquinas (normalmente servidores montados en bastidor ) proporcionan un botón físico específicamente para este propósito. Otras máquinas pueden exponer esta funcionalidad a través de una tarjeta de expansión. [4]

Los productos DISCiPLE y +D de Miles Gordon Technology para ZX Spectrum presentaban un "botón mágico" que producía NMI.

En Nintendo Entertainment System , se genera un NMI durante cada intervalo de supresión vertical . Debido a que estas NMI (a menudo denominadas "interrupciones vblank") ocurren a intervalos frecuentes y regulares, el código que manipula los gráficos y el audio del juego a menudo se ejecuta dentro de la rutina del controlador NMI. Borrar el séptimo bit del registro $2000 de la PPU deshabilita las interrupciones vblank y configurarlo las habilita.

Ver también

Notas

  1. ^ "Niveles de interrupción" . Consultado el 30 de noviembre de 2023 .
  2. ^ "8.7.2: Submodo de compatibilidad con MS-DOS *". Manual del desarrollador de software de arquitecturas Intel® 64 e IA-32. vol. 1. Corporación Intel . Junio ​​de 2013. págs. 8–31.
  3. ^ "Cómo generar un archivo de volcado de memoria completo o un archivo de volcado de memoria del kernel utilizando un NMI en un sistema basado en Windows". Microsoft . 2011-06-08 . Consultado el 31 de agosto de 2013 .
  4. ^ "Tarjeta de interruptor de volcado PCI". Conecte Tech Inc. Consultado el 31 de agosto de 2013 .

enlaces externos