Aller au contenu

Small-Scale Experimental Machine

Un article de Wikipedia, l'encyclopedie libre.

Pour les articles homonymes, voir Baby.

Replique de la Small-Scale Experimental Machine (SSEM) au musee des sciences et de l'industrie de Manchester.

La Small-Scale Experimental Machine (SSEM) (<< machine experimentale a petite echelle >>), surnommee Baby (<< Bebe >>), etait la premiere machine a architecture de von Neumann du monde. Construite a l'universite Victoria de Manchester par Frederic Calland Williams, Tom Kilburn et Geoff Tootill (en), elle executa son premier programme le [1].

Cette machine ne fut pas construite pour son utilite pratique en tant qu'ordinateur, mais comme un banc de test pour le tube de Williams, une forme primitive de memoire d'ordinateur. Bien que consideree comme << petite et primitive >> selon les standards de son epoque, elle fut la premiere machine fonctionnelle contenant tous les elements essentiels d'un ordinateur electronique moderne[2]. Des que la SSEM eut demontre la faisabilite de sa conception, un projet fut lance a l'universite de Manchester pour la developper afin d'en faire un ordinateur plus utilisable, le Manchester Mark I. Le Mark I, a son tour, devint rapidement le prototype du Ferranti Mark I, le premier ordinateur generaliste commercialise[3].

La SSEM utilisait des mots de 32 bits et une memoire de 32 mots. Comme elle etait concue pour etre l'ordinateur a programme enregistre en memoire le plus simple possible, les seules operations arithmetiques implantees dans le materiel etaient la soustraction (moins binaire) et l'oppose (moins unaire) ; les autres operations arithmetiques etaient realisees par des programmes.

Le premier des trois programmes ecrits pour la machine trouva le plus grand diviseur propre de 218 (262 144), un calcul dont on savait qu'il prendrait un temps important pour s'executer, en testant chaque entier de 218-1 a 1 dans l'ordre decroissant, car il fallait realiser les divisions par des soustractions iterees du diviseur.

Le programme consistait en 17 instructions et fonctionna pendant 52 minutes avant d'atteindre la reponse correcte, 131 072. La SSEM effectua 3,5 millions d'operations pour ce calcul, ce qui donne une vitesse de 1,1 kIPS.

De la machine de Turing a l'architecture de von Neumann

[modifier | modifier le code]
Article detaille : Histoire de l'informatique.
Vue d'artiste d'une machine de Turing

Le premier calculateur controle par un programme fut la machine analytique construite par Charles Babbage en 1834. Un siecle plus tard, en 1936, le mathematicien Alan Turing publia sa description de ce qui est desormais connu sous le nom de machine de Turing, un concept theorique destine a explorer les limites du calcul mecanique. Turing n'imaginait pas une machine physique mais une personne, qu'il appelait un << calculateur >>[4], qui suivait les instructions fournies par une bande sur laquelle on pouvait lire et ecrire des symboles sequentiellement au fur et a mesure qu'elle passait sous une tete de lecture/ecriture. Turing prouva que s'il est possible d'ecrire un algorithme pour resoudre un probleme mathematique, alors une machine de Turing peut executer cet algorithme[4] .

