O.S.E.L. - Počítače pro misi Apollo 11
 Počítače pro misi Apollo 11
aneb dosažení absolutní dostupnosti počítačových systémů ve stylu šedesátých let



 

Zvětšit obrázek
Apollo.  Kredit: NASA

Nepřetržitá dostupnost počítačových systémů je v dnešní době něčím samozřejmým. Bez té by zkolabovala koordinace energetických sítí, letecké, lodní a vlakové dopravy, satelitní komunikace, služby na internetu, platby kartou telefonování,... Navzdory klastrování, virtualizaci, využívání paralelní systémů a dalších  opatření k vyloučení chyb, se jejich poruchám  vyhnout nejde. 
Je až s podivem, že již před čtyřiceti lety byly k dispozici systémy schopné zajistit přepravu astronautů na Měsíc a zpět. Celá lunární mise, od startu, navedení na dráhu k Měsíci, jeho orbitu, přistání, následné setkání lunárního a velitelského modulu a pak navedení zpět k Zemi a že vše pracovalo téměř bezchybně.
Jak se s technologií 60-tých let podařilo dosáhnout tohoto malého zázraku?


Mise Apollo
12. dubna 1961 hodně Američanů zkoprnělo, kyž se z radia ozvalo, že Sověti s lodí Vostok 1 dopravili Jurie Gagarina na oběžnou dráhu Země. Bylo jasné, že jejich projekt se stejným cílem – Mercury, je nejméně o rok pozadu. Krátce na to John F. Kennedy přednesl v Kongresu ambiciózní plán na výzkum vesmíru s přistáním na Měsíci:

“Věřím že tento národ může ještě před koncem následujícího desetiletí zajistit přistání člověka na Měsíci a jeho bezpečný návrat zpět na Zemi. Žádný jiný vesmírný projekt nebude v tomto období více působivý nebo více důležitý. Žádný nebude tak obtížný a nákladný.”

Cíl byl splněn dne 20. července 1969, když Neil Armstrong při výstupu z modulu Eagle na Měsíci  pronesl: "Je to malý krok pro člověka, ale velký skok pro lidstvo".

 

"Velký skok" lidstva stál americké daňové poplatníky 24 miliard USD (v cenách roku 1960). Během osmi let si je mezi sebe rozdělilo  400 000 zaměstnanců, 20 000 amerických firem a universit. A to v tom ještě nění započítána cena vesmírné lodě a rakety, dalších závratných 83 miliard dolarů. Mistrovský kousek s přitáním na Měsíci se pak podařil do roku 1972 zopakovat ještě 5x.

 

 

Zvětšit obrázek
Serverovna mise Apollo 11

Počítače Apollo
Každý let k Měsíci tehdy byl v režii tří počítačových komplexů. Základní v řídícím středisku, palubní navigační a počítač pro řízení rakety.
Počítače řídícího střediska měly na starost navigační vypočty. Byly přdimenzované a část jejich kapacity zajišťovala   nepřetržité testování systému.


Nešlo o levnou záležitost. Redundance bylo dosaženo propojením pěti nově postavených počítačů IBM 360 Model 75 s operačním systémem MVS. Na implementaci a testování systému se podílelo až 3500 zaměstnanců IBM. Šlo o dobu přechodu od elektronek k tranzistorům.  IBM vyrobila svůj první tranzistorový počítač, IBM 7090 prakticky nedávno (1959). Počítače nasazované roku 1964  v NASA byly mezi prvními dodávanými IBM serie 360s. Serverovna IBM pro misi Apollo 11 byla plná těchto třistašedesátek a jejich celkový výpočetní výkon byl 1,7 MIPS (milionů pokynů za sekundu) a disponovala 1MB paměti, později rozšířenou na dva a pak čtyři MB pro každý počítač. Dnešní běžně dostupný procesor jako Intel Core i7 4770k má hodnotu MIPS 124.850-127.273, kde 8GB RAM je standard.


Programovácí personál byl rozdělen do tří skupin podle pracovní náplně:
  - příprava specifikací a testovacích plánů
  - úpravy MVS pro zpracování dat v reálném čase
  - příprava postupů pro obnovení z havárie

 

