Le infrastrutture
Le infrastrutture
Hardware:
Hardware:
architettura
architettura
Corso di Informatica
Corso di Informatica
CdL:
CdL:
Chimica
Chimica
Claudia d'Amato
Claudia d'Amato
[email protected] [email protected]Interconnessione
Il calcolatore:
Il calcolatore:
modello concettuale
modello concettuale
1.
Elaborazione
2.
Memorizzazione
3.
Comunicazione
(interfaccia)
1.
Elaborazione
Interconnessione
2.
Memorizzazione
3.
Comunicazione
(interfaccia)
Unità Centrale di Elaborazione Memoria Elettronica Memoria MagneticaIl calcolatore:
Il calcolatore:
modello architetturale
modello architetturale
Periferiche Collegamenti (BUS/Cavi)Lo schema di riferimento
Lo schema di riferimento
ALU Interfaccia di I/O Video/tastiera (terminale) Memoria di massa dati controllo indirizzi BUS Interfaccia di I/O Memoria CPU PC RegistriLo schema di riferimento
Lo schema di riferimento
Memoria di massa Bus dati Bus indirizzi Bus di controllo CPU RAM Scheda madre (motherboard) Interfaccia di I/ O SchermoTastiera e mouse Altoparlanti Interfacce
Scheda madre
Scheda madre
Zoccolo per Zoccolo per la CPU la CPU Connettori Connettori per la per la memoria memoria Connettori per Connettori per schede di I/O schede di I/O aggiuntive aggiuntive Connettori per Connettori per dischi fissi dischi fissiCPU – Central Processing Unit
CPU – Central Processing Unit
Unità Centrale di Elaborazione
Collegamento a BUS
Collegamento a BUS
Semplicità
Semplicità
• un’unica linea di connessione costi ridotti di produzione
Estendibilità
Estendibilità
• aggiunta di nuovi dispositivi molto semplice
Standardizzabilità
Standardizzabilità
• regole per la comunicazione da parte di dispositivi diversi
Lentezza
Lentezza
• utilizzo in mutua esclusione del bus
Limitatà capacità
Limitatà capacità
• al crescere del numero di dispositivi collegati
Sovraccarico del processore (CPU)
Sovraccarico del processore (CPU)
Organizzazione tipica di un
Organizzazione tipica di un
calcolatore “bus oriented”
calcolatore “bus oriented”
CPU Memoriacentrale
Bus Unità di controllo Unità aritmetico logica (ALU) Registri CPU Terminale Unità disco Stampante Dispositivi di I/O
L’ “esecutore”
L’ “esecutore”
Un calcolatore basato sull’architettura di Von NeumannUn calcolatore basato sull’architettura di Von Neumann esegue esegue
un programma sulla base dei seguenti
un programma sulla base dei seguenti principiprincipi::
• dati e istruzioni 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 sono eseguite in modo sequenziale.
Il linguaggio per cui la CPU si comporta da esecutore è detto Il linguaggio per cui la CPU si comporta da esecutore è detto
linguaggio macchina
linguaggio macchina. Le istruzioni scritte in linguaggio macchina . Le istruzioni scritte in linguaggio macchina sono piuttosto rudimentali:
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.
00011 00010 00001 000000 00000 100000 Linguaggio macchina R03 R02 R01 add Linguaggio assemblatore src2 src1 dest codice operativo Struttura istruzione
L'esecuzione dei Programmi
L'esecuzione dei Programmi
Quando
Quando istruzioni e dati di un programma
istruzioni e dati di un programma
da
da
elaborare
elaborare sono in memoria
sono in memoria
, la CPU
, la
CPU
esegue
esegue
, fino
, fino
alla
alla terminazione
terminazione
del programma, le fasi
del programma,
le fasi
:
:
Fetch
Fetch
: estrazione di una istruzione dalla
: estrazione di una istruzione dalla
memoria
memoria
Decode
Decode
: identificazione dell'istruzione da
: identificazione dell'istruzione da
eseguire
eseguire
Execute
Execute
: esecuzione dell'istruzione (incluso
: esecuzione dell'istruzione (
incluso
recupero dalla memoria degli operandi o
recupero dalla memoria degli operandi o
modifica della successione delle istruzioni)
Ciclo
Ciclo
Fetch–Decode–Execute
Fetch–Decode–Execute
Fetch
Decode
Le parti di una CPU
Le parti di una CPU
Data pathData path (o (o percorso dei datipercorso dei dati): ): si occupa dell’effettiva si occupa dell’effettiva
elaborazione dei dati
elaborazione dei dati; comprende; comprende
• una o più unità aritmetico-logiche (ALU - Arithmetic Logic Unit); • i registri, memoria ad alta velocità usate per risultati
temporanei e informazioni di controllo
Unità di controlloUnità di controllo
• coordina le operazioni del processore (compreso 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;
CPU
CPU
In grado di eseguire solo istruzioni In grado di eseguire solo istruzioni
codificate in
codificate in linguaggio macchinalinguaggio macchina
Ciclo Fetch – Decode - ExecuteCiclo 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)
Tre tipologie di istruzioni
Tre tipologie di istruzioni
Istruzioni aritmetico-logiche (Elaborazione dati)
Istruzioni aritmetico-logiche (Elaborazione dati)
• Somma, Sottrazione, Divisione, … • And, Or, Xor, …
• Maggiore, Minore, Uguale, Minore o uguale, …
Controllo del flusso delle istruzioni
Controllo del flusso delle istruzioni
• Sequenza
• Salto condizionato o non condizionato (per realizzare selezioni e cicli)
Trasferimento di informazione
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)
Miglioramento Prestazioni CPU
Miglioramento Prestazioni CPU
Per migliorare le prestazioni di una CPU si può:
Per migliorare le prestazioni di una CPU si può:
1.
1.
Ridurre
Ridurre
il tempo
il
tempo
necessario per l'esecuzione
necessario per
l'esecuzione
delle singole
delle singole istruzione
istruzione
1. Aumento delle frequenze dei processori →
riduzione del tempo di ciclo di istruzione
2. Introduzione della
memoria cache
2.
2.
Aumentare il numero di istruzioni da
Aumentare il numero di istruzioni da
eseguire contemporaneamente (in parallelo)
eseguire contemporaneamente (in parallelo)
CPU Pipeline
CPU Pipeline
La fase execute della 1a istruzione è eseguita
La fase execute della 1a istruzione è eseguita
parallelamente alla fase decode della 2a istruzione
parallelamente alla fase decode della 2a istruzione
La fase decode delle seconda istruzione è eseguita
La fase decode delle seconda istruzione è eseguita
parallelamente alla fase fetch della terza istruzione
parallelamente alla fase fetch della terza istruzione
Numero di istruzioni eseguite durante il tempo di
Numero di istruzioni eseguite durante il tempo di
esecuzione di un singolo ciclo di istruzione è <= 3
esecuzione di un singolo ciclo di istruzione è <= 3
In generale
In generale
, l'incremento della velocità di
, l'incremento della velocità di
esecuzione dovuta al pipelining è <= numero di fasi
esecuzione dovuta al pipelining è <= numero di fasi
della pipeline
della pipeline
• è uguale al numero di fasi della pipeline se la durata
degli stadi è perfettamente bilanciata)
CPU Pipeline: Esempio...
CPU Pipeline: Esempio...
10 ns 20 ns 30 ns 40 ns 50 ns 60 ns 0 1 2 3 4 5
Istr.1 Istr.2 Istr.3 Istr.4 Istr.1 Istr.1 Istr.1 Istr.1 Istr.2 Istr.2 Istr.2 Istr.2 Istr.3 Istr.3 Istr.3 Istr.4 Istr.4 Istr.5 Istr.5 Istr.6 Stad io
...CPU Pipeline: Esempio
...CPU Pipeline: Esempio
0 1 2 3 4 5 Istr.i Istr.i+1 Istr. i Istr.i Istr.i Istr.i+1 Istr.i+1 Istr.i+2 Istr.i+2 Istr.i+3 Istr.i+3 Istr.i+4 Istr.i+4 Istr.i+5 Stad io
Istr.i-4 Istr.i-3 Istr.i-2
Istr.i-2 Istr.i-2 Istr.i-1 Istr.i-3 Istr.i-1 Istr.i-1 Istr.i-1 Istr.i Istr.i+1 Istr.i+3 Istr.i+2 Istr.i+2 Istr.i+1
La memoria
La memoria: Funzioni
La memoria: Funzioni
Supporto alla CPU
Supporto alla CPU
: deve fornire
: deve
fornire
alla CPU dati e
alla CPU
dati e
istruzioni il più rapidamente possibile
istruzioni il più rapidamente possibile
Archivio
Archivio
: deve consentire di archiviare dati e
: deve consentire di archiviare dati e
programmi
programmi garantendone
garantendone
la conservazione
la
conservazione
e la
e la
reperibilità
reperibilità
anche dopo elevati periodi di tempo
anche dopo elevati periodi di tempo
Diverse esigenze:
Diverse esigenze:
• velocità per il supporto alla CPU
• non volatilità ed elevate dimensioni per l’archivio
Diverse tecnologie
Diverse tecnologie
• elettronica: veloce, ma costosa e volatile
• magnetica e ottica: non volatile ed economica, ma molto lenta
La memoria centrale
La memoria centrale (RAM)
La memoria centrale (RAM)
Mantiene al proprio interno i dati e
Mantiene al proprio interno i dati e
le istruzioni dei programmi in esecuzione
le istruzioni dei programmi in esecuzione
Memoria ad accesso “casuale”
Memoria ad accesso “casuale”
Tecnologia elettronica
Tecnologia elettronica
•
veloce ma volatile e costosa
Due “eccezioni”
Due “eccezioni”
• ROM: elettronica ma permanente e di sola lettura
• Flash: elettronica ma non volatile e riscrivibile
Indirizzi di memoria
Indirizzi di memoria
I bit nelle memorie
I bit nelle
memorie
sono raggruppati in
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
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.
Organizzazione della memoria
Organizzazione della memoria
Anche gli indirizzi della memoria sono
Anche gli indirizzi della memoria sono
rappresentati come numeri binari
rappresentati come numeri binari
:
:
• un indirizzo di M bit consente di indirizzare 2M celle;
• 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
Una memoria può essere organizzata in diversi
modi:
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).
Organizzazione della memoria
Organizzazione della memoria
0 1 2 3 4 5 6 parole da 16 bit 0 1 2 3 4 5 6 7 8 parole da 12 bit 0 1 2 3 4 5 6 7 8 9 10 11 12 parole da 8 bit
Memoria vs. CPU
Memoria vs. CPU
Le CPU
Le
CPU
sono sempre state più
sono sempre state
più
veloci
veloci
delle memorie
delle
memorie
• nelle memorie è aumentata la capacità più che la velocità.
L’accesso
L’
accesso
alla memoria passa attraverso
alla memoria passa
attraverso
il bus
il
bus
• la frequenza di funzionamento del bus è molto più bassa
di quella della CPU;
È possibile fare memorie
È possibile fare
memorie
molto
molto
veloci
veloci
se stanno nel
se stanno nel
chip della CPU, ma
chip della CPU, ma sono piccole
sono piccole
e costose
e
costose
== I
==
I
REGISTRI
Memoria centrale – Chip
Memoria centrale – Chip
S
S
ingle
ingle
I
I
nline
nline
M
M
emory
emory
M
M
odule
odule
(SIMM
(
SIMM
)
)
• 30/72 pin sullo stesso lato della scheda; • trasferimento dati a 8/32 bit per volta; • utilizzabili “a coppie”.
Dual In-line Memory Module (DIMM
Dual In-line Memory Module (
DIMM
)
)
• 168 pin su due lati; • 64 bit alla volta;
• utilizzabili anche singolarmente
RIMM
RIMM
•
184 pin
La memoria di massa
La memoria di massa
(magnetica)
Una gerarchia di memoria
Una gerarchia di memoria
Ottenuta per “generalizzazione” dell’applicazione
Ottenuta per “generalizzazione” dell’applicazione
del principio di
del principio di località
località
e tipicamente costituita da
e tipicamente costituita da
1. registri contenuti nella CPU (qualche KB)
2. cache (da circa 32KB a circa 1024KB)
3. memoria principale (da circa 64MB a qualche GB)
4. dischi fissi (da qualche GB a qualche TB)
5. nastri magnetici e dischi ottici (da qualche GB a qualche TB per ogni supporto)
Man mano che ci si sposta verso il basso nella
Man mano che ci si sposta verso il basso nella
gerarchia aumenta il valore dei parametri
gerarchia aumenta il valore dei parametri
fondamentali:
fondamentali:
• aumenta il tempo di accesso;
• aumenta la capacità di memorizzazione;
Una gerarchia di memoria
Una gerarchia di memoria
C P U Registri Cache I liv Cache II liv Cir cu it o In te gr at o (c h ip ) RAM Sc h ed a m ad re ( m ot he rb oa rd )
Disco fisso (hard disk)
tecnologia magnetica In vo lu cr o es te rn o de l ca lc ol at or e (c as e) Supporti esterni
Dischi magnetici
Dischi magnetici
Sono piatti
Sono
piatti
d’alluminio (o di altro materiale)
d’alluminio (o di altro materiale)
ricoperti di
ricoperti di materiale ferromagnetico
materiale ferromagnetico
.
.
Fattore di forma
Fattore di forma
(diametro)
(diametro)
• sempre più piccolo (consente velocità di rotazione maggiori);
• 3.5 pollici per i sistemi desktop e fino a 1 pollice per i mobili.
Testina
Testina
di un disco (strumento di lettura/scrittura)
di un disco (strumento di lettura/scrittura)
• è sospesa appena 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.
Tracce e settori
Tracce e settori
TracciaTraccia (track)(track): sequenza circolare di bit scritta mentre il : sequenza circolare di bit scritta mentre il disco compie una rotazione completa
disco compie una rotazione completa
SettoreSettore (sector)(sector): parte di una traccia corrispondente a un : parte di una traccia corrispondente a un settore circolare del disco
settore circolare del disco
FormattazioneFormattazione: operazione che predispone tracce e settori : operazione che predispone tracce e settori per la lettura/scrittura
Tracce
Tracce
e
e
settori
settori
Tracce Spazi tra tracce Spazi tra record SettoreTestina di lettura/scrittura (una per superficie) Superficie 6 Superficie 5 Superficie 4 Superficie 3 Superficie 2 Superficie 1 Superficie 0 Superficie 7 Direzione del movimento
Schema di un Hard Disk
Memorie Flash
Memorie Flash
Funzioni:Funzioni:
• trasferimento dati (la
capacità dei floppy è limitata); • archiviazione dati “sensibili”.
Tecnologia elettronica non Tecnologia elettronica non
volatile
volatile
• bassi consumi
• piccole dimensioni
• capacità dai 256MB ai 4GB
File system come per i File system come per i
dischi
dischi
• Il sistema operativo gestisce l’accesso come se fossero dischi;
La memoria di massa
La memoria di massa
(ottica)
Dischi ottici
Dischi ottici
Lettura ottica basata sulla riflessione (o sulla mancata Lettura ottica basata sulla riflessione (o sulla mancata
riflessione) di un raggio laser.
riflessione) di un raggio laser.
Densità di registrazione più alte dei dischi magneticiDensità di registrazione più alte dei dischi magnetici..
Creati in origine per registrare i programmi televisivi, poi Creati in origine per registrare i programmi televisivi, poi
usati come dispositivi di memoria nei calcolatori.
usati come dispositivi di memoria nei calcolatori.
Diversi tipi/caratteristicheDiversi tipi/caratteristiche
• CD-ROM • CD-R • CD-RW • DVD • DVD-RAM • …
Digital Versatile Disk (DVD)
Digital Versatile Disk (DVD)
Evoluzione tecnologica
Evoluzione tecnologica
maggior
maggior
densità dei dati
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
Caratteristiche dei DVD
• capacità di 4.7 GB
• 133 minuti di video fullscreen MPEG-2 ad alta risoluzione (720 x 480) con colonna sonora in 8 lingue e sottotitoli in altre 32;