|
 |
Il Processore e il Debugger |
LA GRANDE LIBRERIA 4/9
[55 di 60] |
 |
|
Che legame c'è tra la Tabella dei Vettori e le interruzioni? |
|
 | Nella discussione del punto precedente è emersa la tecnica
con cui il processore è in grado di svolgere un
compito di sistema: quando, in un programma qualunque, è chiamato
ad eseguire l'istruzione
INT
xyH
è costretto ad interrompere
il lavoro che stava facendo per occuparsi
del servizio di sistema richiesto, per poi
tornare alla fine a rioccuparsi del lavoro
momentaneamente sospeso. |
 | Lo mnemonico
INT
è proprio l'abbreviazione della parola
INTerrupt e sottolinea una delle tecniche
più potenti ed efficaci in grado di
obbligare il processore a fare cose
diverse da quelle suggerite dal programma in esecuzione. |
 |
Di solito imporre un'interruzione
significa intervenire a livello Hardware direttamente sul
processore, al fine di obbligarlo a fare cose diverse (improrogabili o impellenti) rispetto a quelle del suo normale
tran-tran; per questo sono previste delle apposite linee di controllo
(dette linee di Richiesta d'Interruzione, IRQ, Interrupt
ReQuest). |
 | In ogni istante della nostra esistenza siamo martellati da
richieste d'interruzione, sebbene
talvolta si possa far finta di non sentirle... Per questa ragione esistono
interruzioni mascherabili e
non mascherabili. |
 | Se, mentre Hercule Poirot sta inchiodando il colpevole
(finalmente! dopo un'ora di attesa...), suona il telefono posso dire tra me e
me: "adesso non ci sono... richiameranno tra un po'!": ho
mascherato l'interruzione. |
 | Ma se nel medesimo momento mi scivola la tazzina di caffè
bollente non c'è Agata che tenga.. salto su come una molla, nella speranza di
minimizzare i danni: interruzione non
mascherabile! |
 | La vita di un processore non è da meno; qualunque
dispositivo esterno, come la
tastiera o la porta
seriale, può richiedere la sua attenzione (IRQ),
pregandolo di sospendere l'attività
corrente per assicurargli la dovuta procedura
di servizio; lo farà ponendo un livello logico attivo su uno dei fili
predisposti per questo, poco più di una decina.. |
 | La richiesta arriverà comunque
ma la CPU
potrà ignorarla se, da programma,
abbiamo provveduto a mascherarla..: in
sostanza per ogni possibile linea IRQ è
disponibile un bit di stato che garantirà o meno
il servizio richiesto in funzione del suo valore binario. |
 | Una sola di queste
richieste sarà insindacabile: quella che coinvolge la linea
NMI (Non-Maskable
Interrupt); per essa non sono previsti bit di stato e il
processore sarà costretto ad assecondarla! |
 | I dettagli sulle tecniche
d'interruzione del processore sono argomento di un capitolo
specifico del Tutorial e sono comunque spesso riprese nella parte del Sito
dedicata ai dispositivi, come per la
porta parallela o le
stampanti. |
 | In questa sede è interessante sottolineare che, comunque, esiste
un legame tra le linee IRQ di
richiesta d'interruzione e l'istruzione
INT
xyH:
di norma in risposta all'attivazione delle prime
il processore mette in esecuzione automaticamente la
seconda. |
 | In altri termini a ciascuna delle possibili richieste
d'interruzione (IRQ o
NMI) corrisponde una
INT, o più precisamente una
procedura predisposta dal sistema per il
suo servizio; come vedremo
più avanti, alcuni tra i possibili numeri esadecimali
xyH da passare a
INT
serviranno proprio per puntare il programma che la
Cpu sarà chiamata a svolgere in occasione di una richiesta d'interrupt. |
 |
Le potenti istruzioni
INT
xyH
hanno questo nome proprio perchè sono in grado di produrre da software lo stesso effetto prodotto
sul processore da hardware, con
l'attivazione di una linea a ciò dedicata (come IRQ o NMI). |
 | In altri termini le procedure
forzate in risposta all'attivazione di IRQ o
NMI possono essere messe in
esecuzione anche senza l'effettivo
intervento fisico sulla linea corrispondente e anche se il corrispondente
bit
di stato indicasse di mascherarla: basta l'esecuzione dell'istruzione
INT relativa per
simularne l'effetto da software. |
 | In linea generale, però, non è il
caso di insinuare dubbi:
la gran parte delle
INT
(Interrupt software) non ha alcun legame con le linee
d'interruzione hardware: ciascuna
di esse raccoglie
comunque un insieme di funzioni
generalmente orientate ad assicurare servizi
legati al funzionamento o alla
gestione del computer. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|