FANDOM


Metody podwyższania niezawodności systemów cyfrowych mają za zadanie zapewnienie ciągłej pracy systemu cyfrowego w przypadku uszkodzenia lub awarii działania elementów systemu. Podwyższanie niezawodności systemów cyfrowych można uzyskać poprzez tolerowanie uszkodzeń, które powstają w trakcie ich pracy. Tolerowania uszkodzeń jest to zabezpieczenie systemu przed skutkami uszkodzeń jego elementów, których wystąpienie uważa się za nieuchronne. W ten sposób system ma możliwość kontynuowania poprawnego wykonywania przewidzianych zadań pomimo wystąpienia uszkodzeń wewnątrz systemu. Tolerowanie uszkodzeń w systemie cyfrowym zawsze wymaga wprowadzenie pewnego typu nadmiaru (redundancji) do systemu.

TerminologiaEdit

  • defekt (failure) – praca niezgodna ze specyfikacją
  • błąd (error) – błędny stan w układzie, symptom defektu, który właśnie lub wcześniej nastąpił
  • uszkodzenie (fault) – stwierdzona lub hipotetyczna przyczyna wystąpienia błędu, wpływ defektu na działanie systemu
 defekt(i-1) -> uszkodzenie(i) -> błąd(i) -> defekt(i) -> uszkodzenie(i+1)
  • Systemy FTS - system tolerujący uszkodzenia (Fault Tolerant System)

Typy nadmiaruEdit

  • Nadmiar informacji polega na dodaniu nadmiarowych bitów do informacji w celu wykrycia błędów (np. bit parzystości w szynie lub pamięci, kody cykliczne nadmiarowe -CRC dla pamięci dyskowej lub taśmowej, sumy kontrolne) lub korekcji błędów (np. kody Hamminga, Reeda-Solomona, turbo, BCH, Reeda-Mullera)
  • Nadmiar sprzętu polega na użyciu dodatkowych lub rozbudowie istniejących układów w celu wykrycia, diagnostyki, maskowania uszkodzeń, lub naprawy; np. realizacja układu jako samosprawdzalnego, potrojenie modułu z głosowaniem lub zapewnienie modułów zapasowych podłączanych automatycznie.
  • Nadmiar czasu polega na wydłużeniu czasu wykonania operacji lub sekwencji operacji poprzez wielokrotne jej wykonanie w celu późniejszego porównania wyników.
  • Nadmiar oprogramowania polega na użyciu nadmiarowego oprogramowania w celu wykrycia lub tolerowania uszkodzeń zarówno sprzętu jak i oprogramowania wykonującego to samo zadanie, ale wykonanego poprzez różnych niezależnych wykonawców (producentów).

W praktyce wprowadzenie jednego (podstawowego) typu nadmiaru pociąga za sobą konieczność użycia innych rodzajów nadmiaru. Np. użycie kodu wykrywającego lub korygującego błędy (nadmiar informacji) wymaga użycia kodera i dekodera (nadmiar sprzętu) i wprowadza dodatkowe opóźnienie wnoszone poprzez proces kodowania, dekodowania i korekcji błędów (nadmiar czasu).

Nie ma jednego uniwersalnego rozwiązania dla wszystkich zastosowań systemów tolerujących uszkodzenia. Główne kryteria stosowania i doboru typów nadmiaru to: skuteczność wykrywania (lub korygowania) błędów oraz koszt implementacji systemu w wersji tolerującej uszkodzenia. Dobór nadmiaru powinien być poprzedzony staranną analizą typów najczęściej występujących uszkodzeń i ich skutków.

Defekty, uszkodzenia i błędyEdit

Definicje uszkodzeń i odnów w systemach cyfrowych = uszkodzenia i przekłamania, źródła + sposoby wykrywania, odnowa techniczna i informacyjna.

Defekt fizyczny występuje, gdy działanie układu cyfrowego odbiega od wynikającego w specyfikacji. Defekty rozpatruje się na poziomie fizycznym układu; np. zwarcie linii do masy, zwarcie dwóch sąsiednich linii, przerwa w linii, przebicie diody lub tranzystora etc. Dla większości defektów fizycznych jest możliwe określenie wpływu na logiczne zachowanie układu.

Uszkodzenie jest to niepoprawny stan linii układu cyfrowego spowodowany uszkodzeniem jego elementów składowych. Najczęściej stosowane modele uszkodzeń:

  • uszkodzenie typu sklejenie polega na tym, że linia, wejście lub wyjście bramki logicznej przyjmują stałą wartość 1 (sklejenie z 1, w skrócie s/1) lub 0 (sklejenie z 0, w skrócie s/0), niezależnie od sygnałów podanych na wejście układu,
  • uszkodzenie typu zmostkowanie występuje w wyniku zwarcia dwóch lub więcej linii. Najczęściej przyjmuje się, że zmostkowanie powoduje efekt realizowania funkcji AND lub OR w zwartych liniach – tzw. suma lub iloczyn galwaniczny.

