Come funziona una CPU: affidabilità delle memorie DRAM #0.5.6

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:

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;

dram

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!

dram

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.