Le Z3 de Konrad Zuse fut la premiere machine programmable fonctionnelle du monde. Entierement automatique, a base de circuits binaires numeriques, il n'avait cependant pas les branchements conditionnels d'une machine de Turing. En , il fut presente avec succes devant un public de scientifiques du Deutsche Versuchsanstalt fur Luftfahrt (<< Laboratoire allemand pour l'aviation >>) a Berlin[5]. Le programme du Z3 etait enregistre sur une bande externe, mais elle etait electromecanique plutot qu'electronique. Le Colossus, fabrique en 1943, fut le premier instrument de calcul electronique, mais ne faisait que du decryptage et n'etait donc pas une machine generaliste.

L'ENIAC fut, en 1946, la premiere machine electronique generaliste. Il etait Turing-complet, avec des branchements conditionnels, et programmable pour resoudre une large gamme de problemes. Cependant, son programme etait enregistre dans l'etat d'interrupteurs dans des cables, et non en memoire, en sorte qu'il pouvait falloir plusieurs jours pour le reprogrammer[2]. Des chercheurs tels que Turing et Konrad Zuse explorerent l'idee d'utiliser la memoire de l'ordinateur pour contenir le programme et les donnees sur lesquelles il travaillait[6], mais on considere generalement que c'est le mathematicien John von Neumann qui a defini cette architecture d'ordinateur, toujours utilisee dans presque tous les ordinateurs[7].

Du radar a l'ordinateur

[modifier | modifier le code]
Principe de l'architecture de von Neumann

La construction d'un ordinateur de von Neumann dependait de la disponibilite d'un support de memoire sur lequel enregistrer le programme. Pendant la Seconde Guerre mondiale, des chercheurs travaillant sur le probleme d'eliminer les echos parasites des signaux radar avaient developpe une forme de memoire a ligne de delai, dont la premiere application fut la ligne de delai au mercure[8] developpee par John Presper Eckert. Les transmetteurs radar envoient des pulsations d'energie radio breves et regulieres, dont les reflets sont affiches sur un ecran a tube cathodique. Comme les operateurs ne s'interessent habituellement qu'aux cibles mouvantes, il etait desirable d'eliminer les reflets d'objets stationnaires. Ce filtrage etait realise en comparant chaque pulsation recue avec la precedente et en rejetant les deux si elles etaient identiques, ce qui resultait en un signal qui ne contenait que les images d'objets en mouvement. Afin d'enregistrer chaque pulsation recue pour une comparaison ulterieure, elle passait par une ligne de transmission, ce qui la retardait exactement du temps separant deux pulsations transmises[9].

Turing arriva au laboratoire national de physique (NPL) de Teddington (Richmond upon Thames, grand Londres) en octobre 1945[10]. A ce moment, des scientifiques du ministere de l'equipement des armees avaient conclu que la Grande-Bretagne avait besoin d'un laboratoire national de mathematiques pour coordonner le calcul assiste par machine[11]. Une division de mathematiques fut mise en place au NPL, et le , Alan Turing presenta un article decrivant sa conception d'un calculateur electronique a programme enregistre en memoire connu sous le nom d'Automatic Computing Engine (ACE) (<< moteur de calcul automatique >>)[11]. Ce fut l'un des multiples projets lances dans les annees suivant la Seconde Guerre mondiale dans le but de construire un calculateur a programme enregistre en memoire. Approximativement au meme moment, l'EDVAC etait en developpement a l'ecole Moore d'ingenieurs electriciens de l'universite de Pennsylvanie, et le laboratoire de mathematiques de l'universite de Cambridge travaillait sur l'EDSAC[11],[12].

Les responsables du projet au NPL n'avaient pas l'expertise necessaire a construire une machine comme l'ACE, ils contacterent donc Tommy Flowers au centre de recherches du bureau de Poste general. Flowers, qui avait concu Colossus, le premier ordinateur electronique programmable au monde, avait d'autres engagements et ne put prendre part au projet. Cependant, son equipe construisit quelques lignes de delai pour l'ACE[11]. Ils demanderent aussi de l'aide au Telecommunications Research Establishment (TRE) (<< etablissement de recherches en telecommunications >>) et a Maurice Wilkes, du laboratoire de mathematiques de l'universite de Cambridge[11].

Les responsables du NPL au gouvernement deciderent que, comme tout le travail etait effectue par le TRE en son nom, l'ACE devait recevoir la priorite maximale[11]. La decision du NPL conduisit a une visite du surintendant de la division de physique du TRE le , en compagnie de Frederic Calland Williams et A. M. Uttley, lui aussi du TRE[11]. Williams dirigeait un groupe de developpement du TRE qui travaillait sur les supports de memoire CRT pour les appliquer aux radars, en lieu et place des lignes de delai[13]. Il avait deja accepte un poste de professeur a l'universite Victoria de Manchester, et la plupart de ses techniciens de circuits etaient en cours de transfert vers le departement de l'energie atomique[11]. Le TRE accepta d'aider un petit groupe de techniciens place sous la direction de Williams a l'universite et de soutenir un autre petit groupe travaillant avec Uttley au TRE[11].

Le tube de Williams

[modifier | modifier le code]
Article detaille : Tube de Williams.

Les premiers ordinateurs, comme le CSIRAC, exploitaient des lignes de delai au mercure[14]. Cependant, cette technologie avait des inconvenients : elle etait lourde, couteuse, et ne permettait pas l'acces aleatoire. De plus, comme les donnees etaient enregistrees comme une sequence d'ondes acoustiques propagees dans une colonne de mercure, il fallait controler tres attentivement la temperature de la machine, car la vitesse du son dans un milieu varie avec sa temperature. Williams avait vu une experience a Bell Labs qui montrait l'efficacite de tubes cathodiques (CRT) comme alternative aux lignes de delai pour enlever l'echo de terre des signaux radar. Alors qu'il travaillait au TRE, peu avant d'arriver a l'universite de Manchester en , il avait developpe une forme de memoire electronique connue sous le nom de tube de Williams, basee sur un CRT standard, qui etait le premier support d'enregistrement numerique a acces aleatoire[15]. La Small-Scale Experimental Machine fut concue pour prouver la viabilite du tube de Williams comme support d'enregistrement, en verifiant que les donnees qu'il contenait pouvaient etre mises a jour continuellement avec la vitesse necessaire pour permettre leur utilisation par un ordinateur[16],[17].

Pour etre utilisable dans un ordinateur numerique binaire, le tube devait pouvoir enregistrer l'un ou l'autre de deux etats dans chacun de ses emplacements de memoire, pour representer les bits 0 et 1. Il exploitait la charge electrostatique generee en affichant soit un trait, soit un point a chaque position sur l'ecran CRT. Ce phenomene est appele emission secondaire. Un trait generait une charge positive et un point une charge negative. Une plaque de detection en face de l'ecran recevait la charge, qui representait 0 si elle etait negative, 1 si elle etait positive. La charge se dissipait en environ 0,2 seconde, mais elle pouvait etre automatiquement rafraichie a partir des donnees captees par le detecteur[18]. Au depart, le tube de Williams etait base sur le CV1131, un CRT du commerce de 30 cm de diametre, mais un tube plus petit, de 15 cm de diametre, le CV1097, fut utilise dans la SSEM[19].

Conception et developpement

[modifier | modifier le code]
Schema de l'architecture montrant comment les quatre tubes cathodiques (en vert) etaient deployes

Nomme a la chaire d'ingenierie electrique de l'universite de Manchester, Williams recruta son collegue du TRE Tom Kilburn comme assistant. A l'automne 1947, les deux scientifiques avaient augmente la capacite de stockage du tube de Williams d'un bit a 2 048, disposes en une matrice de 64 bits par 32[20], et montre qu'il etait possible de conserver ces bits pendant quatre heures[16]. L'ingenieur Geoff Tootill se joignit a l'equipe, detache du TRE en , et resta comme assistant jusqu'en [21].

Max Newman avait ete nomme a la chaire de mathematiques pures de l'universite de Manchester en 1945. Pendant la Seconde Guerre mondiale, il avait travaille comme cryptanalyste a Bletchley Park et dirige l'equipe qui, en 1943, avait produit le premier des ordinateurs casseurs de code Colossus. Bien que Newman n'ait joue aucun role actif dans le developpement de la SSEM, pas plus qu'aucun des ordinateurs Manchester qui suivirent, il soutenait ce projet qui l'enthousiasmait, et organisa l'acquisition de fournitures issues de surplus de guerre pour sa construction, y compris des casiers metalliques du bureau de Poste general de Bletchley[22].

En , la SSEM etait construite et fonctionnait[20]. Elle etait longue de 5,2 m, haute de 2,2 m, et pesait presque une tonne. La machine contenait 550 tubes electroniques, 300 diodes et 250 pentodes, et consommait 3 500 watts[23]. L'unite arithmetique etait faite de tubes electroniques EF50 (des pentodes Philips), largement utilises pendant la guerre[16]. La SSEM utilisait un tube de Williams pour fournir 32 mots de 32 bits de memoire vive, un deuxieme hebergeait l'accumulateur dans lequel les resultats intermediaires d'un calcul etaient temporairement enregistres, et un troisieme contenait l'instruction en cours d'execution et son adresse en memoire. Un quatrieme CRT, non equipe de l'electronique destinee au stockage des trois autres, etait utilise comme peripherique de sortie. Il pouvait afficher les bits contenus dans tout autre tube[24].

Le CRT de sortie est juste au-dessus du peripherique d'entree, flanque du moniteur et de l'electronique de controle

Chaque mot de 32 bits de la RAM pouvait contenir soit une instruction de programme, soit des donnees. Dans une instruction de programme, les bits 0 a 12 representaient l'adresse memoire de l'operande a utiliser, et les bits 13 a 15 specifiaient l'operation a executer, comme enregistrer un nombre en memoire ; les 16 autres bits etaient inutilises[24]. L'architecture de la SSEM etait << a accumulateur >>, ce qui signifie que l'accumulateur pouvait representer un second operande implicite pour les operations arithmetiques. Pour les instructions de rupture de sequence (saut inconditionnel relatif), le compteur programme correspondait, egalement, a un operande implicite. Dans tous les cas, les instructions de programmes n'indiquaient qu'un seul operande, via son adresse en memoire, les autres operandes (s'ils etaient necessaires) etaient implicites : la machine SSEM possedait une architecture dite a une seule adresse.

