Calcolatori elettronici/Intel 8259

Indice del libro

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

modifica
 
Struttura dell'Intel 8259.

Il 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

modifica

Il processore può programmare l'Intel 8259 inviandogli alcune parole di controllo.

In 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).

Durante 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à.