Uszkodzenia rozpatruje się na różnych poziomach. Np. na poziomie logicznym to samo uszkodzenie może być spowodowane szeregiem różnych defektów. Np. uszkodzenie typu s/1 na wyjściu bramki NAND może być spowodowane trzema różnymi defektami fizycznymi:

  • rozwarcie jednej linii wejściowej,
  • zwarcie linii wejściowej do masy,
  • zwarcie linii wyjściowej do zasilania.

Analiza układów cyfrowych na poziomie uszkodzeń a nie defektów fizycznych ma szereg zalet:

  • Jeżeli uszkodzenie jest adekwatnym modelem defektów, to problem jest analizowany na poziomie logicznym a nie fizycznym.
  • Jest możliwe konstruowanie logicznych modeli uszkodzeń nadających się do wielu różnych technologii. Tym samym, analiza wielu klas uszkodzeń staje się niezależna od technologii.
  • Stosowanie logicznych modeli uszkodzeń pozwala generować testy nawet dla tych uszkodzeń, których fizyczna przyczyna jest nieznana lub której wpływ na zachowanie nie jest dokładnie zrozumiany.

Błąd polega na wystąpieniu niepoprawnego stanu logicznego /z (NOT z) zamiast z, co zapisujemy z -> /z. Błąd może wystąpić w zupełnie innym miejscu niż samo uszkodzenie. Błędy rozpatruje się na informacyjnym poziomie abstrakcji i charakteryzuje się je np. wartością stanu logicznego w linii lub rejestrze. Błędy spowodowane uszkodzeniami sprzętu mogą spowodować błędy danych i/lub błędy w wykonywanej sekwencji. Pojedyncze uszkodzenie może spowodować błędy w wielu miejscach układu logicznego.

Typy uszkodzeńEdit

  1. nieprawidłowości w specyfikacji,
  2. nieprawidłowości w implementacji,
  3. defekty elementów,
  4. zakłócenia zewnętrzne.

Typy błędówEdit

  1. błędy pojedyńcze,
  2. błędy wielokrotne:
    1. błędy symetryczne,
    2. błędy jednokierunkowe,
  3. błędy asymetryczne,
  4. wiązki błędów,
  5. błędy w bajtach.

Podstawowe klasy kodów wykrywających błędyEdit

  1. kody z kontrolą parzystości,
  2. kody z podwajaniem i kody z inwersyjnym powtórzeniem,
  3. kody arytmetyczne : niesystematyczne kody AN i systematyczne kody resztowe,
  4. kody wykrywające błędy w bajtach: kody z sumą kontrolną, kody b-sąsiednie,
  5. kody wykrywające błędy jednokierunkowe:
    1. kody nieuporządkowane, tj. kody wykrywające błędy jednokierunkowe o dowolnej krotności: niesymetryczne kody m z n (stałowagowe) i systematyczne kody Bergera,
    2. kody wykrywające t błędów jednokierunkowych – kody Bordena,
    3. kody wykrywające błędy jednokierunkowe w bajtach – kody Bose’go-Lin’a o kody Bluma.

Rozwiązania klastroweEdit

Dwa lub więcej serwerów podłączonych do tej samej macierzy dyskowej. W przypadku awarii jednego z nich, pracuje drugi.

  1. Stacje dysków
    • Mirroring - zapis tej samej informacji na 2 dyskach. Oba podłączone do tego samego sterownika.
    • Duplexing - zapis tej samej informacji na 2 dyskach. Podłączone do różnych sterowników.
    • RAID (Redundant Array of Inexpensive Discs) systemy zwiększające niezawodność w wypadku stosowania urządzeń dyskowych. Wyróżnia się 10 typów systemów RAID, w systemach tych stosuje się mirroring, striping (podział danych na małe bloki i rozmieszczenie na różnych dyskach), kontrolę parzystości.
  2. Sieci komputerowe
    • zwielokrotnianie połączeń
    • prowadzenie zwielokrotnionych połączeń różnymi trasami
    • zwielokrotnianie sprzętu
    • transmisja danych - kody korekcyjne i detekcyjne (np. CRC)
  3. Zasilanie
    • Zasilacze awaryjne (UPS)
    • Generatory prądu
    • Zwielokrotnianie źródeł zasilania
  4. Cyfrówka (?)
    • powielanie z głosowaniem
    • jednostki samosprawdzalne (inwersyjne powtórzenie)
    • dublowanie jednostek samosprawdzalnych
    • kody korekcyjne. np Hamminga dh(odległość Hamminga)=
      2 - wykrywa pojedyncze błędy
      3 - poprawia pojedyncze błędy
      4 - wykrywa podwójne i poprawia pojedyncze
    • kody detekcyjne - pionowa i pozioma kontrola parzystości (w matrycy), crc, modulo...
    • różnorodność funkcjonalna - wykonywanie tej samej operacji na kilku elementach realizujących ta sama funkcję, ale zaprojektowanych i wykonanych niezależnie

