Small Scale Experimental Machine

Da Wikipedia, l'enciclopedia libera.
Template-info.svg
Replica dello Small-Scale Experimental Machine esposta al Museum of Science & Industry (Manchester, Regno Unito)

Lo Small-Scale Experimental Machine[1] (abbreviazione comunemente utilizzata: "SSEM";[2] popolari soprannomi: "Manchester Baby",[3] "Baby") è, tra quelli di cui si ha notizia,[4] il sesto computer elettronico digitale della storia.[5]

L'importanza storica del SSEM è notevole in quanto è il primo computer elettronico a programma memorizzato della storia[6] e il primo computer della storia basato sull'architettura di von Neumann. Questi due primati fanno del SSEM il progenitore dei moderni computer programmabili a loro più simile.[7]

Progettato e costruito nel 1948 alla Victoria University of Manchester (Manchester, Regno Unito) da Frederic C. Williams, Tom Kilburn e Geoff Tootill, il SSEM entrò in funzione il 21 giugno 1948. Il primo programma che vi venne eseguito serviva a calcolare il massimo fattore di un dato numero ed era composto da sole 17 istruzioni.[8][9]

Come indica la presenza della parola "experimental"[10] nel nome del computer, il SSEM è stato il banco di prova per un altro computer: il Manchester Mark 1. In particolare nel SSEM è stata sperimentata con successo, per la prima volta, una nuova tipologia di memoria: il tubo di Williams, il primo disposito al mondo di memoria RAM.

Caratteristiche[modifica | modifica sorgente]

Il SSEM aveva le seguenti caratteristiche:[11]

  • Lunghezza di parola di 32 bit.
  • Aritmetica binaria su interi in complemento a due con la cifra meno significativa a sinistra.
  • Formato delle istruzioni a singolo indirizzo.
  • Memoria totale di 32 parole estendibile fino a 8192.
  • Velocità di esecuzione di 1,2 millisecondi per singola istruzione.
  • Ciclo di clock di 100 kHz.

L'interazione avveniva scrivendo per mezzo di una tastiera le sequenze di bit negli indirizzi di memoria scelti; i risultati della computazione apparivano su di un display costituito da un tubo a raggi catodici.

Le dimensioni del calcolatore erano di 5,2 metri di lunghezza per 2,2 metri di altezza per un peso di poco inferiore alla tonnellata; le sue 550 valvole, 300 diodi e 250 pentodi, lo portavano a consumare 3500 watt.[11]

Praticamente tutti i componenti con i quali venne costruito il Baby provenivano dal Telecommunications Research Establishment (TRE), ed erano il risultato della ricerca radar e nel campo delle telecomunicazioni sviluppata durante la Seconda guerra mondiale.

Formato del set di istruzioni[modifica | modifica sorgente]

Parola da 32 bit
bit 0-12

indirizzo di memoria

bit 13-15

codice istruzione

bit 16-31

non utilizzati

I programmi potevano essere scritti con queste 7 istruzioni:

  • A = - S
  • A = A - S
  • S = A
  • if A < 0, CI = CI + 1 (se A è negativo, salta alla prossima istruzione)
  • CI = S
  • CI = CI + S
  • Halt (termina il programma)

A è il registro accumulatore, S il contenuto dell'indirizzo di memoria passato nell'istruzione, CI è l'indirizzo dell'istruzione corrente; un altro registro presente era il PI che conteneva l'istruzione corrente.[12]

Inizialmente le sole istruzioni aritmetiche implementate in hardware erano la sottrazione e la negazione, tutte le altre operazioni dovevano essere implementate via software.[13]

Due mesi dopo l'esecuzione del primo programma, il set di istruzione venne aumentato incrementando fino a 4 bit la lunghezza del codice di istruzione, portando così il massimo numero di istruzioni possibili a 16 (non tutte implementate).[12]

Le principali aggiunte furono:

  • A = S
  • A = A + S
  • A = A & S

La tecnologia di memoria[modifica | modifica sorgente]

Lo scopo del SSEM era quello di dimostrare la possibilità di utilizzare i tubi di Williams-Kilburn (essenzialmente tubi a raggi catodici, CRT) per l'immagazzinamento di dati digitali. La tecnologia di memoria nei primi calcolatori era una parte critica e fortemente limitante, sia per capacità, sia per tempo di accesso.

