La memoria - Università Kore

annuncio pubblicitario
Introduzione
n Che cos’è un calcolatore?
n Come funziona un calcolatore?
è è possibile rispondere a queste domande in molti modi,
ciascuno relativo a un diverso punto di vista
è in questo corso, il punto di vista prevalente è quello del
calcolatore come macchina programmabile, ovvero in
grado di eseguire programmi
Alessandro Di Nuovo
1
Architettura dei calcolatori
n  Che cos’è un calcolatore? Come funziona un calcolatore?
è un calcolatore è un sistema
è un sistema è un oggetto costituito da molte parti (componenti) che
interagiscono, cooperando, al fine di ottenere un certo
comportamento
n  Studiare l’architettura di un sistema vuol dire
è individuare ciascun componente del sistema
è comprendere i principi generali di funzionamento di ciascun
componente
è comprendere come i vari componenti interagiscono tra di loro
Alessandro Di Nuovo
2
Caratteristiche dell’architettura
•  Flessibilità nel calcolo,
architettura non specializzata per un solo tipo di utilizzo ma adatta a svolgere
diversi compiti;
•  modularità della struttura
a ogni componente viene demandato lo svolgimento di una funzione specifica del
sistema complessivo;
•  scalabilità dei componenti
ognuno dei quali può essere sostituito con uno funzionalmente equivalente ma in
grado di fornire prestazioni migliori;
•  standardizzazione dei componenti
per facilitarne la sostituzione in caso di malfunzionamenti;
•  abbattimento dei costi,
grazie alla produzione su vasta scala dei componenti;
•  semplicità di installazione e di esercizio del sistema;
•  disponibilità di applicazioni a basso prezzo di vendita.
Alessandro Di–Nuovo
Informatica e cultura dell’informazione
08/
capitolo 1 – Il
3
3
Hardware e software
n La prima decomposizione di un calcolatore
è relativa alle seguenti macro- componenti:
hardware
è la struttura fisica del calcolatore, costituita da
componenti elettronici ed elettromeccanici
software
è l’insieme dei programmi che consentono all’hardware di
svolgere dei compiti utili
è il software comprende il software di base (tra cui il
sistema operativo) e il software applicativo
Alessandro Di Nuovo
4
Organizzazione a livelli
n  Hardware e software sono organizzati a
livelli (o strati).
n  Ogni livello usa i servizi offerti dal livello
sottostante.
n  Un utente agisce usando i servizi del
livello software applicativo (web,
videogames, programmi di grafica etc)
n  Le applicazioni a loro volta usano i servizi
del software di base (es. sistema
operativo)
Utente
Software applicativo
Software di base
(sistema operativo)
n  Il livello software di base, utilizza il livello
hardware.
Hardware
Alessandro Di Nuovo
5
Vista funzionale di un Calcolatore
Ambiente
Trasferimento
Controllo
Elaborazione
Memorizzazione
Alessandro Di Nuovo
6
Architettura di un PC
Il diagramma mostra lo
schema logico
dell’architettura di un
personal computer: la
cornice tratteggiata
include gli elementi che si
trovano all’interno della
scheda madre
Tra le periferiche indicate:
tastiera, mouse,
stampante e monitor
sono dispositivi
esterni
Hard Disk e Floppy Disk
sono solitamente
dispositivi interni, cioè
si trovano fisicamente
alloggiati all’interno
del cabinet che
racchiude il PC
Alessandro Di Nuovo
7
7
Tipologia dei calcolatori
n Computer multiutente
è Supercomputer
è Mainframe e server
è Reti
ü Minicomputer
ü Personal computer
ü Terminali
n Personal computer (PC)‫‏‬
è Desktop e workstation
è Notebook
è Tablet, palmari, PDA
Alessandro Di Nuovo
8
Server
n Svolgere funzioni centralizzate
è Gestione contabilità
è Controllo dei magazzini
è …
n Affidabilità
n Storage
Alessandro Di Nuovo
9
Reti
n Minicomputer (o server)‫‏‬
n Personal computer (PC)‫‏‬
n Terminali
è Terminali stupidi (ovvero dotati solo del
necessario hardware per permettere all’utente la
connessione alla rete, es. bancomat, postazioni
vendita di biglietti, etc…)
è Terminali intelligenti (dotati di capacità
computazionale propria, es.
Alessandro Di Nuovo
10
Supercomputer
n  Negli anni ‘80 sembrava che fossero destinati a essere
soppiantati
n  1996 Intel
è 7000 processori
è In un secondo poteva effettuare un numero di operazioni pari a
quelle che 265 milioni di persone riuscirebbero ad eseguire in 125
anni utilizzando una calcolatrice manuale
Alessandro Di Nuovo
11
Bluegene
n  Blue Gene è il nome di un'architettura progettata per realizzare la
nuova generazione di supercomputer a parallelismo massivo
sviluppati per lavorare con potenze di calcolo che vanno dalle
decine di teraflops per arrivare fino al petaflops. Il più potente
computer BlueGene attualmente sviluppa 478 teraflops. Il
progetto è una cooperazione del United States Department of
Energy (che parzialmente finanzia il progetto), industrie (IBM in
particolare) e Università. Vi sono cinque progetti Blue Gene, tra i
quali il Blue Gene/L, il Blue Gene/C e il Blue Gene/P.
Desktop, Workstation e Notebook
Workstation Rack –
per gentile concessione della Dell
Alessandro Di Nuovo
13
I più piccoli
n  Tablet PC
n  Smartphones‫‏‬
n  Computer palmari
n  PDA (Personal Digital Assistant)
Alessandro Di Nuovo
14
Componenti di un Calcolatore
Alessandro Di Nuovo
15
Scheda
Connettori per madre
schede di I/O
aggiuntive
Zoccolo per
la CPU
Connettori per la
memoria
Connettori per dischi
fissi
08/
Alessandro Di Nuovo
Informatica e cultura dell’informazione
– capitolo 1 – Il
1616
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
Altoparlanti
Alessandro Di Nuovo
Interfacce di
I/O
Memoria di massa
1717
Bus e Master-Slave
n Il bus è una linea a cui sono
contemporaneamente connesse le unità del
calcolatore e che consente il trasferimento
di dati tra tali unità
è Problema: contesa su un mezzo condiviso!
è Soluzione: CPU = master, periferiche = slave
Alessandro Di Nuovo
18
Master-slave : pregi
n Semplicità: 1 solo insieme di linee di
connessione ∀ # di dispositivi
n Estendibilità: nuovi dispositivi possono
essere aggiunti tramite un’interfaccia al bus
senza influenzare l’HW preesistente
n Standardizzabilità: definizione di normative
che consentono a periferiche di costruttori
diversi di interagire correttamente
Alessandro Di Nuovo
19
Master-slave: difetti
n Lentezza: l’uso in mutua esclusione del bus
inibisce almeno parzialmente la
parallelizzazione delle operazioni di
trasferimento di dati tra dispositivi
n Limitata capacità: al crescere del numero di
dispositivi la presenza di una sola linea
comporta un limite alla capacità di trasferire
dati
n Sovraccarico della CPU: l’unità centrale
viene coinvolta in tutte le operazioni di
trasferimento di dati
Alessandro Di Nuovo
20
Schema di riferimento
Alessandro Di Nuovo
21
Tipi di bus
n Bus dati: utilizzato per trasferire dati (es. fra
memoria e CPU, fra CPU e interfacce di I/O)‫‏‬
n Bus indirizzi: che identifica la posizione delle celle di
memoria un cui la CPU va a scrivere o leggere
n Bus di controllo: in cui transitano i segnali di
controllo che consentono di selezionare le unità
coinvolte in un trasferimento dati (sorgente e
destinazione), di definire la direzione dello scambio
(scrittura o lettura)‫‏‬
n Tutti e tre i tipi di bus sono necessari per
interconnettere le unità. IL BUS propriamente detto
è quindi l'insieme di tutte linee che compongono i
bus dati, indirizzi e controllo.
Alessandro Di Nuovo
22
Archittettura di Von Neumann
n Burks, Goldstein e Von Neumann sono stati i primi
a proporre che il codice del programma potesse
essere memorizzato nella stessa memoria dei dati
n Memoria indifferenziata per dati o istruzioni
n Solo l'interpretazione da parte di CPU stabilisce se
una data configurazione di bit è da riguardarsi
come un dato o come un'istruzione
Alessandro Di Nuovo
23
Collo di bottiglia di Von Neumann
n L’organizzazione di Von Neumann è quella
più popolare
n Consente al processore di manipolare i
programmi in modo più semplice
n Svantaggi
è La limitata larghezza di banda della memoria
ha un’impatto negativo sulla velocità di
esecuzione dell’applicazione
è Questo fenomeno è noto come “Von Neumann
bottleneck”
Alessandro Di Nuovo
24
CPU
Central Processing Unit
Unità Centrale di Elaborazione
Alessandro Di Nuovo
25
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/18. Correzioni successive
hanno portato a fissare X=18/24. Questo vuol
dire che c’è un incremento di circa il 40/60%
all’anno.
Alessandro Di Nuovo
26
# Transistor [CPU Intel]
Numero di transistor integrati
1'000'000'000
100'000'000
10'000'000
1'000'000
Andamento previsto dalla legge di Moore: il
numero di transistor integrati in un chip
raddoppia ogni 24 mesi
100'000
Anno
10'000
1978
1982
1986
1990
1994
Alessandro Di Nuovo
1998
2002
2006
2727
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à) a prezzi 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.
•  L’esistenza di tante aziende fa crescere la competitività
che, a sua volta, stimola il progresso della tecnologia e lo
sviluppo di nuove tecnologie.
Alessandro Di Nuovo
2828
La memoria
Alessandro Di Nuovo
29
La memoria
Supporto alla CPU: deve fornire alla CPU dati
e istruzioni il più rapidamente possibile
Archivio: deve consentire di archiviare dati e
programmi garantendone la conservazione
e la 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
Alessandro Di Nuovo
3030
Criteri di caratterizzazione di una memoria
Velocità
•  tempo di accesso (access time)
(quanto passa tra una richiesta e la relativa risposta)
•  velocità di trasferimento (transfer rate)
(quanti byte al secondo si possono trasferire)
Volatilità
•  cosa succede quando la memoria non è alimentata?
•  per quanto tempo i dati vi rimangono immagazzinati?
Capacità
•  quanti byte può contenere? qual è la dimensione massima?
• 
Costo (per bit)
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
associativa: indicato il dato, la memoria risponde indicando l’eventuale
posizione che il dato occupa in memoria.
Alessandro Di Nuovo
3131
La memoria centrale
Alessandro Di Nuovo
32
La memoria centrale (RAM)
Mantiene al proprio interno i dati e
le istruzioni dei programmi in esecuzione
Memoria ad accesso “casuale”
Tecnologia elettronica
veloce ma volatile e costosa
Due “eccezioni”
•  ROM: elettronica ma permanente e di sola
lettura
•  Flash: elettronica ma non volatile e riscrivibile
Alessandro Di Nuovo
3333
Indirizzi di memoria
I bit nelle memorie sono raggruppati in celle:
tutte le celle sono formate dallo stesso numero di bit;
una cella composta da k bit, è in grado di contenere una
qualunque tra le 2k combinazioni diverse di bit.
Ogni cella ha un indirizzo:
serve come accesso all’informazione;
in una memoria con N celle gli indirizzi vanno da 0 a N–1.
La cella è l’unità indirizzabile più piccola.
In quasi tutti i calcolatori è di 8 bit (un byte).
I byte vengono raggruppati in parole (che oggi sono
di 32/64 bit), su cui la CPU esegue le operazioni.
Alessandro Di Nuovo
3434
Organizzazione della memoria
0
0
0
1
1
1
2
2
2
3
3
3
4
4
4
5
5
5
6
6
7
7
6 parole da 16 bit
8 parole da 12 bit
8
9
10
12 parole da 8 bit
Alessandro Di Nuovo
11
3535
Memoria e collegamenti con bus
•  Viene selezionata la parola
di indirizzo 0110due
•  il contenuto è 01101100;
•  l’operazione è di lettura
(load) o di scrittura (store) a
seconda dei comandi
presenti sul bus di controllo
0110
Bus indirizzi
DECODIFICATORE
linee di
selezione parola
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
Alessandro Di Nuovo
36
Memoria vs. CPU
Le CPU sono sempre state 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.
Alessandro Di Nuovo
3737
Le memorie gerarchiche
Memorie di gran 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.
Alessandro Di Nuovo
3838
Una gerarchia di memoria
Memoria formata da una MPV e una 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à!
Alessandro Di Nuovo
3939
Gerarchia di memoria
Sistema di
memoria
CPU
Memoria piccola
e veloce
Livello 1
Trasferimento
di dati
Livello 2
Memoria grande
e lenta
Alessandro Di Nuovo
40
Il principio di località
Località spaziale: quando si accede all’indirizzo
A, è molto probabile che gli accessi
successivi richiedano celle vicine ad 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à temporale: quando si accede
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.
Alessandro Di Nuovo
4141
Come si sfrutta la località
Diversi approcci a seconda del tipo di località:
località temporale:
i dati prelevati dalla MGL vengono conservati
nella MPV il più a lungo possibile;
località spaziale:
quando si copia un dato dalla MGL alla MPV, si
copiano anche i dati vicini (blocco).
La frequenza di successo (hit ratio – h) cresce
fino a superare il 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!
Alessandro Di Nuovo
4242
L’effetto della località
Effetto del principio di località sull’esempio di
prima:
tempo di accesso alla cache pari a 1 unità (TAC = 1);
tempo di accesso alla memoria (detto anche miss penalty, ovvero
penalità di fallimento) pari a 10 unità (TAM = 10);
frequenza di successo (hit ratio, h = 0.99);
frequenza di fallimento (miss ratio, m = 1 – h = 0.01);
tempo di accesso medio pari a:
TA = h * TAC + m * TAM
TA = 0.99 * 1 + 0.01 * 10 = 1.09
Alessandro Di Nuovo
43
La memoria centrale
Tecnologia elettronica (veloce ma volatile)
Gerarchia di memoria:
ai livelli più alti corrispondono le tecnologie
più veloci ma anche 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
Alessandro Di Nuovo
44
Una gerarchia di memoria
Ottenuta per “generalizzazione”
dell’applicazione del principio di località e
tipicamente costituita da
1. 
2. 
3. 
4. 
5. 
registri contenuti nella CPU (qualche KB)
cache (da circa 32KB a circa 4096KB)
memoria principale (da circa 512MB a qualche GB)
dischi fissi (da qualche centinaio di GB a qualche TB)
nastri magnetici e dischi ottici (da qualche centinaio di GB a
qualche TB per ogni supporto)
Man mano che ci si sposta verso il basso
nella gerarchia aumenta il valore dei
parametri fondamentali:
aumenta il tempo di accesso;
aumenta la capacità di memorizzazione;
ma diminuisce il costo per bit.
Alessandro Di Nuovo
45
RAM
Supporti esterni
tecnologia
magnetica
(HD esterni)
tecnologia
ottica
(CD, DVD)
tecnologia
elettronica
(flash disk)
Involucro esterno del calcolatore (case)
Cache II liv
Scheda madre (motherboard)
Cache I liv
Circuito Integrato (chip)
Registri
CPU
Una gerarchia di memoria
Disco fisso (hard disk)
tecnologia magnetica
Alessandro Di Nuovo
4646
La memoria Cache
Alessandro Di Nuovo
47
Caratteristiche dei diversi livelli
Livello
Capacità
Tempo di
accesso
Transfer rate
(GB/s)
Registri
~ 1 KB
~ 0.2 ns (1 ciclo
di clock)
–
Cache I livello
~ 32 KB
~ 0.4 ns (2/4
cicli di clock)
–
Cache II livello
~ 1/2 MB
~ 1/2 ns (5/10
cicli di clock)
~ 100
Cache III livello
~ 2/8 MB
~ 5 ns
~ 50
Memoria
centrale
~ 2/8 GB
~ 50 ns (1ª
parola richiesta)
~ 10 ns (parole
successive)
~ 5/10
Dischi interni
> 300 GB
~ 10 ms
0.15/0.6
Dischi esterni
> 300 GB
~ 10 ms
~ 0.05
Alessandro Di Nuovo
48
La memoria virtuale
Funzione del Sistema Operativo
Simula la presenza di maggiore memoria fisica utilizzando l’HD per
permettere a più programmi di essere caricati “contemporaneamente”.
Alessandro Di Nuovo
49
Scarica