Diferencias Entre Interrupciones Vectorizadas y No Vectorizadas


En informática exiten diversos tipos de interrupciones. No es lo mismo una interrupción vetoriza que una no vectorizada. Para aclarar este punto, en este artículo te explicamos las diferencias entre estos dos tipos de interrupciones vectoriales. Eso sí, veamos antes unos detalles importantes a tener en cuenta.

Código de programación

Interrupciones vectoriales

  • A los dispositivos que utilizan interrupciones vectoriales se les asigna un vector de interrupciones. Este es un número que identifica a un manejador de interrupciones en particular. La dirección ISR de estas interrupciones es fija y la CPU la conoce.
  • Cuando el dispositivo interrumpe, la CPU se ramifica al ISR en particular.
  • El microprocesador salta a la rutina de servicio específica.
  • Cuando el microprocesador ejecuta la instrucción de llamada, guarda la dirección de la siguiente instrucción en la pila.
  • Al final de la rutina de servicio, la instrucción RET devuelve la ejecución al lugar donde se interrumpió el programa.
  • Todas las interrupciones del 8051 son interrupciones vectoriales.

Interrupción no vectorial

  • La interrupción no vectorial es una interrupción que tiene un ISR común, que es común a todas las interrupciones no vectoriales del sistema. La dirección de este ISR común es conocida por la CPU.
  • Las interrupciones que no tienen una ubicación de memoria fija para transferir el control desde la ejecución normal.
  • La dirección de la memoria se envía junto con la interrupción.
  • Es fundamental que la CPU no sepa qué dispositivo causó la interrupción sin sondear cada interfaz de E / S en un bucle.
  • Una vez que ocurre la interrupción, el sistema debe determinar qué dispositivo, de todos los dispositivos asociados, interrumpió realmente.

Las diferencias

Una interrupción vectorial es donde la CPU realmente conoce la dirección de la rutina del servicio de interrupción por adelantado. Todo lo que necesita es que el dispositivo de interrupción envíe su vector único a través de un bus de datos y a través de su interfaz de E / S a la CPU. La CPU toma este vector, verifica una tabla de interrupciones en la memoria y luego realiza el ISR correcto para ese dispositivo. Por tanto, la interrupción vectorizada permite a la CPU saber qué ISR debe realizar en el software (memoria).

Una interrupción no vectorizada es donde el dispositivo de interrupción nunca envía un vector de interrupción. La CPU recibe una interrupción y salta el contador del programa a una dirección fija en el hardware. Suele ser un ISR codificado de forma rígida que es independiente del dispositivo. Es crucial que la CPU no sepa qué dispositivo causó la interrupción sin sondear cada interfaz O / I en un bucle y verificar el registro de estado de cada interfaz de E / S para encontrar el que tiene el estado «interrupción creada».

Deja un comentario