GESTIONE INTERRUPT CPU INTEL 8086 Prof. Marco Solarino
LINEE COINVOLTE CPU 8086 INTR RICHIESTE NMI INTA RISPOSTA
IVT 00 01 02 FF NN La IVT (Interrupt Vector Table – Tabella dei Vettori di Interruzione), utilizzata per gestire l'interrupt in modo vettorizzato, è posizionata all'inizio della RAM, all'indirizzo 00000H. Contiene 256 elementi numerati da 00H a FFH. Ciascun elemento occupa 4 byte e contiene l'indirizzo logico (CS:IP) di una ISR, quindi in totale la IVT occupa 1 KB di memoria.
COLLEGAMENTI CPU 8086 INTR PERIFERICA 8 INTA NN BUS DATI
COSA AVVIENE CPU 8086 PERIFERICA BUS DATI 1 INTR IF=1 INTA 8 2 8 3 NN
COSA FA LA CPU IVT 4 5 00 01 CS, IP, FLAG IF=0 02 CPU 8086 6 CS:IP NN FF NN 4 5 CS, IP, FLAG CPU 8086 IF=0 6 CS:IP STACK
La CPU ritorna ad eseguire il programma che era stato interrotto. ...E POI CHE SUCCEDE? La CPU esegue la ISR. L'ultima istruzione della ISR è una IRET, che provoca il recupero di CS, IP e FLAG dallo stack. La CPU ritorna ad eseguire il programma che era stato interrotto.
ATTENZIONE! Le ISR sono simili alle funzioni chiamate da un programma principale, ma ci sono differenze importanti: - la chiamata non avviene per via software, nel momento deciso dal programmatore, ma arriva via hardware dalla periferica interessata; - al momento della chiamata di una funzione vengono salvati CS e IP, mentre alla chamata della ISR si salvano CS, IP e FLAG.
CONCLUSIONI La CPU 8086 gestisce le interruzioni tramite i piedini INTR, NMI e INTA. La tecnica utilizzata è quella dell'interrupt vettorizzato, che prevede l'uso della IVT. I processori successivi hanno introdotto tecniche di gestione dell'interrupt più complesse, sempre però compatibili con le precedenti, per sfruttare appieno le nuove funzionalità delle architetture IA-32 e IA-64.