6. Testowanie i testowalność układów scalonych

6.8. Układy, których poprawne działanie ma krytyczne znaczenie

W niektórych zastosowaniach błędne działanie układów scalonych i systemów z tymi układami może spowodować wielkie i nieodwracalne szkody: katastrofę, utratę życia ludzkiego, nienaprawialną szkodę w mieniu wielkiej wartości. Problemem jest wówczas nie tylko zbadanie czy układ po wyprodukowaniu działa prawidłowo, ale także kontrola prawidłowości działania układu bądź systemu w czasie pracy. W takim przypadku stosuje się redundancję z „głosowaniem”. Układ lub cały system jest powielony trzykrotnie, i wszystkie trzy układy lub systemy pracują równocześnie otrzymując te same dane. Jeśli trzy wyniki są zgodne, uznaje się, że są one prawidłowe. Jeśli jeden z wyników różni się od dwóch pozostałych, za prawidłowe uznawane są te dwa (bo prawdopodobieństwo wystąpienia identycznej awarii w tym samym momencie w dwóch identycznych systemach jest pomijalnie małe), a trzeci wynik jest odrzucany z równoczesnym sygnałem, że system dający błędny wynik jest uszkodzony i musi być przy najbliższej okazji wymieniony. Jest to sposób kosztowny, ale stosowany m.in. w technice lotniczej, kosmicznej i innych krytycznych zastosowaniach.

I na koniec warto dodać jeszcze jedno ważne spostrzeżenie. Troska o niezawodność zaczyna się na etapie projektu. Wiele tragicznych wydarzeń (np. katastrof lotniczych zawinionych przez układy elektronicznego sterowania samolotem) spowodowanych było nie awariami w trakcie działania systemów elektronicznych, lecz przyjęciu na samym początku projektowania założeń błędnych lub nie biorących pod uwagę wszystkich możliwych sytuacji i wydarzeń.