Počítače na sondě Galileo

První plně distribuovaný systém ve vesmíru Nedávno proběhla médii zpráva o zániku kosmické sondy Galileo v atmosfé


První plně distribuovaný systém ve vesmíru
Nedávno proběhla médii zpráva o zániku kosmické sondy Galileo v atmosféře
planety Jupiter. Tato sonda, která se na svou pouť sluneční soustavou vydala už
v roce 1989, několikrát překonala plánovanou životnost a poskytla detailní
znalosti o tomto z našeho pohledu tak vzdáleném světě. Leckoho možná v té
souvislosti napadne otázka, jaké počítače takový složitý přístroj, jakým
bezesporu meziplanetární sonda Galileo byla, vlastně řídí.
V následujícím článku nahlédneme pod pokličku počítačového vybavení kosmické
sondy. Ač z dnešního hlediska v podstatě primitivní, na dobu svého vzniku byl
počítačový systém Galilea unikátní a dosud nevídaný.

Prehistorie
Před Galileem představovaly špičku počítačového vybavení dosavadních kosmických
výprav sondy Voyager. Jejich řídicí systém byl také prvním pokusem o
distribuovaný systém, ve kterém různé počítače plní různé úkoly. Složitost
sondy Galileo (včetně do té doby nevídaného množství vědeckých přístrojů) pak
distribuovaný systém přímo vyžadovala. Uvádí se, že právě Galileo je první
sondou s plně distribuovaným počítačovým systémem. Při jeho vývoji bylo
částečně čerpáno ze zkušeností nabitých při programu Voyager, v podstatě byl
ale vyvinut zcela nový, nezávislý systém.
Přístroje na palubě sondy byly přímo řízeny počítači. Osm z devíti mělo vlastní
mikroprocesor, který zajišťoval jejich provoz a manipulaci se získanými daty.
Data byla předávána do Command and Data Handling System (dále CDH), který se
skládal ze šesti mikroprocesorů. Další důležitý systém Attitude and
Articulation Control (dále AAC) byl tvořen dvojicí počítačů a stejně bylo
vybaveno atmosférické pouzdro, které obsahovalo vlastní duální systém
mikroprocesorů. Dohromady se na palubě Galilea nacházelo 19 mikroprocesorů,
které obsahovaly 320 KB polovodičové paměti RAM a 41 KB paměti ROM. Žádná jiná
sonda před Galileem nebyla vybavena tak výkonným a rozsáhlým palubním
počítačovým systémem. Svoji složitostí dokonce v některých aspektech předčil i
systém projektu Apollo.

Hledání architektury
Na začátku projektu bylo nutno zvolit vhodnou architekturu mikroprocesorů a
vybrat programovací jazyky, ve kterým bude napsán software. Pro CDH systém bylo
zvažováno (píše se rok 1977) využití počítačů sond Voyager, National Standard
Spacecraft Computer (NSSC-1) a distribuovaného systému Unified Data System
(UDS). Z praktických důvodů (nižší cena, operace v plovoucí desetinné čárce,
složité transformace mezi rotující a pevnou sekcí ...) byl nakonec zvolen
systém UDS.
Velká pozornost byla věnována volbě programovacích jazyků a požadavků na paměť.
Prototypy programů pro CDH a AAC byly napsány v jazycích HAL/S a Fortran.
Ukázalo se však, že HAL/S není vhodný pro počítače CDH, proto byl opuštěn a
nahrazen tzv. strukturovanými makry. Pro další systémy byl naopak tento jazyk
využit. Mikroprocesory počítačů řídících jednotlivé přístroje byly
naprogramovány v assembleru, pouze jeden z nich v jazyce Forth. Co se týká
využití paměti, bylo požadováno 75% naplnění v okamžiku startu a 85% při
příletu k Jupiteru.

