Uštrikovaný počítač, ktorý s nami letel na Mesiac

1

Dnes je to presne 48 rokov, čo Apollo 11 zavŕšilo svoju historickú lunárnu misiu úspešným návratom na Zem. Príbeh o tom, ako sa tvory zrodené v afrických savanách odpútali od svojej planéty, ktorá im dala život a po prvý krát vkročili svojimi nohami na iné vesmírne teleso, patrí nepochybne k najväčším dobrodružstvám v ľudských dejinách. Nedeľník TOUCHIT vážne i nevážne. Nezviazané IT témy na tisíc spôsobov.

Ak sa v súvislosti s misiou Apollo hovorí o technike, obvykle sa spomína raketa a loď. Je pravdou, že len málokto nespozná ikonickú podobu lunárneho modulu, ktorý v roku 1969 zosadol s Neilom Armstrongom a Edwinom Aldrinom na povrch telesa vzdialeného 385 000 km od domova.

Mnoho ľudí však netuší, že za úspechom misie nestál len pokrok v raketovej technike, ale aj obrovský technický zlom v oblasti IT. Let by totiž nebol možný bez čudesného stroja, ktorý bol reprezentantom prakticky prvého, veľmi pokročilé palubného navigačného počítača.

Toto zariadenie, skladajúce sa z 31 kg skrinky v tvare kufríka (počítača) a kontrolného panelu, ktorý bol súčasťou palubnej dosky, nielenže zohralo celkom esenciálnu rolu vo vykonateľnosti celej misie, ale sa aj významne podpísalo na popoháňaní vývoja celého polovodičového priemyslu. Vo svojej najväčšej sláve totiž program Apollo spotrebovával až 60 % celej americkej produkcie integrovaných obvodov.

Potrebujem počítač, ktorý sa zmestí do kufru

Ak sa chcete vydať na takmer pol milióna kilometrov dlhú cestu na mesiac, potreba navigácie je celkom kľúčová. Mesiac nie je zavesený na oblohe ako hodiny na stene a je neprestajne v pohybe okolo Zeme. Ak naň chcete za tri dni naozaj doletieť, musíte ísť tam, kde v čase vášho príchodu bude, nie kde je teraz.

Zároveň pritom potrebujete presnú rýchlosť a uhol priblíženia, ktoré vám zaručia prechod na jeho orbitu. Omyl totiž znamená nepeknú smrť rozbitím o jeho povrch, alebo neblahý osud v podobe letu mimo neho do nekonečnej prázdnoty.

Útroby inerčného navigačného systému lode Apollo s gyroskopmi

Navigačný systém kozmickej lode je teda kľúčový prvok, ktorého cieľom je prevziať z ľudských rúk obrovské množstvo zodpovednosti a príležitosti k omylu. Je ťažké orientovať sa podľa očí, keď v kozme nemáte šancu zistiť, kde je vlastne hore a dole a čo je vpred a vzad. Automatický systém môže pri tom na základe vstupných dát reagovať omnoho rýchlejšie a presnejšie, ako by bol schopný človek.

Jedným z hlavným mechanizmov určenia toho, ako a o koľko sa loď nakláňa, je jej porovnávanie s vysoko presnou sústavou točiacich sa gyroskopov. Takéto tzv. inerčné navigačné systémy, sa začali uplatňovať v 50. rokoch minulého storočia a ich prvý reálny test sa udial v roku 1953 pod vedením vedca a inžiniera Charlesa Drapera (ktorý je vďaka tomu známy aj ako otec inerčnej navigácie). Systém bol namontovaný do bombardéra, letiaceho z Los Angeles do Bostonu, ktorý automaticky vykonal svoj let bez nutnosti navigovania podľa terénu (pilot vykonal len vzlet a pristanie a celý let, vrátane korekcií smeru podľa vetra, bol v réžii analógového autopilota).

Charles Draper (vľavo), otec inerčných navigačných systémov, vo svojom laboratóriu na MIT

