Čo je ECC pamäť?

click fraud protection

Niektoré pamäte RAM alebo pamäte s náhodným prístupom sa propagujú ako pamäť ECC. ECC je skratka pre Error Correcting Code a je to proces identifikácie a opravy chýb v pamäti. Chyby v pamäti RAM môžu spôsobiť poškodenie alebo zmenu údajov, čo môže viesť k zlyhaniu zariadenia a dokonca k bezpečnostným chybám. ECC RAM zvyčajne nie je kompatibilná s počítačovým hardvérom spotrebiteľskej triedy.

Čo sú chyby pamäte?

Chyby pamäte sú problémom, pri ktorom sa zmení hodnota uložená v pamäti. Dáta v RAM sú uložené v binárnom formáte s hodnotami 1 alebo 0. Ak sa hodnota 1 prepne na 0 alebo naopak, v procese nazývanom „preklápanie bitov“, údaje uložené v pamäti RAM sa zmenia.

Zmenený bit možno napríklad použiť na uloženie hodnoty do tabuľky. V tomto prípade by sa hodnota v tabuľke mohla zmeniť na úplne iné číslo by ovplyvnilo výsledok akýchkoľvek výpočtov, napríklad zmena ekonomických prognóz a podnikania. V iných prípadoch môže zmenený bit deaktivovať funkciu zabezpečenia alebo vytvoriť preklep, ktorý zmení spôsob spustenia programu. Tieto dva príklady je mimoriadne ťažké odhaliť a vyriešiť bez použitia pamäte ECC. V extrémnom scenári by prevrátenie jedného bitu mohlo spôsobiť katastrofickú chybu, ktorá spôsobí zlyhanie systému.

Preklápanie bitov má mnoho potenciálnych príčin, najčastejšou príčinou je výsledok žiarenia pozadia, primárne spôsobeného neutrónmi vytvorenými pri udalostiach kozmického žiarenia. Kozmické žiarenie je častica s vysokou energiou, zvyčajne protón, ktorý sa pohybuje takmer rýchlosťou svetla. Vyžarujú ich hviezdne telesá vrátane Slnka a iných vysokoenergetických astronomických objektov. Keď kozmický lúč zasiahne atóm, vytvorí sa spŕška neutrónov a iných subatómových častíc, tieto neutróny potom prechádzajú do sekundárnych interakcií.

Tieto interakcie sekundárnych neutrónov sa považujú za primárny zdroj chýb pri preklápaní bitov. Kozmické žiarenie je bežnejšie vo vyšších nadmorských výškach s 3,5-násobným nárastom vo výške 1,5 km nad morom a 300-násobným nárastom v cestovnej výške lietadiel. Toto zvýšené riziko v nadmorskej výške si vyžaduje dodatočné opatrenia na spoľahlivosť.

Aké časté sú chyby pamäte?

Väčšina ľudí nevidí, že ich počítače padajú každý deň, takže by bolo ľahké si myslieť, že ide predovšetkým o teoretické riziko. Na analýzu miery incidentov s preklápaním bitov sa použil výskum z dátových centier hyperscale. Výskum vykonaný spoločnosťou Google vo svojich dátových centrách ukázal chybovosť približne 1 jednobitovú chybu na gigabajt RAM každých 1,8 hodiny.

Misia Cassini-Huygens NASA, ktorá sa začala v roku 1997 na cestu k Saturnu, bola nakonfigurovaná s dvoma identickými letovými počítačmi, z ktorých každý má 2,5 Gb RAM. Počas prvých dva a pol roka svojej cesty kozmická loď pozorovala konzistentných 280 jednobitových chýb denne. Počas jedného dňa, keď bola Cassini-Huygens v ceste slnečnej erupcii, došlo k štvornásobnému zvýšeniu bit boli pozorované chyby, čo poskytuje ďalší dôkaz, že Slnko je príčinou väčšiny preklápania bitov problémy.

Existovali obavy, že pokračujúci nárast hustoty modulov RAM povedie k tomu, že neskoršie verzie pamäte RAM budú čoraz zraniteľnejšie voči prevráteniu bitov. Novšie štúdie ukázali, že opak je v skutočnosti pravdou, pretože chyby sa znížili so znížením geometrie procesu.

Ako chráni pamäť ECC pred chybami?

Pamäť ECC používa kódy na opravu chýb, ako sú Hammingove kódy, na opravu jednobitových chýb v pamäti RAM. Dvojité bitové chyby možno zistiť, ale nie opraviť. Hammingove kódy na opravu chýb fungujú pomocou poľa paritných bitov. Spoločne tieto paritné bity možno použiť na zistenie, či sa nejaké dátové bity zmenili. Ak je bit identifikovaný ako prevrátený, potom sa automaticky zmení späť.

Tip: Jednobitová chyba je incident s prevrátením bitov, keď sa preklopí iba jeden bit. Pri double0bit chybách sa dva bity preklopia. Pri tom istom incidente nie je potrebné preklopiť dva bity, k druhému prevráteniu bitov musí dôjsť iba pred opravou prvého prevráteného bitu.

V Hammingových kódoch na opravu chýb je zahrnutý jeden paritný bit viac, ako je potrebné. Tento extra paritný bit dáva kódu schopnosť zistiť výskyt dvojitých bitových chýb, tieto chyby sa však nedajú opraviť.

Proces detekcie a opravy chýb sa vykonáva na pamäťovom radiči na karte RAM.

Spotrebiteľská dostupnosť a podpora

Väčšina počítačového hardvéru pre spotrebiteľov nepodporuje pamäť ECC. Čiastočne ide o metódu umelého odlíšenia serverového hardvéru od spotrebného hardvéru. ECC RAM však stojí viac a beží o niečo pomalšie. Navyše, dodatočná stabilita, ktorú by poskytla domácim spotrebiteľom, je minimálna, pretože chyby pri preklápaní bitov nie sú primárnou príčinou zlyhania systému.

Žiadny z procesorov Intel pre spotrebiteľov a nadšencov nepodporuje pamäť ECC, podporujú ho iba jeho serverové CPU, ako napríklad CPU radu Xeon. Spotrebiteľské CPU AMD nepodporujú ECC, avšak ich CPU pracovnej stanice a servera, Threadripper a EPYC, podporujú pamäť ECC.