Sezione |
Indirizzi Base
Registri Interni
|
Capitolo 1 |
Il Processore e il Debugger |
LA GRANDE LIBRERIA 4/9 [55 di 60] |
|
|
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. |
|
Capitolo 1 | LA GRANDE LIBRERIA 4/9 | |||||||
55 di 60 |
|
|
|
|
Home |
|
|||||||
|
Motore Ricerca |
|