NASA vedela, že takýto systém je potrebný aj pre loď Apollo, pretože na veľkej vzdialenosti, akú je potrebné uraziť k Mesiacu, by sa aj maličká chybička v úvode letu prevtelila do obrovského rozdielu v jeho závere (palivo lode je obmedzené a počet možných korekcií dráhy za letu je teda konečný).

V lietadle šlo o jednoduché elektromechanické zariadenie, ktoré reagovalo na posuny gyroskopov mechanickými príkazmi riadiacej páky. Apollo pochopiteľne potrebovalo omnoho pokročilejší stroj, ktorý by reagoval nielen na gyroskop ale aj radar (pri pristávaní) a zároveň by sa zmestil na palubu.

Riešením bol pravdaže počítač, avšak v tej dobe väčšina strojov tohto typu zaberala celú miernosť, z dôvodu svojich analógových mechanizmov. Bolo teda nutné vyvinúť digitálny stroj, ktorý mohol operovať značne rýchlejšie, menej náchylnejšie na chyby a zaberal by omnoho menej miesta.

Panel počítača AGC na palubnej doske lode Apollo

V apríli 1961 NASA kontaktovala Massachusettskú technickú univerzitu (MIT), na ktorej Charles Draper viedol miestne technologické laboratórium a požiadalo ho o štúdiu vykonateľnosti takéhoto počítačového navigačného zariadenia. To bolo len mesiac predtým, než americký prezident J. F. Kennedy predstúpil pred kongres a vo svojom pamätnom prejave predostrel svoj návrh na národný projekt, ktorý by sa zaviazal k cieľu dopraviť človeka na Mesiac a bezpečne späť do konca dekády.

Vykonanie časového záväzku a otvorenie takmer bezodného rozpočtu projekt Apollo extrémne rýchlo rozhýbalo. MIT dostala finálnu zákazku na výrobu počítača už o dva mesiace neskôr, pričom rolu kontraktora, ktorý na kompletnú dodávku systému dohliadal, bola zbrojárska firma Raytheon (v tom čase sa venovala vývoju pokročilých lietadiel a letovej elektroniky a dnes je najväčším svetovým producentom riadených striel).

To, že vývoj tak dôležitej časti lode dostalo na starosť univerzitné laboratórium a nie dominantná počítačová firma tej doby (IBM), bolo pre mnohých zarážajúce. Pravda ale bola taká, že laboratórium MIT bolo miestom najväčších expertov na navigačné systémy na svete (na čele s Draperom), ktorý okrem iného stáli napríklad aj za vtedajšími navigačnými systémami útočných rakiet Polaris a Poseidon

Tie však boli analógové a digitálny počítač bol v polovici roku 1961 ešte v hardvérovom odvetví čerstvým a neotestovaným prístupom. Úplnou novinkou boli aj integrované obvody, ktoré práve prišli na trh, pričom boli ešte vskutku rudimentárne a ich ceny astronomické. V prípade obvyklého integrovaného čipu pre armádu šlo o zhruba 1000 dolárov za kus (čo je 8200 dolárov na dnešné peniaze, upravené o infláciu).

Počítač Apolla, ktorý ich napokon obsahoval 4100, dostal skrátené pomenovanie AGC, čo je doslova Navigačný počítač Apolla (Apollo Guidance Computer). Zaujímavosťou bolo, že MIT nedostala žiadne technické parametre, ani požiadavky na to, aký má byť. Zariadenie daného typu skrátka ešte neexistovalo a bolo ho nutné stvoriť a nikto vlastne nevedel, aké bude a čoho všetkého bude schopné.

Eldon Hall, hlavný dizajnér hardvéru počítača Apollo

Hlavným dizajnérom AGC v MIT bol Eldon Hall, pričom v jednom zo svojich rozhovorov uviedol, že na začiatku kontraktu chcela NASA od nich prakticky vedieť len to, aké veľké zariadenie vo výsledku bude. V rámci kozmických letov je totiž veľkosť a hmotnosť obrovský faktor, pretože nosnosť rakety je limitovaná a každá váha navyše obmedzí váhu iných dôležitých častí.

