Digitando, digitando... n. 19/2009 del 18.05.2009 Un computer... di pelle di pollo! :-) ... fatto negli anni sessanta, per il Programma Apollo! :-))) Tra poche settimane, si sa, festeggeremo i "nostri..." (inteso come genere umano!) "... primi quarant'anni". Esattamente alle ore 2:56:15 (UTC) del lontanissimo 21 luglio 1969 - tutti lo ricorderanno, anche chi a quei tempi non era ancora nato... - un certo Neil Armstrong, comandante della missione Apollo 11, poggiò il suo (con rispetto parlando...) famosissimo piede sul suolo lunare. O, per essere più precisi, adagiò per la prima volta le sue estremità scalpitanti su un generico suolo che non fosse... di tipo terrestre! :-) « ... un piccolo passo per un uomo, ma un grande balzo per l'umanità » A far compagnia nell'impresa, oltre al pilota del modulo lunare Buzz Aldrin (secondo bipede sul suolo lunare), e al pilota del modulo di comando Michael Collins (immagino morì di invidia in orbita lunare ad attendere il rientro dei due... raccomandati!), un altro "personaggio" :-) fece parte del variegato equipaggio di quella storica missione. Il suo nome era AGC, acronimo di Apollo Guidance Computer, un vero e proprio "mostro" di evolutissime tecnologie, tutte evidentemente di natura digital-informatica, atto ad assistere i piloti dei due moduli nella guida spaziale. Era basato nientepopodimeno che su una unità di calcolo da ben 2 MHz di velocità di clock, la bellezza di 2 Kwords di memoria RAM e la ragguardevole cifra di una trentina (abbondanti), sempre di Kwords, di memoria ROM contenente, principalmente, dati e programmi. Incredibile a dirsi, il "cosetto" era però multitasking, essendo in grado di eseguire, senza incasinarsi (immagino...), ben 8 programmi contemporaneamente. Quello che vedete nell'immagine a destra è il cosiddetto DSKY (pronuncia "dis-chi", stava per display-keyboard) ovvero l'unità di interfacciamento del complesso sistema informatico con l'equipaggio umano di bordo: nient'altro che una comoda tastiera numerica e un essenziale display, altrettanto numerico.
Nel video qui a lato, scovato (tanto per cambiare...) su YouTube, possiamo addirittura ammirarlo e apprezzarlo all'opera, in tutta la sua bellezza tecnologica dell'epoca. E se Armstrong fu il primo uomo sulla Luna, l'ACG - per non essere da meno! - fu il primo computer ad utilizzare circuiti integrati (almeno così afferma Zia Wiki). Per l'esattezza 4.100 chip nella sua prima versione, 2.800 nella seconda. Ma non certo perché la release numero due fosse meno "potente" della prima, anzi! Sia la prima che la seconda utilizzava, infatti, un solo tipo di integrato: delle comunissime porte logiche NOR con le quali, si sa, è possibile costruire qualsiasi "giocattolo" in grado di masticare bit e fare calcoli/operazioni su di essi. La versione "duepuntozero", a differenza della prima, poteva contare su ben 2 porte logiche per chip, pertanto pur essendo diminuito il numero di circuiti integrati utilizzati lo stesso non avveniva per il numero complessivo di NOR (che arrivava, quindi, a 5.600). Già a quei tempi si facevano strada, piano piano, i primi tentativi di integrazione "controllata". Tutta questa "mappazza" di integrati, a quanto pare (anche se mi pare proprio strano...) era tra loro interconnessa con un sistema di wire-wrapping, ovvero di... "intorcinamento a filo" :-))) A detta degli esperti del tempo, tale sistema garantiva un collegamento migliore rispetto alle saldature su circuito stampato. Meno male che nel frattempo, sempre gli esperti, hanno cambiato idea! Avrei voluto vedere, se no, come mi interfacciavano il mio moderno Intel Core i7 (con ben 1366 "piedini-non-piedini") al resto degli integrati presenti sulla mia motherboard! (e quando avrebbe mai funzionato con le attuali velocità di clock in gioco?!?). Tornando all'AGC, un'ultima nota (degna di nota...) riguarda le memorie, RAM e ROM utilizzate. Lì non c'erano integrati cui affidare questo prezioso compito, né dischi, nastri o quant'altro, contenente dati e programmi. I tempi non erano certo maturi per questi dispositivi, oggi, all'ordine del giorno. Le memorie, a quei tempi, erano a "nuclei di ferrite": per ogni bit di informazione era necessario magnetizzare (o smagnetizzare) al volo un piccolo anello calamitato, posto all'intersezione di riga e colonna della matrice stessa di memoria. Per "apparare" un solo Kbit di RAM (tranquilli: non sto per raccontarvi, nuovamente, "quante pizze ci vogliono per..." :-) è sufficiente - calcolatrice alla mano! - una matrice di 32 righe per 32 colonne e, ovviamente, 1024 anellini di ferrite pronti a memorizzare ferromagneticamente il loro stato di 0 o di 1. In foto, uno di questi "moduli", in tutto il suo splendore "fronte-retro" :-))) Più in basso, se proprio volete farvi del male, un breve approfondimento (extra-articolo) sulle memorie a nuclei di ferrite, da me "cantate" qualche decennio fa su MCmicrocomputer. Bene... concedetemi a questo punto un, conclusivo, "pensiero poetico": ma ci saremmo mai arrivati, sulla Luna, con un computer di oggi? Mi immagino, nelle comunicazioni con la "Base Terra" un passaggio audio (o magari più d'uno...) del genere:
Breve approfondimento (estratto dal mio primo articolo di Appunti di Informatica, del novembre 1985) Le memorie a nuclei di ferrite In questa sede, vedremo più da vicino il funzionamento delle memorie a nuclei di ferrite. Esse sono composte da un numero più o meno grande di anelli di dimensioni minime, ognuno dei quali (rappresentante un bit) è attraversato all'interno (nel buco, per intenderci) da più fili elettrici. In figura 4 è rappresentata schematicamente una memoria a nuclei di 4x4=16 bit. Notiamo fili orizzontali, fili verticali e un filo diagonale che attraversa tutti i nuclei. Se all'interno di un nucleo passa una corrente maggiore o uguale a un certo I, questa genera un campo magnetico tale da magnetizzarlo permanentemente. Se la corrente sul filo diminuisce o si annulla, il nucleo resterà ugualmente magnetizzato, mantenendo cioè un'informazione. Se mandiamo invece una corrente pari a -I, il nucleo si smagnetizzerà di botto per magnetizzarsi in senso contrario. Chi ha giocato qualche volta con una calamita, avrà notato l'esistenza dei poli Nord e Sud: mandando la corrente -I Nord e Sud si scambieranno di posto. A questo punto associando i valori 0 e 1 ai due possibili sensi di magnetizzazione abbiamo realizzato una vera e propria memoria. Restano due problemi: come magnetizzare un determinato nucleo senza coinvolgere gli altri e come leggere l'informazione. Il primo è abbastanza semplice, disponendo di fili orizzontali e fili verticali (fig.4) per magnetizzare ad esempio il nucleo di coordinate (3,2) terza colonna seconda riga manderemo sul filo verticale 3 e filo orizzontale 2 una corrente per ognuno pari a I/2. Solo nel nucleo interessato passerà corrente per un totale di I (sufficiente alla magnetizzazione) trovandosi questo all'incrocio dei due fili. Semplice, no? Per quanto riguarda lettura, l'affare si complica un po' in quanto occorre mandare una tensione pari a -I al nucleo interessato. Se questo era già magnetizzato in tal senso, non accade nulla. Se invece era stato magnetizzato da una corrente I, la smagnetizzazione e la successiva magnetizzazione provoca una variazione del campo magnetico all'interno del nucleo (sempre nel buco) inducendo una corrente all'interno del filo diagonale. In definitiva se mandando -I troviamo l'impulso sul filo diagonale allora nel nucleo c'era "scritto" un 1, altrimenti 0. I più attenti avranno notato che l'operazione di lettura è distruttiva in quanto corrisponde a scrivere uno 0 e vedere se è successo qualcosa. Per ovviare a questo inconveniente un apposito circuito di ritardo (non mostrato in figura) provvede a riscrivere quanto appena letto.
|
.