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°7...

Que diriez vous d'ordinateur ? C'est un mot qui se trouve dans le Littré comme adjectif désignant Dieu qui met de l'ordre dans le monde, mais les deux champs de signification (religion et comptabilité) sont si éloignés l'un de l'autre que l'inconvénient est peut être mineur.
       Jacques Perret, professeur à la Sorbonne.

1.5 LES ANNÉES 1950

Le moteur du progrès.

Les progrès en informatique sont dus pour beaucoup à la demande des armées américaines. Un des derniers produits de cette demande sera le grand réseau d'ordinateurs du système de surveillance aérienne SAGE. Des dizaines de radars postés aux frontières fournissent une carte complète du ciel des États-Unis et des régions voisines. La carte est centralisée en temps réel grâce à quarante ordinateurs reliés par des lignes téléphoniques.

Le nombre d'éléments d'une machine tubes, diodes, est de l'ordre de 10 000.

Au début des années 1950, de bons esprits affirment qu'une cinquantaine de machines du type de l'IBM 704 suffiront pour satisfaire les besoins de calcul publics et privés des États-Unis. À la fin de ces années, on reconnaît volontiers qu'il en faudra des milliers. Le marché des machines reste pour encore peu de temps celui des années 1940 :

Toutes les considérations architecturales de ces années tendent à économiser le matériel, encore à lampes au début, à transistors à la fin, car les composants sont toujours câblés l'un après l'autre, avec deux ou trois soudures pour chacun, testés à grands frais et d'une fiabilité incertaine moins pour eux-mêmes que pour ces soudures.
La mémoire que l'on nommera ensuite centrale est portée par .des lignes à retard acoustiques,
à mercure ou à magnétostriction;
.un ou des tambours;
.plus tard par des tores de ferrite magnétiques jusqu'au début des années 1980.

