una memoria cache

Transcript

una memoria cache
Le Memorie interne: RAM, ROM, cache
Appunti per la cl. IV sez. D a cura del
prof. Ing. Mario Catalano
1
Le memorie

Cosa vorremmo :
 una
memoria veloce
 abbastanza grande da contenere tutti i dati e i
programmi che servono
 persistente (o non volatile) cioè capace di mantenere il
suo contenuto anche in assenza di alimentazione
elettrica
 di basso costo
2

Cosa può fare la tecnologia ?
 Memorie
relativamente piccole e veloci,
volatili, a costo medio alto

RAM: lettura e scrittura nell’ordine delle decine
di nanosecondi per parola
 Memorie
grandi, molto capienti (decine di
GB), persistenti e lente
Dischi rigidi : lettura e scrittura nell’ordine di
alcuni millisecondi per blocco (qualche KB)
 Nastri magnetici, DVD

3

I computer quindi hanno supporti di memorizzazione
di più tipi:




una memoria centrale, tipo RAM (random access memory):
contiene i programmi durante la loro esecuzione ed i dati
relativi
 altrimenti il processore sarebbe per la maggior parte del
tempo fermo in attesa di dati da/per la memoria
una o più memorie di massa (dischi etc.): che mantengono
in modo persistente tutti i dati ed i programmi in attesa di
essere eseguiti
dei buffer: memorie “temporanee” utilizzate nei trasferimenti
tra dispositivi con velocità diverse (es. si trovano nelle
stampanti)
una memoria cache: contiene istruzioni e dati prima che
siano utilizzati dal processore
4
Struttura di una RAM elettronica
Bus
indirizzi
p
r
o
c
e
s
s
o
r
e
00003
0
1
2
1 0 1 1 0 0 3
4
...
Parola (word):
gruppo minimo
di bit
indirizzabili
Indirizzo
Dato letto o
da scrivere
Bus
controllo
1 0 1 1 0 0
Bus dati
memoria
5
Struttura di una RAM elettronica 2

Caratteristiche:
 accesso
ai dati in modo diretto e in tempi
veloci
 volatilità (perdita di informazione in
assenza di alimentazione elettrica)

Componenti basilari:
 celle
o locazioni di memoria, ciascuna delle
quali ha un indirizzo.
6
Flip-flop
L’unità fondamentale
della memoria è il
FLIP-FLOP.
E’ un circuito
elettronico che
consente di
memorizzare 1 bit
per ciascuno
Memorizzazione: Uscita costante finchè un valore su un input non lo
modifica
Lettura: lettura dell’uscita
Scrittura di un nuovo valore: modifica di un input
7
Cella di memoria


E’
composta
da un certo
numero di
Flip-Flop: di
solito 8
(memorizza
1 byte)
Ognuna ha
un indirizzo
8
Operazioni sulla memoria principale

Le operazioni che si effettuano sulla memoria sono
operazioni di lettura e scrittura

Entrambe presuppongono l’utilizzo di un indirizzo che
identifica
univocamente
la
cella
interessata
all’operazione.

L’operazione di scrittura è distruttiva,
distruttiva cioè cancella
l’informazione precedentemente contenuta nella cella

L’operazione di lettura preserva il contenuto della cella
indirizzata: all’esterno della memoria centrale viene
trasferita copia dell’informazione
9
Architettura della memoria principale



Registro indirizzi
Decodificatore indirizzi
BUS

Il registro indirizzi contiene l’indirizzo
della cella che deve essere acceduta;
la sua dimensione deve essere tale da
permettere che tutte le celle di
memoria possano essere indirizzate
Esempio:
Esempio un registro a 16 bit indirizza
65536 posizioni di memoria
Il decodificatore di indirizzi è un
dispositivo in grado di selezionare la
cella il cui indirizzo corrisponde a
quello contenuto nel registro indirizzi
Il registro dati contiene l’informazione
scritta/letta sulla/dalla cella indirizzata;
la dimensione del registro è uguale a
quella delle celle di memoria
Memoria centrale
Registro dati
10
La memoria centrale
È la memoria di
lavoro del computer
La quantità di RAM disponibile influenza in modo notevole le
prestazioni del computer.
11
La memoria centrale
La RAM può essere di due tipi:
- SRAM o RAM statica
- DRAM o RAM dinamica.
I chip di SRAM sono molto veloci ma costosi, per cui sono
usati generalmente per le memorie cache.
I chip DRAM sono meno costosi, ma tendono a disperdere la
carica nel tempo, per cui è necessario provvedere
periodicamente al refresh della memoria, bisogna cioè
riscrivere continuamente le informazioni nelle celle di
memoria (già dopo un millesimo di secondo non è più
possibile distinguere il valore dei bit); questa operazione deve
essere eseguita continuamente.
12
RAM DINAMICHE (DRAM)





