ECC paměť

Paměť ECC ( anglicky  error-correcting code memory , paměť s opravou chyb) je typ počítačové paměti , která automaticky rozpoznává a opravuje spontánní změny (chyby) v paměťových bitech . Paměť, která nepodporuje opravu chyb, je označena jako non-ECC .

Paměť na opravu chyb může obvykle opravit jednobitové změny v jediném strojovém slově . To znamená, že při čtení jednoho strojového slova z paměti bude načtena stejná hodnota, která byla dříve zapsána, i když v intervalu mezi zápisem a čtením došlo k náhodné změně jednoho bitu (například působením kosmického záření ). Obyčejná paměť obecně nedokáže zjistit, zda došlo k chybě, ačkoli některé typy paměti pro kontrolu parity mohou zjistit, zda došlo k chybě, ale nemohou ji opravit.

Paměť pro opravu chyb se používá ve většině počítačů, kde je důležitá doba provozuschopnosti, včetně většiny serverů. Aby paměť fungovala v režimu opravy chyb, je vyžadována podpora od řadiče RAM, který může být nedílnou součástí čipové sady nebo zabudovaný v systému na čipu , který je integrován s výpočetními jádry.

Nejzákladnější algoritmus opravy chyb je založen na Hammingově kódu . Existují však další algoritmy, které mohou opravit více než jednu chybu.

V praxi je paměť DDR* SDRAM ECC široce používána pro servery s kódem třídy SECDED (oprava jedné chyby a detekce dvojité chyby). Na paměťových modulech je na každých 8 čipů přidán jeden čip navíc, který ukládá ECC kódy o velikosti 8 bitů na každých 64 bitů hlavní paměti [2] .

Schémata ochrany dat ECC lze také aplikovat na paměť zabudovanou do mikroprocesorů: mezipaměť, soubor registru. Někdy se do výpočetních obvodů přidává i řízení.

Popis problému

Elektromagnetické rušení uvnitř počítačového systému může spontánně změnit stav paměťové buňky počítače . Nejčastější příčinou této změny jsou neutrony z kosmického záření [3] . Proto se chybovost v počítačových systémech zvyšuje s nadmořskou výškou . Tok neutronů je tedy 3,5krát větší ve výšce 1,5 km a 300krát větší ve výšce 10-12 km (typická výška letu osobního letadla) než u hladiny moře [4] . Systémy pracující ve velké nadmořské výšce proto vyžadují větší ochranu.

Například sonda Cassini-Huygens má dva identické rekordéry, z nichž každý obsahuje 2,5 gigabitu paměti. Během prvních 2,5 roku letu byl každý den zaznamenán zhruba konstantní počet chyb: přibližně 280 chyb za den. Během jednoho dne (6. listopadu 1997) se však počet chyb zčtyřnásobil. Předpokládá se, že se tak stalo v důsledku geomagnetické bouře [5] (také protonová bouře ), kterou zaznamenal satelit GOES 9 [6] .

Panují obavy, že trend k menším fyzickým velikostem paměťových modulů povede ke zvýšení chybovosti v důsledku toho, že částice s nižší energií budou schopny změnit bit [4] . Na druhou stranu kompaktní velikost paměti snižuje šanci, že se do ní dostanou částice. Navíc přechod na technologie, jako je křemík na izolátoru, může paměť učinit stabilnější [7] .

Studie provedená na velkém počtu serverů Google ukázala, že počet chyb může být od 25 000 do 70 000 na miliardu hodin zařízení ( anglicky  device hours ) na megabit (tj. 2,5–7,0 × 10 −11 chyb / bithodinu) [ 8] .

Technologie

Jedním z řešení problému je parita  – použití extra bitu, který zaznamenává paritu zbývajících bitů. Tento přístup umožňuje odhalit chyby, ale neumožňuje je opravit, takže pokud je zjištěna chyba, můžete pouze přerušit provádění programu.

Spolehlivější přístup je ten, který používá kódy pro opravu chyb . Nejčastěji používaným kódem pro opravu chyb je Hammingův kód . Většina typů paměti pro opravu chyb používaných v moderních počítačích dokáže opravit jednu bitovou chybu v jednom 64bitovém strojovém slově a detekovat, ale neopravit, dvoubitovou chybu v jediném 64bitovém slově [9] .

Nejúčinnější přístup k opravě chyb závisí na druhu očekávaných chyb. Často se předpokládá, že ke změnám různých bitů dochází nezávisle, v takovém případě je pravděpodobnost dvou chyb v jednom slově zanedbatelná. Tento předpoklad však neplatí pro moderní počítače. Technologie opravy chyb Chipkill ( IBM ) umožňuje opravit několik chyb, včetně poškození celého paměťového čipu . Mezi další technologie korekce paměti, které nepředpokládají nezávislost na bitových chybách, patří Extended ECC ( Sun Microsystems ), Chipspare ( Hewlett-Packard ) a SDDC ( Intel ).

