• Nie Znaleziono Wyników

2. Analiza wpływu bł˛edów na działanie systemu komputerowego

2.2. Modele bł˛edów

Systemy komputerowe s ˛a oparte o układy cyfrowe, a ich działanie mo˙ze by´c zaburzone wskutek ró˙znorodnych procesów fizycznych. Powoduje to sytuacje, kiedy system przestaje prawidłowo wykonywa´c powierzone mu zadania. Efekty zaburze´n mog ˛a rozci ˛aga´c si˛e od trwałej niezdolno´sci systemu do pracy, poprzez tymczasowe generowanie nieprawidłowych wyników, do maskowania takich sytuacji. Podstawowym modelem nieprawidłowo´sci wyst˛epuj ˛acych w systemie jest bł ˛ad. W niniejszym podrozdziale scharakteryzowane s ˛a

´zródła bł˛edów, ich modele oraz wpływ na funkcjonowanie poszczególnych układów systemu komputerowego.

2.2.1. ´Zródła bł˛edów

Bł˛edy w systemach cyfrowych wynikaj ˛a z budowy nowoczesnych układów oraz warunków ich eksploatacji. Przeprowadzone niedawno badania firmy Google [94] wykazały, ˙ze w 32%

serwerów tej firmy w ci ˛agu roku wykryto co najmniej jeden bł ˛ad przekłamania pami˛eci.

W [16, 27, 28] przedstawiono prognoz˛e zwi˛ekszenia liczby tego typu bł˛edów wraz ze stopniem upakowania układów scalonych. Dodatkowo systemy cyfrowe s ˛a eksploatowane w wielu ró˙znych ´srodowiskach, które mog˛e mie´c niekorzystny wpływ na ich działanie – zaburzenia w działaniu mog ˛a by´c spowodowane przez promieniowanie kosmiczne, cz ˛astki alfa, impulsy elektromagnetyczne, temperatur˛e, czy degradacj˛e układów wynikaj ˛ac ˛a ze starzenia si˛e materiałów u˙zytych do ich wytworzenia.

W [59] przedstawiono wpływ wzrostu temperatury na cz˛estotliwo´s´c bł˛edów w prostych układach składaj ˛acych si˛e z przerzutników wykonanych w technologii 40 nm. Zbadano, ˙ze przy temperaturze 80 C cz˛estotliwo´s´c wyst˛epowania bł˛edów mo˙ze wzrosn ˛a´c dwukrotnie, a przy temperaturze 120 C trzykrotnie przy eksponowaniu układu na promieniowanie neutronowe. Dodatkowo w badaniach prowadzonych w Instytucie Telekomunikacji Politechniki Warszawskiej (patrz [68]) obserwowano znacz ˛acy wzrost przekłama´n w wynikach

18 Kod biblioteki jest specjalnie przygotowany pod k ˛atem mo˙zliwo´sci załadowania pod ró˙zne adresy pami˛eci – jest to tzw. kod relokowalny.

generowanych przez układ szyfruj ˛acy przy symulowaniu bł˛edów zegara nawet przy niewielkich zmianach temperatury pracy układu.

W [94] przedstawiono analiz˛e wykazuj ˛ac ˛a, ˙ze w modułach pami˛eci RAM po 24 miesi ˛acach u˙zytkowania cz˛estotliwo´s´c wyst˛epowania przekłama´n pami˛eci ro´snie od 1,7 do 3,5 raza w zale˙zno´sci od konkretnego produktu. Badania te równie˙z potwierdzaj ˛a korelacj˛e cz˛estotliwo´sci wyst˛epowania bł˛edów wraz ze wzrostem temperatury.

Przytoczone badania ´swiadcz ˛a o wadze problemu wyst˛epowania bł˛edów. Niemniej wiele konfiguracji systemów komputerowych nie jest badanych pod k ˛atem wyznaczenia charakterystyki wra˙zliwo´sci na bł˛edy w ró˙znych warunkach eksploatacji.

2.2.2. Charakterystyka modeli bł˛edów

