Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 1
Origine et évolutions des architectures
Année 2002-2003

Suite N°6...

Cette machine est très fiable: elle ne fait, en moyenne, qu'une erreur toutes les 8 heures...
    Haut responsable d'IBM en 1948. (repris de P. Ernst)

1.4 LES ANNÉES 1940

À partir de 1940, les faits sont de plus en plus nombreux. Les délais de réalisation très variables font qu'entre la conception et la mise en service d'une machine, de nouveaux projets sont lancés et parfois ont abouti.

Le Mark I, conçu en 1937 par Aïken (1900-1973) est mis en service en 1944.

L'ENIAC :

En 1942 commence la conception de l'ENIAC (Electronic numerical integrator, analyser and calculator) pour calculer des tables de tir d'artillerie. L'angle de tir est une fonction compliquée des positions, de la direction et de la vitesse du vent, de la densité de l'air, de la charge propulsive et de la charge utile.

Il est conçu et construit sur crédits militaires à la «Moore school of electrical engineering» de l'université de Pennsylvanie, aux États-Unis, sous la responsabilité de John Mauchly aidé de son thésard John Presper Eckert. L'officier de projet est Herman H. Goldstine.
 

Vue de l'ENIAC
Deux vues de l'ENIAC
Eckert et Mauchly
Eckert et Mauchly

L'ENIAC sera achevé, déclassifié et présenté au public le 15 février 1946 et restera en service jusqu'à 1952.
Il est constitué de 17468 tubes de 16 types différents, 1600 relais, 70000 résistances et 10000 condensateurs. Sa surface au sol est de 160 m2. Il pèse 30 tonnes pour une puissance de 150 kilowatts. Environ 700 000 connexions sont actives. L'horloge bat à 100 kHz. Le temps moyen entre pannes est de 12 heures. Il calcule 5000 additions ou 350 multiplications par seconde. La mémoire a 20 mots ou registres de 10 chiffres. Des cartes perforées externes portent les données. Le programme est fixé sur un tableau à fiches comme les centraux téléphoniques manuels en avaient alors. C'est une forêt de câbles. On se rappellera que cette machine était globalement asynchrone.

Énigma, les Robinsons et les Colosses :

La machine Énigma a été au cœur de la seconde guerre mondiale. Un abrégé de son histoire et du déchiffrement de ses codes figure dans l'annexe 20. Pour notre strict propos, les premiers aspects de calcul électronique de grande ampleur commencent en 1939 en Grande-Bretagne. Ils ne seront connus qu'en 1975 quand sera levé le secret militaire rigoureux qui a protégé et en partie stérilisé la création et le développement des premiers ordinateurs en Grande-Bretagne.

En 1939, les autorités britanniques ont reçu des polonais et des français les plans et les descriptifs de la machine Énigma utilisée par les armées allemandes pour chiffrer leurs messages. Les autorités vont chercher Alan Turing et d'autres cerveaux et les installent dans un domaine ultra-secret le «Government code and cypher school», situé à Bletchley Park, à mi-chemin entre Oxford et Cambridge, pour travailler au projet Ultra, déchiffrer les messages allemands.[BLE00]

