Nell’ela­bo­ra­zio­ne dei dati in molti settori viene data la massima priorità alla sicurezza. Le aziende svolgono im­por­tan­ti processi pro­dut­ti­vi e sono ugual­men­te re­spon­sa­bi­li della stabilità dei dati, come lo è un servizio di hosting che salva i contenuti dei suoi clienti. Se si ri­scon­tra­no gravi problemi nel processo di me­mo­riz­za­zio­ne, non solo si rischiano delle perdite in campo economico, ma si verifica, nel peggiore dei casi, anche un forte in­de­bo­li­men­to della propria posizione sul mercato. La tendenza a voler avere sempre più RAM in questo contesto è da valutare cri­ti­ca­men­te, poiché con l’aumento della capacità di memoria cresce anche il margine di errore possibile. Perciò sul lavoro e negli ambienti server che ri­chie­do­no un’elevata integrità dei dati viene dato grande valore ad una pro­te­zio­ne 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: de­fi­ni­zio­ne e re­tro­sce­na

RAM sta per Random Access Memory e in italiano si indica anche con l’espres­sio­ne “memoria ad accesso casuale”. Nello specifico si tratta di un supporto di memoria che viene uti­liz­za­to nei sistemi come memoria volatile, quindi tem­po­ra­nea. È anche co­no­sciu­ta come memoria prin­ci­pa­le perché è re­spon­sa­bi­le dell’ese­cu­zio­ne dei programmi com­pren­si­vi dei dati utente presenti. I contenuti volatili della memoria prin­ci­pa­le sono infatti salvati come codice binario, quindi sono composti da 0 e 1, cosicché il computer riesca ad ela­bo­rar­li. Un bit rap­pre­sen­ta un singolo punto all’interno del codice. Vi sono diverse cause, che provocano errori di bit tramite i quali viene mo­di­fi­ca­to un punto della memoria, come

  • ab­bas­sa­men­ti di tensione,
  • over­cloc­king,
  • moduli di memoria difettosi o vecchi
  • zioni ener­ge­ti­che.

In questo caso un bit assume un valore errato, quindi “1” al posto di “0” o viceversa. In molte ap­pli­ca­zio­ni dif­fi­cil­men­te si notano gli effetti, infatti se si verifica un errore di bit, lavorando con un programma di ela­bo­ra­zio­ne di immagini, un pixel riceve pro­ba­bil­men­te un altro colore, ma l’occhio umano non per­ce­pi­sce alcuna dif­fe­ren­za. Molto diversa appare invece la si­tua­zio­ne nei database o nei programmi di calcolo, dove un singolo errore di bit comporta delle gravi con­se­guen­ze. Inoltre, un errore di bit può portare a crash di sistema, se si verifica in una parte della memoria che viene uti­liz­za­ta dal sistema operativo. 

Una soluzione facile al problema si chiama Error Cor­rec­ting Code (ECC): si tratta di un codice di dati, che possiede la facoltà di ri­co­no­sce­re e cor­reg­ge­re i singoli errori di bit. In aggiunta si possono in­di­vi­dua­re con questo sistema anche i molto rari errori di 2 bit. Per trarre vantaggio da questo pro­ce­di­men­to di cor­re­zio­ne 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 pro­ce­di­men­to di cor­re­zio­ne degli errori

Il pro­ce­di­men­to per la cor­re­zio­ne degli errori di singoli bit, uti­liz­za­ti per i moduli della RAM, è stato svi­lup­pa­to già nel 1950 dal ma­te­ma­ti­co Richard Hamming, che dà quindi il nome all’omonimo codice, chiamato appunto codice di Hamming. Qui la par­ti­co­la­ri­tà rientra nell’uso di più bit di parità, chiamati anche bit di controllo, che creano diverse somme di controllo con i bit uti­liz­za­ti realmente. Il requisito per uti­liz­za­re il codice di Hamming per la cor­re­zio­ne degli errori di singoli bit è disporre almeno di un codice binario a sette cifre, composto da tre bit di parità (P), quattro bit realmente uti­liz­za­ti (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 prin­ci­pa­le da errori di singoli bit e impedisce perciò spesso possibili al­te­ra­zio­ni dei dati, a cui si collega anche la di­mi­nu­zio­ne di crash del sistema, cosa molto im­por­tan­te so­prat­tut­to per servizi e ap­pli­ca­zio­ni che devono garantire un’alta di­spo­ni­bi­li­tà e per­met­te­re l’accesso a molti utenti. Questi vantaggi della RAM con ECC fanno sì che i moduli di memoria specifici siano par­ti­co­lar­men­te richiesti nella RAM per i server e risultano così un must per i centri di ela­bo­ra­zio­ne 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 cor­re­zio­ne degli errori sono più costosi rispetto alle solite RAM, dall’altra il processo di ri­co­no­sci­men­to degli errori comporta un ab­bas­sa­men­to di circa il 2 percento della per­for­man­ce del sistema. Inoltre la RAM con ECC non è sup­por­ta­ta da tutte le schede madri. Se state valutando di uti­liz­za­re una RAM con ECC su una normale scheda, dovreste prima ve­ri­fi­car­ne la com­pa­ti­bi­li­tà e con­si­de­ra­re l’uso che se ne vorrebbe fare. Non è possibile combinare la RAM con ECC o senza ECC: so­li­ta­men­te un server o un computer privato di­spon­go­no di una classica RAM senza cor­re­zio­ne degli errori, che rap­pre­sen­ta già un’ottima soluzione per un uso domestico.

Vai al menu prin­ci­pa­le