Bull Gamma 3Bull Gamma 3 Vue intérieure du Gamma 3, montrant les alimentations sur la gauche, et les tiroirs de circuits électroniques sur la droite
Le Gamma 3 est un calculateur électronique conçu par la Compagnie des Machines Bull et commercialisé à partir de 1952. Initialement conçu comme accélérateur électronique pour les tabulatrices électromécaniques, à l'instar de l'IBM 604, il fut progressivement enrichi de nouveaux dispositifs jusqu'à devenir un ordinateur de première génération (Gamma AET, 1955, puis ET, 1957), plus précisément une machine Von Neuman à programme enregistré[1]. Les termes d'ordinateur et d'informatique n'existant pas encore, Bull désigna le Gamma ET comme un "ordonnateur". Au cours des dix ans de sa carrière, cette machine considérée comme charnière permis la transition entre la mécanographie et l'informatique, et entre le calculateur et l'ordinateur[2]. Le Gamma 3 fût un succès commercial, avec plus de 1200 unités produites, faisant également de ce dernier le premier ordinateur produit à plus de 1 000 exemplaires[3],[4]. HistoriqueJusqu'aux années 1950, la Compagnie des Machines Bull, à l'instar de son rival IBM, commercialise majoritairement des tabulatrices à carte perforée destinées à la gestion des stocks, la paye, et la comptabilité. Ces tabulatrices réalisent les opérations arithmétiques via une série de roues de totalisation, incrémentées par un dispositif électro-mécanique. Seule l'incrémentation, et donc l'addition, est supportée; les soustractions et multiplications s'avèrent donc particulièrement lentes[5]. Afin d’accroître la vitesse de calcul, et donc de ne pas retarder la lecture des cartes perforées lors des opérations plus complexes, un accélérateur pouvant s'affranchir des limites électro-mécaniques devient nécessaire. À partir de 1949, la Compagnie Bull s'intéresse aux tubes à vide pour leur vitesse de commutation par rapport aux roues totalisatrices et aux relais électromécaniques. Le calculateur est conçu à partir de circuits logiques comprenant environ 400 tubes, 8000 diodes au germanium et des registres de 48 bits constitués de lignes à retard électriques, afin de réduire la dépendance aux tubes électroniques, plus fragiles[6]. L'ensemble est cadencé par une horloge à une fréquence de 281 kHz[7], une vitesse alors significativement supérieure aux 50 kHz de l'IBM 604, et plusieurs ordres de grandeur plus rapide que les dispositifs électromécaniques. La vitesse d'exécution pour l'addition de deux nombres binaires varie entre 0,6 ms et 10 ms, avec une vitesse moyenne de 2 ms[7]. Le Gamma 3 est connecté à la tabulatrice par un câble branché en lieu et place de son tableau de connexion (instructions du programme); le programme est donc installé sur le Gamma 3 plutôt que sur la tabulatrice. Néanmoins, si le Gamma 3 est programmable par un tableau de connexion amovible analogue à ceux des tabulatrices, il n'en reste pas moins un périphérique de ces dernières et non l'inverse. De plus, bien qu'électronique, binaire et programmable avec un jeu d'instruction Turing-complet, le Gamma 3 ne pouvait fonctionner par programme enregistré et sa programmation dépendait du tableau de connexion. Une première évolution vers l'ordinateur apparaît avec le Programme Par Carte (PPC), apportant la possibilité d’exécuter un programme chargé par carte perforée, plutôt que câblé sur un tableau de connexion. Ce concept est également expérimenté par IBM avec l'extension CPC (Card Programmed Calculator) ajoutée au 604[8]. Néanmoins, bien que cela permette le fonctionnement de programmes de taille arbitraire plutôt que limités au nombre de connexions du tableau de branchement, le programme n'est toujours pas exécuté en mémoire vive, sa vitesse d'exécution dépend donc de la vitesse de lecture des cartes perforées du programme. Le Gamma 3 connaît une nouvelle mise à jour en 1955 avec l'apparition d'un tambour magnétique d'une capacité de 49 ou 98 ko (64 ou 128 pistes de 8 blocs de 16 mots de 48 bits)[9],[10], quantité remarquable pour l'époque. Jusqu'à trois instructions pouvaient être stockées par mot sur le tambour, permettant ainsi d'accueillir 24 576 ou 49 152 instructions[11]. Cette nouvelle version était appelée Gamma 3 A.E.T (Armoire Extension Tambour, ou Extension Tambour). Les programmes étaient enregistrés dans la mémoire de l'A.E.T. par groupes de 48 instructions, appelés 'séries'. Lorsque nécessaire, une série était transférée du tambour vers un groupe de mémoire intermédiaire agissant comme un cache d'instructions, ce qui permettait à l'ordinateur de récupérer chaque instruction une par une et de les transférer dans son registre d'instructions. Il est intéressant de noter que les instructions, en particulier les adresses, pouvaient être modifiées dans l'unité arithmétique de l'ordinateur, tout comme n'importe quelle autre donnée. Cette capacité a ouvert la voie plus tard à l'adressage indirect ou indexé[11]. Le cache d'instructions a également résolu le problème rencontré avec l'IBM 650, qui nécessitait une optimisation de l'agencement des instructions sur le tambour pour éviter que sa latence ne ralentisse l'exécution du programme[12]. Avec la possibilité de charger et d’exécuter des programmes en mémoire, le Gamma ET (Extension Tambour) devient le premier ordinateur français[13]. La tabulatrice est désormais un périphérique d'entrée/sortie et le Gamma ET l'unité centrale. La mécanographie cède alors progressivement sa place à l'informatique pour le traitement de l'information[14]. Le Gamma ET se positionne en concurrent de l'ordinateur IBM 650, de conception très similaire. Le premier client à recevoir un Gamma 3 est le Crédit Lyonnais de Saint-Étienne en 1952. Le Gamma 3 et ET fût ensuite employé tant en informatique de gestion au sein de grandes entreprises, qu'en calcul scientifique, notamment au sein du CERN et CNRS alors naissants[15]. Bull ne traversa jamais l'Atlantique malgré son partenariat avec Remington Rand - Univac et la création d'une version "américanisée" disposant d'une alimentation électrique à 60 Hz[11]. Le Gamma 3 fût un succès commercial en Europe avec environ 1200 unités vendues, dépassant les ventes de l'IBM 650[16]. Le Gamma 3 étendu se comparait très favorablement à son concurrent : l'espace mémoire était quatre fois plus grand et permettait de stocker douze fois plus d'instructions, tandis que la vitesse de traitement était généralement plus élevée[11]. Ce succès a incité IBM à concevoir le modèle 1401 en réponse[16]. Organisation de la mémoireLe Gamma 3 comprend trois types de mémoires, toutes basées sur des mots de 48 bits ou de 12 caractères BCD Le premier type est constitué d'un groupe de sept registres au cœur du processeur. M1 fait partie de la Mémoire Opérateur, il sert d'accumulateur et est lié au circuit d'addition-soustraction. M2 sert d'accumulateur auxiliaire pour les opérations en double précision (96 bits). M3 à M7 sont des registres à usage général dénommées Mémoires Banales. Le transfert entre ces mémoires se fait par M1. M0 est un registre spécial lié à M1 et non accessible au programmeur. Outre ces registres génériques, le Gamma 3 comprend également six registres internes :
Afin de réduire le nombre de tubes électroniques, source fréquente de défaillances, les Mémoires Banales n'utilisent pas de bascules, mais des lignes de retard électriques[17]. Un second type de mémoire est appelé Mémoires Circulantes, qui agissent comme des tampons, car leur contenu est destiné à être échangé avec la mémoire tambour. Les Mémoires Circulantes, désignées de M8 à M15, sont implémentées à l'aide de lignes à retard magnétostrictives dans une armoire séparé dédié (l'Armoire ET). Ces huit mémoires sont regroupées par paires pour former quatre "groupes". Les groupes 0, 1 et 2 sont exécutables et désignés sous le nom de "séries", chaque série contenant un cache d'instructions de 48 instructions. Le panneau de connexion, s'il est utilisé, constitue la série 3. Cela sera utilisé au cours du cycle de vie de la machine pour fournir des extensions du jeu d'instruction. Le Groupe 3 agit comme un tampon d'entrée/sortie. Une armoire complémentaire dénommée "Ordonnateur" (ORD) peut également être ajoutée, fournissant quatre groupes supplémentaires numérotés de 4 à 7, contenant des données mais sans possibilité d'exécution. Enfin, la Mémoire Tambour sert de mémoire de masse, hébergeant à la fois du code et des données. Sur le Gamma 3, le code n'est pas exécuté depuis le tambour mais depuis les trois premiers groupes des Mémoires Circulantes (les séries). Bien que cela augmente la vitesse d'exécution, cela rend également les sauts de longue portée plus coûteux, car une page doit d'abord être transférée du tambour vers les mémoires MC à l'aide d'une instruction dédiée ("TB"). Le tambour est constitué d'un cylindre en duralium, long de 15 ou 30 cm, tournant à environ 2 750 tr/min. Il possède 64 ou 128 pistes de 8 blocs, chaque bloc contenant un groupe, permettant ainsi de stocker jusqu'à 1 024 séries, soit 49 152 instructions[11]. La densité d'enregistrement approchait 300 bits par pouce, utilisant la modulation de phase, ce qui était une prouesse à cette époque[11]. Jeu d'instructionsUne instruction Gamma 3 est constituée d'un mot de 16 bits composé de quatre chiffres hexadécimaux : un code d'opération (TO, Type d'Opération), une adresse (AD), un ordre de début OD, et un ordre de fin OF. Le champ TO spécifie le type général d'instruction, tandis que les trois autres champs agissent comme des paramètres[10]. OD et OF définissent des positions, qui peuvent être soit des chiffres en mode binaire, soit des caractères en mode BCD. Un total de 29 mnémoniques forment le jeu d'instructions. Aucun assembleur, souvent appelé autocodeur à l'époque, n'existait pour le Gamma 3, encore moins de langages de haut niveau comme Fortran qui devaient encore être inventés. À la place, le programmeur devait d'abord créer un schéma du programme, le compléter avec des mnémoniques, convertir manuellement les mnémoniques en code machine en utilisant un tableau, puis écrire le code résultant sur une feuille de codage pour vérification avant de le perforer sur des cartes. Une fois le programme chargé dans la mémoire du tambour, le pupitre opérateur permettait au programmeur d'examiner et de déposer des données en mémoire, ainsi que de contrôler le flux du programme à des fins de débogage[10]. Les instructions résident dans les série 0 à 2 hébergée sur les Mémoires Circulantes de l'armoire ET, où le code est récupéré et décodé par le processeur (l'armoire Gamma 3). Les programmes de plus petite taille peuvent être câblés directement sur le tableau de connexion, quoiqu'il était plus commode de les perforer sur des cartes, puis les lire et les transférer dans la mémoire tambour pour les exécuter comme programme enregistré. Le tableau suivant décrit les instructions avec leurs mnémoniques et les codes machine associés :
Le tableau de branchement étant accessible via la série 3, certaines extensions et sous-programmes en tirèrent partie en étant fournis sous forme de tableau de branchement pré-câblé. Un tel exemple est l'extension "PDF" (Point Décimal Flottant), qui ajoutait deux instructions supplémentaires : BD et DCC, permettant de faciliter la manipulation des nombres à virgule flottante[18]. Le jeu d'instruction détaillé accompagné d'exemples peut encore être trouvé de nos jours dans des cours de programmation d'époque[10],[19]. Sur la fin de la carrière du Gamma 3, une équipe d'étudiants dirigée par le professeur Pierre Bacchus de l'Université de Lille développa un langage haut niveau pour ce dernier. Ce langage, appelé Auto-Programmation Bull (APB), combinait des éléments de l'assembleur du Gamma 3 avec des éléments structurés de ce qui deviendra l'ALGOL 60[20]. Il s'avera assez populaire au sein du groupe d'utilisateurs du Gamma 3 et sera plus tard porté sur l'IBM 1620[20]. Particularités historiques et techniquesLe Gamma 3 possède une ALU bi-mode, pouvant fonctionner en mode décimal (mots de 12 caractères BCD) pour l'informatique de gestion, ou binaire (mots de 48 bits) pour l'informatique industrielle et scientifique[17]. Deux instructions, CB et CD, permettent de passer de l'un à l'autre. Le Gamma 3 fut pourvu en option d'une bibliothèque virgule flottante câblée, peu commune dans les années 1950. Ce modèle dénommé 3M était destiné au calcul scientifique et finit par être intégré par défaut au Gamma ET[11]. Les nombres à virgule flottante sont représentés sur 48 bits. Le bit le plus significatif est utilisé pour le signe, 8 bits sont utilisés pour l'exposant, et les 39 bits les plus significatifs sont réservés pour la mantisse[10]. Les premiers cours de programmation universitaires en France furent dispensés sur des machines Gamma 3 ET à la fin des années 1950 par le professeur Louis Bolliet, marquant ainsi la transition des formations fournies par les fabricants vers un cadre académique. Ces cours sont aujourd'hui disponibles en ligne[21] et ont servi à la création de simulateur de programmation. Le Gamma 3 fût, avec l'IBM 650, le premier ordinateur produit à plus de 1 000 exemplaires[3]. PréservationQuatre exemplaires du Gamma 3 existent encore aujourd'hui. L'un est exposé au Technikum à proximité de Frankfort[22], un autre à la Fédération des Équipes Bull à Angers[23], où il était fabriqué, et un autre au Museo degli Strumenti per il Calcolo à Pise. Enfin, l'ACONIT à Grenoble héberge un exemplaire unique du Gamma ET[9]. Voir aussiGalerie
Références
Références externes
|
Portal di Ensiklopedia Dunia