Un mot dans la memoire de l'ordinateur pouvait etre lu, ecrit, ou rafraichi en 360 microsecondes. Une instruction prenait quatre fois plus de temps pour s'executer qu'il n'en fallait pour lire un mot en memoire, ce qui donnait une vitesse d'execution d'environ 700 instructions par seconde. La memoire vive etait rafraichie continuellement, ce qui prenait 20 millisecondes car il fallait lire puis rafraichir chacun des 32 mots de la SSEM en sequence[20].

La SSEM representait les nombres negatifs par leur complement a deux[25], comme la plupart des ordinateurs le font toujours. Dans cette representation, la valeur du bit de poids fort denote le signe du nombre : il vaut 0 pour les nombres positifs et 1 pour les nombres negatifs. Donc, l'intervalle de nombres que l'on pouvait representer dans chaque mot allait de -231 a +231-1, soit de -2,147,483,648 a +2,147,483,647.

Programmation

[modifier | modifier le code]

Jeu d'instructions

[modifier | modifier le code]

Le jeu d'instructions a 3 bits de la SSEM permettait un maximum de 8 (23) instructions distinctes. Au contraire des conventions modernes, la memoire de la machine etait disposee avec les bits de poids faible a gauche ; le nombre 1 etait donc represente par << 100 >>, au lieu de << 001 >>, qui serait plus habituel[25].

