Taula de vectors d'interrupcions
Una taula de vectors d'interrupcions (IVT) és una estructura de dades que associa una llista de controladors d'interrupcions amb una llista de peticions d'interrupcions en una taula de vectors d'interrupcions. Cada entrada de la taula de vectors d'interrupció, anomenada vector d'interrupció, és l'adreça d'un controlador d'interrupcions (també conegut com ISR). Tot i que el concepte és comú a les arquitectures de processadors, els IVT es poden implementar de manera específica per a l'arquitectura. Per exemple, una taula de distribució és un mètode per implementar una taula de vectors d'interrupció.[1][2]
A les interrupcions se'ls assigna un nombre entre 0 i 255. Els vectors d'interrupció per a cada número d'interrupció s'emmagatzemen als 1024 bytes inferiors de la memòria principal. Per exemple, la interrupció 0 s'emmagatzema de 0000:0000 a 0000:0003, la interrupció 1 de 0000:0004 a 0000:0007, i així successivament.[3]
Nombre d'Interrupció | Adreça IVT | Nom de la Interrució |
---|---|---|
0 | 00-03 | CPU, divisió per zero |
1 | 04-07 | Un pas de Debugat |
2 | 08-0B | Interrupció NMI (Non Maskable Interrupt) |
3 | 0C-0F | Punts de parada de Debugat |
4 | 10-13 | Desbordament aritmètic |
5 | 14-17 | Rutina d'impressió de pantalla de la BIOS |
6 | 18-1B | Reservat |
7 | 1C-1F | Reservat |
8 | 20-23 | IRQ0, seveis maquinari temps real |
9 | 24-27 | IRQ1, interfície teclat |
A | 28-2B | IRQ2, serveis del bus ISA |
B | 2C-2F | IRQ3, maquinari Com 2 |
C | 30-33 | IRQ4, maquinari Com1 |
D | 34-37 | IRQ5, LPT2, maquinari port paral·lel |
E | 38-3B | IRQ6, adaptador disquet |
F | 3C-3F | IRQ7, LPT1, maquinari port paral·lel |
10 | 40-43 | Seveis de video |
11 | 44-47 | Comprovació de l'Equipment |
12 | 48-4B | Determinació del tamany de la memòria |
13 | 4C-4F | Rutines d'E/S de disquets |
14 | 50-53 | Rutines d'E/S de port sèrie |
15 | 54-57 | (obsoleta) |
16 | 58-5B | Rutines d'E/S del teclat |
17 | 5C-5F | Rutines d'E/S de la impressora |
18 | 60-63 | Points to basic interpreter in a "real" IBM PC |
19 | 64-67 | Carregador de sistema |
1A | 68-6B | Serveis d'hora real |
1B | 6C-6F | Serveis del Ctrl-Break |
1C | 70-73 | Tic del sistema (18.2 tics per segon) |
1D | 74-77 | Paràmetres de Video |
1E | 78-7B | Paràmetres del Disc |
1F | 7C-7F | Gràfics del Video |
20 | 80-83 | (obsoleta) |
21 | 84-87 | Tots els serveis DOS |
22 | 88-8B | Adreça de Terminació |
23 | 8C-8F | Adreça de sortida de Ctrl-Break |
24 | 90-93 | Manegador d'error crític |
25 | 94-97 | Lectura de sectors lògics |
26 | 98-9B | Escriptura de sectors lògics |
27 | 9C-9F | (obsoleta) |
28 to 3F | A0-A3 to FC-FF | Reservat per DOS |
40 to 4F | 100-103 to 13C-13F | Reservat per la BIOS |
50 | 140-143 | Reservat per la BIOS |
51 | 144-147 | Funcions del Ratolí |
52 to 59 | 148-14B to 164-167 | Reservat per la BIOS |
5A | 168-16B | Reservat per la BIOS |
La majoria dels processadors tenen una taula de vectors d'interrupció, que inclou xips d'Intel, AMD, Infineon, Microchip Atmel, NXP, ARM [4][5] etc.
Referències
[modifica]- ↑ «Interrupt Vector Table - an overview | ScienceDirect Topics» (en anglès). [Consulta: 10 setembre 2023].
- ↑ Lab, Microcontrollers. «What is Interrupt Vector Table?» (en anglès americà), 02-09-2020. [Consulta: 10 setembre 2023].
- ↑ «The interrupt vector table - Embedded Systems Architecture [Book]» (en anglès). [Consulta: 10 setembre 2023].
- ↑ «Documentation – Arm Developer» (en anglès). developer.arm.com. [Consulta: 26 juliol 2020].
- ↑ «Documentation – Arm Developer – AArch64 exception vector table» (en anglès). developer.arm.com. [Consulta: 26 juliol 2020].