Wat is Interruptvectortabel?
Tabel met per type interrupt of exceptie het beginadres van de bijbehorende interrupt-handler. De CPU raadpleegt deze tabel met het nummer van de oorzaak om de startpositie van de verwerking te bepalen.
Japanse benaming: 割り込みベクタテーブル
“Interruptvectortabel” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. Besturingssysteem en hardware.
Vakgebied: Besturingssysteem en hardware
Hoe de CPU de tabel gebruikt
Wanneer een interrupt of exception wordt geaccepteerd, bepaalt de hardware een nummer, de vector, dat de oorzaak identificeert: een timer, een bepaald randapparaat, een page fault, een ongeldige instructie of een system call. De CPU slaat het adres van de volgende instructie en status zoals de bedrijfsmodus op, en gebruikt de vector dan als index in de interruptvectortabel, waarbij doorgaans de entry op basis + vector × entrygrootte wordt gelezen. Die entry bevat het startadres van de handler. De handler bewaart de registers die hij gebruikt, handelt de gebeurtenis af en voert een return-from-interrupt-instructie uit.
Vectortabel versus polling
Een gevectoriseerd schema stuurt elke oorzaak rechtstreeks naar de eigen handler, zodat de CPU geen statusregisters hoeft te lezen om te ontdekken wat er gebeurde, wat de interruptlatency verkort. Het alternatief is één ingangspunt waarvan de handler een oorzaakregister leest en in software doorverwijst, zoals de direct mode van RISC-V doet. Op een besturingssysteem voor algemeen gebruik vult de kernel de tabel bij het opstarten, zodat timerticks, device-interrupts, page faults en system calls elk de juiste kernelroutine bereiken.
Veelgestelde vragen
Wat is een interruptvector?
Een interruptvector is het nummer dat aan een bron van interrupts of exceptions is toegekend en als index in de vectortabel wordt gebruikt. De term wordt ook losjes gebruikt voor de tabelentry zelf, die het adres van de handler bevat.
Waar staat de vectortabel op een ARM Cortex-M-microcontroller?
Standaard staat ze aan het begin van het bootgeheugen, meestal flash. De eerste entry is de initiële waarde van de stackpointer en de tweede de reset handler, en op de meeste cores kan het vector table offset register (VTOR) haar verplaatsen, bijvoorbeeld naar RAM.
Wat is het verschil tussen de IVT en de IDT op x86?
De interrupt vector table (IVT) is de real-mode-tabel van 256 segment:offset-adressen onderin het geheugen. De interrupt descriptor table (IDT) vervangt haar in protected en long mode, bevat descriptors met privilege-informatie en kan via het IDTR-register overal worden geplaatst.