La DRAM usa delle capacità interne per memorizzare i dati.
Le capacità perdono la loro carica dopo un certo intervallo di
tempo. Queste capacità necessitano di un costante refresh per
mantenere inalterata l'informazione memorizzata.
Il risultato finale è che tra due accessi consecutivi alla memoria,
una carica elettrica viene mandata a rinfrescare la capacità del
chip di memoria affinché il dato venga mantenuto nello stato
logico corretto.
Durante il refresh della memoria non è possibile accedere ad
essa, rallentando, dunque, le sue prestazioni in termini di
accessi in lettura/scrittura.
Le DRAM sono caratterizzate da tempi di accesso (tempi di
13
lettura/scrittura) che vanno dai 10ns ai 70 ns.
RAM DINAMICHE (DRAM)


Una svolta importante si è avuta
con le SDRAM (Synchronous
DRAM), in grado di lavorare con un
clock di sincronizzazione;
evoluzioni successive hanno
portato il bus a funzionare alle
frequenze di 66, 100, 133 e 150
MHz, da cui la classificazione dei
moduli di memoria in PC66, PC100,
PC133, PC150.
Le DDR (double data rate) sono un
tipo di SDRAM che lavorano sui
due fronti del clock, che è come se
lavorassero a clock doppio (da cui
il nome).
14
Packaging
delle RAM
Le RAM come packaging sono realizzate da moduli, ognuno dei
quali è formato dai chip di memoria. I moduli sono del tipo:
 I moduli SIMM (Single InIine Memory Module) sono il tipo più
vecchio, hanno un connettore a 72 pin e funzionano con bus
a 32 bit; venivano usati per le SDRAM.
 I moduli DIMM (Dual InIine Memory Module) operano con bus
a 64 bit; quelli a 168 pin sono stati usati per la seconda
generazione di chip SDRAM, quelli a 184 pin per DDR, quelli
a 200 pin per DDR e DDR2, quelli a 240 pin per DDR2 e
15
DDR3.
Ram DDR3-DIMM
(Double Data Rate Three Dual In-Line Memory Module) - 240 pin –
(1.5 V)
Le Ram DDR3-DIMM appartengono alla famiglia
delle SDRAM, Syncrhonous Dynamic Random
Access Memory, (come pure le altre DDR viste
fin’ora). Rispetto alle DDR2 c’è un aumento della
frequenza di clock e una diminuzione della
tensione di alimentazione. Ciò consente
prestazioni migliori, consumi ridotti e migliore
dissipazione termica.
16
RAM STATICHE (SRAM)




In questo tipo di RAM ogni cella è
costituita da un "flip flop" realizzato
da due porte logiche.
Consente di mantenere le
informazioni per un tempo
indefinito, è molto veloce,
consuma poco e quindi dissipa
poco calore. La necessità di usare
molti componenti, però, la rende
molto costosa e difficile da
impacchettare.
E’ solitamente usata per le
memorie cache, dove elevate
velocità e ridotti consumi sono
caratteristiche fondamentali.
Sono caratterizzate da tempi di accesso
dell'ordine delle decine di nanosecondi (da 6
ns a 25 ns).
A differenza delle
DRAM, nelle
SRAM non
occorre il
rinfresco
periodico.
Le SRAM sono
costose.
17
ROM - Read Only Memory




Il termine ROM significa Read Only Memory.
 Indicava originariamente il fatto che l'unico tipo di accesso in
queste memorie è la lettura (ovviamente la prima scrittura
deve essere possibile).
Esistono particolari ROM che possono essere anche riscritte.
In ogni caso tutte le ROM sono caratterizzate dal fatto che
l'informazione in esse contenute rimane anche quando manca
la corrente.
Nelle ROM che possono essere riscritte, l'informazione rimane
fino alla successiva scrittura.
18
ROM - Read Only Memory

Le ROM vengono in genere utilizzate per memorizzare
programmi e dati di configurazione essenziali per il
funzionamento del computer che devono essere
memorizzati anche quando il computer è spento.

Esistono differenti tipi di ROM:
 ROM non programmabili
 PROM. ROM Programmabili
 EPROM. Erasable Programmable ROM
 EEPROM. Electrical Erasable Programmable ROM
 Flash Memory
19
ROM, PROM, EPROM



ROM: sono già predisposte in
fabbrica. Hanno alte capacità bassi
costi.
PROM: sono programmabili con un
dispositivo da laboratorio. Possono
essere programmate una sola volta.
EPROM: sono programmabili con
un dispositivo da laboratorio. Hanno
una finestra di quarzo tramite cui è
possibile esporre il chip ai raggi
U.V. e “cancellare” il contenuto.
20
EEPROM – FLASH MEMORY


EEPROM: come le EPROM, ma cancellabili
senza togliere dalla piastra il chip. I tempi di
cancellazione sono molto più lunghi di quelli
di lettura.
Flash Memory: come le EPROM, ma la
scrittura avviene per blocchi, molto
velocemente.
 Non può essere usata come RAM per via
della scrittura a blocchi
 Si chiama flash perché il microchip è
organizzato in sezioni di celle cancellabili
in un colpo solo (flash).
21
BIOS (firmware)


è scritto di solito nel linguaggio
assembler nativo della famiglia
di CPU utilizzata.
attualmente è scritto su memorie
EEPROM riscrivibili, quindi può
essere modificato e aggiornato:
generalmente i costruttori
mettono a disposizione nuove
versioni di BIOS per correggere
difetti o aggiungere supporto a
periferiche hardware non previste
inizialmente.
22
Basic Input-Output System o BIOS