Keďže vedci a inžinieri MIT o budúcej veľkosti nemali ani poňatia, Hall všetko vzal do vlastných rúk a jednoducho zahlásil „Čo ja viem, povedz NASA, že bude veľký ako kufor“. V jednom zo svojich neskorších rozhovoroch pri tom podotkol, že ak by NASA a ostaní vývojári tušili vopred, čo bude musieť počítač všetko zvládať (čo sa ukázalo až v nasledujúcich rokoch) a aké náročné ho bude vyvinúť, pravdepodobne by v roku 1961 ešte všetci usúdili, že technológia naň ešte nedozrela a nebude ho možné postaviť.

Roztvorený „kufor“ počítača AGC (vystavený v múzeu počítačov) pekne odhaľuje zasunuté moduly logiky, pamäte a iných súčastí

Výsledný počítač vskutku rozmerom kufor pripomínal, pričom ho tvorilo niekoľko samostatných modulov, ktoré boli v ňom umiestnené na husto ako knihy v polici. Šlo o 16 bitový počítač, pracujúci na frekvencii 2 MHz, ktorý používal 2 kilobajty operačnej pamäte a 36 kilobajtové úložisko svojho softvéru (z ktorého sa dalo iba čítať).

K počítaču (AGC) bol okrem sústavy gyroskopov a iných prístrojov pripojený aj kontrolný panel, ktorý bol umiestnený na palubnej doske lode, pričom používal označenie DSKY. Šlo o jednoduchú skratku pre displej a klávesnicu (DiSplay KeYboard).

Jeden z modulov logiky počítača AGC. Používanie integrovaných obvodov bolo novinkou a počítač ich obsahoval viac ako 4000

Systém bol schopný spúšťať zhruba 40 procesov súčasne a umožňoval ich prerušenia na základe vstupov zo senzorov, alebo príkazov zadaných astronautmi na klávesnici. Každá misia Apollo mala tri počítače tohto typu, vrátane displeja a ostatných častí. Jeden bol v pristávacom module a druhý v lodi samotnej, kde sa nachádzala aj jeho nespustená kópia ako záloha.

Pamäť, do ktorej sa zapisovalo pletením

Hardvér by bol pravdaže k ničomu bez softvéru, čo sa ukázalo ako značne veľký problém. Je jasné, že programy nemohli byť na diernych páskach, pretože boli veľmi ťažké, rozmerné, neohrabané a takisto náchylné na zásek a poškodenie.

Relatívne stále čerstvá novinka od IBM v podobe pevného disku takisto neprichádzala do úvahy, pretože HDD mal rozmer chladničky, v ktorej sa veľkou rýchlosťou točilo 50 platní veľké ako veká od kanálu.

Riešením sa stala Rope Core Memory, čo sa dá voľne preložiť ako povrázková pamäť s prstienkami. Táto unikátna a veľmi zaujímavá pamäť typu ROM (Read Only Memory, pamäť určená len na čítanie), bola navrhnutá laboratóriom MIT práve za účelom použitia v počítači lode Apollo (neskôr sa však používala aj v nepilotovaných vesmírnych sondách),

Ide o odvodeninu Feritových pamätí (magnetic-core memory), ktoré boli v priebehu 60. rokov dominantným riešením pre operačnú pamäť (nahradili bubnové pamäte z 50. rokov). Takéto operačné pamäte pozostávali z mriežky izolovaných vodičov, pričom v miestach kde sa vodiče pretínali bolo zapletené magnetické feritové jadierko v tvare malého prstienka. Ten slúžil na záznam jedného bitu.

Stačilo poslať elektrický signál z jedného vodorovného a jedného zvislého vodiča a keďže tie sa v danej siete stretli len na jednom mieste, bolo možné zmagnetizovaním ovplyvňovať samostatne každý bit. Čítanie a zápis sa tak zaobišlo bez fyzického pohybu.

Takáto operačná pamäť pravdaže mala svoje nevýhody, pretože sieť drôtov s magnetickými prstienkami nebolo možné príliš rozširovať do čoraz potrebnejších kapacít. Aj počítač lode Apollo takúto operačnú pamäť používal, pričom mala kapacitu 2 kilobajty.

