Memoria ECC: caratteristiche e funzionamento di questa RAM

Memoria ECC

Sicuramente hai mai letto o sentito il concetto di memoria ECC, soprattutto se parliamo di processori server, dove viene utilizzato questo tipo di memoria. Ma in cosa differiscono da quelli tradizionalmente utilizzati nei computer? Possono essere installati su un PC desktop o un laptop? Cosa significa l'acronimo ECC? Te lo spieghiamo noi.

Nel mondo dei server, un tipo di RAM viene utilizzata la memoria che solitamente è accompagnata dall'acronimo ECC, oltre a quella che chiamiamo memoria registrata, che si presenta sotto forma di moduli RDIMM. Quindi in questo articolo non descriveremo l'hardware che normalmente troverai in un PC, a meno che tu non abbia una workstation con un CPU di tipo HEDT o lavori quotidianamente con i server.

Che cos'è la RAM registrata o RDIMM?

Registrazione RDIMM

Le memorie RAM registrate sono diverse da quelle convenzionali per il dettaglio di avere un registro che si trova tra il modulo di memoria, chiamato in questo caso RDIMM, e il controller di memoria del sistema. Questo registro è una memoria che memorizza le seguenti informazioni:

  • Indirizzi di memoria a cui accedere.
  • Comandi (leggi, scrivi o copia)
  • Velocità di clock alla quale comunica con la RAM

Differisce nel suo funzionamento dai DIMM convenzionali per il fatto che mentre i dati vengono inviati tramite i classici pin per la comunicazione dei dati, i comandi che consentono l'accesso alla memoria vengono eseguiti utilizzando questo registro. Questo viene fatto per avere una maggiore integrità del segnale e ridurre il carico elettrico sul controller di memoria, uno dei vantaggi derivati ​​da ciò è la capacità di supportare più moduli di memoria nel sistema.

Tuttavia, i moduli RDIMM sono più lenti da utilizzare rispetto ai moduli convenzionali, poiché viene aggiunta una fase aggiuntiva per l'accesso al registro, che si traduce in una larghezza di banda molto inferiore e una latenza molto più elevata nelle RDIMM. Tuttavia, i moduli DIMM utilizzati nei PC sono destinati all'uso nei PC desktop dove di solito non ci sono più di due canali di accesso, come nel caso delle workstation basate su CPU HEDT e anche dei server.

Che cos'è l'ECC nella RAM?

 Intel Xeon

Dobbiamo tenere in considerazione che la RAM, essendo una memoria volatile, dipende dall'elettricità per mantenere i dati che memorizza e questo la rende vulnerabile alla perdita. Soprattutto se teniamo conto che quelli che utilizziamo nei nostri PC sono di tipo DRAM e quindi necessitano di un refresh del carico di tanto in tanto, questo li rende vulnerabili alle interferenze magnetiche ed elettriche.

Di solito i bit di ogni cella in una memoria RAM di solito non cambiano, poiché c'è una distanza di tensione sufficientemente grande tra entrambi i valori in modo che non ci sia un salto da un valore all'altro, tuttavia man mano che vengono rilasciate nuove generazioni la memoria sta abbassando il differenza di tensione ed è qui che sono necessari metodi di correzione degli errori o ECC per mantenere le informazioni.

Ma per avere un'idea prenderemo un semplice valore in binario, 011101011, che in decimale equivale al numero 235.

  • Se il primo bit cambia, 111101011, il valore diventa 491.
  • Se è il secondo bit che cambia, 001101011, il valore diventa 107.
  • Un cambiamento nel terzo bit rende il valore 011001011 e quindi 203.

Da quello che puoi vedere un semplice cambiamento nei valori della RAM può cambiare il valore di un dato in un indirizzo di memoria e dobbiamo tenere conto che non memorizzano solo dati, ma anche istruzioni e se pensiamo ai server abbiamo da tenere a mente che questi sono progettati per funzionare 24 ore al giorno e 7 giorni alla settimana, cioè perennemente. Va tenuto presente che la DRAM non rimarrà stabile, quindi con il passare del tempo crescono gli errori in essa che possono portare a un crash generalizzato del sistema.

Il codice di Hamming

Codice Hamming ECC

Il metodo utilizzato per correggere gli errori nel segnale di memoria ECC è chiamato codice di Hamming, non si tratta di un qualsiasi tipo di algoritmo eseguito dalla CPU, ma viene eseguito nel controller di memoria stesso che è nel processore. con supporto per questo tipo di RAM. Il suo nome è dovuto al matematico americano Richard W. Hamming che è colui che lo ha sviluppato.

Come funziona? L'idea del codice di Hamming è di aggiungere bit di ridondanza per la correzione degli errori confrontando il valore dei bit di parità. Per fare ciò, ciò che si fa è contare i bit da sinistra a destra e vengono numerati, non in base al valore che memorizzano, ma si tiene conto della loro posizione.

Quei bit che in posizione corrispondono a una potenza di 2 (1, 2, 4, 8…) sono contrassegnati come bit di parità, mentre il resto dei bit sono contrassegnati come bit di soli dati. I bit di parità vengono raddoppiati alla fine della stringa di bit, quindi sono anche chiamati bit di ridondanza, per il fatto che si ripetono. Per verificare l'integrità dei dati, ciò che si fa è confrontarli tra loro per verificare l'integrità del segnale che è immagazzinato in memoria.

Codice Hamming bit paridad

Se l'operazione è una scrittura in memoria:

  • La CPU invia le informazioni al controller di memoria dove gli dice quale indirizzo di memoria vuole modificare ei dati che vuole scrivere.
  • Il controllore genera il codice ECC e lo invia in memoria.
  • I dati vengono archiviati in memoria.

D'altra parte, se viene letto dalla memoria.

  • La CPU invia una richiesta a un indirizzo di memoria al controller che effettua la richiesta alla RAM.
  • Il controllore esegue il codice di Hamming per eseguire il controllo, se i dati sono corretti vengono rispediti alla CPU, se non sono corretti viene eseguita automaticamente la procedura di correzione degli errori.

Moduli RAM con ECC

RAM ECC e non ECC

I moduli di memoria ECC hanno più chip di memoria nonostante abbiano la stessa capacità di archiviazione, poiché alcuni bit vengono utilizzati per la correzione degli errori. Bisogna tener conto che nella memoria ECC la parità non viene eseguita in ogni byte. Quello che fai è usare blocchi di 9 bit per byte, quindi alla fine avrai 64 bit per memorizzare i dati e 8 come bit di parità.

Ciò significa anche che il controller di memoria nel processore che comunica nella RAM deve essere in grado di generare il codice Hamming e poiché la memoria di tipo ECC viene solitamente utilizzata in CPU più avanzate delle CPU desktop, ciò significa che il supporto di questo tipo di memoria richiede non solo controller di memoria speciali, ma anche schede madri speciali che supportano questo tipo di memoria. Poiché un PC di casa non sarà sempre acceso e avrà riavvii regolari, non viene utilizzata la memoria ECC

Con questo arriviamo alla parte finale dell'articolo quali sono le RDIMM con ECC, che ovviamente uniscono le caratteristiche dei due tipi di RAM e con essa tutti i loro vantaggi e svantaggi. Ad oggi, dato che tutte le memorie RDIMM sono per server e HEDT e che il mercato richiede l'Error Correction Code, non esiste un solo modulo di memoria RDIMM che non sia ECC.