Što je ECC memorija?

click fraud protection

Neki RAM, ili memorija s slučajnim pristupom, reklamiraju se kao ECC memorija. ECC je skraćenica od Error Correcting Code i proces je identificiranja i ispravljanja pogrešaka u memoriji. Pogreške u RAM-u mogu uzrokovati oštećenje ili promjenu podataka, što može dovesti do pada uređaja, pa čak i sigurnosnih ranjivosti. ECC RAM obično nije kompatibilan s PC hardverom potrošačkog razreda.

Što su memorijske pogreške?

Pogreške u memoriji problem su u kojem se mijenja vrijednost pohranjena u memoriji. Podaci u RAM memoriji se pohranjuju u binarnom obliku, s vrijednostima 1 ili 0. Ako se vrijednost 1 prebaci na 0 ili obrnuto, u procesu koji se naziva "prevrtanje bita", podaci koji su pohranjeni u RAM-u se mijenjaju.

Na primjer, promijenjeni bit bi se mogao koristiti za pohranjivanje vrijednosti u proračunsku tablicu. U tom se slučaju vrijednost u proračunskoj tablici može promijeniti u potpuno drugačiji broj koji bi utjecalo na rezultat za bilo kakve izračune, na primjer mijenjanje ekonomskih predviđanja a poslovanje. U drugim slučajevima, promijenjeni bit bi mogao onemogućiti sigurnosnu značajku ili stvoriti pogrešku pri pisanju koja mijenja način na koji se program izvodi. Ova dva primjera iznimno je teško otkriti i riješiti bez upotrebe ECC memorije. U ekstremnom scenariju, okretanje jednog bita moglo bi uzrokovati katastrofalnu pogrešku koja uzrokuje pad sustava.

Prevrtanje bitova ima mnogo potencijalnih uzroka, a najčešći uzrok je posljedica pozadinskog zračenja, prvenstveno uzrokovanog neutronima stvorenim događajima kozmičkih zraka. Kozmička zraka je čestica visoke energije, obično proton, koja putuje skoro brzinom svjetlosti. Emitiraju ih zvjezdana tijela, uključujući Sunce i druge visokoenergetske astronomske objekte. Kada kozmička zraka udari u atom, stvara se pljusak neutrona i drugih subatomskih čestica, ti neutroni tada nastavljaju imati sekundarne interakcije.

Vjeruje se da su te sekundarne neutronske interakcije primarni izvor grešaka pri okretanju bita. Kozmičke zrake su češće na većim visinama s povećanjem od 3,5x na 1,5km nadmorske visine i 300x povećanjem na visini krstarenja zrakoplova. Ovaj povećani rizik na visini zahtijeva dodatne mjere pouzdanosti.

Koliko su česte greške u memoriji?

Većina ljudi ne vidi da im se računala padaju svaki dan, pa bi bilo lako pomisliti da je to prvenstveno teoretski rizik. Istraživanje iz hiperscale podatkovnih centara korišteno je za analizu stope incidenata okretanja bitova. Istraživanje koje je Google proveo u svojim podatkovnim centrima pokazalo je stopu pogreške od otprilike 1 jednobitne pogreške po gigabajtu RAM-a svakih 1,8 sati.

Nasina misija Cassini-Huygens koja je pokrenuta 1997. za putovanje na Saturn bila je konfigurirana s dva identična računala za letenje s po 2,5 Gb RAM-a. Tijekom prve dvije i pol godine svog putovanja, letjelica je uočila dosljednih 280 jednobitnih grešaka dnevno. Tijekom jednog dana, kada je Cassini-Huygens bio na putu sunčeve baklje, četverostruko povećanje bit uočene su pogreške, pružajući dodatne dokaze da je Sunce uzrok većine okretanja bitova pitanja.

Postojala je zabrinutost da će kontinuirano povećanje gustoće RAM modula dovesti do toga da će kasnije verzije RAM-a biti sve ranjivije na okretanje bitova. Novije studije su pokazale da je u stvari upravo suprotno, jer su se pogreške smanjile kako se smanjila geometrija procesa.

Kako ECC memorija štiti od pogrešaka?

ECC memorija koristi kodove za ispravljanje pogrešaka, kao što su Hammingovi kodovi, za ispravljanje jednobitnih pogrešaka u RAM-u. Dvostruke greške se mogu otkriti, ali ne i ispraviti. Hammingovi kodovi za ispravljanje pogrešaka rade korištenjem niza bitova parnosti. Zajedno ovi paritetni bitovi mogu se koristiti za otkrivanje jesu li promijenjeni bitovi podataka. Ako se utvrdi da je bit preokrenut, automatski se vraća natrag.

Savjet: Jednobitna pogreška je incident s okretanjem bita kada se okrene samo jedan bit. U pogreškama double0bit dva bita se okreću. Dva bita se ne moraju preokrenuti u istom incidentu, drugo okretanje bita treba se dogoditi samo prije nego što se ispravi prvi preokrenuti bit.

U Hammingove kodove za ispravljanje pogrešaka uključen je jedan bit parnosti više nego što je potrebno. Ovaj dodatni bit parnosti daje kodu mogućnost da otkrije pojavu dvostrukih bitnih pogrešaka, međutim, te se pogreške ne mogu ispraviti.

Proces otkrivanja i ispravljanja pogrešaka izvodi se na memorijskom kontroleru na RAM sticku.

Dostupnost i podrška potrošačima

Većina PC hardvera potrošačke klase ne podržava ECC memoriju. Ovo je djelomično kao metoda umjetnog razlikovanja hardvera poslužitelja od hardvera potrošača. ECC RAM, međutim, košta više i radi nešto sporije. Osim toga, dodatna stabilnost koju bi pružila kućnim potrošačima je minimalna jer pogreške pri okretanju bitova nisu primarni uzrok rušenja sustava.

Niti jedan od Intelovih CPU-a za potrošače i entuzijaste ne podržava ECC memoriju, nego samo njegovi CPU-ovi za poslužitelje, kao što su CPU-ovi iz serije Xeon. AMD-ovi CPU-ovi potrošačkog razreda ne podržavaju ECC, međutim, njihove radne stanice i procesori za poslužitelje, Threadripper i EPYC, podržavaju ECC memoriju.