Lo
Small-Scale Experimental Machine
(traducibile dall'
inglese
come "macchina sperimentale in scala ridotta", sigla
SSEM
, soprannominato
Manchester Baby
"bimbo di
Manchester
" o
Baby
) e, tra quelli di cui si ha notizia
[1]
, il sesto
computer
elettronico
digitale
della storia, dopo l'
IBM 603 Electronic Multiplier
.
L'importanza storica del SSEM e notevole in quanto e il primo computer elettronico
a programma memorizzato
della storia
[2]
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 piu simile.
[3]
Progettato e costruito nel
1948
alla
Victoria University of Manchester
(
Manchester
,
Regno Unito
) da
Frederic Calland Williams
,
Tom Kilburn
e
Geoff Tootill
, il SSEM entro 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.
[4]
[5]
Come indica la presenza della parola "experimental"
[6]
nel nome del computer, il SSEM e stato il banco di prova per un altro computer: il
Manchester Mark 1
. In particolare nel SSEM e stata sperimentata con successo, per la prima volta, una nuova tipologia di
memoria
: il
tubo di Williams
, il primo dispositivo al mondo di memoria
RAM
.
Il SSEM aveva le seguenti caratteristiche:
[7]
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
.
[7]
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
.
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 e negativo, salta alla prossima istruzione)
- CI = S
- CI = CI + S
- Halt (termina il programma)
A e il registro
accumulatore
, S il contenuto dell'indirizzo di memoria passato nell'istruzione, CI e l'indirizzo dell'istruzione corrente; un altro registro presente era il PI che conteneva l'istruzione corrente.
[8]
Inizialmente le sole istruzioni aritmetiche implementate in hardware erano la sottrazione e la negazione, tutte le altre operazioni dovevano essere implementate via software.
[9]
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 cosi il massimo numero di istruzioni possibili a 16 (non tutte implementate).
[8]
Le principali aggiunte furono:
- A = S
- A = A + S
- A = A & S
Lo scopo del SSEM era quello di dimostrare la possibilita 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 capacita, sia per tempo di accesso.
I
tubi di Williams-Kilburn
sono stati la soluzione adottata nella costruzione dei primi calcolatori sviluppati dall'Universita di Manchester e dalla
Ferranti
[10]
, la prima azienda costruttrice di computer
general 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 e l'
emissione secondaria
, la persistenza di una carica generata da un segnale emesso dal tubo a raggi su di una estremita del tubo stesso; l'area in questione rimane caricata negativamente per un certo periodo di tempo dopo la fine del
raggio catodico
e puo 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 se 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 e 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 capacita di immagazzinamento variava dai 500 ai 1000 bit di informazione.
[11]
I primi test su questa tecnologia furono effettuati sui tubi piu commercialmente diffusi nel 1946, i CV1131 di 300 mm di diametro, il Baby fu costruito pero con una versione piu piccola; i CV1097 di 150 mm di diametro.
[12]
Istruzioni
1
|
-18,C
|
azzera l'accumulatore
|
2
|
-19,C
|
caricamento +a
|
3
|
SUB 20
|
sottrazione
|
4
|
TEST
|
la differenza e 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 e 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 e 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 piu plausibile.
[4]
[13]
Esiste anche un documento, datato 18 luglio 1948, che contiene una versione del programma revisionata da Geoff Tootill, costituita pero da 19 istruzioni.
[14]
Per fare un esempio il primo programma era in grado di trovare il fattore piu grande di
, mediante successive sottrazioni e test, in 52 minuti.
[2]
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'.
[8]
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 puo 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 gia 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, e detta
Architettura di von Neumann
(dal matematico
John von Neumann
) e rispecchia l'organizzazione degli attuali processori per PC.
L'universita e la citta di
Manchester
in occasione del cinquantesimo anniversario dalla creazione della Small Scale Esperimental Machine hanno organizzato una celebrazione che si e tenuta il 17 giugno 1998, in cui e 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.
[15]
Durante la celebrazione si e 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
.
[16]
Il sessantesimo anniversario dalla creazione del SSEM si e 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 costrui il SSEM.
[17]
- ^
C'e la possibilita che, prima del SSEM, in ambito militare siano stati costruiti computer elettronici digitali senza che cio sia stato reso di dominio pubblico
- ^
a
b
(
EN
)
The Manchester Small Scale Experimental Machine -- "The Baby"
, su
computer50.org
, 1999
(archiviato dall'
url originale
il 4 giugno 2012)
.
Pagina dedicata al Baby.
- ^
La maggior parte dei moderni computer programmabili sono computer a programma memorizzato basati sull'architettura di von Neumann.
- ^
a
b
(
EN
)
The Original Program.
, su
cs.man.ac.uk
.
URL consultato il 7 luglio 2009
(archiviato dall'
url originale
il 9 gennaio 2012)
.
Il Programma Originale.
- ^
(
EN
)
Electronic Digital Computers, letter to Nature.
, su
computer50.org
(archiviato dall'
url originale
il 6 aprile 2009)
.
Lettera originale alla rivista Nature.
- ^
"Experimental" in italiano significa "sperimentale".
- ^
a
b
(
EN
)
The "Baby": The World's First Stored-Program Computer
(
PDF
), su
msim.org.uk
, Manchester Museo della scienza e dell'Industria.
(archiviato dall'
url originale
il 4 marzo 2009)
.
Specifiche e foto.
- ^
a
b
c
Specification
, su
computer50.org
(archiviato dall'
url originale
il 4 giugno 2012)
.
Specifiche del SSEM.
- ^
(
EN
)
Why the Baby only had a Minus Operator and not a Plus
, su
computer50.org
(archiviato dall'
url originale
il 6 giugno 2013)
.
Perche il Baby aveva solo l'operatore meno e non il piu.
- ^
(
EN
)
The Manchester Mark 1
, su
computer50.org
, aprile 1999
(archiviato dall'
url originale
il 9 febbraio 2014)
.
Storia del Manchester Mark 1.
- ^
(
EN
)
The Williams-Kilburn tube
, su
computer50.org
, novembre 1998
(archiviato dall'
url originale
il 16 febbraio 2003)
.
I tubi di Williams-Kilburn.
- ^
Lavington 1998, pp. 12?13.
- ^
(
EN
)
The Reconstructed First program
, su
computer50.org
(archiviato dall'
url originale
il 6 giugno 2013)
.
Il Primo Programma ricostruito
- ^
(
EN
)
Why the Amended First Program was Two Instructions Longer
, su
computer50.org
(archiviato dall'
url originale
il 6 giugno 2013)
.
Perche il programma revisionato aveva due istruzioni in piu.
- ^
(
EN
)
The 1998 Programming Competition
, su
computer50.org
(archiviato dall'
url originale
il 16 aprile 2009)
.
Concorso: Programmare il Baby.
- ^
(
EN
)
The Launch Event ? Wednesday June 17th 1998
, su
computer50.org
(archiviato dall'
url originale
il 16 aprile 2009)
.
Celebrazione del cinquantesimo anniversario.
- ^
(
EN
)
Digital 60 Day
, su
cs.manchester.ac.uk
(archiviato dall'
url originale
il 7 marzo 2009)
.
Programma della celebrazione del sessantesimo anniversario.
- 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 88-464-2879-X
.
- Simon Lavington,
A History of Manchester Computers
, 2ª ed. Swindon, The British Computer Society, 1998.
ISBN 1-902505-01-8
.