Il bimbo di Manchester
Si chiamava ufficialmente SSEM, acronimo di Small-Scale Experimental Machine, ma è ricordato non soltanto per il suo simpatico soprannome, Manchester Baby, quanto per essere stato il «primo computer elettronico a programma memorizzato della storia».
La sua denominazione ufficiale, in italiano macchina sperimentale in scala ridotta, lasciava intendere che fosse poco più che un prototipo. Sia in vista della versione successiva, il Manchester Mark 1, quanto per sperimentare e testare - forse aspetto ancor più interessante - le fantascientifiche (per l’epoca) memorie elettrostatiche. Più famose come Tubi Williams e delle quali pure s’è parlato, molte pagine dietro, nel capitolo Special Guests. Come ribadisce Zia Wiki, l’intento era proprio quello di comprovare «… che si trattava di un pratico dispositivo di archiviazione, dimostrando che i dati contenuti al suo interno potevano essere letti e scritti in modo affidabile a una velocità adatta all'uso in un computer». E infatti dietro al Manchester Baby c’era proprio Frederic Williams, accanto al lì già citato Tom Kilburn, a conferma del sodalizio scientifico e accademico tra i due.
Pur trattandosi solo di un prototipo, nato per supportare lo sviluppo di questa nuova memoria a tubo catodico, il Baby era lungo più di cinque metri, alto più di due, organizzato al solito come una successione di moduli e, con le sue 550 valvole, pesava quasi una tonnellata. Grazie al suo assorbimento energetico di appena 3.5 kW, entro certi limiti (ovvero non usare contemporaneamente phon, ferro da stiro e scaldabagno elettrico) poteva essere usato, e soprattutto acceso, finanche nel salotto di casa. Scherzo, naturalmente!
Ben quattro erano i tubi Williams installati: il primo gestiva la memoria principale ad accesso casuale ed era in grado di memorizzare 32 parole di memoria da 32 bit l’una. Il secondo era dedicato all’accumulatore, sempre formato 32 bit, il terzo manteneva in memoria l'istruzione attualmente in esecuzione e il suo program counter. Infine, soprattutto per monitorare - è proprio il caso di dirlo - c’era anche un quarto CRT a vista, privo cioè di contro-schermo per la lettura dei pixel accesi, che in pratica mostrava il contenuto degli altri tubi di memorizzazione.
A conferma del fatto che lo scopo era soprattutto quello di testare l’usabilità dei tubi come memorie ad accesso casuale, non era posta una particolare attenzione all’utilizzo ottimizzato della stessa. Per dirne una, solo metà di ogni word da 32 bit era utilizzata e, all’interno dei 16 bit rimanenti c’erano altri bit altrettanto ignorati. Addirittura c’era un’istruzione di memoria che poteva essere codificata in due modi diversi, pur avendo la stessa identica funzione. Infatti nonostante fossero destinati tre bit agli opcode, le istruzioni erano in tutto sette (non otto) e, per non sprecare l’ottavo codice disponibile, era assegnato (duplicato) d’ufficio a un’istruzione già presente. Vabbè!
Le poche disponibili riguardavano il salto incondizionato (assoluto o relativo alla posizione corrente: in pratica salta esattamente a questa posizione oppure salta avanti di TOT posizioni); il confronto con lo zero del valore memorizzato nell’accumulatore (se l’accumulatore è minore di zero salta la prossima istruzione e procedi con quella dopo); il caricamento nell’accumulatore - con annesso cambio di segno - di un valore presente a un determinato indirizzo di memoria e l’operazione inversa, senza cambio segno. Evidentemente l’uso combinato di queste due istruzioni era in grado di cambiare segno a una determinata cella. Infine era prevista una istruzione di sottrazione (che quindi con il giochetto di prima poteva diventare somma) e l’immancabile STP che non faceva altro che stoppare l’esecuzione del programma in memoria. Fine.
Giusto per chiarire, in conclusione, e ribadendo ancora una volta che il Baby NON nasceva come calcolatore vero e proprio, la mia indole computazionale mi impone di ricordare che il suo linguaggio di programmazione, per quanto ridotto, bastava e avanzava per definirlo Turing-completo. Certo con una memoria di appena 32 word - e pure sottoutilizzate! - la macchina in questione non sarebbe andata molto lontano come potenza di calcolo, ma la questione della quantità di memoria limitata vale anche per il più potente dei supercomputer oggi (e domani) esistenti.
Non si scappa.