La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Dispositivi di I/O Lucidi fatti in collaborazione con lIng. Valeria Cardellini.

Presentazioni simili


Presentazione sul tema: "Dispositivi di I/O Lucidi fatti in collaborazione con lIng. Valeria Cardellini."— Transcript della presentazione:

1 Dispositivi di I/O Lucidi fatti in collaborazione con lIng. Valeria Cardellini

2 1 Possibile organizzazione di un calcolatore

3 2 Dispositivi 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

4 3 Eterogeneità 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 DispositivoFunzionePartnerVelocità (Mb/sec) Tastierainputumano0,0001 Mouseinputumano0,0038 Stampante laser outputumano3,2 Network/ wireless LAN input o output macchina11-54 Network/LANinput o output macchina Disco otticomemoriz- zazione macchina80 Disco magnetico memoriz- zazione macchina Scheda grafica outputumano

5 4 Disco 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 in modo solidale Velocità di rotazione costante (ad es RPM) La superficie del disco è suddivisa in anelli concentrici (tracce) Registrazione seriale su tracce concentriche – tracce –Tracce adiacenti separate da spazi

6 5 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% Tracce sovrapposte su piatti diversi formano un cilindro

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

8 7 Lettura/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)

9 8 Prestazioni dei dischi magnetici Calcolo del tempo medio necessario a leggere o scrivere un settore di 512 byte sapendo che: –Il disco ruota a RPM –Il tempo medio di seek è 6 ms –Il transfer rate è di 50 MB/sec –Loverhead 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 KB/(50 MB/sec) ms = ( ) ms = = 9.2 ms

10 9 Affidabilità e disponibilità Fallimento (failure): il comportamento del servizio non è conforme alle specifiche –Il fallimento è causato da un errore (error) – i.e. porzione di stato scorretto –La causa di un errore è un guasto (fault) tipo: hw, sw o operativo durata: transiente, permanente, intermittente visibilità esterna: fail-stop, bizantino Servizio accessibile Servizio interrotto Fallimento (failure) Ripristino

11 Affidabilità e disponibilità (2) Affidabilità - reliability: probabilità che il sistema funzioni secondo le specifiche di progetto continuamente dallistante in cui viene attivato allistante di osservazione – R(t) Disponibilità (availability) allistante t: probabilità che il sistema funzioni secondo le specifiche di progetto quando gli si chiede un servizio – A(t) Disponibilità (a regime permanente) - availability: disponibilità quando t -> infinito

12 Affidabilità e disponibilità (3) Tempo medio di fallimento (mean time to failure o MTTF) –Tempo medio che intercorre tra listante in cui il servizio è ripristinato ed il fallimento successivo –E un indice dellaffidabilità (reliability) del servizio Tempo medio di riparazione (mean time to repair o MTTR): –Tempo medio necessario per ripristinare il servizio

13 12 Affidabilità e disponibilità (4) Tempo medio tra due fallimenti (mean time between failures o MTBF) –Tempo medio tra due fallimenti consecutivi MTBF = MTTF + MTTR Disponibilità (availability) a regime permanente: MTTF Availability = MTTF + MTTR Per aumentare il MTTF –Evitare i guasti (p.e. uso di componenti più costosi) –Tollerare i guasti Tolleranza ai guasti: capacità del servizio di non subire fallimenti anche in presenza di guasti Occorre introdurre ridondanze (spaziale, temporale) –Predire i guasti (evitare di usare sistemi con componenti prossimi al guasto) – manutenzione preventiva

14 13 RAID 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 unorganizzazione dei dati memorizzati sui dischi in modo da ottenere unelevata affidabilità (tolleranza ai guasti) replicando i dati sui vari dischi dellarray 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

15 14 Livelli RAID

16 15 RAID 0 Nessuna ridondanza dei dati Solo striping dei dati –Striping: allocazione di blocchi logicamente sequenziali (memorizzanti p.e. lo stesso file, che quindi è suddiviso in più blocchi) su dischi diversi per aumentare le prestazioni rispetto a quelle di un singolo disco –Lettura e scrittura in parallelo di stripe (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

17 16 RAID 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

18 17 RAID 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 Ad ogni scrittura bisogna aggiornare i dischi di parità anche per la modifica di un singolo bit di informazione 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) In disuso

19 18 RAID 3 Un bit di parità orizzontale ed uno verticale Resiste ad un guasto (transiente o permanente) alla volta Overhead abbastanza contenuto Solo unoperazione su disco per volta –Ciascuna operazione coinvolge tutti i dischi Soluzione diffusa per applicazioni che operano su grandi quantità di dati in lettura (come nei video games o nelle fruizioni multimediali), disco di parità collo di bottiglia in caso di scrittura

20 19 RAID 3: esempio P Record logico Record fisici P contiene il bit di parità dei bit (strip) memorizzati negli altri dischi Se un disco fallisce (in modo transiente o permanente), utilizzando P, i bit di parità verticale e i bit degli altri dischi si recupera linformazione mancante Overhead accettabile (un terzo nellesempio, in genere 1/(n-1) se n sono i dischi utilizzati)

21 20 RAID 4 Evoluzione di Raid 3 con striping a blocchi (come RAID 0) –la stripe nellultimo disco contiene i bit di parità dellinsieme di bit omologhi di tutte le altre stripe No rotazione sincronizzata (come in RAID 2 e 3) Resiste a guasti singoli (transienti e permanenti) 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

22 21 RAID 4: lettura e scrittura D0D1D2 D3 P D4D5D6 PD7 D8D9 PD10 D11 D12 PD13 D14 D15 P D16D17 D18 D19 D20D21D22 D23 P disco 0disco 1disco 2disco 3disco 4 Stripe Dentro 5 dischi Lettura piccola: coinvolge un solo disco Scrittura : anche se si aggiorna un solo disco si deve aggiornare anche strip di parità Esempio: lettura piccola per D0 e D5, scrittura grande per D12- D15

23 22 Scrittura 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

24 23 RAID 5 Blocchi di parità distribuita Le stripe 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

25 24 RAID 5: scrittura D0D1D2 D3 P D4D5D6 P D7 D8D9P D10 D11 D12PD13 D14 D15 PD16D17 D18 D19 D20D21D22 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 0disco 1disco 2disco 3disco 4

26 25 RAID 6 Ridondanza P+Q (si aumenta la distanza di Hamming) Anziché la parità, si usa uno schema che consente di ripristinare anche un secondo guasto –la singola parità consente di recuperare un solo guasto Overhead di memorizzazione doppio rispetto a RAID 5

27 26 Bus 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 laccesso e luso delle linee dati ed indirizzi Richieste ed ack, tipo di informazione sulle linee dati

28 Bus: esempio di multiplexing dati/indirizzi

29 28 Esempio di transazioni sul bus Transazione sul bus –Invio dellindirizzo e del comando da parte dellunità master (una periferica nellesempio) –Invio o ricezione dei dati da parte dellunità slave (una memoria nellesempio) Operazione di output (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/indirizzi: contengono prima lindirizzo di memoria in cui scrivere il dato e poi il dato da scrivere Operazione di input (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/indirizzi: contengono prima lindirizzo di memoria in cui leggere il dato (da dispositivo a memoria) e poi il dato da leggere (da memoria a dispositivo)

30 29 Tipologie di bus Bus processore-memoria –Lunghezza ridotta, alta velocità –In generale sono di tipo proprietario –Progettati 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, per consentire a più produttori di uniformarsi nelle interfacce Bus backplane –Struttura di interconnessione allinterno dello chassis –Usati spesso come struttura intermedia tra i bus di I/O ed il bus processore-memoria

31 30 Esempio di organizzazione ProcessorMemory Processor-memory bus Bus adapter Backplane bus Bus adapter I/O bus Bus adapter I/O bus Bus backplane connesso al bus processore-memoria Bus di I/O connessi al bus backplane

32 31 Schemi 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

33 32 Bus 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

34 33 Bus sincrono: transazione di lettura Read: segnale di controllo che indica la richiesta di lettura (o scrittura) Sono necessari più cicli di clock (noti a priori) per leggere un dato dalla memoria I dati sono pronti per essere letti dal processore T1T2T3 CLOCK BUS INDIRIZZI MRD BUS DATI indirizzo dato

35 34 Bus 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

36 35 Esempio di bus asincrono: ciclo di lettura 1)Quando lo SCO della memoria vede ReadReq, memorizza lindirizzo dal bus Address/Data bus e asserisce Ack 2)Il dispositivo di I/O vede Ack asserito, nega ReadReq e rilascia l Address/Data bus (mette le sue uscite in alta impedenza) 3)Lo SCO della memoria vede che ReadReq è negato e nega Ack 4)Quando lo SCO ha il dato pronto, lo mette sullAddress/Data bus ed asserisce DataRdy 5)Il dispositivo di I/O vede DataRdy asserito, legge il dato ed asserisce Ack 6)Lo SCO della memoria vede Ack asserito, nega DataRdy e rilascia lAddress/Data bus (mette le sue uscite in alta impedenza) 7)Il dispositivo di I/O nega Ack Address/data bus Trasferimento dati da memoria (con SCO che permette lhandshacking) a disp. I/O