Modele bł˛edów mog ˛a by´c rozwa˙zane na ró˙znych poziomach abstrakcji: fizycznym, logicznym oraz aplikacyjnym. Najni˙zszym poziomem jest fizyczny model układu.

Rozpatrywane s ˛a w nim elementy elektroniczne pod k ˛atem podatno´sci na wymienione w 2.2.1 niekorzystne oddziaływania. W szczególno´sci badany jest mechanizm przeło˙zenia si˛e tych oddziaływa´n na nieprawidłow ˛a prac˛e układu: np. fizyczne uszkodzenie układu elektronicznego, zwarcia lub rozwarcia ´scie˙zek, czy zwi˛ekszenie pr ˛adów upływowych.

Istotnym zagadnieniem jest wyznaczanie (najcz˛e´sciej eksperymentalne [8, 59]) propagacji nieprawidłowo´sci na poziomie fizycznym na modele bł˛edów logicznych. Bł˛edy logiczne rozumiane s ˛a jako nieprawidłowy stan rozpatrywanego układu. Przykładami takich modeli jest sklejenie z 0/1 (stuck-at-0/stuck-at-1), bł˛edy sprz˛e˙ze´n, czy bit-flip. Warto zaznaczy´c, ˙ze bł˛edy fizyczne mog ˛a nie by´c łatwo modelowane jako bł˛edy warstwy logicznej (np. przekształcenie układu kombinacyjnego w sekwencyjny).

Bł˛edy warstwy logicznej natomiast propaguj ˛a si˛e na bł˛edy aplikacyjne, czyli inny przebieg wykonania aplikacji w stosunku do przebiegu niezaburzonego. Przykładowo bł˛edy logiczne przekłama´n bitów w kodzie instrukcji procesora mog ˛a powodowa´c bł˛edy aplikacyjne zmian w argumentach instrukcji lub zamieni´c instrukcj˛e na inn ˛a – w przypadku architektur o zmiennej długo´sci instrukcji mo˙ze to spowodowa´c wr˛ecz lawinowe przekłamanie kolejnych instrukcji w zwi ˛azku z odczytywaniem instrukcji spod nieprawidłowych adresów. Natomiast bł˛edy w strukturach danych mog ˛a uszkodzi´c dane wła´sciwe lub dane adresowe – skutki takich bł˛edów s ˛a ´sci´sle zwi ˛azane z typem struktury danych oraz wła´sciwo´sciami przechowywanych danych.

Bł˛edy aplikacyjne objawiaj ˛a si˛e generowaniem nieprawidłowych wyników, niedost˛epno´sci ˛a usług, awariami (wykonanie przez program nieprawidłowej operacji ko´ncz ˛acej w trybie awaryjnym jego działanie) lub s ˛a one maskowane podczas wykonania oprogramowania. Warto zaznaczy´c, ˙ze niektóre typy danych s ˛a w naturalny sposób odporne na bł˛edy – np. bł ˛ad w pliku d´zwi˛ekowym mo˙ze spowodowa´c niesłyszalne dla słuchaczy przekłamania.

Bł˛edy mo˙zna scharakteryzowa´c równie˙z według czasu utrzymywania si˛e w systemie: bł˛edy trwałe, bł˛edy przemijaj ˛ace oraz bł˛edy migocz ˛ace (patrz [96]).

Bł˛edy trwałe s ˛a wynikiem uszkodze´n układów cyfrowych. Układy te działaj ˛a nieprawidłowo z powodu np. zwarcia lub przepalenia cz˛e´sci wewn˛etrznych poł ˛acze´n, wi˛ec ich naprawienie jest niemo˙zliwe. Jedn ˛a z metod redukcji efektów takich bł˛edów jest redundancja układowa, umo˙zliwiaj ˛aca przej˛ecie funkcji niedziałaj ˛acego układu przez zapasowe komponenty.

