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

AGC: paměť a datová struktura, časování, uživatelské rozhraní

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…

Apollo Guidance Computer, paměť RAM

Paměť počítače o velikosti 2kiloslov (přesněji kibislov alias 2 048 slov) byla realizována magnetickým jádrem a spolu s ROM implementována jako core-rope paměť (ferritová jádra pracují jako transformátorky, (ne)nabíjející jednotlivá ferritová jádra podle toho, jestli mají nést 0 nebo 1) o celkové velikosti 36 kibislov (kibiwords). Jedno slovo mělo délku 16 bitů, celkově tedy bylo dostupných 32 kbitů paměti RAM, přesněji 30 kbitů, protože jeden bit byl paritní, 15 pro data. Interní formát CPU však byl 14 bitů data, 1 bit overflow a 1 bit parita. Jeden cyklus této paměti trval 11,72 µs

Apollo Guidance Computer, drátové propojky

Apollo Guidance Computer: 4bitový modul

ukázka schématu 4bitového modulu

Paměť AGC byla organizována do 1kibislovových bank. Nejnižší (bank 0) byla RAM, všehchny nad ní ROM. Každá AGC instrukce měla 12bitové adresní pole. Nižší bity (1-10) adresovaly paměť uvnitř každé banky, bity 11 a 12 vybíraly banku: 00 volila mazatelnou RAM, 01 nejnižší ROM banku, 10 další v pořadí a 11 volila bankový registr, který mohl volit libovolnou banku nad bankou 2. Banky 1 a 2 se nazývaly fixní-fixní, protože byly vždy k dispozici nezávisle na obsahu bankového registru. Banky 3 a vyšší byly fixní-přepínatelné, protože zvolená banka byla vybírána bankovým registrem.

První Block I verze AGC měla 12kibislov fixní paměti, později rozšířené na 24. Následná Block II verze již nesla 32kibislov fixní pamětí a 4kibislova mazatelné paměti.

Odskočme si krátce k registrům (popsány na další straně): AGC přesouvala data z a do paměti skrze G registr (viz další strana) v procesu zvaném "paměťový cyklus". Ten trval 12 časovacích pulsů (11,72 µs), začínal časovacím pulsem 1 (TP1), když AGC načetl adresu paměti plněnou uloženou v registru S. Převzal data z paměti na dané adrese, slova z mazatelné paměti byla uložena do G registru časovacím pulsem 6 (TP6); slova z fixní paměti byla k dispozici při pulsu 7 (TP7). Obdržené paměťové slovo bylo poté k dispozici v G registru pro přístup AGC během pulsů 7 až 10. Po 10. pulsu byla data z G registru zapsána zpět do paměti.

Paměťový cyklus probíhal během standardní činnosti AGC. Instrukce požadující paměťová data k nim měly přístup během pulsů 7 až 10. Pokud AGC změnil paměťové slovo v G registru, bylo slovo, jak již zaznělo, do tohoto registru navráceno po 10. pulsu. Touto cestou datová slova cyklovala neustále z paměti do G registru a zpět.

Nižších 15 bitů každého paměťového slova uchovávalo AGC instrukce nebo data. Každé slovo chránila paritní kontrola zmiňovaným 16. bitem (jednobitová parita samozřejmě neuměla vychytat vícenásobné chyby, ale výrazně zvyšovala bezpečnost běhu AGC alespoň detekcí jednoduchých poruch). Bit byl nastaven na 1, nebo 0 obvodem generátoru parity, takže při každém pohybu dat bylo možné vždy získávat při kontrole parity liché číslo. Obvod pro kontrolu parity ji testoval během každého paměťového cyklu. Pokud bit nesouhlasil s očekávanou hodnotou, bylo paměťové slovo považováno za poškozené a na panelu obsluhy se rozsvítil alarm.

Časování

AGC byl řízen 2,048MHz krystalovými hodinami, frekvence se dělila na dvě poloviny, které AGC používal pro interní operace. 1,024MHz frekvence se dále dělila na 512kHz signály označované jako hlavní frekvence AGC, která se používala k synchronizaci externích systémů Apolla.

Tato hlavní frekvence byla dále dělena skrze škálovač, nejprve prstencovým čítačem na pětinu (102,4 kHz). Tento se dále dělil dvěma skrze až 17 kroků na frekvence od 51,2 (F1) po 0,78125 kHz (F17). Frekvence F10 (100 Hz) se vracela zpět do srdce AGC, kde byla využívána k inkrementaci hodin reálného času a pro další čítače. F17 se používala pro AGC běžící ve stand-by režimu.

Uživatelské rozhraní Dsky

Apollo Guidance Computer, Dsky

Dsky alias display and keyboard alias dis-key byl jediný kontakt astronautů s počítačem. Měli k dispozici pole numerických displejů tvořených zelenými vysokonapěťovými sedmisegmentovkami a klávesnici ve stylu kalkulátorů. Segmenty displeje řídila elektromechanická relátka, která limitovala obnovování displeje (pozdější verze využívala křemíkové proudové směrovače). Příkazy se zadávaly numericky jako dvojmístné číslo pro hodnoty Program, Verb a Noun.

Tři pětimístná signed čísla mohla být zobrazena v osmičkové a decimální soustavě. Typicky se displej používal k zobrazování vektorů letu, tedy polohy lodi, požadované změny zrychlení (delta-V) atd.

Velitelský modul měl dvě rozhraní Dsky. Jedno na hlavním přístrojovém panelu a druhé ve spodní části v úložišti vybavení poblíž sextantu. Obě rozhraní ovládala onen jeden přítomný AGC. U jednoho z nich se nacházel Flight Director Attitude Indicator kontrolovaný AGC, stejný byl i v lunárním modulu.

David Ježek

Dlouholetý zdejší redaktor (2005-2017), příznivec open-source rád píšící i o ne-IT tématech. Odpůrce sw patentů a omezování občanských svobod ve prospěch korporací. Fanoušek Asimova, Kinga, Feynmana, Sudka, 70mm filmu, sf/vf filmu, Fomapanu 400, starých dobrých her, 99% čokolády, indické kuchyně, domácího kváskového chleba a řady dalších věcí.

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