Molti si sono sempre chiesti perché mai sprecare un casino di soldi in più per avere delle memorie che non hanno prestazioni superiori in termini velocistici, e anzi risultano in alcuni casi pure più lente. Cerchiamo di capire il motivo.
Inizierò raccontandovi un piccolo aneddoto capitatomi ultimamente. Giorni fa col mio notebook sono incappato in uno strano problema: archivi RAR che venivano compressi apparentemente senza alcun errore ma fallivano la verifica CRC se usavo le opzioni di compressione migliori. Problemi di questo tipo il più delle volte vengono causati da hard disk difettosi o bug software, ma non in questo caso, hard disk, salute del sistema, e software di compressione erano tutti perfettamente in regola. Al che, inizio a sospettare della RAM, faccio un test della memoria alla prima passata tutto fila liscio, ma già dalla seconda appare un’anomalia nel test di “bit fading” che si occupa di appurare che i valori caricati in memoria vengano correttamente cancellati, e l’anomalia si ripete nelle successive passate, e dove ci doveva stare uno 0, si trovava invece un valore casuale.
Ecco la causa del problema!
Visto che le memorie RAM sono componenti che non soffrono particolarmente l’usura e se funzionano perfettamente appena tirate fuori dalla scatola, nella stragrande maggioranza dei casi funzioneranno anche dopo anni, e visto che da persona molto precisa mi ero preoccupato di testarle accuratamente dopo l’acquisto, prima di procedere con la sostituzione, provo a rimuoverle, uso un aspiratore per togliere la polvere dagli slot, e ripeto il test. Tutto perfetto questa volta, provo anche a lasciare il software di test attivo tutta la notte e al mio risveglio idem, nessun errore rilevato.
Anche se alla fine tutto si è risolto per il meglio, ora non verrà difficile capire che un problema così subdolo è molto difficile da rivelare e correlare alla memoria. Perché se le memorie comuni (non-ECC) se sono severamente guaste chiaramente non faranno avviare il sistema, oppure si avranno continui crash, ma se si trovano ad aver problemi minori in una delle loro celle dove non sono residenti processi di sistema con un valore invece che un altro, allora il discorso cambia e tutto potrà anche apparentemente funzionare per il meglio, quando invece un’analisi matematica potrebbe tirare fuori valori sballati, un’immagine avere piccole anomalie e tutta una lunghissima serie di inconvenienti impensabili.
Immaginate se un server che gestisce operazioni finanziarie oppure processi critici su grandi quantità di dati, può permettersi di rischiare di trovarsi in situazioni del genere, dove basta un po’ di polvere per far smettere di quadrare i conti, sarebbe catastrofico e ci si accorgerebbe del problema solo quando ormai è troppo tardi e magari gli utilizzatori del servizio sono imbufaliti ad assediare i call center dell’azienda.
Qui entrano in gioco le memorie ECC, le memorie ECC (Error Correction Code) sono in grado di rivelare gli errori e in determinati casi anche correggerli, per questo motivo sono fondamentali nel caso si voglia allestire un server che processa dati importanti, il codice Hamming supportato dal loro hardware, è infatti in grado di correggere l’errore rilevato ogni blocco di 64bit (QWORD), se è uno solo, e rivelare errori di 2 bit per blocco.
Tutto questo rende il server parecchio più sicuro ed affidabile, anche se ovviamente in casi limite neanche l’ECC basta e bisogna affidarsi ad ulteriori tecniche che fanno uso di ridondanza dei dati.
Per i PC non adibiti a server siano essi PC usati per lavoro, o uso privato per evitare spiacevoli sorprese sarebbe buona norma fare controlli periodici della memoria. Per farlo, il modo migliore è usare Memtest86 di PassMark che offre anche nella versione gratuita un set completo di test più che adeguato a verificare l’affidabilità della memoria. A partire dalla versione 6, è stato incluso anche l’Hammering Test pensato per rilevare anche degli errori di disturbo elettrico che secondo recenti ricerche sarebbero presenti in moltissime memorie prodotte dal 2010 in poi, L’Hammering Test è veramente stressante per la memoria ed eventuali errori sporadici riscontrati da esso non significano necessariamente che la memoria è difettosa e va cambiata o pulita, è più che altro un modo per misurarne la qualità e la stabilità, perciò consiglio di selezionare tutti i test tranne questo e fare 4-5 passate, che dovrebbero essere più che sufficienti a rilevare problemi, se volete solo assicurarvi che la RAM sia funzionante; notate che comunque il test può durare parecchie ore e sarà tanto più lungo quanta più RAM avrete, e tanti più passaggi gli farete fare.