Na uloženie samotných súborov/inštrukcií programov (teda ekvivalent dierneho štítku, pásky alebo HDD) však bolo treba značne viac priestoru. Tým MIT teda tento postup prepracoval a navrhol 36 kilobajtové úložisko, do ktorého sa programy mali zmestiť.

Pri povrázkovom úložisku plnil prstienok nie formu miesta záznamu bitu, ale rolu transformátoru v matici samostatných drôtov. Ak povrázok/drôt prechádzal cez prstienok, reprezentoval 1, ak drôt prstienok obchádzal, reprezentoval 0.

Z tohto princípu funkčnosti vyplýva, že toto riešenie bolo permanentné. Ako ste drôty preplietli, takú výslednú dátovú hodnotu ste mali a hotovo. Šlo o extrémne prácnu činnosť, pretože 36 kB obsahuje až 288 000 čísiel/pozícii. Upletenie jedného programu z desiatkami tisíc záhybov mohlo trvať aj mesiace a pokiaľ došlo k omylu a niektorí bit sa urobil zle, oprava bola enormne náročná, pretože drôtiky boli prepletené kontinuálne cez celú konštrukciu.

Východné Massachusetts, kde MIT a takisto zbrojovka Raytheon sídlila, však bola známe už od 19. storočia svojim rozsiahlym textilným biznisom. MIT tak zregrutovalo bývalé šičky a textilné pracovníčky, ktoré v prispôsobených dielňach dáta doslova vplietali do konštrukcie pamäte.

Zaujímavé bolo, že v priebehu programu Apollo pomerne pravidelne tieto dielne navštevovali aj astronauti, ktorí sa na Mesiac chystali. Fungovali ako pripomienka toho, ako veľmi je táto práca dôležitá a že na ušitých dátach závisia reálne ľudské životy.

Magický softvér, ktorý sa nebál záseku

Vedúcim softvérovým inžinierom, stojacim za letovým softvérom počítača AGC, bola Margareta Hamiltonová. Práve ona a jej tím mali na starosti extrémne náročnú úlohu, vyvinúť programy s algoritmami na precízne ovládanie lode a lunárneho modulu. Tie nielenže museli byť mimoriadne spoľahlivé a presné, ale aj schopné vlastného reštartu pri akýchkoľvek problémoch a to bez zádrhu. Pri nábehu z reštartu program musel okamžite začať pracovať znova so svojimi pôvodnými dátami z prístrojov, ktoré ho čakali v operačnej pamäti.

Margaret Hamiltonová sa často označuje aj za „matku softvérového inžinierstva“. Nielenže totiž excelovala v odbore, ktorému v tom čase prakticky výhradne dominovali muži, ale aj odboru dala vážnosť a uznanie, ktoré si zaslúžilo.

Margareta Hamiltonová pri ručnom písaní softvéru pre loď Apollo v 60. rokoch minulého storočia

V tej dobe sa na vývoj softvéru ešte pozeralo s dešpektom a špecialistom tohto typu sa o uznaní, ktoré si užívali raketový či iný technický inžinieri, mohlo len zdať. Hamiltová v dobe programu Apollo prakticky vytvorila pre túto oblasť vývoja nový termín „softvérové inžinierstvo“, ktorý sa používa dodnes a jasne mu tak vyhradila miesto na slnku.

Programy počítača AGC, ktoré boli vpletené do pamätí, boli napísané v jazyku symbolických adries (v angličtine assembly language). Aj dnes sa preň veľmi často používa nepresné označenie assembler, čo je však v skutočnosti označenie pre prekladač, ktorý tento „ľudský“ jazyk prekladá do strojového kódu, ktorý číta počítač.

Podobne ako pre počítač ako taký, ani pre jeho softvér neexistovala žiadna špecifikácia a inžinieri ho jednoducho museli vytvoriť od nuly tak, ako sa im zdalo vhodné. Programy boli pri tom písané ručne na papier a následne pretransformované na binárne dáta. Limitom bola teda len samotná veľkosť povrázkovej pamäte, ktorá programy držala.

