Small Scale Experimental Machine

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da Small-Scale Experimental Machine)
Vai alla navigazione Vai alla ricerca
Small-Scale Experimental Machine
computer
Replica dello Small-Scale Experimental Machine esposta al Museum of Science & Industry (Manchester, Regno Unito)
Tipocomputer elettronico digitale
Paese d'origineRegno Unito (bandiera) Regno Unito
ProduttoreVictoria University of Manchester
Presentazione1948

Lo Small-Scale Experimental Machine (traducibile dall'inglese come "macchina sperimentale in scala ridotta", sigla SSEM, soprannominato Manchester Baby "bimbo di Manchester" o Baby) è, 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 è notevole in quanto è 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 più 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 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.[4][5]

Come indica la presenza della parola "experimental"[6] 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 dispositivo al mondo di memoria RAM.

Caratteristiche

[modifica | modifica wikitesto]

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.

Formato del set di istruzioni

[modifica | modifica wikitesto]
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.[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 così il massimo numero di istruzioni possibili a 16 (non tutte implementate).[8]

Le principali aggiunte furono:

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

La tecnologia di memoria

[modifica | modifica wikitesto]

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[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 è 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.[11]

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.[12]

Il primo programma

[modifica | modifica wikitesto]
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.[4][13] Esiste anche un documento, datato 18 luglio 1948, che contiene una versione del programma revisionata da Geoff Tootill, costituita però da 19 istruzioni.[14]

Per fare un esempio il primo programma era in grado di trovare il fattore più 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]

Architettura a programma memorizzato

[modifica | modifica wikitesto]

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 di von Neumann (dal matematico John von Neumann) e rispecchia l'organizzazione degli attuali processori per PC.

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.[15]

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.[16]

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.[17]

  1. ^ 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
  2. ^ 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.
  3. ^ La maggior parte dei moderni computer programmabili sono computer a programma memorizzato basati sull'architettura di von Neumann.
  4. ^ 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.
  5. ^ (EN) Electronic Digital Computers, letter to Nature., su computer50.org (archiviato dall'url originale il 6 aprile 2009). Lettera originale alla rivista Nature.
  6. ^ "Experimental" in italiano significa "sperimentale".
  7. ^ 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.
  8. ^ a b c Specification, su computer50.org (archiviato dall'url originale il 4 giugno 2012). Specifiche del SSEM.
  9. ^ (EN) Why the Baby only had a Minus Operator and not a Plus, su computer50.org (archiviato dall'url originale il 6 giugno 2013). Perché il Baby aveva solo l'operatore meno e non il più.
  10. ^ (EN) The Manchester Mark 1, su computer50.org, aprile 1999 (archiviato dall'url originale il 9 febbraio 2014). Storia del Manchester Mark 1.
  11. ^ (EN) The Williams-Kilburn tube, su computer50.org, novembre 1998 (archiviato dall'url originale il 16 febbraio 2003). I tubi di Williams-Kilburn.
  12. ^ Lavington 1998, pp. 12–13.
  13. ^ (EN) The Reconstructed First program, su computer50.org (archiviato dall'url originale il 6 giugno 2013). Il Primo Programma ricostruito
  14. ^ (EN) Why the Amended First Program was Two Instructions Longer, su computer50.org (archiviato dall'url originale il 6 giugno 2013). Perché il programma revisionato aveva due istruzioni in più.
  15. ^ (EN) The 1998 Programming Competition, su computer50.org (archiviato dall'url originale il 16 aprile 2009). Concorso: Programmare il Baby.
  16. ^ (EN) The Launch Event – Wednesday June 17th 1998, su computer50.org (archiviato dall'url originale il 16 aprile 2009). Celebrazione del cinquantesimo anniversario.
  17. ^ (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.

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica