Diit.cz - Novinky a informace o hardware, software a internetu

AGC: úsporný režim, datové sběrnice, software

Apollo 11, otisk boty
Z pohledu lidské historie tomu bylo před malým okamžikem právě 40 let od momentu, kdy testovací pilot a astronaut Neil Alden Armstrong jako první příslušník lidského rodu vstoupil na povrch cizího kosmického tělesa, (ne)odvěkého souputníka planety Země, Měsíc. Byl to malý krůček pro člověka, ale obrovský skok pro lidstvo a toto je náš skromný pokus vzdát hold všem vědcům, inženýrům, technikům, politikům i dalším lidem, kteří psali dějiny ve snaze dostát výzvě presidenta Kennedyho a splnit si nejúžasnější dobrodružství, jaké může člověk podstoupit…

Standby mód

Správa napájení byla u AGC řízena přepínačem. Tento režim vypnul napájení AGC vyjma 2,048 MHz hodin a škálovače. Signál F17 ze škálovače uměl AGC znovu spustit během 1,28 vteřiny. V úsporném režimu mohl AGC vykonávat základní instrukce, tedy kontrolovat standby přepínač a, pokud byl stále zapnut, vypnout napájení do doby, než obdržel příští signál F17.

V úsporném režimu AGC spal drtivou většinu své doby, takže se ani neprobouzel, aby vykonal Pinc instrukci potřebnou k updatování hodin reálného času v 10ms intervalech. Toto bylo kompenzováno jednou dodatečnou instrukcí updatující hodiny každých 1,28 vteřiny.

Úsporný režim dokázal srazit spotřebu AGC z nějakých 70W na 5 až 10W v klidné střední části letu Apolla. Nikdy to ale nebylo využito, AGC byl ponecháván zapnutý po celou dobu mise.

Datové sběrnice

Jak již zaznělo, AGC měl 16bitovou čtecí a 16bitovou zapisovací sběrnici. Data z centrálních registrů (A, Q, Z nebo LP) či jiných interních registrů mohla být synchronizována na čtecí sběrnici kontrolním signálem. Ta byla propojena se zapisovací skrze neinvertující buffer, takže veškerá data objevivší se na čtecí sběrnici byla i na zapisovací sběrnici. Jiný kontrolní signál pak mohl data ze zapisovací sběrnice uložit do registrů (obojího bylo využíváno v postupech výše popsaných).

Přenosy dat fungovaly následovně: pro přesun adresy příští instrukce z registru B do registru S se volal kontrolní signál RB (read B). Ten způsobil přesun adresy z registru B na čtecí sběrnici a v návaznosti na to na zapisovací sběrnici. WS signál (write S) poté adresu z této sběrnice přesunul do registru S.

Na čtecí sběrnici mohlo být načteno hned několik registrů současně. Když se tak stalo, data z každého registru byla „ORnuta“ na tuto čtecí sběrnici. OR bylo používáno pro implementaci Mask instrukce provádějící logický AND. Protože AGC neměl žádnou přirozenou výbavu pro AND, ale uměl OR skrze sběrnici a mohl provádět invertování dat skrze registr C, jako ekvivalent logického AND byl používán De Morganův theorém (podrobněji viz. Wikipedia, v Booleovské logice jsou De Morganovy zákony využívány k AND pomocí OR, resp. OR pomocí AND). AND dvou operandů se tedy prováděl jako OR invertovaných hodnot těchto operandů a inverze výsledku.

Software

Tolik tedy k hardwaru. Softwarová část byla samozřejmě napsána v assembleru AGC a skladována v rope paměti. Tvořil ji jednoduchý realtime operační systém obsahující exekuční část, plánovač dávkových úloh schopný uběhat až osm jobů v jednom čase pomocí nepreemptivního multitaskingu (každý job periodicky vracel kontrolu zpět exekutoru). Dále zde byla přerušeními řízená komponenta zvaná WaitList, která uměla plánovat pořadí několika časovačem řízených úloh. Úlohami se zde míní krátká vlákna příkazů, která mohla sama sebe přeplánovat pro znovuspuštění skrze WaitList, nebo mohla sama vyhodit z pořadí delší operaci spuštěním jobu v exekutoru (berme to jako dvouúrovňové řízení priority).

Priorita jobů exekutoru se dále dělila. Nejnižší prioritu měl takzvaný dummy job, který byl vždy přítomen a prováděl diagnostické kontroly a řídil zelené světlo informující na Dsky panelu o aktivitě počítače. Pokud dummy job běžel, znamenalo to, že počítač nemá nic lepšího na práci a v podstatě se poflakuje a vypnulo se indikační světlo na panelu, přičemž tento dummy job (s nejnižší možnou prioritou) mohl být v každém elementárním okamžiku přebit "normálním" jobem s vyšší prioritou, což způsobilo opětovné nahození zelené indikace činnosti na Dsky panelu.

AGC také měl sofistikovaný softwarový překladač, který implementoval virtuální stroj s komplexnějšími a schopnějšími instrukcemi, než jaké byly výše zmíněné nativní AGC instrukce. Kód překladače zahrnoval double precision skalární a vektorovou aritmetiku, MXV (Matice×Vektor) instrukci a mohl být míchán s nativním AGC kódem. Assembler a verzovací systém (pojmenovaný YUL) zajišťoval správný převod mezi nativním a překladačovým kódem.

Sada přerušeními řízených rutin rozhraní zvaná Pinball poskytovala klávesnici a displeji služby pro joby a úlohy běžící na AGC. Bohatá sada uživatelsky přístupných rutin dávala astronautům na displeji údaje o obsahu rozličných částí paměti v osmičkové nebo desítkové soustavě po skupinách jednoho až tří registrů v daném čase. K dispozici byly rutiny pro monitoring, takže astronaut mohl vyvolat úlohu periodicky zobrazující obsah různých oblastí paměti. Mohl inicializovat i joby. Pinball rutiny tak poskytovaly velmi hrubý, primitivní ekvivalent UNIXového shellu.

David "David Ježek" Ježek

Bývalý zdejší redaktor (2005-2017), nyní diskusní rejpal.

více článků, blogů a informací o autorovi

Diskuse ke článku Lidská noha vkročila na měsíc před 40 lety

Pátek, 7 Srpen 2009 - 23:29 | Anonym | paulie z malého města no tym teoriam vseliakym sa...
Čtvrtek, 30 Červenec 2009 - 09:16 | Anonym | Jen taková poznámka/osobní zkušenost, jednou jsem...
Středa, 29 Červenec 2009 - 11:43 | Anonym | pepst co sa urazas ved je to len diskusia nic...
Středa, 29 Červenec 2009 - 10:41 | pepst | Urobil som chybu, že som sa do tejto diskusie...
Úterý, 28 Červenec 2009 - 21:54 | Anonym | pepst tak nemal zabrdat do tej temy nemoze z...
Úterý, 28 Červenec 2009 - 09:04 | pepst | Porovnávať .týždeň a Blesk je extrémne, ale fakt...
Pondělí, 27 Červenec 2009 - 22:19 | Anonym | pepst ty vole ako ze fajn clanok ale to snad...
Pondělí, 27 Červenec 2009 - 15:02 | pepst | Také množstvo bláznov som v diskusii na cdr.cz...
Pondělí, 27 Červenec 2009 - 14:57 | Anonym | Uhodili jste hrebicek na hlavicku panove, lidsto...
Pondělí, 27 Červenec 2009 - 14:07 | Anonym | Tomcat2: Za 40 let je to docela málo, uvážime-li...

Zobrazit diskusi