# Manchester Mark I

Le Manchester Mark I était un des premiers ordinateurs électroniques. Il fut développé à l'université de Manchester à partir de la Small-Scale Experimental Machine (SSEM), le premier ordinateur électronique à programme enregistré en mémoire du monde. Il était également appelé Manchester Automatic Digital Machine (MADM) (« machine numérique autonome de Manchester »). Les travaux furent lancés en août 1948 et la première version fut opérationnelle en avril 1949. Un programme écrit pour chercher des nombres premiers de Mersenne fonctionna sans erreur pendant neuf heures dans la nuit du 16 au 17 juin 1949.
Le fonctionnement correct de la machine fut largement couvert par la presse britannique, qui utilisa l'expression « cerveau électronique » pour le décrire aux lecteurs. Cette description provoqua une réaction du directeur du département de neurochirurgie de l'université de Manchester, à l'origine d'un long débat sur la possibilité pour un ordinateur électronique d'être vraiment créatif.
L'objectif initial du développement du Mark I était de fournir un outil de calcul situé dans l'université de Manchester, pour permettre aux chercheurs de prendre de l'expérience dans l'utilisation en pratique d'ordinateurs, mais il devint aussi très rapidement un prototype sur lequel fut basée la conception du Ferranti Mark I. Le développement cessa à la fin de 1949, et la machine fut mise au rebut à la fin de 1950. Elle fut remplacée en février 1951 par un Ferranti Mark I, le premier ordinateur généraliste commercialisé du monde.
Du point de vue historique, l'innovation essentielle du Mark I est l'inclusion de registres d'index, une innovation qui facilita la lecture séquentielle par un programme d'un vecteur de mots en mémoire. Trente-quatre brevets furent déposés à la suite du développement de la machine, et nombre d'idées dont était issue sa conception furent incorporées par la suite dans des produits commerciaux tels que les IBM 701 et 702 et le Ferranti Mark I. Frederic Calland Williams et Tom Kilburn, qui dirigèrent la conception de la machine, conclurent de leur expérience avec le Mark I que les ordinateurs seraient plus utilisés pour des applications scientifiques que dans le domaine des mathématiques pures. En 1951, ils commencèrent le développement du successeur du Mark I, doté d'une unité de calcul en virgule flottante. Cette machine, appelée Meg, exécuta son premier programme en 1954.

## Contexte

En 1936, le mathématicien Alan Turing publia une définition d'une « machine à calculer universelle », un calculateur dont le programme était enregistré sur une bande, avec les données sur lesquelles il travaillait. Turing prouva qu'une telle machine était capable de résoudre tout problème mathématique pour lequel il est possible d'écrire un algorithme. Pendant les années 1940, Turing et d'autres, comme Konrad Zuse, développèrent l'idée d'enregistrer le programme et les données dans la mémoire d'un ordinateur, au lieu d'une bande, mais on considère généralement que c'est le mathématicien John von Neumann qui a défini cette architecture d'ordinateur, sur laquelle le Manchester Mark I était basé.
La construction d'un ordinateur à architecture de von Neumann dépendait de la disponibilité d'un support de mémoire approprié. La Small-Scale Experimental Machine (SSEM), le premier ordinateur à programme enregistré en mémoire du monde, construit par l'université de Manchester, avait démontré la viabilité de l'enregistrement du programme en mémoire et du tube de Williams, une forme primitive de mémoire informatique basée sur un tube cathodique (CRT) standard, en exécutant son premier programme en juin 1948. Les premiers ordinateurs électroniques étaient généralement programmés par recâblage, ou par des panneaux de contrôle. Au contraire des ordinateurs modernes, ils n'avaient pas de programme séparé enregistré en mémoire. Il pouvait falloir plusieurs jours pour reprogrammer l'ENIAC, par exemple. D'autres chercheurs développaient des ordinateurs à programme enregistré en mémoire, notamment le Pilot ACE au National Physical Laboratory, l'EDSAC à l'université de Cambridge, l'EDVAC par l'armée américaine. La SSEM et le Mark I se distinguaient essentiellement par l'utilisation de tubes de Williams comme support de mémoire, au lieu de lignes de délai au mercure.
Le développement de la SSEM commença vers août 1948. Conçue essentiellement comme un prototype pour le Manchester Mark I, elle devait fournir à l'université un outil de calcul plus réaliste. En octobre 1948, Ben Lockspeiser, scientifique en chef du gouvernement britannique, assista à une démonstration du prototype du Mark I au cours d'une visite à l'université de Manchester. Lockspeiser fut si impressionné par ce qu'il vit qu'il lança immédiatement un contrat gouvernemental avec l'entreprise locale Ferranti pour fabriquer une version commerciale de la machine, le Ferranti Mark I. Dans sa lettre à l'entreprise, datée d'octobre 1948, Lockspeiser autorise la compagnie à « lancer le projet dont nous avons parlé, c'est-à-dire construire une machine à calculer électronique selon les instructions du professeur F. C. Williams ». À partir de ce moment, le développement du Mark I avait l'objectif supplémentaire de fournir à Ferranti la conception sur laquelle fonder leur machine commerciale. Le contrat du gouvernement avec Ferranti dura cinq ans à partir de novembre 1948, pour un montant estimé à 35 000 £ par an, soit environ 950 000 £ de 2010.

