390 likes | 550 Views
AGC – Apollo Guidance Computer. Seppo Hätönen Tietojenkäsittelytieteen laitos 2006. Sisältö. Apollo-ohjelma Navigointijärjestelmä AGC Block I ja Block II Rakenne Muisti DSKY Ohjelmistot ja käyttöjärjestelmä. Sisältö (Jatkoa). Ongelmia lennoilla Apollo 10 Apollo 11 Apollo 12
E N D
AGC – Apollo Guidance Computer Seppo Hätönen Tietojenkäsittelytieteen laitos 2006
Sisältö • Apollo-ohjelma • Navigointijärjestelmä • AGC Block I ja Block II • Rakenne • Muisti • DSKY • Ohjelmistot ja käyttöjärjestelmä
Sisältö (Jatkoa) • Ongelmia lennoilla • Apollo 10 • Apollo 11 • Apollo 12 • Apollo 14 • Yhteenveto • Demo
Apollo-ohjelma • 60-luvun alussa John F. Kennedy julisti vaikean tavoitteen: matka kuuhun ennen vuotta 1970 • NASA tutki eri vaihtoehtoja kuumatkaan, ja aluksi oli tarkoitus käyttää vain yhtä alusta • NASA päätyi kuitenkin käyttämään ”Lunar orbit rendezvous”, kohtaaminen kuun kiertoradalla, menetelmää, mikä vaati kaksi alusta • Ongelmana oli aluksen ohjaus ja navigointi pitkän matkan päästä sekä kuun katveessa
Apollo-ohjelma (jatkoa) • Lopulta lennolla oli neljä tietokonetta • Kummaskin moduulissa oma Apollo Guidance Computer (AGC) • Kuumoduulissa myös yksinkertainen Abort Guidance System • Saturn-kantoraketissa IBM:n valmistama tietokone
Alkuperäiset syyt • Ohjata kuualus kuuhun itsenäisesti • Estää vihamielinen häirintä • Vähentää maa-asemia
Lopulliset syyt • Mahdollistaa laskeutuminen kuuhun • Jos yhteys maahan katkeaa, aluksen turvallinen paluu • Toimia aluksen yleisenä tietokoneena ja osana navigointijärjestelmää • Mahdollistaa planeettojen välinen matkustus
PGNCS • Primary Guidance and Navigation Control System • Koostui kolmesta osasta • Optinen järjestelmä • Inertiaalijärjestelmä • Tietokonejärjestelmä eli AGC
AGC-Apollo Guidance Computer • Aluksi matkaan oli tarkoitus lähettää vain yksi tietokone, mutta pian päädyttiin lähettämään kaksi • Tietokoneen ja ohjelmien suunnittelijaksi valittiin MIT ja rakentajaksi Raytheon • Kummallakin oli paljon kokemusta tältä alueelta Polaris-ohjusten kautta • AGC:stä oli kaksi mallia Block I ja Block II. • Block I oli lähinnä prototyyppi, jota kuitenkin käytettiin miehittämättömillä lennoilla sillä Block II ei ollut vielä valmis • Block I perustui hyvin pitkälti Polaris-ohjuksissa käytettyyn ohjaustietokoneeseen
AGC (jatkoa) • Block I suunniteltiin modulaariseksi • Vian sattuessa korjaus olisi mahdollista • Block I todettiin nopeasti liian rajoittuneeksi, joten päätettiin suunnitella Block II • Block II säilytti Block I:n perusrakenteen • Vaihdettavista moduuleista päätettiin kuitenkin luopua korroosion takia
AGC (Jatkoa) • AGC:n rakentamiseen päätettiin käyttää kolmiporttisia NOR-mikrosiruja (Integrated Circuits) • Vuonna 1963 MIT käytti n. 60% Yhdysvaltojen piirituotannosta • Koneen kellon nopeus oli 1MHz • Sisälsi vain yhden yhteenlaskupiirin • Jos lopullisen AGC:n vaatimukset olisi esitetty vuonna 1961, se olisi todettu mahdottomaksi rakentaa
Rakenne • Modulaarinen, jaettu kahteen tasoon • Tray A • Logiikkapiirit, rajapinnat muihin laitteisiin, virtalähde • Tray B • Muisti ja sen ohjauspiirit, kello • Komento- ja kuumoduuleissa omat kokoonpanonsa
Muisti • AGC:n muisti koostui kahdesta erillisestä muistista, kiinteästä ja muuttuvasta • Kiinteä oli toteutettu ydin-köysi-tekniikalla ja oli kooltaan suurempi • Muuttuva muisti oli toteutettu ferriittirenkailla ja oli tilaltaan huomattavasti pienempi • Sekä kiinteällä että muuttuvalla muistilla sama nopeus • Muistin koko kasvoi koko projektin aikana yli 30 kertaiseksi • Aluksi kooksi määriteltiin 2K sanan kiinteä muisti ja 256 sanan muuttuva
Muisti (jatkoa) • Block I 24K muistia ja Block II 36K • Rakenne kuitenkin periaatteessa sama • 36K sanan muisti tuotti ongelmia, sillä muistinosoitukseen oli käytössä vain 12 bittiä • Muisti oli jaettu pankkeihin, joihin osoitettiin ensin ilmoittamalla pankin numero ja sitten osoite • 16-bittiset luvut olivat liian pieniä tarkkoihin laskuihin • Tarkkuuttavaativat operaatiot käyttivät kahta tai kolmea sanaa yhdessä
Kiinteä muisti • Core-rope tekniikalla toteutettu • Block II 36 864 sanaa • Kestävää • Paljon tilaa pienessä tilassa • Kallis ja työläs valmistaa • Jos virheitä, käytännössä mahdoton korjata • Käytettiin jo Marsin kuvauslennolla
Muuttuva muisti • Ferriittirengas tekniikka • Block II 2048 sanaa • Todettu toimivaksi Gemini-lennoilla • Työmuisti tietokoneilla • Time shared • Huono pakkaustiheys • Vie paljon tilaa ja virtaa
DSKY (Jatkoa) • DSKY – Display Keyboard • Tarvittiin tapa esittää tietoa ja syöttää niitä • Gemini-lennoilla käytetyt nauhat liian hitaita ja epävarmoja • Gemini 8 Neil Armstrong ja David Scott laskeutuivat 6000 nm ohi laskeutumispaikasta
DSKY (Jatkoa) • MIT:n kehittämä järjestelmä • Astronautit halusivat mittareita yms, päädyttiin lopulta digitaalisiin näyttöihin • 19 nappia, ei aakkosia • Numerot 0-9, + ja – merkit sekä muita nappeja • Käskyt syötettiin Verbi-Substantiivi pareina • Näitä pareja oli yhteensä noin 100
DSKY (jatkoa) • Kun AGC:lle haluttiin syöttää käsky näppäiltiin Verb koodi Noun koodi Enter • V numero N numero E • Esim. V 1 6 N 3 6 E • Kaksi numerojärjestelmää: oktaalit ja desimaalit • Jos haluttiin käyttää desimaalijärjestelmää, arvo aloitettiin + tai - merkillä
DSKY (Jatkoa) • Yhteensä kolme • kaksi komentomoduulissa, toinen komentajan istuimen edessä, toinen alemmassa varustetilassa • yksi kuumoduulissa astronauttien välissä • DSKY:n näytöt ja liittimet tuottivat ongelmia lähdön ja paineen muutoksien yhteydessä • Kuulento vaati noin 10500 painallusta normaalilla lennolla
Käyttöjärjestelmä • Kaksi suoritusjonoa ”tehtäville” ja ”töille” • WAITLIST • Lyhyitä, max 4ms kestäviä tehtäviä • 9 paikkaa • EXECUTIVE • prioriteettijono pidemmille, max 9ms töille • 7 paikkaa • EXECUTIVE tarkisti 20ms välein onko sille uusia tärkeitä töitä • Muuttuva muisti jaettu 12 ydin joukkoon, vektoreille enemmän
Ohjelmistot • Eri lentoja varten oli omat ohjelmistonsa • Ennen Apollo 10 ohjelmat olivat huomattavasti rajoittuneempia • Lopulta komentomoduulissa käytettiin Colossus-ohjelmisto • Kuumoduulissa käytettiin Luminary-ohjelmistoa • Käytettiin sekä metrijärjestelmää että jalkoja • Ohjelmat sisälsivät paljon virheitä ja dokumentointi oli vajavaista
Apollo 10 • Lennon tarkoitus simuloida kuulaskeutumista kuitenkaan laskeutumatta • Kun tarkoitus oli simuloida kuusta nousua, oli AGS väärässä tilassa • Kun kuumoduulin nousuosa irtosi laskeutumisosassa, AGS otti ohjauksen itselleen • AGS yritti suunnata nousuosan kohti komentomoduulia • Alus alkoi heittelehtimään melkein holtittomasti
Apollo 10 • Lopulta kuualus kääntyi oikeaan suuntaan. • AGS toimi periaatteessa täydellisesti • Ainoa kerta Apollo-ohjelman aikana, kun AGS oli käytössä
Apollo 11 • Kun Kotka oli laskeutumassa kuuhun, AGC antoi varoitukset 1201 ja 1202 • Nämä varoitukset kertoivat, että LGC käynnistyi uudelleen tiputtaen vähemmän tärkeitä tehtäviä • Koska varoitukset olivat ajoittaisia, päättettiin jatkaa laskeutumista • Syynä oli lähestymistutkan väärä asento, joka vei 15% AGC:n tehosta
Apollo 12 • Kun Apollo 12 laukaistiin, siihen osui 2 salamaa • Pisin lista virheilmoituksia mitä oli koskaan nähty • Kaikki telemetria yms. tiedot sekosivat • Lennonjohtaja ensikertalainen
Apollo 12 • ”Try SCE to Aux” • Vaikka kaksi salamaa osui alukseen, kumpikaan AGC tai muistit eivät vaurioitunut • Kuulaskeutuminen onnistui
Apollo 14 • Kun Apollo 14:n kuumoduuli lähestyi kuuta, ilmeni Abort-napissa kosketushäiriö • Resetointi ei auttanut, naputus (ilmeisesti) sikarikotelolla auttoi • Edelleen vaarallinen tilanne, jos uusiutuisi myöhemmin, laskeutuminen keskeytyisi
Apollo 14 • Ratkaisu oli huijata tietokonetta siten, että se olisi jo muka keskeytystilassa • Vaati myöhemmin koneen muistin siivoamista • Harjoitustehtävä: Ohjelmoikaa tietokone uudelleen siten, että se ei ota huomioon Abort-nappia, mutta pystyy tarvittaessa keskeyttämään laskeutumisen. Aikaa noin 90 minuuttia
Yhteenveto • AGC oli kestävä ja toimiva tietokone • Valmistuessaan jo hidas • Kuulaskeutumisten lisäksi 3 matkaa Skylabille, Apollo-Soyuz kohtaaminen • NASA oppi hyvin paljon tietokoneista ja isoista ohjelmistoprojekteista • Suurin osa hävitetty, joissain museoissa muutamia jäljellä
Demo • Lopuksi nopea demo AGC:n ja DSKY:n käytöstä • Virtual AGC and AGS • http://www.ibiblio.org/apollo/
Demo • AGC:n käynnissäoloaika • V 06 N 36 E • DSKY:n valojen testaus • V 35 E • Ladataan osoitteeseen 50 oktaaliarvo 123 • V 21 N 01 E • 50 E • 123 E • Kellonajan tarkkailu • V 16 N 36 E
Demo • Haetaan muistipaikan 50 arvo • V 01 (Huom, Key Rel) • N 01 E • 50 E • Kasvatetaan kyseistä arvoa • N 15 E • E
Demo • Palataan tarkkailemaan ohjelmaa • Key Rel • Lopetetaan tarkkailu • V 34 E • Palautetaan AGC alkutilaan • V 37 E • 00 E