De exakta åtgärderna en controller vidtar innan avbryter en CPU beror starkt på den specifika arkitekturen och typen av avbrott. Men här är en allmän uppdelning av vad som vanligtvis händer:
1. Identifiera avbrottet:
* Externt avbrott: Styrenheten får en signal som indikerar en extern händelse (t.ex. en tangentpress, ett nätverkspaket, en timer utgång).
* internt avbrott: En intern händelse inom CPU själv utlöser avbrottet (t.ex. ett uppdelning-för-noll-fel).
2. Bestäm avbrottsprioritet:
* Vissa system har flera avbrottskällor, var och en med en annan prioritering. Styrenheten kan behöva jämföra det nuvarande avbrottets prioritet med befintliga avbrott.
* Om det nya avbrottet har en högre prioritet kommer det att hanteras omedelbart. Om inte, kan det stå i kö för senare bearbetning.
3. Spara sammanhang (vid behov):
* Om avbrottet är ett hårdvaruavbrott (från en extern enhet) kan styrenheten behöva spara enhetens aktuella tillstånd. Detta kan inkludera:
* enhetsstatusregister: Data om enhetens nuvarande operation.
* Interrupt Request (IRQ) Line: Linjen som utlöste avbrottet.
4. Generera avbrottssignal:
* Styrenheten skickar en speciell signal till CPU, vilket indikerar att ett avbrott har inträffat. Denna signal är vanligtvis en dedikerad linje på systembussen.
5. Förbered dig för avbrottshantering:
* Kontrollern kan utföra några installationsuppgifter innan CPU svarar på avbrottet. Detta kan inkludera:
* Ställa in avbrottsvektorer: Dessa vektorer pekar på specifika minnesplatser som innehåller kod som hanterar avbrottet.
* Förbereda data för avbrottshanteraren: Kontrollern kan överföra data relaterade till avbrottet till specifika minnesplatser.
6. Vänta på CPU -svar:
* Kontrollern väntar på att CPU ska erkänna avbrottet och börja hantera det. Detta kan involvera CPU:s kontroll av avbrottslinjen eller väntar på en specifik avbrottssignal.
Viktiga anteckningar:
* CPU -svar: När CPU har erkänt avbrottet kommer det att byta till en speciell avbrottshanterarrutin. Denna rutin kommer att avgöra källan till avbrottet och vidta lämpliga åtgärder.
* Avbrottshantering: Avbrottshanteraren kan läsa data från styrenheten, bearbeta händelsen och sedan skicka tillbaka ett svar.
* Avbrottsaktivering: CPU kan tillfälligt inaktivera avbrott om det är mitt i en kritisk operation. Detta förhindrar oväntade avbrott från att störa dess nuvarande uppgift.
De specifika stegen och åtgärderna som är involverade i avbrottshantering kan vara komplexa och variera mycket beroende på systemets arkitektur. Informationen ovan ger en allmän översikt över de gemensamma stegen.