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é (MADM) (« machine numérique autonome de Manchester »). Les travaux furent lancés en et la première version fut opérationnelle en . Un programme écrit pour chercher des nombres premiers de Mersenne fonctionna sans erreur pendant neuf heures dans la nuit du 16 au .

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 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 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 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 . 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 . Conçue essentiellement comme un prototype pour le Manchester Mark I, elle devait fournir à l'université un outil de calcul plus réaliste. En , 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', 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 , pour un montant estimé à par an, soit environ de 2010.

Conception et développement

thumb|300px|right|Schéma de fonctionnement montrant les tubes de Williams en vert. Le tube C contient l'instruction actuelle et son adresse, A est l'accumulateur, M contient les opérandes d'une multiplication, et B contient les registres d'index, qui servent à modifier le comportement des instructions.

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 : et . Le travail commença en . 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 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 .' La machine contenait tubes électroniques et . (article republié danrs (janvier 1978) 21 (1). 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 , 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 . 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 . (republication de Kilburn, Tom (1949). The University of Manchester Universal High-Speed Digital Computing Machine. Nature 164)., 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 , soit 2 pages (2 x 32 x 40 bits). Une révolution du tambour prenait . 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 . 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 , 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 à 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 (210) 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 , 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 , inventa un schéma de codage en 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 (25) 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 .