Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.
-
Upload
mirella-berardino -
Category
Documents
-
view
214 -
download
0
Transcript of Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.
![Page 1: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/1.jpg)
Dispositivi di I/ODispositivi di I/O
Lucidi fatti in collaborazione con dell’Ing. Valeria Cardellini
![Page 2: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/2.jpg)
2
Possibile organizzazione di un calcolatorePossibile organizzazione di un calcolatore
![Page 3: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/3.jpg)
3
Dispositivi di I/ODispositivi di I/O
• Un dispositivo di I/O è costituito da due componenti:– Il dispositivo fisico effettivo (disco, stampante, mouse,
video, …)– Il device controller (o interfaccia) che gestisce tutte le
operazioni che il dispositivo è in grado di svolgere• Permette di uniformare la connessione tra il dispositivo ed il resto
del sistema
• Il device controller è collegato attraverso il bus di sistema con CPU e memoria principale
• Il device controller è un sottosistema specializzato nel controllo dei dispositivi di I/O– Fornisce eventuali registri dove possono essere appoggiati i
dati del trasferimento ed i comandi al dispositivo
![Page 4: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/4.jpg)
4
Eterogeneità dei dispositivi di I/OEterogeneità dei dispositivi di I/O
• Hanno caratteristiche molto diverse tra loro, classificabili in base a 3 dimensioni– Comportamento
• Input/output o memorizzazione di dati
– Controparte (partner)• Uomo o macchina
– Tasso di trasferimento dati
• Dal dispositivo in memoria e viceversa
Dispositivo Funzione Partner Velocità (Mb/sec)
Tastiera input umano 0,0001
Mouse input umano 0,0038
Stampante laser
output umano 3,2
Network/ wireless LAN
input o output
macchina 11-54
Network/LAN input o output
macchina 100-1000
Disco ottico memoriz-zazione
macchina 80
Disco magnetico
memoriz-zazione
macchina 240-2560
Scheda grafica
output umano 800-8000
![Page 5: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/5.jpg)
5
Disco magneticoDisco magnetico
• Costituito da un insieme di piatti rotanti (da 1 a 15) – Piatti rivestiti di una superficie magnetica
• Esiste una testina (bobina) per ogni faccia del piatto– Generalmente piatti a doppia faccia
• Le testine di facce diverse sono collegate tra di loro e si muovono contemporaneamente
• Velocità di rotazione costante (ad es. 10000 RPM)
• La superficie del disco è suddivisa in anelli concentrici (tracce)
• Registrazione seriale su tracce concentriche– 1000-5000 tracce
– Tracce adiacenti separate da spazi
![Page 6: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/6.jpg)
6
Disco magnetico (2)Disco magnetico (2)
• Ciascuna traccia è divisa in settori– Settore: la più piccola unità che può
essere trasferita (scritta o letta)
– Centinaia di settori per traccia, generalmente di lunghezza fissa (es., 512 B)
– Il settore contiene un ID del settore, i dati e un codice di correzione di errore: la capacità formattata scende del 15%
• La stessa traccia su piatti diversi forma un cilindro
![Page 7: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/7.jpg)
7
Organizzazione dei dati sul discoOrganizzazione dei dati sul disco• Nei dischi più vecchi
– Ogni traccia conteneva lo stesso numero di settori
– Le tracce esterne (più lunghe) memorizzavano informazioni con densità minore
• Nei dischi recenti
– Per aumentare le prestazioni, si utilizzano maggiormente le tracce esterne: zoned bit recording (o multiple zone recording)
– Tracce raggruppate in zone sulla base della loro distanza dal centro
• Una zona contiene lo stesso numero di settori per traccia
– Più settori per traccia nelle zone esterne rispetto a quelle interne
– Densità di registrazione (quasi) costante
![Page 8: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/8.jpg)
8
Lettura/scrittura di un discoLettura/scrittura di un disco
• Processo composto da 3 fasi:– Posizionamento della testina sul cilindro desiderato (tempo di seek)
• Da 3 a 14 ms (può diminuire del 75% se si usano delle ottimizzazioni)
• Dischi di diametro piccolo permettono di ridurre il tempo di posizionamento
– Attesa che il settore desiderato ruoti sotto la testina di lettura/scrittura (tempo di rotazione)
• In media è il tempo per ½ rotazione• Tempo di rotazione medio = 0.5/numero di giri al secondo Es.: 7200 RPM Tempo di rotazione medio = 0.5/(7200/60) = 4.2 ms
– Operazione di lettura o scrittura di un settore (tempo di trasferimento)
• Da 30 a 80 MB/sec (fino a 320 MB/sec se il controllore del disco ha una cache built-in)
• In più: tempo per le operazioni del disk controller (tempo per il controller)
![Page 9: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/9.jpg)
9
Prestazioni dei dischi magneticiPrestazioni dei dischi magnetici
• Calcolo del tempo medio necessario a leggere o scrivere un settore di 512 byte sapendo che:– Il disco ruota a 10000 RPM– Il tempo medio di seek è 6 ms– Il transfer rate è di 50 MB/sec– L’overhead del controller è di 0.2 ms
Tempo di seek + tempo medio di rotazione + tempo medio di trasferimento + overhead del controller = = 6 ms + (0.5/(10000/60))·1000 ms + 0.5 KB/(50 MB/sec) + + 0.2 ms = (6.0 + 3.0 + 0.01 + 0.2) ms = 9.2 ms
![Page 10: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/10.jpg)
10
Affidabilità e disponibilitàAffidabilità e disponibilità
• Fallimento (failure): il comportamento del servizio non è conforme alle specifiche– Il fallimento è causato da un errore (error)– La causa di un errore è un guasto (fault)
• Tempo medio di fallimento (mean time to failure o MTTF)– Tempo medio che intercorre tra l’istante in cui il servizio è ripristinato ed
il fallimento successivo– E’ un indice dell’affidabilità (reliability) del servizio
• Tempo medio di riparazione (mean time to repair o MTTR): – Tempo medio necessario per ripristinare il servizio
Servizio accessibile
Servizio interrotto
Fallimento (failure)
Ripristino
![Page 11: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/11.jpg)
11
Affidabilità e disponibilità (2)Affidabilità e disponibilità (2)
• Tempo medio tra due fallimenti (mean time between failures o MTBF)– Tempo medio tra due fallimenti consecutivi
MTBF = MTTF + MTTR• Disponibilità (availability): misura della fornitura del servizio con l’alternananza
tra funzionamento e interruzione MTTF
Availability = ----------------------- MTTF + MTTR
– disponibilitàdisponibilità diverso da affidabilitàaffidabilità
• Per aumentare il MTTF– Evitare i guasti (p.e. uso di componenti più costosi o di manutenzione
preventiva)– Tollerare i guasti
• Tolleranza ai guasti: capacità del servizio di non subire fallimenti anche in presenza di guasti
• Occorre introdurre una ridondanza– Predire i guasti (evitare di usare sistemi con componenti prossimi al
guasto)
![Page 12: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/12.jpg)
12
RAIDRAID• Le prestazioni dei dischi crescono più lentamente di quelle dei
processori– Accesso ai dischi migliorato di 5/10 volte in 20 anni
• Idea di Patterson et al. nel 1987: usare in parallelo più dischi per aumentare le prestazioni dei dischi
• Problema: un array di dischi (senza ridondanza dei dati) è inaffidabile!Affidabilità di un array da N dischi = Affidabilità di 1 disco/N
• Soluzione: definire un’organizzazione dei dati memorizzati sui dischi in modo da ottenere un’elevata affidabilità (tolleranza ai guasti) replicando i dati sui vari dischi dell’array
• RAID: Redundant Array of Inexpensive (Independent) Disks– Insieme di dischi a basso costo ma coordinati in azioni comuni per
ottenere diversi livelli di tolleranza ai guasti
![Page 13: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/13.jpg)
13
Livelli RAIDLivelli RAID
![Page 14: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/14.jpg)
14
RAID 0RAID 0
• Nessuna ridondanza dei dati• Solo striping dei dati
– Striping: allocazione di blocchi logicamente sequenziali su dischi diversi per aumentare le prestazioni rispetto a quelle di un singolo disco
– Lettura e scrittura in parallelo di strip (strisce) su dischi diversi
• Non è un vero RAID perché non c’è nessuna ridondanza
• E’ la migliore soluzione in scrittura, perchè non ci sono overhead per la gestione della ridondanza, ma non in lettura
![Page 15: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/15.jpg)
15
RAID 1RAID 1
• Mirroring (o shadowing)• Ciascun disco è completamente replicato su un disco
ridondante (mirror), avendo così sempre una copia – Usa il doppio dei dischi rispetto a RAID 0
• Ottime prestazioni in lettura – Molte possibilità di migliorare le prestazioni (es.: leggere dal
disco con il minimo tempo di seek, leggere due file contemporanemanete su dischi “gemelli”)
• Una scrittura logica richiede due scritture fisiche• E’ la soluzione RAID più costosa
![Page 16: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/16.jpg)
16
RAID 2RAID 2• Rivelazione e correzione degli errori (codice di Hamming)
• Striping a livello di parola o di byte (in RAID 0 e 1 strip di settori)– Es. in figura: 4 bit (nibble) più 3 bit (codice di Hamming a 7 bit)
• Svantaggio: rotazione dei dischi sincronizzata• Resiste a guasti semplici• Guadagna un fattore 4 in lettura e scrittura• Forte overhead per pochi dischi (in figura +75%)• Ha senso con molti dischi, ad esempio:
– Parola da 32 bit+(6+1) bit di parità 39 dischi– Overhead del 22% (=7/32)– Guadagna un fattore 32 in lettura e scrittura
• In disuso
![Page 17: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/17.jpg)
17
RAID 3RAID 3• Bit di parità
– Versione semplificata di RAID 2
• No copia completa dei dati (come RAID 1), ma si aggiunge un’informazione ridondante (parità) per recuperare i dati in seguito ad un fallimento
• Resiste a guasti semplici• Overhead abbastanza contenuto • Solo un’operazione su disco per volta
– Ciascuna operazione coinvolge tutti i dischi
• Soluzione diffusa per applicazioni che operano su grandi quantità di dati
![Page 18: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/18.jpg)
18
RAID 3: esempioRAID 3: esempio
P100100111100110110010011
. . .
Record logico
10010011
11101101
10010011
11001101
Record fisici con striping
• P contiene il bit di parità dei bit (strip) memorizzati negli altri dischi • Se un disco fallisce, utilizzando P e i bit degli altri dischi si recupera l’informazione mancante• Overhead accettabile (33% nell’esempio)
![Page 19: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/19.jpg)
19
RAID 4RAID 4
• Blocchi di parità
• Striping a livello di blocchi (come RAID 0)– La strip nell’ultimo disco contiene i bit di parità dell’insieme di
bit omologhi di tutte le altre strip
• No rotazione sincronizzata (come in RAID 2 e 3)
• Resiste a guasti singoli (vedi RAID 3)
• Consente letture indipendenti sui diversi dischi – Se si legge una quantità di dati contenuta in una sola strip
• Il disco di parità è il collo di bottiglia
![Page 20: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/20.jpg)
20
RAID 4: lettura e scritturaRAID 4: lettura e scrittura
D0 D1 D2 D3 P
D4 D5 D6 PD7
D8 D9 PD10 D11
D12 PD13 D14 D15
PD16 D17 D18 D19
D20 D21 D22 D23 P
disco 0 disco 1 disco 2 disco 3 disco 4
Strip
Dentro 5 dischiDentro 5 dischi
• Lettura piccola: di un solo disco
• Scrittura piccola: di un solo disco
• Esempio: lettura piccola per D0 e D5, scrittura grande per D12-D15
![Page 21: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/21.jpg)
21
Scrittura in RAID 3 e RAID 4Scrittura in RAID 3 e RAID 4• Esempio di scrittura piccola in RAID 4:
– Opzione 1: si leggono i dati sugli altri dischi, si calcola la nuova parità P’ e la si scrive sul disco di parità (come per RAID 3)
• Es.: 1 scrittura logica = 3 letture fisiche + 2 scritture fisiche
– Opzione 2: poiché il disco di parità ha la vecchia parità, si confronta il vecchio dato D0 con il nuovo D0’, si aggiunge la differenza a P, e si scrive P’ sul disco di parità
• Es.: 1 scrittura logica = 2 letture fisiche + 2 scritture fisiche
![Page 22: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/22.jpg)
22
RAID 5RAID 5
• Blocchi di parità distribuita• Le strip di parità sono distribuite su più dischi in
modalità round-robin (circolare)• Si evita il collo di bottiglia del disco di parità in RAID 4• La scrittura piccola è gestita come in RAID 4
![Page 23: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/23.jpg)
23
RAID 5: scritturaRAID 5: scrittura
D0 D1 D2 D3 P
D4 D5 D6 P D7
D8 D9 P D10 D11
D12 P D13 D14 D15
P D16 D17 D18 D19
D20 D21 D22 D23 P
• Sono possibili scritture indipendenti in virtù della parità interallacciata• Esempio: la scrittura di D0 e D5 usa i dischi 0, 1, 3, 4
disco 0 disco 1 disco 2 disco 3 disco 4
![Page 24: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/24.jpg)
24
RAID 6RAID 6
• Ridondanza P+Q• Anziché la parità, si usa uno schema che consente di
ripristinare anche un secondo fallimento– La parità consente di recuperare un solo fallimento
• Overhead di memorizzazione doppio rispetto a RAID 5
![Page 25: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/25.jpg)
25
BusBus• Rappresenta il canale di comunicazione tra le varie componenti
del calcolatore– Mezzo di trasmissione condiviso, al quale sono collegati più componenti– Un calcolatore contiene svariati bus
• Potenziale collo di bottiglia essendo le sue prestazioni limitate da:– Lunghezza– Numero di dispositivi connessi
• Bus composto da:– Linee dati (e indirizzi)
• Informazioni: dati, indirizzi (anche comandi complessi)• Ampiezza: numero di linee dati • Possibile condividere le linee per dati e indirizzi (multiplexing)
– Linee di controllo• Per controllare l’accesso e l’uso delle linee dati ed indirizzi• Richieste ed ack, tipo di informazione sulle linee dati
![Page 26: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/26.jpg)
26
Transazioni sul busTransazioni sul bus
• Transazione sul bus– Invio dell’indirizzo e del comando da parte dell’unità master– Invio o ricezione dei dati da parte dell’unità slave
• Operazione di input (o transazione di scrittura): trasferimento dati dal dispositivo di I/O alla memoria– Linee di controllo: indicano che in memoria occorre eseguire
una scrittura– Linee di dati: contengono l’indirizzo di memoria in cui scrivere il
dato
• Operazione di output (o transazione di lettura): trasferimento dati dalla memoria al dispositivo di I/O– Linee di controllo: indicano che in memoria occorre eseguire
una lettura– Linee di dati: contengono l’indirizzo di memoria in cui leggere il
dato
![Page 27: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/27.jpg)
27
Tipologie di busTipologie di bus
• Bus processore-memoria– Lunghezza ridotta, alta velocità– In generale proprietario– Progettato per massimizzare la banda di trasferimento
processore-memoria
• Bus di I/O– Tipicamente di lunghezza maggiore e più lenti– Una gran varietà di dispositivi di I/O connessi– Standard, ad es. Firewire (IEEE 1394), USB, SCSI
• Bus backplane– Struttura di interconnessione all’interno dello chassis– Usati spesso come struttura intermedia tra i bus di I/O ed il bus
processore-memoria
![Page 28: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/28.jpg)
28
Esempio di organizzazioneEsempio di organizzazione
P r o c e s s o r M e m o r y
P r o c e s s o r - m e m o r y b u s
B u s
a d a p t e r
B a c k p la n e
b u s
B u s
a d a p t e r
I /O b u s
B u s
a d a p t e r
I / O b u s
• Bus backplane connesso al bus processore-memoria
• Bus di I/O connessi al bus backplane
![Page 29: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/29.jpg)
29
Schemi di comunicazione su un busSchemi di comunicazione su un bus
• La comunicazione sul bus deve essere regolata attraverso un protocollo di comunicazione
• Esistono due schemi principali di comunicazione (temporizzazione) su di un bus – Bus sincroni: protocollo sincrono– Bus asincroni: protocollo asincrono
![Page 30: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/30.jpg)
30
Bus sincronoBus sincrono
• Le linee di controllo del bus includono un segnale di sincronizzazione (clock)
• Il protocollo di comunicazione è scandito dai cicli di clock• Ogni ciclo del bus per lettura/scrittura richiede più cicli di clock• Vantaggi
– Molto veloce– Non richiede molta logica, perché tutti gli eventi sono sincroni con il clock
• Svantaggi– Ogni dispositivo deve essere sincronizzato con il clock– Non può avere lunghezza elevata (problemi di clock skew)
• I bus processore-memoria sono spesso sincroni– Hanno lunghezza ridotta– Hanno pochi elementi connessi
![Page 31: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/31.jpg)
31
Bus sincrono: transazione di letturaBus sincrono: transazione di lettura
• Read: segnale di controllo che indica la richiesta di lettura (o scrittura)
• Wait: indica al processore di non aspettare
• Sono necessari più cicli di clock per leggere un dato dalla memoria
I dati sono pronti per essere letti dal processore
![Page 32: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/32.jpg)
32
Bus asincronoBus asincrono
• Non è dotato di clock• La comunicazione tra le due parti avviene tramite un
protocollo di handshaking• Vantaggi:
– Può avere lunghezza elevata e connettere molti dispositivi– Il tempo impiegato dalle singole operazioni sul bus è legato
esclusivamente alla velocità delle parti coinvolte
• Svantaggi:– Più lento dei bus sincroni
• Spesso i bus di I/O sono asincroni
![Page 33: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/33.jpg)
33
Bus asincrono: ciclo di letturaBus asincrono: ciclo di lettura
Esempio: lettura di una parola dalla memoria ed invio ad un dispositivo di I/O 1) Quando la memoria vede ReadReq, legge l’indirizzo dal bus Data e
asserisce Ack2) Il dispositivo di I/O vede Ack asserito, nega ReadReq e rilascia Data3) La memoria vede che ReadReq è negato e nega Ack4) Quando la memoria ha il dato pronto, lo mette su Data ed asserisce
DataRdy5) Il dispositivo di I/O vede DataRdy asserito, legge il dato ed asserisce
Ack6) La memoria vede Ack asserito, nega DataRdy e rilascia Data7) Il dispositivo di I/O nega Ack
DataRdy
Ack
Data
ReadReq 13
4
57
642 2
![Page 34: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/34.jpg)
34
Bus asincroni: protocollo di handshakingBus asincroni: protocollo di handshaking
• Lo schema asincrono visto è incentrato sulla seguente procedura:– ReadReq viene asserito– Ack viene asserito in risposta a ReadReq– ReadReq viene non asserito in risposta ad Ack– Ack viene non asserito in risposta a ReadReq
– DataRdy viene asserito– Ack viene asserito in risposta a DataRdy– DataRdy viene non asserito in risposta ad Ack– Ack viene non asserito in risposta a DataRdy
• La procedura ha il nome di handshake
![Page 35: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/35.jpg)
35
Temporizzazione sincrona o asincrona?Temporizzazione sincrona o asincrona?
Lungo
Corto
Simili Eterogenee
Clock skew (funzione della
lunghezza del bus)
Velocità dei dispositivi di I/O
Sincrona
Asincrona
![Page 36: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/36.jpg)
36
Comunicazione sul busComunicazione sul bus• Regolata da un protocollo di comunicazione• Problema: ottenere l’accesso al bus (mezzo di comunicazione
condiviso)• Accesso regolato tramite ruoli master e slave
– Unità master: può iniziare attivamente una transazione di lettura o scrittura
– Il processore è sempre un master, la memoria uno slave – Un bus può avere molteplici master
• Architettura più semplice: un solo bus master (un processore), che media tutte le comunicazioni– Svantaggio: il processore deve prendere parte ad ogni transazione sul
bus
• Alternativa: avere più master e seguire un protocollo per coordinare le richieste dei master – Occorre un meccanismo di arbitraggio del bus
![Page 37: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/37.jpg)
37
Arbitraggio del busArbitraggio del bus
• Permette di decidere quale dispositivo sarà il prossimo bus master autorizzato all’utilizzo del bus– Consente di risolvere possibili contese per l’accesso
• Obiettivi:– Assegnare il bus ai dispositivi con priorità più alta– Garantire che non si verifichino situazioni di attesa indefinita o di
paralisi del sistema
• Schemi di arbitraggio centralizzati: – Un controllore decide a chi assegnare il bus– Daisy chain e livelli multipli di priorità
• Schemi di arbitraggio distribuiti (decentralizzati): – Nessun controllore centralizzato: i dispositivi seguono un
algoritmo per il controllo d’accesso e cooperano nella condivisione del bus
– Round-robin e rilevamento della collisione
![Page 38: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/38.jpg)
38
Daisy chainDaisy chain
• Ad ogni dispositivo è assegnata una priorità• Sceglie il dispositivo che richiede l’accesso al bus e
possiede priorità maggiore (più vicino all’arbitro)• Problema: non garantisce la fairness
– Favorisce alcuni dispositivi rispetto ad altri
Linea di disponibilità
Linea di richiesta
Linea di occupazione
![Page 39: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/39.jpg)
39
Livelli multipli di prioritàLivelli multipli di priorità
• Anche detto parallelo centralizzato• Diverse linee di richiesta associate a diversi livelli di
priorità – In caso di conflitto favorite le catene a priorità più alta– All’interno di ciascuna catena vale la posizione (daisy chain)– In genere, se c’è un solo bus con anche la memoria, il
processore ha priorità più bassa dei dispositivi di I/OCatena a priorità
massima
Catena a priorità minima
![Page 40: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/40.jpg)
40
Schemi di arbitraggio distribuitiSchemi di arbitraggio distribuiti
• Round-robin– Disciplina circolare – Scambio ciclico di un segnale di disponibilità tra le unità
utilizzatrici del bus
• Rilevamento delle collisioni– Esiste un’unica linea su cui è segnalato lo stato del bus
(libero/occupato)– Più unità contemporaneamente possono occupare il bus:
situazione di collisione– Occorre rilevare la collisione ed annullare la trasmissione– La trasmissione sarà ripetuta dopo un intervallo di tempo (il cui
valore è generato in modo casuale)– Simile a rete Ethernet
![Page 41: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/41.jpg)
41
Bus interni ed esterniBus interni ed esterni
• I bus in un calcolatore si possono anche distinguere in bus interni ed esterni
• Bus interni (o locali)– Confinati all’interno di una singolo chip (tra processore e
cache) o tra processore e memoria– Elevata velocità per massimizzare la banda passante– Tecnologia proprietaria
• Bus esterni– Collegano dispositivi diversi– Maggiore lunghezza– Velocità inferiore
![Page 42: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/42.jpg)
42
Banda passante di un busBanda passante di un bus
• Un bus trasmette sequenze di dati: la rapidità con cui si passa da un dato al successivo è detta ciclo di bus
• Più alta è la frequenza, maggiori sono le prestazioni del bus (bandwidth o banda passante)
• Per ricavare la massima banda passante teorica:max banda = frequenza * numero di linee [MB/sec]
• Le fasi di inattività e di scambio comandi riducono la banda passante reale
• I limiti fisici all’aumento della frequenza sono:– Alte frequenze creano disturbi – Ritardi del segnale – Bus skew (segnali su linee diverse che viaggiano a velocità
diverse)
![Page 43: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/43.jpg)
43
Tecniche per aumentare la banda passanteTecniche per aumentare la banda passante
• Parallelismo delle linee dati– Aumento del numero di linee
• Linee dati ed indirizzi separate– Aumento del numero di linee
• Trasferimento di dati a blocchi– Riduzione del tempo di risposta
• Protocollo split transaction– La transazione sul bus è divisa in due parti: transazione di richiesta e
transazione di risposta• Al termine della transazione di richiesta viene rilasciato il bus; per la
transazione di risposta occorre nuovamente competere per l’accesso al bus
– Vantaggio: si evitano tempi di non utilizzo del bus, sfruttando meglio la banda del bus
– Svantaggio: tempi di transazione più lunghi– Usato nei sistemi multiprocessore che condividono il bus di memoria
![Page 44: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/44.jpg)
44
Opzioni di progettazione di un busOpzioni di progettazione di un bus
Opzione Prestazioni elevate Costo basso
Parallelismo bus Linee indirizzi e dati separate
Linee indirizzi e dati multiplexate
Parallelismo dati Ampio (es. 64 bit) Limitato (es. 8-16 bit)
Dimensione del trasferimento
Più parole per trasferimento riduce l’overhead
Trasferimento di singole parole più semplice
Bus master Multiplo (necessario arbitraggio)
Singolo (nessun arbitraggio)
Split transaction Sì (pacchetti request/reply separati forniscono più banda)
No (una connessione continua è più economica ed ha latenza minore)
Temporizzazione Sincrona Asincrona
![Page 45: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/45.jpg)
45
Alcuni standard per busAlcuni standard per bus
IDE/Ultra ATA SCSI PCI PCI-X
Ampiezza dati 16 bit 8 o 16 bit 32 o 64 bit 32 o 64 bit
Frequenza clock Fino a 100 MhZ 10 MhZ (Fast)
20 MhZ (Ultra)
40 MhZ (Ultra2)
80 MhZ (Ultra3)
160 MhZ (Ultra4)
33 o 66 MHz 66, 100, 133 MhZ
Numero di bus master
1 multipli multipli multipli
Bandwidth (picco)
200 MB/sec 320 MB/sec 528 MB/sec 1064 MB/sec
Temporizzazione asincrono asincrono sincrono sincrono
PCI (Peripheral Component Interconnect) e PCI-X usati per connettere la memoria principale ai dispositivi periferici; IDE/Ultra ATA e SCSI (Small Component System Interface) per dispositivi di storage
![Page 46: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/46.jpg)
46
Bus paralleli e serialiBus paralleli e seriali
• Bus paralleli– Più bit alla volta: i bit vengono inviati contemporaneamente su
più linee
• Bus seriali– Un bit alla volta: i bit vengono inviati in tempi diversi su
un’unica linea– Un bus seriale può avere un clock con frequenza superiore
rispetto ad un bus parallelo
• Necessità di avere a disposizione una velocità di trasferimento dei dati sempre più elevata: maggiore attenzione verso bus seriali e collegamenti punto-punto
![Page 47: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/47.jpg)
47
Esempi di bus ad alte prestazioniEsempi di bus ad alte prestazioni
• PCI Express– Evoluzione seriale del bus PCI (che è un bus parallelo) – Bus bidirezionale (full-duplex) usato principalmente da Intel– Costituito da un serie di canali, che possono essere aggregati per
aumentare la banda • Banda aggregata fino a 7,5 GB/sec
– Sostituisce il collegamento AGP con schede grafiche
• HyperTransport– Usato principalmente da AMD e Transmeta– Collegamento punto-punto unidirezionale ad alta velocità e bassa
latenza– Ogni link è costituito da due canali (per le due direzioni di
trasmissione) che operano in maniera indipendente e concorrente• Fino a 32 bit per link• Banda aggregata fino a 22,4 GB/sec
![Page 48: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/48.jpg)
48
USB e FirewireUSB e Firewire
• Sono due bus di I/O seriali: – Permettono di collegare con un unico bus molte periferiche (fino a 63 per
FireWire e 127 per USB 2.0)– Supportano entrambi l’inserimento a caldo
• Firewire (IEEE 1394)– Bus ad alta velocità progettato per dispositivi di I/O ad alta capacità
(dispositivi di archiviazione e acquisizione video)• Fino a 50 MB/sec
– Ideato dalla Apple
• USB (Universal Serial Bus)– Bus economico per la gestione di dispositivi di I/O a medio/bassa velocità
• Fino a 60 MB/sec per USB 2.0
– Flessibilità, semplicità: • Un unico bus per molte periferiche• Non sono necessari dispositivi di controllo e porte dedicate• Facilmente espandibile
![Page 49: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/49.jpg)
49
Esempio tipico per desktopEsempio tipico per desktop
![Page 50: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/50.jpg)
50
Esempio: Pentium 4Esempio: Pentium 4
Il tasso di trasferimento tra north bridge e south bridge è 266 MB/sec: per questo AGP (Accelerated Graphics Port) e la Gigabit Ethernet sono connesse al north bridge anziché al south bridge
AGP non è un vero e proprio bus ma un collegamento punto-punto
DDR (double-data rate): invio dei dati sia sul fronte di salita che sul fronte di discesa del clock
![Page 51: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/51.jpg)
51
Invio dei comandi ad un dispositivo di I/OInvio dei comandi ad un dispositivo di I/O• I comandi devono essere inviati al corrispondente device
controller• Un’istruzione di I/O in un linguaggio ad alto livello viene
trasformata in una serie di comandi per il controller– La trasformazione avviene ad opera del compilatore che traduce
l’istruzione in una chiamata al sistema operativo
• A runtime la chiamata del sistema operativo richiama uno dei moduli del SO che si occupano della gestione dell’I/O (device driver)
• Il device controller ha una serie di registri (porte di I/O) in cui memorizza– Lo stato della periferica (ad es.: idle, busy, down, …)– Il comando in esecuzione– I dati da/verso il dispositivo di I/O
![Page 52: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/52.jpg)
52
Invio dei comandi ad un dispositivo di I/O (2)Invio dei comandi ad un dispositivo di I/O (2)
• Il device controller può essere visto come un processore (con potenzialità ridotte)– Si parla di processori di I/O
• Per richiedere un’operazione di I/O il processore deve– Predisporre il contenuto dei registri del controller a valori
predeterminati– Avviare il controller stesso
• L’operazione di selezione del controller e di predisposizione dei suoi registri può avvenire in due modi– Memory-mapped I/O– Istruzioni di I/O dedicate
![Page 53: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/53.jpg)
53
Memory-mapped I/OMemory-mapped I/O
• Lo spazio di indirizzamento dell’I/O appartiene allo stesso spazio di indirizzamento della memoria– I registri dei vari device controller sono considerati logicamente
come locazioni di memoria, pur essendo fisicamente localizzati all’interno del device controller
• I device controller devono essere quindi dotati di un meccanismo che permetta loro di riconoscere le transazioni ad essi indirizzate
• I controller ascoltano tutti i segnali in transito sul bus (bus snooping) e si attivano solo quando riconoscono sul bus un indirizzo corrispondente ad una propria locazione di memoria
![Page 54: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/54.jpg)
54
Istruzioni dedicateIstruzioni dedicate
• Lo spazio di indirizzamento di I/O è separato dallo spazio di indirizzamento della memoria
• Per consentire al processore di accedere ai registri dei controller delle periferiche vengono inserite delle istruzioni specifiche nell’insieme delle istruzioni, dedicate alla gestione dell’I/O
• Queste istruzioni dedicate fanno riferimento esplicitamente al dispositivo interessato all’operazione di I/O
![Page 55: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/55.jpg)
55
Modalità di esecuzione delle operazioni di I/OModalità di esecuzione delle operazioni di I/O
• I dispositivi di I/O sono molto più lenti del processore; inoltre, essi procedono in modo autonomo – È quindi necessario introdurre qualche meccanismo di
sincronizzazione per la gestione delle operazioni di I/O
• Principali tecniche per la gestione dei dispositivi di I/O– A controllo di programma– Polling – I/O interrupt driven– Direct Memory Access
![Page 56: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/56.jpg)
56
I/O a controllo di programmaI/O a controllo di programma
• Completo coinvolgimento del processore nella gestione dell’operazione di I/O richiesta
• Il processore, dopo avere predisposto il controller all’esecuzione dell’operazione di I/O interroga continuamente il controller per verificare l’esito dell’operazione
• Ad operazione ultimata, il processore provvede a trasferire il dato (nel caso di operazione di input) o ad eseguire una nuova istruzione
• Il processore è coinvolto durante tutta l’operazione di I/O per svolgere il ruolo di controllore
• Il ciclo svolto dal processore in attesa dello svolgimento dell’operazione è detto busy waiting
![Page 57: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/57.jpg)
57
I/O a controllo di programma (2)I/O a controllo di programma (2)
• L’I/O a controllo di programma è molto semplice ma dispendioso– Il processore spreca tempo nel ciclo di busy waiting, perché
non svolge nessun’altra attività se non quella di osservare lo stato della periferica
• Questa tecnica non deve essere usata nella gestione di periferiche lente, perché forza il processore ad operare alla stessa velocità delle periferiche– Di conseguenza, la potenza di calcolo del processore viene
sprecata
• Un (lieve) miglioramento della tecnica a controllo di programma è il polling
![Page 58: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/58.jpg)
58
PollingPolling
• Durante un ciclo di busy waiting su un dispositivo, il processore esegue il polling (appello) degli altri dispositivi di I/O
• Quando un dispositivo necessita di un qualche intervento, il processore soddisfa la richiesta di trasferimento e poi continua il polling
• I miglioramenti di prestazioni rispetto al controllo di programma sono limitati
• Problemi principali del polling– Con periferiche lente: un eccessivo spreco di tempo di
processore, che per la maggior parte del tempo è occupato nel ciclo di busy waiting
– Con periferiche veloci: il lavoro svolto dal processore è quasi esclusivamente dovuto all’effettivo trasferimento dati
![Page 59: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/59.jpg)
59
I/O interrupt drivenI/O interrupt driven
• Per evitare il busy waiting è necessario introdurre un metodo basato sulla gestione delle interruzioni
• Il processore invia al device controller il comando di I/O e prosegue la sua computazione, disinteressandosi dello svolgimento dell’operazione da parte del controller
• Il controller esegue il comando inviatogli dal processore; quando è pronto allo scambio dei dati invia al processore un segnale di interrupt (interrupt request)
• Il processore, attraverso una routine di gestione dell’interrupt (interrupt handler), provvederà a salvare il contesto esecutivo ed elaborare l’interrupt– Prima di gestire l’interrupt, il processore deve salvare le informazioni
che permetteranno di riprendere l’esecuzione del programma corrente dal punto in cui è stata interrotta
![Page 60: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/60.jpg)
60
I/O interrupt driven (2)I/O interrupt driven (2)
• Un interrupt è un meccanismo che consente di interrompere l’esecuzione di un programma al fine di eseguire una routine di SO
• L’interrupt (a differenza di eccezioni e trap) non è causato dall’istruzione correntemente eseguita, ma da un evento esterno, generalmente scorrelato rispetto all’istruzione stessa
• Un segnale di interrupt è un evento asincrono rispetto alle attività correnti del processore– L’interrupt di I/O non è associato con nessuna istruzione, ma può
capitare durante l’esecuzione di un’istruzione– L’interrupt di I/O non preclude il completamento dell’istruzione
• Il meccanismo di I/O interrupt driven non svincola il processore dal dover eseguire l’operazione di trasferimento dati
![Page 61: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/61.jpg)
61
I/O interrupt driven (3)I/O interrupt driven (3)• Meccanismi per identificare il dispositivo di I/O che ha generato
l’interruzione: – Più linee di interruzione
• Non è pratico dedicare molte linee del bus agli interrupt• Usato in combinazione ad uno degli altri 3 meccanismi• Semplice per priorità dell’interrupt
– Interrogazione software (software poll)• Quando rileva un’interruzione, il processore esegue una routine che interroga i dispositivi
di I/O per individuare chi l’ha causata• Svantaggio: perdita di tempo
– Interrogazione hardware, vettorizzata• Linea di richiesta di interruzione comune a tutti i dispositivi di I/O• Quando rileva l’interruzione, il processore invia a sua volta un interruzione di
riconoscimento• Il dispositivo richiedente risponde inviando un vettore, usato dal processore come
puntatore alla routine di gestione appropriata
– Arbitraggio del bus (vettorializzato)• Il dispositivo deve ottenere il controllo del bus prima di poter asserire la linea di richiesta
dell’interruzione
![Page 62: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/62.jpg)
62
Priorità delle interruzioniPriorità delle interruzioni• Quando ci sono diversi dispositivi che possono inviare
interruzioni al processore, oltre ad identificare il dispositivo che ha generato l’interruzione e la routine di gestione opportuna, occorre anche:– Gestire la priorità delle interruzioni – Gestire interruzioni annidate
• Arriva un’interruzione mentre si sta gestendo un’altra interruzione
• Gestione della priorità– Semplice con linee di interruzioni individuali– Con l’interrogazione hardware (linea di interruzione comune) la priorità
si gestisce tramite un’organizzazione dei dispositivi di tipo daisy chain• L’interruzione di riconoscimento viene ricevuta prima dal dispositivo a
priorità più elevata e da questi eventualmente propagato al dispositivo successivo
![Page 63: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/63.jpg)
63
Interruzioni annidateInterruzioni annidate
• Soluzione semplice: si disabilitano le interruzioni durante il servizio di un interruzione– Soluzione restrittiva, in contrasto con le differenti priorità dei
dispositivi
• Soluzione più adottata: un’interruzione a priorità più alta può interrompere il servizio di un interruzione a priorità minore
![Page 64: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/64.jpg)
64
Direct Memory AccessDirect Memory Access
• Con l’I/O interrupt driven, per periferiche veloci l’attività di trasferimento è comunque preponderante– Il processore è impegnato nel trasferimento dei dati tra
dispositivo di I/O e memoria
• Per evitare l’intervento del processore durante il trasferimento si usa l’accesso diretto alla memoria (Direct Memory Access o DMA)
• Il DMA controller è un processore specializzato nel trasferimento dei dati tra dispositivi di I/O e memoria principale– Il DMA controller attua direttamente il trasferimento dati tra
periferiche e memoria principale senza l’intervento del processore
![Page 65: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/65.jpg)
65
Direct Memory Access (2)Direct Memory Access (2)
• Il processore ha solo il compito di supervisore; a fronte di una richiesta di I/O, il processore invia al DMA controller:– Tipo di operazione richiesta– Dispositivo di I/O– Indirizzo di memoria da cui iniziare a leggere/scrivere i dati– Numero di byte da leggere/scrivere
• Il DMA controller avvia l’operazione richiesta e trasferisce i dati da/verso la memoria
• Completato il trasferimento, il DMA controller invia un’interruzione al processore per segnalare il completamento dell’operazione richiesta
• Tra il momento in cui termina l’invio del comando di I/O al controller e la ricezione dell’interruzione inviata dal DMA controller, il processore è completamente svincolato dall’operazione di I/O e può dedicarsi ad altre attività
![Page 66: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/66.jpg)
66
Direct Memory Access (3)Direct Memory Access (3)
• Possibili configurazioni DMA– Bus singolo, DMA isolato
– Bus singolo, DMA-I/O integrati
– Bus di I/O
Processore DMA I/O I/O Memoria…
Processore DMA
I/OI/O
Memoria
…
DMA
I/O
Processore DMA
I/O
Memoria
…I/O
Bus di sistema
Bus di sistema
Bus processore-memoria
Bus di I/O
![Page 67: Dispositivi di I/O Lucidi fatti in collaborazione con dellIng. Valeria Cardellini.](https://reader036.fdocument.pub/reader036/viewer/2022062701/5542eb57497959361e8c194b/html5/thumbnails/67.jpg)
67
DMA, memoria virtuale e cacheDMA, memoria virtuale e cache
• In sistemi con memoria virtuale, il DMA deve trasferire usando indirizzi virtuali o indirizzi fisici?– Se usa indirizzi fisici, il trasferimento non può riguardare
facilmente più di una pagina• Più pagine non corrispondono generalmente a locazioni
sequenziali in memoria
– Se usa indirizzi virtuali, li deve tradurre in indirizzi fisici• Il sistema operativo fornisce delle tabelle di traduzione quando
inizia il trasferimento
• In sistemi con cache– Possibili due copie di un elemento (una in cache e una in
memoria)– Altro problema derivante dalla strategia di scrittura write-back– Come mantenere la coerenza?