Calcolatori elettronici/Intel 8259
L'Intel 8259 è un interrupt controller in grado di gestire fino a 8 periferiche. L'Intel 8259 supporta anche la gestione delle priorità associate alle periferiche.
Struttura
modificaIl processore può leggere e scrivere dati su 8 bit nei registri dell'Intel 8259 tramite il bus:
- i segnali di read e write specificano il tipo di operazione (lettura o scrittura);
- il segnale A0 specifica su quale registro operare.
L'Intel 8259 contiene principalmente 3 registri:
- l'Interrupt Mask Register (IMR) permette il mascheramento selettivo delle periferiche;
- l'Interrupt Request Register (IRR) riceve i segnali di richieste di interruzione dalle periferiche;
- l'Interrupt Service Register (ISR) tiene traccia delle periferiche la cui procedura di servizio è ancora in corso: il processore tramite l'ISR può far sapere all'Intel 8259 quando inizia e quando finisce la procedura di servizio di una periferica, così se nel frattempo una periferica a priorità inferiore fa richiesta l'Intel 8259 attiva il segnale di INT per la nuova periferica solo dopo che il processore ha terminato di servire la periferica a priorità maggiore.
Programmazione
modificaIl processore può programmare l'Intel 8259 inviandogli alcune parole di controllo.
ICW
modificaIn fase di inizializzazione, il processore invia le Initialization Command Words (ICW):
- ICW1: specifica se l'Intel 8259 è in cascata e se esso dev'essere sensibile ai fronti o ai livelli;
- ICW2: contiene il codice associato alla prima periferica (i codici delle altre periferiche sono consecutivi);
- il processore specifica anche la modalità di gestione delle priorità (statica o rotante).
OCW
modificaDurante il funzionamento, il processore può inviare le Operation Command Words (OCW):
- OCW1: specifica quali dispositivi mascherare selettivamente agli interrupt;
- OCW2: serve per cambiare le priorità.