Jeu d'instructions de la SSEM[26]
Code binaire Notation originale Mnemonique moderne Operation
000 S, Cl JMP S Branchement vers l'instruction a l'adresse obtenue a l'adresse S indiquee[t 1] (saut inconditionnel absolu)
100 Add S, Cl JRP S Branchement vers l'instruction a l'adresse correspondant au compteur programme plus (+) la valeur relative obtenue a l'adresse S indiquee [t 2] (saut relatif inconditionnel)
010 -S, C LDN S Prendre le nombre a l'adresse S indiquee, calculer son oppose, et enregistrer le resultat dans l'accumulateur
110 c, S STO S Enregistrer le nombre dans l'accumulateur a l'adresse S indiquee
001 ou
101[t 3].
SUB S SUB S Soustraire le nombre a l'adresse S indiquee de la valeur de l'accumulateur et enregistrer le resultat dans l'accumulateur
011 Test CMP Sauter l'instruction suivante si l'accumulateur contient une valeur negative
111 STOP STP Arret
  1. | Comme le compteur programme etait incremente au cours du processus de decodage, l'adresse enregistree en memoire devait correspondre a l'adresse visee - 1.
  2. | Comme le compteur programme etait incremente au cours du processus de decodage, la valeur enregistree en memoire devait correspondre a l'adresse visee - PC - 1.
  3. | Les bits representant l'instruction n'etaient que partiellement decodes, pour economiser des elements logiques[26]

La presence d'oppose dans certaines operations etait une consequence du manque de materiel dans la SSEM pour effectuer toute autre operation que la soustraction et l'oppose. La construction d'un additionneur ne fut pas consideree comme necessaire avant le debut des essais, car l'addition peut facilement etre realisee par la soustraction[24]. Par exemple, x+y peut se calculer par -(-x-y). L'addition de deux nombres necessitait donc quatre instructions[26]. Le code suivant realise ce calcul.

LDN X // charge -X dans l'accumulateur
SUB Y // retranche Y de la valeur de l'accumulateur
STO S // enregistre le resultat dans S
LDN S // charge -S dans l'accumulateur

Les programmes etaient charges sous forme binaire en parcourant tous les mots de la memoire en sequence et en utilisant un ensemble de 32 interrupteurs, qui servaient de peripherique d'entree, pour positionner la valeur de chaque bit de chaque mot a 0 ou 1. La SSEM n'avait pas de lecteur de carte ou ruban perfore[20].

Premiers programmes

[modifier | modifier le code]
L'ecran de sortie

Trois programmes furent ecrits pour l'ordinateur. Le premier, qui consistait en 17 instructions, fut ecrit par Kilburn et fonctionna le [27]. Il etait concu pour trouver le plus grand facteur propre de 218 (262 144) en essayant tous les entiers a partir de 218-1 dans l'ordre decroissant. Les divisions etaient realisees par des soustractions iterees du diviseur. La SSEM prit 3,5 millions d'operations et 52 minutes pour trouver la solution (131 072). Le programme utilisait 8 mots de memoire vive en plus de ses 17 mots d'instructions, ce qui donne une taille de programme de 25 mots[28].

Geoff Tootill ecrivit une version modifiee du programme le mois suivant, et a la mi-juillet, Alan Turing, qui avait ete nomme reader[note 1] au departement de mathematiques de l'universite de Manchester en , ecrivit le troisieme programme, qui effectuait la division longue. Turing avait, a cette epoque, ete nomme directeur assistant du laboratoire de machines a calculer de l'universite[29], poste symbolique car le laboratoire ne devint une realite physique qu'en 1951[30].

Suites de l'experience

[modifier | modifier le code]
Une plaque en l'honneur de Williams et Kilburn a l'universite de Manchester

Williams et Kilburn decrivirent la SSEM dans une lettre publiee par le journal Nature en [31].

Manchester Mark I et Ferranti Mark I

[modifier | modifier le code]
Articles detailles : Manchester Mark I et Ferranti Mark I.

La demonstration de la viabilite de la machine conduisit rapidement a la construction d'un ordinateur plus utile en pratique, le Manchester Mark I, sur lequel le travail commenca en . Cette machine fut la premiere de l'histoire a contenir des registres d'index, qui permettaient de modifier le comportement des instructions. Elle avait plus de memoire, avec 64 mots de 40 bits auxquels s'ajoutait un tambour magnetique contenant 1 024 mots, et possedait un jeu d'instructions complet, avec notamment un multiplieur materiel. La premiere version fut operationnelle en [30] et, a son tour, mena directement au developpement du Ferranti Mark I, le premier ordinateur generaliste commercialise au monde[3].

Reconstruction

[modifier | modifier le code]

En 1998, une replique fonctionnelle de la SSEM, a present exposee au musee des sciences et de l'industrie de Manchester, fut construite pour celebrer le 50e anniversaire de l'execution de son premier programme. Des demonstrations de la machine en marche ont regulierement lieu au musee[32]. En 2008, une photographie panoramique originale de la machine entiere fut decouverte a l'universite de Manchester. La photographie, prise le par un etudiant en stage de recherche, Alec Robinson, avait ete reproduite dans l'Illustrated London News en [33],[34].

Notes et references