Systém CDH
Zvolený distribuovaný systém UDS se skládal z počítačů dvou úrovní. Počítače
řídící například datové sběrnice či zabezpečující detekci chyb tvořily tzv.
"high-level moduly" (HLM), zatímco počítače umístněné ve specifických
subsystémech byly nazývány "terminal" moduly (též low-level moduly, LLM). Tyto
počítače řídily například jednotlivé přístroje či systém AAC. Každý modul měl
vlastní paměť a procesor. Komunikace mezi moduly probíhala po sběrnicích, které
sloužily k přenosu dat mezi jednotlivými paměťmi. Moduly HLM neměly žádnou
jinou možnost komunikace s LLM moduly než prostřednictvím sběrnic. Komunikace
se Zemí byla zajištěna právě prostřednictvím modulů LLM.
Důležitými požadavky na systém byly jednoduchost a nahraditelnost. Proto
představa UDS nezahrnuje žádný centrální počítač. Každý z HLM řídí jednu
sběrnici, ale pouze jedna sběrnice je požadovaná pro podporu všech procesorů,
protože každý HLM může přenést data mezi libovolnými dvěma paměťmi.
NASA zvolila pro výpravu Galilea mikroprocesory RCA 1802. Mezi největší výhody
těchto CMOS zařízení patřila nízká spotřeba energie (30 mW) a odolnost vůči
širokému rozsahu napětí. Na druhé straně jsou čipy CMOS citlivější na
elektrostatické výboje. RCA 1802 byly rovněž pomalé, s 5milisekundovým cyklem,
což se výrazně dotklo vývoje softwaru.
Aplikace architektury UDS na systém CDH byla přímočará. V designu z roku 1978
se tento systém skládal ze tří modulů HLM, čtyř LLM a tří sběrnic, každé řízené
jedním z HLM. Jeden HLM vykonával řízení podle předem uložené sekvence povelů,
druhý řízení v reálném čase a třetí sloužil jako záloha. LLM zajišťovaly
sekvenování, telemetrii, zjišťování stavu a další funkce.
V konečné verzi systému se jeden HLM nenacházel, ale sběrnice zůstaly tři.
Jedna z nich byla ovšem využita pouze při testování, v průběhu letu zůstala
nečinná. Největší odlišností od UDS bylo uspořádání mikroprocesorů do navzájem
záložních řetězců. Na Galileu byly sestaveny dva základní řetězce, ačkoliv v
případě selhání některého z procesorů bylo možné zbývající zkombinovat jinak.
Každý z nich se skládal z jednoho HLM se 32 KB paměti, jím kontrolované
sběrnice, LLM s 16 KB paměti, pamětí DBUM (8 KB) a BUM (16 KB) a dalšího LLM s
16 KB v rotující sekci sondy. To znamená, že celý systém CDH se skládal z šesti
procesorů se 176 KB paměti. Zhruba 12 KB paměti HLM bylo chráněno proti zápisu
a využito pro programy.
Paměť BUM sloužila jako pomocná a přímo do ní se vkládaly nové povely
přicházející ze Země. Datová DBUM byla využita jako vyrovnávací pro data
přicházející z vědeckých přístrojů a jednalo se opět o paměť s přímým
přístupem. K přenosu dat a příkazů se využívalo paketů s hlavičkou složenou ze
tří slov. Přenos byl koordinován přerušeními v reálném čase, liché intervaly
byly využity pro vstup, sudé pro výstup. Během letu a nekritických fází výpravy
byl vždy funkční jeden z řetězců, zatímco druhý se nacházel v klidném stavu.
Jak už bylo zmíněno, původně se počítalo pro systém CDH s využitím jazyka
HAL/S, ovšem jeho kompilátor pro RCA 1802 nebyl úspěšný, proto dostala přednost
tzv. strukturovaná makra. V softwarové dokumentaci jsou nazývána funkčními
příkazy a mají názvy jako například IF, ELSE, DO, ASSIGN, atd. Jsou velmi
podobné příkazům vyšších programovacích jazyků. Vývoj softwaru zajišťoval tým
12 programátorů, kteří se dělili o pět terminálu připojených k počítači IBM
System 370/158.
Software systému CDH se dělí do dvou skupin procesů. Na popředí běží procesy,
které se vykonávají každou 1/15 sekundy. Jedná se o self-test, hodiny a řízení
sběrnice. Další procesy jsou na pozadí a jejich chod začíná každé 2/3 sekundy.
Tyto procesy jsou složitější. Funkce mohou být rozděleny mezi šest tzv.
"virtuálních strojů", z nichž tři jsou privilegované a tři neprivilegované.
Privilegované jsou zapsané v 12 KB paměti chráněné proti zápisu a na rozdíl od
neprivilegovaných nemohou být přerušeny, pokud nejsou na konci cyklu kompletní.
Zabývají se prováděním příkazů, detekcí chyb a jejich korekcí. Neprivilegované
"stroje" jsou určeny k řízení příkazů a sekvencí. V průběhu výpravy byl zhruba
jednou týdně proveden jejich update. To znamená, že byly odolnější vůči selhání.

