ECC memória

Az ECC memória ( angolul  hibajavító kódmemória , memória hibajavítással) egy olyan számítógépes memória , amely automatikusan felismeri és kijavítja a memóriabitek spontán változásait (hibáit). A hibajavítást nem támogató memória nem ECC- nek minősül .

A hibajavító memória általában egyetlen gépszóban képes egybites változtatásokat korrigálni . Ez azt jelenti, hogy egy gépi szó memóriából történő kiolvasásakor ugyanaz az érték lesz beolvasva, mint amit korábban írtunk, még akkor is, ha az írás és az olvasás közötti intervallumban egy bit véletlenül megváltozott (például kozmikus sugarak hatására ). A közönséges memória általában nem tudja megállapítani, hogy hiba történt-e, bár bizonyos típusú paritásellenőrző memória képes megállapítani, ha hiba történt, de nem tudja kijavítani.

Hibajavító memóriát a legtöbb olyan számítógépen használnak, ahol fontos az üzemidő, beleértve a legtöbb szervert is. Ahhoz, hogy a memória hibajavító módban működjön, a RAM-vezérlő támogatása szükséges, amely lehet a lapkakészlet szerves része, vagy a számítási magokkal integrált lapkán található rendszerbe ágyazva.

A legalapvetőbb hibajavító algoritmus a Hamming kódon alapul . Vannak azonban más algoritmusok is, amelyek több hibát is kijavíthatnak.

A gyakorlatban a DDR* SDRAM ECC memóriát széles körben használják SECDED osztálykóddal rendelkező szervereknél (egyszeri hibajavítás és kettős hibaészlelés). A memóriamodulokon minden 8 chiphez egy további chip kerül hozzáadásra, amely 8 bites méretű ECC kódokat tárol minden 64 bites főmemória után [2] .

Valamint ECC adatvédelmi sémák alkalmazhatók a mikroprocesszorokba épített memóriára: cache memória, regiszterfájl. Néha a vezérlést is hozzáadják a számítási áramkörökhöz.

A probléma leírása

A számítógépes rendszeren belüli elektromágneses interferencia spontán módon megváltoztathatja a számítógép memóriacellájának állapotát . Ennek a változásnak a leggyakoribb oka a kozmikus sugarakból származó neutronok [3] . Ezért a számítógépes rendszerek hibaaránya a magasság növekedésével nő . Így a neutronfluxus 3,5-szer nagyobb 1,5 km magasságban és 300-szor nagyobb 10-12 km magasságban (tipikus utasszállító repülőgép repülési magasság), mint tengerszinten [4] . Ezért a nagy magasságban működő rendszerek nagyobb védelmet igényelnek.

Például a Cassini-Huygens űrszondának két egyforma felvevője van, amelyek mindegyike 2,5 gigabit memóriát tartalmaz. A repülés első 2,5 évében nagyjából állandó számú hibát rögzítettek minden nap: körülbelül napi 280 hibát. Egy napon belül (1997. november 6-án) azonban a hibák száma megnégyszereződött. Feltételezések szerint ez egy geomágneses vihar [5] (egyben protonvihar ) miatt történt, amelyet a GOES 9 műhold [6] rögzített .

Aggodalomra ad okot, hogy a memóriamodulok kisebb fizikai mérete felé mutató tendencia a hibaarány növekedéséhez vezet, mivel az alacsonyabb energiájú részecskék képesek lesznek megváltoztatni a bitet [4] . Másrészt a memória kompakt mérete csökkenti annak esélyét, hogy részecskék kerüljenek bele. Ezenkívül az olyan technológiákra való átállás, mint a szilícium a szigetelőn , stabilabbá teheti a memóriát [7] .

Egy nagyszámú Google -szerveren végzett tanulmány kimutatta, hogy a hibák száma 25 000 és 70 000 között lehet milliárd eszközóránként ( angolul  eszközóra ) megabitonként (azaz 2,5-7,0 × 10 -11 hiba/bitóra) [ 8] .

Technológia

A probléma egyik megoldása a paritás  – egy extra bit használata, amely rögzíti a fennmaradó bitek paritását. Ez a megközelítés lehetővé teszi a hibák észlelését, de nem teszi lehetővé azok javítását, így hiba észlelése esetén csak a program végrehajtását szakíthatja meg.

Megbízhatóbb megközelítés az, amely hibajavító kódokat használ . A leggyakrabban használt hibajavító kód a Hamming-kód . A modern számítógépekben használt hibajavító memória legtöbb típusa képes kijavítani egy 64 bites gépszó egyetlen bites hibáját, és egyetlen 64 bites szóban észleli, de nem javítja a kétbites hibát [9] .

A hibajavítás leghatékonyabb módja a várható hibák típusától függ. Gyakran feltételezik, hogy a különböző bitek változása egymástól függetlenül történik, ebben az esetben egy szóban elhanyagolható a két hiba valószínűsége. Ez a feltételezés azonban nem érvényes a modern számítógépekre. A Chipkill ( IBM ) hibajavító technológia lehetővé teszi számos hiba kijavítását, beleértve azt is, ha a teljes memóriachip megsérül . A bithiba-függetlenséget nem feltételező egyéb memóriajavító technológiák közé tartozik az Extended ECC ( Sun Microsystems ), a Chipspare ( Hewlett-Packard ) és az SDDC ( Intel ).