[modifier | modifier le code]
(en) Cet article est partiellement ou en totalite issu de l'article de Wikipedia en anglais intitule << Manchester Small-Scale Experimental Machine >> (voir la liste des auteurs).
  1. | Le rang de reader est specifique au Royaume-Uni. Il est a peu pres equivalent, dans le systeme anglo-saxon, a celui de professeur assistant avec tenure.
  1. | (en) Nicholas Enticknap, << Computing's Golden Jubilee >>, Resurrection, The Computer Conservation Society, no 20, (ISSN 0958-7403, lire en ligne)
  2. | a et b (en) << Early Electronic Computers (1946-51) >>, University of Manchester (consulte le )
  3. | a et b (en) R.B.E. Napper, << Introduction to the Mark 1 >>, The University of Manchester (consulte le )
  4. | a et b Turing 1937
  5. | (en) << Z3 >>, Universite technique de Berlin
  6. | (en) Horst Zuse, << The Life and Work of Konrad Zuse, Part 2: Konrad Zuse's First Ideas on Computing >>, Everyday Practical Electronics (consulte le )
  7. | Lavington 1998, p. 7
  8. | Lavington 1998, p. 1
  9. | Brown 1999, p. 429
  10. | Lavington 1998, p. 9
  11. | a b c d e f g h et i Lavington 1980, Chapitre 5: ACE, the 'British National Computer'
  12. | Lavington 1998, p. 8-9
  13. | Lavington 1998, p. 5
  14. | (en) << How did CSIRAC work?: Storage >>, Universite de Melbourne, 4& avril 2006 (consulte le )
  15. | (en) << Early computers at Manchester University >>, Resurrection, The Computer Conservation Society, vol. 1, no 4, (ISSN 0958-7403, lire en ligne)
  16. | a b et c Lavington 1998, p. 13
  17. | Lavington 1998, p. 24
  18. | Lavington 1998, p. 12
  19. | Lavington 1998, p. 12-13
  20. | a b c et d Napper 2000, p. 366
  21. | Lavington 1998, p. 16
  22. | Lavington 1998, p. 6-7
  23. | (en) [PDF] << The "Baby": The World's First Stored-Program Computer >>, Manchester Museum of Science & Industry (consulte le )
  24. | a b et c Napper 2000, p. 367
  25. | a et b Lavington 1998, p. 14
  26. | a b et c Lavington 1998, p. 15
  27. | (en) Christopher P. Burton, << Rebuilding the First Manchester Computer >>, The First Computers -- History and Architectures, MIT Press, , p. 379-386 (ISBN 978-0-262-18197-6)
    Partiellement disponible en ligne
  28. | (en) Geoff Tootill, << The Original Original Program >>, Resurrection, The Computer Conservation Society, no 20, (ISSN 0958-7403, lire en ligne)
  29. | Lavington 1998, p. 16-17
  30. | a et b Lavington 1998, p. 17
  31. | << Electronic Digital Computers >>, Nature, vol. 162, , p. 487 (lire en ligne)
  32. | (en) << Meet Baby >>, Manchester Museum of Science & Industry (consulte le )
  33. | (en) Roger Highfield, << Photo of great grandfather of modern computers found >>, Daily Telegraph, (lire en ligne)
  34. | (en) << Panoramic image of SSEM and other audiovisual records (Digital 60, University of Manchester) >> (consulte le )

Bibliographie

[modifier | modifier le code]
  • (en) Louis Brown, A Radar History of World War II : Technical and Military Imperatives, CRC Press, , 563 p. (ISBN 978-0-7503-0659-1)
  • (en) Simon Lavington, Early British Computers : The Story of Vintage Computers and the People who built them, Swindon, Manchester University Press Society, , 1re ed. (ISBN 0-7190-0803-4)
  • (en) Simon Lavington, A History of Manchester Computers, Swindon, The British Computer Society, , 2e ed. (ISBN 1-902505-01-8)
  • (en) R. B. E. Napper, Raul Rojas (dir.) et Ulf Hashagen (dir.), The First Computers: History and Architectures, MIT Press, (ISBN 0-262-68137-4, lire en ligne), p. 356-377
  • (en) Alan Turing, On Computable Numbers, with an Application to the Entscheidungsproblem : Proceedings of the London Mathematical Society, London Mathematical Society, (DOI 10.1112/PLMS/S2-42.1.230, lire en ligne) et << [idem] : A Correction >>, Proc. London Math. Soc., 2e serie, vol. 43, , p. 544-546 (DOI 10.1112/plms/s2-43.6.544, lire en ligne)

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]

Sur les autres projets Wikimedia :