# Calcolatori elettronici/Intel 8259

Calcolatori elettronici
Copertina Tutti i moduli · Sviluppo
    CopertinaCalcolatori elettronici/Copertina
* L'evoluzione dei sistemi di elaborazioneCalcolatori elettronici/L'evoluzione dei sistemi di elaborazione
* Il progetto di circuiti logiciCalcolatori elettronici/Il progetto di circuiti logici
* I processoriCalcolatori elettronici/I processori
* Architettura 8086Calcolatori elettronici/Architettura 8086
* Unità di controlloCalcolatori elettronici/Unità di controllo
* Introduzione alle memorieCalcolatori elettronici/Introduzione alle memorie
* Le memorie ad accesso casualeCalcolatori elettronici/Le memorie ad accesso casuale
* Le memorie cacheCalcolatori elettronici/Le memorie cache
* Le memorie ad accesso serialeCalcolatori elettronici/Le memorie ad accesso seriale
* La memoria virtualeCalcolatori elettronici/La memoria virtuale
* La gestione dei dispositivi input/outputCalcolatori elettronici/La gestione dei dispositivi input/output
* Intel 8255Calcolatori elettronici/Intel 8255
* Intel 8259Calcolatori elettronici/Intel 8259
* I busCalcolatori elettronici/I bus
* Le architetture a pipelineCalcolatori elettronici/Le architetture a pipeline
* Assembler 8086
          IntroduzioneCalcolatori elettronici/Introduzione
   * Informazioni generaliCalcolatori elettronici/Informazioni generali
   * Istruzioni di trasferimento datiCalcolatori elettronici/Istruzioni di trasferimento dati
   * Istruzioni aritmeticheCalcolatori elettronici/Istruzioni aritmetiche
   * Istruzioni per il controllo del flussoCalcolatori elettronici/Istruzioni per il controllo del flusso
   * Istruzioni per la manipolazione dei bitCalcolatori elettronici/Istruzioni per la manipolazione dei bit
   * Le procedureCalcolatori elettronici/Le procedure
   * Istruzioni per il controllo del processoreCalcolatori elettronici/Istruzioni per il controllo del processore
   * Formato delle istruzioni macchina, tempi di esecuzioneCalcolatori elettronici/Formato delle istruzioni macchina, tempi di esecuzione
Modifica il sommario
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

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

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

### ICW

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

### OCW

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