a/ Le G 60 est fondamentalement un système à multiprogrammation
Le central peut demander par une coupure la mise au travail de lun des nombreux éléments qui lui sont connectés (entrée-sortie, mémorisation, calcul ) , garnir les registres dadresse de cet élément et lui envoyer une directive dexécution puis se libérer à la recherche dun autre travail. Pendant ce temps, lélément exécute sa directive en accédant directement à la mémoire centrale; puis à la fin, fournit un mot qualitatif de 24 bits analysable en central par des branchements.
Plusieurs programmes (ou branches de programmes lancées par des coupures spéciales: SIMU ) peuvent se dérouler en même temps et, le cas échéant, provoquer au niveau du central, de chaque élément concerné et aussi de séquences protégées ( éléments virtuels ), la gestion de files dattente matérialisées par les chaînes de reprise.
Les instructions correspondant aux 4 fonctions ci-dessus sont codées en machine ( code A ) dans un mot de 24 bits avec la structure suivante:
- T.O. 2 bits
- TOC 5 bits
- FA 2 bits
- Adresse 15 bits
Ladresse autorise pour la mémoire centrale une capacité maximale de 32768 mots soit environ 98 KOctets.
Cycle mémoire = 10 ms
b/ Les éléments connectés, regroupés en 5 classes correspondant à des niveaux de priorité décroissants, sont les suivants:
# Classe 0 : Le pupitre (voir plus loin le paragraphe d )
# Classe 1 : Les 4 éléments de traitement, originalités du Gamma 60,
et particulièrement le traducteur qui transforme » les données dun format à un autre grâce à des clichés, sortes de microinstructions.
# Classe 2 : Les éléments de mémorisation, à savoir:
Les unisélecteurs ( jusquà 10 ) regroupant jusquà 48 dérouleurs de bande magnétique ( ruban ), avec lecture dans les 2 sens.
Longueur : | 730 m | Durée: | 6 mn 20 s | Capac.: | 1,6 MM |
1100m | 9 mn 30s | 2,4MM |
Les tambours ( jusquà 4 ) adressables
temps daccès moyen : 10 ms capac.: 26 KM
# Classe 3 : Les éléments dentrée-sortie ( jusquà 20 ), connectés à un multiplexeur ( 2 maximum ), à savoir:
Les lecteurs & lecteurs-perforateurs de cartes ( jusquà 4 ) :300 cartes / mn
Les imprimantes ( jusquà 8 ), avec simple ou double entraînement : 300 ou 600 lignes / mn
Les lecteurs-perforateurs de bande
Les machines à écrire, etc..
c/ Compte tenu
-de la nouveauté et de loriginalité de son architecture,
-des nouvelles technologies utilisées ( logique à transistors, mémoire à tores, dérouleurs de bandes )
-du facteur déchelle important à partir du Gamma 3 Tambour
il était naturel dinsister sur la sécurité.
Sans parler de tous les contrôles statiques et ajustements technologiques dans les armoires et les appareils et éléments, qui rendront les mises au point lourdes, on insistera sur la présence de contrôles dynamiques sur les transferts et les traitements, matérialisés par des bits supplémentaires dans les mémoires, les registres et les canaux, et nécessitant des dispositifs de correction généralement programmés.
En particulier, le mot mémoire M compte 27 bits
M ( 27 ) = mot ( 24 ) + clé ( 3 )
les canaux mémoire utilisent un bit de plus en contrôle dimparité.
Les contrôles sont faits après chaque transfert et chaque directive, et après une relecture pour les éléments de classe 2 et 3.
d/ Un composant essentiel du Gamma 60 est le pupitre, interface obligé de lensemble Gamma 60 avec son utilisateur durant son exploitation -- sans négliger les visualisations sur les armoires et appareils et les manipulations des fichiers amovibles ( cartes, bandes, liasses, bobines ) -- .
Le pupitre physique comporte 4 zones:
La zone 1 assure la mise sous tension et hors tension du central et des éléments ( poussoirs et visualisations ).
La zone 2, en plus de la visualisation des incidents « clé », permet la gestion manuelle du central:
-- choix dun type de marche ( normal, arrêt sur chaque instruction, arrêt sur profil instruction, pupitre )
-- en marche pupitre, utilisation de poussoirs permettant la lecture et lécriture dun profil mot dans les registres centraux ou en mémoire à une adresse choisie, adresse et profil étant affichés en binaire par des commutateurs.
-- visualisation de tous les registres du central, y compris ceux qui concernent la mémoire et les éléments connectés.
-- présence de 6 commutateurs testables par programme.
La zone 3, en face du pupitreur, est la zone dexploitation normale du Gamma 60. Elle comporte:
-- un bloc de 8 fois 8 voyants, allumés ou éteints par des directives pour suivre évolution de 8 programmes !
-- un ensemble machine à écrire - lecteur-perforateur de bande auquel sont
associés clavier de commande et visualisations, ensemble pouvant fonctionner:
- soit en autonome avec les commandes du clavier,
- soit en tant quélément du Gamma 60 -- un poussoir « Intervention opérateur » qui permet
- le lancement initial du Gamma 60
- ultérieurement, le lancement dun programme de gestion recevant puis exécutant des ordres issus du pupitreur via le clavier de la machine à écrire.
- réciproquement, le programme peut envoyer une directive à lopérateur particulièrement pour demander une manipulation sur un appareil ou une action sur détection dincident grave.
La zone 4 regroupe la visualisation de létat de fonctionnement de tous les éléments et appareils connectés.
Le pupitre est le seul élément capable deffectuer une interruption de programme prioritaire, les autres éléments devant se contenter de répondre à une sollicitation du central par programme.
Le calcul scientifique utilisait depuis quelque temps les concepts de programme, de sous-programme, ceux de langages (langage machine binaire, langage machine symbolique, et langage synthétique: Fortran en préparation ). Ainsi étaient apparues, sur cartes ou sur bande perforée et ensuite sur support magnétique, des bibliothèques:
-- de sous-programmes standards
virgule flottante, double précision, fonctions trigonométriques,...
-- de programmes scientifiques standards
calcul matriciel, équations linéaires,...
-- de programmes utilisateurs
-- de programmes de base, auxiliaires des programmes utilisateurs
chargement, traduction, assemblage, vidage ( perforation, listings )
des programmes et sous-programmes,...
Le Gamma 3 Tambour ( comme ses concurrents ) a utilisé la même approche pour les problèmes de gestion, comme le feront tous ses successeurs jusquà aujourdhui.
Il faut noter que pour une nouvelle famille dordinateurs et donc le Gamma 60, il est nécessaire de recréer et éventuellement de compléter toutes ces bibliothèques de base.
Sorti du néant, ce logiciel allait se construire à partir du code dinstruction (code A) et des performances physiques des différentes parties, et en profitant des expériences acquises surtout sur le Gamma 3 Tambour -- ce dernier étant utilisé dailleurs pour créer sous forme adéquate ( code A, nombres,... ) des supports lisibles sur Gamma 60 ( bandes, cartes ) .
Pour simplifier, on distinguera 3 phases de développement:
1° -- Création progressive dun logiciel de base élémentaire mais complet
matérialisé sur bandes programmes
2° -- Exploitation du précédent et création dun logiciel plus élaboré
3° -- Exploitation et extension du logiciel précédent
Ce logiciel sera subdivisé daprès les différentes fonctions réalisées:
a -- Contrôle et réception du Gamma 60 physique
b -- Exploitation du Gamma 60
c -- Programmation du Gamma 60
d -- Programmes standards
e -- Contrôle et réception du logiciel de base
Le logiciel de base fourni au client avec le matériel est b + c + d ;
les divisions a et e , malgré leur importance, ne seront pas analysées dans cette brève histoire du temps.
.
Le premier langage de programmation, nommé code B, est la traduction instruction par instruction du code machine ( code A ); il utilise une structure fixe, favorable à la perforation des cartes et à leur contrôle visuel.
-- colonnes complémentaires pour les commentaires du programmeur
-- adjonction dun numéro de ligne, nécessaire pour les renvois.
-- valeurs symboliques parlantes pour T.O., C.C., F.A.:
exemples: ARIT, PUPI, SIMU, STOP, ADD, CMP,...
-- adresses (et longueurs, constantes,... ) en décimal
Une précision sur la fonction dadresse ( FA )
- s pour substitution
- r : relatif (instruction) ou m : mémoire (donnée )
au lieu de la différentielle du code A
.Le transcodage ou traduction en code machine dun programme ainsi écrit est élémentaire; mais à moins de créer un programme monolithique en adressage différentiel, il est plus commode pour le programmeur de découper son programme en fractions de fonctions spécifiques; il procède alors en 3 étapes:
-- écriture de chaque fraction sans définir les liaisons entre elles
-- implantation du programme en mémoire
-- ajout des paramètres de liaison ( adresse mémoire ).
Lexécution des 2 dernières étapes peut être confiée à un programme (assemblage), à condition dans la première étape de donner pour chaque fraction ( sous-programme ) une valeur symbolique à chaque entrée et sortie.
Le sous-programme sécrit instruction par instruction en code B , mais avec des extensions qui ont demandé une nouvelle feuille de programmation, qui rajoute quelques facilités telles que la possibilité dintroduire les constantes ( clichés, nombres,...) sous une forme pratique codée en colonne T.
Le sous-programme est alors transposé, vérifié, au besoin corrigé, listé et rangé dans une bibliothèque - généralement sur bande - sous forme dun sous-programme assemblable, comportant des instructions et mémoires en code A ( avec des vides ) et une table dinconnues et de repères destinée à lassemblage.
Chaque Gamma 60 possède plusieurs bibliothèques de sous-programmes dont celle fournie par C.M.B. comportait début 61 plus de 300 composants concernant principalement des fonctions dérouleur, lecteur, imprimante et mathématiques.
Un programme est obtenu par la liaison de sous-programmes (et de zones ) par le programme dassemblage, exploitant:
-- une bibliothèque de sous-programmes
-- une feuille descriptive écrite en code C.
Le programmeur liste et numérote les sous-programmes - y compris les zones de manoeuvre ( tampon, zone de tri,...) - avec pour chacun la liste de ses inconnues ( X ). Il effectue alors pour chacune la liaison SPy.Xn = SPz.Rm ou laffectation SPy.Xn = constante dans les colonnes assembl.; il affecte au moins au premier sous-programme dans les colonnes distr une adresse dimplantation en mémoire .
Si toutes les inconnues sont affectées, le programme après assemblage sera exécutable, à condition davoir, dans les colonnes distr., indiqué le repère entrée du programme. et lié linconnue sortie du programme à un repère symbolique.
Mais la plupart du temps, un certain nombre daffectations ne pourront pas être faites à lassemblage, comme par exemple un numéro dappareil, un nombre darticles,...ou même une liaison vers un sous-programme résident du superviseur. Les inconnues correspondantes recevront dans les colonnes distr. un symbole approprié.
Si le programme est divisé en phases, chacune sera implantée et leur chargement prévu par une liaison au symbole de distribution approprié.
Le programme dassemblage, en tenant compte des implantations prévues, condensera les sous-programmes et les zones, effectuera les liaisons et les affectations validées et constituera une table des inconnues avec leurs symboles.
Létape suivante consiste, en fournissant au programme les valeurs manquantes (distribution), à le transformer en U.T. ( unité de traitement ) exécutable en machine.[ voir plus loin lexploitation].
Pour le développement des applications de gestion, il ny eut pas dautre langage que celui dassemblage, pour les raisons suivantes :
-- les utilisateurs durent utiliser le code B à lorigine
-- la vie du Gamma 60 fut courte
-- le développement du logiciel de base se concentra sur lexploitation
-- la définition dun langage de haut niveau comme COBOL en était à ses balbutiements
-- un tel langage sadaptait mal, surtout à lépoque, à larchitecture matérielle et logicielle du Gamma 60.
Par contre, pour les applications scientifiques, fut développé et exploité lALGOL 60, lointain ancêtre de PASCAL. Le développement dun langage plus sophistiqué, destiné à surclasser FORTRAN dI.B.M., dut être abandonné en cours, en raison de sa complexité et de sa nouveauté, mais surtout faute dutilisateurs.
Lexploitation du Gamma 60 est fondée sur sa gestion par lopérateur pupitre ou pupitreur au moyen dordres
Après lintervention opérateur ( I.O. ) et la réponse « Que désirez-vous? »,les ordres codés sur 4 lettres, sont entrés avec les paramètres adéquats; ils sont contrôlés puis exécutés si corrects et terminés par le message « Ordre exécuté ».
Ces ordres sont tout à fait similaires aux commandes MSDOS de MICROSOFT.
Pour lhistoire, on signalera les premiers pas du logiciel sur le prototype en début 1960.
-- sur la zone 2 du pupitre ( voir ci-dessus ), introduction en binaire, exécution en pas-à-pas, visualisations de contrôle de miniprogrammes tels que:
- introduction par le lecteur de bande du pupitre
- mise en service de la machine à écrire pour remplacer progressivement les fonctions matérielles ( lancement, visualisations, incidents ) par lébauche dun superviseur-moniteur et obtenir un journal de bord.
-- introduit par bande, miniprogramme lecteur de cartes binaires et impression sans édition
-- entrée par cartes binaires, créées en Gamma 3 Tambour, du programme initial de transposition code B-code A, avec contrôle de vraisemblance, listing et utilisation du traducteur.
-- mise en service du tambour
-- mise en service des dérouleurs
-- création de bibliothèques de programmes sur tambour et sur bande
-- introduction et exploitation du programme dassemblage
-- création dun programme de transcodage inverse code A-code B permettant, en fonctionnement pas-à-pas, dextraire sur imprimante sous forme plus lisible chaque instruction avec ses registres et ses opérandes, en suivant la logique du central ( simus, chaînes de reprise ).
-- pendant ces dernières étapes, mise en oeuvre progressive des fonctions du superviseur-moniteur qui sera nommé G.G.Z.
La gestion G.G.Z. est fournie sur la bande programme dite ruban Z; elle
comporte plusieurs parties découpées en segments:
-- un superviseur devant résider en début mémoire, soit:
- la table des appareils et éléments et
- la table des unités de traitement ( U.T.) en cours ( voir ci-dessous )
- lintervention opérateur avec retour vers lopérateur:« Que désirez-vous? »
A la mise sous tension, lintervention opérateur lance linitialisation, modulable par le positionnement de commutateurs testables.
- linitialisation ( tests appareils-éléments, effacements mémoires,...)
- le chargement en mémoire des segments de programme
- les zones-tampons appropriées
- la tête du programme incidents appelée par la détection dans un mot qualitatif, du bit 24 regroupant les incidents graves nécessitant en principe lintervention du pupitreur.
- une amorce pour le lancement et le retour des U.T.
- des sous-programmes de gestion et de correction bande, très utilisés
-- un programme danalyse et de réparation dincidents, dialoguant avec le pupitreur; celui-ci peut suivant le cas:
- faire faire une manipulation ( manque de cartes ou de papier, fin de bande )
- lancer, avec ou sans manipulation, un sous-programme de réparation situé soit dans lU.T. en cours, soit dans un segment du superviseur
- bloquer le système en cas dincident très grave et après intervention, relancer les U.T. interrompues.
-- un moniteur, situé sur le ruban Z, chargé dexécuter les ordres frappés au clavier par le pupitreur. Leur nombre a varié de 30 en 1960 à 46 en 1962
Fonctions réalisées:
- fonctions de la zone 2 du pupitre ( visualisation, forçage dadresse, dinstruction ou de donnée, vidage ,...)
- fonctions élémentaires sur les appareils
- lancement dun programme
Le logiciel de programmation ( voir plus haut ) comportant transposition, assemblage et programmes annexes ( introduction des cartes code B et C, états sur imprimante, rangement des résultats sur bande,...) est un constituant fondamental du logiciel G.G.Z.; il est complété par la distribution, chargée de transformer un programme issu de lassemblage en programme personnalisé exécutable appelé unité de traitement ( U.T.); ce logiciel est chargé de distribuer au programme assemblé, les valeurs numériques prévues pour les inconnues y ayant reçu un code symbolique.
Ces paramètres, de différents types ( adresse mémoire, adresse tambour, numéro dappareil ou délément, longueur de zone,... ), sont introduits soit par des ordres du pupitre, soit sous forme de cartes en code D2.
On constitue ainsi une bibliothèque dU.T. exploitables directement, en remarquant que tout est figé; en cas dindisponibilité dun appareil, il sera possible de modifier certains paramètres par ordre pupitre au moment du lancement.
La G.G.Z. est fournie avec :
-- une bibliothèque de sous-programmes standards ( fonctions dérouleurs, entrée cartes, vidages sur imprimante,..., et fonctions mathématiques )
-- une bibliothèque de programmes standards ( tris, interclassement, conversions bande - imprimante,...., et programmes scientifiques classiques ).
La G.G.U., destinée à remplacer la G.G.Z., a été conçue en recherchant à privilégier les aspects suivants:
-- Prolongement sans rupture des fonctionnalités de la G.G.Z..
-- Sécurité dexploitation de la mémoire et des appareils utilisés dans chaque programme.
-- Tenue dun journal dexploitation complet et lisible, avec le minimum dinterventions de lopérateur pupitre.
-- Planification des travaux ( enchaînement des phases dans une U.T., enchaînement des U.T. dans un job ).
-- Amélioration de la facilité et de la durée de création des travaux, grâce à dimportantes bibliothèques de sous-programmes et de programmes standards.
-- Amélioration de la gestion des incidents et mise en oeuvre de points de reprise.
-- Possibilité dextensions ultérieures sans bouleversement.
-- Accélération de la vitesse dexécution, possible par stockage sur tambour des ordres les plus fréquents.
Les fonctions du noyau résident du superviseur restent pratiquement les mêmes quen G.G.Z.; ( sy ajoutent surtout les topogrammes de la mémoire et des appareils ). Sa capacité est de 3800 Mots, soit moins de 12 KOctets.
Le traitement des incidents a été perfectionné; on peut citer par exemple la possibilité de reprise incorporée dans les programmes de tri sur bandes.
La gestion des ordres sest gonflée ( 91 ordres en fin 1963 ); sont introduits par exemple 10 ordres dérouleurs, 10 ordres de vidage bande sur imprimante et surtout 18 ordres de lancement, arrêt et reprise des programmes.; par exemple un ordre permettant avec 10 sous-ordres, de positionner, de lire, décrire, de rebobiner,... la bande
La gestion de lexploitation des U.T., devient plus sophistiquée:
-- implantation fixe ou variable
-- lancement avec paramétrage en code D1 et mise en attente en cas dindisponibilité de mémoire ou dappareils
-- alimentation de programme interne à lU.T. ( phase ) par un sous-programme standard incorporé
-- mise en oeuvre dune gestion de bandes complète (contrôle, rebobinage,... )
-- possibilité dincorporer dans une U.T. - généralement bande-bande - des points de reprise prévus par lutilisateur; le rangement et le relancement éventuel par un ordre étant à la charge de la G.G.U.
La G.G.U. introduit lunité de planification ( U.P. ) -- ou job -- correspondant à un ensemble dU.T. -- ou job-steps -- effectuant un travail complet, comptable ou scientifique, depuis des données externes (cartes) jusquà des résultats imprimés exploitables par lutilisateur.
Ce job peut être représenté par un graphe, dont les mailles orientées représentent les U.T. et les noeuds effectuent des regroupements et des lancements dU.T. en simultanéité et/ou en alternative avec critères de validation.
La description de ce job seffectue à laide du code D3.
Lensemble des cartes D relatives à un job constitue une sorte de J.C.L.
Après la distribution, lU.P., comme lU.T., est stockée en bibliothèque de programmes exécutables, doù elle pourra être exploitée par un des ordres de lancement.
A un niveau supérieur, le G.G.U. prévoit lexploitation automatique des U.P..Ce logiciel procède en 3 étapes:
-- introduction du J.C.L. associé ( cartes B, C, D, E,....), contrôles, planification du travail en fonction de la disponibilité des appareils
et listing du planning proposé y compris les montages et démontages de bandes sur les dérouleurs.
-- exploitation de lU.P. avec les paramètres introduits,
- soit en fonctionnement normal
- soit en mise au point, prévue à létape précédente par lintroduction de jalons et de vidages variés
. -- impression des résultats de létape précédente.
Un niveau ultime est la planification des travaux qui, à partir dune bande programme contenant tous les travaux dune application sous forme dU.T. encore implantables et paramétrables, optimise lexploitation de ces travaux pour un Gamma 60 particulier.
Ce niveau na certainement pas été exploité, ni même réalisé.
André Maitre