Tabla de vectores de interrupciones

De Wikipedia, la enciclopedia libre

En ciencias de la computación, una tabla de vectores de interrupciones (IVT, del inglés interrupt vector table) es una estructura de datos que asocia una lista de manejadores de interrupciones con una lista de solicitudes de interrupciones. Cada una de las entradas en la IVT, llamadas vectores de interrupciones, es la dirección de un manejador de interrupción. Mientras que el concepto es común a varias arquitecturas, una IVT puede ser implementada en una manera específica a una arquitectura dada.

Trasfondo[editar]

La mayoría de procesadores tienen una IVT, incluyendo chips de Intel, AMD, Infineon, Microchip,[1]Atmel,[2]​ NXP, ARM, etc.[3][4]

Manejadores de interrupción[editar]

Métodos de manejo[editar]

Una IVT puede utilizarse principalmente en tres métodos populares para encontrar la dirección inicial de la rutina del manejador:

"Predefinido"[editar]

El método "predefinido" carga el contador de programa (PC) directamente con la dirección de alguna entrada dentro de la IVT. La misma tabla de saltos contiene código ejecutable. Mientras que en principio una rutina de manejo de interrupción extremadamente corta podríia ser almacenada completamente en la IVT, en la práctica el código en cada entrada es una única instrucción de salto hacia el manejador completo para esa interrupción. El Intel 8080,[5]​ Atmel AVR[6][7]​ y todos los 8051 y microcontroladores Microchip[8]​ usan el método predefindo.

"Fetch"[editar]

El método "fectch" carga el contador de programa indirectamente, utilizando la dirección de alguna entrada dentro de la IVT para obtener una dirección por fuera de la tabla, y luego cargar el contador de programa con esa dirección.[8]​ Cada una de las entradas en la IVT es la dirección de un manejador de interrupción. Todos los microcontroladores Motorola/Freescale utilizan el método de fetch.

"Confirmación de interrupción"[editar]

Para el método de confirmación de interrupción, el dispositivo externo da al CPU un número de manejador de interrupción. El método de confirmación es utilizado por el Intel Pentium y muchos otros microprocesadores viejos.[8]

Cuando el CPU es afectado por una interrupción, este busca un manejador de interrupción en la IVT y le transfiere control.

Véase también[editar]

Referencias[editar]

  1. «Documentation – Arm Developer». developer.arm.com. Consultado el 26 de julio de 2020. 
  2. «Documentation – Arm Developer – AArch64 exception vector table». developer.arm.com. Consultado el 26 de julio de 2020. 
  3. "dsPIC33F Family Reference Manual" section 29.1.1 Interrupt Vector Table
  4. "AVR Libc User Manual" section: Introduction to avr-libc's interrupt handling
  5. Intel 8080 Microcomputer Systems User's Manual. Intel Corporation. September 1975. pp. 2-11 Interrupt Sequences. OCLC 2058546. 
  6. Roger L. Traylor. "Interrupts: AVR interrupt servicing"
  7. Gary Hill. "Atmel AVR Interrupt and Timing Subsystems: ATMEGA328P interrupt vector table"
  8. a b c Huang, Han-Wat (2005). Pic Microcontroller: An Introduction to Software and Hardware Interfacing. Cengage Learning. p. 247. ISBN 978-1-4018-3967-3. Consultado el 22 de abril de 2013. 

Enlaces externos[editar]