37

38 37 Bus asincroni: protocollo di handshaking Lo schema asincrono visto è incentrato sul seguente protocollo di handshaking tra produttore e consumatore (ci sono due macchine a stati finiti): –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

39

40 39 Temporizzazione sincrona o asincrona? Lungo Corto SimiliEterogenee Clock skew (funzione della lunghezza del bus) Velocità dei dispositivi di I/O Sincrona Asincrona

41 40 Comunicazione sul bus (quando ci sono più richiedenti di informazioni) Problema: ottenere laccesso 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

42 41 Arbitraggio del bus Permette di decidere quale dispositivo sarà il prossimo bus master autorizzato allutilizzo del bus –Consente di risolvere possibili contese per laccesso Obiettivi: –Assegnare il bus ai dispositivi con priorità più alta –Garantire che non si verifichino situazioni di attesa indefinita (starvation) 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 daccesso e cooperano nella condivisione del bus –Possibili politiche: Round-robin, rilevamento della collisione

43 42 Daisy chain Ad ogni dispositivo è assegnata una priorità Sceglie il dispositivo che richiede laccesso al bus e possiede priorità maggiore (più vicino allarbitro) Problema: rischio di starvation e non garantisce la fairness (favorisce alcuni dispositivi rispetto ad altri) Linea di disponibilità Linea di richiesta Linea di occupazione

44 43 Livelli multipli di priorità Anche detto parallelo centralizzato Diverse linee di richiesta associate a diversi livelli di priorità –In caso di conflitto sono favorite le catene a priorità più alta –Allinterno di ciascuna catena vale la posizione (daisy chain) Catena a priorità massima Catena a priorità minima

45 44 Schemi di arbitraggio distribuiti Round-robin –Assegnazione circolare del bus –Scambio ciclico di un segnale di disponibilità tra le unità utilizzatrici del bus Rilevamento delle collisioni –Esiste ununica 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

46 45 Bus interni ed esterni I bus in un calcolatore si possono anche distinguere in bus interni ed esterni Bus interni (o locali) –Confinati allinterno 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

47 46 Banda 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 ( p.e. nellinterazione della PD32 con la memoria ipotizzata ci sono tre cicili di clock ) I limiti fisici allaumento della frequenza sono: –alte frequenze creano disturbi (interferenze) –bus skew (segnali su linee diverse che viaggiano a velocità diverse)

48 47 Tecniche per aumentare la banda passante Parallelismo delle linee dati –Aumento del numero di linee (passare da 32 a 64 o 128 bit) Linee dati ed indirizzi separate –Aumento del numero di linee (come nel PD32) Trasferimento di dati a blocchi –Riduzione del tempo di risposta (trasferimento di più parole contemporaneamente, identificate senza dover trasferire più indirizzi, come nel DMAC)

49 Parallelismo sul bus dati (p.e. da 32 a 128) (1/2) Data BUS (32 bit) a 2 …a 31 d 23 …d 16 d 31 …d 24 a 2 …a 31 d 15 …d 8 a 2 …a 31 d 7 …d 0 MR MW CS MR MW CS MR MW CS MR MW CS