Mnoho starších systémů hlásilo pouze ty chyby, které našly a které nebylo možné opravit, a nehlásilo ty, které byly opraveny. Moderní systémy zaznamenávají jak opravitelné chyby (CE, angl.  opravitelné chyby ), tak neopravitelné (UE, angl.  uncorrectable errors ). To vám umožní včas vyměnit poškozenou paměť: navzdory skutečnosti, že velký počet opravených chyb při absenci neopravitelných chyb neovlivňuje správnou činnost paměti, může to znamenat, že u tohoto paměťového modulu je pravděpodobnost výskytu neopravitelných chyb chyb v budoucnu bude přibývat [10] .

Výhody a nevýhody

Paměť pro opravu chyb chrání před nesprávným provozem počítačového systému v důsledku poškození paměti a snižuje pravděpodobnost fatálního selhání systému. Taková paměť však stojí více; základní deska , čipová sada a procesor , které podporují paměť pro opravu chyb, mohou být také dražší, takže taková paměť se obvykle používá pouze v systémech, které jsou klíčové pro hladký a správný provoz, jako je souborový server , vědecké a finanční aplikace.

Kontrola součtů často vyžaduje jeden cyklus řadiče paměti navíc. Další logika, která implementuje počítání, kontrolu ECC a opravu chyb, vyžaduje logické zdroje a čas pro práci buď v samotném paměťovém řadiči, nebo v rozhraní mezi CPU a paměťovým řadičem [11] . Paměť pro opravu chyb je tedy o 2–3 % pomalejší než konvenční paměť, v závislosti na aplikaci [12] .

Viz také

Poznámky

  1. Werner Fischer. RAM odhalena . admin store.com . Získáno 20. října 2014. Archivováno z originálu 20. října 2014.
  2. Archivovaná kopie (odkaz není dostupný) . Získáno 20. listopadu 2016. Archivováno z originálu 18. dubna 2016. 
  3. Rozrušení jedné události na Ground Level, Eugene Normand, člen, IEEE, Boeing Defense & Space Group, Seattle, WA 98124-2499
  4. 1 2 A Survey of Techniques for Modeling and Improving Reliability of Computing Systems “, IEEE TPDS, 2015
  5. Kuzněcov V. V. Slunečně-zemská fyzika (kurz přednášek pro studenty fyziky). Přednáška 7. Sluneční aktivita. // Sluneční bouře. Státní univerzita Gorno-Altaj. 2012 . Získáno 9. ledna 2018. Archivováno z originálu 18. září 2017.
  6. Gary M. Swift a Steven M. Guertin. „Pozorování za letu vícebitového rozrušení v DRAM“. Laboratoř proudového pohonu (nedostupný odkaz) . Získáno 17. dubna 2016. Archivováno z originálu 3. února 2015. 
  7. Borucki, „Porovnání zrychlených mír mírných chyb DRAM měřených na úrovni komponent a systému“, 46. výroční mezinárodní symposium fyziky spolehlivosti, Phoenix, 2008, str. 482–487
  8. Schroeder, Bianca; Pinheiro, Eduardo; Weber, Wolf-Dietrich. DRAM Errors in the Wild: A Large-Scale Field Study  (neurčité)  // SIGMETRICS/Performance. - ACM, 2009. - ISBN 978-1-60558-511-6 .
  9. Použití StrongArm SA-1110 v palubním počítači společnosti Nanosatellite . Tsinghua Space Center, Tsinghua University, Peking. Získáno 16. února 2009. Archivováno z originálu 2. října 2011.
  10. Doug Thompson, Mauro Carvalho Chehab. "EDAC - Error Detection And Correction" Archivováno z originálu 5. září 2009. . 2005-2009. "Cílem modulu jádra 'edac' je detekovat a hlásit chyby, ke kterým dochází v počítačovém systému běžícím pod linuxem."
  11. AMD-762™ System Controller Software/BIOS Design Guide, str. 179 . AMD (2002). Získáno 21. listopadu 2016. Archivováno z originálu 21. listopadu 2016. „Dodatečná logika pro podporu funkce ECC je nákladná jak z hlediska křemíkových nemovitostí, tak z hlediska časování systému. V režimech ECC, které podporují opravu dat, musí být ke generování opravených dat použity další systémové hodiny… Procesor AMD Athlon kontroluje své vlastní chyby."
  12. Diskuse o ECC na pcguide . Pcguide.com (17. dubna 2001). Získáno 23. listopadu 2011. Archivováno z originálu 18. listopadu 2011.

Odkazy