La memoria ad accesso casuale dinamica, o DRAM (acronimo di dynamic random access memory), è un tipo di RAM che immagazzina ogni bit in un diverso condensatore. Il numero di elettroni presenti nel condensatore determina se il bit è 1 o 0. Se il condensatore perde la carica, l’informazione è perduta: nel funzionamento la ricarica avviene periodicamente. Da qui la definizione di memoria dinamica, opposta alle memorie statiche come la SRAM. Per la caratteristica di perdere le informazioni in mancanza di energia, la DRAM viene definita anche volatile.
Negli articoli precedenti abbiamo visto:
- Come funziona una CPU: progetto di circuiti logici #0
- Come funziona una CPU: Flip-Flop SR asincrono #0.1
- Come funziona una CPU: Flip-Flop sincrono #0.1.1
- Come funziona una CPU: Flip-Flop D #0.1.2
- Come funziona una CPU: Flip-Flop Master-Slave #0.1.3
- Come funziona una CPU: Modello di Huffman #0.2
- Come funziona una CPU: progetto di circuiti sequenziali sincroni #0.2.1
- Come funziona una CPU: progetto dei circuiti logici #0.3
- Come funziona una CPU: porte logiche operanti su parole #0.3.1
- Come funziona una CPU: multiplexer #0.3.2
- Come funziona una CPU: decodificatore #0.3.3
- Come funziona una CPU: codificatore (encoder) #0.3.4
- Come funziona una CPU: codificatore prioritario (priority encoder) #0.3.4.1
- Come funziona una CPU: sommatore full-adder #0.3.5
- Come funziona una CPU: sommatore Ripple Carry Adder #0.3.5.1
- Come funziona una CPU: sommatore seriale #0.3.5.2
- Come funziona una CPU: Sommatore con carry-lookahead #0.3.5.3
- Come funziona una CPU: ALU spiegata in modo semplice #0.3.5.4
- Come funziona una CPU: comparatore #0.3.5.5
- Come funziona una CPU: registro a m-bit #0.3.6
- Come funziona una CPU: registro a scalamento (Shift Register) #0.3.6.1
- Come funziona una CPU: contatore semplice #0.3.7
- Come funziona una CPU: contatore asincrono (ripple counter) #0.3.7.1
- Come funziona una CPU: contatore sincrono #0.3.7.2
- Come funziona una CPU: bus spiegato in modo semplice #0.3.8
- Come funziona una CPU: introduzione alla cpu #0.4
- Come funziona una CPU: architettura base di una CPU #0.4.1
- Come funziona una CPU: operazioni fondamentali CPU #0.4.2
- Come funziona una CPU: operazioni sulla ALU #0.4.3
- Come funziona una CPU: accesso in memoria (MAR ed MDR) #0.4.4
- Come funziona una CPU: esecuzione di un’istruzione logica o artitmetica #0.4.5
- Come funziona una CPU: progetto dell’unità di controllo #0.4.6
- Come funziona una CPU: progetto dell’unità di controllo cablata #0.4.6.1
- Come funziona una CPU: progetto dell’unità di controllo microprogrammata #0.4.6.2
- Come funziona una CPU: microprogrammazione verticale ed orizzontale differenze #0.4.6.2.1
- Come funziona una CPU: introduzione alle memorie #0.5
- Come funziona una CPU: strategia generale progettazione memorie #0.5.1
- Come funziona una CPU: le memorie ad accesso casuale #0.5.2
- Come funziona una CPU: le memorie ROM #0.5.3
- Come funziona una CPU: le memorie SRAM #0.5.4
- Come funziona una CPU: le memorie DRAM #0.5.5
Se una cella di Memoria dinamica è colpita da una radiazione è possibile che la carica immagazzinata cambi, facendo cambiare il valore memorizzato (guasto transitorio). Al crescere della densità di integrazione, la dimensione della carica immagazzinata in ciascuna cella tende a diminuire in maniera significativa, rendendo quindi la Memoria sempre più sensibile (e meno affidabile). L’effetto delle radiazioni cresce quindi con la densità di integrazione, oltre che con l’altitudine e l’attività solare. Molte memorie dinamiche sono per questo protette, ad esempio tramite l’uso di codici di protezione.
Codice di parità
Per aumentare l’affidabilità delle memorie DRAM, a ciascuna parola può essere associato un codice di protezione. Il caso più semplice di codice di protezione è il codice di parità (1 bit).
Funzionamento:
- quando si scrive un valore nella parola, si calcola il relativo bit di parità e lo si memorizza insieme al nuovo valore in un apposito bit (aggiuntivo);
- quando si legge la parola, si calcola il codice di parità associato al valore letto, e lo si confronta con quello memorizzato;
- in caso di diversità, si invia una segnalazione di errore;
Codici di Hamming
Attraverso i codici di Hamming è possibile non solo rilevare, ma anche correggere eventuali errori verificatisi in una Memoria.
Detto n il parallelismo della Memoria, tali codici:
- richiedono 1 + log2 n bit di codice, associati a ciascuna parola;
- permettono di rilevare e correggere tutti gli errori singoli;
- permettono di rilevare (ma non correggere) tutti gli errori doppi
- non garantiscono n´e il rilevamento n´e la correzione degli errori di molteplicità superiore;
Per questo tali codici sono detti SECDED (Single Error Correction Double Error Detection).
I codici di Hamming correggono le parole in uscita ma non il contenuto della Memoria!
Iscriviti ai nostri gruppi Telegram
Link utili