Le tambour a l'avantage d'une plus grande capacité (toute relative puisqu'il contient quelques milliers de mots). 

Les tores de ferrite sont plus rapides d'accès mais très chers, car ils sont câblés à la main. 
Il y a un seul (accumulateur) ou un très petit nombre de registres.

Ci-contre, un tambour magnétique.

Des machines à relais sont toujours fabriquées. 
En 1952 ARRA (Automatic relay computer Amsterdam) est conçu par le «computer department» de l'université d'Amsterdam. 

En 1953 ARRA II est électronique. 

L'entreprise Fokker reçoit FERTA (Fokker electronic calculating machine type ARRA) en 1954. 

Ces travaux débouchent sur la création de l'entreprise NV Electrologica qui produira les Electrologica X1 et X8.

Ci-contre, une vue de l'ARRA due à 
http://www.ordiworld.com/musee.php?NUM_FICHE=17
 

La première qualité d'une programmation est l'extrême concision. Elle est obtenue par une chasse permanente à l'instruction superflue et au morceau de programme réutilisable. Ce sont les grandes années du GOTO et des découpages des programmes en branches nommées «overlays». Les idées encore à venir de structuration, d'interface utilisateur et de convivialité des logiciels sont exclues, tout comme l'utilisation de concepts déjà connus mais gourmands en électronique, comme les piles, les mémoires associatives, la microprogrammation, etc. Un système d'exploitation résidant en mémoire est totalement hors sujet. La vue d'un programmeur est celle des ressources physiques, un modèle de programmation ne peut pas exister.

Voici une instruction typique de cette époque parmi les 44 de l'IBM650 à tambour :
60 1234 1009
Elle est interprétée comme :
Charge le contenu de la mémoire d'adresse 1234 dans le premier accumulateur, met le second accumulateur à zéro et prend l'instruction suivante à l'adresse 1009.

Un bon programmeur range soigneusement les instructions sur le tambour pour réduire les attentes. On utilise souvent la modification dynamique du code exécutable pour exécuter des boucles, en l'absence de registre d'index.

Un des principaux acteurs du début des années 50 est Maurice Wilkes. Très tôt après l'achèvement de l'EDSAC, il écrit
«a good part of the remainder of my life was going to be spent in finding errors in ... programs.»
«Une bonne partie de ce qui me reste de vie sera occupé à trouver les erreurs dans les programmes.»

Avec Stanley Gill, David Wheeler et Tom Kilburn, il invente le registre d'index en 1951 pour n'avoir pas à récrire un programme qui traiterait un même tableau de nombres implanté à une autre adresse que celle définie au départ. Il sera utilisé plus tard sous la forme de registres spécialisés, pour appeler des sous programmes, passer des paramètres, etc. Les techniques logicielles qui l'utilisent ont fourni l'allocation dynamique de mémoire, la réentrance et donc des parties essentielles des assembleurs et des compilateurs. M. Wilkes écrit le premier livre qui traite du logiciel : «The preparation of programs for an electronic digital computer» (Addison-Wesley, New York, 1951).

De nouveaux modes d'adressage vont apparaître progressivement :

1. accumulateur unique, adressage absolu, LOAD x
2. accumulateur unique, registre d'index, LOAD x, IX
3. indirection, LOAD (x)
4. accumulateurs multiples et indirection, LOAD R, x, IX
5. indirection via des registres généraux, LOAD Ri, (Rj)

La même année, Maurice Wilkes imagine la microprogrammation pour contourner la complexité de réalisation du transcodeur d'instructions. C'est une extension des idées de Neumann sur l'enregistrement des ordres à exécuter. Les premières réalisations ne sont pas concluantes. C'est beaucoup plus tard que l'émulation des machines et la notion de gamme d'ordinateurs compatibles seront fondées sur cette technique, la première grande réalisation sera la série IBM 360 des années 1960. L'annexe 17 traite plus longuement de ce sujet.

Toujours en 1952, Grace Murray Hopper, de la marine américaine, qui a commencé sa carrière d'informaticienne en 1943 avec Eckert et Mauchly, travaille sur machine Univac de Remington-Rand. Elle publie le premier article sur la réutilisation du logiciel :«The education of a computer». Elle y décrit les techniques propres à sélectionner du code pré rédigé et à l'assembler en un programme répondant à des spécifications de langage de plus haut niveau. C'est la première idée de compilateur. Elle sera plus tard la première femme nommée Rear Admiral de la flotte américaine pour services exceptionnels.

Dans les mêmes années, on veut déjà aller plus vite et surtout économiser le temps d'utilisation du processeur, organe qui est alors le plus coûteux. Pour cela, on rend simultanés les travaux internes au processeur d'une part et les opérations d'entrée et sortie d'autre part. Ceci devient d'autant plus nécessaire que les utilisations nouvelles relèvent de la gestion, très différentes des seuls calculs scientifiques du tout début. Elles demandent de grands volumes de données en entrée et de nombreuses éditions d'états. Les moyens imaginés pour cela sont le vol de cycle du processeur (réalisation de l'entrée-sortie pendant une opération de registre à registre) et le canal (processeur très simple consacré à ces opérations) indépendant du processeur.

En 1950, SEAC (Standard Eastern Automatic Computer) est le premier ordinateur à utiliser des transistors. Il a été construit aux États-Unis pour le National bureau of standards et utilisé en météorologie. Il est mixte, fait de quelques milliers de transistors, de 750 tubes à vides et d'environ 10.000 diodes.Mark I de Ferranti en 1951 est la première machine dont la diffusion est relativement grande. Il est dérivé de la machine MADM de Manchester.
La même année Eckert et Mauchly vendent le premier UNIVAC I (Universal automatic computer number one) qui est un EDVAC amélioré. Il contient un cache de périphérique sous le nom de mémoire tampon qui réduit les temps d'attente du processeur. Il est vendu 250.000 dollars d'alors, avec une unité de bandes magnétiques. Il est le premier à être destiné à la gestion et sera fabriqué en 48 exemplaires.

La machine la plus innovatrice du tout début des années 50 est Whirlwind ou Tourbillon. Il a été conçu au MIT par Jay W. Forrester, Everett, Redmond et Smith qui avaient abandonné la voie du calcul analogique en 1946 pour construire un simulateur. Il est construit entre 1947 et 1951 au laboratoire de servomécanismes du MIT pour la marine américaine, sous la direction de Jay Forrester.
Le tore de ferrite est breveté à cette occasion par An Hang de Harvard en 1949. 

À l'occasion du projet Whirlwind, K. T. Compton, alors président du MIT, voyait grandir les dépenses. Il demanda un rapport en 1948 sur toutes les applications possibles civiles et militaires des calculateurs numériques. L'équipe fit la liste suivante : 
.guidage de missiles;
.compression de données;
.réseaux de machines;
.cryptographie;
.réseaux d'interception;
.contrôle du trafic aérien;
.commande de processus industriels;
.simulation et entraînement;
.logistique, etc...
ci-contre une des huit allées de la salle de Whirlwind

C'est le premier ordinateur à avoir des mots de 16 bits. Il a 2048 mots de mémoire en tores de ferrite et un embryon de langage de programmation. Son temps moyen entre pannes était de 20 minutes au début de son exploitation ce qui en faisait une machine fiable. La durée de la maintenance fut progressivement réduite de plusieurs heures par jour à deux heures par semaine. À partir de 1958, plusieurs exemplaires sont mis en en réseau par lignes téléphoniques dans le système de défense aérienne SAGE (Semi automatic ground environment).
La machine :
a coûté en $ courants
IAS (de Neumann) 650 000
ENIAC
600 000
EDVAC
470 000
Harvard mark III
695 000
ORDVAC
250 000
Whirlwind
3 000 000

En 1951 IBM commence la conception de son premier ordinateur totalement électronique nommé IBM 701, livré dès avril 1953 à plus de 300 exemplaires présenté comme «l'ordinateur rapide le plus perfectionné et le plus flexible du monde». Il a deux lecteurs de bandes, un tambour magnétique, une unité de stockage à tubes cathodiques, un lecteur de carte, une imprimante, un perforateur de cartes et trois unités d'alimentation. Il fait 16000 additions ou soustractions par seconde, lit 12500 chiffres décimaux par seconde à partir d'une bande et perfore 400 chiffres décimaux par seconde. Il est le premier d'une suite et non d'une série compatible de machines, qui comptera les 701, 704, 709, et plus tard 7040, 7044, 7090 et 7094. Elles seront remplacées par la série 360.


Source : http://www-1.ibm.com/ibm/history/exhibits/701/701_141502.htm

En France, la Société d'électronique et d'automatisme (SEA) construit CUBA (Calculateur universel binaire de l'armement), premier ordinateur conçu et fabriqué en France. Il a été défini par François-Henri Raymond à partir de 1952; dans l'équipe figure Paul Namian, tous deux seront longtemps plus tard professeurs au CNAM. Il est livré en 1955. Il possède un tambour comme mémoire principale. Il est suivi par des machines civiles à tambours de la même société, les CAB ou calculatrices arithmétiques binaires, CAB 2022 en 1954, 2000 en 1955, 3030 en 1958, 500 en 1961, et 1500 en 1966.

En 1951, la Compagnie des machines Bull réalise le GAMMA2, premier prototype électronique civil à utiliser des lignes à retard et des semi-conducteurs, des diodes au germanium, à la place des tubes à vide. En 1952, elle commence les livraisons de 1 200 GAMMA3, calculatrices qui utilisent la technique du GAMMA2. Le GAMMA 3 avait un programme fixé par des fiches (64 pas de programme). Il était connecté à une tabulatrice qui faisait office de lecteur et perforateur de cartes et d'imprimante. Celle-ci exécutait ses calculs électro-mécaniques, et l'"entre-cycle" de 40 millisecondes était utilisé par le GAMMA3 pour exécuter des calculs plus compliqués. Le GAMMA3 était asservi à la tabulatrice et ne la commandait pas. La mémoire du GAMMA ET (ET pour extension tambour) est un tambour magnétique contenant 8192 mots de 12 chiffres; il est livré en 1957, son programme est enregistré.

En 1953, IBM commence les livraisons du 650 qui sera produit lui aussi à plus de 1000 exemplaires. Le 650 est une extension des machines à calculer associées aux machines mécanographiques des années 30. Il est compatible avec les lecteurs de cartes installés, ce qui n'était pas le cas des autres machines du même fabricant. Sa mémoire est un tambour.

Les grands utilisateurs cessent de construire eux-mêmes les machines dont ils ont besoin.

En 1954, le transistor au silicium est inventé, moins cher à fabriquer que le transistor au germanium.

L'Univac 1103A est la première machine civile à avoir une mémoire en tores de ferrite.

L'IBM 702 a un accumulateur de longueur variable. Sa capacité maximale de stockage est de 500 chiffres décimaux.

Le 10 novembre 1954, la première version du langage FORTRAN (FORmula TRANslator) créé par John Backus est publiée. C'est un langage à vocation multiple mais son domaine restera le calcul scientifique. Son premier compilateur sera installé en 1957 sur IBM 704. Il sera ensuite largement diffusé. C'est grâce à lui ou à cause de lui que le logiciel commence à influencer les conceptions d'architectures.

En 1955, l'IBM 704 conçu par Gene Amdahl est commercialisé. Sa mémoire a 4096 mots de 36 bits, portée à 32768 mots en 1957, en tores de ferrite. Certains utilisateurs pensent alors que cette mémoire est trop vaste! Il comporte de nombreuses innovations: un opérateur de virgule flottante câblé d'environ 5 kFlops, un moniteur qui est le tout premier système d'exploitation et un compilateur Fortran écrit par John Backus. Il est très fiable pour l'époque puisqu'il n'est en panne que tous les 8 jours. Le moniteur enchaîne les travaux en «premier arrivé, premier servi». C'est le début du traitement par lots.

En 1954, les laboratoires Bell construisent TRADIC avec 800 transistors, sans lampe.

L'idée de spécialiser les machines commerciales pour des professions apparaît. General Electric crée à Phœnix (Arizona), une division chargée de réaliser un système bancaire: l'ERMA, (Electronic recording method for accounting). Ce système est conçu par le Standford research institute pour la Bank of America. Il possède une mémoire rapide de 2 tambours, 8000 tubes à vide et 12 contrôleurs de bandes magnétiques. Le GE210 descendant de l'ERMA sera commercialisé en 1959. Cette tendance à la spécialisation durera jusqu'au temps des mini ordinateurs bien qu'IBM ait conçu sa série 360 comme universelle.En 1956, le mot ordinateur est créé par Jacques Perret, professeur à la Sorbonne, à la demande d'IBM France pour traduire Data processing machine. Devant le succès d'un terme devenu générique, IBM en abandonne la propriété légale, il devient du domaine public.
IBM lance le projet STRETCH dont l'objectif est de livrer au Los Alamos national laboratory une machine 100 fois plus puissante que toute autre. Il sera concrétisé par l'IBM 7030 en 1959 fabriqué en huit exemplaires. La même année, le Lawrence Livermore national laboratory lance le projet LARC confié à Univac, il aboutira à 2 exemplaires en 1959.
 

Le premier disque magnétique nommé IBM 305 RAMAC (random access method for accounting and control) est conçu pour le projet Sabre qui aboutira en 1964. 

C'est un très grand empilement de 50 disques de 61 cm de diamètre. 
Il contient 5 millions caractères sur 7 bits au prix de 50 000 dollars d'alors. 

En 2000, un disque de 2,5 pouces et 99 grammes contient 12 Go pour un millier de francs. 

Le tambour magnétique, la carte perforée et la bande de papier perforée disparaîtront progressivement.

ci-contre, une vue provenant de http://www.cedmagic.com/home/ced-museum-page.html

En 1957, Grace Hopper installe Flow-matic, précurseur de Cobol, sur une machine Univac.

La même année la société britannique Ferranti commercialise Mercury. Le CEA en achètera un exemplaire en 1958. Il a une architecture de Harvard avec 2x512 mots de 40 bits en tores de ferrite, 7 registres d'index et 4 tambours. L'université de Cambridge et Ferranti lancent le projet Atlas en Grande Bretagne, sous la direction de Tom Kilburn. Ils y définissent la notion de mémoire virtuelle. Le premier exemplaire sera livré en 1963.

La deuxième génération d'ordinateurs utilise les transistors. La première machine civile commerciale entièrement transistorisée sous la forme de circuits imprimés, est l'UNIVAC Solid State en 1958. Il avait été précédé en 1954 par TRANSAC (transistor automatic calculator) réalisé chez PHILCO pour des applications militaires et par la machine expérimentale Tradic des laboratoires Bell.

En 1958 livre l'IBM 709. C'est un 704 amélioré par des retombées du projet Stretch. On y trouve des canaux d'entrées et sorties, une gestion des interruptions, un partage de la mémoire entre le processeur et les canaux et un partage du temps entre utilisateurs par CTSS ou «Compatible time sharing system» en 1961. C'est la dernière machine de cette entreprise à être fabriquée avec des tubes à vide.

En 1958, un rapport définit un International algebraic language, qui sera appelé Algorithmic langage ou ALGOL 58. C'est le premier langage à structures de blocs; il sera remplacé par Algol 60.

Les laboratoires Bell expérimentent le premier modem sous le nom de Dataphone. Il est de type acoustique.

LISP (List processing) est conçu en 1958 par John McCarthy, comme langage de traitement de listes. Plus tard des étudiants trouveront pertinent de l'interpréter comme «Lots of idiotic, silly parentheses».

En 1958, le CDC 1604 de Control data corporation est commercialisé. Cette société vient d'être fondée par William Norris. L'unité arithmétique et logique utilise 25 000 transistors et 5000 diodes. Sa mémoire à ferrites a une capacité de 32768 mots de 48 bits. Les plans ont été élaborés par Seymour Cray qui quittera plus tard CDC pour créer sa propre entreprise.

Le multitraitement apparaît en 1959 dans le LARC d'Univac et dans le Gamma 60 de Bull.

À la fin des années 50, construire un ordinateur n'est plus une gageure. Les transistors sont dans les RCA 501 en 1958, GE 210 en 1959. L'IBM 1401, premier ordinateur de gestion d'IBM alors qu'il avait été défini comme contrôleur d'imprimante,, est produit à partir de 1959 en 20 000 exemplaires. Le BULL Gamma 60 conçu par Pierre Chenus, Jean Bosset et J.P. Cottet, est commercialisé en 1959. Il est gigantesque pour cette époque, il n'a pour marché que quelques très grandes entreprises ou institutions. Il n'était pas resté de moyens pour réaliser une machine moyenne à grande diffusion. Sa fiabilité était insuffisante, il n'avait pas de vrai système d'exploitation ni de compilateur pour un bon langage de programmation. Il fait du multitraitement. Son jeu d'instructions contient les deux primitives fork et join de synchronisation de processus. Il en sera fabriqué dix neuf.

Hoerni définit le transistor plat. Jack Kilby, ingénieur chez Texas instruments, et Robert Noyce, ingénieur chez Fairchild Semiconductors, inventent l'intégration de ces transistors et d'autres composants dans un circuit en 1959. On peut relier entre eux tous les éléments du circuit, transistors, diodes, condensateurs, fils, etc. dans un circuit dit intégré, manufacturé en une seule opération. Fairchild nomme ce procédé Planar. Il va susciter avec quelque retard des idées nouvelles d'architectures et cela bien que l'intégration soit encore à petite échelle.

En 1959, IBM prend le contre pied de la tendance au super ordinateur en annonçant deux petites machines : IBM 1401 pour la gestion et IBM 1620 pour le calcul scientifique, tous les deux à transistors. Dans ces deux machines apparaît la notion de mémoire construite sur le caractère, la limite du mot peut être définie par le programmeur. Curieusement l'unité arithmétique fait usage de tables de calculs plutôt que d'additionneurs. On dit que le 1620 devait s'appeler CADET mais que ce mot a été très ou trop rapidement traduit par «Can't add, doesn't even try».

Grace Hopper publie en 1959 le Common business oriented language, COBOL successeur de Flow-matic. Le 4 juin 1959, l'organisation chargée du suivi de ce langage prend le nom de CODASYL, «Committee On DAta SYstem anaLysis».

En novembre 1958, la Délégation générale à la recherche scientifique et technique ou DGRST est créée en France, elle aura une influence certaine dans notre domaine par les deux actions concertées Calculateurs et Automatismes. Elle est vue par le CNRS comme un grand rival.

Cette décennie a été celle des inventions architecturales :

    On y ajoutera la multiprogrammation, on dirait aujourd'hui multi tâche (1959).
 
 

Questionnaire

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