50 Parallelismo sul bus dati (p.e. da 32 a 128) (2/2) Data BUS (128 bit) a 4 …a 31 d 95 …d 64 d 127 …d 96 a 4 …a 31 d 63 …d 32 a 4 …a 31 d 31 …d 0 MR MW CS MR MW CS MR MW CS MR MW CS CS=1 Ogni singola memoria da 32 è organizzata con 4 moduli da 8 bit se si ipotizza allineamento dei dati -> CS = 1

51 Parallelismo sul bus dati (p.e. da 32 a 128) (2/2) Domanda: come si riorganizza larchitettura del processore? (organizzazione del processore con prefetch)

52 51 Opzioni di progettazione di un bus OpzionePrestazioni elevateCosto basso Parallelismo busLinee indirizzi e dati separate Linee indirizzi e dati multiplexate Parallelismo datiAmpio (es. 64 bit)Limitato (es bit) Dimensione del trasferimento Più parole per trasferimento riduce loverhead Trasferimento di singole parole più semplice Bus masterMultiplo (necessario arbitraggio) Singolo (nessun arbitraggio) TemporizzazioneSincronaAsincrona

53 52 Alcuni standard per bus IDE/Ultra ATASCSIPCIPCI-X Ampiezza dati16 bit8 o 16 bit32 o 64 bit Frequenza clockFino a 100 MhZ10 MhZ (Fast) 20 MhZ (Ultra) 40 MhZ (Ultra2) 80 MhZ (Ultra3) 160 MhZ (Ultra4) 33 o 66 MHz66, 100, 133 MhZ Numero di master per il bus 1multipli Bandwidth (picco) 200 MB/sec320 MB/sec528 MB/sec1064 MB/sec Temporizzazioneasincrono 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

54 53 Bus 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 ununica linea –Un bus seriale può avere una frequenza di funzionamento superiore rispetto ad un bus parallelo perchè non cè il bus- skew e non ci sono interferenze tra linee parallele Necessità di avere a disposizione una velocità di trasferimento dei dati sempre più elevata: maggiore attenzione verso bus seriali e collegamenti punto-punto

55 Da seriale a parallelo (1/2) DQDQDQDQ CLOCK DQ

56 Da seriale a parallelo (2/2) DQDQDQDQ CLOCK DQ Contatore Modulo 4 INC TC

57 Da bus a collegamento punto-punto (link) (1/2) (non nel programma) Struttura ideale non scalabile Strutture reali (dirette) Ring Mesh Ipercube

58 Da bus a collegamento punto-punto (link) (2/2) (non nel programma) Strutture reali (indirette) Crossbar Omega

59

60 59 Esempi 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 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

61 60 USB 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 linserimento 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

62 61 Esempio tipico per desktop

63 62 Esempio: 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

64 Lucidi di raccordo I contenuti dei lucidi successivi sono stati già trattati, tra laltro in modo molto più approfondito, quando si è trattato dellI/O del PD32.

65 64 Invio dei comandi ad un dispositivo di I/O I comandi devono essere inviati al corrispondente device controller Unistruzione 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 listruzione in una chiamata al sistema operativo A runtime la chiamata del sistema operativo richiama uno dei moduli del SO che si occupano della gestione dellI/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

66 65 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 unoperazione di I/O il processore deve –Predisporre il contenuto dei registri del controller a valori predeterminati –Avviare il controller stesso Loperazione di selezione del controller e di predisposizione dei suoi registri può avvenire in due modi –Memory-mapped I/O –Istruzioni di I/O dedicate

67 66 Memory-mapped I/O Lo spazio di indirizzamento dellI/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 allinterno 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

68 67 Istruzioni 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 nellinsieme delle istruzioni, dedicate alla gestione dellI/O Queste istruzioni dedicate fanno riferimento esplicitamente al dispositivo interessato alloperazione di I/O

69 68 Modalità 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

