EDSAC a été le précurseur de l’informatique moderne et a conduit au premier ordinateur professionnel. L’EDSAC est le premier ordinateur à programme enregistré. Il fut envoyé à l’université de Cambridge pour y réaliser des applications scientifiques.L’EDSAC (pour Electronic Delay Storage Automatic Computer) est un calculateur automatique à mémoire électronique à retard, le premier ordinateur électronique, mis en service le 6 mai 1949 à l’Université de Cambridge, Royaume-Uni. Descendant de l’ENIAC, c’était une machine électronique universelle, programmable par instructions, employant encore la technique des tubes à vide ; il pouvait effectuer en une minute 15 000 opérations mathématiques dont 4 000 multiplications [f2s].Le calculateur automatique de stockage de retard électronique (EDSAC) était un des premiers ordinateurs britanniques. Inspiré par la première ébauche séminale de John von Neumann d’un rapport sur l’EDVAC, la machine a été construite par Maurice Wilkes et son équipe au laboratoire mathématique de l’université de Cambridge en Angleterre. L’EDSAC a été le deuxième ordinateur électronique numérique à programme enregistré à entrer en service régulier.Plus tard, le projet a été soutenu par J. Lyons & Co. Ltd., avec l’intention de développer un ordinateur commercialement appliqué et de réussir le développement lyonnais de LEO I, basé sur la conception EDSAC. Le travail sur EDSAC a commencé en 1947, et il a exécuté ses premiers programmes le 6 mai 1949, quand il a calculé une table de nombres carrés et une liste de nombres premiers. EDSAC a finalement été fermé le 11 juillet 1958, après avoir été remplacé par EDSAC2, qui est resté en service jusqu’en 1965.Présentation technique – Composants physiquesDès que l’EDSAC a été opérationnel, il a commencé à répondre aux besoins de recherche de l’Université. Il utilisait des lignes à retard au mercure pour la mémoire et des tubes à vide déclassés pour la logique. La consommation électrique était de 11 kW d’électricité. [8] [9] Le temps de cycle était de 1,5 ms pour toutes les instructions ordinaires, 6 ms pour la multiplication. L’entrée se faisait via une bande perforée à cinq trous et la sortie via un téléimprimeur.Initialement, les registres étaient limités à un accumulateur et à un registre multiplicateur. En 1953, David Wheeler, de retour d’un séjour à l’Université de l’Illinois, a conçu un registre d’index comme une extension du matériel EDSAC original.Un lecteur de bande magnétique a été ajouté en 1952 mais n’a jamais fonctionné suffisamment bien pour être réellement utile.
Jusqu’en 1952, la mémoire principale disponible (instructions et données) n’était que de 512 mots de 18 bits et il n’y avait pas de stockage de sauvegarde. Les lignes à retard (ou «réservoirs») étaient disposées en deux batteries fournissant 512 mots chacune. La deuxième batterie est entrée en service en 1952.Le stockage complet de la ligne à retard de 1024 mots n’était pas disponible avant 1955 ou au début de 1956, limitant les programmes à environ 800 mots jusque-là.
John Lindley (étudiant diplômé de 1958 à 1959) a mentionné « l’incroyable difficulté que nous ayons jamais eue à produire un seul morceau de ruban de papier correct avec le matériel de poinçonnage, d’impression et de vérification fait maison, brut et peu fiable, disponible à la fin des années 50 ».Mémoire et instructions
La mémoire principale de l’EDSAC se composait de 1024 emplacements, bien que seulement 512 emplacements aient été initialement installés. Chacun contenait 18 bits, mais le bit le plus haut était toujours indisponible en raison de problèmes de synchronisation, de sorte que seuls 17 bits ont été utilisés. Une instruction se composait d’un code d’instruction de cinq bits, d’un bit de réserve, d’un opérande de dix bits (généralement une adresse mémoire) et d’un bit de longueur pour contrôler si l’instruction utilisait un opérande de 17 bits ou 35 bits (deux mots consécutifs, petit-boutiste). Tous les codes d’instructions étaient par conception représentés par une lettre mnémonique, de sorte que l’instruction Add, par exemple, utilisait le code de caractère EDSAC pour la lettre A.En interne, l’EDSAC a utilisé le complément à deux, des nombres binaires. Les nombres avaient une longueur de 17 bits (un mot) ou de 35 bits (deux mots). De façon inhabituelle, le multiplicateur a été conçu pour traiter les nombres comme des fractions à virgule fixe dans l’intervalle −1 ≤ x <1, c’est-à-dire que le point binaire était immédiatement à droite du signe. L’accumulateur pourrait contenir 71 bits, signe compris, permettant de multiplier deux nombres longs (35 bits) sans perdre de précision.Les instructions disponibles étaient :
Ajouter
Soustraire
Multiplier et ajouter
AND-and-add (appelé « Assembler »)
Maj gauche
Décalage arithmétique vers la droite
Registre multiplicateur de charge
Stocker (et éventuellement effacer) l’accumulateur
Conditionnel Goto
Lire la bande d’entrée
Caractère d’impression
Accumulateur rond
No-op
Arrêter. Il n’y avait aucune instruction de division (mais divers sous-programmes de division étaient fournis) et aucun moyen de charger directement un nombre dans l’accumulateur (une instruction « sTore and zero accumulator » suivie d’une instruction « Add » étaient nécessaires pour cela). Il n’y avait pas d’instruction de saut inconditionnel, ni d’instruction d’appel de procédure – elle n’avait pas encore été inventée.
Maurice Wilkes a discuté des modes d’adressage relatifs pour l’EDSAC dans un article publié en 1953. Il faisait des propositions pour faciliter l’utilisation des sous – programmes.Logiciel système
Les commandes initiales étaient câblées sur un ensemble de commutateurs uniselector et chargées dans les mots bas de mémoire au démarrage. En mai 1949, les commandes initiales ont fourni un assembleur de relocalisation primitif tirant parti de la conception mnémonique décrite ci-dessus, le tout en 31 mots. C’était le premier assembleur au monde et sans doute le début de l’industrie mondiale du logiciel. Une simulation d’EDSAC est disponible et une description complète des commandes initiales et des premiers programmes.Le premier calcul effectué par l’EDSAC était un programme de nombres carrés exécuté le 6 mai 1949. [15] Le programme a été écrit par Beatrice Worsley, venue du Canada pour étudier la machine.La machine a été utilisée par d’autres membres de l’Université pour résoudre de vrais problèmes, et de nombreuses techniques précoces ont été développées et sont maintenant incluses dans les systèmes d’exploitation. Les utilisateurs ont préparé leurs programmes en les perforant (dans l’assembleur) sur une bande de papier. Ils sont rapidement devenus bons pour pouvoir tenir le ruban de papier à la lumière et relire les codes. Lorsqu’un programme était prêt, il était accroché sur une longueur de ligne tendue près du lecteur de bande papier. Les opérateurs de machine, présents pendant la journée, ont sélectionné la bande suivante de la ligne et l’ont chargée dans l’EDSAC. Ceci est bien sûr bien connu aujourd’hui sous le nom de files d’attente de travaux. S’il imprimait quelque chose, alors la bande et l’impression étaient renvoyées à l’utilisateur, sinon ils étaient informés à quel emplacement de mémoire elle s’était arrêtée. Les débogueurs étaient loin, mais un écran CRT pouvait être configuré pour afficher le contenu d’une mémoire particulière. Cela a été utilisé pour voir si un nombre convergeait, par exemple. Un haut-parleur était connecté au bit de signe de l’accumulateur ; les utilisateurs expérimentés connaissaient les sons sains et malsains des programmes, en particulier les programmes «accrochés» en boucle. Après les heures de bureau, certains «utilisateurs autorisés» ont été autorisés à faire fonctionner la machine pour eux-mêmes, ce qui a duré tard dans la nuit jusqu’à ce qu’une soupape saute- ce qui se produit généralement selon l’un de ces utilisateurs.Technique de programmation
Les premiers programmeurs ont dû utiliser des techniques mal vues aujourd’hui, en particulier la modification du code. Comme il n’y avait pas de registre d’index jusqu’à bien plus tard, la seule façon d’accéder à un tableau était de modifier l’emplacement mémoire auquel une instruction particulière faisait référence.David Wheeler, qui a obtenu le premier doctorat en informatique au monde à travailler sur le projet, est reconnu pour avoir inventé le concept de sous-programme. Les utilisateurs ont écrit des programmes qui appelaient une routine en sautant au début du sous-programme avec l’adresse de retour (c’est-à-dire l’emplacement plus un du saut lui-même) dans l’accumulateur (un Wheeler Jump). Par convention, le sous-programme s’y attendait et la première chose qu’il fit fut de modifier son instruction de saut de conclusion vers cette adresse de retour. Des sous-programmes multiples et imbriqués peuvent être appelés tant que l’utilisateur connaît la longueur de chacun afin de calculer l’emplacement auquel sauter ; les appels récursifs étaient interdits. L’utilisateur a ensuite copié le code du sous-programme d’une bande maître sur sa propre bande après la fin de son propre programme. (Cependant, Turing a discuté des sous-programmes dans un article de 1945 sur les propositions de conception pour le NPL ACE , allant jusqu’à inventer le concept d’une pile d’adresses de retour, ce qui aurait permis la récursivité. )Logiciel d’application
Le concept de sous-programme a conduit à la disponibilité d’une bibliothèque de sous-programmes substantielle. En 1951, 87 sous-programmes dans les catégories suivantes étaient disponibles pour une utilisation générale: arithmétique à virgule flottante ; opérations arithmétiques sur les nombres complexes ; vérification; division; exponentiation ; routines relatives aux fonctions; équations différentielles ; fonctions spéciales; série de puissance ; logarithmes ; divers; impression et mise en page; quadrature ; lire (entrée); n ème racine; fonctions trigonométriques ; opérations de comptage (simulant la répétition jusqu’à ce que les boucles , tandis que des boucles et des boucles ); vecteurs ; et matrices .
Applications de l’EDSACL’EDSAC a été spécifiquement conçu pour faire partie du service d’assistance au calcul du Laboratoire de Mathématiques. Le premier article scientifique à être publié en utilisant un ordinateur pour les calculs a été par Ronald Fisher. Wilkes et Wheeler avaient utilisé EDSAC pour résoudre une équation différentielle relative aux fréquences des gènes pour lui. En 1951, Miller et Wheeler ont utilisé la machine pour découvrir un nombre premier à 79 chiffres – le plus grand connu à l’époque.
Les lauréats de trois prix Nobel : John Kendrew et Max Perutz (chimie, 1962), Andrew Huxley (médecine, 1963) et Martin Ryle (physique, 1974) ont bénéficié de la puissance de calcul révolutionnaire de l’EDSAC. Dans leurs discours de remise des prix, chacun a reconnu le rôle que l’EDSAC avait joué dans leurs recherches.
Exécutant 650 instructions par seconde, l’EDSAC disposait de plus de 3 000 tubes à vide disposés sur 12 racks, mais il ne reste que quelques pièces d’origine. Pour des raisons de sécurité, les lignes à retard au mercure qui servaient de mémoire à la machine ne seront pas reconstruites.
La Computer Conservation Society (CCS) dirige la reconstruction de trois ans, qui devrait coûter quelque 350 000 $. Les visiteurs du National Museum of Computing de Bletchley Park pourront observer la construction de la machine dans un espace de 215 pieds [65,53 mètres] carrés. Le musée abrite également un Colosse reconstruit, le premier ordinateur électronique programmable au monde.
https://www.cnet.com/culture/u-k-rebuilding-edsac-computer-from-1949/