Ułatwienia dostępu

Rozoom

Jaki komputer wysłać na Księżyc?

Jaki komputer wysłać na Księżyc?
tekst: Szymon Reiter


W powszechnej wyobraźni komputer pokładowy statku kosmicznego to coś w rodzaju wszechwiedzącego systemu z filmów science fiction - mówi, analizuje, podejmuje decyzje w ułamku sekundy i zarządza całym lotem. Rzeczywistość jest jednak znacznie bardziej interesująca, bo opiera się na zupełnie innym priorytecie niż „moc”.

Pierwszym zaskoczeniem dla wielu osób jest to, że nawet historyczna misja Apollo 11 nie wymagała ogromnej mocy obliczeniowej. Komputer pokładowy - Apollo Guidance Computer - miał parametry, które dziś wydają się wręcz symboliczne: częstotliwość rzędu 1-2 MHz, pamięć liczona w kilobajtach. A jednak to właśnie on odpowiadał za nawigację, sterowanie i lądowanie na Księżycu.

Jak to możliwe?

Najważnieszy parametr

Klucz tkwi w zrozumieniu, czym tak naprawdę jest lot kosmiczny. To nie jest zadanie wymagające przetwarzania ogromnych ilości danych w stylu współczesnych aplikacji czy gier. Trajektorię lotu oblicza się wcześniej, na Ziemi. W trakcie misji komputer wykonuje stosunkowo proste, ale krytycznie ważne obliczenia: aktualizuje pozycję, koryguje kurs, kontroluje systemy statku. To matematyka precyzyjna, ale nie „ciężka” obliczeniowo.

Drugi, znacznie ważniejszy aspekt to środowisko kosmiczne. Elektronika na pokładzie statku działa w warunkach, które dla zwykłego sprzętu są zabójcze: próżnia, ekstremalne temperatury i przede wszystkim promieniowanie. Pojedyncza wysokoenergetyczna cząstka może zmienić stan bitu w pamięci - z 0 na 1 - i tym samym wprowadzić błąd do obliczeń. To zjawisko, tzw. single event upset i jest jednym z największych wyzwań inżynierii kosmicznej.

Dlatego komputery kosmiczne projektuje się według zupełnie innej filozofii niż urządzenia konsumenckie. Zamiast maksymalnej wydajności liczy się:

>> niezawodność – system musi działać bez przerwy, czasem – jak w przypadku sond kosmicznych - przez lata, bez możliwości „restartu i spróbowania jeszcze raz”,

>> przewidywalność – oprogramowanie musi reagować dokładnie tak samo w każdej sytuacji,

>> odporność – sprzęt musi wytrzymać promieniowanie kosmiczne, niskie czy wysokie temperatury i inne skrajne warunki.

W praktyce oznacza to, że współczesne statki, takie jak Orion z programu Artemis, korzystają ze sprzętu, który z punktu widzenia użytkownika laptopa wygląda wręcz archaicznie.

Dobrym przykładem jest konfiguracja przygotowana dla misji Artemis II. Komputer pokładowy wykorzystuje procesory IBM PowerPC 750X, znane z końca lat 90. - architektura ta została opracowana około 1997–1998 roku jako rozwinięcie popularnej linii PowerPC G3. W zależności od wersji pracowały one z częstotliwościami rzędu kilkuset megaherców i oferowały wydajność liczoną w setkach milionów operacji na sekundę (rzędu pojedynczych setek MIPS - milionów instrukcji na sekundę).

Oznacza to, że w kosmos poleciały procesory sprzed ćwierć wieku!
To poziom, który dziś bez trudu przekracza nawet najprostszy smartfon czy zegarek.

A jednak w kosmosie taki procesor ma ogromną zaletę: jest dobrze poznany i przewidywalny. Można też wprowadzić zabezpieczenia chroniące go przed promieniowaniem.

Alt Text

Kapsuła Orion - misja Artemis II, 2026

Mniejszy, niekoniecznie lepszy

