Pomnilnik ECC, znan tudi kot pomnilnik kode za popravljanje napak, ima zmožnost odkrivanja in popravljanja napak v podatkih. Običajno se uporablja v vrhunskih namiznih računalnikih, strežnikih in delovnih postajah za izboljšanje stabilnosti in varnosti sistema.
Pomnilnik je elektronska naprava in med njegovim delovanjem lahko pride do napak. Pri uporabnikih z visokimi zahtevami glede stabilnosti lahko napake v pomnilniku povzročijo kritične težave. Napake pomnilnika lahko razvrstimo v dve vrsti: trde napake in mehke napake. Trde napake povzročajo poškodbe ali okvare strojne opreme, podatki pa so dosledno napačni. Teh napak ni mogoče popraviti. Po drugi strani pa se mehke napake pojavljajo naključno zaradi dejavnikov, kot so elektronske motnje v bližini pomnilnika, in jih je mogoče popraviti.
Za odkrivanje in popravljanje napak v mehkem pomnilniku je bil uveden koncept "paritetnega preverjanja" pomnilnika. Najmanjša enota v pomnilniku je bit, predstavljen z 1 ali 0. Osem zaporednih bitov sestavlja bajt. Pomnilnik brez paritetnega preverjanja ima le 8 bitov na bajt in če kateri koli bit shrani napačno vrednost, lahko povzroči napačne podatke in napake v aplikaciji. Preverjanje parnosti doda vsakemu bajtu dodaten bit kot bit za preverjanje napak. Po shranjevanju podatkov v bajtu ima osem bitov fiksen vzorec. Na primer, če biti shranjujejo podatke kot 1, 1, 1, 0, 0, 1, 0, 1, je vsota teh bitov liha (1+1+1+0+0+1+0+1=5 ). Za sodo parnost je paritetni bit definiran kot 1; v nasprotnem primeru je 0. Ko CPE prebere shranjene podatke, sešteje prvih 8 bitov in primerja rezultat s paritetnim bitom. Ta postopek lahko zazna napake v pomnilniku, vendar jih preverjanje parnosti ne more popraviti. Poleg tega preverjanje parnosti ne more zaznati dvobitnih napak, čeprav je verjetnost dvobitnih napak majhna.
Pomnilnik ECC (Error Checking and Correcting) pa poleg podatkovnih bitov shrani šifrirano kodo. Ko se podatki zapišejo v pomnilnik, se shrani ustrezna koda ECC. Pri branju shranjenih podatkov se shranjena koda ECC primerja z novo generirano kodo ECC. Če se ne ujemata, se kodi dekodirata, da se identificira napačen bit v podatkih. Napačni bit se nato zavrže in pomnilniški krmilnik sprosti pravilne podatke. Popravljeni podatki se redko zapišejo nazaj v pomnilnik. Če se ponovno preberejo isti napačni podatki, se postopek popravka ponovi. Ponovno pisanje podatkov lahko povzroči dodatne stroške, kar povzroči opazno zmanjšanje zmogljivosti. Vendar pa je pomnilnik ECC ključnega pomena za strežnike in podobne aplikacije, saj omogoča odpravljanje napak. Pomnilnik ECC je zaradi dodatnih funkcij dražji od navadnega pomnilnika.
Uporaba pomnilnika ECC lahko pomembno vpliva na delovanje sistema. Čeprav lahko zmanjša splošno zmogljivost, je popravljanje napak bistveno za kritične aplikacije in strežnike. Zato je pomnilnik ECC običajna izbira v okoljih, kjer sta celovitost podatkov in stabilnost sistema najpomembnejši.
Čas objave: 19. julij 2023