Přerušit vektorovou tabulku - Interrupt vector table

An vektorová tabulka přerušení (IVT) je datová struktura který spojuje seznam obsluhy přerušení se seznamem žádosti o přerušení v tabulce vektorů přerušení. Každý záznam tabulky vektorů přerušení, nazývaný vektor přerušení, je adresou obsluhy přerušení. Zatímco koncept je společný napříč architekturami procesorů, IVT mohou být implementovány v módě specifické pro architekturu. Například a odesílací tabulka je jeden způsob implementace tabulky vektorů přerušení.
Pozadí
Většina procesorů má vektorovou tabulku přerušení, včetně čipů od společnosti Intel, AMD, Infineon, Mikročip[1] Atmel,[2] NXP, PAŽE[3][4] atd.
Obsluha přerušení
Metody manipulace
Tabulka vektorů přerušení se používá ve třech nejpopulárnějších metodách vyhledání počáteční adresy rutiny služby přerušení:
„Předdefinováno“
"Předdefinovaná" metoda načte počítadlo programů (PC) přímo s adresou nějakého záznamu uvnitř tabulky vektorů přerušení. The skokový stůl sám obsahuje spustitelný kód. I když v zásadě mohl být extrémně krátký obslužný program přerušení uložen zcela uvnitř tabulky vektorů přerušení, v praxi je kódem při každém vstupu instrukce jediného skoku, která přeskočí na rutinu služby úplného přerušení (ISR) pro toto přerušení. Intel 8080,[5] Atmel AVR[6][7] a všechny mikrokontroléry 8051 a Microchip[8] použijte předdefinovaný přístup.
"Vynést"
Metoda „načtení“ načte počítač nepřímo, pomocí adresy nějakého záznamu uvnitř tabulky vektorů přerušení k vytažení adresy z této tabulky a následným načtením počítače s touto adresou.[8] Každý vstup do IVT je adresa rutiny služby přerušení. Všechny mikroprocesory Motorola / Freescale používají metodu načítání.[8]
„Přerušit potvrzení“
U metody „přerušení potvrzení“ dává externí zařízení CPU číslo obsluhy přerušení. Metodu potvrzení přerušení používá Intel Pentium a mnoho starších mikroprocesorů.[8]
Když je CPU ovlivněn přerušit, vyhledá obsluha přerušení v tabulce vektorů přerušení a přenese do ní řízení.
Viz také
- Tabulka přerušení deskriptoru (implementace architektury x86)
Reference
- ^ „Referenční příručka rodiny dsPIC33F“ část 29.1.1 Přerušit vektorovou tabulku
- ^ „Uživatelská příručka AVR Libc“ sekce: Úvod do zpracování přerušení avr-libc
- ^ „Dokumentace - Arm Developer“. developer.arm.com. Citováno 2020-07-26.
- ^ "Dokumentace - Arm Developer - vektorová tabulka výjimek AArch64". developer.arm.com. Citováno 2020-07-26.
- ^ Uživatelská příručka mikropočítačových systémů Intel 8080. Intel Corporation. Září 1975. str. 2–11 Přerušené sekvence. OCLC 2058546. OL 24210843M.
- ^ Roger L. Traylor. "Přerušení: Servis přerušení AVR"
- ^ Gary Hill. „Atmel AVR Interrupt and Timing Subsystems: ATMEGA328P interrupt vector table“
- ^ A b C d Huang, Han-Wat (2005). Pic Microcontroller: An Introduction to Software and Hardware Interfacing. Cengage Learning. str. 247. ISBN 978-1-4018-3967-3. Citováno 22. dubna 2013.
externí odkazy
- Příručka pro vývojáře softwaru Intel® Architecture, svazek 3: Průvodce programováním systému
- Příručka pro vývojáře softwaru Intel 64 a IA-32 Architectures, svazek 3A: Průvodce programováním systému, část 1 (viz KAPITOLA 6, MANIPULACE S PŘERUŠENÍM A VÝJIMKOU a KAPITOLA 10, POKROČILÝ PROGRAMOVATELNÝ REGULÁTOR PŘERUŠENÍ)]
- Tabulka výjimek a vektorů Motorola M68000