I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC
03/06/17
MEMORIE per PC
Sommario
La gerarchia della memoria ...................................................................................................................... 1
Nozioni base sulla latenza e sulla capacità della banda dati ........................................................................ 2
Tipi di memoria recenti ............................................................................................................................ 3
Memoria Sdram............................................................................................................................... 3
Memoria Ddr - Sdram ...................................................................................................................... 4
Memorie DDR2................................................................................................................................ 5
La gerarchia della memoria
La memoria è organizzata secondo diversi livelli gerarchici, ognuno dei
quali assolve ad uno scopo specifico:
La memoria di sistema serve come cache per il file di paginazione e
swap virtuale situato sul disco rigido.
La cache di secondo livello (L2) funge da intermediario tra l'unità di
calcolo e la memoria di sistema;
Inoltre tutti i processori possiedono una più veloce cache di primo
livello (L1) integrata al loro interno.
La gerarchia delle cache ha senso in quanto ogni livello, partendo dai registri all'interno
della Cpu scendendo fino al disco rigido, è caratterizzato da un prezzo decrescente e da una
dimensione crescente poiché i principi fondamentali su cui si basano le memorie cache
funzionano bene, nei computer moderni i sistemi di storage dei dati hanno avvicinato di molto le
velocità dei registri pur mantenendo la capacità di un disco rigido.
I principi fondamentali alla base delle architetture delle cache sono il Principio
della Localizzazione Temporale e quello della Localizzazione Spaziale.
 Il primo afferma che nel momento in cui un programma si appoggia ad
una determinata locazione di memoria è molto probabile che farà
riferimento ad essa anche in un momento successivo.
 Il secondo principio afferma invece che un'applicazione tende ad
