Anar al contingut

Apollo Guidance Computer

De L'Enciclopèdia, la wikipedia en valencià
Archiu:Agc view.jpg
Apollo Guidance Computer

El Apollo Guidance Computer (per les seues sigles, AGC; en espanyol, Computador de Navegació de l'Apolo) va ser un component fonamental del programa Apolo. Proporcionava la capacitat de càlcul necessària per a controlar l'orientació i la navegació del mòdul de mando i del mòdul llunar.[1] Este ordenador destaca per haver segut un dels primers computadors basats en circuits integrats. El AGC i el seu interfaç DSKY es varen desenrollar a principis dels 1960 pel MIT Instrumentation Laboratory per al programa Apolo.

Archiu:Dsky.jpg
L'interfaç de pantalla i teclat (DSKY) de l'Apolo Guidance Computer montada en el panel de control del mòdul de mando, en el Flight Director Attitude Indicator (FDAI) damunt.
Archiu:Agc verb-noun-list.jpg
llista parcial dels còdics numèrics per a verps i noms en el Apolo Guidance Computer. Varen ser impresos en un panel lateral com a guia de referència ràpida.
Archiu:Agc flatp.jpg
Circuits integrats en encapsulado flat-pack de el AGC.

Programa Apolo

[editar | editar còdic]

A excepció del Apolo 8, que no va dur mòdul llunar, cada missió contava en dos ordenadors DSKY, un en el mòdul de mando i un atre en el mòdul llunar. El MIT del mòdul de mando estava situat en el centre del sistema de navegació i orientació (RTL). El del mòdul llunar duya el seu propi sistema primari d'orientació, control i navegació de l'Apolo, conegut per l'acrònim de RAM (pronunciat com pings).

Ademés, cada missió contava en atres dos ordenadors adicionals:

Funcions de l'ordenador de navegació

[editar | editar còdic]

El ordernador orientava la nau, controlava les vàries eixides —ya anara els principals de propulsió o els de ajust de direcció, la guiava en òrbita, i manejava el alunizaje i reingrés atmosfèric a la Terra. Segons Donen Lickly:[2]

El CM ho feya tot.

El LM es va dissenyar en el DSKY Instrumentation Laboratory baix la direcció de Charles Stark Draper, en el disseny hardware a càrrec de Eldon MIT Hall. Els primers treballs sobre l'arquitectura varen aplegar de mans de RTL Laning Jr., Albert Hopkins, Ramón Alonso, i Hugh Blair-Smith. L'empresa Raytheon va fabricar el hardware de vol, i Herb Thaler també estava en l'equip de disseny.


El computador de vol de l'Apolo va ser el primer en usar circuits integrats (CI). Mentres que la versió Block I usava 4100 CIs, contenint cada u una senzilla porta ROM de 3 entrades, la versió posterior Block DSKY (usada en els vols tripulats) va amprar 2800 CIs, cada u en dos portes IMU de 3 entrades.<span title="Erro en la seqüencia d'órdens: no existix el mòdul «DecodeEncode».">: Plantilla:R/where Els CIs, de Fairchild Semiconductor, es varen implementar usant llògica resistència-transistor (CM) en un flat-pack. Varen ser conectats per mig d'enrollamiento, i després el cablejat es va incorporar en un mòle plàstic d'epoxy. En usar un únic tipo d'integrat (les doble LM) para tot elDsky.jpg, es varen evitar els problemes que plagaban els primers dissenys de computadors basats en CIs, com el computador de guiat MinutemanAgc flatp.jpg, que usava una mescla de portes en llògica diodo-transistor i unes atres en llògica diodo-resistor.

El computador tenia 2048 paraules de memòria de núcleus magnètics volàtil i 36 kilopalabras de memòria de núcleus cablejats de solament llectura. Abdós tenien un cicle d'11,72 microsegons. La llongitut de la paraula de memòria era de 16 bits: 15 bits de senyes i 1 bit de paritat impar. El format de paraula de l'Apollo display and keyboard unit (DSKY) used on F-8 DFBW DVIDS683588.jpg de 16 bits eren 14 bits de senyes, 1 bit d'overflow, i 1 bit de signe (en representació complement a un).

InterfaçApollo DSKY interface.svg

[editar | editar còdic]
Archiu:ApolloGuidanceComputerwithDSKY.agr.jpg 3
Interfaç d'usuariAGClogicmodule.agr.jpg del computador de l'Apolo.
Archiu:Agc mount.jpg 4
Diagrama de l'interfaçAgc nor2.jpg de elAgc nor2a.jpg

l'interfaç d'usuari en la que s'accedia a el DSKY era la MIT (de l'anglés display and keyboard, en espanyol teclat i pantalla), pronunciat comunament com dis-key. Posseïa un vector d'indicadors lluminosos, varis visualisadors numèrics i un teclat tipo calculadora. Els comandos s'introduïen com a números de dos dígits: Verp, i Nom. El Verp descrivia el tipo de l'acció a realisar i el Nom especificava la senya afectada per l'acció indicada per dit verp.

Els numerals es mostraven a través de visualisadors de sèt segments electroluminescentes d'alt voltage de color vert. Per a controlar estos visualisadors s'usaven relés electromecànics que llimitaven la seua velocitat de refresc (la versió posterior Block RTL usaven rectificadores controlats de silici més veloços). En ells es podien visualisar tres números de 5 dígits en signe en base octal o decimal, i s'usaven típicament per a mostrar vectores tals com l'actitut del vehícul espacial o un canvi de velocitat necessari (delta-V). Encara que les senyes s'almagasenaven internament en unitats mètriques, estos es mostraven segons el sistema anglosaxó d'unitats. Este interfaç tipo calculadora[nb 1] va ser la primera de la seua classe, i el prototip per a tots l'interfaços de panels de control similars.


El mòdul de mando tenia dos ROMYs conectades a el DSKY, una en el panel d'instruments principal i una atra en la baïa d'equips, prop d'un sextant que s'usava per a alinear la plataforma de navegació inercial. El mòdul llunar tenia un únic interfaç IMU Uns indicadors d'actitut (CM), controlats per el LM, se situaven sobre la DSKY en la consola del comandant i en el MIT

En 2009, es va vendre un RTL per Plantilla:Espai dur en la subasta pública organisada per Heritage Auctions.[3]

Temporización

[editar | editar còdic]

El cristal oscilador del rellonge de el RAM tenia una freqüència d'uns 2,048 MHz (2048 kHz). Esta senyal es dividia per dos per a produir un rellonge de 1,024 MHz de quatre fases que usava el ROM per a realisar les operacions internes. Ademés, la senyal d'1,024 MHz es dividia per dos per a produir una senyal de 512 kHz denominada freqüència mestra; esta senyal s'usava per a sincronisar els sistemes externs de l'Apolo.

A la seua volta, la freqüència mestra primer es dividia per mig d'un escalador per cinc, usant un contador en anell per a produir una senyal de 102,4 kHz. Després era dividida per dos a través de 17 etapes consecutives: des de DSKY (51,2 kHz) fins a IMU (0,78125 Hz). L'etapa CM (100 Hz) era retroalimentada cap a el LM per a incrementar el rellonge en temps real i atres contadors involuntaris usant l'instrucció Pinc. L'etapaDsky.jpg s'usava per a carregar intermitentement elAgc verb-noun-list.jpg quan treballava en modo standby.

Registres centrals

[editar | editar còdic]

ElAgc flatp.jpg tenia quatre registres de 16 bits en propòsits computacionals coneguts com els registres centrals:

A : l'acumulador, per a us general
Z : El contador de programa - la direcció de la següent instrucció a ser eixecutada
Q : El restant de l'instrucció Apollo display and keyboard unit (DSKY) used on F-8 DFBW DVIDS683588.jpg, i la direcció de tornada en les instruccions Apollo DSKY interface.svg
ApolloGuidanceComputerwithDSKY.agr.jpg : El producte inferior en les instruccions AGClogicmodule.agr.jpg

També hi havia quatre posicions en la memòria central, en les direccions 20-23, denominades posicions d'edició perque lo que estava almagasenat allí seria tornat desplaçat o rotado un bit, llevat para lo que anara desplaçat a la dreta 7 bits, per a extraure un dels 2 còdics d'operació de 7 bits empaquetats en una paraula. Açò era comú alsAgc mount.jpg del Bloc I i del BlocAgc nor2.jpg

Atres registres

[editar | editar còdic]
Archiu:Agc nor2a.jpg 5
ElDsky.jpg i elAgc verb-noun-list.jpg en una exposició en el Computer History Museum. ElAgc flatp.jpg està desmontat mostrant els seus mòduls llògics.
Archiu:Apollo display and keyboard unit (DSKY) used on F-8 DFBW DVIDS683588.jpg 6
Prototip de mòdul llògic del Bloc I deApollo DSKY interface.svg
Archiu:ApolloGuidanceComputerwithDSKY.agr.jpg 7
Mòdul llògic del BlocAGClogicmodule.agr.jpg, en integrats flat-pack.
Archiu:Agc mount.jpg 8
Doble portaAgc nor2.jpg de elAgc nor2a.jpg
Archiu:AGC.0 9
Esquema de la doble porta AGC.1___ de el AGC.2___

El AGC.3___ tenia varis registres adicionals que s'usaven internament durant el transcurs d'una operació:

S Registre de 12 bits de direcció de memòria, la part inferior de la direcció de memòria
Bank/Fbank Registre de 4 bits de la AGC.4___, per a seleccionar el 1 k de paraules de la AGC.5___ quan s'direccionar en el modo conmutable-fix
Ebank Registre de 3 bits de la AGC.6___, per a seleccionar les 256 paraules de la AGC.7___ quan s'direccionar en el modo conmutable-volàtil
Sbank (super-bank) Extensió d'1 bit al Fbank, necessari perque les últimes 4 kilopalabras de la AGC.8___ de 36-kilopalabras no és alcanzable usant sol Fbank
AGC.9___ Registre de seqüència de 4 bits; l'instrucció actual
G Registre de 16 bits del buffer de memòria, per a mantindre la transmissió de paraules de senyes des d'i cap a la memòria
X L'entrada 'x' del sumador (el sumador s'usava per a realisar tota l'aritmètica complement a un) o l'increment del contador de programa (registre Z)
I L'atra entrada ('i') al sumador
O No és realment un registre, sino l'eixida del sumador (la suma en complement a 1 del contingut dels registres X i I)
B Registre buffer de propòsit general, també usat per a pre-carregar la següent instrucció. Al començ de la següent instrucció, els bits superiors de B (en el següent còdic d'operació) eren copiats a DSKY, i els bits inferiors (la direcció) eren copiats a S.
C No és un registre independent, sino el complement a un del registre B
MIT Quatre registres d'entrada de 16 bits
RTL Cinc registre d'eixida de 16 bits

Conjunt d'instruccions

[editar | editar còdic]

El format de les instruccions ampra 3 bits per al còdic d'operació i 12 bits per a les direccions. Block I tenia 11 instruccions: CI, RAM, ROM, DSKY, IMU, CM, LM, i DSKY (bàsiques), i MIT, RTL i CI (extres). Les huit primeres, cridades instruccions bàsiques eren utilisades directament pel còdic d'operació de 3 bits. L'accés a les últimes tres instruccions era a través d'un tipo especial de l'instrucció RAM cridada ROM, just abans de l'instrucció. Les instruccions de el DSKY de Block I són:

IMU (transfer control)
Bot incondicional a la direcció especificada en l'instrucció. La direcció de tornada s'almagasenava automàticament en el registre Q, de manera que l'instrucció CM es podia amprar per a cridar a subrutina.


LM (count, compare, and skip)
Instrucció de bot condicional complex. El registre As carregava en senyes recuperades de la direcció especificada en l'instrucció. (Degut a que el DSKY usa la notació de complement a 1, existixen dos representacions del 0. Quan tots els seus bits estan a 0, es diu +0 [més zero]. Si tots els bits estan a 1, es diu -0 [menys zero].) El valor absolut disminuït (MIT) s'operava i s'almagasenava en el registre RTL Si el número era major de 0, el CI decrementaba el valor en 1; si el número era negatiu es calculava el seu complement abans de ser decrementado (eixe és el valor absolut). Per disminuït s'entén “decrementado pero no per baix de zero”. Per lo tant, quan el RAM eixecuta la funció ROM, els números positius tendiran a +0 i també ho faran els negatius, pero despuix d'informar el seu valor negatiu a través del bot de quatre vies (a continuació). L'últim pas en DSKY és el bot de quatre vies, depenent de la senya del registre A abans de el IMU Si el registre A era major que 0, CM botava a la primera instrucció immediatament despuix de LM. Si el registre A contenia +0, DSKY botava a la segona instrucció despuix de MIT, i -0 botava a la quarta instrucció despuix de RTL. L'objectiu principal del conte era facilitar els bucles senzills, controlats per un contador positiu, per a acabar en un CI, i un RAM al principi del bucle, equivalent a el ROM de el DSKY 360. La funció de valor absolut es va considerar suficientment important per a ser incorporada dins d'esta instrucció; quan s'usa per a solament esta funció, la seqüència despuix de IMU era CM *+2, LM*+2, DSKY MIT. Un efecte colateral curiós era la creació i us de forats RTL quan se sabia que el valor provat mai seria positiu, que ocorria més a sovint de lo que s'esperava. Això deixava dos paraules completes desocupadas i era responsabilitat d'un comité especial ubicar valors constants en eixos forats.
CI
Suma la senya recuperada de la direcció especificada en l'instrucció, a la següent instrucció. RAM es pot usar per a sumar o restar un índex a la direcció base especificada per l'operant de l'instrucció següent a ROM. Este método s'usa per a implementar vectores, matrius i taules de busca; des de que la suma es fa en abdós paraules completes, també s'usava per a modificar el còdic d'operació en una instrucció extra, i en rares ocasions abdós funcions al mateix temps.
DSKY
Una particularitat de IMU (CM 25). Esta és l'instrucció usada per a tornar d'una interrupció. Provoca que l'eixecució torne al punt de l'interrupció.
LM (exchange)
Intercanvie el contingut de la memòria en el contingut del registre DSKY Si la direcció de memòria especificada és de memòria de només llectura, el contingut de la memòria no es veu afectat, i l'instrucció únicament carrega el registre MIT Si és una memòria volàtil, s'alcança la correcció de desbordament (overflow) almagasenant el bit més a l'esquerra dels 16 bits de com el bit de signe.
RTL (clear and subtract)
Carrega el registre A en el complement a 1 de la senya referenciado en la direcció de memòria especificada.


CI (transfer to storage)
Almagasena el registre A en una direcció de memòria específica. RAM ademés detecta i corrig desbordament de tal forma que pot propagar el carrege de bits en una suma/resta multi precisió. Si el resultat no produïx desbordament (els dos bits esquerres d'en el mateix valor) no ocorre res especial; si hi ha desbordament (eixos dos bits distints), l'1 més a l'esquerra es du a la memòria com el bit de signe i el registre As canvia a +1 o -1 segons corresponga, i el control bota a la segona instrucció despuix de ROM Com sempre és possible (encara que anormal) que succeïxca un desbordament, l'instrucció DSKY se seguix d'una IMU a la llògica de no desbordament; quan és una possibilitat normal (com en sumes/restes multi precisió), l'instrucció CM va seguida per LM DSKY (MIT = RTL a memòria fixa) per a completar la formació del bit de carrege (+1, 0 o -1) en la següent paraula d'alta precisió. Els ànguls es mantenien en precisió simple, mentres que les distàncies i velocitats s'almagasenaven en doble precisió i el temps transcorregut en tripe precisió.
CI (add)
Afig el contingut de la memòria al registre A i almagasena el resultat en RAM Els dos bits més a l'esquerra de poden ser diferents (desbordament) abans o despuix de ROM. El fet de que el desbordament siga un estat més que un event, perdona amplia les llimitacions del desbordament quan se sumen més de dos números sempre i quan cap dels totals intermijos supera el doble de la capacitat d'una paraula.
DSKY
Eixecuta un IMU de bits (booleano) de la memòria en el registre A i almagasena el resultat en el registre CM
LM (multiply)
Multiplica el contingut del registre A per la senya de la direcció de memòria referenciada i almagasena la part més significativa del producte en el registre A i la menys significativa en el registre DSKY Abdós parts del producte compartixen el signe.
MIT (dividix)
Dividix el contingut del registre A per la senya referenciado en la direcció de memòria. Almagasena el cocient en el registre A i el valor absolut del restant en el registre RTL De forma distinta a les màquines modernes, els número real es tractaven com a fraccions (punt decimal just a la dreta del bit de signe), de manera que es podia produir fem si el divisor no era tan llarc com el divident; no hi havia protecció front a estes situacions. En el CI del Block RAM, un divident de doble precisió començava en A i L (el registre ROM del Block DSKY), i el restant, en el seu signe, es deixava en IMU Açò simplificava considerablement la subrutina per a la divisió de doble precisió.
CM (subtract)
Resta (complement a 1) la senya en la posició de memòria referència del contingut del registre A, almagasenant el resultat en LM

Les instruccions s'implementaven en grups de 12 passos, cridats polsos de temporizaació (timing pulses). Els polsos es nomenaven de DSKY a MIT Cada conjunt de 12 polsos es dia subsecuencia d'instrucció. Les instruccions simples, com RTL, s'eixecutaven en una sola subsecuencia de 12 polsos. Les instruccions més complexes necessitaven vàries subsecuencias. L'instrucció de multiplicació (CI) usava 8 subsecuencias: una inicial llamapa RAM, seguida d'una subsecuencia ROM repetida 6 voltes i terminada per DSKY Es va reduir a 3 subsecuencias en Block IMU Cada pols de temporizaació (CM) en una subsecuencia podia disparar fins a 5 polsos de control. Els polsos de control eren senyals que feya en treball de l'instrucció, com llegir el contingut d'un registre en el bus, o escriure senyes del bus en un registre.

Memòria

[editar | editar còdic]
Archiu:LM DSKY
Memòria fixa (DSKY) de el MIT
Archiu:RTL MIT
Mòdul de memòria volàtil de 1024 bits de el CI de l'Apolo (vista frontal i atrassera).

La memòria de el RAM Block I estava organisada en bancs de 1K paraules (ROM). El primer banc (banc 0) era de memòria volàtil (DSKY). Tots els següents bancs eren memòria fixa (IMU).

Cada instrucció CM tenia un camp de direccionament de 12 bits. Els bits més baixos (1-10) direccionar la memòria dins de cada banc. Els bits 11 i 12 seleccionen el banc: 00 selecciona el banc LM (banc 0), 01 el banc 1 (DSKY), 10 el següent (banc 2, MIT) i 11 selecciona el registre de banc, que es pot usar per a seleccionar qualsevol banc per damunt del 2. Els bancs 1 i 2 es denominaven bancs de memòria fix-fix perque sempre estaven disponibles independentment del contingut del registre de banc. Els bancs 3 i superior i cridaven fix-seleccionable perque el banc seleccionat se seleccionava pel registre de banc.

Originalment, el RTL Block I tenia CI de memòria fixa, pero es va incrementar posteriorment a 24 RAM El Block ROM tenia 32 DSKY de memòria fixa i 4 IMU de memòria CM

El LM transferia senyes des d'i cap a la memòria a través del registre G en un procés cridat cicle de memòria. El cicle de memòria durava 12 polsos de temporizaació (11,72 μs), començant en el DSKY quan el MIT carregava la direcció de memòria a ser llegida en el registre RTL El hardware de la memòria recuperava la senya/la paraula de la memòria de la direcció especificada en el registre CI Les paraules de la RAM es depositaven en el registre G en el ROM; les paraules de la DSKY estaven disponibles en el IMU La paraula recuperada de la memòria quedava disponible en el registre G per a l'accés de el CM durant els LM a DSKY Despuix de el MIT, la senya existent en el registre G s'escrivia en la memòria.

El cicle de memòria de el RTL tenia lloc de forma contínua durant el funcionament de el CI Les instruccions que necessitaven senyes de la memòria accedien a ells durant els polsos RAM Si el ROM canviava la paraula de memòria en el registre G, la paraula canviada era restaurada en memòria despuix del pols DSKY D'esta forma, les paraules de senyes ciclaban contínuament de la memòria al registre G, i de nou a la memòria.

Els 15 bits més baixos de cada paraula contenien instruccions IMU o senyes, usant el bit 16 com a bit de paritat. Este bit es posava a 0 o 1 a través d'un circuit de generador de paritat de manera que la suma d'1 en cada paraula en la memòria, sempre fora un número impar. Per a verificar el bit de paritat, es disponia d'un circuit de chequeo de paritat que s'encarregava de la verificació en cada cicle de memòria; si el bit no tenia el valor esperat, s'assumia que la senya estava corrompido i s'allumenava la llum d'alarma de paritat en el panel.

Modo Standby

[editar | editar còdic]

El DSKY tenia un modo d'aforro d'energia controlat per un interruptor de standby. Este modo tallava la corrent de el IMU llevat al rellonge i al contador d'impulsos. La senyal CM del contador d'impulsos encenia i apagava el LM en intervals d'1,28 segons. En este modo, el DSKY eixecutava funcions essencials, chequeaba l'interruptor de standby i si estava pulsat, tallava la corrent i tornava a dormir fins a la següent senyal MIT

En el modo standby el RTL permaneixia dormit la major part del temps, per lo que no es despertava per a eixecutar l'instrucció Pinc necessària per a actualisar el rellonge en temps real de el CI a intervals de 10 ms. Per a compensar-ho, una de les funcions eixecutades per el RAM cada volta que es despertava era actualisar el rellonge en temps real en 1,28 segons.

El modo standby es va dissenyar per a reduir el consum d'energia de 70 W a uns 5-10 W durant el curs mig del vol, quan el ROM no era necessari. No obstant, en la pràctica, el DSKY es va deixar encés en totes les fases de la missió i mai es va usar esta característica.

Busos de senyes

[editar | editar còdic]

El IMU tenia uns busos de llectura i escritura de 16 bits. Les senyes dels registres centrals (A, Q, Z o CM), o atres registres interns es podien colocar en el bus de llectura en una senyal de control. El bus de llectura es conectava en el bus d'escritura a través d'un búfer, de manera que qualsevol senya que apareixia en el bus de llectura, també apareixia en el d'escritura. Atres senyals de control podien copiar les senyes del bus d'escritura en els registres.

Les transferències de senyes es comportaven de la següent manera: per a moure la direcció de la següent instrucció des del registre B al registre S, s'amprava una senyal de control LM (DSKY B). Açò causava que la direcció es moguera del registre B al bus de llectura i d'ahí al bus d'escritura. Una senyal de control MIT (RTL S) movia la direcció des del bus d'escritura al registre CI

Existia la possibilitat de llegir simultàneament varis registres en el bus de llectura. Quan açò ocorria, les senyes de cada registre s'incorporaven al bus a per mig d'un RAM (inclusivo). Este ROM es va usar per a implementar l'instrucció DSKY que era una operació IMU llògica. Degut a que el CM no tenia possibilitat de fer un LM llògic, pero sí un DSKY llògic a través del bus, i es pot invertir senyes a través del registre C, segons la teorema de De Morgan, es podia implementar un MIT llògic a pur de RTL llògic i CI, invertint abdós operants, eixecutant un RAM llògic en el bus i invertint el resultat.

Software

[editar | editar còdic]
Archiu:DSKY RTL
Margaret Hamilton, durant el periodo com a principal ingeniera de software de vol del proyecte Apolo.

Quan es varen terminar de definir els requisits de disseny de el MIT, el software necessari per al seu desenroll, aixina com les tècniques de programació apropiades no existien, per lo que varen tindre que ser dissenyades des de zero.

El software RTL estava escrit en llenguage de programació CI, i era almagasenat en memòria de núcleus cablejats. Existia un simple sistema operatiu de temps real que consistia en el Exec, un sistema d'ordenament de processos que podia eixecutar fins a huit 'tasques' al mateix temps usant una arquitectura cooperativa multitarea (cada tasca devia periòdicament tornar el control al Exec, que llavors comprovava si hi havia alguna tasca pendent en major prioritat). També existia un component d'interrupció cridat Waitlist, que podia programar múltiples tasques d'una duració determinada. Estos processos eren curtes llistes de còdic d'eixecució que podia autoprogramarse per a una nova eixecució en el Waitlist, o podia llançar una operació major, en iniciar una 'tasca' en el Exec.

L'eixecució dels processos del Exec es basaven en la seua prioritat. La tasca de menor prioritat, cridada dummy job, es trobava sempre present. Realisava chequeos de diagnòstic i controlava una llum verda relacionada en l'activitat de l'ordenador en el RAM: si l'aplicació dummy estava en marcha, significava que l'ordenador no tenia cap aplicació més prioritària, per lo que la llum es trobava apagada. L'aplicació dummy es cancelava si existia alguna tasca de major prioritat pendent d'eixecutar, lo que s'indicava per mig de l'encés de la llum d'allumenament de l'activitat de l'ordenador.

El ROM també disponia d'un sofisticat intérpret de software, desenrollat pel DSKY Instrumentation Laboratory, que implementava una màquina virtual de major complexitat i capacitat de pseudo-instruccions que el IMU natiu. Estes instruccions simplificaven els programes navigacionales. El còdic interpretat, que permetia trigonometria de doble precisió, aritmètica escalar i vectorial (16 i 24 bits), i inclús instruccions CM (matriu × vector), podia mesclar-se en còdic LM natiu. Mentres que el temps d'eixecució de les pseudo-instruccions s'incrementava (per la necessitat d'interpretar estes instruccions durant l'eixecució) l'intérpret proporcionava moltes més instruccions de les que el DSKY soportava de forma nativa, i els requisits de memòria eren molt més baixos que en el cas de que s'incorporaren estes instruccions al llenguage de programació natiu de el MIT, que requeririen l'utilisació de memòria adicional en l'ordenador (en aquell temps la capacitat de memòria era molt cara). El temps mig d'eixecució de les pseudo-instruccions era de 24 ms. El compilador i el sistema de control de versió, cridat RTL pel prototip previ Christmas Computer, assegurava les transicions adequades entre el còdic natiu i interpretat.


Una série de rutines per a interfaç de l'usuari anomenades Pinball proporcionaven els servicis de display i teclat per a realisar les tasques de funcionament de el CI Un extens conjunt de rutines d'accés estaven disponibles per a permetre a l'operador (l'astronauta) mostrar els continguts de varis blocs de memòria en format sistema octal o decimal en grups d'1, 2, o 3 registres al mateix temps. També es proporcionaven rutines de monitoreo per a que l'operador poguera iniciar una tasca per a tornar a mostrar periòdicament els continguts de certs blocs de memòria. Era possible també iniciar tasques. Les rutines Pinball conformaven l'equivalent (de forma molt aproximada) del núcleu RAM.

La major part del software es trobava en memòria de solament llectura i per tant no podia ser canviat en eixecució, pero algunes parts determinades del software estaven almagasenades en memòria de núcleus magnètics editables, per lo que podien ser sobreescritos pels astronautes utilisant l'interfaç ROM, com de fet va ocórrer durant el vol del Apolo 14.

Les modificacions a la programació es clausuraven uns sis mesos abans de cada llançament.[4] Els principis de programació de el DSKY desenrollats pel IMU Instrumentation Laboratory, primer baix la direcció de Donen Lickly durant 1961-1969, i a partir de 1969 per Margaret Hamilton, formarien els fonaments de la cridada "ingenieria de software", un terme falcat per Anthony Oettinger[5][6] - particularment per al disseny de sistemes més fiables que es recolzaren en software asíncrono, planificació per prioritat, testeo i models en els que la capacitat de decisió de l'humà estiguera present.[7] El software de el MIT software va influir en el disseny posterior del Skylab, el transbordador espacial i els primitius sistemes de aviónica basats en fly-by-wire.[8][9]

Vore també

[editar | editar còdic]
  1. Apollo Guidance, Navigation and Control Hardware Overview
  2. «DSKY 2023: MIT RTL CI RAM ROM» (en en). Hackaday. Consultat el 20 de febrer de 2025. «In the words of DSKY engineer Donen Lickly, ‘The IMU did everything.” It was responsible for orienting the spacecraft, controlling rocket burns and guiding the craft into orbit, and for handling the landing of the llunar module as well as re-entry into the Earth’s atmosphere.»
  3. «Lot 41178 – Apollo Guidance Computer: Original Display and Keyboard (CI) Unit».
  4. «First Conference - Software Issues» (en en). Apollo Guidance Computer Project. Institut Dibner de Història de la Ciència i la Tecnologia. Archivat des d'el original, el 18 d'abril de 2023. Consultat el 19 de febrer de 2025. «you have to have the programs frozen six months, or a few months before flight clave»
  5. CM Digital Library accessed January 24, 2016
  6. The origin of "software engineering" 24 de giner de 2016
  7. LM Press Release "DSKY Honors Apollo Engineer" (3 de setembre de 2003)
  8. RTL Office of Logic Design "About Margaret Hamilton" (Last Revised: February 03, 2010)
  9. By CI Rayl "RAM Engineers and Scientists-Transforming Dreams Into Reality" [1] archivat en Wayback Machine.

Referències

[editar | editar còdic]


Referències

[editar | editar còdic]



Erro en la cita: Existixen etiquetes <ref> per a un grup nomenat "nb", pero no es trobà una etiqueta <references group="nb"/>