Rubrica HARDWARE

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

Copyright © 1997 BETA. Tutti i diritti riservati.


Copertina Sommario Internet ID Ricerca Redazione Browser