Histoire des machines

L’EDSAC

EDSAC

L’EDSAC-1 (M. Wilkes, W. Renwick)


L’EDSAC (Electronic Delay Storage Automatic Calculator) est un ordinateur construit à l'université de Cambridge entre 1946 et 1949, sous la direction de Maurice Wilkes. Avec le Manchester Mark-1 qui lui est à peu près contemporain, c'est le premier ordinateur à programme enregistré  (un programme enregistré avait en fait été exécuté en juin 1948 sur le Manchester Baby, mais celui-ci était un outil de validation du tube Williams plutôt qu’un ordinateur à part entière).

Wilkes avait eu connaissance du rapport sur l’EDVAC, qui définissait le modèle d’architecture de von Neumann, et avait immédiatement perçu son potentiel. Il assista aux Moore School Lectures pendant l’été 1946 et lança dès son retour la construction de l’EDSAC. Celui-ci exécuta son premier programme le 6 mai 1949. Il fut utilisé à l'université de Cambridge pour des applications scientifiques. Une version améliorée, l’EDSAC-2, fut mise en service en 1958. L’EDSAC-2 était le premier ordinateur utilisant la microprogrammation, technique inventée par Wilkes en 1951.


Wilkes et la mémoire de l’EDSAC

La mémoire de l’EDSAC (1024 mots de 18 bits, dont seulement 17 utilisables) était à base de lignes à retard au mercure (photo ci-contre, avec Wilkes) ; l'unité centrale utilisait 3 000 tubes à vide. L’organe d’entrée était un lecteur de ruban perforé, l’organe de sortie un télétype. Des bandes magnétiques furent introduites vers 1952.

Les entiers étaient représentés en complément à 2 sur 1 ou 2 mots. La machine avait 32 instructions. Dans les programmes, les instructions étaient représentées par un code symbolique et les adresses étaient en décimal. Il n’y avait pas de système d'exploitation, mais des "ordres initiaux" enregistrés dans une mémoire externe en lecture seule, qui remplissaient les fonctions d’un assembleur rudimentaire et d‘un chargeur.

L’EDSAC utilisait des sous-programmes (notion introduite par David Wheeler, également auteur des ordres initiaux), conservés sous forme de bandes de ruban perforé. Les sous-programmes utilisés par un programme devaient être recopiés manuellement sur le ruban contenant celui-ci. Le calcul des adresses de chargement était réalisé par les ordres initiaux.