Wykrywanie błędów komputerowych

Jak rozwiązać problemy z gniazdem komputerowym

Istnieją różne rodzaje kodów wykrywania błędów komputera. Niektóre z tych kodów wykrywania błędów to Qui-binary arithmetic, Watchdog timer i Cyclic redundancy checks. Kody te mają wysoki współczynnik wykrywania błędów i małą liczbę bitów nadmiarowych. W tym artykule omówimy niektóre z popularnych typów kodów wykrywania błędów. Stosując się do tych wskazówek, możesz poprawić dokładność swojego komputera. I, oczywiście, zawsze możesz wybrać kody wykrywania błędów w oparciu o swoje potrzeby i preferencje.

Arytmetyka qui-binarna

W wykrywaniu błędów w komputerze wykorzystuje się arytmetykę qui-binarną, w której wynik operacji jest porównywany z wejściem i jeśli wynik jest nieprawidłowy, wywołuje błąd. Metoda ta jest podobna do stosowania kontroli parzystości, ale zamiast szukać tego samego wzoru dla wszystkich bitów qui, skupia się na najmniej znaczących bitach. Na przykład, wejście o wartości 10 jest traktowane jako 0, podczas gdy to samo wejście o wartości 11 jest traktowane jako trójka.

Arytmetyka qui-binarna może być korzystna dla wykrywania błędów w systemach komputerowych. Na przykład maszyna mainframe IBM 1401 jest w stanie przekształcić cyfry BCD na kod qui-binarny. Logika jest zaimplementowana przy użyciu struktury logicznej AND-OR, gdzie jedna para bramek AND dopasowuje się do określonego wzorca bitowego i łączy się z bramką OR w celu wytworzenia wyjścia. Ta bramka logiczna jest reprezentowana przez trójkąt i półkole, zamiast półkola w standardzie ANSI.

Maszyna 1401 firmy IBM jest doskonałym przykładem arytmetyki qui-binarnej do wykrywania błędów. Był to najczęściej używany komputer na początku lat 60. W tamtych czasach maszyna IBM 1401 kosztowała około 2500 dolarów miesięcznie, a jeden zły czek z wypłatą mógł doprowadzić do katastrofalnych skutków. Jego możliwości wykrywania błędów arytmetycznych umożliwiły IBM utrzymanie systemu operacyjnego, który miał niski koszt posiadania.

Ta metoda opiera się na algorytmie SHA-1 i działa dobrze z danymi wejściowymi, które są równomiernie rozłożone. Pierwsze porównanie łapie 76% danych wejściowych, podczas gdy drugie porównanie łapie tylko 21%. Metoda ta wymaga średnio tylko 2,6 operacji. Ma bardzo prosty algorytm: użyj stałej 0x077CB531UL do wyodrębnienia najmniej znaczącego 1 bitu.

Watchdog timer

Watchdog to urządzenie wykrywające błędy komputera, które może przejść w tryb bezpieczny, gdy system operacyjny napotka błąd. Dolny limit watchdoga to zazwyczaj 75% jego górnego limitu. Inne timery watchdog mogą ustawiać swoje górne limity niezależnie. Watchdog jest obsługiwany przez wykonanie operacji, która jest mało prawdopodobna podczas wykonywania oprogramowania poza kontrolą. Operacja ta jest powszechnie określana jako „stroking” watchdog.

Zegar watchdog do prawidłowego działania wymaga dwóch zapisów do rejestru serwisowego. Jeden timer używa magicznej liczby 0x5743, podczas gdy inny timer wymaga 0xAAA. Wydaje się, że watchdogi lubią naprzemienne wzorce bitów i wiele z nich ma swoją własną magiczną liczbę. Jeden timer watchdog używa 0x5743. Podczas gdy te timery są przydatne, mogą również skomplikować się przez obecność trybów uśpienia i niskiej mocy.

Długość pętli watchdog będzie zależała od liczby wejść i częstotliwości przerwań. Czasami ten sprzęt nie jest wystarczająco niezawodny, aby niezawodnie wykryć błąd systemu i spowodować reset systemu. Dlatego najlepiej jest unikać polegania na watchdog timerze przy wykrywaniu błędów komputera, dopóki system nie naprawi podstawowego błędu. Chociaż poleganie na timerze watchdog może zwiększyć rodzinę błędów, dla wielu użytkowników może nie być tego warte.

Timer watchdog komputera ma dwa etapy. Etap1 jest regularnie kopany, aby zapobiec timeoutom. Jeśli to się nie uda, komputer może napotkać awarię sprzętu lub oprogramowania. Ta awaria spowoduje uruchomienie timera watchdog i wyzwoli nowy timer zwany Stage2. Ten drugi zegar zresetuje komputer i może próbować zarejestrować informacje o debugowaniu lub informacje o stanie, zanim zostanie zresetowany. Po upływie tego drugiego czasu komputer zostanie zresetowany.

Układ sprawdzania błędów

Zespół ECC w komputerze jest techniką lokalizacji błędów w danych cyfrowych. Układ składa się z czterech podobnych dekoderów modułowych. Gdy błędy występują tylko w bitach danych od d0 do d15, sygnał wytworzony przez bramki od 201 do 205 nazywany jest nibble syndromem. Następnie sygnał ten jest mnożony przez liczbę odpowiadających mu nibble’ów syndromu w pierwszym module macierzy H.sub. (80,64).