utilizzare e fare riferimento a locazioni di memoria contigue o vicine le
une alle altre.
Quando la memoria cache riceve una richiesta per dati che non sono disponibili al
suo interno si parla di cache miss (mancato hit nella cache). Questo evento è inevitabile
quando il processore richiede per la prima volta il codice di un'applicazione. I cache miss
forzati sono anche conosciuti con il termine mancato hit per partenza a freddo o mancato
hit per primo riferimento. Si verificano situazioni di cache miss anche quando il processore
richiede una quantità di dati che non possono essere contenuti all'interno della cache per
motivi di spazio così che si rende necessario spostare le informazioni per poi tornare a
recuperarle in un secondo momento; in queste situazioni si parla di mancato hit della
cache per capacità.
Abbiamo descritto queste nozioni base per mettere in evidenza l'importanza della
memoria: la memoria di sistema è pensata e realizzata con lo scopo di
minimizzare l'effetto collo di bottiglia che la memoria virtuale 1 ha sulle
prestazioni generali del sistema.
1
Si tratta di una porzione di disco fisso utilizzata come se fosse memoria di sistema. La memoria virtuale possiamo considerarla
come una emulazione, tramite software, della presenza di memoria RAM superiore a quella fisica presente nel nostro
sistema, effettivamente installata. In parole semplici viene simulata la presenza di altra memoria utilizzando il disco
rigido e tecniche di compressione. L’unica differenza sta nel differente tempo di accesso.
1
I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC
03/06/17
L'efficienza dipende poi dal numero e dal tipo di cache miss generati dal software in
uso. Un programma che occupa uno spazio ben più grande della dimensione della cache
L2 sarà influenzato in modo maggiore dalle prestazioni della memoria di sistema rispetto
ad uno che occupa la metà della cache, perché il primo genera cache miss di capacità
nella L2, cosa che non accade con il programma più piccolo. Maggiori sono i mancati hit
della cache di capacità e di conflitto, maggiore sarà l'impatto della memoria di sistema
sulle prestazioni generali.
Nozioni base sulla latenza e sulla capacità della banda dati
Con il termine latenza si indica il tempo necessario a completare
un'operazione sulla memoria, dall'inizio alla fine del processo.
La capacità della banda dati è, invece, la misura della quantità di
informazioni che possono fluire al secondo attraverso il canale da e verso la
memoria.
Per comprendere al meglio il funzionamento della memoria e i concetti appena descritti,
analizziamo in breve come funziona
la memoria Dram.
La Dram è costruita con
celle
di
transistor
e
condensatori
ordinati
all'interno dei chip, in colonne e
righe, organizzate a loro volta in
banchi. poiché i condensatori
perdono nel tempo il loro stato
di carica è necessario effettuare
un'operazione
di
ricarica
periodica: da qui il concetto di
refresh della memoria. Oltre a
questo ogni qual volta viene
letto un dato il condensatore
perde la sua carica; per questo
motivo i chip di memoria sono
dotati di un circuito chiamato
amplificatore di stato che
identifica il dato in lettura e lo
riporta allo stato originale dopo
la fase di accesso.
La
memoria
Dram
standard, quando riceve una
richiesta dati dal controller
principale
della
memoria,
identifica in primo luogo la riga
in cui si trova l'informazione.
Dopo questa fase deve essere
attivato l'amplificatore di stato
relativo a questa riga se
differente da quella dell'ultimo accesso e questa operazione richiede un po' di tempo.
Questo intervallo di tempo è indicato con tRP (Time Row Precharge, tempo di attivazione
della riga). Quindi intercorre un piccolo lasso di tempo durante il quale il segnale di riga si
stabilizza prima di poter impostare la colonna. Questo intervallo di tempo è conosciuto
come tRCD (Time Ras to Cas Delay; Ras: Row Access Strobe; Cas: Column Access
Strobe). A questo punto può essere effettuato l'accesso alla colonna e dopo un intervallo
2
I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC
03/06/17
di tempo tCAC ( Column Access Time) il dato richiesto viene inviato ai pin di uscita della
Dram.
La maggior parte delle migliorie introdotte nel disegno delle memorie Dram coinvolgono le
operazioni base svolte durante l'accesso alle informazioni con differenti package e con qualche
tecnica per aumentare l'efficienza. Una delle tecniche per ottenere una maggiore efficienza nel
recupero dei dati è la modalità Burst che, mediante la lettura anticipata delle colonne adiacenti a
quella appena letta, riesce a ridurre in modo drastico il tempo di latenza per letture sequenziali.
In questo modo la cache carica dati per blocchi
contigui; la modalità burst, nell'ottica del principio
della localizzazione spaziale, risulta quindi un
elemento di fondamentale importanza per le
prestazioni generali.
La memoria Fpm (Fast Page Mode Ram) e la
Edo (Extended Data Output Ram), che le è
succeduta per poco tempo, operavano in modalità
asincrona, utilizzando cioè un proprio segnale di
clock indipendente da quello del processore che,
insieme al controller della memoria, doveva
supervisionare a tutte le operazioni di trasferimento
dati.
Sdram è lo standard Dram definito
dal Jedec e aiuta a risolvere questo
problema
impiegando
il
Fsb
del
processore come segnale di clock per le
operazioni di input e output della
memoria.
La Sdram utilizza uno speciale registro che,
come una chiave, memorizza gli indirizzi di riga e
colonna del dato richiesto, così che la Cpu possa
proseguire l'esecuzione delle istruzioni nella pipeline
mentre attende l'arrivo dell'informazione. Poiché questa arriva sincronizzata sul fronte del Fsb, il
processore può programmare il rendez-vous dei dati con le istruzioni all'interno degli stadi di
esecuzione della pipeline.
La banda di trasferimento dati è altrettanto difficile da determinare: la capacità
massima teorica può essere calcolata moltiplicando il numero di bit trasferiti ad ogni ciclo
di clock per la frequenza di funzionamento della memoria; tuttavia, poiché la latenza non è
sempre pari a un ciclo di clock, possono trascorrere più cicli durante i quali non avviene
alcun trasferimento di informazioni. Possiamo quindi dedurre che questo tipo di calcolo
non fornisce un risultato accurato e che è particolarmente difficile ottenere una misura
reale di quale sia la latenza e la banda di trasferimento dati. Detto ciò cercheremo ora di
capire come analizzare queste caratteristiche per i moderni tipi di memoria.
Tipi di memoria recenti
Memoria Sdram
Il tipo di memoria più diffuso sui vecchi (età > 3 anni) PC è il Single Data Rate
(Sdr) Sdram che trasferisce i dati sul fronte di salita del segnale di clock. La Sdr Sdram,
oggi ormai fuori mercato, era disponibile in tre tipologie definite dalle specifiche Jedec:
Pc66, Pc100, Pc133. Queste vennero sviluppate perché nel momento in cui la Sdram
arrivò sul mercato sorsero molti problemi inerenti ai timing di funzionamento: moduli
certificati per essere Pc100 in realtà difficilmente funzionavano in modo corretto. In
seguito Intel sviluppò un proprio documento sulle specifiche Pc100, che ancora oggi risulta
3
I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC
03/06/17
essere la guida più completa sull’argomento. Pc133 è un'evoluzione dello standard Pc100
che implica il solo innalzamento della frequenza di funzionamento a 133MHz;
Con Pc66 ci si riferisce ai moduli di memoria Sdram che aderiscono alle specifiche originali
Jedec.
All'interno di questi stessi gruppi sono disponibili diverse caratteristiche: la Sdram con
controllo di parità indica moduli in grado di identificare eventuali errori nei dati se la scheda
madre e il chipset supportano l'impiego del bit di parità; la memoria Sdram Ecc possiede dei pin
extra ed è in grado di effettuare anche correzioni sui dati errati. Queste proprietà addizionali
comportano un costo aggiuntivo, ma sono generalmente impiegate solo per sistemi server e per
hardware destinati ad applicazioni mission critical ; per la maggior parte delle applicazioni sono
invece sufficienti normali moduli Sdram.
Esistono ancora un paio di termini per descrivere i moduli di memoria Sdram: Cas2 e
Cas3. Il termine Cas (Column Address Strobe) indica il numero di cicli (basati sul tempo tCAC)
necessari perché il segnale di Cas attivi la colonna desiderata all'interno della griglia di celle di
memoria. Un modulo Cas2 è più veloce di uno Cas3 ed è preferibile per operazioni di overclock;
inoltre determina un incremento significativo della banda i di trasferimento dati effettiva, anche se
le prestazioni i generali del sistema ne traggono poco beneficio.
Note tecniche:
Il timing dei moduli Ram sono elencati con un gruppo di tre cifre su un'etichetta applicata
al modulo stesso. La prima cifra indica la latenza Cas, la seconda il numero di cicli per il tRCD e il
terzo indica il tRP. I moduli Sdram tipicamente hanno timing di tipo 3-2-2 (moduli Cas3) o 2-2-2 (i
moduli Cas2).
Un'osservazione importante per chi intende utilizzare moduli Cas2 è di installare
un singolo modulo in quanto l'impiego di più moduli distinti risulta generalmente
nell'abbassamento, effettuato in automatico dalla scheda madre, a Cas3 dei timing di
accesso.
La latenza della Sdram è stimabile nell'ordine di 10 cicli del Front Side Bus (Fsb) per la
lettura della prima cella e di un ciclo per la lettura delle successive. Moltiplicando il
numero di cicli del Fsb che identificano la latenza della memoria per il moltiplicatore del
processore, si ottiene il numero di cicli processore che intercorrono prima che il dato richiesto
divenga disponibile: per un processore che funziona a 800 MHz con Fsb a 100 MHz il numero di
cicli processore che intercorreranno per una prima lettura è circa 80.
Nota sulla capacità
L’identificazione della capacità di memoria di un modulo DIMM2 avviene attraverso le informazioni
del chip SPD (Serial Presence Detect), una piccola eprom che contiene tutti i parametri operativi
necessari. Il formato delle informazioni presenti nel chip SPD è stato fissato dal JEDEC,
organizzazione che raggruppa i principali costruttori di memorie RAM. La non conformità dei dati
presenti su tale chip è spesso causa di mancati riconoscimenti del corretto formato del modulo o
della presenza dell’intero modulo.
Memoria Ddr - Sdram
La memoria Ddr (Double Data Rate) Sdram è molto simile a quella Sdr Sdram,
ma con la caratteristica di trasferire le informazioni sia sul fronte ascendente che su quello
discendente del segnale di clock. Gli standard per i moduli Ddr I Sdram sono Pc1600
DIMM è l’acronimo di Dual In Line Memory Module ed è il formato di memoria per i PC, mentre SODIMM
è l'acronimo di Small Outline Dual In-line Memory Module ed è il formato dei moduli di memoria utilizzati sui
notebook
2
4
I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC
03/06/17
(200MHz Ddr), Pc2100 (266 MHz), Pc2700 (333 MHz) e Pc3200 (DDR400: 533 MHz),
PC3700 (667 MHz) e oltre.
Memorie DDR2
Uscite sul mercato nel corso del 2004, le memorie Ddr2 si preparano a sfondare, sia nel
segmento Pc desktop sia nei dispositivi portatili, anche se le specifiche sono in continua
evoluzione.
Il nuovo standard per le memorie di sistema ha debuttato nel 2004 sugli adattatori grafici
Nvidia della serie GeForce FX e si appresta ora a entrare anche nel mercato di massa.
Oltre a piattaforme video, ormai anche molte schede madri presenti sui cataloghi dei
produttori sfruttano memoria DDR2.
Dai sistemi domestici dedicati al gioco fino ai server, le memorie Ddr2 consentono di
raggiungere prestazioni nettamente superiori a quelle fornite dalle attuali memorie. Le Ddr
II sono infatti in grado di fornire, a parità di frequenza, una banda passante doppia
rispetto alle odierne Ddr. I nuovi moduli, con tensione di alimentazione di 1,8 V,
garantiscono un transfer rate di 533 Mbps, estendibile a 667 Mbps per i sistemi server o
per particolari soluzioni che richiedano un ulteriore incremento di prestazioni.
Attualmente sono sempre di più i produttori in grado di disporre di quantitativi ingenti di
DDR2 conformi agli standard JEDEC3.
Samsung è stato il primo produttore a inviare ai maggiori costruttori di
chipset un campione di memoria Ddr2 da 512 Mbit conforme alle
specifiche del Jedec, l’organismo preposto al controllo degli standard
delle memorie.
Hynix produce dal 2004 memoria DDR2 con processo produttivo a 0.11 micron, con
3
JEDEC = Joint Electronic Device Engineering Council
5
I.S. “P. Calamandrei” – Dipartimento di Informatica – Laboratorio di Elettronica e TLC
03/06/17
frequenze di clock di 533 e 667 Mhz e capacità complessiva di 512 Mbytes oppure 1
Gbyte; il package utilizzato è quello Fine-Pitch Ball Grid Array.
Attualmente si trovano in vendita a prezzi poco più che doppi rispetto alla DDR, moduli di
memoria DDR2 (di solito venduti a coppie con taglio 512 MB per poter sfruttare le
piattaforme HW a doppio canale) denominati DDR2 PC3200 (400 MHz), DDR2 PC-4200
(533 MHz) e DDR2 PC-5400 (667 MHz) entrambi con alimentazione a 1,8V , package a
240 pins e CAS a valori 3 o 4. Sono già in produzione chip di memoria PC-6400 (800 MHz):
I suddetti chip sono destinati ai futuri moduli di memoria PC2-6400, che offriranno una banda passante di
12,8 GB/sec in modalità dual-channel calcolando 1KB=1000 byte come fanno i produttori, oppure 11,9
GB/sec calcolando 1KB=1024 byte. Occorre dire che per adesso nessun chipset in commercio è in grado di
supportare questo tipo di memorie che sono quindi da considerarsi ancora allo stato di prototipo.
NOTA: Le memorie DDR2 richiedono molta più attenzione, rispetto alle tradizionali, per
quanto riguarda la compatibilità. Occorre quindi comprarle in coppia per essere certi
dell’appartenenza dei due moduli allo stesso lotto, ma soprattutto occorre verificare presso
il sito del produttore della MB se la memoria scelta sia compatibile con il chipset presente
sulla scheda madre. Quindi niente acquisti affrettati o dettati solo dal prezzo del prodotto.
Esempio di specifiche per una DDR2 400MHz MT47H128M4BT-5E
Di MICRON Technology
Density:
512Mb
Width:
x4
Configuration:
128 Meg x 4
Voltage:
1.8V
Package:
FBGA
Package Type:
Lead Free
Pin Count:
92-ball
Clock Rate:
200 MHz
Cycle Time:
5ns
CAS Latency:
3
Data Rate:
DDR2-400
Part Status:
Production
6