Systém AAC
Hlavním kritériem pro výběr počítače byla rychlost. Pro účely testování
vhodného procesoru bylo využito starších programů ze sond Voyager a nakonec byl
vybrán procesor Itek 2900 a z něho sestavené počítače ATAC (Advanced Technology
Airborne Computer).
Základní cyklus ATAC je 250 nanosekund, což znamená, že byly pětkrát rychlejší
než počítač Voyageru. Kvůli pomalejší paměti ale jejich frekvence poklesla na
143 KHz. Mezi další výhody patří operace v plovoucí desetinné čárce, obecné
využití všech 16 registrů a možnost doplnění o další instrukce pro specifické
potřeby uživatele. V projektu Galileo to znamenalo přidání čtyř nových
instrukcí, které ušetřily přes 1 500 slov kódu. A konečně k rozhodnutí přispěla
i dostupnost kompilátorů jazyků Fortran, Basic a HAL/S. Na rozdíl od CDH
systému byl v tomto případě úspěšně využit jazyk HAL/S. V něm byl napsán letový
software, zatímco pro vlastní operační systém posloužil přímo assembler.
AAC systém měl součásti umístněné v obou sekcích sondy. Většina komponent,
včetně dvou navzájem záložních procesorů a 64 KB paměti, byla v rotující sekci,
zbytek v pevné. Komunikace mezi ACE (část v rotující sekci) a DEUCE (v pevné
sekci) probíhala přes rotující transformátor. Ten nebyl zcela bezchybný, proto
byl přenos do DEUCE ukončen, teprve když ACE obdržel potvrzení. Bylo využito 66
1KB paměťových čipů CMOS, z nichž dva byly ROM. Tyto dva čipy obsahovaly
příkazy k obnovení ztracených dat v paměti a byly napsány v assembleru.

Selhání softwaru
Pokročilejší počítačový systém byl ovšem více zranitelný vlivy kosmického
prostředí než jeho primitivnější předchůdci. Zvláštní pozornost byla proto
věnována následkům dopadu vysoce nabité částice na paměťové buňky (tzv. single
event upset SEU). Je-li energie takové částice dostatečně velká, může změnit
informaci uloženou v dané buňce a ovlivnit program v paměti potenciálně
nebezpečným způsobem zvláště pak v případě, kdy je dopadlých částic větší
množství. Taková situace by mohla vyústit až v úplné zhroucení softwaru.
Pouhé využití záložních pamětí problém neodstraní, protože paměti jsou
zranitelné stejným způsobem. Rovněž programy pro testování a opravy takto
vzniklých chyb nejsou vždy dostupným řešením.
V roce 1977, kdy proběhl výběr procesorů a pamětí pro Galileo, nebylo o
zranitelnosti hardwaru vůči těmto událostem téměř nic známo. Voyagery ještě
nedoletěly k Jupiteru a sondy Pioneer byly vybaveny starším, a tím pádem méně
citlivým hardwarem. Teprve v letech 1981-82 začala být zřejmá existence
problému. Na cyklotronu kalifornské university v Berkeley byly procesory a
paměti vystaveny proudu rychlých, elektricky nabitých částic. Výsledkem bylo
zjištění, že čipy řady 2900 jsou na SEU velmi citlivé. Ukázalo se, že 20 až 50
% zásahů způsobilo kritické selhání softwaru! Procesory RCA 1802 použité pro
CDH systém byly méně zranitelné. Problém byl nakonec vyřešen zvýšením odolnosti
procesorů vůči záření, které provedla Sandia National Laboratory.

Chvála zpoždění
Paradoxně je možno konstatovat, že kdyby vše probíhalo podle původního časového
plánu, dorazila by sonda k Jupiteru naprosto nepřipravena na tvrdé podmínky
panující v okolí planety. Celá výprava by tak pravděpodobně byla odsouzena k
zániku. Úspěchy sondy se dostavily vlastně díky zpoždění, které celý projekt
nabral v průběhu své realizace.

Komunikace v kosmu: Boj o bity
Černým okamžikem v průběhu celé mise sondy Galileo se stalo datum 26. března
1991, kdy se nepodařilo rozvinout hlavní vysokoziskovou anténu. Neúspěšné bylo
i množství nejrůznějších pokusů provedených v následujících dvou letech a vážně
hrozilo, že sonda v průběhu celé mise bude muset komunikovat se Zemí pomocí
nízkoziskové antény, původně určené jen pro přenos inženýrských dat. Rozdíl v
přenosové rychlosti obou antén byl obrovský místo plánované přenosové rychlosti
134 000 b/s měla být data přenášena rychlostí pouhých 10-40 b/s, což by
znamenalo výrazné snížení celkového množství přenesených dat, zejména snímků.
Ovšem technici z JPL neváhali a důmyslnými úpravami na přijímacích stanicích
sítě Deep Space Network (DSN) spolu s výměnou palubního softwaru sondy a lepší
kompresí dokázali zvýšit rychlost přenosu dat na 1 000 b/s.