To a aké obrovské množstvo dát ide, môžete vidieť napríklad na tomto videu, kde jeden z pôvodných softvérových inžinierov, Don Eyles, otvára jednu z kníh s kódom. Celý zdrojový kód počítača je dnes voľne k stiahnutiu na GitHube, čo umožnilo aj vznik niekoľkých emulátorov.

Hlavný operačný program počítača Apollo sa pri tom zapísal do histórie softvérového inžinierstva aj jedným veľmi zaujímavým spôsobom. V tej dobe bolo bežnou praxou, že úlohy, ktoré na počítačoch bežali v jednom čase, sa rovnomerne delili o jeho prostriedky.

Softvérový tím MIT a NASA si však rýchlo uvedomil, že v prípade počítača Apollo by šlo o obrovský problém. Keďže zásek alebo zrútenie programu mohol znamenať napríklad náraz lunárneho modulu do povrchu Mesiaca a smrť astronautov, bolo mimoriadne dôležité odlíšiť dôležité úlohy, od tých nedôležitých.

Časť softvérového tímu počítača AGC (Don Eyles vpravo dole)

Navigácia lode Apollo smerom k Mesiacu a späť sa vykonávala pomocou rádiových signálov zo Zeme, kde navigačné dáta počítal veľký sálový počítač IBM priamo v NASA (ak nedošlo k strate spojenia). Avšak počas momentu, kedy loď zakotvila na orbite Mesiaca a zašla z pohľadu Zeme do zákrytu na 45 minút, závisela celá navigácia už výhradne na počítači, ktorý bol na palube. Rovnako tomu tak bolo aj v prípade pristátia. Kvôli vzdialenosti a limitu rýchlosti svetla sa vytvorí pri komunikácii so Zemou zhruba 3 sekundový lag (1,5 sekundy let tam a takú istú dobu nazad), ktorý neumožňuje ovládať pristátie modulu v reálnom čase zo Zeme.

Všetko teda záležalo na počítači AGC na jeho palube. Softvérový tím tak navrhol programy tak, že v prípade, že počítač zahltia dáta, ktoré nezvláda, alebo dochádza k nejakým zásekom, začne nedôležité úlohy s nízkou prioritou ignorovať a ich dáta zahadzovať, bez toho aby prestal vykonávať tie dôležité. Kým programový kód s nízkou prioritou mal na starosti napríklad to, aby počítač ukazoval dáta na displeji, kód s vysokou prioritou sa staral napríklad o to, aby bol modul tesne pred dotykom s Mesiacom v zvislej polohe.

To sa ukázalo napokon esenciálne aj pri historickom pristátí Apolla 11. Behom jeho 12 minútového zostupu, kedy na ňom bežala jedna z najkomplikovanejších navigačných rutín, totiž začal byť počítač zahltený. Bežný počítač by v takomto momente zamrzol, čo by skončilo katastrofou, avšak AGC začal v masívnej miere zahadzovať veľké množstvo dát, ktoré nepotreboval a vďaka tomu, že najdôležitejšia úloha zostala funkčná a s dostatkom prideleného výkonu, úspešne s modulom pristál.

Margareta Hamiltonová pri vytlačenom zdrojovom kóde počítača lode Apollo

Neskoršia analýza ukázala, že počítač zahadzoval obrovské množstvo komplexných dát z radaru, ktorý bol určený na pomoc pri odlete. Šlo o chybu v obslužnom manuáli pre astronautov, ktorý tvoril zoznam procedúr, ktoré bolo nutné vykonať pri zostupe. Ten omylom obsahoval zapnutie prístrojov určených až na odlet, ktoré tak Buzz Aldrin nie vlastnou chybou zapol predčasne, čím počítač nechtiac zahltil.

Počítač začal dáta z radaru  behom zostupu v masívnej miere zahadzovať a držal v prevádzke esenciálne gyroskopické systémy potrebné pre navigáciu zostupu a ovládanie raketových dýz a s modulom bezpečne zosadol.

48 rokov po…