è il primo codice che viene eseguito da un
Computer dopo l'accensione, ed ha tre funzioni
principali:
 Eseguire
una serie di test diagnostici per controllare
lo stato di funzionamento dell'hardware e segnalare
eventuali guasti rilevati tramite un codice sonoro
(beep code);
 Localizzare il sistema operativo e caricarlo nella
RAM;
 Fornire una interfaccia software per l'accesso alle
periferiche e all'hardware del PC.
23
Firmware sulle schede di
espansione



Un computer può contenere diversi chip contenenti BIOS
firmware.
Il BIOS della motherboard contiene di solito il codice per
accedere a componenti hardware fondamentali
essenziali come la tastiera, i floppy drive, i controller
degli hard disk ATA, dispositivi USB ed altri dispositivi di
archiviazione.
Alcune schede di espansione come SCSI, RAID, di rete
e video spesso posseggono un loro BIOS che
espandono o sostituiscono il codice standard presente
nel BIOS della motherboard per quel componente.
24
BIOS
Le routine di avviamento si occupano dell’inizializzazione
del PC:
Ne effettuano un rapido controllo di affidabilità, per
accertare che tutte le componenti hardware siano
perfettamente funzionanti
Inizializzano i chip ed i dispositivi standard collegati al
computer
Controllano quali dispositivi opzionali sono collegati
Caricano il sistema operativo dal disco (caricatore di
bootstrap)
www.itimedi.it
25
BIOS
Il caricatore di bootstrap ha la funzione di leggere un
programma di lancio dal disco e di trasferire ad esso il
controllo
Su un disco di sistema (bootable),
bootable il programma
controlla l’esistenza di un sistema operativo; in caso
affermativo, i file necessari all’inizializzazione
vengono caricati in memoria assieme al relativo file
interprete dei comandi
Il ROM BIOS è la parte della ROM attiva quando il
computer è al lavoro: il suo ruolo è quello di fornire
un insieme di servizi di base richiesti per il
funzionamento delle periferiche
www.itimedi.it
26
Memoria Cache

Lo scopo della memoria cache è quello di reperire informazioni
utilizzate recentemente senza doverle nuovamente prelevare
dalla RAM. La memoria cache è generalmente gestita
27
direttamente dalla CPU tramite bus privati.
Memoria Cache

Sono definibili due tipi di cache dette:
 L1, di dimensioni minori (8KB...64KB): è in genere
contenuta all'interno del Core del processore e opera alla
frequenza di clock;
 L2 (nelle CPU correnti compresa tra 256KB e 1MB): a
seconda del tipo di architettura è posta o all'interno del Core
del processore oppure sulla motherboard; opera a
frequenze differenti a seconda del tipo di architettura,
variabili tra la frequenza di bus e quella di clock.
 Quando si parla di L3 cache s’intende un’espansione di L2

Il processore cerca prima nella cache interna L1 e poi in
quella esterna L2.
28
Memoria Cache

L'utilizzo della memoria cache rispetto la RAM è più
vantaggioso perché:
 il bus di indirizzi e dati è locale e non deve essere
utilizzato quello comune, che potrebbe essere
occupato da altri dispositivi, ritardando l'accesso
 il tempo di accesso alla cache per lettura/scrittura è
molto più basso di quello della RAM (generalmente il
tempo di accesso medio alla RAM è 50-70ns, mentre
si può arrivare a valori inferiori a 10ns per accedere
alla memoria cache).
29
Memoria Cache



L'uso della memoria cache prevede, però, opportuni
accorgimenti dovuti al fatto che la dimensione di una
cache è notevolmente inferiore a quella di una RAM
Quando la cache si riempie, è necessario sovrascrivere
alcuni dati contenuti nella cache, per far spazio a nuovi
dati da memorizzare.
In particolare, si adotta la politica di sovrascrivere i dati
più vecchi, ossia quelli non utilizzati da più tempo.
30
Memoria Cache

La gestione della cache, può essere formalizzata nella
seguente maniera:
 la CPU necessita di un particolare dato
 la CPU ricerca in dato nella cache
 se lo trova, lo legge e lo utilizza (cache hit)
 se non lo trova (cache miss), lo reperisce nella RAM e
lo copia nella cache nella locazione più "vecchia", ossia
da più tempo non utilizzata.
31
La memoria CMOS
Tutti i PC sono dotati di una memoria permanente
speciale, alimentata da una batteria
A questa memoria si fa riferimento con il termine CMOS
(Complementary MetalOxideSilicon)
ilicon ed in essa sono
immagazzinati i dati relativi al clock in tempo reale ed
alla configurazione del sistema e delle sue periferiche
Parte della memoria CMOS viene impiegata per
conservare le specifiche relative al tipo di disco fisso e
all’ammontare di memoria disponibile; al momento del
boot,
boot il BIOS legge le informazioni di configurazione in
CMOS e le utilizza per inizializzare il sistema
www.itimedi.it
32
FINE
33