Memorie: considerazioni su funzionamento e prestazioni
Seconda parte: vari tipi di DRAM
Il panorama delle RAM oggi: quale tecnologia, e perché . Dalla FPM DRAM alla SDRAM.
di Fernando Carello
Come annunciato nella puntata
precedente, vorrei effettuare una breve panoramica sui vari tipi di
architettura usati oggi per le memorie dei PC.
Infatti, se fino a poco tempo fa la situazione era, in questo campo,
piuttosto stabile, con le memorie cache costruite in tecnologia
Asynchronous SRAM e le memorie centrali in Fast Page Mode DRAM,
oggi la situazione è senz'altro più variegata: il mercato è in movimento, gli
standard sono in discussione, l'utente è in completa balì a dei costruttori e dei commercianti
(una situazione alla quale, purtroppo, ci stiamo abituando).
Data la consueta scarsità di informazioni attendibili riguardo ai vari prodotti, è forte il
rischio di effettuare la scelta sbagliata, con investimenti destinati ad "evaporare"
in poco tempo o che non portano ai risultati sperati.
Passiamo quindi in rassegna i vari tipi di RAM presenti sul mercato utilizzati per la memoria
centrale e la memoria video, con una breve descrizione
delle caratteristiche peculiari di ognuna; ci occuperemo delle memorie cache sul prossimo
numero di BETA.
Anzitutto, notiamo che l'acronimo DRAM (Dynamic Random Access
Memory) è comune
a tutte le tecnologie usate per le memorie centrali, e
individua un tipo di funzionamento basato su soft node, ovvero accumuli di carica
in capacità "parassite" esistenti in corrispondenza alla giunzione di ingresso dei transistor
costituenti le memorie: la presenza o assenza di carica in queste capacità rappresenta i
livelli logici "0" ed "1".
La tecnologia DRAM ha bassi costi al megabyte e permette elevate densità di impaccamento
(capacità /ingombro); tuttavia il funzionamento stesso dei soft node impedisce il raggiungimento
di tempi di risposta molto rapidi, il che obbliga il ricorso alla SRAM (Static
RAM, con un'architettura basata sul concetto di Flip-Flop) per memorie ad alta velocità
(esempio: cache memory).
Vedremo che per ovviare, almeno parzialmente, alla bassa velocità della DRAM, sono state messe
a punto diverse tecniche, cominciando proprio dalla Fast Page Mode DRAM, la più
anziana delle RAM sul cercato.
Peraltro, quasi tutte le tecniche utilizzate per migliorare le prestazioni di un sistema DRAM
sfruttano
il principio di localizzazione, che ho già illustrato nell'articolo precedente.
FPM DRAM
Premessa: la memoria è suddivisa in celle, organizzate in righe e colonne; dunque, per poter
accedere ad una determinata cella è necessario, tra l'altro, fornire gli indirizzi della riga
e della colonna cui appartiene. Dopo aver fornito questi indirizzi, è possibile asserire
opportuni segnali di conferma e leggere, o scrivere, il dato.
Purtroppo, per ragioni legate alla necessità di contenere in numero di piedini
(pin) dei chip, questi sono multiplexati: ovvero, gli stessi piedini vengono
usati per diverse funzioni in base all'asserzione di opportuni segnali di controllo.
In particolare, gli indirizzi di riga e di colonna utilizzano gli stessi piedini, per cui
devono essere "presentati" in istanti successivi.
Normalmente viene prima presentato l'indirizzo di riga, segnalato dall'asserzione del segnale
RAS# (Row Address Strobe); questo indirizzo viene memorizzato in opportuni registri
(latch) che permettono di averlo a disposizione anche dopo che i piedini hanno
cambiato significato, portando l'indirizzo di colonna (segnalato dal CAS#, Column
Address Strobe); anche
quest'ultimo viene campionato e immagazzinato in un latch. L'asserzione del CAS# abilita anche
i registri di I/O della DRAM, cosicché l'accesso può finalmente avvenire.
Naturalmente, questa sequenza di operazioni richiede tempo: la stabilizzazione dei segnali, il
caricamento dei latch, etc. sono eventi caratterizzati da tempi difficilmente riducibili senza
sensibili aggravi di costo. Giova ricordare che il DRAM Access Time, ossia la
velocità nominale della DRAM (che è espressa in nanosecondi) coincide con l'intervallo di tempo
che va dall'asserzione del RAS# al momento in cui i dati sono disponibili; questo valore è
rimasto sostanzialmente immutato in questi anni, ed è tipicamente di 60 - 70 nanosecondi.
Le ricerche sono state volte, quindi, a superare la necessità di effettuare tutte le operazioni
per ciascuna lettura oppure a permetterne una parziale sovrapposizione temporale.
Poiché la generazione di un indirizzo di riga con relativa asserzione del RAS# risulta
particolarmente penalizzante, una delle prime strategie ad essere stata adottata con successo
ha puntato all'organizzazione della memoria in pagine caratterizzate dallo stesso
indirizzo di riga.
Se, come ci si aspetta in base al principio di localizzazione, gli accessi successivi
interesseranno locazioni all'interno della stessa pagina, non sarà necessario generare un nuovo
indirizzo di riga ed un nuovo RAS#: sarà valido quello già contenuto nel latch,
cosicché si
rende necessario solo un nuovo indirizzo di colonna (con relativo CAS#). In questo modo, il
tempo di accesso effettivo risulta ridotto, indicativamente, di un 30-40%.
Naturalmente, ciò è valido solo per accessi all'interno della stessa pagina successivi al
primo: il primo accesso ad ogni pagina, infatti, richiede entrambe gli indirizzi.
Indicativamente, una scheda madre Pentium con frequenza base di 66 MHz (quindi Pentium 100,
133, 166, 200), chipset Triton-2 HX e FPM DRAM da 60 ns può lavorare con un ciclo
burst read (vedi articolo precedente) di
5-3-3-3 ed un ciclo burst write di 5-2-2-2 (i cicli di scrittura
sono sempre "aiutati" dalla presenza di un buffer che permette una sorta di "scrittura
differita": è importante, perché le scritture costituiscono in media quasi il 70% degli accessi
a memoria).
Ciò comporta un transfer rate in lettura pari a circa 152 MB/s (con 1 MB = 10^6 byte)
ed un transfer rate in scrittura pari a 194 MB/s (media su un burst).
Ricordiamo che un Pentium può , potenzialmente, effettuare burst read e burst write 2-1-1-1,
corrispondenti a circa 426 MB/s su bus a 66 MHz.
VRAM
La VRAM (Video RAM) è stata impiegata, come dice il nome, su alcune schede video; queste
periferiche, infatti, soffrono particolarmente del collo di bottiglia rappresentato dalla
velocità della DRAM.
La VRAM altro non è che FPM DRAM dotata di un'interfaccia di I/O più sofisticata: nella VRAM
sono presenti due porte di accesso che possono essere usate
contemporaneamente.
L'utilità di questa configurazione dual ported risulta chiara quando si pensi che, in
una scheda video, sia il processore che il RAMDAC hanno necessità di accedere alla memoria. Con la
VRAM possono accedervi contemporaneamente, eliminando un collo di bottiglia. Questo da una
parte permette una maggiore velocità nelle operazioni grafiche e dall'altra permette frequenze
di refresh più elevate (grazie alla maggiore banda passante verso la memoria a disposizione del
RAMDAC).
La configurazione dual-ported può essere adottata anche con altre tecnologie di DRAM: ecco
quindi apparire all'orizzonte memorie video SVRAM (denominate anche SGRAM), ottenute combinando un'interfaccia a
due porte con chip di memoria SDRAM (vedi dopo).
EDO DRAM
Apparsa da poco tempo, questo tipo di RAM ha destato un certo interesse, inizialmente anche
troppo: gli si attribuivano tali proprietà taumaturgiche da giustificare, su alcuni sistemi
Pentium (esempio, alcune serie di schede Intel Zappa), configurazioni senza cache di secondo
livello.
In realtà il miglioramento di prestazioni rispetto alle FPM DRAM non poteva compensare la
mancanza di una adeguata 2L-cache, per cui tali configurazioni non hanno avuto seguito.
Come funziona la EDO DRAM ?
L'acronimo (Extended Data Output) dice
qualcosa: questo tipo di memoria (che è una variante della FPM, della quale mantiene i vantaggi
connessi alla paginazione) mantiene più a lungo i dati
sulle linee di uscita, permettendo allo stesso tempo di sovrapporre la presentazione di un
nuovo indirizzo.
Più in dettaglio: mentre con le FPM la negazione di CAS# disabilitava i registri di uscita,
rendendo indisponibili i dati poco prima che un nuovo indirizzo potesse essere richiesto, qui non è
più così : la negazione del CAS# non disabilita i registri di uscita, che grazie ad un latch
possono mantenere disponibili i dati precedentemente richiesti fin quando CAS# non viene
nuovamente asserito (il che significa che sono stati generati sia l'eventuale nuovo indirizzo
di riga che il nuovo indirizzo di colonna).
Tutto ciò permette di adottare timing più "serrati"
per il CAS# senza per questo ridurre i margini di tempo necessari alle linee dati per stabilizzarsi,
e si traduce in letture sequenziali più veloci.
In effetti, con chipset in grado di sfruttarne i vantaggi (Triton, Triton-2, etc.) le EDO DRAM
permettono transfer rate più sostenuti: rifacendoci all'esempio precedente, un Triton-2 HX con
EDO da 60 ns e frequenza base di 66 MHz può lavorare con timing burst read di
5-2-2-2, corripondenti ad un transfer rate in lettura di circa 194 MB/s: circa il
28% in più rispetto alle normali FPM DRAM.
Non molto, dunque: specie se si considera la scarsa incidenza, nell'uso normale, di letture
cache miss. I nostri benchmark hanno evidenziato differenze prestazionali medie nell'ordine
del 5%.
Ad ogni modo, ormai la grande maggioranza delle DRAM SIMM in vendita sono di tipo
EDO, offerte quasi sempre allo stesso prezzo delle FPM (i costruttori di memorie ormai
producono quasi esclusivamente SIMM EDO, con costi di produzione simili alle DRAM
precedenti): quindi gli utenti di sistemi Pentium non dovrebbero avere di che lamentarsi...
Più delicata la situazione per i possessori di 486, dato che le EDO DRAM hanno
manifestato spesso problemi di compatibilità con queste architetture.
La EDO DRAM sta conoscendo un certa diffusione anche sulle schede video: i chip S3
Trio64/V+/UV+ sono stati tra i primi ad essere accoppiati con EDO da 50 o 60 ns, organizzata in chip da 512
KB su 16 bit di ampiezza (ecco perché , per sfruttare davvero i 64 bit del chip S3, servono 2 MB
di RAM video ...).
WRAM
Usata (finora) esclusivamente dalla Matrox per le sue schede grafiche Millenium, la Window
RAM è un'evoluzione della VRAM: anch'essa dual-ported, aggiunge alla memoria vera e
propria della logica per la gestione, principalmente, degli spostamenti di bitmap.
Questo permette di implementare con notevole efficienza i sistemi di doppio buffering
necessari, ad esempio, alla riproduzione di filmati o di animazioni in genere. Non è un
vantaggio sostanziale nel campo della grafica vettoriale, dove però torna utile la
disponibilità on-chip di circuiteria dedicata al riempimento di zone con pattern a 2
colori.
La diversa organizzazione logica della WRAM ha inoltre permesso di diminuire il numero di chip
richiesti per formare un "banco": 2 soli chip per i consueti 2 MB.
Interessante anche il rapporto prestazioni/prezzo.
SDRAM
Il nome (Synchronous DRAM) la dice lunga: questa tecnologia permette infatti di
costruire memorie in grado di "star dietro" alla CPU durante un burst a frequenze di base fino
a 100 MHz, senza interporre stati
di attesa (in realtà , ciò è vero solo per gli accessi successivi al primo).
Poiché questa tecnologia è al momento la più promettente (tra l'altro, le memorie SDRAM sono
già in produzione, in configurazione DIMM), vale la pena analizzarla con particolare dettaglio...
Essenzialmente, la SDRAM è costituita da DRAM FPM più una certa quantità di logica di
controllo sincrona, ovvero temporizzata da un segnale di clock: questo permette
di sincronizzare, all'interno del chip, tutti i segnali interessati all'accesso RAM
(linee dati, indirizzi, segnali di controllo) e quindi di migliorare notevolmente le
prestazioni.
Ciò è assai più interessante di quanto possa sembrare in quanto, di fatto, trasforma il vecchio
sistema controllato da impulsi in una macchina a stati.
Finora il chipset deputato all'interfacciamento con la memoria si è trovato a gestire gli
accessi in modalità , di fatto, asincrona: presentati gli indirizzi e asseriti i segnali di
strobe, attende un predeterminato numero di cicli di clock (stati di attesa) e poi
effettua l'accesso "alla cieca"; il numero di stati attesa necessari viene prederminato dal Power-On Self
Test eseguito dal BIOS all'avviamento, oppure impostato dall'utente in base alla velocità nominale
della RAM o in seguito a prove.
Questo sistema di controllo in cui è il chipset a farsi carico di tutti i timing necessari, con
la RAM che si limita a fornire i dati entro un tempo prestabilito senza peraltro alcuna
possibilità di programmazione degli accessi, è particolarmente penalizzante per i
trasferimenti burst, che però (negli attuali sistemi dotati di cache) rappresentano la quasi
totalità degli accessi alla memoria centrale.
La logica a bordo della SDRAM, grazie alla temporizzazione fornita dal clock di sistema,
permette di sfruttare al meglio il tempo a disposizione e di lavorare con specifiche assai più
precise e margini più sicuri (ne risulta migliorata anche l'insensibilità al rumore, in quanto
gli istanti di campionamento sono meglio determinati); inoltre, la possibilità di programmare
burst di varia lunghezza permette un buon adattamento a sistemi di diversa architettura ed
elimina la necessità , per il chipset, di produrre i vari CAS# : provvederà la stessa logica di
controllo a bordo della SDRAM a generare gli indirizzi di colonna e i relativi segnali di
controllo, una volta programmata circa la lunghezza del burst ed il tipo (sequenziale od
interleaved: vedi dopo).
Le SDRAM supportano, in effetti, veri e propri comandi a 4 bit composti tramite le
linee CS, WE, RAS, CAS; in più contengono un registro per
specificare varie modalità di funzionamento e la lunghezza dei burst.
La necessità di funzionare al meglio durante un ciclo burst x86 ha spinto i progettisti a prevedere
la possibilità di un funzionamento interleaved, oltre a quello
sequenziale sfruttato da altre architetture, nonché ad implementare un certo grado di
parallelismo all'interno della logica di controllo: viene infatti adottato un sistema a
pipeline che
che consente ad un nuovo accesso di iniziare prima che il precedente sia stato completato.
E' interessante notare che una prima implementazione del pipelining degli indirizzi (che
consentiva al chipset di presentare un nuovo indirizzo cui accedere prima che il dato
precedente fosse stato letto) compariva già in un chipset OPTi per ... 386 ! Sì , siamo nel 1987
... il sistema permetteva buoni incrementi prestazionali ma non funzionava se abbinato alla
presenza di una cache memory (la cache -esterna- nasce, sul PC, proprio con gli 80386).
Tutta questa tecnologia dà i suoi frutti: già oggi, la SDRAM permette di implementare burst
read di 5-1-1-1 non solo su sistemi con clock base a 66 MHz (il che permette un transfer
rate in lettura pari a 266 MB/s), ma anche con clock superiori, come gli 83 MHz implementati sulle
ultime schede Pentium o i futuri 100 MHz per i Pentium Pro.
L'attuale situazione di mercato consiglia, comunque, di aspettare
ancora un po' prima di acquistare SDRAM per il proprio PC.
Rambus DRAM (RDRAM)
Tutte le tecnologie analizzate finora puntano sul massimo sfruttamento del tempo a disposizione
per l'accesso, tramite parallelismo, sincronizzazione, etc.
Una società specializzata in memorie, la Rambus (www.rambus.com), ha scelto un approccio diverso: il massimo
sfruttamento dei pin a disposizione.
Dal punto di vista economico questo permette una serie di economie costruttive, dovute alla
elevata densità di impaccamento e alla possibilità di utilizzare package e tecnologie
realizzative già collaudati; dal punto di vista prestazionale permette sia di semplificare e
"compattare" il
design del circuito stampato, permettendo il raggiungimento di frequenze più elevate, sia di
utilizzare, con un numero ancora basso di piedini, più canali in parallelo,
aumentando così il transfer rate complessivo.
Ma vediamo più in dettaglio quali sono le caratteristiche del sistema Rambus...
Sostanzialmente, i chip di memoria veri e propri sono in normale tecnologia DRAM; la logica in
cui sono organizzati è però assai interessante, e si basa su un sistema sincrono (la
stessa scelta fatta per la SDRAM) "guidato" dal cosiddetto canale Rambus, il vero
"cuore" di questa architettura.
Si tratta di un bus formato da 31 linee, che portano indirizzi, dati, alimentazione e massa.
Questo bus è progettato per lavorare a frequenze elevatissime: già oggi 600 MHz, presto 700 ed
oltre; inoltre, è possibile affiancare più canali, cosicché , ad esempio, con 124 piedini è
possibile ottenere 4 canali Rambus.
Le operazioni di sincronizzazione, lettura/scrittura dei dati nelle celle, etc. sono svolte da
un'opportuna circuiteria "di bordo", il Rambus controller, che accetta ordini dal sistema host
scaricandolo dalla necessità di eseguire le operazioni di basso livello.
Le prestazioni ?
Diciamo subito che i transfer rate possibili sono elevatissimi, dell'ordine delle centinaia di
MB/s già oggi; ma occorre precisare che tali transfer rate sono ottenuti sfruttando clock
elevatissimi: a parità di clock, infatti, l'architettura Rambus non tiene il passo con
la SDRAM, che appare (grosso modo) più veloce di circa quattro volte. E, poiché , almeno per
il momento, i clock delle schede madri per PC non supereranno gli 80 - 100 MHz, si intuisce
come il campo di elezione per la Rambus sia, per ora, quello delle schede grafiche; in effetti
già diversi costruttori hanno scelto questa architettura per le proprie schede di fascia
medio-alta: la
Creative Graphic Blaster MA302 su chip Cirrus Logic ne è un esempio.
Se mai la tecnologia Rambus verrà impiegata per la memoria centrale del PC, ciò avverrà in
sostituzione dell'architettura SDRAM, considerata "problematica" a frequenze superiori ai
100-150 MHz; infatti, portare lo schema funzionale di una SDRAM a frequenze molto elevate
richiede una reingegnerizzazione delle tracce, della piedinatura, delle dimensioni,
delle alimentazioni e, forse, dei livelli logici (tensioni), il che potrebbe portare a problemi
di compatibilità con gli attuali standard sia per le mother board che per le schedine DIMM a 168 pin,
nonché ad aggravi di costo.
Intel pare credere nella
tecnologia Rambus per l'utilizzo dall'anno 2000 in poi, previe modifiche all'attuale
architettura (allargamento del bus, miglioramento del protocollo) cui ha intenzione di
contribuire.
Numero canali | Ampiezza bus dati | N. piedini
package | T/R max a 600 MHz |
1 | 8 bit | 31 | 600 MB/s |
4 | 32 bit | 124 | 2400 MB/s |
Staremo a vedere; nel frattempo, qui a lato eccovi qualche numero, a valore puramente indicativo, per avere
un'idea delle prestazioni di queste memorie.
Memory Interleaving
Già adottata su molte mother board 486, la tecnica del "memory bank interleaving" consiste nel
suddividere la memoria in due o quattro banchi simmetrici, suddivisi per indirizzi
alternati: ovvero, nel caso di due banchi, il primo conterrà gli indirizzi N, N+2, N+4, ecc.,
mentre il secondo coprirà N+1, N+3 e così via.
Poiché un accesso burst interessa indirizzi sequenziali, esso interesserà alternativamente i
due banchi: si può allora fare in modo che, mentre un banco è occupato dall'accesso, l'altro
"si prepari", ovvero, essenzialmente, esegua la precarica dell'indirizzo di linea
(RAS precharge), che è la parte temporalmente più onerosa dell'accesso.
Una tecnica simile può essere usata per la SRAM costituente la cache memory (anche se in questo
caso non è corretto parlare di RAS) e permetteva alle cache di secondo livello di alcune schede
486, se
dimensionate a 256 KB (= 2 banchi), di supportare i burst 486 senza stati di attesa,
ovvero
a 2-1-1-1 (come la cache interna !), con clock di base fino a 40 MHz.
Sulla SDRAM, si è pensato di integrare la logica dell'interleaving direttamente on-chip:
quindi, le schedine (DIMM) di SDRAM sono già organizzate,
internamente, in 2 o 4 banchi gestiti
in modalità interleaved.
SDRAM: il mercato. Le DIMM.
Attualmente, nel mondo PC gli unici chipset in grado di supportare le memorie SDRAM sono
l'Intel Triton-2 VX e il VIA 580 VP per sistemi Pentium, il
VIA 590 VP per i processori Cyrix-IBM 686 (alcune versioni di queste CPU hanno
bisogno di clock e timing particolari) e il VIA 680 VP per sistemi Pentium Pro
(in arrivo il corrispondente Intel, derivato dal 440 Natoma).
Oltre al supporto da parte del chipset, occorre il supporto "fisico" da parte della mother
board: infatti, a differenza di FPM DRAM ed EDO DRAM che adottano, per le schedine di memoria,
il ben noto standard SIMM a 32 bit e 72 pin, le SDRAM vengono commercializzate (per ciò che
riguarda l'architettura PC) su schedine DIMM (Dual In-line Memory
Module) a 64 bit e 168 pin (fisicamente, le schedine DIMM appaiono più lunghe, e con una
piedinatura più fitta).
Da un lato questo si traduce in uno svantaggio per gli utenti, che si trovano a dover
fronteggiare l'ennesima variazione di standard con conseguente perdita di investimenti (ci sarà
sempre meno posto per le schedine SIMM sulle nuove MB); dall'altro offre però una serie di
vantaggi.
Anzitutto, le prestazioni: le SDRAM sono più veloci delle EDO a parità di clock, e sembrano le
uniche sul mercato a garantire ottime prestazioni sino ai 100 MHz di clock.
Poi, la praticità : con la nuova ampiezza di 64 bit, non sarà più necessario montare le schedine
"a coppie simmetriche", come accade oggi con le SIMM sui sistemi 586 e 686 (tutti con bus dati
a 64 bit), consentendo una maggiore flessibilità di configurazione.
Infine, lo sfruttamento dello spazio: il rapporto tra spazio e capacità delle schedine DIMM è
superiore a quello delle SIMM, il che diventa molto importante con l'aumento della quantità di
memoria centrale dei PC e l'esigenza di ridurre le dimensioni delle schede madri in relazione
all'aumento della frequenza di clock.
A questo proposito, è interessante notare che il passaggio da 72 a 168 pin non è dipeso tanto
dal raddoppio del bus dati, quanto dalla necessità di fornire un maggior numero di linee di
alimentazione e di massa, al fine di mantenere un buon rapporto segnale/rumore. Proprio questo
aspetto fa sì che le SDRAM per frequenze superiori ai 100 MHz (utilizzate, ad esempio, su
alcune macchine RISC) vengano spesso montate su DIMM a 200 piedini: si profila forse un nuovo
cambio di standard all'orizzonte ?
Torniamo al presente per una nota conclusiva: al momento, le schede madri con supporto SDRAM
presentano 1 solo slot DIMM, che affianca i consueti 4 slot SIMM; è possibile far convivere
pacificamente i due tipi di memoria, tuttavia non ci sentiamo di consigliare, per ora,
l'acquisto di SDRAM: sia perché i prezzi sono ancora molto alti rispetto a SIMM della stessa
capacità (come ordine di grandezza, dal 50% all'80% in più ), sia perché
il chipset più diffuso
con supporto SDRAM, il Triton-2 VX, presenta alcuni limiti di efficienza (prestazioni), come
messo in luce in un precedente servizio su BETA.
Fernando Carello è reperibile su Internet all'indirizzo
techcoord@beta.it e tramite la redazione
|