Apollo Guidance Computer. Komputer, który zabrał człowieka na Księżyc

Apollo Guidance Computer. Komputer, który zabrał człowieka na Księżyc19.07.2019 19:15
Neil Armstrong przy module księżycowym misji Apollo 11

Na temat komputera pokładowego Apollo 11, który w 1969 roku zabrał człowieka na Księżyc, krążą różne legendy. Najbardziej osławiona jest chyba ta o mocy obliczeniowej porównywalnej do kalkulatora. A jak było naprawdę? 50. rocznica tego wydarzenia to idealna okazja, aby raz jeszcze przeanalizować dokumentację. Oto anatomia Apollo Guidance Computer.

Był 20 lipca 1969 roku, godzina 20:17 uniwersalnego czasu koordynowanego (22:17 w Polsce). Moduł księżycowy LM-5 "Eagle" sięga powierzchni Srebrnego Globu. 6 godzin później astronauta Neil Armstrong wypowie legendarne słowa: "To jeden mały krok dla człowieka, ale wielki skok dla ludzkości". Jako pierwszy człowiek w historii ma szansę spacerować po Księżycu, gdzie ostatecznie spędzi 2 godziny i 32 minuty. Dokładnie o kwadrans dłużej niż drugi Buzz Aldrin.Trzeci członek misji Apollo 11, pilot Michael Collins, pozostaje na orbicie Księżyca za sterami modułu dowodzenia CSM-107 "Columbia". Choć nie dano mu szansy na kosmiczny spacer, odegra niezwykle istotną rolę – bez niego astronauci nie mogliby bezpiecznie powrócić na Ziemię.

W trakcie całej wyprawy zespołowi trzech astronautów towarzyszy komputer Apollo Guidance Computer (AGC), a właściwie to komputery, gdyż są one dwa. Jeden w module dowodzenia, drugi zaś w module księżycowym. W skrócie: wydają komendy silnikom, koordynują poszczególne fazy lotu, sterują radiolokacją, zbierają dane związane z profilem lotu niezbędne do zakończenia misji. Wszystko to, pomijając sprzęt, dzięki zestawowi programów napisanych w kodzie maszynowym.

Apollo Guidance Computer z dedykowanym interfejsem
Apollo Guidance Computer z dedykowanym interfejsem

Ale jakim cudem zbiór tak odpowiedzialnych zadań może zrealizować sprzęt z lat 60.? – zapytacie. Cudów tu nie ma. Są za to sprytne i często pionierskie rozwiązania techniczne.

Pierwszy taki na świecie

Tak, jak Neil Armstrong przetarł szlaki człowiekowi na Księżycu, tak AGC zapoczątkował erę układów scalonych. Został zaprezentowany w 1966 roku przez MIT Instrumentation Laboratory jako pierwszy komputer pokładowy oparty właśnie na "scalakach", a nie odrębnych tranzystorach.

Ponadto, przy wymiarach rzędu 61 x 32 x 17 cm i masie 32 kg, okazał się sprzętem zaskakująco kompaktowym jak na swoje czasy. Oferował przy tym wygodne urządzenie wejścia-wyjścia zwane DSKY, integrujące klawiaturę z 19 przyciskami i mieszczący do 21 znaków naraz wyświetlacz elektroluminescencyjny. Sprzęt działał oczywiście w trybie tekstowym, ale użytkownik nie wprowadzał komend, a tylko liczby. Określiwszy wcześniej ich znaczenie: rozkaz lub dane.

DSKY – Monitor i klawiatura komputera Apollo 11
DSKY – Monitor i klawiatura komputera Apollo 11

Komputer szyty na miarę

Niemniej was zapewne interesuje przede wszystkim to jak wydajny był AGC, prawda? To pytanie, na które z perspektywy czasu trudno odpowiedzieć, gdyż już w pierwszej połowie lat 70. rynek nabrał na tyle imponującej dynamiki, że każdy procesor szybko stawał się powolny i przestarzały.

Jak wynika z oficjalnej dokumentacji, komputer Apollo 11 potrzebował 23,4 µs na operację dodawania, którą mógł wykonać w jednej instrukcji. Czyli szczytowo powinien realizować około 42,7 tys. poleceń na sekundę. Intel 4004 z 1971 roku, uważany dzisiaj za pierwszy monolityczny procesor do zastosowań konsumenckich, w teorii w sekundzie radził sobie z ponad 92 tys. rozkazów. W praktyce jednak rzadko dobijał do tej wartości z powodu zbyt wąskiej magistrali zewnętrznej.

Kultowy Intel 4004 w ceramicznej obudowie DIP
Kultowy Intel 4004 w ceramicznej obudowie DIP

Wydajność kultowego modelu 8086 z 1978 roku szacuje się na 330 tys. instrukcji, a dzisiaj nawet wyszydzane czipy niskonapięciowe do laptopów osiągają wartości rzędu kilkudziesięciu milionów. Aczkolwiek to wciąż niewiele mówi o efektywności platformy. Kluczową rolę odgrywa architektura i specyficzne możliwości platformy – a te w AGC zostały od początku do końca zaprojektowane z myślą o realizacji załogowego lotu w komos i w tej roli sprawdziły się wyśmienicie.

