Metody podwyższania niezawodności systemów cyfrowych
From Obrona
[edit] Metody podwyższania niezawodności systemów cyfrowych
- defekt (failure) – praca niezgodna ze specyfikacją
- błąd (error) – błędny stan w układzie, efekt uszkodzenia, przyczyna defektu
- uszkodzenie (fault) – przyczyna wystąpienia błędu
Typy błędów:
- pojedyncze
- wielokrotne
- symetryczne
- jednokierunkowe asymetryczne
- wiązki błędów
Systemy FTS (Fault Tolerant System - system tolerujący błędy)
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ń jest to zdolność systemu cyfrowego do kontynuowania poprawnego wykonywania przewidzianych zadań pomimo wystąpienia uszkodzeń wewnątrz systemu. Głównym celem tolerowania uszkodzeń jest zabezpieczenie systemu przed skutkami uszkodzeń jego elementów, których wystąpienie uważa się za nieuchronne. Tolerowanie uszkodzeń w systemie cyfrowym zawsze wymaga wprowadzenie pewnego typu nadmiaru (redundancji) do systemu.
Typy nadmiaru:
- informacji,
- sprzętu,
- czasu,
- oprogramowania.
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, lub korekcji błędów – np. kody Hamminga dla pamięci RAM lub kody cykliczne (CRC) dla pamięci dyskowej lub taśmowej.
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.
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. Oto 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 logicznym poziomie abstrakcji. 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, z {0, 1}, spowodowanego uszkodzeniem układu. 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. Pojedyńcze uszkodzenie może spowodować błędy w wielu miejscach układu logicznego.
Typy uszkodzeń:
- błędy specyfikacji,
- błędy implementacji,
- defekty elementów,
- zakłócenia zewnętrzne.
Typy błędów:
- błędy pojedyńcze,
- błędy wielokrotne:
- błędy symetryczne,
- błędy jednokierunkowe,
- błędy asymetryczne,
- wiązki błędów,
- błędy w bajtach.
Podstawowe klasy kodów wykrywających błędy:
- kody z kontrolą parzystości,
- kody z podwajaniem i kody z inwersyjnym powtórzeniem,
- kody arytmetyczne : niesystematyczne kody AN i systematyczne kody resztowe,
- kody wykrywające błędy w bajtach: kody z sumą kontrolną, kody b-sąsiednie,
- kody wykrywające błędy jednokierunkowe:
- 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,
- kody wykrywające t błędów jednokierunkowych – kody Bordena,
- kody wykrywające błędy jednokierunkowe w bajtach – kody Bose’go-Lin’a o kody Bluma.
Rozwiązania klastrowe Dwa lub więcej serwerów podłączonych do tej samej macierzy dyskowej. W przypadku awarii jednego z nich, pracuje drugi.
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.
Sieci komputerowe
- zwielokrotnianie połączeń
- prowadzenie zwielokrotnionych połączeń różnymi trasami
- zwielokrotnianie sprzętu
- transmisja danych - kody korekcyjne i detekcyjne (np. CRC)
Zasilanie
- Zasilacze awaryjne (UPS)
- Generatory prądu
- Zwielokrotnianie źródeł zasilania
Cyfrówka
- powielanie z głosowaniem
- jednostki samosprawdzalne (inwersyjne powtórzenie)
- dublowanie jednostek samosprawdzalnych
- kody korekcyjne. np Hamminga dh(odległośc 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
- Metody podwyższania niezawodności systemów cyfrowych.
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. Do metod tych 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 FTS (Fault Tolerant System - system tolerujący błędy) W celu ochrony przed skutkami awarii stacji dyskowych stosuje się systemy FTS, podnoszą one niezawodność systemy informatycznego, są realizowane poprzez dwie podstawowe techniki: f)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. g)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. h)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, striping (podział danych na małe bloki i rozmieszczenie na różnych dyskach), kontrolę parzystości. Rozwiązania klastrowe W roziązaniac 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 Zasadę działania 2 serwerowego klastra obrazuje poniższy rysunek:
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:
UNIX, WINDOWS itp. 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. Systemem klastrowym jest też system SFT firmy Novell stosowany w Netware 4.xx. Opierał się on na istnieniu dwoch serwerów połaczonych dodatkowo specjalnymi kartami i przełączający w przypadku awarii pracę.
Podwyższanie niezawodności połączeń sieciowych.
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ądenia te posiadają np. zwielokrotnione zasilanie, lub też (np. w przypadku przełączników Core Builder 3COM) 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 awaryjne
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.
[edit] Metody podwyższania niezawodności systemów cyfrowych
- metody rezerwowania sprzętowego, ????
- metody rezerwowania przydatne dla systemów cyfrowych,???
- FTC: definicja, przykłady realizacji,
Tolerowanie uszkodzeń jest to zdolność systemu cyfrowego do kontynuowania poprawnego wykonywania przewidzianych zadań pomimo wystąpienia uszkodzeń wewnątrz systemu. Głównym celem tolerowania uszkodzeń jest zabezpieczenie systemu przed skutkami uszkodzeń jego elementów, których wystąpienie uważa się za nieuchronne. Tolerowanie uszkodzeń w systemie cyfrowym zawsze wymaga wprowadzenie pewnego typu nadmiaru (redundancji) do systemu.
Typy nadmiaru:
- informacji,
- sprzętu,
- czasu,
- oprogramowania.
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, lub korekcji błędów – np. kody Hamminga dla pamięci RAM lub kody cykliczne (CRC) dla pamięci dyskowej lub taśmowej.
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.
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. Oto 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 logicznym poziomie abstrakcji. 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, z {0, 1}, spowodowanego uszkodzeniem układu. 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. Pojedyńcze uszkodzenie może spowodować błędy w wielu miejscach układu logicznego.
Typy uszkodzeń:
- błędy specyfikacji,
- błędy implementacji,
- defekty elementów,
- zakłócenia zewnętrzne.
Typy błędów:
- błędy pojedyńcze,
- błędy wielokrotne:
- błędy symetryczne,
- błędy jednokierunkowe,
- błędy asymetryczne,
- wiązki błędów,
- błędy w bajtach.
Podstawowe klasy kodów wykrywających błędy:
- kody z kontrolą parzystości,
- kody z podwajaniem i kody z inwersyjnym powtórzeniem,
- kody arytmetyczne : niesystematyczne kody AN i systematyczne kody resztowe,
- kody wykrywające błędy w bajtach: kody z sumą kontrolną, kody b-sąsiednie,
- kody wykrywające błędy jednokierunkowe:
- 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,
- kody wykrywające t błędów jednokierunkowych – kody Bordena,
- kody wykrywające błędy jednokierunkowe w bajtach – kody Bose’go-Lin’a o kody Bluma.
Opracowano na podstawie: Stanisław J. Piestrak „Systemy tolerujące uszkodzenia”.