Tabel vector de întrerupere - Interrupt vector table
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
- Tabel descriptor de întrerupere (implementare arhitectură x86)
Referințe
linkuri externe
-
Manualul dezvoltatorului de software pentru arhitectură Intel®, volumul 3: Ghid de programare a sistemului
- Manualul dezvoltatorului de software pentru arhitecturi Intel 64 și IA-32, Volumul 3A: Ghid de programare a sistemului, Partea 1 (a se vedea CAPITOLUL 6, MANIPULAREA INTERRUPȚIEI ȘI EXCEPȚIUNILOR și CAPITOLUL 10, CONTROLUL DE INTERRUPȚII PROGRAMABIL AVANSAT)]
- Motorola M68000 Excepție și tabel vector