I tubi di Williams-Kilburn sono stati la soluzione adottata nella costruzione dei primi calcolatori sviluppati dall'Università di Manchester e dalla Ferranti[14], la prima azienda costruttrice di computer geneneral purpose disponibili in commercio.

Questa tecnologia venne sviluppata congiuntamente da Freddie Williams e Tom Kilburn a cavallo tra il 1946 e il 1947; il principio che sta dietro al funzionamento di queste memorie è l'emissione secondaria, la persistenza di una carica generata da un segnale emesso dal tubo a raggi su di una estremità del tubo stesso; l'area in questione rimane caricata negativamente per un certo periodo di tempo dopo la fine del raggio catodico e può essere letta come differenza di potenziale elettrostatico mediante una piastra metallica esterna.

Ogni lettura di una particolare area del tubo causa la sua cancellazione; quindi per mantenere l'informazione in memoria ogni lettura deve essere seguita da una scrittura.

La carica in sé ha una durata limitata nel tempo (circa 0,2 secondi) e l'idea di Williams e Kilburn fu quella di rigenerarla per mezzo di successive letture e riscritture, la stessa tecnica che oggi è utilizzata nelle DRAM.

Le memorie costruite per mezzo di questi tubi permettevano tempi di accesso costanti e la mancanza di parti in movimento le rendeva particolarmente veloci per l'epoca; la capacità di immagazzinamento variava dai 500 ai 1000 bit di informazione.[15]

I primi test su questa tecnologia furono effettuati sui tubi più commercialmente diffusi nel 1946, i CV1131 di 300 mm di diametro, il Baby fu costruito però con una versione più piccola; i CV1097 di 150 mm di diametro.[16]

Il primo programma[modifica | modifica sorgente]

Istruzioni
1 -18,C azzera l'accumulatore
2 -19,C caricamento +a
3 SUB 20 sottrazione
4 TEST la differenza è negativa?
5 ADD 21, CI ancora positiva,

salta indietro due linee

6 SUB 22 risultato oltrepassato,

aggiungi bn

7 c, 24 memorizza +r n
8 -22, C carica bn
9 SUB 23 assegna b(n+1) = bn -1
10 c, 20 carica b(n+1)
11 -20, C carica -b(n-1)
12 c, 22 memorizza -b(n+1)
13 -24, C carica -r n
14 TEST il resto è zero?
15 25, C si, salta alla linea 17
16 23, C no, salta alla linea 2
17 STOP carica -b(n+1)
Dati
iniziale corrente finale
18 0
19 -a -a
20 b1 bn o b(n+1) b(N+1)
21 -3
22 -b1 -bn o -b(n+1) -b(N+1)
23 1
24 -r n r N
25 16

Questa è una ricostruzione del primo programma fatta e annotata nel 1996 da parte di Geoff Tootill, l'originale andato perduto era stato scritto da Tom Kilburn del quale Tootil era assistente. Sia Geoff che Tom hanno lavorato sui loro appunti e ricordi dell'epoca per ricreare il Primo Programma più plausibile.[8][17] Esiste anche un documento, datato 18 luglio 1948, che contiene una versione del programma revisionata da Geoff Tootill, costituita però da 19 istruzioni.[18]

Per fare un esempio il primo programma era in grado di trovare il fattore più grande di 2^{18}, mediante successive sottrazioni e test, in 52 minuti.[6]

In totale il numero dei programmi che sono stati eseguiti sul SSEM ammonta a 3, incluso un programma scritto da Alan Turing per la divisione di numeri 'lunghi'.[12]

Architettura a programma memorizzato[modifica | modifica sorgente]

Prima della creazione del Baby, i calcolatori esistenti erano progettati per svolgere compiti specifici: il programma che eseguivano era determinato alla creazione del calcolatore stesso e stabilito dai suoi circuiti hardware. Convertire un calcolatore special purpose per risolvere un problema per il quale non era stato progettato costava tempo e denaro; questo può far comprendere quanto la creazione di un calcolatore a programma memorizzato sia stata innovativa.

Una opportuna progettazione dell'architettura hardware di un calcolatore consente di risolvere qualsiasi problema matematico computabile, a patto di riuscire a scrivere un programma abbastanza piccolo e decidibile per tale problema; Alan Turing aveva già teorizzato questo fatto dimostrandolo per la sua Macchina di Turing.