A. Turing réalise une première machine opérationnelle en 1940.
Puis, avec Maxwell Newman et plus tard avec T.H. Flowers, ingénieur au Post office research station, il construit une série de machines nommées Robinson opérationnelles en 1942, qui déchiffrent les milliers de messages chiffrés qui parviennent chaque jour à Bletchley Park. Ce sont des machines à calculer en tubes électroniques, spécialisées, sans mémoire interne, pilotées par des rubans de papier.
Les machines de la série suivante seront nommées Colossus. Colossus I entre en service en décembre 1943 avec 2000 tubes à vide, une entrée des données par un lecteur de ruban perforé de papier lu à 5000 c/s, soit un défilement à 50 km/h. Un seul ruban à la fois est donné à la machine. Les comparaisons sont effectuées électroniquement, ce qui est une innovation majeure pour l'époque, les résultats sont conservés dans une mémoire de triodes thyratron à gaz. Pour éliminer certaines erreurs, une pulsation d'horloge produite par une cellule photosensible marque la cadence des opérations. La programmation est faite par cartes enfichables.
Ce succès conduit à concevoir Colossus II cinq fois plus rapide que Colossus I, mise en service en juin 1944. Elle contient 2400 tubes, plusieurs lecteurs rapides en entrée, etc. Plusieurs dizaines seront construits. Ces machines sont à la fois plus ingénieuses et plus puissantes que MARK I. Elles travaillent en binaire, sont programmées par un tableau de connexions pour des fonctions fréquemment utilisées, disposent de plusieurs registres de calcul et d'une instruction de branchement conditionnel. Les réalisations de Bletchley Park étaient en avance sur les grandes machines américaines.

Certaines des idées et solutions techniques des Colossus se retrouveront dans l'industrie informatique britannique, en particulier une avance notable en matière de rubans perforés. Une copie de Colossus est visible au Musée de Bletchley Park.

L'EDVAC :En 1944 un événement capital pour l'informatique future se produit par hasard. Herman H. Goldstine, l'officier en charge du projet ENIAC va à Philadelphie. Sur le quai de la gare, il rencontre un conseiller du projet Manhattan, le mathématicien hongrois Johann von Neumann (1903-1957), prénommé John aux États-Unis et que nous nommerons de Neumann selon l'usage français. Il l'aborde et le convainc de rejoindre l'équipe de l'ENIAC.

J. de Neumann était un personnage très connu comme 
. logicien; 
. créateur en 1923 d'un nouvel ensemble de nombres, les entiers de Neumann;
. inventeur de la théorie des jeux; 
. auteur d'une formalisation de la mécanique quantique etc.

                     ci-contre J. de Neumann

Alors que l'ENIAC est encore en chantier, en octobre 1944, l'armée de terre américaine passe un contrat avec l'équipe de la Moore School de P. Eckert et J. Mauchly, pour réaliser une machine totalement nouvelle l'EDVAC (Electronic discrete variable calculator). La conception de l'EDVAC est sous la direction de Neumann et fait l'objet d'une publication célèbre le 30 juin 1945. Il fonctionnera jusqu'en 1961.

Le 30 juin 1945, J. de Neumann achève la rédaction du rapport qui sera publié par H. Goldstine : «First draft of a report on the EDVAC». Eckert et Mauchly, co-auteurs du projet EDVAC, revendiquent vivement l'antériorité de l'idée de programme enregistré, pour en avoir discuté un an avant l'arrivée de J. de Neumann, ce qu'Eckert avait consigné dans un mémorandum non publié, six mois plus tôt. De plus, on relève que les noms d'Eckert et Mauchly, co-auteurs du projet EDVAC, n'apparaissent pas dans le rapport. Zuse dira plus tard avoir eu cette idée dans les années 30.

Le rapport contient une phrase devenue célèbre :
«We wish to incorporate into the machine -in form of circuits- only such logical concepts as are either necessary to have a complete system or highly convenient because of the frequency which they occur.»

Soit : «Nous voulons implanter dans la machine, sous forme de circuits, les seuls concepts logiques qui sont nécessaires pour construire un système complet ou qui seraient très pratiques en raison de leur fréquence d'utilisation.»L'architecture classique de ce que l'on appelait alors une calculatrice scientifique, aujourd'hui un ordinateur, est définie peu après en 1946 par Burks, Goldstine et de Neumann, alors à l'Institute for Advanced Studies de Princeton dans un rapport qui sera diffusé en 1947.Elle est fondée sur sept prescriptions de réalisation : 
 
Prescription de J. de Neumann
Machine de Turing
Commentaires
Le programme et les données sont enregistrés sous la forme de nombres. La machine de Turing fonctionne avec des symboles sans autre précision. C'est la matérialisation des symboles de la machine de Turing en utilisant les propositions de Hilbert et la technique de Gödel.
Référence à Gödel : toute démonstration peut être faite au moyen de nombres entiers.
Un programme démontre une proposition
Le programme et les données sont logés dans une même mémoire découpée en cellules. Cette mémoire correspond au ruban unique découpé en cellules. Cette mémoire unique est banalisée. La mémoire contient les instructions ET les données, 
Les instructions sont des données.
Les caches transgresseront cette prescription.
Les contenus de la mémoire sont accessibles pour la lecture et l'écriture par leur localisation et non par leur contenu. Les cellules du ruban sont repérées par leur rang et non par leur contenu. La localisation portera plus tard le nom d'adresse.
La commande de l'ensemble, incluant les circuits d'exécution des opérations, est séquentielle, dans l'ordre des cellules de mémoire qui contiennent les instructions, sauf modification nommée branchement. Ce branchement ou rupture de séquence peut être impératif ou conditionné par des résultats de calcul précédents.  La machine de Turing opère de la même façon : lecture du symbole, décision, puis action. On opère instruction après instruction. Des structures auto organisées sont possibles si le programme se modifie lui-même. Cette idée était explorée par Neumann sous la forme d'automates auto reproductibles.
L'exécution de chaque instruction est achevée avant que la suivante soit prise en compte. Comme dans la machine de Turing. Les pipelines transgressent la prescription.
Une unité de traitement réalise un jeu complet d'opérations d'une algèbre de Boole entre les contenus de cellules particulières nommées registres.   Réalisable avec un accumulateur et les circuits ET, OU, NON 
ou encore OU exclusif, etc.
On pourra ajouter tous les circuits «qui seraient très pratiques en raison de leur fréquence d'utilisation.»   La voie est ouverte à toutes les unités fonctionnelles, virgule flottante incluse.

D'abord l'instruction est lue en mémoire,
ensuite l'instruction est décodée,
ensuite les données sont lues en mémoire,
ensuite l'instruction est exécutée,
enfin   le résultat est écrit en mémoire.Ces spécifications sont de nature opératoire. Elles mettent en forme les idées qui avaient émergé dans les années 30 et 40. Elles utilisent sans aucunement les remettre en cause, les acquis théoriques des années trente et plus précisément les trois théories relatives à la calculabilité.
Les spécifications du rapport de 1947 ont trois conséquences pour une réalisation:

Ces spécifications sont devenues les principes de réalisation couramment admis. Elles découlent directement de la théorie des fonctions T-calculables, mais elles ne sont pas les seules possibles. La théorie des fonctions récursives qui est démontrée équivalente, produit la structure de la machine à pile. Celle-ci serait tout autant opératoire que la première mais n'a jamais été produite commercialement à cause de contraintes techniques. De nombreuses machines sont mixtes, contenant une pile plus ou moins importante. En effet la pile est une organisation essentiellement dynamique, sa réalisation câblée est pour cela considérablement plus complexe que la machine à registres où les cellules de mémoire sont gérées par des décodeurs d'adresses.À l'intérieur de la même philosophie, on trouve toutes les variantes de la machine de Neumann obtenues par adjonction de dispositifs variés que celui-ci prévoyait explicitement puisqu'il parlait des circuits «qui seraient très pratiques en raison de leur fréquence d'utilisation.»

C'est notamment le cas de ce que l'on nomme l'architecture de Harvard basée sur des idées d'Aïken. Elle consiste à munir la machine de deux bancs de mémoire séparés, l'un pour les instructions, l'autre pour les données. Il s'agit par là d'apporter une plus grande rapidité d'exécution puisque des lectures ou des écritures peuvent être faites simultanément dans les deux bancs, mais au prix d'une dépense qui était jugée prohibitive dans les premières décennies de l'informatique, vu le coût de la mémoire.