## Conception et développement

La SSEM avait été conçue par l'équipe de Frederic Calland Williams, Tom Kilburn et Geoff Tootill. Deux étudiants les rejoignirent pour développer le Mark I : D. B. Edwards et G. E. Thomas. Le travail commença en août 1948. Le projet eut bientôt le double objectif de fournir à Ferranti la conception sur laquelle fonder leur machine commerciale, le Ferranti Mark I, et de construire un ordinateur qui permettrait aux chercheurs de se rendre compte de l'utilisation possible d'une telle machine en pratique. La première des deux versions du Manchester Mark I, la version intermédiaire, fut opérationnelle en avril 1949 Cependant, cette première version n'avait pas les instructions nécessaires pour qu'un programme puisse transférer des données entre la mémoire principale et la nouvelle mémoire secondaire magnétique. Il fallait donc le faire en arrêtant la machine et en effectuant le transfert à la main. Ces instructions manquantes furent incorporées dans la version finale, qui fonctionnait complètement en octobre 1949.' La machine contenait 4 050 tubes électroniques et consommait 25 kilowatts par heure. Pour augmenter la fiabilité, des CRT spécialement fabriqués par General Electric Company furent utilisés dans la machine au lieu des tubes standard utilisés dans la SSEM.
Le Mark I utilisait des mots de 40 bits, contre 32 bits pour la SSEM. Chaque mot contenait soit un nombre de 40 bits, soit deux instructions machine de 20 bits. La mémoire principale consistait en deux tubes de Williams contenant chacun une page de 32 mots de 40 bits. Un tambour magnétique capable d'enregistrer 32 pages supplémentaires étendait cette mémoire ; la capacité du tambour atteignait 128 pages dans la version finale. Le tambour de 30 cm, appelée roue magnétique au début, contenait une série de pistes magnétiques parallèles à sa surface, chacune dotée de sa propre tête de lecture/écriture. Chaque piste contenait 2 560 bits, soit 2 pages (2 x 32 x 40 bits). Une révolution du tambour prenait 30 millisecondes. Pendant ce temps, il était possible de transférer les deux pages vers la mémoire principale ; cependant, le temps de transfert réel dépendait de la latence, le temps qu'il fallait à une page pour arriver sous la tête de lecture/écriture. L'écriture de pages dans le tambour prenait environ le double du temps de lecture. La vitesse de rotation du tambour était synchronisée avec l'horloge principale, ce qui permettait l'ajout de tambours supplémentaires. Les données étaient enregistrées sur le tambour en utilisant une technique de modulation de phase que l'on appelle encore aujourd'hui codage Manchester.
Le jeu d'instructions de la machine fut augmenté de 7 pour la SSEM à 26 au début, multiplications effectuées par le matériel incluses. La version finale comptait 30 instructions. Dix bits de chaque mot étaient réservés pour représenter le code de l'instruction. Le temps d'exécution normal d'une instruction était 1,8 milliseconde, mais la multiplication était bien plus lente, en fonction de la taille de l'opérande.
L'innovation la plus significative de la machine fut peut-être l'incorporation de registres d'index, que l'on trouve sur tous les ordinateurs modernes. La SSEM avait deux registres, réalisés par des tubes de Williams ; l'accumulateur (A) et le compteur ordinal (C). Comme les noms A et C étaient déjà pris, le tube contenant les deux registres d'index, appelés B-lines à l'origine, fut appelé B. Le contenu de ces registres pouvait être utilisé pour modifier le comportement d'instructions de programme, ce qui facilitait le parcours d'un vecteur de nombres enregistrés en mémoire. Le Mark I avait aussi un quatrième tube, (M), qui contenait les opérandes d'une multiplication.

## Programmation

