
Una tabla de vectores de interrupción ( IVT ) es una estructura de datos que asocia una lista de controladores de interrupciones con una lista de solicitudes de interrupciones en una tabla de vectores de interrupción. Cada entrada de la tabla de vectores de interrupción, denominada vector de interrupción, es la dirección de un controlador de interrupciones (también conocido como ISR ). Si bien el concepto es común en todas las arquitecturas de procesadores, las IVT se pueden implementar de maneras específicas de cada arquitectura. Por ejemplo, una tabla de despacho es un método para implementar una tabla de vectores de interrupción.
Fondo
La mayoría de los procesadores tienen una tabla de vectores de interrupciones, incluidos los chips de Intel , AMD , Infineon , Microchip [1] Atmel , [2] NXP, ARM [3] [4] , etc.
Manejadores de interrupciones
Métodos de manejo
Una tabla de vectores de interrupción se utiliza en los tres métodos más populares para encontrar la dirección de inicio de la rutina de servicio de interrupción:
"Predefinido"
El método "predefinido" carga el contador de programa (PC) directamente con la dirección de alguna entrada dentro de la tabla de vectores de interrupción. La tabla de saltos en sí contiene código ejecutable. Si bien en principio un manejador de interrupciones extremadamente corto podría almacenarse completamente dentro de la tabla de vectores de interrupciones, en la práctica el código en cada entrada es una única instrucción de salto que salta a la rutina de servicio de interrupción completa (ISR) para esa interrupción. El Intel 8080 , [5] Atmel AVR [6] [7] y todos los microcontroladores 8051 y Microchip [8] utilizan el enfoque predefinido.
"Buscar"
El método de "búsqueda" carga la PC de forma indirecta, utilizando la dirección de alguna entrada dentro de la tabla de vectores de interrupción para extraer una dirección de esa tabla y luego cargar la PC con esa dirección. [8] Cada una de las entradas de la IVT es la dirección de una rutina de servicio de interrupción. Todos los microcontroladores Motorola/Freescale utilizan el método de búsqueda. [8]
"Reconocimiento de interrupción"
En el método de "reconocimiento de interrupciones", el dispositivo externo proporciona a la CPU un número de controlador de interrupciones. El método de reconocimiento de interrupciones lo utilizan los procesadores Intel Pentium y muchos microprocesadores más antiguos. [8]
Cuando la CPU se ve afectada por una interrupción , busca el controlador de interrupciones en la tabla de vectores de interrupciones y le transfiere el control.
Véase también
- Tabla de descriptores de interrupciones (implementación de la arquitectura x86)
Referencias
- ^ "Manual de referencia de la familia dsPIC33F", sección 29.1.1 Tabla de vectores de interrupción
- ^ Sección "Manual del usuario de AVR Libc": Introducción al manejo de interrupciones de avr-libc
- ^ "Documentación – Arm Developer". developer.arm.com . Consultado el 26 de julio de 2020 .
- ^ "Documentación – Arm Developer – Tabla de vectores de excepción AArch64". developer.arm.com . Consultado el 26 de julio de 2020 .
- ^ Manual del usuario de los sistemas de microcomputadoras Intel 8080 . Intel Corporation. Septiembre de 1975. págs. 2–11 Secuencias de interrupción. OCLC 2058546. OL 24210843M.
- ^ Roger L. Traylor. "Interrupciones: servicio de interrupciones AVR"
- ^ Gary Hill. "Subsistemas de interrupción y temporización AVR de Atmel: tabla de vectores de interrupción ATMEGA328P"
- ^ abcd Huang, Han-Wat (2005). Microcontrolador Pic: Introducción a la interconexión de software y hardware. Cengage Learning. pág. 247. ISBN 978-1-4018-3967-3. Recuperado el 22 de abril de 2013 .
Enlaces externos
- Manual del desarrollador de software de arquitectura Intel®, volumen 3: Guía de programación del sistema Archivado el 16 de febrero de 2009 en Wayback Machine
- Manual del desarrollador de software de arquitecturas Intel 64 e IA-32, volumen 3A: Guía de programación del sistema, parte 1 (consulte el CAPÍTULO 6, MANEJO DE INTERRUPCIONES Y EXCEPCIONES y el CAPÍTULO 10, CONTROLADOR DE INTERRUPCIONES PROGRAMABLE AVANZADO)]
- Tabla de excepciones y vectores del Motorola M68000 en Wayback Machine (archivado el 4 de marzo de 2016)