Differenza tra interrupt vettoriali e non vettoriali in informatica
Interruzioni vettoriali
In informatica, ai dispositivi che utilizzano interrupt vettoriali (in inglese vectored interrupt) viene assegnato un vettore di interrupt. Questo è un numero che identifica un particolare gestore di interrupt.
- L’indirizzo ISR di questi interrupt è fisso ed è noto alla CPU.
- Quando il dispositivo interrompe la CPU si dirama verso il particolare ISR.
- Il microprocessore passa alla routine di servizio specifica.
- Quando il microprocessore esegue l’istruzione di chiamata, salva l’indirizzo dell’istruzione successiva nello stack.
- Alla fine della routine di servizio, l’istruzione RET (di ritorno) riporta l’esecuzione nel punto in cui il programma era stato interrotto.
- Tutti gli interrupt 8051 sono interrupt vettorizzati.
Interruzione non vettoriale
L’interrupt non vettoriale (in inglese non–vectored interrupt) è un interrupt che ha un ISR comune, che è comune a tutti gli interrupt non vettoriali nel sistema. L’indirizzo di questo ISR comune è noto alla CPU.
- Gli interrupt che non hanno una posizione di memoria fissa per il trasferimento del controllo dalla normale esecuzione.
- L’indirizzo della memoria viene inviato insieme all’interrupt.
- La CPU in modo cruciale non sa quale dispositivo ha causato l’interrupt senza eseguire il polling di ciascuna interfaccia I/O in un loop.
- Una volta che si verifica l’interruzione, il sistema deve determinare quale dispositivo, tra tutti i dispositivi associati, è effettivamente interrotto.
Differenza interrupt vettoriali e non vettoriali
Un interrupt vettoriale è il punto in cui la CPU conosce in anticipo l’indirizzo della routine del servizio di interrupt. Tutto ciò di cui ha bisogno è che il dispositivo di interruzione invii il suo vettore unico attraverso un bus dati e attraverso la sua interfaccia I / O alla CPU. La CPU prende questo vettore, controlla una tabella di interrupt in memoria e quindi esegue l’ISR corretto per quel dispositivo. Pertanto, l’interrupt vettoriale consente alla CPU di essere in grado di sapere che ISR deve eseguire in software (memoria).
Un interrupt non vettoriale è dove il dispositivo di interruzione non invia un vettore di interrupt. Un interrupt viene ricevuto dalla CPU e salta il contatore del programma a un indirizzo fisso nell’hardware. Questo è in genere un ISR hardcoded indipendente dal dispositivo. Fondamentalmente la CPU non sa quale dispositivo ha causato l’interrupt senza interrogare ciascuna interfaccia O / I in un loop e controllare il registro di stato di ciascuna interfaccia I/O per trovare quello con lo stato di “interrupt creato”.