100 likes | 269 Views
GESTIONE INTERRUPT CPU INTEL 8086. Prof. Marco Solarino. LINEE COINVOLTE. CPU 8086. INTR. RICHIESTE. NMI. INTA. RISPOSTA. 00. 01. 02. NN. FF. IVT.
E N D
GESTIONE INTERRUPT CPU INTEL 8086 Prof. Marco Solarino
LINEE COINVOLTE CPU 8086 INTR RICHIESTE NMI INTA RISPOSTA
00 01 02 NN FF IVT 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.
8 8 COLLEGAMENTI CPU 8086 INTR PERIFERICA INTA NN BUS DATI
CPU 8086 INTR PERIFERICA INTA 8 8 BUS DATI COSA AVVIENE 1 IF=1 2 3 NN
IVT 00 CS, IP, FLAG 01 02 NN FF COSA FA LA CPU 5 4 CPU 8086 IF=0 6 CS:IP STACK
...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.