Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
0
Calcolatori Elettronici Dispositivi di I/O parte 1a
Francesco Lo Presti Rielaborate da Salvatore Tucci Give qualifications of instructors: DAP teaching computer architecture at Berkeley since 1977 Co-athor of textbook used in class Best known for being one of pioneers of RISC currently author of article on future of microprocessors in SciAm Sept 1995 RY took 152 as student, TAed 152,instructor in 152 undergrad and grad work at Berkeley joined NextGen to design fact 80x86 microprocessors one of architects of UltraSPARC fastest SPARC mper shipping this Fall
1
Organizzazione di un Calcolatore
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 Il device controller è collegato attraverso il bus di sistema con CPU e memoria principale
3
Device Controller I Device Controller sono sottosistemi specializzati nel controllo dei dispositivi periferici Svolgono funzioni di Controllo e temporizzazione delle operazioni Comunicazione con il Processore e con i Dispositivi fisici Individuazione Errori Scambio informazioni con il processore per mezzo di registri di I/O I/O Isolato Istruzione privilegiate IN/OUT I/O Mappato in Memoria Istruzioni load/store Ciascun registro di I/O e’ mappato su di un indirizzo di memoria
4
Dispositivi di I/O I dispositivi di I/O hanno caratteristiche molto diverse tra loro, classificabili in base a: Comportamento (In or Out) Controparte (Partner) Tasso di trasferimento dati Dispositivo Comporta-mento Partner Data rate (KB/sec) Tastiera input umano 0.01 Mouse 0.02 Stampante Laser output 200.00 Scheda Grafica oltre 60,000.00 Network/LAN input o output macchina 10 MB to 10GB Floppy disk storage 100.00 Disco Magnetico 2, ,000.00 Next, let’s take a closer look at one of the most popular storage device, magnetic disks.
5
Prestazioni ed I/O Le Prestazioni Complessive di un Sistema Dipendono
Dalle prestazioni dei device e dei relativi controller Dalla connessione tra i device e il resto del sistema Dalle Gerarchie di Memoria Dal Sistema Operativo Misure di Prestazione dell I/O I/O bandwidth (throughput) quantita’ di dati che possono essere trasferiti tra il sottostistema di I/O ed il processore/memoria per unita’ di tempo Quante operazioni di I/O possono essere completate per unita’ di tempo? Tempo di risposta I/O (latenza) – il tempo richiesto per il completamento di una operazione di input/output
6
Disco Magnetico Costituito da un insieme di piatti rotanti (da 1 a 4)
Motore per la rotazione dei dischi Testina Costituito da un insieme di piatti rotanti (da 1 a 4) Piatti rivestiti di una superficie magnetica Esiste una testina (bobina) per ogni faccia Generalmente piatti a doppia faccia Le testine di facce diverse sono collegate tra di loro e si muovono contemporaneamente Velocità di rotazione costante (tra i 5400 e i RPM)
7
L’organizzazione dei dati sul disco
Suddivisione della superficie del disco in anelli concentrici, detti tracce Registrazione seriale su tracce concentriche tracce Tracce adiacenti separate da spazi Ciascuna traccia è divisa in settori Il settore è la più piccola unità che può essere trasferita (scritta o letta) Centinaia di settori per traccia, generalmente di lunghezza fissa (ad es., 512 byte, tendenza a portarla a 4K byte)
8
Prestazioni degli Hard Disk
Latenza per read/write Tempo di seek (seek time): tempo per muovere la testina sulla traccia corretta Da 3 a 14 ms (può diminuire del 75% se si usano delle ottimizzazioni) Tempo di rotazione (rotational latency): tempo per raggiungere il settore da trasferire (in media tempo richiesto per 1/2 rotazione del disco) Tempo di rotazione = 0.5/Numero di giri al minuto Ex, Numero di giri al minuto = 7200 Tempo di rotazione = (0.5/(7200/60))∙1000= 4.2 ms Tempo di trasferimento (transfer time): tempo per trasferire un blocco di bit Da 30 a 80 MB/sec (fino a 320 MB/sec se il controllore del disco ha una cache built-in) Tempo per il controller: tempo per le operazioni del disk controller 0.2ms
9
Prestazioni degli Hard Disk (2)
Calcolare il 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 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 KB/50 MB/sec ms = ( ) ms= 9.2 ms
10
Affidabilità e disponibilità
Servizio accessibile Servizio interrotto Fallimento (failure) Ripristino 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 Misura l’affidabilità (reliability) del servizio Tempo medio di riparazione (mean time to repair o MTTR): Tempo medio necessario per ripristinare il servizio
11
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 Availability = MTTF /(MTTF + MTTR) Disponibilità diverso da affidabilità Per aumentare il MTTF Evitare i guasti 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
12
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 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
13
RAID 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 Velocità di trasferimento elevato: strips piccole Velocità di richieste I/O alte: strips grandi
14
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 bilanciare il carico (es.: leggere dal disco con il minimo tempo di seek) Una scrittura logica richiede due scritture fisiche E’ la soluzione RAID più costosa
15
RAID 2 e 3 Usano tecniche di accesso parallelo
Dischi sincronizzati in modo che la testina di ciascun disco si trovi sempre nella stessa posizione su ogni disco Tutti i dischi dell’array partecipano all’esecuzione delle richieste in parallelo Striping con dimensione stripe ridotta Parola, byte Velocita’ di trasferimento elevate Velocita’ di richieste I/O basso
16
RAID 2 Riconoscimento e correzione degli errori
Resiste a guasti semplici o piu’ Es. in figura: 4 bit (nibble) più 3 bit (codice di Hamming a 7 bit) Guadagna un fattore 4 in lettura e scrittura Operazioni in parallelo su tutti i dischi Forte overhead (in figura +75%), ~ logaritmo dei dischi Ha senso con molti dischi, ad esempio: Parola da 32 bit+7 bit di parità 39 dischi Overhead del 22% (=7/32) Guadagna un fattore 32 in lettura e scrittura In disuso
17
RAID 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
18
Record fisici con striping di 1 byte
RAID 3: esempio P Record logico . . . 1 1 1 1 Record fisici con striping di 1 byte P contiene la somma degli altri dischi per ciascuna strip (parità) Se un disco fallisce, sottraendo P alla somma degli altri dischi si recupera l’informazione mancante XOR Overhead accettabile (33% nell’esempio)
19
RAID 4, 5 e 6 I dischi operano in modo indipendente
Richieste separate possono essere soddisfatte contemporaneamente Adatti per applicazioni che richiedono alti ritmi di richieste di I/O Striping di dimensioni grandi ~32KB Velocita’ di trasferimento ridotte rispetto ai RAID 2 e 3 Velocita’ di richieste I/O alta
20
RAID 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
21
RAID 4: lettura e scrittura
P Aumenta l’indirizzo logico del disco Dentro 5 dischi D4 D5 D6 D7 P Lettura piccola: di un solo disco Scrittura piccola: di un solo disco Esempio: lettura piccola per D0 e D5, scrittura grande per D12-D15 D8 D9 D10 D11 P Stripe D12 D13 D14 D15 P D16 D17 D18 D19 P D20 D21 D22 D23 P disco 0 disco 1 disco 2 disco 3 disco 4
22
Scrittura in RAID 3 e RAID 4
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 somma, 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 RAID 3 RAID 4
23
RAID 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
24
Aumenta l’indirizzo logico del disco
RAID 5: scrittura D0 D1 D2 D3 P Aumenta l’indirizzo logico del disco D4 D5 D6 P D7 Sono possibili scritture indipendenti in virtù della parità interallacciata Esempio: la scrittura di D0 e D5 usa i dischi 0, 1, 3, 4 D8 D9 P D10 D11 D12 P D13 D14 D15 P D16 D17 D18 D19 D20 D21 D22 D23 P disco 0 disco 1 disco 2 disco 3 disco 4
25
Invio 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
26
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
27
Memory-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
28
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 nell’insieme delle istruzioni, dedicate alla gestione dell’I/O Queste istruzioni dedicate fanno riferimento esplicitamente al dispositivo interessato all’operazione di I/O
29
Programmazione I/O Tre modalita’ principali per la gestione/programmazione dei dispositivi di I/O I/O Programmato con attesa Forma piu’ rudimentale di I/O Durante l’intero svolgimento dell’operazione di I/O, il processore e’ direttamente impegnato ad eseguirne le operazioni I/O Controllato da interruzioni Basato sul meccanismo delle interruzioni Processore comanda operazione A completamento dell’operazione l’unita’ di I/O richiedera’ “l’attenzione” da parte del processore tramite interruzione Il processore – non impegnato a controllare l’I/O puo’ svolgere altri compiti I/O con Accesso Diretto alla Memoria (DMA) Le unita’ di I/O hanno capacita’ di procedere autonomamente al trasferimento dati da e verso la memoria Il processore non interviene nel trasferimento A fine operazione il processore verra’ informato della conclusione dell’operazione di I/O
30
L’I/O programmato con attesa
Si richiede l’operazione di I/O (ex. Read da disco) Scrivendo nel registro di controllo del device L’Unita’ effettua l’operazione Lo stato dell’operazione e’ disponibile nel registro controllo Il dato letto e’ disponibile nel registro dati L’unita’ non informa il processore dello stato/conclusione dell’operazione Per conoscere lo stato dell’operazione bisognera’ interrogare il registro di stato Ad operazione conclusa il dato puo’ essere letto dal registro dati
31
L’I/O programmato con attesa: Polling
Problemi con l’I/O con attesa 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 al trasferimento dati La Tecnica di Polling permette di avere piu’ operazioni su dispositivi di I/O in contemporanea Durante il ciclo di attesa, il software di controllo Controlla via via le varie periferiche attive Serve quelle che necessitano di un intervento
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.