Está en la página 1de 9

INTERUPCIONES DE

HARDWARE
Interrupción (también conocida como interrupción
hardware o petición de interrupción) es una señal
recibida por el procesador de un ordenador, indicando
que debe "interrumpir" el curso de ejecución actual y
pasar a ejecutar código específico para tratar esta
situación.
Una interrupción supone la ejecución temporaria de
un programa, para pasar a ejecutar una "subrutina de
servicio de interrupción", que pertenece al BIOS (Basic
Input Output System).
Las interrupciones surgen de las necesidades que
tienen los dispositivos periféricos de enviar
información al procesador principal de un sistema de
computación. La primera técnica que se empleó fue
que el propio procesador se encargara de sondear
(polling) el dispositivo cada cierto tiempo para
averiguar si tenía pendiente alguna comunicación para
él.
 Este método presentaba el inconveniente de ser muy
ineficiente, ya que el procesador constantemente
consumía tiempo en realizar todas las instrucciones de
sondeo.
El mecanismo de interrupciones fue la solución que
permitió al procesador desentenderse de esta
problemática, y delegar en el dispositivo la
responsabilidad de comunicarse con el procesador
cuando lo necesitaba. El procesador, en este caso, no
sondea a ningún dispositivo, sino que queda a la espera
de que estos le avisen (le "interrumpan") cuando
tengan algo que comunicarle (ya sea un evento, una
transferencia de información, una condición de error,
etc.).
PRINCIPIO DE
FUNCIONAMIENTO
Cuando un dispositivo reclama atención del
procesador es para que este haga algo.  Este "algo" es lo
que se conoce como servicio; controlador o gestor
de la interrupción, ISR ("Interrupt service routine"). 
En cualquier caso se trata siempre de ejecutar un
programa situado en algún lugar de la memoria RAM o
en la ROM-BIOS.  Ocurre que las direcciones de inicio
de estos programas, que se conocen como vectores de
interrupción, se copian en una tabla de 1024 Bytes
que se carga al principio de la memoria de usuario
(direcciones 0000h a 0400h) durante el proceso de
inicio del sistema , razón por la cual estas rutinas se
conocen también como servicios del BIOS.
La citada tabla se denomina tabla de vectores de
interrupción IDT ("Interrupt Description Table") y
en sus 1024 bytes pueden almacenarse 256 vectores de
4 bytes.  Es decir, los vectores de interrupción son
punteros de 32 bits, numerados de 0 a 255, que señalan
las direcciones donde comienza la rutina que atiende
la interrupció
  Interrupción enmascarable
significa que, bajo control del software, el procesador puede
aceptar o ignorar (enmascarar) la señal de interrupción.  Para
ello se envía una señal a la patilla INTR  , y el procesador la
atiende o la ignora en función del contenido de un bit (IF) en
un registro (FLAGS) que puede estar habilitado o
deshabilitado.  En el primer caso, cuando se recibe la señal, el
procesador concluye la instrucción que estuviese en proceso
y a continuación responde con una combinación de señales
en algunas de sus patillas componiendo una sucesión de dos
señales INTA ("Interrupt Acknowledge" ).
La primera señal es simplemente un aviso; la segunda es una
petición para que el PIC coloque en el bus de datos un Byte
con el número de interrupción, de forma que el procesador
pueda localizar el servicio solicitado.
Interrupción no enmascarable
 significa que la interrupción no puede ser
deshabilitada por software.  Este tipo de
interrupciones ocurren cuando se recibe una
señal en la patilla NMI ("Nonmaskable
Interrupt" §5 ) del procesador.  Se reservan
para casos en que es crítica la respuesta, por
ejemplo que se detecte un error de paridad
en la memoria.  Además son de prioridad
más alta que las enmascarables.

También podría gustarte