70 69 I/O a controllo di programma Completo coinvolgimento del processore nella gestione delloperazione di I/O richiesta Il processore, dopo avere predisposto il controller allesecuzione delloperazione di I/O interroga continuamente il controller per verificare lesito delloperazione 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 loperazione di I/O per svolgere il ruolo di controllore Il ciclo svolto dal processore in attesa dello svolgimento delloperazione è detto busy waiting

71 70 I/O a controllo di programma (2) LI/O a controllo di programma è molto semplice ma dispendioso –Il processore spreca tempo nel ciclo di busy waiting, perché non svolge nessunaltra 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

72 71 Polling 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 alleffettivo trasferimento dati

73 72 I/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 delloperazione 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 dellinterrupt (interrupt handler), provvederà a salvare il contesto esecutivo ed elaborare linterrupt –Prima di gestire linterrupt, il processore deve salvare le informazioni che permetteranno di riprendere lesecuzione del programma corrente dal punto in cui è stata interrotta

74 73 I/O interrupt driven (2) Un interrupt è un meccanismo che consente di interrompere lesecuzione di un programma al fine di eseguire una routine di SO Linterrupt (a differenza di eccezioni e trap) non è causato dallistruzione correntemente eseguita, ma da un evento esterno, generalmente scorrelato rispetto allistruzione stessa Un segnale di interrupt è un evento asincrono rispetto alle attività correnti del processore –Linterrupt di I/O non è associato con nessuna istruzione, ma può capitare durante lesecuzione di unistruzione –Linterrupt di I/O non preclude il completamento dellistruzione Il meccanismo di I/O interrupt driven non svincola il processore dal dover eseguire loperazione di trasferimento dati

75 74 I/O interrupt driven (3) Meccanismi per identificare il dispositivo di I/O che ha generato linterruzione: –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à dellinterrupt –Interrogazione software (software poll) Quando rileva uninterruzione, il processore esegue una routine che interroga i dispositivi di I/O per individuare chi lha causata Svantaggio: perdita di tempo –Interrogazione hardware, vettorizzata Linea di richiesta di interruzione comune a tutti i dispositivi di I/O Quando rileva linterruzione, 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 dellinterruzione

76 75 Priorità delle interruzioni Quando ci sono diversi dispositivi che possono inviare interruzioni al processore, oltre ad identificare il dispositivo che ha generato linterruzione e la routine di gestione opportuna, occorre anche: –Gestire la priorità delle interruzioni –Gestire interruzioni annidate Arriva uninterruzione mentre si sta gestendo unaltra interruzione Gestione della priorità –Semplice con linee di interruzioni individuali –Con linterrogazione hardware (linea di interruzione comune) la priorità si gestisce tramite unorganizzazione dei dispositivi di tipo daisy chain Linterruzione di riconoscimento viene ricevuta prima dal dispositivo a priorità più elevata e da questi eventualmente propagato al dispositivo successivo

77 76 Interruzioni 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: uninterruzione a priorità più alta può interrompere il servizio di un interruzione a priorità minore

78 77 Direct Memory Access Con lI/O interrupt driven, per periferiche veloci lattività di trasferimento è comunque preponderante –Il processore è impegnato nel trasferimento dei dati tra dispositivo di I/O e memoria Per evitare lintervento del processore durante il trasferimento si usa laccesso 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 lintervento del processore

79 78 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 loperazione richiesta e trasferisce i dati da/verso la memoria Completato il trasferimento, il DMA controller invia uninterruzione al processore per segnalare il completamento delloperazione richiesta Tra il momento in cui termina linvio del comando di I/O al controller e la ricezione dellinterruzione inviata dal DMA controller, il processore è completamente svincolato dalloperazione di I/O e può dedicarsi ad altre attività

80 79 Direct Memory Access (3) Possibili configurazioni DMA –Bus singolo, DMA isolato –Bus singolo, DMA-I/O integrati –Bus di I/O ProcessoreDMAI/O Memoria … ProcessoreDMA I/O Memoria … DMA I/O ProcessoreDMA I/O Memoria … I/O Bus di sistema Bus processore-memoria Bus di I/O

81 80 DMA, 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?


Scaricare ppt "Dispositivi di I/O Lucidi fatti in collaborazione con lIng. Valeria Cardellini."

Presentazioni simili


Annunci Google