RAM con ECC: la memoria che corregge gli errori

Nell’elaborazione dei dati in molti settori viene data la massima priorità alla sicurezza. Le aziende svolgono importanti processi produttivi e sono ugualmente responsabili della stabilità dei dati, come lo è un servizio di hosting che salva i contenuti dei suoi clienti. Se si riscontrano gravi problemi nel processo di memorizzazione, non solo si rischiano delle perdite in campo economico, ma si verifica, nel peggiore dei casi, anche un forte indebolimento della propria posizione sul mercato. La tendenza a voler avere sempre più RAM in questo contesto è da valutare criticamente, poiché con l’aumento della capacità di memoria cresce anche il margine di errore possibile. Perciò sul lavoro e negli ambienti server che richiedono un’elevata integrità dei dati viene dato grande valore ad una protezione completa dei dati e quindi, per essere sempre protetti da errori dei singoli bit, vengono usate le RAM con ECC al posto delle memorie classiche.

RAM con ECC: definizione e retroscena

RAM sta per Random Access Memory e in italiano si indica anche con l’espressione “memoria ad accesso casuale”. Nello specifico si tratta di un supporto di memoria che viene utilizzato nei sistemi come memoria volatile, quindi temporanea. È anche conosciuta come memoria principale perché è responsabile dell’esecuzione dei programmi comprensivi dei dati utente presenti. I contenuti volatili della memoria principale sono infatti salvati come codice binario, quindi sono composti da 0 e 1, cosicché il computer riesca ad elaborarli. Un bit rappresenta un singolo punto all’interno del codice. Vi sono diverse cause, che provocano errori di bit tramite i quali viene modificato un punto della memoria, come

  • abbassamenti di tensione,
  • overclocking,
  • moduli di memoria difettosi o vecchi
  • zioni energetiche.

In questo caso un bit assume un valore errato, quindi “1” al posto di “0” o viceversa. In molte applicazioni difficilmente si notano gli effetti, infatti se si verifica un errore di bit, lavorando con un programma di elaborazione di immagini, un pixel riceve probabilmente un altro colore, ma l’occhio umano non percepisce alcuna differenza. Molto diversa appare invece la situazione nei database o nei programmi di calcolo, dove un singolo errore di bit comporta delle gravi conseguenze. Inoltre, un errore di bit può portare a crash di sistema, se si verifica in una parte della memoria che viene utilizzata dal sistema operativo. 

Una soluzione facile al problema si chiama Error Correcting Code (ECC): si tratta di un codice di dati, che possiede la facoltà di riconoscere e correggere i singoli errori di bit. In aggiunta si possono individuare con questo sistema anche i molto rari errori di 2 bit. Per trarre vantaggio da questo procedimento di correzione degli errori, i soliti moduli della RAM vengono ampliati da un chip di memoria ECC e per questo si parla anche di RAM con ECC.

Come funziona il procedimento di correzione degli errori

Il procedimento per la correzione degli errori di singoli bit, utilizzati per i moduli della RAM, è stato sviluppato già nel 1950 dal matematico Richard Hamming, che dà quindi il nome all’omonimo codice, chiamato appunto codice di Hamming. Qui la particolarità rientra nell’uso di più bit di parità, chiamati anche bit di controllo, che creano diverse somme di controllo con i bit utilizzati realmente. Il requisito per utilizzare il codice di Hamming per la correzione degli errori di singoli bit è disporre almeno di un codice binario a sette cifre, composto da tre bit di parità (P), quattro bit realmente utilizzati (N) e tre somme di controllo. I bit di parità si basano così sui punti del codice, in cui è presente una potenza di 2, quindi nell’esempio 1, 2 e 4:

Le somme di controllo dei bit di parità delle sequenze di bit ricevute vengono comparate con quelli salvati, dove si verifica un errore quando il numero totale di bit è dispari, quindi ha il valore 1.

Applicato alla sequenza di bit nell’esempio 0001001, il codice di Hamming comunica l’errore nel modo seguente:

  • La somma di controllo del bit di parità 1 (1, 3, 5, 7) comprende un bit con il valore 1 ed è quindi errato.
  • La somma di controllo del bit di parità 2 (2, 3, 5, 7) comprende un bit con il valore 1 ed è quindi errato.
  • La somma di controllo del bit di parità 3 (4, 5, 6, 7) comprende due bit con il valore 1 ed è quindi corretto.

L’errore si riscontra perché le prime somme di controllo sono errate nella sequenza di codice 3. La sequenza di bit corretta sarebbe quindi 0011001.

RAM con ECC: è adatta anche per un uso privato?

Il sistema ECC protegge la memoria principale da errori di singoli bit e impedisce perciò spesso possibili alterazioni dei dati, a cui si collega anche la diminuzione di crash del sistema, cosa molto importante soprattutto per servizi e applicazioni che devono garantire un’alta disponibilità e permettere l’accesso a molti utenti. Questi vantaggi della RAM con ECC fanno sì che i moduli di memoria specifici siano particolarmente richiesti nella RAM per i server e risultano così un must per i centri di elaborazione di dati.

La RAM con ECC ha però anche dei piccoli svantaggi rispetto alla RAM senza ECC: da una parte i moduli di memoria di correzione degli errori sono più costosi rispetto alle solite RAM, dall’altra il processo di riconoscimento degli errori comporta un abbassamento di circa il 2 percento della performance del sistema. Inoltre la RAM con ECC non è supportata da tutte le schede madri. Se state valutando di utilizzare una RAM con ECC su una normale scheda, dovreste prima verificarne la compatibilità e considerare l’uso che se ne vorrebbe fare. Non è possibile combinare la RAM con ECC o senza ECC: solitamente un server o un computer privato dispongono di una classica RAM senza correzione degli errori, che rappresenta già un’ottima soluzione per un uso domestico.


Prepara il tuo business per il successo online
Abbiamo ridotto ulteriormente i prezzi dei nostri strumenti pensati
per incrementare le tue vendite di fine anno.
Risparmia fino al 75%