Informatica Le infrastrutture HardWare Funzionalità di un calcolatore

21/03/2007
Informatica
Pietro Storniolo
[email protected]
http://www.pa.icar.cnr.it/storniolo/info200607
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Le infrastrutture HardWare
L’architettura di riferimento
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Funzionalità
Funzionalità di un calcolatore
Trasferimento
Ambiente
esterno
Controllo
Elaborazione
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Memorizzazione
Copyright © 2005 – The McGraw-Hill Companies srl
1
21/03/2007
Caratteristiche dell’
dell’architettura
flessibilità
flessibilità nel calcolo
modularità
odularità della struttura
scalabilità
scalabilità dei componenti
standardizzazione dei componenti
abbattimento dei costi
semplicità
semplicità di installazione e di esercizio del sistema
disponibilità
disponibilità di applicazioni a basso prezzo di vendita
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Il calcolatore:
modello concettuale
2.
Memorizzazione
1.
Elaborazione
Interconnessione
3.
Comunicazione
(interfaccia)
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Il calcolatore:
modello architetturale
2.
1.
Elaborazione
Unità Centrale di
Elaborazione
Memoria
Memorizzazione
Memoria
Magnetica
Elettronica
Interconnessione
Collegamenti
(BUS/Cavi)
3.
Comunicazione
(interfaccia)
Periferiche
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
2
21/03/2007
Lo schema di riferimento
Video/tastiera
(terminale)
Memoria di
massa
PC
ALU
Registri
CPU
Memoria
Interfaccia di I/O
Interfaccia di I/O
dati
BUS
indirizzi
controllo
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Lo schema di riferimento
RAM
CPU
Scheda madre
(motherboard)
Bus dati
Bus indirizzi
Bus di controllo
Interfacce
di I/O
Interfaccia di
I/O
Tastiera e mouse
Schermo
Memoria di massa
Altoparlanti
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Connettori per
schede di I/O
aggiuntive
Interfacce
di I/O
Copyright © 2005 – The McGraw-Hill Companies srl
Scheda madre
Zoccolo per
la CPU
Connettori
per la
memoria
Connettori per
dischi fissi
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
3
21/03/2007
Collegamento a BUS
☺
Semplicità
Semplicità
☺
Estendibilità
Estendibilità
☺
Standardizzabilità
Standardizzabilità
•
•
•
un’unica linea di connessione
costi ridotti di produzione
aggiunta di nuovi dispositivi molto semplice
regole per la comunicazione da parte di dispositivi diversi
Lentezza
•
utilizzo in mutua esclusione del bus
Limitatà
Limitatà capacità
capacità
•
al crescere del numero di dispositivi collegati
Sovraccarico del processore (CPU)
•
perchè funge da master sul controllo del bus
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Le infrastrutture HardWare
Il processore
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
CPU – Central Processing Unit
Unità
Unità Centrale di Elaborazione
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
4
21/03/2007
Organizzazione tipica di un
calcolatore “bus oriented”
oriented”
CPU
Dispositivi di I/O
Unità di
controllo
Unità
aritmetico
logica (ALU)
Terminale
Stampante
Registri
CPU
Memoria
centrale
Unità
disco
Bus
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
L’ “esecutore”
esecutore”
Un calcolatore basato sull’
sull’architettura di Von Neumann esegue un
programma sulla base dei seguenti principi:
• dati e istruzioni sono memorizzati in una memoria unica che permette sia la
scrittura che la lettura;
• i contenuti della memoria sono indirizzati in base alla loro posizione,
indipendentemente dal tipo di dato o istruzione contenuto;
• le istruzioni vengono eseguite in modo sequenziale.
Il linguaggio per cui la CPU si comporta da esecutore è detto linguaggio
macchina.
macchina. Le istruzioni scritte in linguaggio macchina sono piuttosto
rudimentali:
• il concetto di tipo di dato è quasi assente,
• il numero di operandi è limitato (in genere non più di due),
• il numero di operazioni previste è ridotto.
Struttura istruzione
codice operativo
dest
src1
src2
Linguaggio assemblatore
add
R01
R02
R03
Linguaggio macchina
000000 00000 100000 00001 00010 00011
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Ciclo Fetch–
Fetch–Decode–
Decode–Execute
Fetch
Decode
Execute
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
5
21/03/2007
Le parti di una CPU
Data path (o percorso dei dati)
dati)
• è la parte che si occupa dell’effettiva elaborazione dei dati;
• comprende dispositivi diversi
• una o più unità aritmetico-logiche, dette ALU (Arithmetic Logic Unit);
• alcune unità di memorizzazione temporanea, i registri, memoria ad alta velocità
usata per risultati temporanei e informazioni di controllo (il valore massimo
memorizzabile in un registro è determinato dalle dimensioni del registro).
Unità
Unità di controllo
• coordina le operazioni di tutto il processore (anche quelle del data path!);
• regola il flusso dei dati e indica quali registri debbano essere collegati agli
ingressi e all’uscita dell’ALU;
• invia all’ALU il codice dell’operazione da eseguire;
• riceve indicazioni sull’esito dell’operazione appena eseguita dall’ALU e
gestisce opportunamente queste informazioni;
• comprende alcuni registri di uso specifico
• Program Counter (PC) – qual è l’istruzione successiva;
• Instruction Register (IR) – istruzione in corso d’esecuzione;
• …
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Data Path
Registri
… … … …
R00 R01 R02 R03
X
Registri
ingresso ALU
add
Registro
uscita ALU
X
Y
X
+
Y
esito
A
L
U
X
+
Y
Y
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Unità di
controllo
PSW
Bus dati
Data path
Bus indirizzi
CPU
Bus controllo
Unità
Unità di controllo
IR
PC
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Memoria
Copyright © 2005 – The McGraw-Hill Companies srl
6
21/03/2007
CPU
In grado di eseguire solo istruzioni
codificate in linguaggio macchina
Ciclo Fetch – Decode - Execute
1. Prendi l’istruzione corrente dalla memoria (quella individuata dal
contenuto del PC) e mettila nell’IR (Instruction Register),
contemporaneamente incrementa il Program Counter (PC) in modo che
contenga l’indirizzo dell’istruzione successiva (fetch)
2. Determina il tipo di istruzione da eseguire (decode)
3. Se l’istruzione usa dei dati presenti in memoria, determinane la
posizione;
4. Carica la parola, se necessario, in un registro della CPU;
5. Esegui l’istruzione (execute)
6. Torna al punto 1 e inizia a eseguire l’istruzione successiva.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Tre tipologie di istruzioni
Istruzioni aritmeticoaritmetico-logiche (Elaborazione dati)
• Somma, Sottrazione, Divisione, …
• And, Or, Xor, …
• Maggiore, Minore, Uguale, Minore o uguale, …
Controllo del flusso delle istruzioni
• Sequenza
• Selezione semplice, a due vie, a n vie, …
• Ciclo a condizione iniziale, ciclo a condizione finale, …
Trasferimento di informazione
• Trasferimento dati e istruzioni tra CPU e memoria
• Trasferimento dati e istruzioni tra CPU e dispositivi di
ingresso/uscita (attraverso le relative interfacce)
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Tipologie di istruzioni
Architettura di riferimento: load/
load/store
• le operazioni aritmetico-logiche possono essere eseguite solo su dati che siano
già stati caricati nei registri;
• le operazioni di caricamento dei dati dalla memoria nei registri (load) e di
archiviazione dei risultati dai registri nella memoria (store) debbono essere
previste esplicitamente.
Un processore in architettura load/
load/store dovrà
dovrà quindi essere in grado di
eseguire le seguenti categorie di istruzioni:
• Istruzioni aritmeticoaritmetico-logiche (Elaborazione dati)
• Somma, Sottrazione, Divisione, …
• And, Or, Xor, …
• Maggiore, Minore, Uguale, Minore o uguale, …
• Controllo del flusso delle istruzioni
• Sequenza
• Salto condizionato o non condizionato (per realizzare selezioni e cicli)
• Trasferimento di informazione
• Trasferimento dati e istruzioni tra CPU e memoria
• Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/uscita (attraverso le
relative interfacce)
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
7
21/03/2007
Esempi di istruzioni
Istruzione
add
R01,R02,R03
Significato
Categoria
R01 ← R02 + R03
aritmetico-logica
aritmetico-logica
addi R01,R02,421
R01 ← R02 + 421
lw
R01,R02,421
R01 ← M[R02 + 421]
trasferimento
sw
R01,R02,421
M[R02 + 421] ← R01
trasferimento
beq
R01,R02,–421 se (R01 == R02) vai a PC–421
j
84210
vai a 84210
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
salto (condizionato)
salto (non condizionato)
Copyright © 2005 – The McGraw-Hill Companies srl
Istruzioni aritmeticoaritmetico-logiche
Un’
Un’istruzione aritmeticoaritmetico-logica, ad esempio
add RZ,RX,RY,
RZ,RX,RY, viene eseguita in quattro passi:
1. l’istruzione viene prelevata dalla memoria e scritta nell’IR mentre il
PC viene incrementato (si tratta della fase di fetch già descritta in
precedenza);
2. viene letto il contenuto dei due registri RX e RY (in pratica l’unità
di controllo attiva i collegamenti tra i registri RX e RY, individuati dal
contenuto dell’IR, e i registri di ingresso all’ALU e provvede a
effettuare il trasferimento dei dati);
3. la ALU opera sui dati letti dal banco dei registri, eseguendo
l’operazione indicata dal codice compreso nell’istruzione (l’unità di
controllo attiva il collegamento di un pezzo dell’IR con l’ingresso di
controllo dell’ALU);
4. il risultato calcolato dall’ALU viene scritto nel registro RZ (anche il
registro destinazione viene individuato a partire dal contenuto
dell’IR).
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Istruzioni di trasferimento
Un’
Un’istruzione di trasferimento, ad esempio
lw RY,RX,base,
RY,RX,base, viene eseguita in cinque passi:
1. l’istruzione viene prelevata dalla memoria e scritta
nell’IR mentre il PC viene incrementato;
2. viene letto il contenuto del registro RX;
RX
3. la ALU opera sui dati letti dal banco dei registri e sulla
base scritta nell’IR;
4. il risultato calcolato dall’ALU viene utilizzato come
indirizzo per la memoria dati;
5. il dato proveniente dalla memoria viene scritto nel
registro RY.
RY
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
8
21/03/2007
Istruzioni di controllo
Un’
Un’istruzione di trasferimento, ad esempio
beq RX,RY,salto,
RX,RY,salto, viene eseguita in quattro
passi:
1. l’istruzione viene prelevata dalla memoria e scritta
nell’IR mentre il PC viene incrementato;
2. viene letto il contenuto dei due registri RX e RY;
RY
3. la ALU opera sui dati letti dal banco dei registri,
eseguendo l’operazione indicata dal codice compreso
nell’istruzione (nel caso dell’esempio si tratta di una
sottrazione, per verificare poi se il risultato è uguale o
diverso da zero); contemporaneamente il contenuto del
PC viene sommato al valore del salto per calcolare
l’eventuale destinazione del salto;
4. l’esito dell’operazione viene utilizzato per decidere quale
valore debba essere memorizzato nel PC.
PC
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Unità
Unità funzionali richieste
dai diversi tipi di istruzioni
Tipo di istruzione
Aritmetico-logico
Unità
Unità funzionali utilizzate
Banco
Memoria Banco
ALU
registri
(istruzioni) registri
Trasferimento
Memoria Banco
Memoria Banco
ALU
(dati) registri
(registri ← memoria) (istruzioni) registri
Memoria
Trasferimento
Memoria Banco
ALU
(dati)
(registri → memoria) (istruzioni) registri
Salto
(condizionato)
Salto
(non condizionato)
Memoria Banco
ALU
(istruzioni) registri
Memoria
(istruzioni)
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Durata indicativa di ogni categoria di
istruzione (tempi in ns).
ns).
Tipo di istruzione
Memoria Lettura ALU Memoria Scrittura
istruzioni registro
dati
registro Totale
(MI)
(LR) (AL)
(MD)
(SR)
AritmeticoAritmetico-logico
10
5
10
–
5
30
Trasferimento
(registri ← memoria)
10
5
10
10
5
40
Trasferimento
(registri → memoria)
10
–
35
10
5
10
Salto
(condizionato)
10
5
10
–
–
25
Salto
(non condizionato)
10
–
–
–
–
10
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
9
21/03/2007
Un esempio
Esecuzione di una successione di quattro istruzioni per il
caricamento di due dati dalla memoria nei registri R01 e R02,
la loro somma e la registrazione in memoria del risultato.
lw R01,R11,421
MI LR AL
lw R02,R11,842
Tempo
MD SR
40 ns
add R03,R01,R02
MI LR AL
MD SR
40 ns
30 ns
MI LR AL SR
35 ns
MI LR AL
sw R03,R11,421
MD
145 ns
Ordine di esecuzione
delle istruzioni
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Incrementare le prestazioni
con il parallelismo
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Migliorare le prestazioni di una CPU
La frequenza di clock
• influenza direttamente il tempo di ciclo del data path e
quindi le prestazioni di un calcolatore;
• è limitata dalla tecnologia disponibile.
Il parallelismo permette di migliorare le prestazioni
senza modificare la frequenza di clock. Esistono
due forme di parallelismo:
• parallelismo a livello delle istruzioni
(architetture pipeline o architetture superscalari);
• parallelismo a livello di processori
(Array computer, multiprocessori o multicomputer).
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
10
21/03/2007
Architettura pipeline
Organizzazione della CPU come una “catena di
montaggio”
montaggio”
• la CPU viene suddivisa in “stadi”, ognuno dedicato
all’esecuzione di un compito specifico;
• l’esecuzione di un’istruzione richiede il passaggio
attraverso (tutti o quasi tutti) gli stadi della pipeline;
• in un determinato istante, ogni stadio esegue la parte di
sua competenza di una istruzione;
• in un determinato istante, esistono diverse istruzioni
contemporaneamente in esecuzione, una per ogni stadio.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Prestazioni di una pipeline
Il tempo di esecuzione (latenza
(latenza)) della singola
istruzione non diminuisce, anzi aumenta
• il tempo di attraversamento (latenza) della pipeline
corrisponde al numero degli stadi (N) moltiplicato per il
tempo di ciclo (T);
• il tempo di ciclo è limitato dallo stadio più lento!
Aumenta il numero di istruzioni completate
nell’
nell’unità
unità di tempo (throughput
(throughput))
• si completa un’istruzione a ogni ciclo di clock;
• l’incremento di throughput è quasi proporzionale al
numero degli stadi!
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Evoluzione architetture
Vista la disponibilità
disponibilità di un maggior numero di transistor si
inseriscono più
più pipeline nella stessa CPU
• aumenta il parallelismo perché è possibile eseguire
contemporaneamente diversi flussi di istruzioni;
istruzioni
• è necessario garantire che non ci siano conflitti tra le istruzioni che
vengono eseguite insieme; di solito il controllo è affidato al
compilatore.
Stadio 1
Memoria
Istruzioni
(MI)
Stadio 2
Stadio 3
Stadio 4
Stadio 5
Lettura
Registri
(LR)
ALU
(AL)
Memoria
Dati
(MD)
Scrittura
Registri
(SR)
Lettura
Registri
(LR)
(AL)
Memoria
Dati
(MD)
Scrittura
Registri
(SR)
ALU
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
11
21/03/2007
Architetture superscalari
In alternativa si possono
replicare le unità
unità funzionali
• rappresentano lo stadio più
lento della pipeline (in genere
richiedono diversi cicli di clock);
• è più semplice evitare i conflitti
tra le diverse istruzioni.
execute
ALU 1
ALU 2
LOAD
STORE
S1
fetch
S2
S3
decode
lettura
operandi
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
S5
FP 1
write back
FP 2
Copyright © 2005 – The McGraw-Hill Companies srl
Multiprocessori
Diverse CPU condividono una memoria comune:
comune:
• le CPU debbono coordinarsi per accedere alla memoria;
• esistono diversi schemi di collegamento tra CPU e
memoria, quello più semplice prevede che ci sia un bus
condiviso;
• se i processori sono veloci il bus diventa un collo di bottiglia;
• esistono soluzioni che permettono di migliorarne le prestazioni, ma
si adattano a sistemi con un numero limitato di CPU (<20).
La memoria condivisa rende più
più semplice il
modello di programmazione:
programmazione:
• si deve parallelizzare l’algoritmo, ma si può trascurare la
“parallelizzazione” dei dati.
CPU
CPU
CPU
CPU
mem
bus condiviso
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Multicalcolatori
Sistemi composti da tanti calcolatori collegati fra loro
• ogni calcolatore è dotato di una memoria privata e non c’è memoria
in comune;
• comunicazione tra CPU basata su scambio di messaggi.
Non è efficiente collegare ogni calcolatore a tutti gli altri,
quindi vengono usate topologie particolari:
• griglie a 2/3 dimensioni, alberi e anelli;
• i messaggi, per andare da fonte a destinazione, spesso devono passare
da uno o più calcolatori intermedi o switch.
• Tempi di trasferimento dei messaggi dell’ordine di alcuni
microsecondi sono comunque facilmente ottenibili.
Sono stati costruiti multicalcolatori con ~10.000 CPU.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
12
21/03/2007
Struttura di un multicomputer
mem
mem
mem
mem
CPU
CPU
CPU
CPU
bus condiviso
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Evoluzione delle CPU Intel
Frequenza Dim.
Dim. registri Numero di
(MHz)
bus dati
transistor
MHz)
CPU
Anno
8086
1978
4.77 — 12
8/16
29 000
80286
1982
8 — 16
16/16
134 000
80386
1986
16 — 33
32/32
275 000
80486
1989
33 — 50
32/32
1 200 000
3 100 000
Pentium
1993
60 — 200
32/64
Pentium II
1997
233 — 400
32/64
7 500 000
Pentium III
1999
450 — 1133
32/64
24 000 000
(Willamette)
2000
1300 — 2000
32/64
42 000 000
(Northwood)
2002
2000 — 3400
32/64
55 000 000
(Prescott)
2004
2800 — 3800
32/64
125 000 000
Pentium 4
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Legge di Moore
Osservazione fatta da Gordon Moore nel 1965:
il numero dei transistor per cm2
raddoppia ogni X mesi
In origine X era 12. Correzioni successive hanno
portato a fissare X=18. Questo vuol dire che c’è un
incremento di circa il 60% all’anno.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
13
21/03/2007
# Transistor [CPU Intel]
Intel]
100 000 000
10 000 000
1 000 000
100 000
1989
1991
1993
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
1995
1997
1999
Copyright © 2005 – The McGraw-Hill Companies srl
Legge di Moore e progresso
Il progresso della tecnologia provoca un aumento
del numero di transistor per cm2 e quindi per chip.
Un maggior numero di transistor per chip permette
di produrre prodotti migliori (sia in termini di
prestazioni che di funzionalità
funzionalità) a prezzi ridotti.
ridotti.
I prezzi bassi stimolano la nascita di nuove
applicazioni (e.g. non si fanno video game per
computer da milioni di $).
Nuove applicazioni aprono nuovi mercati e fanno
nascere nuove aziende.
aziende.
L’esistenza di tante aziende fa crescere la
competitività
competitività che, a sua volta, stimola il progresso
della tecnologia e lo sviluppo di nuove tecnologie.
tecnologie.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Le infrastrutture HardWare
La memoria centrale
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
14
21/03/2007
La memoria
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
La memoria
Supporto alla CPU:
CPU: deve fornire alla CPU dati e
istruzioni il più
più rapidamente possibile
Archivio:
Archivio: deve consentire di archiviare dati e
programmi garantendone la conservazione e la
reperibilità
reperibilità anche dopo elevati periodi di tempo
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
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Criteri di caratterizzazione di una memoria
Velocità
Velocità
Volatilità
Volatilità
Capacità
Capacità
Costo (per bit)
Modalità
Modalità di accesso
•
•
•
•
diretta (o casuale)
sequenziale
mista
associativa
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
15
21/03/2007
La memoria centrale
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
La memoria centrale (RAM)
Mantiene al proprio interno i dati e
le istruzioni dei programmi in esecuzione
Memoria ad accesso “casuale”
casuale”
Tecnologia elettronica
• veloce ma volatile e costosa
Due “eccezioni”
eccezioni”
• ROM: elettronica ma permanente e di sola lettura
• Flash: elettronica ma non volatile e riscrivibile
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Indirizzi di memoria
I bit nelle memorie sono raggruppati in celle:
celle:
• tutte le celle sono formate dallo stesso numero di bit;
• una cella composta da k bit, è in grado di contenere una
qualunque tra 2k combinazioni diverse di bit.
Ogni cella ha un indirizzo:
indirizzo:
• serve come accesso all’informazione;
• in una memoria con N celle gli indirizzi vanno da 0 a N–1.
La cella è l’unità
unità indirizzabile più
più piccola.
piccola.
In quasi tutti i calcolatori è di 8 bit (un byte).
byte).
I byte vengono raggruppati in parole (che oggi sono
di 32/64 bit),
bit), su cui la CPU esegue le operazioni.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
16
21/03/2007
Organizzazione della memoria
Anche gli indirizzi della memoria sono
rappresentati come numeri binari:
• un indirizzo di M bit consente di indirizzare 2M celle;
• per 6 o 8 celle bastano 3 bit, per 12 celle ne servono 4;
• il numero di bit nell’indirizzo determina il numero
massimo di celle indirizzabili nella memoria ed è
indipendente dal numero di bit per cella (una memoria con
212 celle richiede sempre 12 bit di indirizzo, quale che sia
la dimensione di una cella).
Una memoria può essere organizzata in diversi
modi:
• con 96 bit possiamo avere 6 celle di 16 bit (6*16=96), o 8
celle di 12 bit (8*12=96) o 12 celle di 8 bit (12*8=96).
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Organizzazione della memoria
0
0
1
2
3
4
5
1
2
3
4
5
6
7
6 parole da 16 bit
0
1
2
3
4
5
6
7
8
8 parole da 12 bit
9
10
12 parole da 8 bit 11
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Memoria e collegamenti con bus
linee di
selezione parola
0110
Bus indirizzi
DECODIFICATORE
Viene selezionata la
parola di indirizzo 0110due
il contenuto è 01101100;
l’operazione è di lettura
(load)
load) o di scrittura
(store)
store) a seconda dei
comandi presenti sul bus
di controllo
linea 0
0
linea 1
0
linea 2
0
linea 3
0
linea 4
0
linea 5
0
linea 6
1
linea 7
0
linea 8
0
linea 9
0
linea 10
0
linea 11
0
linea 12
0
linea 13
0
linea 14
0
linea 15
0
16 celle di memoria
di 8 bit ciascuna
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
parola
selezionata
leggi/scrivi
Bus di
controllo
Dato
(letto o da scrivere)
Bus dati
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
17
21/03/2007
Memoria vs. CPU
Le CPU sono sempre state più
più veloci delle memorie
• l’aumento di integrazione ha consentito di realizzare CPU
pipeline e super scalari, molto efficienti e veloci;
• nelle memorie è aumentata la capacità più che la velocità.
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 “autonomi” (e.g. DMA).
È difficile riordinare le istruzioni in modo da poter
sfruttare i tempi di attesa della memoria.
È possibile fare memorie molto veloci se stanno nel
chip della CPU, ma sono piccole e costose.
costose.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Le memorie gerarchiche
Memorie di gran capacità
capacità, relativamente lente,
economiche ed accessibili tramite il bus:
• MGL ovvero Memoria Grossa e Lenta;
• dimensioni pari a circa 10 unità;
• tempo di accesso (TA) di circa 10 unità.
Memorie veloci, integrate nello stesso chip della
CPU, ma costose:
• MPV ovvero Memoria Piccola e Veloce;
• dimensioni pari a circa 1 unità;
• tempo di accesso pari a circa 1 unità.
Obiettivo: realizzare una memoria grossa e veloce
• dimensioni pari a circa quelle della memoria grossa;
• prestazioni pari a circa quelle della memoria veloce.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Una gerarchia di memoria
Memoria formata da una MPV e una MGL:
MGL:
• la MPV contiene una copia di alcune celle della MGL;
• quando la CPU chiede una particolare cella di memoria la
richiesta va ad entrambe le memorie:
• se il dato si trova nella MPV, viene passato direttamente alla CPU;
• se il dato si trova nella MGL, viene anche caricato nella MPV.
Ipotesi: distribuzione uniforme delle richieste
• la frequenza con cui si trova il dato cercato nella MPV (hit
ratio) sarà in media il 10% (1/10), in questi casi il tempo di
accesso (hit time) sarà pari a 1 unità;
• la frequenza con cui è necessario accedere alla MGL (miss
ratio) sarà in media il 90% (9/10), in questi casi il tempo di
accesso (miss penalty) sarà pari a 10 unità;
• il tempo medio di accesso sarà 0.1*1+0.9*10=9.1 unità!
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
18
21/03/2007
Gerarchia di memoria
Sistema di
memoria
Memoria piccola
e veloce
Livello 1
CPU
Trasferimento
di dati
Livello 2
Memoria grande
e lenta
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Il principio di località
località
Località
Località spaziale:
spaziale:
quando si accede all’
all’indirizzo A, è molto probabile
che gli accessi successivi richiedano celle vicine ad A.
A.
• le istruzioni del codice vengono in genere lette da locazioni
consecutive della memoria;
• gli accessi ad array o a strutture dati sono “vicini”.
Località
Località temporale:
temporale:
quando si accede all’
all’indirizzo A, è molto probabile
negli accessi successivi si richieda di nuovo la cella A.
• cicli di istruzioni accedono ripetutamente alle stesse locazioni
di memoria;
• istruzioni vicine tendono ad utilizzare le stesse variabili.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Come si sfrutta la località
località
Diversi approcci a seconda del tipo di località
località:
• località temporale:
temporale i dati prelevati dalla MGL vengono
conservati nella MPV il più a lungo possibile;
• località spaziale:
spaziale quando si copia un dato dalla MGL alla
MPV, si copiano anche i dati vicini (cache line o blocco).
La frequenza di successo (hit
(hit ratio – h) cresce fino
a superare il 99%:
99%:
• in effetti h dipende da due caratteristiche contrastanti:
• la dimensione dei blocchi
un blocco grande sfrutta meglio la località spaziale;
• quanti sono i blocchi in memoria
se c’è spazio per tanti blocchi un dato resta in memoria più a lungo
e può sfruttare più a lungo la località temporale;
• c’è anche il problema del costo della cache!
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
19
21/03/2007
L’effetto della località
località
Effetto del principio di località
località sull’
sull’esempio di prima:
• tempo di accesso alla cache pari a 1 unità (TA
TAC = 1);
1
• tempo di accesso alla memoria (detto anche miss penalty,
ovvero penalità di fallimento) pari a 10 unità (TAM
TAM = 10);
10
• frequenza di successo (hit ratio, h = 0.99);
0.99
• frequenza di fallimento (miss ratio, m = 1 – h = 0.01);
0.01
• tempo di accesso medio pari a:
TA = h * TAC + m * TAM
TA = 0.99 * 1 + 0.01 * 10 = 1.09
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
La memoria centrale
Tecnologia elettronica (veloce ma volatile)
volatile)
Gerarchia di memoria:
memoria:
ai livelli più
più alti corrispondono le tecnologie
più
più veloci ma anche più
più costose
• cache interna (Static RAM – SRAM)
• cache esterna (SRAM)
• memoria RAM
(Dynamic RAM – DRAM e sue varianti)
• area di swap su memoria di massa
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Memoria cache: SRAM
Interna (L1)
stessa frequenza della CPU
Esterna (L2 e/o L3)
• Tre diverse posizioni/configurazioni
• Saldata sulla motherboard
• Card Edge Low Profile (CELP) socket
• COAST (Cache On A STick) module
• Diverse tipologie
• Asynchronous SRAM (più economica),
TA compreso tra 12 e 20ns, OK per bus tra 50 e 66 MHz
• Synchronous Burst SRAM (Synch SRAM)
Bus fino a 66 MHz
Bus oltre i 66 MHz
• Synchronous Pipelined Burst SRAM (PB SRAM)
TA compreso tra 4.5 e 8ns, OK per bus fino a 133 MHz
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
20
21/03/2007
Memoria centrale – DRAM
Fast Page Mode DRAM (FPM DRAM)
DRAM)
• TA=70-60ns
• Per la lettura si attiva la riga, la colonna, si validano i dati, si
trasferiscono i dati, poi si disattiva la colonna
• I miglioramenti di velocità nascono dal progresso della tecnologia di
integrazione.
Extended Data Out DRAM (EDO DRAM)
DRAM)
• TA = 70-50ns
• Non richiede la disattivazione della colonna e del buffer di uscita; 60ns
è il minimo per bus a 66MHz
Burst EDO DRAM (BEDO DRAM)
DRAM)
• Evoluzione di EDO DRAM
(pipeline + 2-bit burst counter)
• Mai davvero supportata.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Memoria centrale – DRAM
Synchronous DRAM (SDRAM)
SDRAM)
• Sfrutta la sequenzialità delle richieste: una volta trovato il primo dato
gli altri vengono recuperati velocemente.
• Fornisce dati fino a 10ns (100MHz)
PC133 SDRAM
• Evoluzione della SDRAM per bus a 133MHz
• Trasferimento dati fino a 1.6GBps
Double Data Rate DRAM (DDR
(DDR DRAM)
DRAM)
• Sfrutta entrambi i fronti del clock per trasferire dati: raddoppia la
frequenza efficace non quella effettiva.
Direct Rambus DRAM (DRDRAM
(DRDRAM))
• Risultato della collaborazione tra Intel e Rambus
• Nuova architettura: 600-800MHz (1000MHz nel 2001)
con bus di sistema a 133MHz.
• 1 canale arriva fino a 1.6GBps (4 canali 6.4 GBps)
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Copyright © 2005 – The McGraw-Hill Companies srl
Packaging
Fino all’
all’inizio degli anni ‘90 la memoria veniva
prodotta, acquistata e installata su chip singoli
• densità variabili da 1 Kbit a 1 Mbit;
• i PC avevano zoccoli vuoti dove inserire altri chip.
Oggi si monta un gruppo di chip, tipicamente 8 o
16, su un piccola scheda stampata che si vende
come unità
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
Sia SIMM che DIMM sono a volte dotate di un codice
di rilevazione o di correzione dell’
dell’errore.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
21
21/03/2007
Memoria centrale – Chip
Single Inline Memory Module (SIMM)
SIMM)
• 30/72 pin sullo stesso lato della scheda;
• trasferimento dati a 8/32 bit per volta;
• utilizzabili “a coppie”.
Dual InIn-line Memory Module (DIMM
(DIMM))
• 168 pin su due lati;
• 64 bit alla volta;
• utilizzabili anche singolarmente
RIMM
• Moduli di RDRAM;
• interfaccia DIMM 100MHz.
Introduzione ai sistemi informatici 3/ed
Donatella Sciuto, Giacomo Buonanno, Luca Mari
Introduzione ai sistemi informatici
Copyright © 2005 – The McGraw-Hill Companies srl
22