On nomme, mais très rarement, architecture de Princeton celle qui a une mémoire unique.

Récemment quelques machines spécialisées ont repris cette idée : la Prime 9950 et des machines de traitement du signal. Sous une forme légèrement différente les mémoires caches séparées de données et d'instructions de nombreux microprocesseurs relèvent de cette architecture.

Quoi qu'il en fût, les seules réalisations viables furent basées pendant très longtemps sur le schéma dit aujourd'hui «de Neumann» interprété strictement ou avec quelque souplesse. Ce n'est que depuis peu que des machines parallèles sont commercialisées. On voit le retour sous le nom de réseaux de neurones, successeurs lointains des tentatives connues sous les noms de Perceptron de Rosenblatt et en France du «Sauvantron» du Docteur Sauvan dans les années 1960.

En résumé, on peut suivre l'évolution des machines comme suit :
-la commande est manuelle pour les calculateurs;
-la commande est automatisée par :

La grande année de lancement de ce que nous appelons aujourd'hui l'informatique est 1946. Elle est marquée d'abord par la présentation publique de l'ENIAC qui fait impression sur la communauté scientifique réunie pour cela, ensuite par le début d'une bataille âpre et complexe sur les brevets avec des enjeux industriels importants. Elle vient pour l'essentiel de ce que J. de Neumann avait mis ses idées dans le domaine public alors que Eckert et Mauchly voulaient en faire une exploitation commerciale. Ceci fit perdre beaucoup de temps aux États-Unis sans incidence commerciale car les Britanniques étaient en partie paralysés par leur secret, les autres alliés hors d'état de produire quelque chose et les allemands hors course.Les premières réalisations commerciales américaines n'apparaissent qu'en 1951, UNIVAC 1 et en 1953 IBM 701, malgré la tentative d'IBM avec le SSEC (Selective sequence electronic computer) de Hamilton et Sheeber en 1948, machine à programme enregistré, 13500 tubes, 21000 relais. Il pouvait additionner 3 500 nombres de 14 décimales par seconde et multipliait 100 fois plus rapidement que le Mark I. Sa mémoire avait 150 mots, les instructions, les données, les tables étaient lues sur des bandes de papier, il avait 66 lecteurs.

A contrario, il y a une éclosion de projets de laboratoires universitaires ou publics à la fin des années quarante : EDSAC à Cambridge sous la direction de M.V. Wilkes, JOHNIAC à la Rand Corporation, ILLIAC à l'université de l'Illinois, MANIAC au laboratoire de Los Alamos, SWAC à l'université de Californie. EDSAC sera plus tard commercialisé sous le nom de LEO computer par Lyons corporation, une entreprise de salons de thé. Cette partie de l'entreprise sera plus tard achetée par English Electric et deviendra ICL encore plus tard.

Fin 1946, J.P. Eckert et J. Mauchly conçoivent BINAC pour «Binary automatic calculator» qui sera achevé en 1949. Le premier objectif des concepteurs est la fiabilité et pour cela il a deux processeurs qui comparent leur état après chaque instruction. Sa mémoire a 512 mots, portés par des lignes à retard. Les lignes à retard utilisent la propriété de certains cristaux de transformer une charge électrique en une modification mécanique du cristal détectable plus tard. La première bande magnétique sera ajoutée en 1950 à cette machine, ce sera une bande plastique effaçable et réinscriptible à volonté. Le fonctionnement biprocesseur n'était pas satisfaisant, aussi le deuxième processeur prévu pour une surveillance réciproque était le plus souvent mis hors service.

Le programme enregistré apparaît dans l'EDVAC déjà cité, œuvre de J. de Neumann, P. Eckert et J. Mauchly, machine mise en construction à partir de 1947 mais disponible seulement en 1952 à cause du départ d'Eckert et Mauchly en 1947.

En Grande Bretagne, les travaux d'Alan Turing pour réaliser une machine apparaîtront tout de même à la sortie de la machine ACE «Automatic computing engine» en 1950, construite en petite série de 40 machines de 1955 à 1964 sous le nom de DEUCE.

