En informática , una interrupción vectorizada es una técnica de procesamiento en la que el dispositivo que genera la interrupción dirige al procesador a la rutina de servicio de interrupción adecuada . Esto contrasta con un sistema de interrupción por sondeo , en el que una única rutina de servicio de interrupción debe determinar el origen de la interrupción comprobando todas las posibles fuentes, un proceso lento y relativamente laborioso. Las interrupciones vectorizadas se consiguen asignando a cada dispositivo que genera la interrupción un código único, normalmente de cuatro a ocho bits de longitud. [ 1 ] Cuando se reconoce la interrupción de un dispositivo, este envía su código único a través del bus de datos al procesador, indicándole qué rutina de servicio de interrupción debe ejecutar.
Implementación
Las interrupciones vectorizadas se implementan frecuentemente en microprocesadores. Incluso el primer microprocesador de 8 bits disponible comercialmente, el Intel 8008 de 1971, admitía al menos siete vectores, aunque curiosamente no tenía la capacidad de guardar su estado durante una interrupción. A continuación, se muestran algunos ejemplos de interrupciones vectorizadas implementadas en microprocesadores:
Intel 8080

El procesador Intel 8080 de 1974 puede admitir siete vectores con poco hardware o hasta 64 vectores utilizando el Intel 8259 .
El método de hardware mínimo requiere que el hardware externo inserte una RSTinstrucción de un solo byte (reinicio) asociada con el dispositivo de interrupción en el bus. La instrucción de reinicio es una llamada a una de las ocho ubicaciones: 0, 8, 16, 24, 32, 40, 48 y 56, lo que permite siete rutinas de servicio de interrupción de acceso directo. (La ubicación 0 puede no estar disponible, ya que se comparte con el reinicio). [ 2 ]
Al usar un Intel 8259, CALLse puede emitir una instrucción en lugar de RSTpermitir que la interrupción se envíe a cualquier lugar de la memoria. Se pueden conectar en cascada hasta nueve 8259 para permitir hasta 64 vectores. [ 3 ]
Zilog Z80
El Zilog Z80 de 1976 admite los métodos de interrupción del 8080 y añade algunos propios. En el modo 2, el Z80 admite 128 vectores. El registro I del Z80 proporciona el byte alto de la dirección base para una tabla de 128 entradas de direcciones de rutinas de servicio. El dispositivo de interrupción proporciona el byte bajo de su entrada específica en la tabla. El Z80 incrementa el contador de programa (PC) y luego forma una dirección utilizando estos dos bytes para cargar la dirección de la rutina de servicio de interrupción en el PC, lo que provoca un salto. [ 4 ]
Western Digital WD16
El WD16 de 1976 admite 16 vectores de interrupción. Cuando se recibe una interrupción vectorizada, se actualizan el estado del procesador y el contador de programa (PC). Durante el reconocimiento de la interrupción, el WD16 acepta un número de interrupción de cuatro bits proporcionado por el dispositivo que la origina. La dirección de la tabla de vectores de interrupción se obtiene de la ubicación de memoria 0x0028 y se le suma el número de interrupción, que apunta a una de las 16 palabras de la tabla. Se obtiene un desplazamiento de palabra de la tabla y se suma a su propia dirección de tabla. El resultado se carga en el PC, lo que provoca un salto a la rutina de servicio de interrupción. [ 5 ]
Intel 8086

El Intel 8086 de 1978 admite 256 vectores de interrupción. Las interrupciones son llamadas largas que también guardan el estado del procesador. Todas las interrupciones tienen un número de interrupción de 8 bits asociado. Este número se utiliza para buscar un segmento:desplazamiento en una tabla de vectores de interrupción de 256 elementos almacenada en las direcciones 0-0x3FF. Cuando se encuentra cualquier tipo de interrupción, se envía el estado del procesador, se envían CS e IP, y el número de interrupción se multiplica por cuatro para indexar una nueva dirección de ejecución que se carga desde la tabla de vectores. Las rutinas de interrupción normalmente terminan con una IRETinstrucción. [ 6 ] [ 3 ]
Referencias
- ↑ Hamacher, Carl (2002). "Organización de entrada/salida". Organización de computadoras (5.ª ed.). McGraw Hill. pág. 214. ISBN 0072320869.
- ↑ "Microprocesador de canal N de 8 bits 8080A/8080A-1/8080A-2" (PDF) . Intel. Archivado (PDF) del original el 15 de noviembre de 2021. Recuperado el 16 de noviembre de 2021 .
- 1 2 "Controlador de interrupciones programable 8259A" (PDF) . Intel . Consultado el 25 de diciembre de 2025 .
- ↑ "Sincronización". Manual de usuario de la CPU de la familia Z80 (PDF) . Zilog . 2016. pág. 7. UM008011-0816. Archivado (PDF) del original el 26 de diciembre de 2023. Consultado el 5 de enero de 2024 .
- ↑ Wilcox, Dick (4 de octubre de 1976). Manual de referencia del programador de microcomputadoras WD16 (PDF) . Western Digital . Consultado el 21 de agosto de 2025 .
- ↑ "Hoja de datos del procesador HMOS de 16 bits 8086" (PDF) . Intel. Archivado del original (PDF) el 26 de noviembre de 2021. Consultado el 26 de noviembre de 2021 .
- Arquitectura de computadoras
- Interrumpe