Je nai pas connu chez Bull la priode de conception du Gamma 60 et si je lai aperu dans les salles dordinateur de Gambetta et de la SNCF, si je lui ai soumis quelques calculs par lintermdiaire de programmeurs, je ne suis pas un tmoin de cette aventure . Ayant t ml la fin des annes 60 une autre[1] aventure de conception de systmes, jai eu la curiosit dessayer de comprendre ce qui se passait dans la tte des concepteurs de Bull en 1955 et un peu aprs.
Jean
Bellec 11 aot 2003
Le
Gamma 60 a t conu au milieu des annes 1950, un moment o les
installations mcanographiques des gros clients commenaient tre dotes
de nombreuses machines (tabulatrices, calculatrices, trieuses ) dont
l'exploitation (manipulation de cartes, montage et dmontage des tableaux de
connections) commenaient reprsenter des causes derreurs et un cot
important.
En
parallle, de nouvelles technologies avaient fait leurs preuves aux tats-Unis.
Ce furent essentiellement le stockage des donnes sur bandes magntiques et
l'arrive de technologies plus fiables et plus performantes avec les mmoires
tores et les circuits transistoriss.
La
gense du Gamma 60 a t longue puisque le premier systme devint oprationnel
en 1961, si bien que d'autres facteurs postrieurs aux premires tudes (et
leur annonce quelque peu prmature) furent plus ou moins habilement pris
en compte.
En
1955, Bull tait incontestablement le second constructeur dquipements mcanographiques
en Europe et peut-tre au monde (bien que lexistence daccords avec
Remington Rand rende difficile lanalyse de la place relative de Bull sur le
march mondial).
Le
constructeur de matriel mcanographique faisait essentiellement un matriel
dont la technologie relevait tantt de la machine-outil tantt de
lhorlogerie lourde. La technologie tait dabord de la mcanique de prcision,
agrmente dune part de plus en plus importante dlectromcanique
(la technologie relais et les totalisateurs).
Le
rseau commercial avait un rle primordial, dabord parce que la majorit
des systmes tait place en location et ensuite parce que les clients
avaient besoin dassistance technique pour tirer partie des machines. Les
techniciens de Bull ralisaient la plus grande partie de la programmation
des ensembles mcanographiques en piquant les tableaux de connections.
Au
dbut des annes 1950, Bull avait complt sa gamme doutils mcanographiques
avec une calculatrice lectronique le Gamma 3, qui saffranchissait des
limitations apportes par la calculatrice lectromcanique sur le dbit
des ensembles mcanographiques.
La
mcanographie classique souffrait cependant de plusieurs
inconvnients :
Beaucoup
de travaux se trouvaient concentrs en fin de mois et danne ce qui
impliquait gnralement un dimensionnement de lquipement pour les priodes
de pointe. La vitesse de lecture des cartes et dimpression tant limite
150 cartes ou lignes par minute, la seule solution tait de faire
coexister plusieurs quipements sur un site, ce qui posait des problmes
dexploitation difficiles pour synchroniser les changes de fichiers entre
quipements.
Certaines
applications chez les clients (spcialement les banques et assurances car les
impts et les abonns des
services publics ntaient pas encore totalement mcaniss) ncessitaient
de gros fichiers dpassant les capacits des trieuses et autres
interclasseuses.
Ces
problmes recevaient potentiellement une solution en mettant les fichiers
permanents sur bandes magntiques, solution dj en service aux tats-Unis
depuis le dbut des annes 1950 avec les machines UNIVAC. Bien entendu
lactionnaire de rfrence de Bull (les Papeteries Aussedat) ne pouvait
pas ne pas hsiter devant une solution qui pouvait tarir une source
importante de ses profits. Seule une solution combinant matriel cartes et
bandes magntiques lui tait acceptable, dautant plus que les
convertisseurs utiliss par Univac posaient bien des problmes pour les
petits fichiers. La solution mixte (cartes et bandes) fut aussi retenue par
IBM dans ses systmes 702 et 705 qui commenaient apparatre lpoque
de conception du Gamma 60.
La
technologie tubes vide de la calculatrice Gamma 3, mme miniaturiss,
ntait pas sans poser des problmes de cot et de fiabilit. La
technologie transistors commenait en 1955 apparatre avec des
avantages dencombrement, de fiabilit et de dissipation calorifique, sinon
de prix lpoque. Bull, ntant en rien li aux fabricants de tubes
(tels CSF ou Philips), pouvait facilement faire le choix du transistor
quelle avait effleur dans son utilisation des diodes semi-conducteurs
dans le Gamma 3. Ce choix du transistor tait quand mme un pari car la SEA
franaise et des constructeurs japonais croyaient lpoque davantage
aux technologies magntiques (plus fiableset plus encombrantes, mais on ne
parlait pas lpoque dintgration des circuits)
Au
milieu des annes 1950, les constructeurs amricains avaient commenc
abandonner diverses solutions de technologies mmoires pour se concentrer
sur les tores magntiques. Les tores, bien que posant des problmes de cot
de main duvre pour leur tissage, permettaient une grande fiabilit et un
temps daccs bien plus rduit que les technologies alternatives (lignes
retard, tube de Williams). Les mmoires tores saccommodaient bien
dune logique parallle (telle quinitialement suggre par Von
Neumann). Elles permettaient en particulier de saffranchir de la programmation
(type Harvard) des tableaux de connexions et de nourrir toutes les spculations
nes dans les annes 1950 sur les machines auto-modifiables et
intelligentes.
Jusque
l, lapproche de Bull ntait gure diffrente de celle de
IBM-Poughkeepsie ou de RCA. Cependant, Bull ntait pas un leader dans ces
technologies (bandes magntiques et mmoires tores avaient t conues
aux USA) et pensait devoir consolider sa position par des innovations
conceptuelles. Parmi celles-ci, ne de lexprience de la mcanographie,
lide simposa dune planification centralise de lexploitation de
latelier mcanographique alors compos dun ensemble de plusieurs
machines oprant en parallle et difficiles synchroniser. Une mmoire
commune stockant la fois les programmes locaux et la synchronisation de
lexploitation de ceux-ci semblait rsoudre le problme de la
planification des travaux, des tableaux de connexions amovibles et des paquets
de cartes rpartir entre machines.
Les
machines synchroniser taient les unislecteurs de bandes magntiques
(ou de tambours), les lecteurs et perforateurs de cartes, les imprimantes et
les calculatrices. Lanalyse des besoins les plus complexes des tableaux de
connexions de tabulatrices-imprimantes conduisit la conception dun vritable
processeur spcialis : le Traducteur.
On
voit se dessiner larchitecture du Gamma 60 qui ne doit peu prs rien
aux machines IBM comme le 704, conu autour de la rsolution de problmes
scientifiques aux calculs longs et squentiels, ni mme au Gamma ET dont la
diffusion et lutilisation en scientifique est peu prs contemporaine de
la conception du Gamma 60. Bien entendu, qui peut le plus peut le moins, le
Gamma 60 fut dot dune unit arithmtique dcimale comme le Gamma ET et
se porta candidat aux mmes applications.
Design
logique.
Les
objectifs initiaux conduisaient interconnecter les diffrentes machines mcanographiques
(y compris les nouveaux drouleurs de bande magntique) entre elles et en
assurer une administration centralise. Les performances des nouvelles
technologies (et en particulier de la mmoire tores) semblaient autoriser
une conomie de cot grce au partage de matriel entre les diffrents lments.
Outre les appareils (bandes, cartes, imprimantes) dont le fonctionnement tait
naturellement asynchrone, l'ide de conserver un fonctionnement asynchrone
pour le calculateur arithmtique et ce qui deviendra le traducteur tait
naturelle.
L'tude
de l'architecture du systme conduisit faire du contrleur de mmoire (distributeur
de quantits) et de son protocole d'accs le centre du systme. Toutes
les fonctions du systme furent construites sur cette base.
Les temps de traitement des oprations d'informatique de gestion taient, malgr la transistorisation, relativement lents par rapport au cycle de mmoire centrale en particulier les fonctions portant sur des structures longues d'information et sur les oprandes numriques de grande prcision. C'est ainsi que le traducteur, le calculateur arithmtique, le comparateur furent construits comme des "lments" indpendants et asynchrones au mme titre que les contrleurs de priphriques.
L'organisation
des traitements d'informatique de gestion se faisait dj en UT units
de traitement (que l'on appellera plus tard job steps) dont le
droulement soit tait ncessairement squentiel soit tait susceptible
d'tre excut de manire asynchrone. L'ide qui vint aux concepteurs du
Gamma 60 tait d'exploiter les possibilits de fonctionnement autonome des
"lments" pour pouvoir excuter les UT potentiellement
asynchrones en "simultanit".
La
gestion de toutes les phases asynchrones des machines au profit d'UT
asynchrones tait confie un "lment" spcialis : le
distributeur de programmes implant dans l'unit centrale mais oprant de
manire identique aux autres lments.
Le
distributeur de programmes interprte les instructions centrales ou
canoniques qu'il lit en mmoire centrale et qui sont essentiellement des
instructions de "mise au travail" d'un autre lment et de
branchement (inconditionnels ou conditionnels sur les catnes qualitatifs -
statut des oprations des autres lments). Outre la mmoire centrale, le
distributeur peut accder aux registres des autres lments.
La
mise au travail (ou l'arrt) des "lments" se fait l'aide
d'une instruction de "coupure" qui prfixe un bloc de commandes
comprenant des commandes (directives) spcifiques de l' "lment".
Au pralable, des adresses en mmoire centrale avaient t charges dans
des registres RAQ du distributeur de quantit (spcifiques de l' "lment").
Cette instruction de coupure a en fait pour effet de mettre en queue la requte
dans une chane de reprise dont un maillon se trouve dans chaque bloc de
commandes. Le distributeur de programmes passe ensuite sur d'autres fonctions
asynchrones faisant l'objet d'autres DTI. Ce sont le plus souvent des
notifications de fin d'opration asynchrone.
De
faon permettre les traitements asynchrones l'initiative du programmeur
- et non pas simplement l'initiative de l'oprateur du pupitre - une
instruction de "simu" reprsente l'quivalent de la coupure mais
le programme se poursuit dans le distributeur de programmes qui peut mettre au
travail d'autres "lments".
L'adresse
de retour en fin de directive est range dans un registre RAP de l'lment.
Le
distributeur de programmes est lui-mme un "lment" et accde
la mmoire centrale banalise via le distributeur de quantits.
Plus
tard, certains programmes utiliseront la "coupure sur lment
virtuel" des fins de synchronisation des processus logiciels, voire
des traitements de listes.
Les
lments centraux sont tous de types diffrents. Aucun Gamma 60 ne fut
construit avec par exemple deux calculateurs arithmtiques bien que rien ne
l'interdise dans l'architecture. C'est un abus de langage que d'attribuer au
Gamma 60 le rle de premier multiprocesseur de l'histoire. Les types d'lments
centraux sont le calculateur arithmtique, le comparateur gnral, le
comparateur logique et le traducteur. Faute d'analyse pralable des besoins
(la mtrologie du logiciel qui a amen la conception des architectures
postrieures 1975) la spcialisation des fonctions et les caractristiques
des lments centraux n'ont pas t dfinies de manire tout fait
rationnelle.
Le
Gamma 60 n'tait pas destin aux applications scientifiques (militaires ou
civiles) et une impasse a t faite sur le calcul binaire grande prcision,
l'poque le calcul matriciel. Un calculateur arithmtique binaire avait
t promis un grand utilisateur mais n'a pas t construit. Le calcul
de fonctions trigonomtriques ne semble pas non plus avoir t envisag.
Le
calculateur arithmtique oprant sur des oprandes en dcimal
flottant est l'hritier du Gamma 3. Le dcimal flottant avait surtout pour
lui d'tre directement compatible avec les appareils d'entres-sorties (les
nombres sur carte perfore n'affaiblissaient pas la rsistance physique de
la carte et l'on conomisait le temps de conversion binaire dcimal qui
aurait encore alourdi la fonction du traducteur). Le calculateur arithmtique
possdait un oprateur parallle sur 80 bits et traitait des oprandes sur
48 bits.
L'indpendance
du calculateur logique semble avoir t due l'importance donne
cette poque l'algbre de Boole et ce dont beaucoup rvaient,
celle de l'intelligence artificielle. Il faut noter cependant que
l'organisation des donnes en structure de listes (telle que le sous-entend
McCarthy dans LISP) est seulement contemporaine du Gamma 60 et n'tait pas
connue des designers, mme si ceux-ci en laborrent un mcanisme spcialis
dans la gestion des tches (cf. chanes de reprise).
Le
comparateur gnral a, outre les instructions de comparaison, la
fonction d'effectuer des MOVE de mmoire mmoire, ce qui
justifiait probablement son fonctionnement asynchrone. Il tait fond sur un
oprateur srie.
Le
traducteur tait essentiellement l'hritier de la logique distribue
des quipements mcanographiques en allgeant la fonction des lments
cartes imprimantes, en admettant le support des cartes IBM (pardon, des cartes
Hollerith). Le traducteur tait en fait un processeur distribu avec
ses propres programmes (clichs) et des traitements complexes de
caractres pour la mise en page des tats d'imprimantes.
Les
contrleurs de priphriques semblent plutt allgs quand on les
compare aux systmes plus rcents (post-1964) et furent essentiellement
consacrs l'optimisation des dbits de donnes et aux fonctions temps rel
imposes par la mcanique. La solution retenue par le Gamma 60 de ne pas
rendre les conversions unit-record bandes magntiques des phases
obligatoires (comme le faisaient l'Univac I qui recourait des
convertisseurs off-line, et l'IBM 702 qui ne disposait pas des canaux simultans
seulement invents sur le 705) tait considre juste titre comme un
atout.
Un
des problmes les plus pineux du design du Gamma 60 fut la rduction des
risques de fiabilit introduits par les technologies nouvelles :
transistor, mmoire tores, bande magntique. Le dveloppement par
Bull de toute la partie lectronique des ensembles utilisant ces technologies
reprsenta un challenge impressionnant quand on considre que, part un
peu chez SEA, la Compagnie des Machines Bull ne pouvait gure recruter des
ingnieurs ayant dvelopp ces technologies et devait redcouvrir caractristiques
physiques et solutions aux problmes rencontrs. L o IBM bnficiait
du projet SAGE et du support de contrats de la NSA, Bull ne disposait pas et
ne recherchait gure de contrats publics sur ces technologies.
En
dehors des mcanismes strictement lis la technologie, de nombreuses
stratgies de redondance durent tre incorpores la logique et contriburent
l'instabilit du design. Elles contriburent une augmentation considrable
du volume de la machine et, indirectement, en augmentrent la probabilit de
pannes.
Les 24 plans de la mmoire tores furent complts par 3 plans de correction d'erreurs, portant la largeur du contrleur de mmoire 27 bits. Le calculateur arithmtique fut dot de circuits de calcul de preuve. La totalit de la machine et non pas seulement les "lments" fut synchronise par un distributeur de rythmes qui devait porter sur des longueurs trs grandes et des circuits de rgnration des signaux horloge dans chaque cabinet. L'hypothse d'un "worst case design" o tous les transistors taient supposs dvier dans le mme sens des performances nominales fut prise, ce qui compliqua encore la distribution des signaux d'horloge. La technologie de base fut ralentie peu prs de moiti pour tenir compte de ce design, conduisant une baisse de performances quivalente. Il est vrai que des rgles de design moins contraignantes auraient entran davantage de corrections sur les chanes longues et vraisemblablement des mises au point en clientle encore plus nombreuses. Il faut noter la prsence sur le Gamma 60 dun nombre important de points de mesure et de potentiomtres de marge qui certainement en augmentrent les cots et impliquaient la prsence quasi permanente dingnieurs de maintenance sur le site.
Les ingnieurs des tudes Bull ignoraient en 1955 ce quon appela plus tard la computer science ou plutt en taient rests au rapport Von Neumann sur EDVAC. Ce nest quen 1961 que le software fut enseign Bull par le professeur Perlis, mais ctait dj prs de la fin de laventure. La plupart de ces ingnieurs ne parlaient pas anglais et taient plutt fiers de lignorer. Et surtout, la reproduction des documents par photocopie ne se rpandit qu la fin des annes 1960 et la possession dun document technique amricain ne servait qu augmenter le pouvoir de son dtenteur, privant ses collgues dune comparaison avec le projet en cours. Les services technico-commerciaux furent, eux, plus sensibles aux demandes des clients et cest en leur sein que furent dvelopps ou conus la plupart des dveloppements de logiciel de base, en particulier au CNCE (centre national de calcul lectronique). Cest ainsi que furent dvelopps un moniteur squentiel, un compilateur Algol, que fut pens lAP3 Malheureusement, ces dveloppements ne commencrent que trs tardivement et furent plutt mal coordonns avec les architectes des tudes.
Le
logiciel, on disait encore software, sous la forme qu'il revtait
la fin des annes 1950, c'est dire un superviseur d'entres-sorties et
un moniteur d'enchanement des travaux, ne fut entrepris qu'aprs la ralisation
du matriel et les commandes des clients. Seuls taient drivs du Gamma 3
le concept de sous-programmes standard (ouverts ou ferms) pour le tri ou des
fonctions scientifiques. Le problme classique du passage des paramtres ou
du rangement de l'adresse retour dans les procdures ne fut aussi abord
qu'aprs la ralisation des prototypes. La solution des lments virtuels
pour appeler une procdure tait tout le moins lourde. Pourtant ce problme
tait connu et rsolu en Grande Bretagne avec Maurice Wilkes. Les
"sous-programmes ouverts" reprsentaient l'insertion "en
ligne" de code et taient souvent prsents comme des solutions prfrables
aux "procdures", probablement en hritage des programmes par
cartes. On comprend bien que le Gamma 60 est arriv trop tt pour un
compilateur COBOL, mais le retard dcouvert avec limportation du RCA 301
et encore plus tard avec le GE-400 contraste avec la confiance que Bull la
fin des annes 1950 avait dans la prennit du Gamma 60.
Le Gamma 60 inaugure en un certain sens l'architecture des processeurs superscalaires[2] des annes 1990 o le rle de la mmoire centrale est remplac par celui du (ou des) cache. Il se rapproche aussi des architectures EPIC[3] par le fait que la simultanit dexcution et la cohrence des accs mmoires est place sous la responsabilit du programmeur. Cependant cette prmonition tait certainement inconsciente car l'existence mme d'un systme logiciel (systme d'exploitation, langages standard indpendants de l'architecture machine) ne semblait pas tre souponne au moment de la conception.
Par
contre, la conception de la simultanit des entres sorties par une
gestion asynchrone devance un peu l'adoption gnralise par IBM de la
solution inaugure sur la 709. On peut cependant regretter que le concept
d'un IOC grant sparment du processeur central et regroupant les
registres des lments priphriques[4]
n'ait pas t invent sur le Gamma 60.
Par
ailleurs, s'il tait assez raisonnable de lancer un programme multi-threads
sans aucune protection entre ces tches (aprs tout, les systmes actuels
sous UNIX et Windows XP en font autant), il tait pour le moins imprudent
d'annoncer que ces programmes pouvaient tre indpendants. Le Gamma 60
n'avait pas de systme de protection de mmoire et les chanes de reprises,
outils essentiels du dispatching des programmes, taient exposes tout
programme malveillant ou simplement erron. De mme, l'absence d'un mode matre
(superviseur) autorisait l'accs aux "lments priphriques"
sans aucun contrle.
Le
Gamma 60 tait limit en taille mmoire une capacit de 32K mots de 24
bits -il faut le dire dune taille comparable celle de la concurrence-.
Il n'envisagea pas de recourir au concept de mmoire virtuelle introduit dans
le Ferranti Atlas pourtant contemporain. Ses tambours n'taient destins
qu'au stockage de programmes ou au stockage de petits fichiers squentiels.
La longueur des mots, infrieure ses comptiteurs scientifiques IBM et
Univac[5],
aurait probablement d tre tendue pour faire bnficier le systme de
ce concept.
Les
concepteurs du Gamma 60 inventrent cependant bien des concepts de lan
2000 sans tre conscients de leur porte.
En pratique, il ntait pas possible de tirer parti de toutes ces inventions darchitecture avant les annes 1980. La mmoire centrale du Gamma 60, 32K catnes, tait de la taille dun cache L2 daujourdhui (et 10 000 fois plus lente). La mmoire paraissait rapide devant la lenteur des calculs. Les trois dcennies suivantes renversrent la vitesse relative de la mmoire et du processeur avant de retrouver un rapport voisin sur la base du cache.
La
capacit thorique du Gamma 60 recevoir plusieurs processeurs de mme
type ne fut jamais exploite, pas plus que ne fut dvelopp un calculateur
flottant binaire ncessit par les traitements SIMD
(traitements matriciels sur tableaux de donnes) graphiques ou autres.
Le
concept de multiprogrammation qui consistait dans les annes 1960
effectuer simultanment des programmes disjoints rentra au chausse-pied dans
le Gamma 60 qui navait pas t conu pour le fonctionnement de
programmes indpendants en cours de debugging. Le manque de dispositif
de protection de mmoire tait pour cela un obstacle plus quimportant.
Seuls en pratique les programmes cooprants pouvaient y accder
en simultanit. Les premiers programmes multi-threads apparurent
dans les programmes transactionnels de 1975.
La
compilation dun code source pour une architecture EPIC permettant un
fonctionnement automatique de la simultanit na vu le jour qu la
fin des annes 1990 aprs un dveloppement qui excde la dure de vie du
Gamma 60. Inutile de reprocher aux concepteurs de 1955 qui ignoraient souvent
mme jusquau concept de compilateur, de ne pas lavoir dvelopp.
Quil
soit permis de stonner que ce systme ait finalement fini par tre
construit et mme mis en service la satisfaction dune grande poigne
de clients alors quil aurait pu accompagner certaines machines exprimentales
de Univac (LARC), Burroughs (Illiac), IBM (SSEC, NORC), SEA (Dorothe, 1500)
dans le respect des archologues de lhistoire de linformatique.
Probablement,
le Gamma 60 aurait pu mieux fconder les quipes de dveloppement de Bull,
comme la fait le Stretch IBM, si la dbcle financire de la Compagnie
nen avait entran le dmembrement. Par contre, cest davantage le
choix stratgique de ne pas avoir vu que linformatique avait cess de
ntre quune automatisation de la gestion taylorienne des entreprises et
la fuite en avant dans une gestion aventureuse du parc (obsolescence programme
du matriel classique ) qui ont t lorigine de la
chute de 1963 plus que les cots de R&D du Gamma 60.
[1]
La ligne GCOS 64 / GCOS 7
[2] des microprocesseurs RISC et du Pentium et de ses successeurs.
[3] du microprocesseur Itanium de Intel
[4] plutt que de les distribuer dans les lments centraux.
[5] La srie 700 scientifique de IBM et lUnivac 1100 taient dots de mots de 36 bits.
Bibliographie:
L'aventure Gamma 60 de Jos Bourboulon & co chez ditions Lavoisier 2005