Anatomia sukcesu AGC

Jak na swoje czasy, Apollo Guidance Computer był jednostką bardzo zaawansowaną. Składał się z ponad 16 tys tranzystorów. Dla odniesienia, Intel 4004 ma ich zaledwie 2,3 tys. Choć to porównanie jest mocno nieprecyzyjne, gdyż w przypadku AGC mówimy o całym komputerze, a układ Intela to tylko jednostka procesorowa, czyli dekoder i blok arytmetyczno-logiczny (ALU).

Tymczasem w przypadku sprzętu wykorzystanego w misji Apollo, prócz procesora, można wyróżnić jeszcze co najmniej sześć innych zasadniczych elementów: zegar kwarcowy, generator sekwencji stanów logicznych, układ inwersji priorytetów, magistralę wejścia-wyjścia, pamięci i zasilanie. Każdy z nich odegrał absolutnie kluczową rolę dla powodzenia księżycowej wyprawy.

Zegar o taktowaniu 2,048 MHz generował wszystkie impulsy niezbędne do zapewnienia przepływu danych, jak również przebiegi dla innych obwodów kontrolnych i ostrzegawczych. Dzięki zespołowi logicznych dzielników czasu i skalerów, częstotliwości były dostosowywane do konkretnych podsystemów. Procesor pracował z częstotliwością 1,024 MHz, a magistrala wejścia-wyjścia – 512 kHz. Idąc dalej, sygnały o niższych częstotliwościach wykorzystywano do inicjowania pewnych zdarzeń, na przykład 100 Hz to częstotliwość dla zegara czasu rzeczywistego.

Innowacyjna pamięć ROM w całej swej okazałości
Innowacyjna pamięć ROM w całej swej okazałości

Sam procesor też był ciekawy. Miał cztery 16-bitowe rejestry ogólnego przeznaczenia, a do tego całą masę rejestrów wyspecjalizowanych, w tym takie smaczki jak rejestr buforowy będący protoplastą systemu pobrań wstępnych. Choć prawdę mówiąc chodziło tylko o przyśpieszenie obliczeń przez skopiowanie operandów z pamięci do rejestru, a nie operacje na cache jak dzisiaj.

Ale wszystko to nic wobec zastosowanej technologii pamięci, które wykonano z ręcznie splecionych drucikami rdzeni ferrytowych. Stany logiczne warunkowane były kierunkiem namagnesowania, czy to w pamięci stałej czy ulotnej, a nie stanami bramek logicznych. W rezultacie dane uodporniono na utratę zasilania. Zaszkodzić im mogła tylko zmiana kierunku przepływu prądu. Pamięć stała zawierała 36 864 słów, czyli mogła pomieścić 74 kB danych, a pamięć ulotna – 2048 słów, czyli 4 kB.

Kropka nad i, geniusz programistów

Na nieszczęście programistów NASA, piętą achillesową AGC była ilość pamięci. To właśnie z tego powodu misję niemalże przerwano. Astronauci byli zaledwie 1800 metrów nad powierzchnią Księżyca, gdy na wyświetlaczu komputera pojawił się błąd nr 1202. Oznaczał przeciążenie pamięci i – jak wyszło później na jaw – był spowodowany nieoczekiwanym napływem informacji od radaru lądowania. Odpowiedzialność na siebie wziął 26-letni wówczas technik Steve Bales. Uznał, aby kontynuować podejście, za co otrzymał później Medal Wolności USA.

Tak czy inaczej, wszyscy od samego początku wiedzieli, że skromny RAM to problem. Programiści radzili sobie kreatywnymi sztuczkami, takimi jak częste nadpisywanie danych, nawet w obrębie tej samej fazy lotu, czy współdzielenie danych między procesami. A to z kolei umożliwił im przemyślany system operacyjny AGC, który potrafił prowadzić do ośmiu wątków naraz przez łączenie instrukcji na poziomie sprzętowym z poleceniami maszyny wirtualnej. Przy czym na tym etapie dokonywało się też niejako kolejkowanie zadań. System przydzielał priorytety właśnie w oparciu o model optymalnego wykorzystania pamięci. PC-ty nigdy nie doczekały się takiego poziomu optymalizacji.

Ostatecznie, o czym wszyscy doskonale wiemy, misja Apollo 11 zakończyła się sukcesem. AGC do lotów kosmicznych wykorzystywany był aż do roku 1975 roku, kiedy to odbył ostatnią podróż w ramach łączonej misji Sojuz-Apollo. Później jeszcze przez krótki czas służył w lotnictwie przy pracach nad systemem fly-by-wire. Dzisiaj pozostaje swoistym symbolem przekraczania granic w świecie komputerów. Pół wieku temu znalazł się na Księżycu, co nie przestaje imponować.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.