Una memoria DRAM, acronimo di Dynamic Random Access Memory, è uno dei componenti fondamentali di qualunque sistema informatico moderno. Viene utilizzata come memoria principale nei computer, negli smartphone, nei server e in molti dispositivi elettronici perché offre un buon compromesso tra velocità, costo e densità di memorizzazione.
Per capire come funziona una DRAM è utile partire dal suo scopo principale: conservare temporaneamente i dati e le istruzioni che il processore deve usare in modo rapido mentre un programma è in esecuzione.

La DRAM è una memoria volatile, cioè perde tutte le informazioni quando viene tolta l’alimentazione elettrica. Questo la distingue da memorie come SSD o hard disk, che invece sono non volatili. Il motivo per cui la DRAM è volatile è legato direttamente al modo in cui memorizza i dati a livello fisico.
Ogni singolo bit di informazione è rappresentato da una piccolissima carica elettrica che deve essere continuamente mantenuta.
La struttura base di una cella DRAM è abbastanza semplice. Ogni cella è composta da due elementi principali: un condensatore e un transistor. Il condensatore è l’elemento che effettivamente conserva l’informazione. Se il condensatore è carico, il bit memorizzato vale 1; se è scarico, il bit vale 0. Il transistor funziona come un interruttore controllabile, che permette di leggere o scrivere il valore del condensatore collegandolo o scollegandolo dal resto del circuito.
Queste celle non sono isolate, ma organizzate in una grande matrice bidimensionale formata da righe e colonne. Ogni riga contiene migliaia di celle, e lo stesso vale per le colonne. Questa organizzazione permette di indirizzare le celle in modo efficiente utilizzando un numero limitato di linee di controllo. Quando il sistema deve accedere a una particolare posizione di memoria, seleziona prima una riga e poi una colonna, individuando così la cella desiderata.
La scrittura di un dato in DRAM avviene caricando o scaricando il condensatore della cella selezionata. Il controller di memoria attiva la riga corretta, aprendo i transistor di tutte le celle di quella riga. Successivamente, attraverso le colonne, viene imposto il valore elettrico desiderato. Se si vuole scrivere un 1, il condensatore viene caricato; se si vuole scrivere uno 0, viene scaricato. Una volta completata l’operazione, la riga viene disattivata e i transistor tornano a isolare i condensatori.
La lettura è un processo più delicato e rappresenta uno degli aspetti più interessanti della DRAM. A differenza di altre memorie, la lettura in DRAM è distruttiva. Questo significa che, quando si legge il contenuto di una cella, la carica del condensatore viene alterata e il dato originale va perso. Per questo motivo, ogni operazione di lettura deve essere seguita da una riscrittura automatica del dato letto.
Durante la lettura, il condensatore della cella viene collegato a una linea di bit condivisa con altre celle della stessa colonna. La carica del condensatore provoca una piccolissima variazione di tensione su questa linea. Questa variazione è troppo debole per essere interpretata direttamente come 0 o 1, quindi entra in gioco un circuito chiamato amplificatore di senso. L’amplificatore rileva la minima differenza di tensione e la amplifica fino a ottenere un valore logico stabile. Allo stesso tempo, l’amplificatore riscrive il valore corretto nel condensatore, ripristinando il dato originale.
Uno degli aspetti chiave della DRAM è il fatto che il condensatore perde naturalmente la sua carica nel tempo a causa di fenomeni fisici come le correnti di perdita. Questo avviene anche se la cella non viene mai letta o scritta. Per evitare la perdita dei dati, la DRAM necessita di un’operazione periodica chiamata refresh. Il refresh consiste nel rileggere e riscrivere continuamente tutte le celle della memoria, anche se il processore non le sta usando.
Il refresh è gestito dal controller di memoria e avviene automaticamente a intervalli regolari, tipicamente ogni pochi millisecondi. Durante il refresh, intere righe di memoria vengono attivate, lette e riscritte. Questo garantisce che la carica dei condensatori venga ripristinata prima che si scarichi troppo. Il rovescio della medaglia è che, durante il refresh, la memoria non è disponibile per altre operazioni, il che introduce dei tempi morti e influisce sulle prestazioni complessive del sistema.
Il nome “dynamic” nella DRAM deriva proprio da questa necessità di refresh continuo. Al contrario, le memorie SRAM, che usano strutture più complesse basate su flip-flop, non hanno bisogno di refresh, ma sono molto più costose e occupano più spazio sul chip. Per questo motivo la SRAM viene usata solo in piccole quantità, ad esempio nelle cache del processore, mentre la DRAM è preferita per la memoria principale.
Un altro elemento importante nel funzionamento della DRAM è il controller di memoria. Questo componente può essere integrato nel processore o presente come chip separato e ha il compito di tradurre le richieste di lettura e scrittura del sistema in segnali elettrici corretti per la DRAM. Il controller decide quali righe attivare, quando effettuare il refresh, come gestire le priorità tra più richieste e come ottimizzare le prestazioni sfruttando la struttura interna della memoria.
Nel corso degli anni, la tecnologia DRAM si è evoluta molto, dando origine a diverse generazioni come SDRAM, DDR, DDR2, DDR3, DDR4 e DDR5. Anche se i dettagli tecnici cambiano, il principio di base rimane lo stesso: celle con condensatore e transistor, organizzate in matrici e soggette a refresh periodico. Le nuove generazioni migliorano la velocità di trasferimento dei dati, riducono i consumi energetici e aumentano la capacità complessiva, ma non stravolgono il concetto fondamentale.
Una memoria DRAM funziona grazie a un equilibrio delicato tra semplicità strutturale e complessità di gestione. Da un lato, ogni bit è rappresentato da un singolo condensatore controllato da un transistor, il che permette di ottenere altissime densità di memorizzazione a costi relativamente bassi. Dall’altro lato, la necessità di letture distruttive e di refresh continui richiede circuiti di controllo sofisticati e una gestione attenta dei tempi. È proprio questo compromesso che ha reso la DRAM una delle tecnologie più importanti e durature nella storia dell’informatica moderna.
Leggi anche…
