Interrupt Descriptor Table

Den IDT (for engelsk Interrupt Descriptor tabel ) er en datatabel placeret i hukommelsen i en computer af x86 -arkitektur , og lade mikroprocessoren at styre interrupts .

Dette er en matrix, der maksimalt omfatter 256 deskriptorer på 8  bytes  hver , dvs. en deskriptor pr. Afbrydelse. Dens hukommelsesplacering er gemt inde i processorens IDTR-register . Når en afbrydelse udløses, læser processoren den tilsvarende række i IDT og udfører behandlingen tilknyttet de værdier, der læses på denne række.

IDTR-registret er et 48-bit-register, hvis nederste 16 bit repræsenterer størrelsen i byte af IDT, mens de øvre 32 bits repræsenterer den fysiske adresse for IDT i hukommelsen. Dette register er kun tilgængeligt via to monteringsinstruktioner: lidt (Indlæser en hukommelsesplacering i IDTR) og sidt (Placerer indholdet af IDTR på en hukommelsesplacering).

De første 32 afbrydelser ( nr .  0 til 31) er forbeholdt undtagelser (fejl) genereret af mikroprocessoren . De 6  hardwareafbrydelser er normalt forbundet med afbrydelser nr .  32 til 47. Men alle afbrydelser kan frit kaldes af brugerne gennem instruktionsprogrammer, forudsat at operativsystemet tillader det.

Beskrivelse og klassificering

Format for en deskriptor

Hver deskriptor har følgende struktur: (fra de højeste bits til de laveste bits)

Intel-klassifikation og terminologi

Der er forskellige typer døre:

Linux klassifikation og terminologi

Linux klassificerer de forskellige typer døre (deskriptor), som den inkluderer i IDT forskelligt:

IDT-hukommelsesplacering

Når BIOS overleverer styringen til operativsystemet, findes der ingen IDT. Faktisk har IVT anvendt af mikroprocessoren i ægte tilstand ikke det samme format som IDT og kan derfor ikke bruges i beskyttet tilstand . Dette er dog ikke et problem, da interrupt-flag (IF) er indstillet til 0 , hvilket forhindrer, at enhver maskerbar afbrydelse udløses, så længe det er nødvendigt.

Operativsystemet sørger for at oprette de forskellige poster i IDT og derefter give dets placering og længde til mikroprocessoren via lidt montørinstruktionen . Denne placering er normalt placeret nær kernekoden . Bemærk dog, at mikroprocessoren anvender personsøgning, når man læser IDT, hvilket gør det muligt for operativsystemet (selvom det ikke håndhæves af nogen af ​​de større operativsystemer) at oprette en anden IDT til hvert kørende program.

IDT på andre processorarkitekturer

Der er ækvivalenter med IDT på mange andre processorarkitekturer, men disse har et meget andet format.

Noter og referencer

Tillæg

Relaterede artikler