Sur les 20 bits utilisés pour chaque instructions de programme, 10 contenaient le code de l'instruction, ce qui permettait de représenter 1 024 (2$^{10}$) instructions distinctes. La machine en avait 26 au départ, ce nombre passa à 30 avec l'ajout des codes d'instructions permettant aux programmes de contrôler le transfert de données entre le tambour magnétique et la mémoire principale à tube cathodique. Sur la version intermédiaire, les programmes étaient entrés par des interrupteurs, et la sortie était affichée sous la forme d'une série de points et de traits sur un écran cathodique appelé périphérique de sortie, exactement comme sur la SSEM à partir de laquelle le Mark I avait été développé. Cependant, la machine finale, terminée en octobre 1949, bénéficiait en plus d'un téléscripteur avec un lecteur de ruban perforé à 5 trous.
Le mathématicien Alan Turing, qui avait été nommé au poste symbolique de directeur adjoint au laboratoire des machines à calculer de l'université de Manchester en septembre 1948 , inventa un schéma de codage en base 32 basé sur le code Baudot, un standard pour les téléscripteurs, grâce auquel les programmes et les données pouvaient être lus et écrits sur le ruban de papier. Le code Baudot associe un seul caractère à chacune des 32 (2$^5$) valeurs qui peuvent être représentées sur 5 bits. Ainsi, « 10010 » représente « D », « 10001 » représente « Z », et ainsi de suite. Turing ne changea que quelques-uns des codes standard ; par exemple, « 00000 » et « 01000 », qui signifient « aucun effet » et « retour à la ligne » dans le code de téléscripteur, étaient représentés par les caractères « / » et « @ », respectivement. Le zéro binaire, représenté par la barre oblique, était le caractère le plus fréquent dans les programmes et les données, ce qui produisait des séquences de la forme « /////////////// ». Un des premiers utilisateurs suggéra que le choix de Turing de la barre oblique était un choix subconscient de sa part, une représentation de la pluie vue à travers une vitre sale, reflétant le temps « réputé lugubre » de Manchester.
Comme le Mark I avait des mots de 40 bits, il fallait huit caractères de téléscripteur de 5 bits pour représenter chaque mot. Ainsi, par exemple, le mot binaire « 10001 10010 10100 01001 10001 11001 01010 10110 » était représenté sur le papier par ZDSLZWRF. Le contenu de tout mot de la mémoire pouvait aussi être modifié via le clavier du téléscripteur et écrit sur son imprimante. La machine fonctionnait en interne en binaire, mais pouvait réaliser les conversions de décimal en binaire et de binaire en décimal nécessaires à ses entrées et sorties, respectivement .
Aucun assembleur n'avait été créé pour le Mark I. Il fallait écrire et entrer les programmes sous forme binaire, représentés par huit caractères de 5 bits pour chaque mot de 40 bits ; les programmeurs étaient encouragés à mémoriser les codes Baudot modifiés pour se faciliter le travail. Les données étaient lues et écrites par un lecteur de ruban perforé contrôlé par un programme. Le Mark I n'avait pas de système d'interruptions matérielles ; le programme continuait après le début d'une lecture ou d'une écriture jusqu'à l'arrivée d'une autre instruction de lecture ou d'écriture. À ce moment, la machine attendait que la première opération se termine.
Le Mark I n'avait que quelques routines de base pour les entrées/sorties en guise de système d'exploitation au Mark I. Comme dans la SSEM à partir de laquelle il avait été développé, et au contraire de la convention moderne, les nombres étaient enregistrés en machine avec le bit de poids faible à gauche ; ainsi, « 1 » était représenté sur 5 bits par « 10000 », au lieu de « 00001 », le standard actuel. Les nombres négatifs étaient représentés par le complément à deux, comme sur la plupart des ordinateurs actuels. Dans cette représentation, la valeur du bit de poids fort dénote le signe d'un nombre : les nombres positifs ont un 0 à cette position et les nombres négatifs un 1. Donc, l'intervalle des nombres que l'on pouvait enregistrer dans chaque mot de 40 bits allait de −2$^{39}$ à +2$^{39}$−1 (de −549 755 813 888 à +549 755 813 887).

## Premiers programmes

Le premier programme réaliste exécuté sur le Mark I chercha des nombres premiers de Mersenne, début avril 1949, qui fonctionna sans erreur pendant neuf heures dans la nuit du 16 au 17 juin 1949. L'algorithme fut écrit par Max Newman, chef du département de mathématiques à l'université de Manchester ; Kilburn et Tootill écrivirent le programme. Turing écrivit plus tard une version optimisée du programme, surnommée le « Mersenne Express ». Le Manchester Mark I continua son travail utile sur les mathématiques entre 1949 et 1950, y compris une recherche sur l'hypothèse de Riemann et des calculs d'optique.

