Memorie intessute: quando la NASA conquistò la Luna con RAM e ROM tessute a mano

di Shadow Ranger |

bufala sindaco di lonigo
Memorie intessute: quando la NASA conquistò la Luna con RAM e ROM tessute a mano Bufale.net

Questo episodio della memoria retro affronta, nel modo più semplice possibile e senza pretesa di esaurire i sia pur interessanti tecnicismi, un tema degno di approfondimento.

Secondo una teoria complottista diffusa la NASA avrebbe “perso tutte le tecnologie” dell’era spaziale per nascondere l’assenza di un allunaggio: ma non solo ciò non corrisponde al vero, ma quello che abbiamo conservato sono pagine importanti della storia dell’informatica stessa.

Memorie intessute: quando la NASA conquistò la Luna con RAM e ROM tessute a mano

Memorie intessute: quando la NASA conquistò la Luna con RAM e ROM tessute a mano

Pagine per le quali bisogna partire dal concetto di RAM e ROM, dalla antica tessitura Navajo ed al culmine della cultura di interi popoli.

Premessa: RAM e ROM

Ciò che rende possibile il funzionamento del vostro computer, ma anche del vostro cellulare, sono le memorie. Non solo le memorie di massa, ma la RAM e la ROM.

La RAM è la “memoria ad accesso random”, letta e scritta costantemente, il “luogo” virtuale dove il vostro dispositivo elettronico carica e consulta le informazioni in memoria.

RAM vs ROM: fonte Techdifferences

RAM vs ROM: fonte Techdifferences

Se i dischi fissi, le SSD e le memorie interne sono una libreria, la RAM è quel tavolinetto dove leggete i vostri libri.

La ROM invece è una memoria non volatile, ovvero di sola lettura. Scritta una sola volta (e in taluni casi riscrivibile con un procedimento “a parte”) contiene informazioni essenziali al funzionamento del vostro computer in quanto non volatili.

BIOS (il cui discente è il moderno UEFI) era ad esempio in ROM. Una ROM può essere aggiornata, ma con particolari programmi che riscrivono quella memoria di altrimenti sola lettura attivando un programmatore sulla mainboard, e contengono tutte le istruzioni che consentono al computer di avviarsi, ai vostri dispositivi “smart” di attivare il loro “firmware”, ed ogni volta che ci vuole un insieme di dati non volatili, c’è una ROM che attende.

Oggi RAM e ROM sono degli integrati. Ma ieri non era così.

Memorie intessute: quando la NASA conquistò la Luna con RAM e ROM tessute a mano

Come abbiamo avuto modo di vedere, non solo è pienamente documentato tutto quello che riguarda il programma Apollo, ma lo stesso è nato da un miscuglio di soluzioni tecniche avveniristiche per l’epoca, da cui discende buona parte della tecnologia attuale, come il Kapton della DuPont e tecnologia collaudata e testata.

Il motivo è ovvio: se devi mandare degli uomini nello spazio, vuoi minimizzare i rischi. Vuoi qualcosa che funzioni, o meglio che tu abbia visto funzionare così tante volte da sapere come fare ad evitare i problemi.

Diagamma del Modulo Lunare

Diagamma del Modulo Lunare

Un prototipo, un’innovazione radicale non ti porta sulla luna: tecnologia ben testata sì. A Raytheon, un appaltatore militare fu dato l’incarico di produrre le particolari memorie dell’AGC, l’Apollo Guidance Computer.

Ben 72 kilobytes di ROM e 4 kilobytes of RAM: per intenderci, quello che ti saresti verosimilmente aspettato di trovare in uno dei primi home computer, come il Tandy TRS-80 (4kb di RAM al lancio, ma solo 8Kb di ROM) e di molto inferiore a quanto avresti trovato in un Commodore 64 venti anni dopo, computer con 64Kb di RAM e 20Kb di ROM.