Przykłady podwyższania niezawodnościEdit

Do metod podwyższania niezawodności zaliczamy systemy FTS w przypadku napędów dyskowych, rozwiązania klastrowe dla serwerów oraz redundancja urządzeń i połączeń dla sieci komputerowych oraz zasilanie awaryjne dla całych systemów.

Systemy dyskoweEdit

W celu ochrony przed skutkami awarii stacji dyskowych stosuje się systemy FTS, podnoszą one niezawodność systemy informatycznego, są realizowane poprzez dwie podstawowe techniki:

  • mirroring Technika zapisu lustrzanego mirroring polega na realizowanym w czasie rzeczywistym dublowaniu zapisu danych na drugim urządzeniu, dzięki czemu oba urządzenia przechowują tą samą informacje. Do jednego sterownika dołączane są dwa napędy dyskowe.( na obu dane są zapisywane jednocześnie). W przypadku awarii jednego z dysków, dane są dostępne na drugim.
  • Duplexing Zapis typu duplexing jest podobny do poprzedniego z tą różnicą że stosuje dwa sterowniki do obu napędów dyskowych. Technika ta zapewnia większe bezpieczeństwo w stosunku do mirroringu gdyż redundancji poddane są także sterowniki napędów dyskowych.
  • Systemy RAID (Redundant Array of Inexpensive Discs) systemy zwiększające niezawodność w wypadku stosowania urządzeń dyskowych. Wyróżnia się 10 typów systemów RAID, w systemach tych stosuje się mirroring, stripping (podział danych na małe bloki i rozmieszczenie na różnych dyskach), kontrolę parzystości.

Rozwiązania klastroweEdit

W roziązaniach tych wykorzystuje się co najmniej dwa urządzenia, w przypadku awarii jednego z nich, pozostałe urządzania przejmują zadania uszkodzonej maszyny.

Potrzebne do tego jest specjalne oprogramowanie zarządzające serwerami. Rozwiązania takie cechują się także tym, że potrafią rozkładać obciążenie równomiernie pomiędzy wszystkie urządzenia

Oba serwery muszą mieć dostęp do macierzy dyskowej. Nie jest tak że w klastrze muszą być tylko dwa komputery, może ich być o wiele więcej. Oczywiście muszą pracować wtedy pod kontrolą systemu operacyjnego odpowiednia skalowalnego. Są rozwiązania klastrów do 72 węzłów, jednak ich liczba jest tak duża nie ze względu na bezpieczeństwo a z uwagi na wzrost mocy obliczeniowej całego systemu.

Połączenia siecioweEdit

Aby uzyskać w miarę niezawodną sieć stosowane są różne metody, zapewniające jej bezawaryjne działanie. Do takich rozwiązań należą:

  • dublowanie połączeń sieciowych i prowadzenie ich pomiędzy punktami dwoma różnymi trasami,
  • stosowanie urządzeń sieciowych o podwyższonej niezawodności (urządzenia te posiadają np. zwielokrotnione zasilanie, lub też nawet posiadają dwa niezależne urządzenia przełączające i zarządzające ruchem w sieci).

W przypadku sieci rozległych stosuje się przyłączenia korzystające z usług dwóch operatorów sieci rozległych. Daje to możliwość bezawaryjnej pracy w przypadku awarii jednego z łącz.

Zasilanie awaryjneEdit

Do metod podwyższania niezawodności należy też stosowanie zasilania awaryjnego. Do tego typu rozwiązań zalicza się zasilacze awaryjne UPS (Uniterruptable Power Source) oraz generatory, które przejmują zadanie zasilania sieci i urządzeń w przypadku zaniku zasilania zewnętrznego. W najprostszym przypadku pozwala to na dokończenie pracy i bezpieczne wyłączenie urządzeń w przypadku awarii zasilania (przy zastosowaniu UPS). W przypadku zastosowania generatorów można normalnie pracować, bez konieczności przerywania pracy systemu. W przypadku stosowania generatorów należy stosować także zasilacze UPS, które podtrzymają zasilanie do czasu uruchomienia generatora.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.