## Suites du projet

Tootill fut prêté par l'université de Manchester à Ferranti pendant quatre mois à partir d'août 1949 pour continuer le travail sur la conception du Ferranti Mark I. Le Manchester Mark I fut démonté et mis au rebut vers la fin de 1950 et remplacé quelques mois plus tard par le premier Ferranti Mark I, le premier ordinateur généraliste commercialisé du monde.
Entre 1946 et 1949, l'équipe qui travaillait sur le Mark I et son prédécesseur, la SSEM, comptait environ quatre personnes en moyenne. Pendant cette période, 34 brevets furent déposés, sur la base du travail de l'équipe, par le ministère de l'équipement des armées puis par son successeur, le National Research Development Corporation (« Agence nationale de développement de la recherche »). En juillet 1949, IBM invita Williams aux États-Unis, tous frais payés, pour discuter de la conception du Mark I. L'entreprise exploita par la suite sous licence plusieurs des idées brevetées développées pour la machine, y compris le tube de Williams, pour la conception de ses propres ordinateurs, les 701 et 702. L'innovation du Manchester Mark I qui influença le plus ses successeurs fut peut-être son incorporation de registres d'index, pour lesquels un brevet fut déposé aux noms de Williams, Kilburn, Tootil et Newman.
Kilburn et Newman conclurent que les ordinateurs seraient plus utilisés pour des applications scientifiques que dans le domaine des mathématiques pures, et décidèrent de développer une nouvelle machine qui inclurait une unité de calcul en virgule flottante. Le travail commença en 1951. Le résultat fut une machine, appelée Meg, ou la megacycle machine, qui exécuta son premier programme en mai 1954. Elle était plus petite et plus simple que le Mark I, et beaucoup plus rapide dans la résolution de problèmes mathématiques. Ferranti produisit une version de Meg dans laquelle les tubes de Williams étaient remplacés par des tores magnétiques. Cette conception fut vendue sous le nom de Ferranti Mercury.

## Impact culturel

Le fonctionnement correct du Manchester Mark I et de son prédécesseur, la SSEM, fut largement couvert par la presse britannique, qui utilisa l'expression « cerveau électronique » pour décrire les machines. Lord Louis Mountbatten avait déjà introduit ce terme dans un discours donné à l'Institution britannique des ingénieurs radio le 31 octobre 1946, discours dans lequel il avait prédit l'évolution des ordinateurs primitifs disponible à cette époque. L'enthousiasme qui suivit l'annonce, en 1949, du premier ordinateur moderne provoqua une réaction à laquelle ses développeurs ne s'attendaient pas : Sir Geoffrey Jefferson, professeur de neurochirurgie à l'université de Manchester, à qui on avait demandé de prononcer le discours de remise de la médaille Lister en juin 1949, choisit comme sujet L'esprit de l'homme mécanique. Son objectif était de discréditer le projet Manchester. Dans son discours, il dit :
   « Tant qu'une machine ne pourra pas écrire un sonnet ou composer un concerto en raison des pensées et des émotions qu'elle ressent, et non par le tirage au sort de symboles, nous ne pourrons pas admettre qu'une machine égale un cerveau ― c'est-à-dire, non seulement l'écrire, mais aussi savoir qu'elle l'a écrit. Aucune machine ne peut éprouver le plaisir d'avoir réussi, de douleur quand ses tubes fondent, être affectée par la flatterie, être attristée par ses fautes, être charmée par le sexe, être en colère ou malheureuse quand elle n'obtient pas ce qu'elle veut. »
Le Times publia un article sur le discours de Jefferson le jour suivant, ajoutant que Jefferson prédisait que « le jour ne viendrait jamais où les gracieuses pièces de la Royal Society seraient converties en garages pour héberger ces nouveaux venus ». Ceci fut interprété comme une attaque directe contre Newman, qui avait obtenu une bourse de la Society pour continuer le travail de l'équipe Manchester. En réponse, il écrivit un article pour le Times dans lequel il affirmait qu'il y avait une forte ressemblance entre la structure du Mark I et le cerveau humain. L'article de Newman contenait un entretien avec Turing, qui ajoutait :
   « Ce n'est qu'un avant-goût de ce qui viendra, et que l'ombre de ce qui sera. Nous avons besoin d'expérience avec la machine avant de vraiment connaître ses capacités. Il faudra peut-être des années avant que nous réalisions les nouvelles possibilités, mais je ne vois pas pourquoi elle devrait rester en-dehors d'un quelconque champ normalement couvert par l'intellect humain et, à terme, le concurrencer sur un pied d'égalité. »