Nový operační systém MVS byl založený na zadávání úkolů po dávkách, ale požadavek byl na práci s událostmi v reálném čase. Jedním z prvních úkolů programátorů tudíž bylo provést jeho modifikaci aby vyhovoval pro danou úlohu, což vyžadovalo vytvoření úplně nových vstupů do datové sběrnice třistašedesátek a hodně zásahů do jejich interní architektury. Tyto vstupy pak byly využity pro specializované komunikační karty pro příjem signálů z pozemních vysílačů, palubní telemetrie a dat ze sledování trajektorie v reálném čase. Připojení datových signálů do karet probíhalo přes pěticestný přepínač, umožňující směrovat pokyn do některého z pěti počítačů určených k jejich zpracování.
Počítače musely být schopné se zotavit z jakéhokoliv problému v situaci, kterou nikdo nepředvídal. Proto byl celý zvláštní tým specialistů vyčleněn jen na řešení procedur zotavení počítačů. Součástí testů byla simulace širokého spektra chyb a ověřování postupů obnovy. Komunikační chyby byly překlenovány kódem schopným opravit až tří-bitové chyby. Opravy probíhaly dosazením do 36-bitového polynomu (více zde). Neopravitelné zprávy byly zadané pro opakovaný přenos.

Chyby trajektorie musely být opravovány v reálném čase. Pokud by došlo k chybě u palubních naváděcích systémů, muselo by dojít k přenosům výpočtů na Zem, protože počítačové programy nemohly být opraveny - byly drženy v paměti ROM.
Simulace a testy probíhaly v součinosti astronautů s operátory systémů.


Celá tato aplikace pro sledování "environmentálních údajů a astronautů" na kosmických lodích měla dnes úsměvných 6MB a byla IBM popsána jako “do té doby nejkomplexněji napsaný software”.

Redundance těchto systémů byla zajištěna prostřednictvím současného zapojení tří z pěti IBM počítačů. Další dva byly k dispozici pro testování a vývoj, ale s tím že mohou být v případě nějakého selhání okamžitě zařazeny do produkčního systému.
Ze tří produkčních počítačů byl jeden primární, druhý v dynamickém pohotovostním režimu (stand-by) a poslední ve statickém stand-by. První a druhý počítač zpracovávaly všechna data paralelně. V případě vypadnutí primárního počítače, druhý okamžitě automaticky převzal kontrolu a stal se primárním. Současně byl třetí počítač probrán ze statického stand-by a nahrán daty z posledního bodu zotavení a poté urychleným přehráním dodatečných událostí uveden do režimu dynamického. Kontrolní body byly zapisovány na pásky každých patnáct minut, a ty pak sloužily k načtení dat do probouzeného počítače v statickém stand-by. Všechny události byly také zapisovány na pásku v momentě jejich zaznamenání a tato páska byla užita k dodatečné synchronizaci.


Během této doby obnovy pokračovaly všechny ostatní operace nerušeně. K celkovému selhání systému mohlo dojít pouze v momentě, pokud by došlo k selhání primárního počítače během přesunu počítače ve statickém stand-by do dynamického a jeho synchronizace. A i poté by pravěpodobně došlo pouze k malé ztrátě dat, která by se obratem dosynchronizovala dodatečným přenosem.

Protože byly během celé mise neustále vysoké nároky na výpočetní dobu, tak se statický stand-by počítač udržoval v pohotovosti pouze během kritických fází mise. Při jejím zahájení, iniciaci přechodu ze Zemské na Lunární orbitu, přistání na Měsíci a návratu na Zemi. Během mezidobí byl k  dispozici pro jiné účely.


Navigační počítače
Na palubě velitelského modulu Columbia byl umístěn Apollo Guidance Computer (AGC). Lunární modul měl ten samý, ale nazvaný LM Guidance Computer (LGC). Oba tyto počítače sbíraly informace o letu a předávaly je astronautům a na Zem. Tento počítač vyvinula MIT Instrumentation Laboratory. Sestavila je společnost Raytheon. Pro práci s AGC ve velitelském modulu byl zelený manuál a žlutý pro LGC. Byly v nich instrukce pro případ problémů.


