De exacte acties die een controller onderneemt voordat een CPU wordt onderbroken, hangen sterk af van de specifieke architectuur en het type interrupt. Hier is echter een algemene uitsplitsing van wat er meestal gebeurt:
1. Identificeer de interrupt:
* externe interrupt: De controller ontvangt een signaal dat een externe gebeurtenis aangeeft (bijv. Een sleutelpers, een netwerkpakket, een timer -vervaldatum).
* interne interrupt: Een interne gebeurtenis binnen de CPU zelf activeert de interrupt (bijv. Een fout-per-nul fout).
2. Bepaal interruptprioriteit:
* Sommige systemen hebben meerdere interruptbronnen, elk met een andere prioriteit. De controller moet mogelijk de prioriteit van de huidige interrupt vergelijken met bestaande interrupts.
* Als de nieuwe interrupt een hogere prioriteit heeft, wordt deze onmiddellijk afgehandeld. Zo niet, dan kan het in de wacht worden gezet voor latere verwerking.
3. Context opslaan (indien nodig):
* Als de interrupt een hardware -onderbreking is (van een extern apparaat), moet de controller mogelijk de huidige status van het apparaat opslaan. Dit kan zijn:
* Registers van apparaatstatus: Gegevens over de huidige werking van het apparaat.
* Regeling voor onderbrekingsverzoek (IRQ): De lijn die de interrupt heeft geactiveerd.
4. Genereer interrupt signaal:
* De controller stuurt een speciaal signaal naar de CPU, wat aangeeft dat er een interrupt is opgetreden. Dit signaal is meestal een speciale lijn op de systeembus.
5. Bereid je voor op het hanteren van onderbrekingen:
* De controller kan enkele setup -taken uitvoeren voordat de CPU op de interrupt reageert. Dit kan zijn:
* Instellen van interruptvectoren: Deze vectoren wijzen op specifieke geheugenlocaties die code bevatten die de interrupt afhandelt.
* Gegevens voorbereiden voor de interrupt -handler: De controller kan gegevens met betrekking tot de interrupt overbrengen naar specifieke geheugenlocaties.
6. Wacht op CPU -reactie:
* De controller wacht tot de CPU de interrupt erkent en begint te hanteren. Dit kan de CPU bij het controleren van de interruptlijn of wachten op een specifiek interruptsignaal inhouden.
belangrijke opmerkingen:
* CPU -reactie: Zodra de CPU de interrupt erkent, wordt deze overschakelen naar een speciale routine voor interrupt handler. Deze routine bepaalt de bron van de interrupt en neemt passende actie.
* Interruptafhandeling: De interrupt -handler kan gegevens van de controller lezen, de gebeurtenis verwerken en vervolgens een antwoord terugsturen.
* Onderbreken Uitschakelen: De CPU kan onderbrekingen tijdelijk uitschakelen als deze zich midden in een kritieke bewerking bevindt. Dit voorkomt dat onverwachte onderbrekingen zijn huidige taak verstoren.
De specifieke stappen en acties die betrokken zijn bij het afhandelen van interrupt kunnen complex zijn en variëren sterk, afhankelijk van de architectuur van het systeem. De bovenstaande informatie geeft een algemeen overzicht van de gemeenschappelijke stappen. |