Table des vecteurs d'interruption - Interrupt vector table
Une table de vecteurs d'interruption ( IVT ) est une structure de données qui associe une liste de gestionnaires d'interruption à une liste de demandes d'interruption dans une table de vecteurs d'interruption. Chaque entrée de la table des vecteurs d'interruption, appelée vecteur d'interruption, est l'adresse d'un gestionnaire d'interruption. Bien que le concept soit commun à toutes les architectures de processeur, les IVT peuvent être implémentés selon des modes spécifiques à l'architecture. Par exemple, une table de répartition est une méthode d'implémentation d'une table de vecteurs d'interruption.
Contexte
La plupart des processeurs ont une table de vecteurs d'interruption, y compris les puces d'Intel, AMD , Infineon , Microchip Atmel , NXP, ARM, etc.
Gestionnaires d'interruption
Méthodes de manipulation
Une table de vecteurs d'interruption est utilisée dans les trois méthodes les plus courantes pour trouver l'adresse de départ de la routine de service d'interruption:
"Prédéfini"
La méthode "prédéfinie" charge le compteur de programmes (PC) directement avec l'adresse d'une entrée dans la table des vecteurs d'interruption. La table de saut elle - même contient du code exécutable. Alors qu'en principe un gestionnaire d'interruption extrêmement court pourrait être stocké entièrement à l'intérieur de la table de vecteurs d'interruption, en pratique, le code à chaque entrée est une instruction de saut unique qui saute à la routine de service d'interruption complète (ISR) pour cette interruption. L'Intel 8080 , l'Atmel AVR et tous les microcontrôleurs 8051 et Microchip utilisent l'approche prédéfinie.
"Récupérer"
La méthode "fetch" charge le PC indirectement, en utilisant l'adresse d'une entrée dans la table des vecteurs d'interruption pour extraire une adresse de cette table, puis en chargeant le PC avec cette adresse. Chaque entrée de l'IVT est l'adresse d'une routine de service d'interruption. Tous les microcontrôleurs Motorola / Freescale utilisent la méthode fetch.
"Acquitter l'interruption"
Pour la méthode "d'acquittement d'interruption", le périphérique externe attribue à la CPU un numéro de gestionnaire d'interruption. La méthode d'acquittement d'interruption est utilisée par Intel Pentium et de nombreux microprocesseurs plus anciens.
Lorsque le processeur est affecté par une interruption , il recherche le gestionnaire d'interruption dans la table des vecteurs d'interruption et lui transfère le contrôle.
Voir également
- Tableau des descripteurs d'interruption (implémentation de l'architecture x86)
Références
Liens externes
-
Manuel du développeur de logiciels d'architecture Intel®, volume 3: Guide de programmation système
- Manuel du développeur de logiciels des architectures Intel 64 et IA-32, volume 3A: Guide de programmation système, partie 1 (voir CHAPITRE 6, GESTION DES INTERRUPTIONS ET DES EXCEPTIONS et CHAPITRE 10, CONTRÔLEUR D'INTERRUPTION PROGRAMMABLE AVANCÉ)]
- Tableau des exceptions et des vecteurs Motorola M68000