Calcolatori Elettronici Dispositivi di IO parte 1 a

  • Slides: 32
Download presentation
Calcolatori Elettronici Dispositivi di I/O parte 1 a Francesco Lo Presti Rielaborate da Salvatore

Calcolatori Elettronici Dispositivi di I/O parte 1 a Francesco Lo Presti Rielaborate da Salvatore Tucci

Organizzazione di un Calcolatore 1

Organizzazione di un Calcolatore 1

Dispositivi di I/O q Un dispositivo di I/O è costituito da due componenti: m

Dispositivi di I/O q Un dispositivo di I/O è costituito da due componenti: m m 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 q Il device controller è collegato attraverso il bus di sistema con CPU e memoria principale 2

Device Controller q I Device Controller sono sottosistemi specializzati nel controllo dei dispositivi periferici

Device Controller q I Device Controller sono sottosistemi specializzati nel controllo dei dispositivi periferici m Svolgono funzioni di ü Controllo e temporizzazione delle operazioni ü Comunicazione con il Processore e con i Dispositivi fisici ü Individuazione Errori m 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 3

Dispositivi di I/O q I dispositivi di I/O hanno caratteristiche molto diverse tra loro,

Dispositivi di I/O q I dispositivi di I/O hanno caratteristiche molto diverse tra loro, classificabili in base a: Comportamento (In or Out) m Controparte (Partner) m Tasso di trasferimento dati Dispositivo Comporta- Partner mento m Data rate (KB/sec) Tastiera input umano 0. 01 Mouse input umano 0. 02 Stampante Laser output umano 200. 00 Scheda Grafica output umano oltre 60, 000. 00 Network/LAN input o output macchina 10 MB to 10 GB Floppy disk storage macchina 100. 00 Disco Magnetico storage macchina 2, 000. 00 -500, 000. 00 4

Prestazioni ed I/O q Le Prestazioni Complessive di un Sistema Dipendono m m Dalle

Prestazioni ed I/O q Le Prestazioni Complessive di un Sistema Dipendono m m Dalle prestazioni device e dei relativi controller Dalla connessione tra i device e il resto del sistema Dalle Gerarchie di Memoria Dal Sistema Operativo q Misure di Prestazione dell I/O 1. I/O bandwidth (throughput) 1. quantita’ di dati che possono essere trasferiti tra il sottostistema di I/O ed il processore/memoria per unita’ di tempo 2. Quante operazioni di I/O possono essere completate per unita’ di tempo? 2. Tempo di risposta I/O (latenza) – il tempo richiesto per il completamento di una operazione di input/output 5

Disco Magnetico Testina Motore per la rotazione dei dischi q Costituito da un insieme

Disco Magnetico Testina Motore per la rotazione dei dischi q Costituito da un insieme di piatti rotanti (da 1 a 4) q Piatti rivestiti di una superficie magnetica q Esiste una testina (bobina) per ogni faccia m Generalmente piatti a doppia faccia q Le testine di facce diverse sono collegate tra di loro e si muovono contemporaneamente q Velocità di rotazione costante (tra i 5400 e i 15000 RPM) 6

L’organizzazione dei dati sul disco q Suddivisione della superficie del disco in anelli concentrici,

L’organizzazione dei dati sul disco q Suddivisione della superficie del disco in anelli concentrici, detti tracce q Registrazione seriale su tracce concentriche m 10000 -50000 tracce q Tracce adiacenti separate da spazi q Ciascuna traccia è divisa in settori m m 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 4 K byte) 7

Prestazioni degli Hard Disk q 1. Latenza per read/write Tempo di seek (seek time):

Prestazioni degli Hard Disk q 1. Latenza per read/write Tempo di seek (seek time): tempo per muovere la testina sulla traccia corretta m 2. 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 m Ex, Numero di giri al minuto = 7200 � Tempo di rotazione = (0. 5/(7200/60))∙ 1000= 4. 2 ms m 3. Tempo di trasferimento (transfer time): tempo per trasferire un blocco di bit m 4. 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 m 0. 2 ms 8

Prestazioni degli Hard Disk (2) q Calcolare il tempo medio necessario a leggere o

