Architettura dei calcolatori -...
Transcript of Architettura dei calcolatori -...
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 1
Architettura dei calcolatori:La gerarchia di memoria
Le periferiche di I/O
17/03/2004 Prof. C. Silvano – Politecnico di Milano 2
Architettura dei calcolatoriUn calcolatore deve essere in grado di svolgere autonomamente i seguenti compiti:• Memorizzare i dati sui quali operare• Memorizzare sequenze di istruzioni• Eseguire le istruzioni sui dati• Controllare il flusso di esecuzione• Comunicare con gli utenti e con altri dispositivi
Sottosistemadi interfaccia
Sottosistemadi memorizzazione
Sottosistemadi elaborazione
Connessione
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 2
17/03/2004 Prof. C. Silvano – Politecnico di Milano 3
Caratteristiche dell’architettura
Flessibilità: adatta a svolgere diverse tipologie di compitiModularità: ogni componente ha una funzionalità specificaScalabilità: ogni componente può essere sostituito con uno equivalenteStandardizzazione: componenti facilmente sostituibili in caso di malfunzionamentoRiduzione dei costi: grazie alla produzione su larga scala
17/03/2004 Prof. C. Silvano – Politecnico di Milano 4
Architettura di riferimento dei calcolatori
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 3
17/03/2004 Prof. C. Silvano – Politecnico di Milano 5
Architettura di riferimento dei calcolatori (Architettura di Von Neumann - 1946)
Elementi principali di un calcolatore:• Unità centrale di elaborazione (Central Processing Unit -
CPU) o processore• Memoria centrale o principale (Main Memory - MM)• Interfacce per i dispositivi di Input/Output - I/O:
• memoria di massa o memoria secondaria (di solito dischi magnetici)• periferiche (tastiera, monitor, mouse, modem, stampanti, ecc.)
• Bus di sistema• Bus dati, bus indirizzi, bus di controllo
17/03/2004 Prof. C. Silvano – Politecnico di Milano 6
Esempio: scheda madre (mother board)
Memoria
Processore Interfaccia I/O
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 4
Unità centrale di elaborazione (Central Processing Unit - CPU)
17/03/2004 Prof. C. Silvano – Politecnico di Milano 8
Unità centrale di elaborazione (Central Processing Unit - CPU)
La CPU (o processore) provvede ad eseguire le istruzioni che costituiscono i diversi programmi elaborati dal calcolatore. Le istruzioni, insieme ai dati cui fanno riferimento, si trovano nella memoria principale e vengono trasferite alla CPU passando attraverso il bus. La CPU deve quindi prelevare le istruzioni dalla memoria (fase di fetch) per eseguirle.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 5
17/03/2004 Prof. C. Silvano – Politecnico di Milano 9
Unità centrale di elaborazione (Central Processing Unit - CPU)
La CPU non è in grado di elaborare direttamente i dati contenuti nella memoria principale, opera su dati che si trovano all’interno di appositi elementi di memorizzazione (registri) contenuti all’interno della CPU.Il tempo di accesso ai registri interni è circa 10 volte più veloce del tempo di accesso alla memoria principale.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 10
Unità centrale di elaborazione (Central Processing Unit - CPU)
Per effettuare un’operazione su dati contenuti in memoria, è necessario:• Trasferire i dati dalla memoria ai registri del
processore.• Effettuare l’operazione utilizzando i registri.• Trasferire il risultato in memoria.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 6
17/03/2004 Prof. C. Silvano – Politecnico di Milano 11
Banco di Registri
Banco di Registri (Register File) ad accesso rapido, per memorizzare temporaneamente gli operandi usati nelle istruzioni. Il banco di registri contiene n registri ad uso generale:R0, R1, …, Rn-1 – General-Purpose Registers
17/03/2004 Prof. C. Silvano – Politecnico di Milano 12
Registri e variabili
Il numero dei registri ad uso generale (ad esempio 32 registri da 32 bit ciascuno) non èsufficientemente grande da consentire di memorizzare tutte le variabili di un programma.Ad ogni variabile viene assegnata una locazione di memoria nella quale trasferire il contenuto del registro quando questo deve essere utilizzato per contenere un’altra variabile.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 7
17/03/2004 Prof. C. Silvano – Politecnico di Milano 13
Architetture LOAD/STORE
Architetture LOAD/STORE: gli operandidell’ALU possono provenire soltanto dai registri ad uso generale contenuti nella CPU e nonpossono provenire dalla memoria.Sono necessarie apposite istruzioni di:• caricamento (LOAD) dei dati da memoria ai
registri;• memorizzazione (STORE) dei dati dai registri alla
memoria.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 14
La memoria
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 8
17/03/2004 Prof. C. Silvano – Politecnico di Milano 15
La memoria
Compito principale: contenere istruzioni e dati.• Supporto alla CPU: deve fornire alla CPU dati e
istruzioni dei programmi in esecuzione il piùrapidamente possibile.
• Archivio: deve consentire di memorizzare dati e istruzioni garantendone la conservazione e la reperibilità anche dopo elevati periodi di tempo.
Caratteristiche principali: dimensione complessiva e velocità di accesso.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 16
La memoria
Diverse esigenze:• velocità per il supporto alla CPU• non volatilità ed elevate dimensioni per
l’archivio.
Diverse tecnologie:• elettronica: veloce, ma costosa e volatile• magnetica e ottica: non volatile ed economica,
ma molto lenta.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 9
17/03/2004 Prof. C. Silvano – Politecnico di Milano 17
Caratteristiche di una memoriaCapacità • Misurata in numero di byte (e multipli del byte) che
possono essere memorizzati.Volatilità• Indica la capacità di conservare i valori memorizzati in modo
permanente o menoVelocità• Tempo di accesso (quanto tempo passa tra una richiesta e la
relativa risposta)• Velocità di trasferimento (quanti byte al secondo si possono
trasferire).Costo (per bit)
17/03/2004 Prof. C. Silvano – Politecnico di Milano 18
Caratteristiche di una memoria
Modalità di accesso• diretta (o casuale): il tempo di accesso è
indipendente dalla posizione.• sequenziale: il tempo di accesso dipende dalla
posizione.• mista: combinazione dei due casi precedenti.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 10
17/03/2004 Prof. C. Silvano – Politecnico di Milano 19
La memoria principale o centrale (Main Memory)
17/03/2004 Prof. C. Silvano – Politecnico di Milano 20
Memoria Principale o Centrale(Main Memory)
Memorizza al proprio interno i dati e le istruzioni dei programmi in esecuzione.Memoria ad accesso casuale (RAM – RandomAccess Memory)Tecnologia elettronica:• veloce ma volatile e costosa
Due “eccezioni”:• ROM (Read Only Memory): elettronica ma permanente e
di sola lettura.• Flash: elettronica ma permanente e riscrivibile.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 11
17/03/2004 Prof. C. Silvano – Politecnico di Milano 21
Memoria RAM e Memoria ROM
La memoria RAM (Random Access Memory) • permette sia la lettura che la scrittura• volatile (i dati memorizzati vengono persi allo
spegnimento del calcolatore)• usata per memorizzare dati e programmi
La memoria ROM (Read Only Memory) • permette solo la lettura dei dati • persistente (mantiene il suo contenuto anche
quando non c’è alimentazione) • usata per memorizzare il software di sistema
17/03/2004 Prof. C. Silvano – Politecnico di Milano 22
Memoria RAM
Nelle RAM ogni locazione può essere raggiunta in un breve e prefissato intervallo di tempo misurato a partire dall’istante in cui si specifica l’indirizzo desiderato.
Nelle RAM il tempo di accesso alla memoria (tempo necessario per accedere ad una parola di memoria) è fisso e indipendente dalla posizione della parola alla quale si vuole accedere.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 12
17/03/2004 Prof. C. Silvano – Politecnico di Milano 23
Memoria RAM: SRAM e DRAMDue principali tecnologie di memoria RAM:• SRAM (Static Random Access Memory)
• maggiormente utilizzate per le memorie cache• veloci• maggiore area fisica• “costose”
• DRAM (Dynamic Read Only Memory)• maggiormente utilizzate per la memoria principale• richiedono refresh continuo• lente• minore area fisica• “ economiche”
17/03/2004 Prof. C. Silvano – Politecnico di Milano 24
Memoria principale - DRAM
Fino all’inizio degli anni ’90 la memoria veniva prodotta, acquistata e installata su chip singoli• densità variabili da 1 Kbit a 1 Mbit• le schede avevano zoccoli vuoti dove inserire altri chip
Oggi si monta un gruppo di chip, tipicamente 8 o 16, su una piccola scheda stampata che si vende come unità minima installabile nei PC:• SIMM (Single Inline Memory Module) se la fila
di connettori si trova da un solo lato della scheda;• DIMM (Dual Inline Memory Module) se i
connettori si trovano su ambedue i lati della scheda.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 13
17/03/2004 Prof. C. Silvano – Politecnico di Milano 25
Organizzazione della memoriaI bit nella memoria principale sono raggruppati in celle.Ogni cella è caratterizzata da: • un indirizzo, che è un numero che identifica la
cella e ne consente l’accesso• un valore, che è la sequenza di bit memorizzata
dalla cella
17/03/2004 Prof. C. Silvano – Politecnico di Milano 26
Organizzazione della memoria
Tutte le celle sono formate dallo stesso numero di bit (k bit).• Una cella (composta da k bit) è in grado di
contenere una qualunque tra 2k combinazioni diverse di bit.
• In quasi tutti i calcolatori la cella è composta da k = 8 bit (un byte)
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 14
17/03/2004 Prof. C. Silvano – Politecnico di Milano 27
Organizzazione della memoria
La cella è la più piccola unità di memoria indirizzabile.Ogni cella ha un indirizzo:• serve come accesso all’informazione contenuta nella
cella• in una memoria con N celle gli indirizzi vanno da 0
a N-1.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 28
Organizzazione della memoria
Le celle (i byte) sono raggruppati in parole(word) composte da n-bit che possono essere letti o scritti dalla CPU con una singola operazione di lettura/scrittura della memoria. Nei calcolatori più recenti la dimensione della parola (n o lunghezza di parola) va da 32 bit a 64 bit (da 4 a 8 Byte).
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 15
17/03/2004 Prof. C. Silvano – Politecnico di Milano 29
Organizzazione della memoria
In genere, la dimensione della parola di memoria coincide con la dimensione dei registri contenuti nella CPU, in modo da poter caricare una parola di memoria in un registro della CPU.Se anche il bus dati è largo come la parola di memoria, le operazioni di load/store avvengono con una singola operazione.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 30
Organizzazione della memoriaGli indirizzi della memoria sono rappresentati come numeri binari.Ogni indirizzo di memoria composto da M-bit consente di indirizzare 2M celle di memoria • Per esempio con 3 bit di indirizzo è possibile
indirizzare fino a 8 celle di memoria.• Il numero M di bit nell’indirizzo determina il
numero massimo di celle indirizzabili nella memoria (ed è indipendente dal numero di bit per cella)
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 16
17/03/2004 Prof. C. Silvano – Politecnico di Milano 31
Organizzazione della memoria
Se il MAR è costituito da M bit ⇒ i 2M indirizzi (corrispondenti a 2M celle di memoria) costituiscono lo spazio di indirizzamento del calcolatore (da 0 a 2M –1). Per esempio:• Indirizzo composto da M = 4 bit genera uno spazio
di indirizzamento di 24 = 16 celle di memoria.• Indirizzo composto da M = 32 bit genera uno
spazio di indirizzamento di 232 o 4G celle di memoria.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 32
Indirizzi nella memoria principale
Cella2M-12M-1
……
Cella ibk-1 …………………………..…b1 b0i
……
Cella 11
Cella 00
Cella⇐ k-bit ⇒Indirizzo
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 17
17/03/2004 Prof. C. Silvano – Politecnico di Milano 33
Organizzazione della memoria: Esempio 1
Cella composta da k=8 bit (un byte)• Ogni cella è in grado di contenere una qualunque tra 28 =
256 combinazioni diverse di bit.
Parola di memoria composta da una cella (8 bit)Capacità di memoria = 8 parole = 8 x 8 bit = 64 bit (8 Byte)Indirizzo di memoria composto da M=3 bit consente di indirizzare 23 = 8 celle = 8 parole
17/03/2004 Prof. C. Silvano – Politecnico di Milano 34
Organizzazione della memoria: Esempio 1
Cella77 111
……
Cella ib7 ……..…b1 b0i
……
Cella 11 001
Cella 00 000
Cella = Parola⇐ 8-bit ⇒Indirizzo
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 18
17/03/2004 Prof. C. Silvano – Politecnico di Milano 35
Diversa organizzazione della memoria: Esempio 2
Cella composta da k=8 bit (un byte)Parola di memoria composta da 2 celle (16 bit) ⇒ 4 parole da 16 bitCapacità di memoria = 4 parole = 4 x 16 bit = 64 bit (8 Byte)Indirizzo di memoria composto da M=2 bit consente di indirizzare 22 = 4 parole
17/03/2004 Prof. C. Silvano – Politecnico di Milano 36
Diversa organizzazione della memoria: Esempio 2
Parola 33 11
Parola 22 10
Parola 11 01
Parola 00 00
1 Parola = 2 Celle⇐ 8-bit ⇒ ⇐ 8-bit ⇒Indirizzo
0 1
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 19
17/03/2004 Prof. C. Silvano – Politecnico di Milano 37
Organizzazione della memoria: Esempio 3
Cella composta da k=8 bit (un byte)Parola di memoria composta da una cella (8 bit)Capacità di memoria = 16 parole = 16 x 8 bit = 128 bit (16 Byte)Indirizzo di memoria composto da M=4 bit consente di indirizzare 24 = 16 celle = 16 parole
17/03/2004 Prof. C. Silvano – Politecnico di Milano 38
Organizzazione della memoria: Esempio 3
Cella1515 1111
……
Cella ib7 ……..…b1 b0i
……
Cella 11 0001
Cella 00 0000
Cella = Parola⇐ 8-bit ⇒Indirizzo
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 20
17/03/2004 Prof. C. Silvano – Politecnico di Milano 39
Struttura della memoria: Es. 3
16 celledi memoria
Decodificatore
00000000100000000
0 1 1 0 1 1 0 0
0 1 1 0 1 1 0 0
Bus Dati
Dato (letto o da scrivere in memoria)
Parola selezionata1 0 0 0
Bus Indirizzi
Parola di 8 bit
Bus Controllo
leggi / scrivi
17/03/2004 Prof. C. Silvano – Politecnico di Milano 40
Memoria Principale
La memoria supporta:Operazione di lettura (load) • Copia nel Registro Dati (MDR) il contenuto della cella di
memoria indirizzata dal Registro Indirizzi (MAR)
Operazione di scrittura (store) • Copia il contenuto del Registro Dati (MDR) nella cella di
memoria indirizzata dal Registro Indirizzi (MAR)
Le operazioni avvengono sotto il controllo della CPU• La CPU seleziona una particolare cella di memoria ponendo il
suo indirizzo nel Registro Indirizzi (MAR)
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 21
17/03/2004 Prof. C. Silvano – Politecnico di Milano 41
Memoria vs. CPU
Le CPU sono sempre state più veloci delle memorie• L’aumento di integrazione ha consentito di
realizzare CPU pipeline e superscalari, molto efficienti e veloci
Nelle memorie è aumentata la capacità più che la velocità.Divario delle prestazioni della CPU rispetto alla memoria
17/03/2004 Prof. C. Silvano – Politecnico di Milano 42
Problema: divario delle prestazioni CPU-memoria
Tempo
DRAM9%/anno(2X/10 anni)
10000µProc60%/anno(2X/1.5anni)
Divario delle prestazioniCPU / Memoria(cresce 50% / anno)
1
10
100
1000
1980
1981
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
DRAM
CPU
1982
Pres
tazi
oni Legge di Moore
2002
2001
2003
2004
2005
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 22
17/03/2004 Prof. C. Silvano – Politecnico di Milano 43
Memoria vs. CPU
L’accesso alla memoria passa attraverso il bus• La frequenza di funzionamento del bus è molto più
bassa di quella della CPU.• Il bus può essere impegnato ad effettuare
trasferimenti controllati da dispositivi di I/O.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 44
Problema: la CPU accede alla memoria attraverso il bus
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 23
17/03/2004 Prof. C. Silvano – Politecnico di Milano 45
Memoria cacheIdea: integrare una memoria cache nel chip della CPU• Memoria cache molto veloce (stessa frequenza
della CPU) ma piccola e costosa.
Banco Registri Cache
CPU
17/03/2004 Prof. C. Silvano – Politecnico di Milano 46
Gerarchia di memoriaGerarchia di memoria formata da memoria principale e memoria cache.Memoria centrale (tecnologia DRAM): memoria grande, relativamente lenta, poco costosa ed accessibile tramite il bus• Capacità pari a circa 10 unità• Tempo di accesso pari a circa 10 unità
Memoria cache (tecnologia SRAM): memoria piccola e veloce (integrata nello stesso chip della CPU) ma costosa• Capacità pari a circa 1 unità• Tempo di accesso pari a circa 1 unità
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 24
17/03/2004 Prof. C. Silvano – Politecnico di Milano 47
Memoria cache
La cache contiene una copia di alcune celle della memoria principale contenenti istruzioni e dati usati più frequentemente.La minima quantità di informazione che può essere presente o assente nella cache è il blocco o cache line.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 48
Memoria cacheStrategia di utilizzo:La prima volta che la CPU richiede dei dati alla memoria principale, tali dati vengono caricati anche nella cache.Le volte successive, quando la CPU richiede l’accesso ad una cella di memoria, la richiesta va ad entrambe le memorie:• Se il dato si trova nella cache, viene passato
direttamente alla CPU.• Se il dato si trova nella memoria principale, viene
anche caricato nella cache e passato alla CPU.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 25
17/03/2004 Prof. C. Silvano – Politecnico di Milano 49
Successo nell'accesso alla cache
Se il dato richiesto dalla CPU è presente nella cache, si dice che la richiesta ha successo (hit).
Registri
Memoria Principale
Cache
17/03/2004 Prof. C. Silvano – Politecnico di Milano 50
Fallimento nell'accesso alla cache
Se il dato non si trova nella cache, si dice che la richiesta fallisce (miss) ⇒ per trovare il blocco che contiene i dati richiesti, bisogna accedere alla memoria principale.
Registri
Memoria Principale
Cache
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 26
17/03/2004 Prof. C. Silvano – Politecnico di Milano 51
Fallimento nell'accesso alla cache
In caso di fallimento (miss) nell’accesso alla cache:• stallo della CPU;• richiesta del blocco contenente il dato cercato alla
memoria principale;• copia del dato in cache;• ripetizione dell’accesso in cache.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 52
DefinizioniHit (successo): il dato richiesto è presente in un blocco della cache (livello superiore della gerarchia).Hit Rate (frequenza di successo): numero di accessi che trovano il dato in cache sul numero totale di accessi a memoria.
Hit rate = num. di hit / num. di accessi a memoriaHit Time (tempo di successo): tempo per accedere al dato in cache, che comprende anche il tempo necessario per stabilire se il tentativo di accesso si risolve in un successo o in un fallimento.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 27
17/03/2004 Prof. C. Silvano – Politecnico di Milano 53
Miss (fallimento): il dato deve essere recuperato dal livello inferiore della gerarchia.Miss Rate (frequenza di fallimento): numero di accessi che non hanno trovato il dato in cache sul numero totale di accessi a memoria.
Miss rate = num. di miss / num. di accessi a memoriaHit Rate + Miss Rate = 1
Definizioni
17/03/2004 Prof. C. Silvano – Politecnico di Milano 54
Il principio di località spaziale
Località spaziale: quando si accede ad una cella di memoria di indirizzo A, è molto probabile che gli accessi successivi richiedano celle di memoria che hanno indirizzo vicino ad A. Per esempio: • La sequenza di istruzioni di un programma sono
memorizzate in locazioni consecutive della memoria.• Gli accessi a dati organizzati in vettori sono
memorizzate in locazioni consecutive della memoria.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 28
17/03/2004 Prof. C. Silvano – Politecnico di Milano 55
Il principio di località temporale
Località temporale: quando si accede ad una cella di memoria di indirizzo A, è molto probabile che negli accessi successivi si richieda di nuovo la cella di indirizzo A. Per esempio: • Nel riutilizzare istruzioni (e dati) contenuti nei cicli si
accede ripetutamente alle stesse locazioni di memoria.
• Istruzioni vicine tendono a utilizzare le stesse variabili.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 56
Soluzione: sfruttare la località dei riferimenti
Diversi approcci a seconda del tipo di località:• Località temporale: i dati prelevati dalla memoria
principale vengono conservati nella cache il più a lungo possibile.
• Località spaziale: quando si copia un dato dalla memoria principale alla cache, si copiano anche i dati vicini. E’ necessario che la dimensione del blocco della cache (cache line) sia un multiplo della dimensione della parola di memoria (per esempio: dimensione blocco 128 bit = 4 parole da 32 bit)
Sfruttando la località dei riferimenti, la frequenza di successo (hit rate) nell’accesso alla cache può arrivare fino al 95%.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 29
17/03/2004 Prof. C. Silvano – Politecnico di Milano 57
Frequenza di successo (hit rate)
La frequenza di successo dipende da due caratteristiche:• la dimensione dei blocchi (o cache line): un
blocco grande permette di sfruttare meglio la località spaziale;
• il numero di blocchi presenti in cache: se c’è spazio per tanti blocchi, un dato resta in cache più a lungo e si può sfruttare meglio la località temporale.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 58
Generalizzazione: gerarchia di memoria su più livelli
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 30
17/03/2004 Prof. C. Silvano – Politecnico di Milano 59
Obiettivo
Migliorare le prestazioni di un calcolatore attraverso una gerarchia di memoria su più livelli in modo da:• fornire agli utenti l’illusione di poter usufruire di una
memoria contemporaneamente grande e veloce• Capacità pari a circa quelle della memoria grande• Velocità pari a circa quella della memoria veloce
• fornire la processore i dati alla velocità con cui è in grado di elaborarli.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 60
Soluzione: gerarchia di memoriaCPU
Incremento del tempo di accesso
Dimensioni della memoria ad ogni livello
Livelli della gerarchia di memoria
Livello 1
Livello 0
Livello n
CPU
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 31
17/03/2004 Prof. C. Silvano – Politecnico di Milano 61
Soluzione: gerarchia di memoria
Utilizzare diversi livelli di memoria, ciascuno di diversa velocità e dimensione, realizzati con tecnologie diverse in modo da ottenere un buon compromesso costo/prestazioni.Obiettivo: fornire all’utente una quantità di memoria pari a quella disponibile nella tecnologia più economica, consentendo allo stesso tempo una velocità di accesso pari a quella garantita dalla tecnologia più veloce.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 62
Concetti base
Una gerarchia di memoria è composta da piùlivelli, ma i dati vengono di volta in volta copiati solo tra due livelli adiacenti: livello n e livello n+1• Per esempio: cache e memoria principale
La cache (livello superiore n ) è più piccola, veloce e costosa rispetto alla memoria principale (livello inferiore n+1).
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 32
17/03/2004 Prof. C. Silvano – Politecnico di Milano 63
Concetti base
Livello n: memoria piccola, veloce ma costosa • Capacità pari a circa 1 unità• Tempo di accesso pari a circa 1 unità
Livello n+1: memoria grande, lenta e poco costosa• Capacità pari a circa 10 unità• Tempo di accesso pari a circa 10 unità
17/03/2004 Prof. C. Silvano – Politecnico di Milano 64
Livelli della gerarchia di memoriaLivello superiore
Livello inferiore
+ veloce
+ grande
+ costosoRegistri
Cache (SRAM)
Memoria Principale (DRAM)
Dischi Fissi (Hard Disk)
Nastri Magnetici e Dischi Ottici
CPU
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 33
17/03/2004 Prof. C. Silvano – Politecnico di Milano 65
Livelli della gerarchia di memoriaLivello superiore
Livello inferiore
+ veloce
+ grande
+ costoso
Memoria Principale (DRAM)
Dischi Fissi (Hard Disk)
Nastri Magnetici e Dischi Ottici
Registri
Cache L1 (SRAM)
CPU
Cache L2 (SRAM)
17/03/2004 Prof. C. Silvano – Politecnico di Milano 66
Livelli della gerarchia di memoria
Registri interni alla CPU (Banco di Registri) molto veloci e realizzati con la stessa tecnologia della CPU stessa – stessa frequenza della CPUCache L1 (SRAM – Static RAM) interna alla CPU – stessa frequenza della CPUCache L2 (SRAM – Static RAM) esterna alla CPUMemoria principale (DRAM – Dynamic RAM)Dischi fissi (Hard Disk)Nastri magnetici e dischi ottici
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 34
17/03/2004 Prof. C. Silvano – Politecnico di Milano 67
Caratteristiche dei livelli della gerarchia di memoria
17/03/2004 Prof. C. Silvano – Politecnico di Milano 68
Caratteristiche dei livelli della gerarchia di memoria
Man mano che ci si sposta verso il basso nella gerarchia cambiano le tecnologie:• aumenta la capacità di memorizzazione
(memoria più grande)• aumenta il tempo di accesso (memoria più
lenta)• diminuisce il costo per bit (memoria meno
costosa)
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 35
17/03/2004 Prof. C. Silvano – Politecnico di Milano 69
La memoria di massa o secondaria (magnetica)
17/03/2004 Prof. C. Silvano – Politecnico di Milano 70
Memoria di massa o secondaria
Memorizza grandi masse di dati.Consente di memorizzare dati in modo non volatile.Non può essere indirizzata direttamente dalla CPU ma attraverso l’interfaccia di I/O.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 36
17/03/2004 Prof. C. Silvano – Politecnico di Milano 71
Architettura di riferimento dei calcolatori
17/03/2004 Prof. C. Silvano – Politecnico di Milano 72
Memoria di massa o secondaria
Memoria principale vs. memoria di massa:• la memoria di massa memorizza in modo
permanente i programmi e i dati del calcolatore• la memoria principale memorizza i programmi in
esecuzione e i dati necessari per la loro esecuzione
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 37
17/03/2004 Prof. C. Silvano – Politecnico di Milano 73
Caratteristiche della memoria di massaNon volatilità• I dati memorizzati non si perdono allo spegnimento del
calcolatore (perché memorizzati in forma magnetica o ottica anziché elettronica)
Grande capacità• Capacità maggiore (anche di diversi ordini di grandezza)
rispetto alla memoria principaleBassi costi• Il costo per bit di una memoria di massa è minore (di
diversi ordini di grandezza) rispetto alla memoria principaleMaggiori tempi di accesso• Tempi di accesso maggiori (di qualche ordine di grandezza)
rispetto a quelli della memoria principale
17/03/2004 Prof. C. Silvano – Politecnico di Milano 74
Dischi magnetici
I dischi magnetici sono di due tipi principali:• Hard disk• Floppy disk
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 38
17/03/2004 Prof. C. Silvano – Politecnico di Milano 75
Dischi magnetici: hard diskUn hard disk consiste in un insieme (da 1 fino a 25) di piatti d’alluminio (o di altro materiale) dotati di due facce (ricoperte di materiale ferromagnetico) I piatti ruotano attorno ad un perno centrale.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 76
Struttura di un hard disk
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 39
17/03/2004 Prof. C. Silvano – Politecnico di Milano 77
Dischi magnetici: hard diskOgni faccia dispone di una propria testina di lettura/scrittura sospesa sopra la superficie magnetica.• Scrittura: il passaggio di corrente positiva o
negativa attraverso la testina magnetizza la superficie.
• Lettura: il passaggio sopra un’area magnetizzata induce una corrente positiva o negativa nella testina.
Le testine di facce diverse sono collegate rigidamente tra loro e si muovono contemporaneamente.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 78
Dischi magnetici: hard disk
Fattore di forma (diametro)• sempre più piccolo (consente maggiore densità di
integrazione e maggiore velocità di rotazione)• 3,5 pollici per sistemi desktop e fino a 1 pollice per
sistemi portatili.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 40
17/03/2004 Prof. C. Silvano – Politecnico di Milano 79
Dischi magnetici: hard diskOgni faccia è organizzata in circonferenze concentriche chiamate tracce (1000-5000).Ogni traccia è suddivisa in spicchi di uguale grandezza settori (64 - 200).Il settore è la più piccola unità che può essere letta/scritta da/su disco (blocco da 512 Byte o 1024 Byte).Un bit corrisponde ad uno stato di polarizzazione (positiva o negativa) del materiale magnetico che costituisce i dischi
17/03/2004 Prof. C. Silvano – Politecnico di Milano 80
Dischi magnetici: hard disk
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 41
17/03/2004 Prof. C. Silvano – Politecnico di Milano 81
Traccia
Traccia (track): sequenza circolare di bit scritta mentre il disco compie una rotazione completa.La larghezza di una traccia dipende dalla dimensione della testina e dall’accuratezza con cui la si può posizionare.La densità radiale va da 800 a 2000 tracce per centimetro (5-10 µm per traccia).Tra una traccia e l’altra c’è un piccolo spazio di separazione (gap).
17/03/2004 Prof. C. Silvano – Politecnico di Milano 82
Settore
Settore (sector): parte di una traccia corrispondente a un settore circolare del disco.Un settore contiene 512 Byte di dati, preceduti da un preambolo e seguiti da un codice di correzione degli errori.La densità lineare è di circa 50-100 Kbit per cm (0,1-0,2 µm per bit).Tra settori consecutivi si trova un piccolo spazio (intersector gap).
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 42
17/03/2004 Prof. C. Silvano – Politecnico di Milano 83
Formattazione
Operazione che predispone tracce e settori per la lettura/scritturaCirca il 15% dello spazio disco si perde in gap, preamboli e codici di correzione degli errori.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 84
Hard disk
L’insieme delle tracce equidistanti dal centro su piatti diversi è chiamato cilindro.La quantità di dati che possono essere memorizzati per traccia dipende dalla qualità del disco.Solitamente, ogni traccia di un disco contiene la stessa quantità di bit ⇒ le tracce più esterne memorizzano informazione con densità minore.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 43
17/03/2004 Prof. C. Silvano – Politecnico di Milano 85
Hard disk
I dati sono letti/scritti mediante la testina.Per leggere/scrivere informazioni sono necessari tre passi:• la testina deve essere posizionata sulla traccia
corretta;• il settore corretto deve passare sotto la testina;• i dati devono essere letti/scritti.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 86
Hard disk
Tempo di seek: tempo per posizionare la testina sulla traccia corretta.Tempo di rotazione: tempo per raggiungere il settore da trasferire.Tempo di trasferimento: tempo per trasferire l’informazione.A questi tempi va aggiunto il tempo per le operazioni dell’interfaccia di I/O (controller).
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 44
17/03/2004 Prof. C. Silvano – Politecnico di Milano 87
Prestazioni dei dischi
Tempo di accesso (ms o 10-3s)• Tempo di seek (seek time)
• tempo necessario alla testina per posizionarsi sulla traccia richiesta;• dipende dalla meccanica (tempo medio di seek da 5 a 15 ms, 1
ms per tracce adiacenti)
• Tempo di rotazione (o latenza)• tempo necessario al disco per ruotare fino a portare il dato nella
posizione giusta;• dipende dalla velocità di rotazione del disco
(5400-10800 RPM ⇒ tempo medio di rotazione da 2,7 a 5,4 ms).
17/03/2004 Prof. C. Silvano – Politecnico di Milano 88
Prestazioni dei dischi
Tempo di trasferimento o Transfer Rate (MBps)• Velocità di trasferimento del disco
• dipende dalla densità di registrazione e dalla velocità di rotazione;
• un settore di 512 Byte richiede tra 25 e 100 µs (tempo medio di trasferimento da 5 a 20 MBps)
• Velocità di trasferimento del sistema di controllo (per esempio SCSI vs. EIDE).
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 45
17/03/2004 Prof. C. Silvano – Politecnico di Milano 89
Dischi magnetici: floppy diskDischi magnetici di piccola capacità, portatili, usati per trasferire informazioni (file) tra computer diversiCostituiti da un unico disco con due superficiStoricamente ne sono stati creati vari tipi identificati dal loro diametro (3.5, 5.25 e 8 pollici)• Oggi sopravvivono solo dischetti da 3.5” (1.44 MByte)
17/03/2004 Prof. C. Silvano – Politecnico di Milano 90
Caratteristiche dei floppy disk
Funzioni: • distribuzione software;• archiviazione dati.
Struttura analoga a quella di un disco magnetico:• il disco si ferma quando non è operativo;• l’avvio della rotazione comporta un ritardo di 0.5 sec.
Caratteristiche tipiche di un floppy da 3.5”• Capacità 1.44 Mbyte• Tracce per settori: 80 x 18• RPM = 300• Velocità di trasferimento 500 Kbps
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 46
17/03/2004 Prof. C. Silvano – Politecnico di Milano 91
Nastri magneticiNastri di materiale magnetizzabile raccolti su supporti circolari, o in cassetteSul nastro sono tracciate piste orizzontali parallele• di solito 9 piste, di cui 8 corrispondono ad un byte e la 9a è il bit di
paritàI dati sul nastro sono organizzati in zone contigue dette record, separate da zone prive di informazione (interrecord gap)
17/03/2004 Prof. C. Silvano – Politecnico di Milano 92
Caratteristiche dei nastri magnetici
Capacità di diversi GigaByteAccesso sequenzialeMolto lentiBasso costoUtili solo per operazioni di salvataggio dei dati (backup)
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 47
17/03/2004 Prof. C. Silvano – Politecnico di Milano 93
La memoria di massa(ottica)
17/03/2004 Prof. C. Silvano – Politecnico di Milano 94
Dischi ottici
Lettura ottica basata sulla riflessione (o sulla mancata riflessione) di un raggio laser.Raggiungono densità di registrazione più alte dei dischi magnetici.Creati in origine per registrare programmi televisivi, usati poi come dispositivi di memoria nei calcolatori.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 48
17/03/2004 Prof. C. Silvano – Politecnico di Milano 95
Dischi ottici1984, CD-ROM (Compact-Disk Read-Only Memory)• Capacità di oltre 600 Mbyte e costo inferiore a $1• Velocità di trasferimento:
• originariamente 150 Kbyte / secondo ( “1X” )• OGGI: 12, 16, 24 volte tanto…
1984, WORM (Write Once Read Many)• Sono dischi ottici scrivibili (una sola volta) • Accesso diretto ai settori (capacità 2.048 Kbyte)
1997, DVD (Digital Video Disk)• Evoluzione del CD-ROM• Capacità fino a 17 GByte• Velocità di trasferimento molto elevata
17/03/2004 Prof. C. Silvano – Politecnico di Milano 96
Dischi ottici
La superficie di un disco presenta una successione di tratti disposti secondo un’unica traccia a spirale• pit: tratto di superficie avvallata• land: tratto di superficie liscia
Il passaggio pit/land (e land/pit) rappresenta 1, mentre l’assenza di variazione rappresenta 0.
riflettono i raggi luminosi in modo diverso
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 49
17/03/2004 Prof. C. Silvano – Politecnico di Milano 97
Dischi ottici
17/03/2004 Prof. C. Silvano – Politecnico di Milano 98
Compact Disk (CD)Proposto nel 1980 (da Philips e Sony) per sostituire i dischi n vinile per la musica.Standard internazionale IS-10149 (Libro rosso)Diametro 12 cm, spessore 1.2 mm con un foro di 15 mm in mezzo.Un laser a bassa potenza manda una luce infrarossa (lunghezza d’onda di 0.78 µm) sul disco.Velocità lineare costante (120 cm/sec)• All’interno è di 530 RPM, all’esterno deve scendere a 200 RPM• Unità diversa da quella a velocità angolare costante usata per gli
hard disk• 530 RPM sono molto meno dei 7200/15000 RPM degli hard disk
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 50
17/03/2004 Prof. C. Silvano – Politecnico di Milano 99
CD-ROM
Nel 1984 Philips e Sony pubblicano il Libro gialloche definisce lo standard dei CD-ROM (Compact Disc-Read Only Memory).• Viene definita la struttura e il formato da utilizzare per
memorizzare dati digitali invece che semplice musica.Rispetto ai CD audio i CD-ROM hanno:• stesse dimensioni• compatibilità dell’ottica e della meccanica• stesso processo produttivo• migliore capacità di correggere errori
Il Libro verde (1986) aggiunge grafica e possibilità di mischiare audio, video e dati nello stesso settore.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 100
Caratteristiche dei CD-ROM
Velocità base (1X)• 75 settori/sec• 153.6 KByte/sec (175.2 in modalità 2)• Velocità superiori crescono in proporzione (32X corrisponde
a 2400 settori/sec cioè quasi 5MB/sec)
Capacità• 74 minuti di musica = circa 650 Mbyte• 80 minuti di musica = circa 700 Mbyte
Tempo di accesso = alcune centinaia di msec
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 51
17/03/2004 Prof. C. Silvano – Politecnico di Milano 101
CD-R e CD-RW
CD Recordable (CD-R) che vengono scritti una sola volta (WORM)• Utilizzati per backup, per generazione di master, per
distribuzioni in piccole serie, ecc.
CD ReWriteable (CD-RW) sono dischi ottici riscrivibili
17/03/2004 Prof. C. Silvano – Politecnico di Milano 102
Digital Versatile Disk (DVD)
Rappresentano un’evoluzione tecnologica con maggiore densità dei dati:• pit più piccoli (0.4 vs. 0.8 µm);• spirale più serrata (0.74 vs. 1.6 µm);• laser rosso (0.65 vs. 0.78 µm).
Caratteristiche dei DVD: • Capacità 4.7 GByte (133 minuti di video fullscreen MPEG-2
ad alta risoluzione 720 X 480 con colonna sonora in 8 lingue e sottotitoli in altre 32 lingue.
• 1X indica 1.4 MB/sec (vs. 150 KB/sec).
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 52
17/03/2004 Prof. C. Silvano – Politecnico di Milano 103
Diversi formati di DVD
Esistono situazioni in cui servono più di 4.7 GByte. Pertanto sono stati definiti quattro formati:• Lato unico, strato unico (4.7 GB)• Lato unico, strato doppio (8.5 GB)• Due lati, strato unico (9.4 GB)• Due lati, strato doppio (17 GB)
17/03/2004 Prof. C. Silvano – Politecnico di Milano 104
Gestione dell’Input/Output
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 53
17/03/2004 Prof. C. Silvano – Politecnico di Milano 105
Dispositivi di I/O
Un dispositivo di ingresso e/o uscita (periferica) è costituito da due componenti:• il dispositivo (device) fisico effettivo (stampante, mouse,
video, tastiera, ecc.);• un’interfaccia di I/O (device controller) che gestisce
tutte le operazioni che il dispositivo è in grado di svolgere. L’interfaccia di I/O è collegata attraverso il bus di sistema con CPU e memoria principale.L’interfaccia di I/O ha il compito di tradurre i segnali interni del calcolatore in un formato comprensibile alla periferica stessa, e viceversa
17/03/2004 Prof. C. Silvano – Politecnico di Milano 106
Dispositivi di I/O
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 54
17/03/2004 Prof. C. Silvano – Politecnico di Milano 107
Dispositivi di I/O
I dispositivi di I/O hanno caratteristiche molto diverse tra loro.Possono essere classificati in base a tre dimensioni:• il comportamento: dispositivi di input/output o per la
memorizzazione di dati;• il modo di interazione: interazione con l’uomo o con la
macchina;• il tasso di trasferimento dati: a che velocità i dati
possono essere trasferiti dal dispositivo alla memoria centrale e viceversa (KB/sec.).
Anche le memorie di massa (es. unità disco e lettore di CD-ROM) sono considerate periferiche.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 108
Dispositivi di Input
Mouse
Penna ottica Scanner
WebcamMicrofono
Touch Screen
Trackball Touch padTastiera
Tavoletta grafica
Fotocameradigitale
Joystick
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 55
17/03/2004 Prof. C. Silvano – Politecnico di Milano 109
Dispositivi di Output
Stampante
Casse acustiche Videoproiettore
Monitor Plotter
Cuffie
17/03/2004 Prof. C. Silvano – Politecnico di Milano 110
Bus di sistema
Il bus di sistema costituisce il canale di comunicazione tra le varie componenti di un elaboratore (CPU, memorie ed interfacce di I/O compresa la memoria di massa).Può diventare un collo di bottiglia in quanto le sue prestazioni sono limitate da:• lunghezza;• numero di dispositivi connessi.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 56
17/03/2004 Prof. C. Silvano – Politecnico di Milano 111
Bus di sistema
Il bus di sistema è composto da:• Bus dati• Bus indirizzi• Bus di controllo
17/03/2004 Prof. C. Silvano – Politecnico di Milano 112
Bus datiComprende le linee per trasferire dati e istruzioni da/verso la memoria. • Serve per trasferire dati tra Memoria Principale e
Registro Dati (MDR) della CPU oppure tra periferiche e CPU/Memoria Principale
In generale, la dimensione del bus dati è tale da garantire il trasferimento contemporaneo di una o più parole di memoria.Bus bidirezionale.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 57
17/03/2004 Prof. C. Silvano – Politecnico di Milano 113
Bus indirizziLa CPU provvede a trasmettere sul bus indirizzi l’indirizzo della parola di memoria da cui prelevare il dato nel caso di lettura dalla memoria, oppure in cui depositarlo nel caso di scrittura nella memoria.• Serve per trasmettere il contenuto del Registro
Indirizzi (MAR) alla memoria (o ad una periferica)per selezionare l’indirizzo da cui prelevare il dato, nel caso di lettura dalla memoria, oppure in cui depositarlo, nel caso di scrittura.
Bus unidirezionale
17/03/2004 Prof. C. Silvano – Politecnico di Milano 114
Bus di controllo
Comprende le linee dove transitano le informazioni ausiliarie per la corretta definizione delle operazioni da compiere (per esempio lettura oppure scrittura da/verso la memoria) e per la sincronizzazione tra CPU e memoria.Serve anche per inviare i comandi verso una periferica (es. stampa verso l’interfaccia della stampante).
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 58
17/03/2004 Prof. C. Silvano – Politecnico di Milano 115
Bus di sistema
Esempio: Operazione di lettura dalla memoria.• La CPU fornisce l’indirizzo della parola desiderata
sul bus indirizzi, quindi viene richiesta l’operazione di lettura attivando il bus di controllo.
• Quando la memoria ha completato la lettura della parola richiesta, il dato viene trasferito sul bus dati e la CPU può prelevarlo ed utilizzarlo nelle sue elaborazioni.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 116
Operazioni di input
Un’operazione di input è un trasferimento dati dal device alla memoria:• Un segnale del bus di controllo indica che in
memoria deve essere eseguita una write.• Il bus indirizzi contiene l’indirizzo di memoria in
cui il dato deve essere trasferito.Quando la memoria è pronta, manda un segnale sul bus di controllo al devicecontroller che trasferisce i dati attraverso il bus dati.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 59
17/03/2004 Prof. C. Silvano – Politecnico di Milano 117
Operazioni di output
Un’operazione di output è un trasferimento dati dalla memoria al device:• Un segnale del bus di controllo indica che in memoria deve
essere eseguita una read.• Il bus indirizzi contiene l’indirizzo da cui i dati devono essere
letti.
La memoria accede ai dati da trasferire.La memoria trasferisce i dati al device mediante il bus dati, e segnala al device l’avvenuto trasferimento mediante il bus di controllo.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 118
Tipologie di bus
Esistono due schemi principali di comunicazione su di un bus:• sincrono: dotato di un segnale di sincronizzazione
(clock) ed esiste un protocollo di comunicazione scandito dai cicli di clock.• Questo tipo di protocollo permette di ottenere bus molto
veloci
• asincrono: non è dotato di segnale di clock.• La comunicazione tra due parti avviene mediante un
protocollo di handshaking.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 60
17/03/2004 Prof. C. Silvano – Politecnico di Milano 119
Utilizzo del busLa comunicazione su un bus deve essere regolata attraverso un protocollo di comunicazione.Vengono introdotti uno o più bus master il cui scopo è quello di controllare l’accesso al bus.L’architettura più semplice è quella con un unico bus master (la CPU) in cui tutte le comunicazioni vengono mediate dalla CPU stessa.• Il principale svantaggio dell’architettura con un singolo
master è che il master può diventare un collo di bottigliaL’alternativa è quella di avere più master e rispettare un protocollo per il loro coordinamento
17/03/2004 Prof. C. Silvano – Politecnico di Milano 120
Arbitraggio del bus
Occorre stabilire quale master autorizzare all’utilizzo del bus.Ad ogni dispositivo è assegnata una priorità.Il dispositivo che fa richiesta di accesso al bus e che possiede priorità maggiore può accedere al bus.Problema: assicurare la fairness.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 61
17/03/2004 Prof. C. Silvano – Politecnico di Milano 121
Come inviare comandi ad un dispositivo di I/O
I comandi devono essere inviati al corrispondente device controllerUn’istruzione di I/O (read,write) 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 syscall (chiamata al sistema operativo)
17/03/2004 Prof. C. Silvano – Politecnico di Milano 122
Come inviare comandi ad un dispositivo di I/O
La comunicazione tra CPU e controller avviene tramite il bus di sistemaL’interfaccia di I/O (controller) è dotata di registri in cui memorizza:• stato della periferica (ad es.: idle, busy, down, … );• comando in esecuzione;• dati da/verso periferica.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 62
17/03/2004 Prof. C. Silvano – Politecnico di Milano 123
Interfaccia di I/O e bus
17/03/2004 Prof. C. Silvano – Politecnico di Milano 124
Device controller
Un device controller può quindi essere visto come un processore con ridotte potenzialitàOgni operazione eseguita dal device controller deve essere esplicitamente richiesta dalla CPU
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 63
17/03/2004 Prof. C. Silvano – Politecnico di Milano 125
Come inviare comandi ad un dispositivo di I/O
Per richiedere un’operazione di I/O la CPU deve:• predisporre il contenuto dei registri del controller a
valori predeterminati;• avviare il controller stesso.L’operazione di predisposizione del controller può avvenire in due modalità:• memory-mapped I/O;• istruzioni di I/O dedicate.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 126
Memory-mapped I/O
I registri dei vari controller sono considerati logicamente come locazioni di memoria centrale, pur essendo fisicamente localizzati all’interno del devicecontrollerA tali registri vengono assegnati indirizzi a 32 bitPer caricare valori nei registri del controller :
sw $rt, indirizzo
Per leggere il contenuto dei registri del controller:lw $rt, indirizzo
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 64
17/03/2004 Prof. C. Silvano – Politecnico di Milano 127
Memory-mapped I/O
Sul bus possono quindi transitare sia operazioni indirizzate a memoria centrale che ai controller delle perifericheI controller devono quindi essere dotati di un meccanismo che permetta loro di riconoscere le transazioni ad essi indirizzate
17/03/2004 Prof. C. Silvano – Politecnico di Milano 128
Memory-mapped I/O
I controller ascoltano tutti i segnali in transito sul bus (bus snooping) e si attivano solo quando riconoscono sul bus indirizzi un indirizzo corrispondente ad una propria locazione di memoria.Gli indirizzi riservati ai registri dei controller fanno di solito riferimento alla porzione di memoria riservata al sistema operativo e non accessibile quindi ai programmi utente.I programmi utente devono usare il sistema operativo come tramite per accedere a tali indirizzi riservati.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 65
17/03/2004 Prof. C. Silvano – Politecnico di Milano 129
Istruzione dedicate
Per consentire alla CPU di accedere ai registri dei controller delle periferiche vengono inserite nell’insieme delle istruzioni (instruction set) delle istruzioni dedicate alla gestione dell’I/O.Queste istruzioni dedicate fanno riferimento esplicitamente al dispositivo interessato all’operazione di I/O.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 130
Input/Output (I/O)
L’I/O può essere gestito in tre modalità:• Controllo da programma;• Interruzione (interrupt driven);• DMA (Direct Memory Access)
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 66
17/03/2004 Prof. C. Silvano – Politecnico di Milano 131
I/O a controllo da programma
Tale tecnica prevede il completo coinvolgimento della CPU nella gestione dell’operazione di I/O richiesta.La CPU dopo aver predisposto il controller all’esecuzione dell’operazione di I/O interroga continuamente il controller per verificare l’esito dell’operazione.Ad operazione ultimata, la CPU provvede a trasferire il dato (nel caso di operazione di input) o ad eseguire una nuova istruzione.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 132
I/O a controllo da programma
La CPU è coinvolta durante tutta l’operazione di I/O per svolgere il ruolo di controllore.Il ciclo svolto dalla CPU in attesa che il ready bit assuma un determinato valore è detto busy waiting.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 67
17/03/2004 Prof. C. Silvano – Politecnico di Milano 133
I/O a controllo da programma
L’I/O a controllo da programma è molto semplice ma dispendioso in quanto la CPU spreca tempo nel ciclo di busy-waiting.Tale tecnica non deve essere usata per la gestione di periferiche lente poiché forza la CPU ad operare alla stessa velocità delle periferiche e di conseguenza la potenza di calcolo della CPU viene sprecata.Una miglioramento della tecnica a controllo di programma è la tecnica di polling.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 134
Polling
Durante un ciclo di busy-waiting vengono controllate dalla CPU tutte o parte delle periferiche di I/O gestite a controllo da programma.Quando una periferica necessita di un qualche intervento, si soddisfa la richiesta e si prosegue il ciclo di polling.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 68
17/03/2004 Prof. C. Silvano – Politecnico di Milano 135
Polling
I miglioramenti di prestazioni rispetto al controllo da programma sono limitati.I problemi principali del polling sono:• con periferiche lente, un eccessivo spreco di tempo
di CPU che per la maggior parte del tempo è occupata nel ciclo di busy waiting.
• con periferiche veloci, il lavoro svolto dalla CPU è quasi esclusivamente dovuto al trasferimento dati.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 136
I/O interrupt drivenPer evitare il busy waiting è necessario introdurre un metodo basato sulla gestione degli interrupt.La CPU predispone il controller ad eseguire l’operazione di I/O richiesta da un programma utente (es. read/write) e prosegue la sua computazione disinteressandosi dello svolgimento dell’operazione da parte del controller stesso.Il controller esegue il comando inviatogli dalla CPU e quando termina invia un segnale di interrupt alla CPU.La CPU, attraverso una routine di gestione dell’interrupt, provvederà a richiamare il driver per gestire l’evento di I/O comunicatole.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 69
17/03/2004 Prof. C. Silvano – Politecnico di Milano 137
I/O interrupt driven
Un interrupt (interruzione) è un meccanismo che consente di interrompere l’esecuzione di un programma utente al fine di eseguire una routine di SO.L’interrupt (a differenza di eccezioni e trap) non viene causato dall’istruzione correntemente in esecuzione ma da un evento esterno generalmente scorrelato rispetto all’istruzione stessa.Un segnale di interrupt è un evento asincronorispetto alle attività correnti della CPU (a differenza di eccezioni e trap che sono eventi sincroni).
17/03/2004 Prof. C. Silvano – Politecnico di Milano 138
I/O interrupt driven
Tra il momento in cui termina l’invio del comando l controller e la ricezione dell’interrupt inviatole dal controller stesso, la CPU è completamente svincolata dall’operazione di I/O e può dedicarsi ad altre attività (tipicamente all’esecuzione di un altro programma).Il meccanismo interrupt driven però non svincola la CPU dal dover eseguire l’operazione di trasferimento dati.Per periferiche veloci, l’attività di trasferimento dati è preponderante rispetto al tempo speso in busy waitingPer evitare l’intervento della CPU anche durante questa fase, è stato introdotto il DMA.
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 70
17/03/2004 Prof. C. Silvano – Politecnico di Milano 139
Direct Memory Access (DMA)
Il DMA controller è un processore specializzato nel trasferimento dati tra dispositivo di I/O e memoria centrale.Utilizzando questa tecnica il DMA controllerattua direttamente il trasferimento dati tra periferiche e memoria centrale senza l’intervento della CPU.
17/03/2004 Prof. C. Silvano – Politecnico di Milano 140
DMA
A fronte di una richiesta di I/O da parte di un programma, la CPU tramite il device driver invia al DMA controller le seguenti informazioni:• tipo di operazione richiesta;• indirizzo di memoria da cui iniziare a
leggere/scrivere i dati;• numero di byte da leggere/scrivere;
17/03/2004
Prof. Cristina Silvano – Politecnico di Milano 71
17/03/2004 Prof. C. Silvano – Politecnico di Milano 141
DMA
La CPU si svincola completamente dall’esecuzione dell’operazione di I/O.Il controller avvia l’operazione richiesta e trasferisce i dati da/verso memoria.Dopo aver trasferito tutti i dati, il DMA invia un interrupt alla CPU per segnalare il completamento dell’operazione richiesta.