Tabel vector de întrerupere - Interrupt vector table

X86 Interrupt Vector Table.svg

Un tabel de vectori de întrerupere ( IVT ) este o structură de date care asociază o listă de gestionare a întreruperilor cu o listă de cereri de întrerupere într-un tabel de vectori de întrerupere. Fiecare intrare a tabelului de vectori de întrerupere, numită vector de întrerupere, este adresa unui handler de întrerupere. În timp ce conceptul este comun în toate arhitecturile procesorului, IVT-urile pot fi implementate în moduri specifice arhitecturii. De exemplu, un tabel de expediere este o metodă de implementare a unui tabel de vector de întrerupere.

fundal

Majoritatea procesoarelor au un tabel vector de întrerupere, inclusiv cipuri de la Intel, AMD , Infineon , Microchip Atmel , NXP, ARM etc.

Manevrele de întrerupere

Metode de manipulare

Un tabel vector de întrerupere este utilizat în cele mai populare trei metode de găsire a adresei de pornire a rutinei serviciului de întrerupere:

„Predefinit”

Metoda „predefinită” încarcă contorul de program (PC) direct cu adresa unei intrări din tabelul cu vectori de întrerupere. Tabel salt în sine conține cod executabil. În timp ce, în principiu, un handler de întrerupere extrem de scurt ar putea fi stocat în întregime în tabelul vectorului de întrerupere, în practică codul de la fiecare intrare este o singură instrucțiune de salt care sare la rutina completă de servicii de întrerupere (ISR) pentru întreruperea respectivă. Intel 8080 , Atmel AVR și toate microcontrolerele 8051 și Microchip utilizează abordarea predefinită.

„Aduceți”

Metoda „preluare” încarcă computerul indirect, folosind adresa unei intrări din tabelul vectorului de întrerupere pentru a extrage o adresă din tabelul respectiv și apoi încărca computerul cu acea adresă. Fiecare intrare a IVT este adresa unei rutine de servicii de întrerupere. Toate microcontrolerele Motorola / Freescale folosesc metoda de preluare.

„Întrerupeți confirmarea”

Pentru metoda „confirmare de întrerupere”, dispozitivul extern oferă procesorului un număr de gestionare a întreruperii. Metoda de confirmare a întreruperii este utilizată de Intel Pentium și de multe microprocesoare mai vechi.

Când CPU-ul este afectat de o întrerupere , acesta caută dispozitivul de manipulare a întreruperii în tabelul vectorului de întrerupere și îi transferă controlul.

Vezi si

Referințe

linkuri externe