Posádky lodí Apollo boli prvými ľuďmi na svete, ktorým sa naskytol živý pohľad na celú našu rodnú Zem, zavesenú v ničote (prvými bola posádka Apolla 8, ktorá bez pristátia Mesiac obletela).

Program Apollo bol monštruóznym ľudským úsilím, do ktorého bolo priamo zapojených 400 000 ľudí a viac ako 20 000 firiem a univerzít.

Je treba si pri tom uvedomiť, že aj keď šlo o obrovský úspech techniky a vedy, hlavným podnetom pre jeho realizáciu bolo nevedecké politické rozhodnutie. Šlo o jasnú odpoveď USA na sovietske kozmické prvenstvá (Kennedy projekt ohlásil mesiac po prvom kozmickom lete Jurija Gagarina), pričom dôvodom bola demonštrácia technickej a ekonomickej dominancie.

Rozpočet na realizáciu Apolla bol prakticky neobmedzený a NASA pumpovala z americkej ekonomickej mašinérie toľko, koľko len potrebovala. V prepočte na dnešné peniaze bola kongresu reportovaná výsledná suma 140 miliárd dolárov, čo je zhruba ročný hrubý domáci produkt celého Slovenska (kompletný ekonomický výsledok všetkých firiem a osôb, nie štátny rozpočet).

Najväčšiu sumu odčerpávali štarty dnes už neexistujúcich mamutích rakiet Saturn V, ktoré z hľadiska sily a nosnosti stále nemajú premožiteľa. Jeden stál v dnešných peniazoch 2,5 miliardy dolárov. Energia potrebná na vynesenie troch ľudských tiel k Mesiacu je jednoducho dych berúca. Pokiaľ máte chuť, pozrite si jej pekný a pritom stručný 3 minútový popis od fyzika Briana Coxa, ku ktorému som pre vás pripravil titulky.

Úžitok misie Apollo však nebol len v pozdvihnutí obzorov ľudstva a zberu vedeckých dát z geologických vzoriek pre mnohými desaťročiami. Aj keď to mnoho ľudí netuší, z programu Apollo ťažíme vedecká dáta ešte aj dnes.

Posádky totiž na povrchu Mesiaca nechali laserové odrážače, do ktorých pravidelne pália observatória zo všetkých kútov sveta. Ide napríklad o observatórium Lick v Kalifornii, Tokijské observatórium v Japonsku a v Európe napríklad francúzske observatórium Pic du Midi, stojace v Pyrenejskom pohorí na hranici so Španielskom.

Dostatočne výkonný laserový lúč je pri správnom zacielení na odrážač umiestený na povrchu Mesiaca možné pri odraze zachytiť späť na Zemi, z čoho na základe známej rýchlosti sveta a časovému oneskoreniu možeme vypočítať presnú vzdialenosť Mesiaca na milimetre presne. Vďaka tomu vieme, že Mesiac sa od Zeme dlhodobo vzďaľuje rýchlosťou 3,78 cm ročne a jedného dňa náš spoločný tanec prejde do viazanej rotácie, kedy už Mesiac na trvalo bude zavesený len nad jedinou pologuľou Zeme. Netreba sa však s večernými romantickými pohľadmi ponáhľať. Do kalendára ju stačí zaznačiť na horizont niekoľkých miliárd rokov.

Nedeľník TOUCHIT hľadajte na našom webe ako inak než v nedeľu. Ak ste predchádzajúce zmeškali, nájdete ich všetky pod rovnomenným kľúčovým slovom.

O autorovi

Profesionálnej žurnalistike sa venujem od roku 2006. Zameriavam sa najmä na prehľadové a analytické články z prostredia hardvéru, výrobných procesov polovodičov, umelej inteligencie a ďalších technológií. Mojou doménou je takisto servis hardvéru aj softvéru.

Jeden komentár

  1. Pingback: 08_2017 Blog, Notes.

Pridaj komentár

Objednajte si ročné predplatné časopisu TOUCHIT, teraz s užitočnou príručkou
Začíname so smartfónom.Iba za 22,99 €.
Kliknite a zistite viac>>