Ma avrete già notato qualcosa: la ROM dell’AGC era di mole superiore a quello che avresti trovato anche in un Home Computer di generazioni successive: del resto le istruzioni necessarie a far funzionare una cosa complessa come il LEM dovevano essere qualcosa di unico e senza precedenti per l’epoca.

Ma basato su una struttura nota dai tempi dell’ENIAC, come le memorie a nucleo di ferrite per le RAM e le simili (ma insieme assai diverse) core rope Memories per la RAM, letteralmente fili tessuti attraverso piccoli tondini di ferrite o grandi tondi di materiale magnetico, a seconda dei casi.

Il funzionamento delle memorie a nucleo di ferrite

Tutti voi che smanettate con un PC sapete come sono fatte le RAM. Piccole stecche con degli integrati saldati al di sopra, per i più giovanotti piccole stecche con saldato un dissipatore termico e delle luci RGB per proteggere e raffreddare quegli integrati.

In passato le RAM erano solo quegli integrati, da incastrare o già saldati sulla scheda madre del PC.

Nell’epoca in cui parliamo le memorie a nucleo di ferrite erano fili che passavano attraverso una serie di piccoli tondelli di ferrite: laddove in una RAM, banalmente, gli uno e zero vengono registrati negli integrati citati, in una memoria a nucleo di ferrite questo avviene mediante isteresi, ovvero mediante l’attraversamento di impulsi elettrici nei fili intessuti tra i piccoli cerchietti magnetici.

Memorie a nucleo magnetico - Wikimedia Commons

Memorie a nucleo magnetico – Wikimedia Commons

Quando la corrente attraversa quei fili, un reticolo di fili (quindi è possibile con una certa precisione inviare la corrente necessaria ad un anello e non ad altri), ciò che accade è che quello che era uno 0 diventa un 1 e viceversa, ma un altro filo, la linea di “sense” consentiva di leggere quegli uno e zero.

Aggiungendo una linea di “inibizione” (che spesso era la stessa linea di sense con un commutatore per risparmiare fili) ottenevi qualcosa che a tutti gli effetti era una RAM perfettamente funzionante: scrivevi istruzioni che il computer poteva leggere, le modificavi, le rileggevi e le modificavi.

Le memorie a nucleo di ferrite erano particolarmente resistenti agli impulsi elettromagnetici ed alle radiazioni, redendole perfette per missioni come l’esplorazione dello spazio.

Core Rope Memory, o la ROM del passato-futuro

Diverse, eppure così simili erano le Core Rope Memory: laddove erano impulsi magnetici a scrivere nella memoria delle memorie a nucleo di ferrite, nella Core Rope Memory, come in una ROM moderna, il programma è fisso e immutabile.

A differenza di una ROM come la conosciamo noi però il programma viene letteralmente intessuto al suo interno.

Al posto dei piccoli cerchietti di ferrite, ci sono grandi cerchi di materiale come il molibdeno, anche essi riccamente tessuti di fili: laddove le memorie riscrivibili per ogni “tondello” ospitavano un bit solo di dati, nella Core Rope Memory ogni cerchio poteva ospitare fino a 192 bit.

Core Rope Memory Sgusciata, fonte YouTube

Core Rope Memory Sgusciata, fonte YouTube

Ogni filo “marchiava” quei cerchi con un uno ed un zero: se il filo attraversava il tondello, avevi 1, se il filo gli girava attorno evitando il centro era lo 0.

Traducendo quei 72Kbit in 36864 parole, potevi scrivere un intero programma e trasformarlo in sequenze di 0 e 1.

Avevamo quindi in fase di programmazione interi listati con tutti i programmi necessari a far funzionare la missione, e avrete visto la famosa foto di Margaret Hamilton, programmatrice e direttrice della divisione software del MIT, posare assieme a listati che stampati superavano la sua altezza.