To jest jeden z tych momentów, gdzie intuicja potrafi zawieść. W świecie elektroniki jesteśmy przyzwyczajeni, że „nowocześniejszy" proces produkcji procesora (czyli mniejsze tranzystory – podstawowe elementy składające się na mikroprocesor) oznacza coś lepszego pod każdym względem. Taki procesor może pracować szybciej i zużywać mniej energii. W kosmosie jednak sprawa wygląda bardziej subtelnie.

Promieniowanie kosmiczne szkodzi procesorom głównie dlatego, że niesie ze sobą energię zdolną zakłócić pracę pojedynczych tranzystorów. Gdy taka cząstka trafi w strukturę półprzewodnika, może wywołać chwilowy impuls elektryczny i zmienić stan bitu — z 0 na 1 albo odwrotnie. To właśnie wspomniany wcześniej single event upset.

I tu wchodzi w grę rozmiar tranzystora. W starszych, procesach produkcyjnych, z epoki procesorów takich jak IBM PowerPC 750X, pojedynczy tranzystor:

>> ma większą fizyczną objętość,
>> pracuje przy wyższych napięciach,
>> przechowuje relatywnie większy ładunek elektryczny.

Efekt jest taki, że żeby zmienić stan logiczny takiego tranzystora, potrzeba więcej energii. Innymi słowy: przypadkowa cząstka promieniowania musi „trafić mocniej”, żeby coś zepsuć.

W nowoczesnych układach tranzystory są bardzo małe, pracują przy niskim napięciu i mają mały ładunek. Dzięki temu są szybkie i energooszczędne, ale też łatwiej je zakłócić — nawet słaba cząstka promieniowania może wpłynąć na ich pracę.

Alt Text

Komputer zastosowany w module księżycowym i w module dowodzenia programu Apollo

Ciągłe samosprawdzanie

Same procesory to jednak tylko część historii. W komputerach dostarczanych m.in. przez Honeywell zastosowano podejście maksymalizujące pewność działania: cztery niezależne komputery pokładowe uruchamiają dokładnie ten sam kod i porównują swoje wyniki bit po bicie.

To podejście idzie jeszcze dalej niż standardowe powtarzanie procedur. Jeśli pojawi się choćby pojedyncza różnica - na poziomie jednego bitu - system natychmiast ją wykryje. W praktyce oznacza to ciągłe, automatyczne „głosowanie” między komputerami.

W wielu systemach stosuje się również nieparzystą liczbę kluczowych komponentów - procesorów, modułów pamięci czy całych komputerów - tak aby możliwe było jednoznaczne rozstrzygnięcie większościowe. Jeśli jeden element zacznie się mylić, zostaje "przegłosowany" przez pozostałe i wyłączony z procesu decyzyjnego. To mechanizm, który pozwala przetrwać nawet realne uszkodzenia sprzętu w trakcie misji.

Na tle współczesnych układów mobilnych, takich jak Apple A17 Pro, różnica wydajności jest ogromna. Ale to porównanie jest mylące, bo te urządzenia rozwiązują zupełnie inne problemy.

Podobnie wygląda oprogramowanie. Zamiast rozbudowanych systemów operacyjnych stosuje się systemy czasu rzeczywistego (RTOS), które wykonują ściśle określone zadania w dokładnie określonym czasie. Nie ma tu miejsca na przypadkowe opóźnienia, aktualizacje w tle czy nieprzewidziane procesy.

Co ciekawe, ta filozofia praktycznie nie zmieniła się od czasów programu Apollo.

Zmieniły się narzędzia, poprawiła odporność układów, wzrosła ich wydajność — ale podstawowa zasada pozostała taka sama: komputer pokładowy wcale nie musi być najszybszy. Musi za to być absolutnie godny zaufania.

I właśnie to jest najbardziej nieintuicyjne. W świecie codziennej elektroniki przyzwyczailiśmy się, że „lepszy” oznacza „szybszy”. Tymczasem w kosmosie „lepszy” oznacza „pewniejszy”.

Bo w sytuacji, w której statek znajduje się setki tysięcy kilometrów od Ziemi, a każda decyzja wpływa na życie załogi, najważniejsze pytanie nie brzmi: ile operacji na sekundę potrafi wykonać komputer?

Brzmi za to: czy możemy być pewni, że każda z nich jest poprawna!

Podobne artykuły