Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4...

36
L’organizzazione della comunicazione di I/O G. Vercelli Interruzioni DMA Interfacciamento Device Drivers

Transcript of Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4...

Page 1: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

L’organizzazione della comunicazione di I/O

G. Vercelli Interruzioni DMA Interfacciamento Device Drivers

Page 2: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Generalità

capacità di scambiare dati con altri dispositivi

dispositivi di I/O tradizionali• tastiera di un terminale video

• schermo stampante

• plotter

• dischi magnetici

• dispositivi per i nastri magnetici

Page 3: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Generalità (continua)

applicazioni di controllo industriale, ingressi e uscita digitale di:

• voltmetro

• sensore di temperatura

• allarme antincendio

• motore

• valvola

• robot

Page 4: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Generalità (continua)

Un calcolatore di uso generale deve poter essere collegato a dispositivi con caratteristiche differenti, che operano in ambienti molto variabili.

le operazioni di I/O dal punto di vista del programmatore

Page 5: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Dispositivi di I/O

Organizzazione del bus I/O mapped I/O

memory mapped I/O

Page 6: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Memory-mapped I/O

Con l'I/O associato a un indirizzo di memoria, ogni istruzione macchina che può accedere alla memoria può essere impiegata per trasferire dati da e verso un dispositivo di I/O. Per esempio, se DATAIN è l'indirizzo del buffer di ingresso associato alla tastiera, l'istruzione

Move DATAIN,RO legge il dato da DATAIN e lo memorizza nel registro RO del processore. Allo

stesso modo, l'istruzione

Move RO,DATAOUT invia il contenuto del registro RO alla locazione DATAOUT, che può essere

il buffer dei dati in uscita di un'unità video o di una stampante.

Page 7: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Schemi di mappatura

Motorola 68000: memory-mapped I/O Intel 80X86: istruzioni speciali di I/O e spazio

di indirizzamento a 16 bit, ma anche memory-mapped I/O

PowerPC: stesso spazio di memoria o separato (registro speciale per cambio di contesto)

Page 8: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Interfaccia di I/O

Decodificatore degli indirizzi Registri dei dati e di stato Circuiti di controllo

Page 9: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Registri di una Interfaccia di I/O

Registro di Stato con:• flag di sincronizzazione

SIN

SOUT

Registri di Scambio Dati• DATAIN

• DATAOUT

Page 10: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Problema del Busy-Waiting

Move #LINEA,R1 Inizializza il puntatore alla memoria.ASPETTAT TestBit #O,STATUS Verifica SIN.

Branch = O ASPETTAT Aspetta che venga inserito un carattere.Move DATAIN,RO Leggi un carattere.

ASPETTAV TestBit #1,STATUS Verifica SOUT.Branch = O ASPETTAV Aspetta finché il video non è pronto.Move RO,DATAOUT Manda un carattere al video.Move RO,(R1)+ Memorizza il carattere e incrementa il puntatore.Compare #$OD,RO Controlla se c'è il ritorno a capo.Branch O ASPETTAT Se non c'è, prendi un altro carattere.CALL PROCESSO Chiama una proc. per elaborare la riga in ingresso.

Un programma che legge una riga di caratteri dalla tastiera e la invia al terminale video.

Esempio di I/O “controllato da programma”. Altre soluzioni:1) interrupt, 2) direct memory access (DMA)

Page 11: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Interrupt

Il meccanismo di interruzione è caratterizzato da tre elementi:

INTR (interrupt request, di solito attiva bassa) = linea di richiesta di interruzione

INTA (interrupt acknowledge, di solito attiva bassa) = segnale di riscontro della interruzione

Procedura di servizio della interruzione

Page 12: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Interruzioni

Page 13: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Gestione di un interrupt

Riconoscimento dell’interrupt Selezione della procedura di servizio Salvataggio del contesto Esecuzione della procedura di servizio Ripristino del contesto

Page 14: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Problemi legati alle interruzioni

Cambio del contesto = Context switch (legato al sistema operativo, al minimo PS e PC in modo automatico, ma anche altre informazioni presenti nei registri)

latenza di interrupt

abilitazione e disabilitazione degli interrupt

Page 15: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Interruzioni e Programmazione

Un interrupt non è solo un meccanismo di coordinamento dei trasferimenti di I/O, ma serve a gestire anche:– eventi esterni ed interni– trasferimento del controllo da un processo ad un

altro (scheduling in tempo reale)

Page 16: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Scheduling e Interrupt

Un sistema operativo multitasking e pre-emptive (che gestisce più processi contemporaneamente mediante la sospensione dell’esecuzione su eventi sincroni/asincroni) deve poter gestire in modo efficiente gli interrupt.

Page 17: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Interrupt, trap, exception, signal

Interrupt hardware = evento (generalmente asincrono) legato a un dispositivo di I/O, che costringe il processore a sospendere l’esecuzione di un processo.

Interrupt software = evento (generalmente asincrono) legato a una condizione anomala (trap, exception, signal) che si verifica nell’esecuzione di una istruzione.

Page 18: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Caso: singolo Interrupt da un dispositivo

Possibile problema: annidamento degli interrupt (durante l’esecuzione della procedura di servizio sopraggiunge un nuovo interrupt).

1 soluzione : ignora tramite disabilitazione

2 soluzione : disabilitazione automatica ma con mascheramento

3 soluzione : edge-triggered

Page 19: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Scenario tipico (poco efficiente)

1. il dispositivo produce una richiesta di interrupt (INTR);2. il processore interrompe il programma in esecuzione in

quel momento;3. gli interrupt vengono disabilitati (DI);4. si informa il dispositivo che la sua richiesta è stata

riconosciuta (INTA), e come risposta, il dispositivodisattiva il segnale di richiesta di interrupt;

5. l'azione richiesta dall'interrupt viene eseguita dallaprocedura di servizio degli interrupt;

6. si ripristina l'esecuzione del programma interrotto,abilitando nuovamente gli interrupt (EI).

Page 20: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Gestione di più dispositivi di I/O1. Come può il processore riconoscere da quale dispositivo

proviene 1' interrupt?R.: linea comune oppure linee separate

2. Come deve operare il processore per ottenere l'indirizzodi partenza della procedura appropriata per gestire undeterminato interrupt, considerando che differentidispositivi probabilmente richiedono procedure diversedi servizio degli interrupt?

R.: interrupt vector table

3. Come un dispositivo riesce ad interrompere ilprocessore mentre questo sta servendo un altrointerrupt? Come possono essere gestite due o piùrichieste contemporanee di interrupt?

R.: livelli di priorità

Page 21: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Generazione del segnale IRQ

Page 22: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Identificazione del dispositivo

Viene cambiato lo stato del dispositivo interrompente (IRQ alto)

Soluzione del problema di identicazione:1. Polling = interrogazione ciclica dei dispositivi

2. Interrupt vettorizzati (autoidenticazione tramite interrupt vector)

Page 23: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Problemi di efficienza

Un lungo ritardo nella emissione di INTA può provocare errori nella gestione del tempo reale (ad es. real time clock)

Soluzione: organizzazione dei dispositivi secondo (classi di) PRIORITÀ e mascheramento selettivo

Page 24: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Arbitraggio delle priorità

Page 25: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Schemi di Interrupt

Daisy Chain = soluzione in caso di richieste simultanee di interrupt

Page 26: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Schemi di Interrupt

Gruppi di priorità + daisy chain: maggiore flessibilità

Page 27: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Eccezioni

Le interruzioni sono un tipo particolare di “eccezioni”.

Gestione degli errori (TRAP): controllo di parità, istruzioni non ammissibili, divisioni per zero, violazione di indirizzamento, eccezioni di privilegio (modo kernel)

DEBUGGING: trace e breakpoints

Page 28: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Gestione delle eccezioni software

Linguaggio C: SIGNAL HANDLERS C++ e JAVA:

try {…}except {…} catch {…}

Page 29: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

DMA: Accesso diretto alla memoria

Approccio alternativo a polling e interrupt per il trasferimento di grandi quantità di dati ad alta velocità (DATA BLOCK TRANSFER).

Il controllo del trasferimento dati è delegato dal processore a uno o più DMA CONTROLLER.

Il processore comunica al controller: l’indirizzo di partenza del blocco, il numero di byte da trasferire e la direzione del trasferimento.

Page 30: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

DMA

segnali di STATO utilizzati nel DMA: R/W, IRQ, IE, Done

registri: BASE e COUNTER

In caso di più controllori DMA, si usano le tecniche di daisy chain e abitraggio delle priorità per gestire i vari dispositivi I/O

Page 31: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Furto di ciclo (Cycle Stealing)

In generale può sorgere un conflitto sul possesso del bus tra processore e controller DMA.

Per risolvere i conflitti si usa un ARBITRO del BUS: quando il DMA acquisisce il controllo sul bus, si dice che “ruba” i cicli di accesso in memoria al processore.

Page 32: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Arbitraggio del bus 1

Meccanismo centralizzato: Un controller DMA fa richiesta del bus (BUS

REQUEST) Se non vi sono conflitti, l’arbitro (il processore)

concede il bus (BUS GRANT) Il controller richiedente diventa BUS

MASTER attivando il segnale BUS BUSY

Page 33: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Arbitraggio del bus 2

Meccanismo distribuito: se uno o più controller DMA richiedono il bus

attivano il segnale START-ARBITRATION, ponendo il proprio codice di priorità sulle linee di arbitraggio del bus (in OR tra loro)

ognuno confronta il codice presente sul bus con quello proprio a partire dal bit più significativo: chi vince la contesa guadagna il bus

Page 34: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Circuiti di Interfaccia 1

L’interfaccia di I/O è costituita dalla logica necessaria a trasferire i dati fra bus a dispositivo. Dal lato del dispositivo di I/O può essere di tipo PARALLELA o SERIALE, dal lato del bus è sempre parallela.

Page 35: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Funzioni di una interfaccia di I/O

fornire un buffer di memoria nei confronti del processore e del dispositivo di I/O

contenere i flag di stato utili al processore per capire se il buffer è pieno/vuoto

decodificare gli indirizzi con cui viene identificato il dispositivo di I/O

generare i segnali di temporizzazione richiesti dallo schema di controllo del bus

eseguire le conversioni di formato richieste per il trasferimento dei dati (es. seriale - parallelo)

Page 36: Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers.

Esempio di Interfaccia di I/O