Bł˛edy przemijaj ˛ace powstaj ˛a w wyniku chwilowego zaburzenia pracy systemu – np. tymczasowe obce pola elektromagnetyczne, zakłócenia zasilania, promieniowanie kosmiczne. Charakteryzuj ˛a si˛e tym, ˙ze układ nie jest uszkodzony, a jedynie jednorazowo zmienia si˛e jego wewn˛etrzny stan. Ponowne uruchomienie systemu pozwala w tej sytuacji przywróci´c prawidłowe działanie.

Bł˛edy migocz ˛ace s ˛a to bł˛edy powoduj ˛ace tymczasowe nieprawidłowe działanie układu, tak jak w przypadku bł˛edów trwałych, niemniej mo˙zliwy jest powrót do prawidłowego działania układu po samoczynnym ust ˛apieniu bł˛edu migocz ˛acego. Detekcja bł˛edów tego typu jest mo˙zliwa wył ˛acznie w okresie aktywno´sci bł˛edu. Utrudnia to diagnostyk˛e układu z uwagi na konieczno´s´c okresowego przeprowadzania testów, aby mo˙zliwe było zaobserwowanie nieprawidłowego działania układu.

2.2.3. Bł˛edy jednostek przetwarzaj ˛acych

Nowoczesne procesory s ˛a układami cyfrowymi o du˙zym stopniu upakowania. W strukturach procesora znajduje si˛e wiele jednostek o dedykowanych funkcjach: dekoder instrukcji, potoki wykonania, układ przewidywania skoków, pami˛e´c podr˛eczna, jednostki arytmetyczne i zmiennoprzecinkowe. Wiele z tych jednostek jest niedost˛epnych w modelu programistycznym procesora. Opracowywanie modeli bł˛edów logicznych procesora jest zadaniem trudnym. Badania przeprowadzone w [43, 65] wykazuj ˛a, ˙ze bł˛edy przekłama´n bitów w ukrytych rejestrach (poziom architektury) mog ˛a powodowa´c bł˛edy innego typu na poziomie logicznym funkcjonowania procesora. Przykładowo uszkodzenie jednego z rejestrów mo˙ze objawi´c si˛e na poziomie logicznym uszkodzeniem kilku rejestrów ze wzgl˛edu na wykorzystanie registers renaming(patrz [51]). Niemniej mo˙zliwe jest rozpatrywanie cz˛e´sci układów procesora jako układów pami˛eci – w szczególno´sci dotyczy to rejestrów, pami˛eci podr˛ecznej, układu MMU oraz układu przewidywania skoków. Dzi˛eki temu mo˙zliwe jest zastosowanie modeli bł˛edów opisanych w 2.2.4.

Interesuj ˛acym zagadnieniem s ˛a przekłamania w pami˛eci podr˛ecznej stanowi ˛acej integraln ˛a cz˛e´s´c procesora ze wzgl˛edu na jej redundantny charakter wzgl˛edem pami˛eci operacyjnej.

Wyst ˛apienie bł˛edów zarówno po stronie pami˛eci operacyjnej i podr˛ecznej mo˙ze zosta´c w sposób naturalny zamaskowane:

— przekłamanie w pami˛eci podr˛ecznej jest zamaskowane, je˙zeli: dane te nie zostały odczytane i zostan ˛a usuni˛ete z pami˛eci podr˛ecznej bez zapisywania do pami˛eci głównej (dane te nie były oznaczone w pami˛eci cache jako dirty),

— przekłamanie w pami˛eci głównej jest zamaskowane, gdy prawidłowa kopia danych znajdowała si˛e w pami˛eci podr˛ecznej (kopia ta mo˙ze by´c wykorzystana przy obliczeniach) i została nadpisana now ˛a warto´sci ˛a, co oznacza nadpisanie zaburzonych danych w pami˛eci głównej.

2.2.4. Bł˛edy pami˛eci operacyjnej

Bł˛edy pami˛eci mog ˛a by´c spowodowane bł˛edami komórek pami˛eci lub układów adresuj ˛acych. Przykładowe bł˛edy jednostek adresuj ˛acych to: wybór bł˛ednej komórki pami˛eci, nieudany wybór zadanej komórki pami˛eci, wybór jednej z komórek pami˛eci przez wi˛ecej ni˙z jeden adres, jednoczesny wybór kilku komórek pami˛eci przez jeden adres, a wynik jest funkcj ˛a warto´sci wybranych komórek.

Natomiast podstawowe modele bł˛edów komórek pami˛eci to (na podstawie [96]): bł˛edy skleje´n z 0/1 – komórka pami˛eci zawsze ma t˛e sam ˛a warto´s´c; bł ˛ad typu bit-flip – negacja warto´sci przechowywanej w komórce pami˛eci; bł ˛ad ulotno´sci – zapami˛etana informacja w komórce jest tracona na skutek pr ˛adów upływowych; bł˛edy tranzycji – niemo˙zno´s´c zmiany stanu z 1 na 0 lub z 0 na 1; bł˛edy sprz˛e˙ze´n – warto´s´c przechowywana w komórce lub jej zdolno´s´c do zmiany warto´sci jest zale˙zna od przechowywanych w innych komórkach.

Osobn ˛a kategori ˛a bł˛edów s ˛a bł˛edy charakterystyczne dla poszczególnych technologii wytwarzania pami˛eci (patrz [57]): opó´znienie czasu dost˛epu; opó´znienie wzmacniacza odczytu – na wyj´sciu pojawia si˛e stan poprzednich bitów; opó´znienie zapisu – po dokonaniu zapisu kolejna operacja jest dokonywana na tej samej komórce pami˛eci pomimo zmiany adresu; bł ˛ad niezrównowa˙zenia – bł˛edna kwalifikacja warto´sci odczytywanej komórki, je˙zeli wi˛ekszo´s´c komórek na tej samej linii adresowej ma stan odmienny od odczytywanej komórki.

Popularn ˛a metod ˛a wykrywania i ewentualnego zapobiegania bł˛edom pami˛eci w cyklu

˙zycia systemu jest stosowanie kodów korekcyjnych – s ˛a to pami˛eci ECC19 RAM (patrz [64]). Technika ta polega na rozszerzeniu pami˛eci o dodatkowe komórki, w których s ˛a przechowywane dodatkowe dane kodu korekcyjnego, pozwalaj ˛ace na poprawienie i wykrywanie bł˛edów. Liczba wykrywanych i poprawianych bł˛edów pami˛eci ró˙zni si˛e w zale˙zno´sci od zastosowanego kodu. Weryfikacja i ewentualna korekta zawarto´sci komórek pami˛eci odbywa si˛e przy odczycie. Niektóre implementacje tej techniki periodycznie skanuj ˛a cał ˛a przestrze´n adresow ˛a pami˛eci w celu wyeliminowania efektu kumulacji bł˛edów (tzw. error scrubbing).

19 Ang. Error-correcting code.

Pami˛eci ECC pozwalaj ˛a skutecznie zwi˛ekszy´c niezawodno´s´c systemów komputerowych – pozwalaj ˛a na korekcj˛e bł˛edów przemijaj ˛acych oraz wykrycie bł˛edów trwałych. W [94] przedstawiono szczegółowe badanie nad cz˛estotliwo´sci ˛a zgłaszania pojedynczych bł˛edów pami˛eci maskowanych przez ECC oraz podwójnych bł˛edów pami˛eci w ´srodowisku produkcyjnym. Bł˛edy podwójne powodowały eliminacj˛e modułu pami˛eci z dalszych bada´n i zast ˛apienie go nowym modułem. W ci ˛agu roku w 32,2% maszyn obj˛etych badaniem zaobserwowano przynajmniej jeden bł ˛ad pojedynczy (8,2% obj˛etych badaniem modułów pami˛eci) oraz w 1,29% maszyn wykryto bł ˛ad podwójny (0,22% modułów pami˛eci). Przy du˙zej liczbie maszyn produkcyjnych koszt wymiany wadliwych modułów pami˛eci stanowi istotny koszt utrzymania.