L'architettura utilizzata nel SSEM, nella quale le istruzioni e i dati vengono memorizzati in una stessa memoria, è detta Architettura von Neumann (dal matematico John von Neumann) e rispecchia l'organizzazione degli attuali processori per PC.

Anniversari[modifica | modifica sorgente]

L'università e la città di Manchester in occasione del cinquantesimo anniversario dalla creazione della Small Scale Esperimental Machine hanno organizzato una celebrazione che si è tenuta il 17 giugno 1998, in cui è stata fatta ufficialmente partire la replica del Baby (ora conservata nel Museo della Scienza e dell'Industria di Manchester) eseguendo anche lo storico Primo Programma ricostruito per l'occasione.[19]

Durante la celebrazione si è svolta la premiazione del concorso di programmazione per il Baby: tutti i partecipanti hanno dovuto sviluppare programmi originali realmente funzionanti su di un simulatore del Baby scritto in Java.[20]

Il sessantesimo anniversario dalla creazione del SSEM si è svolto il 20 giugno 2008; l'evento ha visto l'inaugurazione della ormai annuale conferenza Kilburn e la consegna delle medaglie per l'eccezionale contributo alla storia dell'informatica ai rimanenti componenti del team che costruì il SSEM.[21]

Note[modifica | modifica sorgente]

  1. ^ "Small-Scale Experimental Machine" è un nome proprio inglese che tradotto letteralmente significa "macchina sperimentale in scala ridotta".
  2. ^ "SSEM" è l'acronimo di "Small-Scale Experimental Machine".
  3. ^ "Manchester" è la città del Regno Unito dove il computer è stato costruito e utilizzato. "Baby" è un nome inglese che significa "bambino".
  4. ^ C'è la possibilità che, prima del SSEM, in ambito militare siano stati costruiti computer elettronici digitali senza che ciò sia stato reso di dominio pubblico. Più difficile invece che fuori dall'ambito militare ciò sia avvenuto.
  5. ^ Lo hanno preceduto (in ordine cronologico) l'Atanasoff-Berry Computer, il Colossus Mark I, il Colossus Mark II, l'ENIAC e l'IBM 603 Electronic Multiplier.
  6. ^ a b (EN) The Manchester Small Scale Experimental Machine -- "The Baby", 1999. Pagina dedicata al Baby.
  7. ^ La maggior parte dei moderni computer programmabili sono computer a programma memorizzato basati sull'architettura di von Neumann.
  8. ^ a b (EN) The Original Original Program.. Il Programma Originale.
  9. ^ (EN) Electronic Digital Computers, letter to Nature.. Lettera originale alla rivista Nature.
  10. ^ "Experimental" in italiano significa "sperimentale".
  11. ^ a b (EN) The "Baby": The World's First Stored-Program Computer (PDF), Manchester Museo della scienza e dell'Industria.. Specifiche e foto.
  12. ^ a b c Specification. Specifiche del SSEM.
  13. ^ (EN) Why the Baby only had a Minus Operator and not a Plus. Perché il Baby aveva solo l'operatore meno e non il più.
  14. ^ (EN) The Manchester Mark 1, aprile 1999. Storia del Manchester Mark 1.
  15. ^ (EN) The Williams-Kilburn tube, novembre 1998. I tubi di Williams-Kilburn.
  16. ^ Lavington 1998, pp. 12–13.
  17. ^ (EN) The Reconstructed First program. Il Primo Programma ricostruito
  18. ^ (EN) Why the Amended First Program was Two Instructions Longer. Perché il programma revisionato aveva due istruzioni in più.
  19. ^ (EN) The 1998 Programming Competition. Concorso: Programmare il Baby.
  20. ^ (EN) The Launch Event – Wednesday June 17th 1998. Celebrazione del cinquantesimo anniversario.
  21. ^ (EN) Digital 60 Day. Programma della celebrazione del sessantesimo anniversario.

Bibliografia[modifica | modifica sorgente]

  • Marcello Morelli, Dalle calcolatrici ai computer degli anni Cinquanta: i protagonisti e le macchine della storia dell'informatica, Bologna, Franco Angeli, 2001. pp. 238–240. ISBN 884642879X.
  • Simon Lavington, A History of Manchester Computers, 2a ed. Swindon, The British Computer Society, 1998. ISBN 1-902505-01-8.

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica