Dispositivi di I/O - PowerPoint PPT Presentation

About This Presentation
Title:

Dispositivi di I/O

Description:

Title: Organizzazione del corso Author: Valeria Cardellini Last modified by: bruno ciciani Created Date: 1/17/2002 8:33:22 PM Document presentation format – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 70
Provided by: ValeriaCa
Category:
Tags: dispositivi | mttf

less

Transcript and Presenter's Notes

Title: Dispositivi di I/O


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

2
Possibile organizzazione di un calcolatore
3
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
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

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
5
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
  • 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

6
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 forma un
    cilindro

7
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
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
Prestazioni 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
  • 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 0.5 KB/(50 MB/sec) 0.2 ms (6.0 3.0
    0.01 0.2) ms
  • 9.2 ms

10
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

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à 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 -gt 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
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)
  • 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
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
Livelli RAID
16
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
  • E la migliore soluzione in scrittura, perchè non
    ci sono overhead per la gestione della
    ridondanza, ma non in lettura

17
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
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(61) bit di parità ? 39 dischi
  • Overhead del 22 (7/32)
  • In disuso

19
RAID 3
  • Un bit di parità orizzontale ed uno verticale
  • versione semplificata di RAID 2
  • 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, disco di
    parità collo di bottiglia in caso di scrittura

20
RAID 3 esempio
Record logico
10010011 11001101 10010011 . . .
Record fisici
  • P contiene il bit di parità dei bit (strip)
    memorizzati negli altri dischi
  • Se un disco fallisce (in modo transeiente o
    permanente), utilizzando P, i bit di parità
    verticale e i bit degli altri dischi si recupera
    linformazione mancante
  • Overhead accettabile (poco più di un terzo
    nellesempio)

21
RAID 4
  • Evoluzione di Raid 3 con striping a blocchi (come
    RAID 0)
  • la strip nellultimo disco contiene i bit di
    parità dellinsieme di bit omologhi di tutte le
    altre strip
  • 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
RAID 4 lettura e scrittura
D0
D1
D2
D3
P
Dentro 5 dischi
P
D7
D4
D5
D6
  • 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

D8
D9
P
D10
D11
D12
P
D13
D14
D15
D16
D17
D18
D19
P
D20
D21
D22
D23
P
disco 0 disco 1 disco 2 disco 3 disco 4
23
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
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

25
RAID 5 scrittura
D0
D1
D2
D3
P
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
26
RAID 6
  • Ridondanza PQ (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
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
Transazioni sul bus
  • Transazione sul bus
  • Invio dellindirizzo e del comando da parte
    dellunità master
  • Invio o ricezione dei dati da parte dellunità
    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 lindirizzo 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 lindirizzo di memoria
    in cui leggere il dato


29
Tipologie 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 allinterno dello
    chassis
  • Usati spesso come struttura intermedia tra i bus
    di I/O ed il bus processore-memoria

30
Esempio di organizzazione
  • Bus backplane connesso al bus processore-memoria
  • Bus di I/O connessi al bus backplane

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

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

33
Bus sincrono transazione di lettura
I dati sono pronti per essere letti dal processore
  • 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

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

35
Bus asincrono ciclo di lettura
Trasferimento dati da memoria a dispositivo I/O
Address/data bus
  • Quando la memoria vede ReadReq, legge lindirizzo
    dal bus Address/Data bus e asserisce Ack
  • Il dispositivo di I/O vede Ack asserito, nega
    ReadReq e rilascia l Address/Data bus (mette le
    sue uscite in alta impedenza)
  • La memoria vede che ReadReq è negato e nega Ack
  • Quando la memoria ha il dato pronto, lo mette
    sullAddress/Data bus ed asserisce DataRdy
  • Il dispositivo di I/O vede DataRdy asserito,
    legge il dato ed asserisce Ack
  • La memoria vede Ack asserito, nega DataRdy e
    rilascia lAddress/Data bus (mette le sue uscite
    in alta impedenza)
  • Il dispositivo di I/O nega Ack

36
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

37
Temporizzazione sincrona o asincrona?
Lungo
Clock skew (funzione della lunghezza del bus)
Asincrona
Sincrona
Corto
Simili
Eterogenee
Velocità dei dispositivi di I/O
38
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

39
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 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

40
Daisy chain
  • Ad ogni dispositivo è assegnata una priorità
  • Sceglie il dispositivo che richiede laccesso al
    bus e possiede priorità maggiore (più vicino
    allarbitro)
  • Problema non garantisce la fairness
  • favorisce alcuni dispositivi rispetto ad altri

Linea di occupazione
Linea di disponibilità
Linea di richiesta
41
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
  • Allinterno 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/O

Catena a priorità minima
Catena a priorità massima
42
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

43
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

44
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
  • I limiti fisici allaumento della frequenza sono
  • alte frequenze creano disturbi (interferenze)
  • bus skew (segnali su linee diverse che viaggiano
    a velocità diverse)

45
Tecniche 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 laccesso 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

46
Opzioni 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 loverhead 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
47
Alcuni 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
48
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
  • Necessità di avere a disposizione una velocità di
    trasferimento dei dati sempre più elevata
    maggiore attenzione verso bus seriali e
    collegamenti punto-punto

49
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

50
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

51
Esempio tipico per desktop
52
Esempio Pentium 4
DDR (double-data rate) invio dei dati sia sul
fronte di salita che sul fronte di discesa del
clock
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
53
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

54
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

55
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

56
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

57
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

58
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

59
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

60
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

61
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

62
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

63
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

64
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

65
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

66
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

67
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à

68
Direct Memory Access (3)
  • Possibili configurazioni DMA
  • Bus singolo, DMA isolato
  • Bus singolo, DMA-I/O integrati
  • Bus di I/O

Bus di sistema
Bus di sistema
Bus processore-memoria
Processore
DMA
Memoria
Bus di I/O

I/O
I/O
69
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?
Write a Comment
User Comments (0)
About PowerShow.com