Quello che non tutti sanno è che mentre oggi probabilmente attaccheremmo una Flash ROM ad un programmatore e aspetteremmo il risultato, ieri quella pila di fogli doveva essere trasformata in una lista di 0 e 1 che altre donne, scelte in quanto esperte nell’arte della tessitura, avrebbero personalmente intessuto nella forma di fili attraverso cerchietti di molibdeno.

Erano le “Litttle Old Ladies” (nome scelto da loro stesse) mentre la Hamilton divenne la “Rope Mother”, la “Madre del Tessuto”.

La celebre foto di Margaret Hamilton

La celebre foto di Margaret Hamilton

Programmare una Core Rope Memory era infatti come lavorare ad un telaio: due lavoratrici-tessitrici passavano i fili del programma attraverso un telaietto, una per lato (talora una singola donna poteva, con maggiore sforzo, lavorare su ambo i lati da sola), trasformando quel programma in sequenze di uno o zero e quelle sequenze in un tessuto affine ad arti tessili tradizionali come quella Navajo.

Un ingegnoso sistema guidava occhio e mano delle tessitrici (tra cui alcune erano scelte anche dalla meccanica di precisione, come la fabbricazione di orologi): il codice Assembler del programma base dell’AGC veniva convertito in un nastro perforato di Mylar che controllava la posizione del nucleo, indicando all’operaia il punto da intessere.

Il prodotto finale e i tanti problemi

Di tessitura in tessitura arriviamo a 192 linee “sense”, una linea di reset e delle linee di inibizione, in modo da poter leggere e “attivare” alla bisogna i singoli anelli-nuclei: grazie all’uso delle linee di inibizione, il sistema sapeva quale parte della memoria leggere.

E di cose da leggere ce ne erano tante: l’Apollo Guidance Computer aveva ben sei moduli, ognuno con sei kiloword di dati, stivati in un formato da 15bit più un bit per il controllo di parità, costruiti con una struttura a moduli chiamata “cordwood construction”, un vero e proprio telaio dove gli elementi attraversavano due schede parallele.

La tessitura delle Core Rope Memory

La tessitura delle Core Rope Memory

Alla fine della costruzione descritta nel capitolo precedente, per maggiore difesa dagli elementi e stabilità i moduli venivano colati di resina epossidrica: questo rendeva impossibile applicare delle “patch” correttive al programma.

Tenete conto che siamo negli anni ’60: lontanissimi quindi dall’era del “mi aspetto un aggiornamento ogni settimana oppure rifiuto di usare il programma”: quello che era stato tessuto diventava definitivo.

Del resto il Commodore 64, computer simbolo dell’era anni ’80, è passato per almeno tre revisioni principali del KERNAL (il Kernel proprietario) e l’utente finale non aveva alcun modo per aggiornarle se non meccanicamente sostituendo le ROM fornite, operazione che praticamente nessuno faceva.

Se c’erano dei bug, sostanzialmente te li tenevi.

Il 18 Giugno del 1969, a un mese dall’allunaggio, Armstrong chiese la correzione di un bug in Luminary, il codice che faceva funzionare il LEM, che potenzialmente avrebbe provocato anomalie nelle manovre, bloccando le stesse per 163 secondi e causando un rollio incontrollabile dello stesso. Era un bug abbastanza difficile da “attivare” (uno dei modi era premere il tasto per “abortire” la missione…) e furono provati dei mezzi per ovviare, ma nessuno piacque ad Armstrong: ovviamente era la sua vita quella in ballo.

Dispositivo moderno per leggere le ROM dell'AGC

Dispositivo moderno per leggere le ROM dell’AGC

La soluzione? Cestinare un modulo già pronto e sostituirlo con uno dei “moduli di riserva” non ancora “resinato”, al quale furono tagliati alcuni fili e sostituiti.

“Tessere” un intero modulo avrebbe occupato tre mesi di tempo: sapendo dove “correggerlo” e arrischiandosi nell’impresa il tempo diventava inferiore.