Historie sondy Galileo
Na začátku 17. století namířil Galileo Galilei svůj hvězdářský dalekohled na
Jupiter. V jeho těsné blízkosti spatřil trojici maličkých hvězdiček srovnaných
do jedné roviny. Další pozorování odhalila celkem čtyři měsíce, které kolem
největší planety Sluneční soustavy obíhají. Měsíce, které nesou pojmenování Io,
Europa, Ganymed a Kalisto, ale kterým se rovněž říká podle svého objevitele
"galileovské".
Uplynula necelá čtyři století a dnes o Jupiteru a jeho úžasném světě víme
nesrovnatelně více než v dobách Galileových. A to zejména zásluhou jiného
Galilea, dnes už legendární kosmické sondy, která byla na počest slavného
hvězdáře pojmenována. Sondy, která navzdory trnitému vývoji, čekání na nosič,
složité dráze Sluneční soustavou, problémům s hlavní anténou i extrémně
nepříznivým podmínkám v blízkosti největší planety dokázala nejen splnit, ale i
překročit očekávání do ní vkladená.
Původně plánovanou životnost překonala sonda hned několikrát. Přístroje a
systémy na její palubě obdržely zhruba čtyřikrát větší kumulativní dávku záření
od Jupitera, než na jakou byly postaveny. Mise sondy přinesla řadu překvapivých
objevů. Projekt sondy Galileo vznikl na konci 70. let Jet Propulsion Laboratory
(JPL, http://jpl.nasa.gov). V americkém Kongresu byl schválen 19. 7. 1977.
Ačkoliv Galileo měl původně odstartovat už roce 1982, na meziplanetární dráhu
se nakonec dostal až o sedm let později. Od samotného počátku bylo plánováno,
že družici do vesmíru vynese raketoplán. Projekt raketoplánu ale nabral
zpoždění a rovněž další faktory způsobily, že start se postupně odkládal na
roky 1984, 1985 a 1986. Následně došlo ke katastrofě Challengeru, což ve svém
důsledku znamenalo další odklady. Výsledkem všech problémů byla nutnost použití
složitější dráhy sluneční soustavou, skládající se ze tří gravitačních manévrů
v blízkosti Venuše a Země. Celková doba letu k Jupiteru se prodloužila třikrát,
na konečných šest let. Neustálé změny vedly k tomu, že původní cena 455 milionů
dolarů byla nakonec trojnásobná. I přesto ale astronomové hodnotí výpravu
celkově jako velmi úspěšnou.
Příčinou konce sondy Galileo se letos stalo vyčerpání pohonných hmot na palubě.
Sonda by už brzy nebyla schopna namířit anténu směrem k Zemi ani měnit svoji
dráhu. Ačkoliv pravděpodobnost pádu na některý z jupiterových měsíců (a
především pak Europu) byla malá, přesto se řídící tým rozhodl pro zánik sondy v
atmosféře Jupitera. Důkazy pro existenci vodního ledu na tomto měsíci jsou
pádné, a tudíž ani nelze vyloučit, že by zde mohly existovat primitivní formy
života. NASA se rozhodla neriskovat kontaminaci Europy.
Sonda Galileo tak definitivně skončila svoji pouť dne 21. září 2003.

Základní technická data
Sonda Galileo se skládala z přibližně 285 000 součástek. Její orbitální modul
měl tvar desetibokého hranolu o průměru 4,8 m a maximální výšce 4,6 m. Na
vrcholu hranolu byla připojena všesměrová parabolická anténa o stejném průměru
a na bocích tři výklopná ramena s přístroji. Plánovaná komunikační rychlost
sondy se Zemí byla 134 000 b/s. Energii sondě dodávaly dva radioizotopové
generátory s 22 kg oxidu plutoničitého, jejichž výkon byl na počátku letu 570
watů. Pro záznam dat sloužil palubní magnetofon, který byl schopen uchovat asi
150 snímků. Hmotnost sondy na startu činila 2 223 kg (z toho 925 kg paliva).
Základem počítačového vybavení sondy Galileo byl procesor RCA 1802 (na
obrázku), vybraný pro relativní odolnost proti nárazům vysoce nabitých částic,
které mohou způsobit kritické softwarové selhání.

TEXT ON-LINE
Kompletní podobu tohoto článku najdete na portálu Science World
(www.scienceworld.cz) s datem 21. 11. 2003. V on-line textu najdete mj. přehled
nejdůležitějších objevů učiněných díky sondě i historii letu Galilea sluneční
soustavou.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.