Počítač LGC se staral o navigaci. Kontrolní systém pro lunární modul a byl zálohován pomocí systému pro přerušení navádění - AGS. Tento systém mohl být v případě havárie LGC použit ke startu z Měsíce a setkání s velitelským modulem, ale nemohl sloužit pro přistání.
Systémy AGC a LGC byly první počítače využívající integrované obvody. Všech 4 100 obvodů bylo zkonstruováno shodně pomocí NOR hradel. Konfigurace byla připravena tak, aby poskytovala prostor pro ukládání dat a současně obsahovala logiku počítače. Rozhodnutí o použití jednotného návrhu plošných spojů pomohlo předejít problémům, které sužovaly ostatní časné IC návrhy používající kombinaci několika různých technologií.


Na počátku roku 1960 celých 60 % americké produkce všech integrovaných obvodů vykoupila NASA. Z tohoto pohledu projekt Apollo odstartoval revoluci ve výrobě mikročipů.
Paměť systémů AGC a LGC měla 2kB RAM a k tomu 36kB ROM 16-bitových slov, každá s dobou cyklu asi 12 mikrosekund. Procesor pracoval na frekvenci 1 MHz a mohl zpracovávat až 8 úloh najednou pomocí jejich řazení.
Současné počítače jsou lepší než AGC/LGC, ale nutno poznamenat že AGC/LGC se také staral o komunikaci s pozemní telemetrií, obsluhoval přibližovací radar, přistávací výškoměr, hlídal gyro kompasy, dokázal provádět optickou navigaci pomocí hvězd a dohlížel na pohonný systém. Dokázal by to také náš počítač?


Při prvním přistání na Měsíci došlo k zahlcení LGC údaji z přibližovacího radaru. Naštěstí se vyplatila investice do automatického oživení systému a ten byl schopen pozastavit některé nekritické úkoly a vrátit se do služby včas pro provedení bezpečného přistání.


 

Zvětšit obrázek
Digital Computer Launch Vehicle (LVDC)

Počítač pro řízení rakety
Posledním počítačem je ten který řídil raketu Saturn 5 při jejím startu. Navžen byl v NASA a postavila ho IBM. Digital Computer Launch Vehicle (LVDC) byl vložen do 21 metrového jeden metr vysokého prstence tvořil nervové centrum pro celý Saturn 5.


 

Zvětšit obrázek
Digital Computer Launch Vehicle (LVDC)

LVDC běžel na 2MHz a jeho paměť obsahovala 32K 28-bitových slov. Téměř neskutečné spolehlivosti bylo dosaženo pomocí implementace triple-redundantní logiky s hlasováním. V té byl každý logický proces byl rozdělen do sedmi fází. V každé fázi se hlasovalo a teprve až výsledek s nejlepším ohodnocením byl postoupen do další fáze. I když šlo o složitý systém, za více než 250 hodin svého nasazení prokázal spolehlivost vyšší než 99,6 %. Trochu předimenzované? Možná, ale představte si to prostředí, pro které byl počítač určen!

LVDC pak po necelých šesti hodinách skutečného provozu počítaje celým startem rakety, separaci, přenosem motorových dat rádiem zpět na Zemi, výpočetní kontrolu vedení a řízení motoru, dokončil svou životní práci. Třetí stupeň Saturnu V si to namířil nosem dolů do oceánu, a počítačový prstenec LVDC se vydal navždy obíhat Slunce.

 

 

Závěr
Poučení a zkušenosti z mise Apollo se v průběhu let přetavily a významně přispěly k rozvoji dnešních mainframe i vestavěných počítačů. Navíc jsou tyto lekce stále platné i pro současné  vesmírné mise.

Například specializovaný počítač AP101 užitý v Space Shuttle byl další generací počítače AGC. Stejně tak byly užity původní počítače pro pozemní řídicí středisko a čerpaly ze stand-by architektury Apollo.

Lunární program vedl k vývoji kritických systémů z hlediska bezpečnosti a praxi softwarového inženýrství v návrhu a programování těchto systémů. Mnohé z těchto poznatků získaných při programu Apollo stále tvoří základ novodobých systémů s vysokýmy nároky na dostupnost.

 


Zdroje:
www.availabilitydigest.com
http://en.wikipedia.org/wiki/Apollo_11
http://www.ian.cz/detart_fr.php?id=2576
http://cs.wikiquote.org/wiki/John_Fitzgerald_Kennedy

 

 


Autor: Jan Bílek
Datum:06.01.2014 14:32