Ten typ wykrywania błędów wykorzystuje układ sprawdzający sumę kontrolną. Układ ten sprawdza, czy w odebranych danych są jakieś błędy. W tym celu nadawca dzieli dane na k części, z których każdy segment zawiera n bitów. Segmenty te są następnie dodawane do dopełnienia sumy w celu określenia, czy istnieje błąd. Jeśli suma kontrolna wynosi zero, to nie ma błędu i dane są poprawne. W przeciwnym razie są one nieprawidłowe. Do wykrywania błędów wykorzystywane są również kody CRC

PE1. Układy te generują kod cykliczny, dzieląc słowo danych na bity kontrolne. Bity kontrolne reprezentują procentowe prawdopodobieństwo wystąpienia błędu, a ich prawdopodobieństwo wynika z liczby bitów kontrolnych w kodzie cyklicznym. Błędy jednobitowe są wykrywane z prawdopodobieństwem 100 procent. Błędy dwubitowe i błędy typu burst mają mniejsze prawdopodobieństwo wykrycia przez sumę kontrolną.

Przykładowe wcielenie kodu wykrywającego i korygującego błędy jednobitowe można znaleźć na RYS. 1. Na RYS. 2 i 3 przedstawiono częściowy schemat poziomu bramek układu wykrywania i korekcji błędów. Na RYS. 4 pokazano drzewo sumatorów. Na RYS. 7 pokazano obwód logiczny. Podczas gdy RYS. 8 jest schematem blokowym obwodu logicznego, RYS. 7 ilustruje drzewo dodawczyń i obwód wykrywania błędów wielu bąbli.

Cykliczne kontrole nadmiarowe

Komputerowa detekcja błędów wykorzystuje cykliczne kontrole nadmiarowe (CRC) do wykrywania i korygowania błędów. Podczas transmisji danych bity mogą być uszkodzone z powodu szumu lub innych problemów. Te nieprawidłowe dane nazywane są danymi o błędach. Aby naprawić błędy, stosuje się CRC. Aby zapobiec uszkodzeniu danych, kluczowe jest sprawdzanie bitów na każdym etapie transmisji. Jeśli wystąpi problem, wysyłane jest negatywne potwierdzenie.

CRC są jedną z najskuteczniejszych metod wykrywania błędów. Wykorzystują one podział binarny do wygenerowania unikalnego, cyklicznego wzorca bitów, który jest w stanie zidentyfikować błędy. W idealnym przypadku sekwencja jest podzielna przez x+1. CRC może wykryć błędy dwubitowe, o ile dzielnik ma długość co najmniej trzech bitów. Istnieją jednak pewne przypadki, w których CRC może nie wykryć błędów.

Na szczęście istnieje sposób na naprawienie tych błędów bez pomocy technika. Wbudowane w system Windows narzędzie CHKDSK może naprawić wiele problemów z komputerem, w tym drobne błędy i uszkodzenia plików. Błąd CRC może również wystąpić na dyskach optycznych. Dyski te mogą zostać porysowane lub zakurzone, co powoduje wystąpienie błędu. Gdy dyski te zostaną uszkodzone, nie można ich już odczytać.

CRC są bardzo przydatne do wykrywania błędów w cyfrowej transmisji danych. Obliczają one kod kontrolny dla każdej ramki danych, a następnie wysyłają go do drugiego końca. Po stronie odbiorczej, odbiornik oblicza kod kontrolny i porównuje go z wartością oryginalną. Jeśli reszta nie jest zero, to dane mają błąd i powinny być odrzucone. Jeśli jednak błąd jest znaczący, może spowodować awarię systemu.

Wykrywanie błędów w sieci Ethernet

Aby zapobiec występowaniu błędów w sieci Ethernet, należy wdrożyć wykrywanie i korekcję błędów. Metody wykrywania i korekcji błędów są różne, ale obie mają pewne kluczowe cechy. Po pierwsze, metody detekcji i korekcji błędów dzielą ramki na poszczególne bity. W ten sposób błędy są wykrywane, zanim ramki dotrą do miejsca przeznaczenia. Mechanizmy korekcji błędów również retransmitują ramki, w których wykryto błędy. Metody te znane są jako „stop-and-wait” lub „Automatic Repeat Request” (ARQ). Po drugie, pakiet jest dekodowany do nagłówka MAC, sekcji zawierającej adres źródłowy i docelowy.

W przeciwieństwie do PCIe i RapidIO, mechanizmy wykrywania i korekcji błędów w sieci Ethernet są powolne. Wynika to z faktu, że Ethernet został zaprojektowany dla sieci rozproszonych i ma ograniczone mechanizmy kontroli przepływu w warstwie fizycznej. Zarówno PCIe jak i RapidIO posiadają mechanizmy kontroli przepływu w warstwie fizycznej, które zapewniają niezawodne dostarczanie pakietów. Dodatkowo, protokół Link Maintenance Protocol (LMP) pozwala na retransmisję uszkodzonych pakietów. Ostatecznie, ta metoda wykrywania i korekcji błędów jest szybsza niż Ethernet.


Podobne tematy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *