Calcolatori per allunaggio
50 anni fa l’uomo metteva per la prima volta piede sulla Luna grazie all’abilità di scienziati, tecnici, esperti e programmatori capaci di sfruttare ogni minima capacità degli elaboratori allora disponibili. Al di là della retorica, cerchiamo di capire le tecnologie digitali usate per l’allunaggio.
A bordo della navicella che portò i primi uomini sulla Luna, vi erano due macchine identiche (una nel Modulo di Comando e l’altra nel LEM), chiamate Apollo Guidance Computer, ma il merito del successo dell’allunaggio non fu soltanto della dotazione NASA: un altro gigante coordinava le operazioni dalla Terra, con cervelloni giganti che eseguivano complessi calcoli e li rimandavano agli astronauti in volo. Erano i mainframe di IBM, ovvero gli allora potentissimi computer di Houston e di altre diciassette stazioni che dalla Terra monitoravano l’andamento della missione. Si trattava dei famosi IBM System 360/Model 75: con una velocità di esecuzione di qualche milione di istruzione al secondo (megaFlops), potevano contare su una memoria di 256 KB di RAM, ed 1MB di memoria ROM, per un costo di circa 2 milioni di dollari negli anni 60. Un’enormità a quei tempi. Oggi un normale Smartphone Samsung Galaxy S10 è in grado di supportare fino a 8 GB di RAM e 128 GB di memoria ROM, espandibile fino a 512 GB, per un costo inferiore ai mille dollari. La velocità di esecuzione degli attuali calcolatori per scopi scientifici è dell’ordine dei petaFlops (milioni di miliardi di istruzioni al secondo). FLOPS è l’acronimo di FLoating point Operations Per Second, in informatica indica il numero di operazioni in virgola mobile eseguite in un secondo dalla unità centrale, il così detto “cervello” del calcolatore (CPU Central Process Unit). In parole semplici, oggi uno Smartphone di ultima generazione è diversi milioni di volte più potente del più potente e più ingombrante calcolatore usato per fare i calcoli per l’allunaggio.
L’Apollo Guidance Computer, anche conosciuto come AGC, fu una vera e propria rivoluzione, progettato e realizzato per lo scopo specifico usando la tecnologia dell’epoca. In un momento storico in cui i computer, nella maggior parte dei casi, occupavano intere stanze, se non edifici interi, una valigetta dalle dimensioni di 32 x 61 x 17 centimetri ed un peso di soli 32 Kg, rappresentava un risultato davvero incredibile. Le sue dimensioni così contenute furono possibili grazie all’impiego dei primi circuiti integrati: l’AGC fu il primo ad esserne dotato, per un totale di 2800 circuiti, che permettevano di ridurre l’ingombro e di migliorare le prestazioni di calcolo. L’AGC aveva il compito di guidare la navicella in tutte le sue manovre con precisione estrema, e lo fece contando su una memoria di 2KB di RAM (riscrivibile) e 36KB di ROM (permanente con dati e programmi). Per avere un’idea, oggi una semplice applicazione per lo Smartphone ha bisogno di una memoria di molte decine di MB (migliaia di KB).
Per avere un termine di paragone con la tecnologia attuale, un iPhone XS di oggi dispone di un memoria RAM e ROM di milioni di volte quella del computer di bordo, AGC, dell’Apollo 11. Inoltre, il software dell’AGC era programmato in un linguaggio assembler specifico di quella macchina, composto da un numero limitato di istruzioni. Il requisito era che nessun errore o allarme avrebbe dovuto impedire al computer di continuare ad elaborare le operazioni fondamentali per consentire l’allunaggio in totale sicurezza. Proprio per questo motivo, la prima missione sulla Luna si concluse brillantemente: pochi minuti prima di atterrare, la centrale di Houston ricevette una richiesta di aiuto da parte di Armstrong, il quale si accorse di una spia di allarme che segnalava qualche anomalia. Il terribile errore, conosciuto come errore 1202, rischiava di mandare a monte l’atterraggio sul suolo lunare, ma grazie alla progettazione del software dell’AGC, le operazioni si conclusero nel migliore dei modi.
Tutto questo grazie alla genialità di una donna, Margaret Hamilton. Laureata in matematica presso l’Università del Michigan nel 1958, nel 1960 cominciò a lavorare come ricercatrice al Massachussets Institute of Tecnology (MIT). A quel tempo, informatica e ingegneria del software non erano ancora discipline universitarie. E’ solo del settembre 1966 il numero speciale della rivista Scientific American dedicato alla divulgazione del computer. Per il progetto Apollo Margaret Hamilton assunse la carica di Director of Software Engineering Division del MIT Instrumentation Laboratory.
In quei momenti di tensione e panico, nonostante Armstrong continuasse a chiedere informazioni a proposito dell’errore per capire se la missione poteva proseguire, nessuno riuscì a capire cosa fosse andato storto. Solo in seguito Margaret Hamilton, spiegò che il computer riscontrava un errore nel momento in cui venne sovraccaricato di richieste. Il sovraccarico, specificò Margaret Hamilton, fu dovuto a un’errata attivazione di un interruttore che, durante l’elaborazione per la discesa sulla Luna, continuava a eseguire operazioni non necessarie, saturando le risorse del sistema. Fortunatamente, la struttura del software progettato da Margaret Hamilton prevedeva che, nonostante problematiche riscontrate ed eventuali riavvii della strumentazione, tutto doveva continuare come programmato.
Donna di eccezionale talento, Margaret Hamilton fu a capo della programmazione e dello sviluppo di tutti i software che furono impiegati nelle missioni lunari, seguendo le missioni dall’Apollo 11 all’Apollo 17. Sebbene spesso dimenticata, o messa in secondo piano da un’ingiusta memoria storica, nel 2016 ricevette dal Presidente Barack Obama la più alta onorificenza americana, ovvero la Medaglia presidenziale della libertà – la stessa ricevuta dai tre astronauti al loro ritorno sulla Terra.
Oggi il codice sorgente dell’AGC è di pubblico dominio al seguente link:
https://github.com/chrislgarry/Apollo-11
scaricabile dalla piattaforma GitHub, uno strumento per migliorare e rendere più efficiente il lavoro in team, anche da remoto, che semplifica la collaborazione tra professionisti. Questo grazie alla scansione dei cartacei originali, conservati al Massachusetts Institute of Technology. Dal peso di poco più di 1MB, l’archivio zippato contiene le righe di programmazione relative sia al Modulo di Comando che al Modulo Lunare, individuabili sotto la voce Comanche055 e Luminary099: in una manciata di megabyte sono oggi racchiuse tutte le istruzioni che, 50 anni fa, resero possibile lo sbarco sulla Luna. Un ottimo esercizio per le nuove generazioni che vogliono occuparsi di Automazione Industriale o in generale di Controlli Automatici.
Onore a Margaret Hamilton, matematica, scienziata, imprenditrice statunitense, che cinquanta anni fa ha permesso di sognare a miliardi di persone, restando nell’ombra. Una vera grande donna. Una bella lezione sull’uso intelligente della tecnologia disponibile, finallizzata a vincere una sfida epocale.
Non ci sono commenti, vuoi farlo tu?
Scrivi un commento