Il secondo problema è quello tangenzialmente sollevato dai nostri amici complottisti che millantano la “perdita delle conoscenze”.

Un falso problema: le memorie “tessute” dell’AGC sono ancora leggibili e hanno conservato il programma, ma semplicemente l’Apollo Guidance Computer e la sua interfaccia “tastiera e monitor”, il DSKY sono ormai costossimo oggetto di collezionismo e museale.

AGC con DSKY (modulo tastiera) battuto da Sothesby

AGC con DSKY (modulo tastiera) battuto da Sothesby

Mike Stewart, ingegnere spaziale, è riuscito con successo a ripararne uno di una collezione privata, usandol con profitto per estrapolare copie della “ROM antica e tessuta” dell’Apollo 11, almeno finché il collezionista che gli ha offerto l’uso dello stesso non ha venduto il suo AGC, rendendolo quindi inaccessibile all’ingegnere che ha dovuto costruire un suo lettore (pubblicando i risultati due anni fa) per proseguire la sua opera meritoria di lettura e archivio.

Unito alla presenza dei codici sorgente su Github tutto questo consente non solo di ricostruire pagine di memoria, ma anche di giocare con una fedele riproduzione, con una spiegazione più tecnica di quella che vi abbiamo fornito, con una simulazione delle ROM dell’AGC.

Sì, ma allora perché con la tecnologia di oggi non riusciamo ad andare sulla Luna? Allora la NASA mente

Come abbiamo visto, anche per gli standard dell’epoca, solo la creazione delle ROM era uno sforzo titanico.

L’AGC aveva meno RAM anche dei computer “futuri” ma una ROM molto più grande. Per fare un paragone impreciso ma per farci capire, è come se oggi apparisse un computer con prestazioni nella media ma con un sistema operativo del tutto futuribile in grado di usare quello stesso hardware portare a termine compiti oltre ogni umana immaginazione, usato per pilotare uno strumento così avveniristico che per completarlo si sono dovuti inventare adesivi e materiali plastici apposta.

Torniamo ora al nostro precedente articolo: negli anni ’60 potevi giustificare con l’opinione pubblica un budget di 20 miliardi per l’intero programma Apollo, spesi per costruire computer avanzatissimi e mezzi avveniristici.

La corsa allo spazio immaginata da Encyclopedia Britannica

La corsa allo spazio immaginata da Encyclopedia Britannica

C’era in ballo il prestigio dell’intero Occidente e il desiderio non solo di conquistare il grande processo scientifico dato dall’esplorazione spaziale, ma umiliare il blocco di Varsavia rendendo i loro sforzi per arrivare nulli vani.

Con l’allentarsi di quelle tensioni, semplicemente non c’era più un motivatore: con gli accordi di non proliferazione delle armi nucleari, si fermò anche la ricerca sui missili a lungo raggio.

A questo punto il programma Apollo era una reliquia del passato, qualcosa di irripetibile fino all’arrivo di finanziatori privati e nuova linfa per il programma spaziale.

La necessità della memoria

Operazioni però come quelle che abbiamo visto per riuscire a leggere le memorie dell’AGC con computer moderni si rendono necessarie perché tutto il mondo del retrocomputing è paese.

Abbiamo visto come, nel nostro piccolo, sia necessario creare strumenti che consentano di trasferire dati da e verso vecchi computer e console. Il motivo è semplice: un libro stampato resta leggibile finché qualcuno ne conosce l’alfabeto e finché non è troppo deteriorato.

Le memorie di massa di un computer necessitteranno quel computer per essere lette, o quantomeno un computer compatibile o un emulatore.

Il programma SpaceX, per citarne uno, non ha bisogno di quei dati per volare nello spazio, ma ne ha bisogno la Storia stessa per provare non solo che ci siamo stati, ma quale miracolo abbiamo compiuto nel farlo.

Se il nostro servizio ti piace sostienici su PATREON o con una donazione PAYPAL.

Ultimi Articoli