Prestazioni degli Hard Disk (2) q Calcolare il tempo medio necessario a leggere o scrivere un settore di 512 byte sapendo che m m 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 9

Affidabilità e disponibilità Fallimento (failure) Servizio accessibile interrotto Ripristino q Fallimento (failure): il comportamento

Affidabilità e disponibilità Fallimento (failure) Servizio accessibile interrotto Ripristino q Fallimento (failure): il comportamento del servizio non è conforme alle specifiche m m Il fallimento è causato da un errore (error) La causa di un errore è un guasto (fault) q Tempo medio di fallimento (mean time to failure o MTTF) m Tempo medio che intercorre tra l’istante in cui il servizio è ripristinato ed il fallimento successivo m Misura l’affidabilità (reliability) del servizio q Tempo medio di riparazione (mean time to repair o MTTR): m Tempo medio necessario per ripristinare il servizio 10

Affidabilità e disponibilità (2) q Tempo medio tra due fallimenti (mean time between failures

Affidabilità e disponibilità (2) q Tempo medio tra due fallimenti (mean time between failures o MTBF) m Tempo medio tra due fallimenti consecutivi MTBF = MTTF + MTTR q Disponibilità (availability): misura della fornitura del servizio con l’alternananza tra funzionamento e interruzione Availability = m MTTF /(MTTF + MTTR) Disponibilità diverso da affidabilità q Per aumentare il MTTF m Evitare i guasti m Tollerare i guasti ü Tolleranza ai guasti: capacità del servizio di non subire fallimenti anche in presenza di guasti ü Occorre introdurre una ridondanza m Predire i guasti 11

RAID q Le prestazioni dei dischi crescono più lentamente di quelle dei processori m

RAID q Le prestazioni dei dischi crescono più lentamente di quelle dei processori m Accesso ai dischi migliorato di 5/10 volte in 20 anni q Idea di Patterson et al. nel 1987: usare in parallelo più dischi per aumentare le prestazioni dei dischi q Problema: un array di dischi (senza ridondanza dei dati) è inaffidabile! Affidabilità di un array da N dischi = Affidabilità di 1 disco/N q 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 q RAID: Redundant Array of Inexpensive (Independent) Disks m Insieme di dischi a basso costo ma coordinati in azioni comuni per ottenere diversi livelli di tolleranza ai guasti 12

RAID 0 q Nessuna ridondanza dei dati q Solo striping dei dati m Striping:

RAID 0 q Nessuna ridondanza dei dati q Solo striping dei dati m Striping: allocazione di blocchi logicamente sequenziali su dischi diversi per aumentare le prestazioni rispetto a quelle di un singolo disco m Lettura e scrittura in parallelo di strip (strisce) su dischi diversi q Non è un vero RAID perché non c’è nessuna ridondanza q Velocità di trasferimento elevato: strips piccole q Velocità di richieste I/O alte: strips grandi 13

RAID 1 q Mirroring (o shadowing) q Ciascun disco è completamente replicato su un

RAID 1 q Mirroring (o shadowing) q Ciascun disco è completamente replicato su un disco ridondante (mirror), avendo così sempre una copia m Usa il doppio dei dischi rispetto a RAID 0 q Ottime prestazioni in lettura m Molte possibilità di bilanciare il carico (es. : leggere dal disco con il minimo tempo di seek) q Una scrittura logica richiede due scritture fisiche q E’ la soluzione RAID più costosa 14

RAID 2 e 3 q Usano tecniche di accesso parallelo m Dischi sincronizzati in

RAID 2 e 3 q Usano tecniche di accesso parallelo m Dischi sincronizzati in modo che la testina di ciascun disco si trovi sempre nella stessa posizione su ogni disco q Tutti i dischi dell’array partecipano all’esecuzione delle richieste in parallelo q Striping con dimensione stripe ridotta m Parola, byte q Velocita’ di trasferimento elevate q Velocita’ di richieste I/O basso 15

RAID 2 q Riconoscimento e correzione degli errori q Resiste a guasti semplici o

RAID 2 q Riconoscimento e correzione degli errori q Resiste a guasti semplici o piu’ q Es. in figura: 4 bit (nibble) più 3 bit (codice di Hamming a 7 bit) m Guadagna un fattore 4 in lettura e scrittura ü Operazioni in parallelo su tutti i dischi q Forte overhead (in figura +75%), ~ logaritmo dei dischi q Ha senso con molti dischi, ad esempio: m Parola da 32 bit+7 bit di parità 39 dischi m Overhead del 22% (=7/32) m Guadagna un fattore 32 in lettura e scrittura q In disuso 16

RAID 3 q Bit di parità m Versione semplificata di RAID 2 q No

RAID 3 q Bit di parità m Versione semplificata di RAID 2 q No copia completa dei dati (come RAID 1), ma si aggiunge q q q 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 m Ciascuna operazione coinvolge tutti i dischi q Soluzione diffusa per applicazioni che operano su grandi quantità di dati 17

RAID 3: esempio Record logico 10010011 11001101 10010011. . . Record fisici con striping

RAID 3: esempio Record logico 10010011 11001101 10010011. . . Record fisici con striping di 1 byte q P contiene la somma degli altri dischi per ciascuna strip (parità) q Se un disco fallisce, sottraendo P alla somma degli altri dischi si recupera l’informazione mancante m. XOR P 1 0 0 1 1 1 1 0 0 1 1 0 1 q Overhead accettabile (33% nell’esempio) 18

RAID 4, 5 e 6 q I dischi operano in modo indipendente m Richieste

RAID 4, 5 e 6 q I dischi operano in modo indipendente m Richieste separate possono essere soddisfatte contemporaneamente q Adatti per applicazioni che richiedono alti ritmi di richieste di I/O q Striping di dimensioni grandi m ~32 KB q Velocita’ di trasferimento ridotte rispetto ai RAID 2 e 3 q Velocita’ di richieste I/O alta 19

RAID 4 q Blocchi di parità q Striping a livello di blocchi (come RAID

RAID 4 q Blocchi di parità q Striping a livello di blocchi (come RAID 0) m La strip nell’ultimo disco contiene i bit di parità dell’insieme di bit omologhi di tutte le altre strip q No rotazione sincronizzata (come in RAID 2 e 3) q Resiste a guasti singoli (vedi RAID 3) q Consente letture indipendenti sui diversi dischi m Se si legge una quantità di dati contenuta in una sola strip q Il disco di parità è il collo di bottiglia 20

RAID 4: lettura e scrittura D 0 D 1 D 2 D 3 P

RAID 4: lettura e scrittura D 0 D 1 D 2 D 3 P D 4 D 5 D 6 D 7 P • Lettura piccola: di un solo disco D 8 D 9 D 10 D 11 P • Scrittura piccola: di un solo disco D 12 D 13 D 14 D 15 P D 16 D 17 D 18 D 19 P D 20 D 21 D 22 D 23 P Dentro 5 dischi • Esempio: lettura piccola per D 0 e D 5, scrittura grande per D 12 D 15 Aumenta l’indirizzo logico del disco Stripe disco 0 disco 1 disco 2 disco 3 disco 4 21

Scrittura in RAID 3 e RAID 4 q Scrittura piccola in RAID 4: m

Scrittura in RAID 3 e RAID 4 q Scrittura piccola in RAID 4: m 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 m Opzione 2: poiché il disco di parità ha la vecchia somma, si confronta il vecchio dato D 0 con il nuovo D 0’, 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 22

RAID 5 q Blocchi di parità distribuita q Le strip di parità sono distribuite

RAID 5 q Blocchi di parità distribuita q Le strip di parità sono distribuite su più dischi in modalità round-robin (circolare) q Si evita il collo di bottiglia del disco di parità in RAID 4 q La scrittura piccola è gestita come in RAID 4 23

RAID 5: scrittura • Sono possibili scritture indipendenti in virtù della parità interallacciata •

RAID 5: scrittura • Sono possibili scritture indipendenti in virtù della parità interallacciata • Esempio: la scrittura di D 0 e D 5 usa i dischi 0, 1, 3, 4 D 0 D 1 D 2 D 3 P D 4 D 5 D 6 P D 7 D 8 D 9 P D 10 D 11 D 12 P D 13 D 14 D 15 P D 16 D 17 D 18 D 19 D 20 D 21 D 22 D 23 P Aumenta l’indirizzo logico del disco 0 disco 1 disco 2 disco 3 disco 4 24

Invio dei comandi ad un dispositivo di I/O q I comandi devono essere inviati

Invio dei comandi ad un dispositivo di I/O q I comandi devono essere inviati al corrispondente device controller q Un’istruzione di I/O in un linguaggio ad alto livello viene trasformata in una serie di comandi per il controller m La trasformazione avviene ad opera del compilatore che traduce l’istruzione in una chiamata al sistema operativo q A runtime la chiamata del sistema operativo richiama uno dei moduli del SO che si occupano della gestione dell ’I/O (device driver) q Il device controller ha una serie di registri ( porte di I/O) in cui memorizza m m m Lo stato della periferica (ad es. : idle, busy, down, …) Il comando in esecuzione I dati da/verso il dispositivo di I/O 25

Invio dei comandi ad un dispositivo di I/O (2) q Il device controller può

Invio dei comandi ad un dispositivo di I/O (2) q Il device controller può essere visto come un processore (con potenzialità ridotte) m Si parla di processori di I/O q Per richiedere un’operazione di I/O il processore deve m Predisporre il contenuto dei registri del controller a valori predeterminati m Avviare il controller stesso q L’operazione di selezione del controller e di predisposizione dei suoi registri può avvenire in due modi m m Memory-mapped I/O Istruzioni di I/O dedicate 26

Memory-mapped I/O q Lo spazio di indirizzamento dell’I/O appartiene allo stesso spazio di indirizzamento

Memory-mapped I/O q Lo spazio di indirizzamento dell’I/O appartiene allo stesso spazio di indirizzamento della memoria m I registri dei vari device controller sono considerati logicamente come locazioni di memoria, pur essendo fisicamente localizzati all’interno del device controller q I device controller devono essere quindi dotati di un meccanismo che permetta loro di riconoscere le transazioni ad essi indirizzate q 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 27

Istruzioni dedicate q Lo spazio di indirizzamento di I/O è separato dallo spazio di

Istruzioni dedicate q Lo spazio di indirizzamento di I/O è separato dallo spazio di indirizzamento della memoria q 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 q Queste istruzioni dedicate fanno riferimento esplicitamente al dispositivo interessato all’operazione di I/O 28

Programmazione I/O q Tre modalita’ principali per la gestione/programmazione dei dispositivi di I/O 1.

Programmazione I/O q Tre modalita’ principali per la gestione/programmazione dei dispositivi di I/O 1. I/O Programmato con attesa m Forma piu’ rudimentale di I/O ü Durante l’intero svolgimento dell’operazione di I/O, il processore e’ direttamente impegnato ad eseguirne le operazioni 2. I/O Controllato da interruzioni m Basato sul meccanismo delle interruzioni m Processore comanda operazione m 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 3. I/O con Accesso Diretto alla Memoria (DMA) m 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 29

L’I/O programmato con attesa q Si richiede l’operazione di I/O (ex. Read da disco)

L’I/O programmato con attesa q Si richiede l’operazione di I/O (ex. Read da disco) m Scrivendo nel registro di controllo del device q L’Unita’ effettua l’operazione m Lo stato dell’operazione e’ disponibile nel registro controllo m Il dato letto e’ disponibile nel registro dati m L’unita’ non informa il processore dello stato/conclusione dell’operazione q Per conoscere lo stato dell’operazione bisognera’ interrogare il registro di stato q Ad operazione conclusa il dato puo’ essere letto dal registro dati 30

L’I/O programmato con attesa: Polling q Problemi con l’I/O con attesa m Con periferiche

L’I/O programmato con attesa: Polling q Problemi con l’I/O con attesa m Con periferiche lente, un eccessivo spreco di tempo di processore che per la maggior parte del tempo è occupato nel ciclo di busy waiting m Con periferiche veloci, il lavoro svolto dal processore è quasi esclusivamente dovuto al trasferimento dati q La Tecnica di Polling permette di avere piu’ operazioni su dispositivi di I/O in contemporanea m Durante il ciclo di attesa, il software di controllo ü Controlla via le varie periferiche attive ü Serve quelle che necessitano di un intervento 31