Ce este memoria ECC?

Unele RAM, sau memorie cu acces aleatoriu, sunt anunțate ca memorie ECC. ECC înseamnă Cod de corectare a erorilor și este un proces de identificare și corectare a erorilor din memorie. Erorile din RAM pot cauza coruperea sau alterarea datelor, ceea ce poate duce la blocarea dispozitivului și chiar la vulnerabilități de securitate. RAM ECC nu este de obicei compatibilă cu hardware-ul PC-ului de consum.

Ce sunt erorile de memorie?

Erorile de memorie sunt o problemă în care valoarea stocată în memorie este modificată. Datele din RAM sunt stocate în binar, cu valori de 1 sau 0. Dacă valoarea unui 1 este schimbată la 0 sau invers, într-un proces numit „bit-flipping”, datele care sunt stocate în RAM se modifică.

De exemplu, bitul modificat ar putea fi folosit pentru a stoca o valoare într-o foaie de calcul. În acest caz, valoarea din foaia de calcul ar putea fi schimbată cu un număr complet diferit care ar afecta rezultatul oricăror calcule, de exemplu modificarea previziunilor economice ale a Afaceri. În alte cazuri, bitul modificat ar putea dezactiva o caracteristică de securitate sau poate crea o greșeală de tipar care modifică modul în care este rulat un program. Aceste două exemple sunt extrem de dificil de detectat și rezolvat fără utilizarea memoriei ECC. Într-un scenariu extrem, un singur bit care este răsturnat ar putea provoca o eroare catastrofală care provoacă o prăbușire a sistemului.

Bit-flipping are multe cauze potențiale, cea mai frecventă cauză este rezultatul radiației de fundal, cauzată în principal de neutroni creați de evenimentele razelor cosmice. O rază cosmică este o particulă de înaltă energie, de obicei un proton, care se deplasează aproape cu viteza luminii. Ele sunt emise de corpurile stelare, inclusiv Soarele și alte obiecte astronomice de înaltă energie. Când o rază cosmică lovește un atom, se creează o ploaie de neutroni și alte particule subatomice, acești neutroni continuă să aibă interacțiuni secundare.

Se crede că aceste interacțiuni secundare cu neutroni sunt sursa primară a erorilor de schimbare a biților. Razele cosmice sunt mai frecvente la altitudini mai mari, cu o creștere de 3,5 ori la 1,5 km deasupra nivelului mării și o creștere de 300 ori la altitudinea de croazieră a avioanelor. Acest risc crescut la altitudine necesită măsuri suplimentare de fiabilitate.

Cât de frecvente sunt erorile de memorie?

Majoritatea oamenilor nu văd computerele lor blocându-se în fiecare zi, așa că ar fi ușor să ne gândim că acesta este în primul rând un risc teoretic. Cercetările de la centrele de date hiperscale au fost folosite pentru a analiza rata incidentelor de întorsătură de biți. Cercetările efectuate de Google în centrele sale de date au arătat o rată de eroare de aproximativ 1 eroare pe un singur bit per gigabyte de RAM la fiecare 1,8 ore.

Misiunea Cassini-Huygens a NASA, lansată în 1997 pentru a călători la Saturn, a fost configurată cu două computere de zbor identice, fiecare cu 2,5 Gb de RAM. În primii doi ani și jumătate ai călătoriei sale, nava spațială a observat un număr consistent de 280 de erori pe un singur bit pe zi. Într-o zi, când Cassini-Huygens se afla în calea unei erupții solare, o creștere de patru ori a bitului au fost observate erori, oferind dovezi suplimentare că Soarele este cauza celor mai multe inversări de biți probleme.

Au existat îngrijorări că creșterea continuă a densității modulelor RAM ar duce la ca versiunile ulterioare ale RAM să fie din ce în ce mai vulnerabile la inversări de biți. Studii mai recente au arătat că de fapt este opusul, deoarece erorile au scăzut pe măsură ce geometria procesului a scăzut.

Cum protejează memoria ECC împotriva erorilor?

Memoria ECC utilizează coduri de corectare a erorilor, cum ar fi codurile Hamming, pentru a corecta erorile pe un singur bit din RAM. Erorile dublu bit pot fi detectate, dar nu corectate. Codurile Hamming de corectare a erorilor funcționează folosind o serie de biți de paritate. Împreună, acești biți de paritate pot fi utilizați pentru a detecta dacă s-au schimbat biți de date. Dacă un bit este identificat ca fiind răsturnat, atunci acesta este schimbat înapoi automat.

Sfat: O eroare pe un singur bit este un incident de întoarcere a biților atunci când este inversat doar un singur bit. În erorile double0bit, doi biți sunt inversați. Cei doi biți nu trebuie să fie inversați în același incident, al doilea bit-flip trebuie să aibă loc doar înainte ca primul bit răsturnat să fie corectat.

Un bit de paritate mai mult decât este necesar este inclus în codurile de corectare a erorilor Hamming. Acest bit de paritate suplimentar oferă codului capacitatea de a detecta apariția erorilor de biți dubli, cu toate acestea, aceste erori nu pot fi corectate.

Procesul de detectare și corectare a erorilor se realizează pe controlerul de memorie de la bordul stick-ului RAM.

Disponibilitatea și suportul consumatorilor

Majoritatea hardware-ului PC pentru consumator nu acceptă memoria ECC. Aceasta este parțial ca o metodă de a distinge artificial hardware-ul serverului de hardware-ul de consum. RAM ECC, cu toate acestea, costă mai mult și funcționează puțin mai lent. În plus, stabilitatea suplimentară pe care ar oferi consumatorilor casnici este minimă, deoarece erorile de schimbare a biților nu sunt cauza principală a blocărilor sistemului.

Niciunul dintre procesoarele Intel pentru consumatori și entuziaști nu acceptă memoria ECC, ci doar procesoarele sale de nivel server, cum ar fi procesoarele din gama Xeon. Procesoarele AMD pentru consumator nu acceptă ECC, cu toate acestea, procesoarele lor de tip stație de lucru și server, Threadripper și, respectiv, EPYC, acceptă memoria ECC.