Kaj je ECC pomnilnik?

Nekateri RAM ali pomnilnik z naključnim dostopom se oglašujejo kot pomnilnik ECC. ECC je kratica za kodo za popravljanje napak in je proces prepoznavanja in popravljanja napak v pomnilniku. Napake v RAM-u lahko povzročijo poškodbe ali spremembe podatkov, kar lahko povzroči zrušitve naprave in celo varnostne ranljivosti. ECC RAM običajno ni združljiv s strojno opremo osebnega računalnika za potrošnike.

Kaj so napake v pomnilniku?

Napake v pomnilniku so težava, pri kateri se vrednost, shranjena v pomnilniku, spremeni. Podatki v RAM-u so shranjeni v binarnem sistemu z vrednostmi 1 ali 0. Če se vrednost 1 preklopi na 0 ali obratno, se v procesu, imenovanem "preobračanje bitov", spremenijo podatki, ki so shranjeni v RAM-u.

Spremenjen bit bi lahko na primer uporabili za shranjevanje vrednosti v preglednici. V tem primeru bi lahko vrednost v preglednici spremenili v povsem drugo številko, ki bi vplivalo na rezultat za kakršne koli izračune, na primer spreminjanje gospodarskih napovedi a posel. V drugih primerih lahko spremenjeni bit onemogoči varnostno funkcijo ali ustvari tipkarsko napako, ki spremeni način izvajanja programa. Ta dva primera je izjemno težko zaznati in razrešiti brez uporabe pomnilnika ECC. V skrajnem scenariju lahko en sam bit, ki ga obrnete, povzroči katastrofalno napako, ki povzroči zrušitev sistema.

Preobrat bitov ima veliko možnih vzrokov, najpogostejši vzrok je posledica sevanja ozadja, ki ga povzročajo predvsem nevtroni, ki jih ustvarijo dogodki kozmičnih žarkov. Kozmični žarek je visokoenergetski delec, običajno proton, ki potuje s skoraj svetlobno hitrostjo. Oddajajo jih zvezdna telesa, vključno s Soncem in drugimi visokoenergetskimi astronomskimi objekti. Ko kozmični žarek zadene atom, nastane ploha nevtronov in drugih subatomskih delcev, ti nevtroni nato nadaljujejo s sekundarnimi interakcijami.

Verjame se, da so te sekundarne nevtronske interakcije primarni vir napak pri obračanju bitov. Kozmični žarki so pogostejši na višjih nadmorskih višinah s 3,5-kratnim povečanjem na 1,5 km nadmorske višine in 300-kratnim povečanjem na višini križarjenja letalskih letal. To povečano tveganje na višini zahteva dodatne ukrepe za zanesljivost.

Kako pogoste so napake v pomnilniku?

Večina ljudi ne vidi, da se njihovi računalniki zrušijo vsak dan, zato bi bilo enostavno misliti, da je to predvsem teoretično tveganje. Raziskave iz podatkovnih centrov s hiperskalonom so bile uporabljene za analizo stopnje incidentov s preobratom bitov. Raziskave, ki jih je izvedel Google v svojih podatkovnih centrih, so pokazale stopnjo napake približno 1 enobitno napako na gigabajt RAM-a vsakih 1,8 ure.

Nasina misija Cassini-Huygens, ki se je začela leta 1997 za potovanje na Saturn, je bila konfigurirana z dvema enakima letalskima računalnikoma, vsak z 2,5 Gb RAM-a. V prvih dveh letih in pol svojega potovanja je vesoljsko plovilo opazilo doslednih 280 enobitnih napak na dan. V enem dnevu, ko je bil Cassini-Huygens na poti sončnega izbruha, se je bit so bile opažene napake, ki so zagotovile dodatne dokaze, da je Sonce vzrok za večino preobratov bitov vprašanja.

Pojavljali so se pomisleki, da bi nadaljnje povečevanje gostote modulov RAM vodilo do tega, da bi bile poznejše različice RAM-a vse bolj ranljive za preobrate bitov. Novejše študije so pokazale, da je v resnici ravno nasprotno, saj so se napake zmanjšale, ko se je geometrija procesa zmanjšala.

Kako pomnilnik ECC ščiti pred napakami?

Pomnilnik ECC uporablja kode za odpravljanje napak, kot so Hammingove kode, za popravljanje enobitnih napak v RAM-u. Dvobitne napake je mogoče zaznati, vendar jih ni mogoče popraviti. Hammingove kode za odpravljanje napak delujejo z uporabo niza paritetnih bitov. Ti paritetni biti se lahko skupaj uporabijo za odkrivanje, ali so se kateri koli podatkovni biti spremenili. Če se ugotovi, da je bit obrnjen, se samodejno spremeni nazaj.

Namig: Enobitna napaka je incident z obračanjem bitov, ko je obrnjen samo en bit. Pri dvojno-bitnih napakah se dva bita obrneta. Dveh bitov ni treba obrniti v istem incidentu, drugi preobrat bita se mora zgoditi le, preden se popravi prvi obrnjeni bit.

En parnostni bit več, kot je potrebno, je vključen v Hammingove kode za popravljanje napak. Ta dodatni bit parnosti daje kodi možnost, da zazna pojav dvojnih bitnih napak, vendar teh napak ni mogoče popraviti.

Postopek odkrivanja in popravljanja napak se izvaja na krmilniku pomnilnika na RAM ključu.

Dostopnost in podpora za potrošnike

Večina računalniške strojne opreme potrošniškega razreda ne podpira pomnilnika ECC. To je delno kot metoda umetnega razlikovanja strežniške strojne opreme od potrošniške strojne opreme. ECC RAM pa stane več in deluje nekoliko počasneje. Poleg tega je dodatna stabilnost, ki bi jo zagotovila domačim potrošnikom, minimalna, saj napake pri menjavi bitov niso glavni vzrok za zrušitve sistema.

Nobeden od Intelovih procesorjev za potrošnike in navdušence ne podpira ECC pomnilnika, podpirajo ga samo njegovi strežniški CPE, kot so CPE serije Xeon. AMD-jevi procesorji za potrošnike ne podpirajo ECC, vendar njihova delovna postaja in procesorja strežniškega razreda, Threadripper oziroma EPYC, podpirata pomnilnik ECC.