En juin 1948, le premier vrai ordinateur au monde fonctionne. Il est dû à Max Newman, F.C. Williams, Kilburn et Good, Alan Turing rejoint cette équipe pendant la réalisation. Le Manchester MarkI ou MADM, surnommé Madam, est mis en service dans sa version Baby. Sa mémoire est faite de tubes électrostatiques, 128 mots de 40 bits, 26 instructions de 20 bits et un tambour de 1024 mots. Un des tubes visualise le contenu des six autres. La société Ferranti la fabrique.Le premier programme enregistré est exécuté sur cette machine le 21 juin 1948. F.C. Williams raconte:
«Lorsque la machine fut terminée, un programme fut laborieusement inséré et l'on pressa sur le bouton. Immédiatement, les points sur le tube de contrôle entamèrent une danse folle... Une danse de mort qui ne donna aucun résultat utilisable... Mais un jour cela s'arrêta, et, brillant de façon lumineuse à la place attendue, il y eut la réponse attendue.»

Dans les mêmes années, Maurice V. Wilkes, construit l'Electronic Delay Storage Automatic Calculator (EDSAC) à l'université de Cambridge, avec des les lignes à retard à magnétostriction comme mémoire. 

Il inventera la microprogrammation en 1951.
                            ci-contre Maurice V. Wilkes
 

En France, les seuls travaux notables avaient commencé en 1936. Louis Couffignal, spécialiste du calcul mécanique, propose de faire construire à l'Institut de calcul mécanique Blaise Pascal de l'université de Paris, une machine à relais commandée par un ruban perforé. La guerre interrompt ces travaux. Après la guerre il entreprend la construction d'un calculateur à tubes, mis en service en 1950. C'est un calculateur rapide sans mémoire et à programmation externe par bande, donc comparable aux Colossus. On le connaît sous le nom de machine de Couffignal.
En 1947, John Bardeen, Walter Brattain et William Shockley inventent aux laboratoires Bell la «transfer resistance», 
mot abrégé en «transresistance», ensuite renommé «transistor». 
 
 
 
 

On voit ci-contre une photo de la première réalisation.

Les premiers ordinateurs ont trois défauts majeurs :

Pour augmenter la fiabilité de l'ENIAC, 19.000 tubes à vide, 70.000 résistances, environ 5 millions de soudures et 30 tonnes, la tension électrique avait été limitée à 50 % du maximum autorisé et l'intensité à 25% dans les tubes.Dans les années 40, les modalités de réalisation sont l'objet de grandes discussions. Elles se prolongeront dans les années 50 et même 60. Elles portent entre autres :

sur l'enregistrement des adresses :

ainsi que sur l'algèbre à utiliser : En 1948, C. Shannon, [SHA48] déjà mentionné pour ses travaux de 1936, fonde la théorie de l'information telle qu'elle existe toujours par : En 1949, les premiers travaux sur les langages nommés plus tard de «haut niveau» commencent chez Eckert-Mauchly Computer Co. Cette entreprise deviendra Univac puis Unisys. Elle achève la fabrication de BINAC pour Northrop Aviation en 1949.À la fin des années 40, commence la conception de deux machines qui passeront pratiquement inaperçues : l'ORDVAC conçu et construit par l'université de l'Illinois et l'IAS du groupe de Neumann, à l'Institute for Advanced Study de l'université de Princeton. Elles seront mises en service en 1951 et 1952 pour des usages militaires et n'auront pas de version civile. Elles sont les premiers représentants d'une catégorie sera peut-être développée dans les années 2000 : les machines sans horloge centrale nommés aussi ordinateurs asynchrones (cf. conclusion).

Questionnaire

Conservatoire national des arts et métiers
Architectures des systèmes informatiques
CHAPITRE 1
Origine et évolutions des architectures
Année 2002-2003