La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers."— Transcript della presentazione:

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

2 Generalità 4 capacità di scambiare dati con altri dispositivi 4 dispositivi di I/O tradizionali tastiera di un terminale video schermo stampante plotter dischi magnetici dispositivi per i nastri magnetici

3 Generalità (continua) 4 applicazioni di controllo industriale, ingressi e uscita digitale di: voltmetro sensore di temperatura allarme antincendio motore valvola robot

4 Generalità (continua) 4 Un calcolatore di uso generale deve poter essere collegato a dispositivi con caratteristiche differenti, che operano in ambienti molto variabili. 4 le operazioni di I/O dal punto di vista del programmatore

5 Dispositivi di I/O 4 Organizzazione del bus 4 I/O mapped I/O 4 memory mapped I/O

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

7 Schemi di mappatura 4 Motorola 68000: memory-mapped I/O 4 Intel 80X86: istruzioni speciali di I/O e spazio di indirizzamento a 16 bit, ma anche memory- mapped I/O 4 PowerPC: stesso spazio di memoria o separato (registro speciale per cambio di contesto)

8 Interfaccia di I/O 4 Decodificatore degli indirizzi 4 Registri dei dati e di stato 4 Circuiti di controllo

9 Registri di una Interfaccia di I/O 4 Registro di Stato con: flag di sincronizzazione SIN SOUT 4 Registri di Scambio Dati DATAIN DATAOUT

10 Problema del Busy-Waiting 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)

11 Interrupt Il meccanismo di interruzione è caratterizzato da tre elementi: 4 INTR (interrupt request, di solito attiva bassa) = linea di richiesta di interruzione 4 INTA (interrupt acknowledge, di solito attiva bassa) = segnale di riscontro della interruzione 4 Procedura di servizio della interruzione

12 Interruzioni

13 Gestione di un interrupt 4 Riconoscimento dellinterrupt 4 Selezione della procedura di servizio 4 Salvataggio del contesto 4 Esecuzione della procedura di servizio 4 Ripristino del contesto

14 Problemi legati alle interruzioni 4 Cambio del contesto = Context switch (legato al sistema operativo, al minimo PS e PC in modo automatico, ma anche altre informazioni presenti nei registri) 4 latenza di interrupt 4 abilitazione e disabilitazione degli interrupt

15 Interruzioni e Programmazione 4 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)

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

17 Interrupt, trap, exception, signal 4 Interrupt hardware = evento (generalmente asincrono) legato a un dispositivo di I/O, che costringe il processore a sospendere lesecuzione di un processo. 4 Interrupt software = evento (generalmente asincrono) legato a una condizione anomala (trap, exception, signal) che si verifica nellesecuzione di una istruzione.

18 Caso: singolo Interrupt da un dispositivo Possibile problema: annidamento degli interrupt (durante lesecuzione della procedura di servizio sopraggiunge un nuovo interrupt). 1 soluzione : ignora tramite disabilitazione 2 soluzione : disabilitazione automatica ma con mascheramento 3 soluzione : edge-triggered

19 Scenario tipico (poco efficiente)

20 Gestione di più dispositivi di I/O

21 Generazione del segnale IRQ

22 Identificazione del dispositivo 4 Viene cambiato lo stato del dispositivo interrompente (IRQ alto) 4 Soluzione del problema di identicazione: 1. Polling = interrogazione ciclica dei dispositivi 2. Interrupt vettorizzati (autoidenticazione tramite interrupt vector)

23 Problemi di efficienza 4 Un lungo ritardo nella emissione di INTA può provocare errori nella gestione del tempo reale (ad es. real time clock) 4 Soluzione: organizzazione dei dispositivi secondo (classi di) PRIORITÀ e mascheramento selettivo

24 Arbitraggio delle priorità

25 Schemi di Interrupt 4 Daisy Chain = soluzione in caso di richieste simultanee di interrupt

26 Schemi di Interrupt 4 Gruppi di priorità + daisy chain: maggiore flessibilità

27 Eccezioni 4 Le interruzioni sono un tipo particolare di eccezioni. 4 Gestione degli errori (TRAP): controllo di parità, istruzioni non ammissibili, divisioni per zero, violazione di indirizzamento, eccezioni di privilegio (modo kernel) 4 DEBUGGING: trace e breakpoints

28 Gestione delle eccezioni software 4 Linguaggio C: SIGNAL HANDLERS 4 C++ e JAVA: try {…}except {…} catch {…}

29 DMA: Accesso diretto alla memoria 4 Approccio alternativo a polling e interrupt per il trasferimento di grandi quantità di dati ad alta velocità (DATA BLOCK TRANSFER). 4 Il controllo del trasferimento dati è delegato dal processore a uno o più DMA CONTROLLER. 4 Il processore comunica al controller: lindirizzo di partenza del blocco, il numero di byte da trasferire e la direzione del trasferimento.

30 DMA 4 segnali di STATO utilizzati nel DMA: R/W, IRQ, IE, Done 4 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

31 Furto di ciclo (Cycle Stealing) 4 In generale può sorgere un conflitto sul possesso del bus tra processore e controller DMA. 4 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.

32 Arbitraggio del bus 1 Meccanismo centralizzato: ¶ Un controller DMA fa richiesta del bus (BUS REQUEST) · Se non vi sono conflitti, larbitro (il processore) concede il bus (BUS GRANT) ¸ Il controller richiedente diventa BUS MASTER attivando il segnale BUS BUSY

33 Arbitraggio del bus 2 Meccanismo distribuito: 4 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) 4 ognuno confronta il codice presente sul bus con quello proprio a partire dal bit più significativo: chi vince la contesa guadagna il bus

34 Circuiti di Interfaccia 1 4 Linterfaccia 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.

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

36 Esempio di Interfaccia di I/O


Scaricare ppt "Lorganizzazione della comunicazione di I/O G. Vercelli 4 Interruzioni 4 DMA 4 Interfacciamento 4 Device Drivers."

Presentazioni simili


Annunci Google