úterý 14. srpna 2012

Odhalen zdroj zlomyslných trpaslíků v počítači

Určitě to všichni znáte - zpravidla zrovna ve chvíli, kdy nejvíc spěcháte, začne počítač "stávkovat", chová se jinak než doposud, dává jiný výsledek než čekáte, program padá na chybu, která tam ještě před chvílí nebyla. Obvykle tyto zlomyslnosti přičteme na vrub zlým duchům ve stroji, zeleným mužíčkům anebo trpaslíkům (protože jak známo, ty potvory vlezou všude), systém zrestartujeme a úlohu už většinou bez problémů zopakujeme.

Jak se ukazuje, většina těchto náhodných "podivností" může mít zcela vědecké vysvětlení.

Se zvyšující integrací polovodičových prvků (zejména procesoru a pamětí RAM) se zmenšují rozměry jejich vnitřních stavebních prvků a ty jsou tak stále náchylnější k náhodným vlivům okolního prostředí, konkrétně částicím záření. Zásah paměťové buňky částicemi záření může vyvolat změnu její logické hodnoty (0/1). Změna jediného bitu v paměti samozřejmě může vést ke značným důsledkům a může se projevit nepředvídatelným způsobem - od pádu aplikace, přes nestandardní chování funkcí počítače, až po - v nejhorším případě - nepovšimnutou změnu výsledků aplikace. A že je takových paměťových buněk, potenciálních cílů "bombardování", v dnešních počítačích hodně - v typické konfiguraci se 4GB RAM je jich celkem 34.359.738.368 (34 miliard).

Na vině jsou přitom hned dva druhy záření - jednak kosmické záření (neutrony) a jednak alfa částice z radioaktivních izotopů materiálů použitých v PC a z radioaktivního pozadí dané lokality. Kosmické záření je závislé na zeměpisné šířce (u rovníku je "bezpečněji") a především na nadmořské výšce - např. při letu v dopravním letadle je vliv cca 8.000x silnější. Extrémní jsou tyto vlivy v kosmu. I proto například marsovské vozítko Curiosity používá procesor a paměti stíněné na radiaci 2.000 až 10.000 grayů (J/kg).

Curiosity

Jak velké je toto riziko chyb v praxi? Kupodivu větší než se obecně soudí. Podle nedávné studie společnosti AMD nastane vlivem záření u typického systému se 4GB RAM jedna chyba za týden! Podle studie University of Toronto provedené na rozsáhlé serverové farmě firmy Google nastane u typického serveru cca 400 chyb za rok.

Řešení tohoto problému je přitom celkem snadné. Už mnoho let jsou servery a pracovní stanice renomovanějších značek nabízeny s paměťmi ECC RAM. ECC paměť využívá redundandní samoopravné kódy, pomocí nichž najde a opraví 99.988% všech "měkkých" chyb paměti (kam patří i náhodné chyby vlivem záření). Ač bývá někdy použití konfigurací s ECC paměťmi považováno za zbytečnost, je vidět, že riziko tohoto typu chyb není zdaleka zanedbatelné a zejména v oblastech CAD/CAE aplikací nebo ve finančnictví může vést k velmi nepříjemným a drahým důsledkům.

Bezprostřední poučení pro dobu dovolených: neprojektujte v letadle :-)

Viz též:
wikipedia.org/wiki/ECC_memory

4 komentáře:

  1. To dobře znám, teď už aspoň budu vědět čím to je.

    OdpovědětVymazat
  2. Trpaslíci nebo neutrony mně dneska připravily o 2 hodiny práce. Fakt se tomu dá zabránit?

    OdpovědětVymazat
  3. ...já jsem si říkal, že ten rentgen za zdí mají špatně odstíněný....

    OdpovědětVymazat
  4. Tento komentář byl odstraněn autorem.

    OdpovědětVymazat