De nøyaktige handlingene en kontroller tar før den avbrutt en CPU er sterkt avhengig av den spesifikke arkitekturen og avbruddstypen. Her er imidlertid en generell oversikt over hva som vanligvis skjer:
1. Identifiser avbruddet:
* Eksternt avbrudd: Kontrolleren mottar et signal som indikerer en ekstern hendelse (f.eks. En tastetrykk, en nettverkspakke, en tidtakerutløp).
* Internt avbrudd: En intern hendelse i CPU-en selv utløser avbrytelsen (f.eks. En skill-for-null feil).
2. Bestem avbruddsprioritet:
* Noen systemer har flere avbruddskilder, hver med en annen prioritet. Kontrolleren kan trenge å sammenligne det nåværende avbruddets prioritet med eksisterende avbrudd.
* Hvis det nye avbruddet har høyere prioritet, vil det bli håndtert umiddelbart. Hvis ikke, kan det sto i kø for senere behandling.
3. Lagre kontekst (om nødvendig):
* Hvis avbruddet er et maskinvareavbrudd (fra en ekstern enhet), kan det hende at kontrolleren må lagre den gjeldende tilstanden til enheten. Dette kan omfatte:
* Registre for enhetsstatus: Data om enhetens nåværende operasjon.
* Interrupt Request (IRQ) Line: Linjen som utløste avbruddet.
4. Generer avbruddssignal:
* Kontrolleren sender et spesielt signal til CPU, noe som indikerer at et avbrudd har oppstått. Dette signalet er vanligvis en dedikert linje på systembussen.
5. Forbered deg på avbruddshåndtering:
* Kontrolleren kan utføre noen oppsettoppgaver før CPU reagerer på avbruddet. Dette kan omfatte:
* Sette opp avbruddsvektorer: Disse vektorene peker på spesifikke minneplasser som inneholder kode som håndterer avbruddet.
* Utarbeide data for avbrytelsesbehandleren: Kontrolleren kan overføre data relatert til avbruddet til spesifikke minneplasser.
6. Vent på CPU -respons:
* Kontrolleren venter på at CPUen skal erkjenne avbruddet og begynne å håndtere det. Dette kan innebære at CPU sjekker avbruddslinjen eller venter på et spesifikt avbruddssignal.
Viktige merknader:
* CPU -respons: Når CPU erkjenner avbruddet, vil den bytte til en spesiell avbruddshåndteringsrutine. Denne rutinen vil bestemme kilden til avbruddet og iverksette passende tiltak.
* Avbruddshåndtering: Avbruddsbehandleren kan lese data fra kontrolleren, behandle hendelsen og deretter sende tilbake et svar.
* Avbrudd deaktivering: CPU kan deaktivere avbrudd midlertidig hvis det er midt i en kritisk operasjon. Dette forhindrer uventede avbrudd i å forstyrre den nåværende oppgaven.
De spesifikke trinnene og handlingene som er involvert i avbruddshåndtering kan være komplekse og variere veldig avhengig av systemets arkitektur. Informasjonen over gir en generell oversikt over de vanlige trinnene.