2.2.5. Bł˛edy urz ˛adze ´n zewn˛etrznych

Modele bł˛edów urz ˛adze´n zewn˛etrznych stanowi ˛a szerok ˛a dziedzin˛e bada´n, które s ˛a systematycznie pogł˛ebiane. Ka˙zde z urz ˛adze´n dysponuje swoim odr˛ebnym profilem najcz˛e´sciej zgłaszanych bł˛edów. Bł˛edy urz ˛adze´n zewn˛etrznych mog ˛a by´c zwi ˛azane zarówno z przekłamaniami danych lub nieprawidłowym zachowaniem przy komunikacji z systemem operacyjnym. Warto zaznaczy´c, ˙ze bł˛edy mog ˛a wyst ˛api´c zarówno w urz ˛adzeniu zewn˛etrznym, jak i kontrolerze stanowi ˛acym integraln ˛a cz˛e´s´c systemu komputerowego.

Przykładami zaburzania danych mog ˛a by´c przekłamania jak w przypadku bł˛edów pami˛eci (typu bit-flip lub skleje´n z 0/1). Natomiast bł˛edy behawioralne mog ˛a by´c modelowane jako niezgłaszane/nadmiarowe przerwania, zachowanie niezgodne z protokołem współpracy z urz ˛adzeniem (np. brak odpowiedzi na wysyłane komendy).

Bł˛edy danych w szczególno´sci dotycz ˛a urz ˛adze´n przechowywania danych oraz urz ˛adze´n komunikacyjnych. Urz ˛adzenia przechowywania danych to dyski twarde, pami˛eci USB, czy pami˛eci Compact Flash. Przykładowo dyski twarde wykorzystuj ˛a talerze z no´snikiem magnetycznym, na którym zapisywane s ˛a informacje. Urz ˛adzenia te zapisuj ˛a dane na no´sniku z zastosowaniem kodów korekcyjnych, pomimo to bł˛edy nienaprawialne wyst˛epuj ˛a. W badaniu opisanym w [106] w przeci ˛agu 12 miesi˛ecy 0,04% spo´sród 387 840 głowic dysków twardych natrafiło na bł˛edy nienaprawialne. W krytycznych zastosowaniach wykorzystuje si˛e macierze dyskowe typu RAID.

Bł˛edy danych w urz ˛adzeniach komunikacyjnych najcz˛e´sciej zwi ˛azane s ˛a z bł˛edami kanału przesyłu informacji. W przypadku sieci komputerowych du˙z ˛a rol˛e odgrywa zastosowany protokół komunikacji – UDP20 lub TCP21. Protokół UDP nie zakłada ˙zadnej kontroli spójno´sci danych, natomiast TCP posiada takie mechanizmy wbudowane. W Instytucie Informatyki Politechniki Warszawskiej prowadzono badania nad tymi mechanizmami i w [38]

20 Ang. User Datagram Protocol.

21 Ang. Transmission Control Protocol.

przedstawiono zale˙zno´s´c opó´znienia transmisji TCP od liczby bł˛edów w kanale transmisyjnym.

Warto zaznaczy´c, ˙ze pomimo zastosowania kodów korekcyjnych w TCP wci ˛a˙z istnieje mo˙zliwo´s´c przekłamania danych i prowadzone s ˛a badania nad popraw ˛a tego mechanizmu (patrz [60]).

Oprócz bł˛edów danych przechowywanych lub przesyłanych przez urz ˛adzenie mog ˛a wyst ˛api´c tak˙ze bł˛edy protokołu współpracy urz ˛adzenia z systemem operacyjnym. Bł˛edy te mog ˛a by´c modelowane jako nadmiarowe przerwania (patrz [8]), bł˛edy danych protokołu (np. bł˛edy w ramkach protokołu SATA22) lub w przypadku urz ˛adze´n korzystaj ˛acych z DMA zapisywanie danych pod inny adres ni˙z przeznaczony do wykorzystania przez urz ˛adzenie.