Sok régebbi rendszer csak azokat a hibákat jelentette, amelyeket nem lehetett javítani, és nem jelentette a javított hibákat. A modern rendszerek rögzítik a javítható hibákat (CE, eng.  javítható hibák ) és a nem javítható (UE, eng.  uncorrectable errors ) hibákat is. Ez lehetővé teszi a sérült memória időben történő cseréjét: annak ellenére, hogy a helyrehozhatatlan hibák hiányában kijavított hibák nagy száma nem befolyásolja a memória megfelelő működését, ez azt jelezheti, hogy ennél a memóriamodulnál a javíthatatlan hiba előfordulásának valószínűsége a hibák száma a jövőben növekedni fog [10] .

Előnyök és hátrányok

A hibajavító memória megvéd a számítógépes rendszer memóriasérülés miatti helytelen működésétől, és csökkenti a végzetes rendszerhiba valószínűségét. Az ilyen memória azonban többe kerül; a hibajavító memóriát támogató alaplap , lapkakészlet és processzor is drágább lehet, ezért az ilyen memóriát általában csak olyan rendszerekben használják, amelyek kritikusak a zökkenőmentes és megfelelő működéshez, mint például fájlszerver , tudományos és pénzügyi alkalmazások.

Az összegek ellenőrzéséhez gyakran szükség van a memóriavezérlő egy extra ciklusára. A számlálást, ECC ellenőrzést és hibajavítást megvalósító további logika logikai erőforrásokat és időt igényel, hogy működjön akár magában a memóriavezérlőben, akár a CPU és a memóriavezérlő közötti interfészben [11] . Ezért a hibajavító memória az alkalmazástól függően 2-3%-kal lassabb, mint a hagyományos memória [12] .

Lásd még

Jegyzetek

  1. Werner Fischer. RAM Revealed . admin store.com . Letöltve: 2014. október 20. Az eredetiből archiválva : 2014. október 20..
  2. Archivált másolat (a hivatkozás nem elérhető) . Letöltve: 2016. november 20. Az eredetiből archiválva : 2016. április 18.. 
  3. Egyetlen esemény felborulása földi szinten, Eugene Normand, az IEEE tagja, a Boeing Defense & Space Group, Seattle, WA 98124-2499
  4. 1 2 " Felmérés a számítástechnikai rendszerek modellezésére és megbízhatóságának javítására szolgáló technikákról ", IEEE TPDS, 2015
  5. Kuznyecov V. V. Nap-földi fizika (előadások kurzusa fizikus hallgatók számára). 7. előadás Naptevékenység. // Napviharok. Gorno-Altáj Állami Egyetem. 2012 . Letöltve: 2018. január 9. Az eredetiből archiválva : 2017. szeptember 18..
  6. Gary M. Swift és Steven M. Guertin. "DRAM-ok többszörös bites felfordulásának repülés közbeni megfigyelései". Jet Propulsion Laboratory (nem elérhető link) . Letöltve: 2016. április 17. Az eredetiből archiválva : 2015. február 3.. 
  7. Borucki, "Comparison of Accelerated DRAM Soft Error Rates Measured at Component and System Level", 46th Annual International Reliability Physics Symposium, Phoenix, 2008, pp. 482–487
  8. Schroeder, Bianca; Pinheiro, Eduardo; Weber, Wolf-Dietrich. DRAM-hibák a vadonban: nagyszabású terepi vizsgálat  (határozatlan idejű)  // SIGMETRICS/Performance. - ACM, 2009. - ISBN 978-1-60558-511-6 .
  9. A StrongArm SA-1110 használata a Nanosatellite fedélzeti számítógépében . Tsinghua Űrközpont, Tsinghua Egyetem, Peking. Letöltve: 2009. február 16. Az eredetiből archiválva : 2011. október 2..
  10. Doug Thompson, Mauro Carvalho Chehab. "EDAC - Error Detection And Correction" Az eredetiből archiválva 2009. szeptember 5-én. . 2005-2009. "Az "edac" kernelmodul célja a linux alatt futó számítógépes rendszerben előforduló hibák észlelése és jelentése."
  11. AMD-762™ rendszervezérlő szoftver/BIOS tervezési útmutató, p. 179 . AMD (2002). Letöltve: 2016. november 21. Az eredetiből archiválva : 2016. november 21.. „Az ECC funkciót támogató kiegészítő logika költséges mind a szilícium ingatlanok, mind a rendszeridőzítés terén. Az adatjavítást támogató ECC módokban egy további rendszerórajelet kell használni a javított adatok generálásához… Az AMD Athlon processzor ellenőrzi a saját hibáit."
  12. Az ECC megbeszélése a pcguide-on . Pcguide.com (2001. április 17.). Letöltve: 2011. november 23. Az eredetiből archiválva : 2011. november 18..

Linkek