Bull-General Electric

GE-400

LES COMPATIBLES GE-400

reproduction d'une notice commerciale Bull-General Electric de 1965

C’est en 1920 que General Electric commercialisa son premier calculateur. Il s’agissait alors d’un calculateur analogique et ce ne fut que beaucoup plus tard. au lendemain de la seconde guerre mondiale, que la société débuta l’étude des calculateurs digitaux, étude qui devait aboutir à la mise au point de toute une lignée de calculateurs numériques.

La notion de compatible qui est apparue déjà avec la série des GE-200, dont un grand nombre est en service aux États-Unis, continue avec les GE 400 dont les cinq types ne diffèrent entre eux que par la puissance et la vitesse de l’unité centrale (voir tableau 1), la mémoire centrale étant modulaire et pouvant sur n’importe quel type de machine avoir des capacités de 8192, 16384 ou 32768 mots de 24 bits plus un de parité (4096 sur le 415).

Tous les équipements périphériques restent identiques pour les différentes machines dont la simultanéité des entrées/sorties est très importante.

Les calculateurs compatibles GE 400 sont surtout caractérisés par leur mot court et par leur schéma d’instructions de format binaire. A la différence des GE 200, qui étaient des calculateurs binaires dotés de quelques possibilités décimales, les GE 400 sont essentiellement décimaux avec quelques possibilités binaires.

Enfin, parmi les caractéristiques fondamentales de ces calculateurs, il faut signaler l’importance des aides à la programmation (Software) qui viennent accroître les possibilités et les facilités déjà existantes dans la machine (Hardware) tels que l’accumulateur volant, l’éclatement-rassemblement, la modification d’adresse, etc. Il est bon de rappeler que General Electric en dehors de la fabrication de calculateurs est également avec ses nombreuses divisions l’un des plus grands utilisateurs mondiaux de machines à traiter de l’information après le gouvernement des États-Unis: 189 calculateurs sont en fonctionnement dans ses différentes usines. De ce fait, General Electric a pu réaliser un ensemble très complet d’aide à la programmation, en partant des programmes généraux écrits pour ses propres besoins.

L’UNITE CENTRALE

L’unité centrale des compatibles GE 400 est composée de trois éléments distincts: une mémoire centrale à tores magnétiques dans laquelle sont rangés le programme en cours d’exécution et l’information en cours de traitement, un organe central de commande contrôlant le déroulement du programme et assurant l’exécution des opérations arithmétiques et logiques, et enfin une unité de commande des entrées/sorties contrôlant le fonctionnement des éléments périphériques par l’intermédiaire des canaux d’entrées/sorties.

La mémoire centrale.

La mémoire à tores qui, ainsi que nous l’avons vu plus haut est modulaire et dont le cycle de base varie en fonction des machines, opère de manière asynchrone par rapport au reste de l’unité centrale et possède sa propre horloge, sa logique de commande et son registre d’adresse. En outre, son cycle de base peut être partagé (lire seulement, écrire seulement, lire-restaurer, effacer écrire) afin de réduire le temps d’exécution de certaines opérations.

Chaque mot de mémoire de 24 bits peut, selon l’interprétation machine, contenir l’information suivante:

Les deux premières catégories constituent les formats des mots information (données), tandis que la troisième catégorie est normalement (bien que non exclusivement) réservée aux mots instruction et aux autres mots auxiliaires dans la séquence du traitement des instructions.

Pour s’adresser à n’importe quel mot de la mémoire, il suffit de spécifier la position de ce mot dans la zone d’adresse d’une instruction. L’adressage interne de la mémoire se fait en mode binaire et les zones d’adresse des instructions comportent toutes 15 bits. Le programme de macro assemblage (Macro Assembly Programm MAP) convertit automatiquement en binaire les adresses décimales ou symboliques du programme d’origine. L’adressage en mémoire se fait en mode binaire, et non en mode décimal, afin de rendre plus efficace l’utilisation des bits du mot instruction. La zone d’adresse d’un mot instruction peut s’adresser à toute position de mémoire, de 0  à 32 767.

La logique de la mémoire à tores avertit l’unité centrale toutes les fois qu’un programme s’adresse à une position qui dépasse la capacité de la mémoire utilisée (par exemple, une position au-delà de 8191 pour une mémoire 8 K). Toute tentative d’accès à une position de mémoire inexistante est traitée comme une opération invalide.

Chaque fois qu’un mot est écrit en mémoire, il subit automatiquement un contrôle de parité. Si le nombre de bits 1 est impair, un autre bit 1 est engendré à l’emplacement du 25 ème bit (bit de parité) de manière à ce que chaque mot de mémoire contienne un nombre pair de bits 1. Cette parité est vérifiée lorsque les mots sortent de la mémoire.

Il existe 65 positions spéciales parmi les 72 premières positions de mémoires sur lesquelles portent des limitations quant à leur utilisation par le programmeur. Les positions 1 à 6 sont réservées en priorité aux mots index servant à l’adressage et à la modification d’adresse. La position 8 est exclusivement réservée à la logique de l’unité centrale pour les instructions de transfert et de décalage. Les positions 10 et 11 sont exclusivement réservées aux mots de contrôle de l’interruption du programme du canal de l’unité centrale. Les positions 16 à 47 sont réservées aux mots de contrôle des canaux d’entrées/sorties et les positions 48 à 71 sont nécessaires à la compatibilité de la programmation des ensembles GE 400.

L’organe central de commande.

L’organe central de commande contient tous les circuits logiques nécessaires pour accéder à la mémoire à tores et exécuter les différentes opérations (chargement et stockage à longueur variable, calculs arithmétiques en décimal et en binaire, comparaisons, décalages, branchements et instructions de modification logique à adresse unique et à deux adresses). Les opérations à longueur variable impliquent des zones à longueur simple, double, triple et quadruple (4, 8, 12 et 16 caractères).

Bien qu’il existe certaines instructions arithmétiques binaires, les données alphanumériques sont normalement traitées dans le mode décimal-codé-binaire. L’emploi de l’accumulateur ré-adressable à longueur variable pour les opérations arithmétiques permet d’ajouter ou de soustraire des zones d’opérande comprenant 4, 8, 12 ou 16 caractères. La capacité de l’accumulateur est suffisamment grande pour permettre la multiplication des zones de 8 caractères par 8 caractères, ou la division de zones de 16 caractères par 8 caractères: au-delà, on utilise un sous-programme.

Pour le programmeur, il existe trois éléments dont l’importance est grande dans la mise en oeuvre du système:

1. - Le compteur-P commande la séquence dans laquelle les instructions sont exécutées. Il constitue un registre de 15 bits qui contient, normalement, L’adresse de la position en mémoire de la séquence suivante du programme (séquence-P). Lorsqu’un mot de la séquence-P est extrait de la mémoire, le compteur-P est automatiquement augmenté d’une unité.

Le compteur-P enregistre des positions séquentielles sauf s’il rencontre dans la séquence-P une instruction de branchement, ce qui entraîne le remplacement de son contenu. De plus, on peut au moyen des instructions «  stockage du compteur-P et branchement » ou «  stockage du compteur-P dans l’index et branchement », stocker le contenu du compteur-P dans une position de mémoire déterminée, afin de le conserver en mémoire et de pouvoir, ainsi, revenir ultérieurement à ce point de la séquence-P.

2. - Le registre adresse de l’accumulateur est un registre de 13 bits qui contient les 13 bits les plus à gauche de l’adresse du mot le plus significatif de l’accumulateur. Le contenu de ce registre peut être changé dans le programme, ce qui entraîne automatiquement le repositionnement de l’accumulateur. L’instruction « positionnement de l’accumulateur actif (LAL) » établit une nouvelle position de l’accumulateur, en remplaçant le contenu du registre adresse de l’accumulateur.

Le programmeur a, en outre, la possibilité de conserver en mémoire la position précédente de l’accumulateur, en employant l’instruction « stockage adresse et longueur de l’accumulateur » (SAL).

3. - Le registre longueur de l’accumulateur est un registre de 2 bits qui enregistre la longueur active de l’accumulateur. Le contenu de ce registre est automatiquement réglé par toute instruction qui comporte une fonction de réglage de la longueur de l’accumulateur; les 2 bits de rang inférieur de la zone d’adresse d’une instruction LAL sont transmis à ce registre.

D’autre part, une instruction SAL transmet le contenu du registre aux deux positions de bit de rang inférieur de l’adresse spécifiée dans la zone d’adresse de l’instruction.

L’organe central de commande contient tous les éléments logiques nécessaires à l’exécution d’opérations arithmétiques en binaire ou en décimal, de décalage de bits ou de caractères, de transferts de données, d’instructions logiques ou d’autres instructions spéciales et de modifications d’adresse.

Les opérations de base que peut exécuter l’organe central de commande sont les suivantes: charger et stocker, addition, complément, décalage, branchement, opérations logiques, édition.

Toutes les instructions du répertoire d’instructions sont obtenues en combinant, de plusieurs façons différentes, ces mêmes opérations.

Contrôle des opérations.

Le canal de l’unité centrale sert non seulement aux opérations de l’unité centrale, mais il permet également à l’opérateur d’intervenir directement dans le programme:

Au moyen d’une instruction « demande d’état » le programmeur peut stocker l’état des indicateurs de l’unité centrale dans un mot de mémoire quelconque, afin de pouvoir les tester ultérieurement dans son programme.

D’autre part, pour imprimer aux indicateurs de l’unité centrale une configuration quelconque, il suffit au programmeur d’employer une instruction « positionnement d’état ». On peut donc créer un .« mot d’état » qui sert à enregistrer l’état de l’unité centrale au moment où survient une interruption du programme et à rétablir, ultérieurement, cet état.
On peut également en examinant ce mot d’état, déterminer la cause de l’interruption du programme.

L’unité de commande de l’entrée/sortie.

Ce troisième élément fondamental de l’unité centrale accomplit, sous le contrôle de l’organe central de commande, les opérations suivantes:

L’unité de commande de l’entrée/sortie impose un ordre fixe aux transmissions de données entre les différents éléments périphériques et l’unité centrale. A chaque unité périphérique est attribué un canal d’entrée/ sortie déterminé. De son côté, chacun de ces canaux a son numéro, son ordre de priorité d’interruption du programme et son ordre de priorité de transmission de données. Les canaux reçoivent les instructions de l’unité centrale et les transmettent aux éléments périphériques. C’est également par les canaux que s’effectuent les transmissions de données (ou de toute information relative à l’état des différents éléments) entre la mémoire et les éléments périphériques.

Les transmissions de données sont synchronisées avec les opérations de la mémoire et de l’unité centrale. Il est donc indispensable de contrôler la sélection et la séquence des pauses dans le traitement des instructions, pauses qui rendent possibles les transmissions des données et les interruptions du programme. L’unité de commande de l’entrée/sortie assure ce contrôle de trois manières:

1 - Contrôle de commande de l’entrée/sortie. Ces circuits lancent les opérations périphériques. L’opération à exécuter, ainsi que le canal et l’élément utilisés, sont spécifiés par une instruction générale. L’état du canal et du périphérique correspondant est stocké dans une position de mémoire déterminée par la seconde adresse de l’instruction générale (il s’agit là d’instructions à deux adresses).

2 - Mots de contrôle de l’entrée/sortie. Pour chaque canal, quatre mots de contrôle différents sont stockés dans des positions de mémoires fixes. Ces mots sont utilisés par la logique entrée/sortie, pendant les transmissions de données et les opérations d’interruption du programme. La position de mémoire à partir de laquelle ou à laquelle doivent être transmises les données est déterminée par le mot indicateur de liste (LPW - List Pointer Word) et par le mot de contrôle du transfert de l’information (DCW - Data Control Word).
Les deux autres mots, le mot d’interruption du programme (PIW - Program Interrupt Second Word), sont utilisés pour assurer le renvoi automatique à un sous-programme d’interruption en réponse à la condition qui a causé l’interruption.

3- Logique de transmissions de données. Etant donné que plusieurs unités périphériques peuvent fonctionner simultanément, quand les données parviennent d’un élément périphérique au canal correspondant, elles doivent attendre leur tour pour accéder à la mémoire. La logique de transmissions de données détermine précisément l’ordre dans lequel les différents canaux peuvent avoir accès à la mémoire.

Le critère de sélection se fonde sur l’ordre de priorité des canaux. Quand plusieurs demandes d’accès se produisent simultanément, c’est au canal ayant l’ordre de priorité le plus élevé que l’accès est accordé en premier. 
Lorsqu’un canal a obtenu l’accès à la mémoire, le DCW et le LPW servent à contrôler le passage des données.

Pupitre de commande.

Les pupitres de commande des GE 400 comprennent tous un tableau de manœuvre, un tableau d’entretien et une machine à écrire. Le pupitre constitue, avec sa machine à écrire, le moyen fondamental de communication entre l’opérateur et le calculateur. La machine à écrire est connectée à un canal d’entrée/sortie « tamponné » à un caractère; ce canal possède toujours l’ordre de priorité le plus bas (canal zéro). D’autres connexions permettent l’accès au pupitre et relient les voyants et commutateurs du tableau de commande à l’unité centrale.

LES EQUIPEMENTS PERIPHERIQUES ET LES OPERATIONS D’ENTREE/SORTIE

Tous les équipements périphériques d’entrée/sortie utilisés avec les compatibles GE 400 communiquent avec l’unité centrale et la mémoire à tores par l’intermédiaire de canaux d’entrée/sortie et sous le contrôle de l’unité de commande d’entrée/sortie décrite précédemment.

Les compatibles GE 400 peuvent compter jusqu’à 14 canaux d’entrée/sortie dont l’un d’entre eux est toujours réservé à la machine à écrire. Tous les périphériques peuvent fonctionner simultanément au traitement en unité centrale et au fonctionnement des autres périphériques.

Les supports d’entrée/sortie.

Le lecteur de cartes rapide lit en asynchrone des cartes perforées standard de 80 colonnes à une vitesse qui peut aller jusqu’à 900 cartes/minute.

Le perforateur de cartes perfore des cartes standard 80 colonnes à une vitesse de 100 cartes/minute. Il existe également un perforateur fonctionnant à la cadence de 300 cartes/minute.

L’imprimante rapide imprime des lignes de 136 caractères à une vitesse de 1 200 lignes/minute; équipée d’une mémoire tampon, elle assure le saut de papier et l’impression en fonctionnement asynchrone. Il est possible d’imprimer 46 caractères principaux à une vitesse de 1 200 lignes/minute, ou bien les 64 caractères à toutes les lignes à la vitesse de 938 lignes/minute. Lorsque des caractères spéciaux et non contigus sont utilisés occasionnellement, l’imprimante ajuste sa vitesse pour chaque ligne, de manière à ce que la vitesse moyenne soit le plus proche possible de la vitesse maximum. Pour des opérations de listing, où les informations sont uniquement chiffrées, la vitesse est maximale, même si l’on utilise un espacement de cinq lignes entre chaque ligne imprimée.

Systèmes de bande magnétique. Les compatibles 400 peuvent être équipés de divers systèmes de bande magnétique adaptés aux besoins des utilisateurs. La vitesse de transmission des données est de 20, 30, 42, 60, 83 et 120 Kc pour des densités de 200, 556 et 800 caractères au pouce.

Les contrôleurs de bande magnétique peuvent être connectés à l’unité centrale par un canal simple ou double. Un contrôleur à canal simple peut relier l’unité centrale à huit ou seize unités de bande magnétique. Un contrôleur à canal double permet de lire et d’écrire des données sur n’importe laquelle de seize unités de bande magnétique par l’intermédiaire de l’un ou l’autre des deux canaux simultanément, ce qui permet de réduire le temps de réalisation de toutes les opérations comprenant des lectures et écritures simultanées sur bande magnétique, L’affectation des canaux étant automatiquement réalisée par le programme de gestion d’entrée/sortie BIOS.

Les équipements de ruban perforé connectables aux 400 peuvent être des perforateurs, des lecteurs ou des lecteurs-perforateurs. Tous ces systèmes peuvent utiliser divers formats de ruban et sont capables de lire et/ou de perforer des rubans de 5, 6, 7 ou 8 canaux. Vitesse de lecture 500 ou 1000 caractères/seconde. Vitesse de perforation 150 caractères/seconde.

Les mémoires à disques à accès aléatoire DS-20 permettent d’enregistrer de très gros volumes d’informations. Chaque pile de disques enregistre 23,5 millions de caractères. Il est possible de connecter jusqu’à quatre piles de disques à chaque contrôleur, ce qui porte la capacité totale à 94 millions de caractères par contrôleur.

La configuration des données enregistrées sur chaque disque ne dépend que du besoin des utilisateurs. Chaque disque comporte une zone interne et une zone externe, de chacune 128 pistes. Les pistes des zones externes possèdent 16 secteurs. celles des zones internes 8 secteurs. Chaque secteur a une identité propre et contient 240 caractères d’information plus la parité.

Comme chaque disque possède son propre bras indépendant et que chaque bras a huit têtes de lecture/écriture, le temps de positionnement sur un secteur déterminé n’est en moyenne que de 199 millisecondes. Le flux de données d’un secteur d’une zone interne est de 41,7 Kc et d’un secteur d’une zone externe de 83,4 Kc.

La communication entre la mémoire tampon du contrôleur et les disques s’effectue en autonome, sans interférer sur les opérations de l’unité centrale. Le contrôleur peut également communiquer simultanément avec l’unité centrale depuis un secteur de la mémoire tampon et avec le fichier disques depuis un autre secteur de la mémoire tampon. Une économie de temps de recherche, de lecture et d’écriture est réalisée du fait que seule la portion d’enregistrement intéressée est transmise à l’unité centrale.

Le lecteur-trieur de documents magnétisés à 1200 documents/minute convient à des applications variées. Le lecteur-trieur contrôle et trie les documents en autonome et lit, contrôle et trie en connexion avec les compatibles 400. Il distribue les documents en 12 cases.

Les Datanets, dispositifs de téléprocessing, dont il existe une large gamme, peuvent être connectés aux compatibles 400 grâce à une ligne de télécommunication spéciale, les GE 400 peuvent communiquer avec des stations éloignées en utilisant des lignes de transmissions publiques ou privées, ce qui permet la communication d’un calculateur avec un autre calculateur.

Il existe notamment le Datanet 600 qui assure la transmission de données par bande perforée au moyen de câbles téléphoniques; il fonctionne sur bande perforée à 5, 6, 7 ou 8 canaux, l’écriture et la lecture pouvant s’effectuer à la cadence de 50 caractères par seconde.

Le Datanet 30 est un calculateur de télécommunication pouvant fonctionner ou non en connexion avec un ou plusieurs calculateurs. Il utilise un programme enregistré dans une mémoire à ferrites et peut être connecté à 128 lignes télex ou téléphone, dont un grand nombre peuvent fonctionner simultanément.

Le Datanet 15 peut explorer 15 lignes de télex ou téléphone toutes les 300 microsecondes.

Les Datanets 90 et suivants sont spécialisés dans la transmission directe de bande magnétique à calculateur ou bande magnétique. soit par câbles téléphoniques ou coaxiaux, soit par faisceau hertzien.

LE FORMAT DES MOTS

Bien que les calculateurs de la série GE 400 soient décimaux, ils possèdent des circuits logiques et arithmétiques binaires, de plus, le système binaire est utilisé pour l’adressage interne de la mémoire. Le macro-assembleur permet au programmeur de représenter les adresses en mode décimal ou symbolique, cependant il est parfois souhaitable de les représenter directement dans le système de numération octale, dans la mesure où il constitue un équivalent du système binaire plus direct que le système décimal en facilitant la conversion entre les deux numérations.

L’unité de base des 400 est le mot de 24 bits d’information plus un bit de parité quand le mot apparaît en mémoire. Il existe trois catégories de mots:

1. - Mots information.

Les données alphanumériques sont représentées en numération DCB (décimale-codée-binaire). Un mot alphanumérique contient 24 bits, numérotés, de droite à gauche, de O à 23. Un mot de 24 bits est formé de quatre caractères, comprenant chacun six bits. Les quatre caractères alphanumériques sont désignés, de gauche à droite, par 0, 1, 2 et 3. Chaque caractère d’un mot alphanumérique comprend deux bits hors texte et quatre bits numériques. La structure des bits hors texte de tous les caractères numériques est 00.

Dans les opérations arithmétiques décimales, les bits hors texte de tous les caractères de chaque mot sont ignorés, sauf ceux du caractère 3 qui indiquent le signe (plus ou moins) du mot, et non le signe du caractère 3. Un signe moins est représenté par la structure binaire 10 dans les bits de zone (bits 5 et 4) du caractère 3. Si ces deux positions binaires contiennent n’importe quelle autre structure (00, 01 ou 11), le mot entier est considéré comme positif.

Dans le cas ou la longueur d’une zone d’information décimale excède un mot, c’est le caractère 3 du mot le plus à droite (le moins significatif) qui contient le signe. Tous les autres bits hors texte de la zone sont automatiquement ignorés.

Bien que les GE-400 soient essentiellement des calculateurs alphanumériques, ils possèdent tous également certaines facultés binaires qui permettent l’usage de mots information binaires. Dans les mots binaires, tous les 24 bits sont pris comme étant une unité indissociable, ils ne sont donc pas divisés en caractères comme les mots alphanumériques.

Les mots binaires sont automatiquement considérés comme positifs; aucun emplacement n’est prévu pour indiquer le signe. Un mot de 24 bits peut contenir des valeurs positives, allant de 0 à 16 777 215 (en décimal).

Le numéro correspondant à chaque position binaire équivaut toujours à la puissance de deux de cette position: par exemple, la position binaire 23 correspond à 223. Il est cependant possible d’exécuter des opérations arithmétiques binaires impliquant des quantités négatives, si le programmeur adopte les conventions de programmation appropriées (comprenant la représentation du complément à deux) et si l’état de dépassement de capacité est correctement interprété.

2.- Mots instruction.

Le traitement des données dans les GE 400 s’effectue sous le contrôle d’instructions préalablement stockées dans la mémoire à tores et exécutées une par une (généralement en séquence). La séquence dans laquelle les instructions sont exécutées s’appelle séquence du programme, ou séquence -P, et est contrôlée par le compteur du programme, ou compteur-P.

Normalement tout mot pris dans la mémoire sous le contrôle du compteur-P peut être soit un mot instruction, soit un mot auxiliaire.

Le mot instruction remplit quatre fonctions:

Le mot instruction, comme tout autre mot des GE-400 consiste en 24 bits; il est composé de trois zones: zone du code d’opération (bits 18-23) identifie l’opération à exécuter (additionner, soustraire, décaler, etc.) et spécifie si l’instruction est à deux adresses ou à adresse unique. La zone de commande d’adresse (ACF) détermine, en combinaison avec le code d’opération, le type de modification d’adresse à opérer (si une modification est nécessaire), ou dans le cas de certaines instructions à deux adresses, spécifie la seconde adresse.

La zone d’adresse contient normalement une adresse de mémoire qui constitue une adresse provisoire, ou bien l’adresse effective (définitive), selon qu’une modification d’adresse est requise ou non.

3. - Mots auxiliaires.

Chaque instruction peut, sous le contrôle de son ACF, se référer à un mot d’index fixe (voir figure p. 10) ou alors être suivie, dans la séquence-P, d’un ou plusieurs mots de séquence de modification d’adresse (AMS) (voir figure p. 10). Selon l’instruction, ou bien le contenu du mot d’index fixe modifie l’adresse provisoire de l’instruction, ou bien, pour les instructions à deux adresses, il constitue lui-même la seconde adresse de l’instruction. Par contre, un mot AMS dans la séquence-P sert invariablement à déterminer la modification de la première adresse d’une instruction.

Dans la plupart des instructions à deux adresses, l’instruction (et les mots AMS correspondants) est suivie, dans la séquence-P, d’un mot de séquence de seconde adresse (SAS) qui détermine la seconde adresse.

Selon le type ou la catégorie des mots AMS et SAS de la séquence-P, ceux-ci peuvent renvoyer le programme à des mots SAS et AMS à distance, stockés en mémoire mais extérieurs à la séquence-P, afin de déterminer la modification d’adresse ou la seconde adresse de l’instruction.

D’autre part, si on profite des possibilités d’adressage indirect des GE-415, 425, 435, un mot AMS de la séquence-P peut également spécifier (dans sa zone d’adresse indirecte, bit 21) un mot adresse indirecte (IAW-indirect address Word) qui établit une zone d’adresse de remplacement pour l’adresse provisoire de l’instruction. Cet IAW peut également, sous le contrôle de son ACF, renvoyer à un mot AMS indirect, afin d’exécuter toute modification ou remplacement d’adresse supplémentaire.

Tous ces mots auxiliaires sont très utiles au programmeur pour la modification de la première adresse et pour la détermination de la seconde adresse.

L’indexation à un nombre illimité de niveaux combinée à l’adressage indirect constitue un outil très puissant pour le programmeur: elle accroit en particulier beaucoup l’efficacité et la compacité du software.

Dans les formats des mots auxiliaires, toutes les positions binaires qui montrent des zéros doivent absolument contenir des zéros, soit en raison des particularités des éléments technologiques des GE-400, soit pour maintenir la compatibilité de la programmation avec des éléments additionnels prévus pour la famille de calculateurs GE-400.

LA LOGIQUE FONDAMENTALE DES GE-400

Un certain nombre de dispositifs ou de facilités inclus dans la logique fondamentale des GE-400 revêtent une importance particulière pour l’utilisateur sur le plan de l’exploitation et de la simplification de la programmation.

1. L’accumulateur readressable à longueur variable.

Cet accumulateur, appelé également « accumulateur volant » remplit un certain nombre de fonctions différentes. Il peut contenir:

L’accumulateur est constitué par quatre positions de mémoire consécutives qui sont désignées par le programme. Le programmeur peut placer l’accumulateur dans n’importe quel groupe de quatre positions consécutives; l’adresse de la position la plus significative doit être divisible par quatre (0, module 4). Le déplacement (ré-adressage) de l’accumulateur n’a aucune influence sur le contenu des positions de mémoire impliquées.

De plus, étant donné que l’accumulateur comporte quatre mots, il est possible de faire varier sa longueur active (ou utile), la rendre simple, double, triple ou quadruple. Quelle que soit la longueur active spécifiée, l’accumulateur comporte toujours quatre mots. En réglant cette longueur active, on détermine la longueur de la zone de mémoire affectée par certaines opérations qui utilisent l’accumulateur.

Les principaux avantages de l’accumulateur ré-adressable et à longueur variable sont les suivants:

Pour pouvoir s’y référer plus facilement, les quatre mots de l’accumulateur sont désignés respectivement, du plus significatif au moins significatif, par les lettres D,C,B et A.

Outre les instructions qui servent à régler la longueur et la position de l’accumulateur, on dispose d’autres instructions pour conserver (stocker) ou rétablir (charger) les longueurs et adresses précédentes de l’accumulateur.

2. Instruction « Édition »

Les systèmes GE-400 ont la possibilité d’éditer les données de sortie en supprimant des zéros ou certains caractères des données et en insérant, dans les données, des signes de ponctuation et d’autres caractères spéciaux. Cette opération est commandée automatiquement par l’instruction « Édition » (EDT- Edit).

Cette instruction sort les caractères de la mémoire un par un et les traite sous le contrôle des caractères du format contenus dans l’accumulateur. Le résultat de l’édition est stocké dans l’accumulateur. Le contenu de la zone de mémoire où se trouvent les données demeure inchangé.

Pendant l’édition, il y a trois types de suppression de zéros possibles:

Une suppression provoque le remplacement des zéros de tête, des virgules et des points, soit par des espaces en blanc, soit par des astérisques, soit par des espaces suivis d’un signe dollar.

3. Eclatement- Rassemblement.

Comme l’unité de commande de l’entrée/sortie se sert d’une liste des mots en mémoire (appelée liste de contrôle du transfert de l’information « DCL ») pour déterminer les positions de mémoire affectées par une transmission de donnes, le programmeur peut, s’il le désire, lire un enregistrement d’entrée dans des zones de mémoire non-consécutives (scatter) ou écrire un seul enregistrement de sortie (gather) à partir de zones de mémoire non-consécutives.

Une telle technique offre l’avantage de réduire le nombre de déplacements des données à l’intérieur de la mémoire et de réduire également la grandeur des zones de mémoire réservées comme mémoires de travail.

4. Modification d’adresse.

Le répertoire d’instructions comprend des instructions à une seule adresse, ainsi que des instructions à deux adresses. Les instructions à deux adresses contiennent deux opérandes; les instructions à adresse unique n’en contiennent qu’un. Ces deux types d’instructions peuvent exiger tous les deux un ou plusieurs mots dans la séquence du traitement (séquence-P) selon le code d’opération et la zone de commande d’adresse (ACF-Address Control Field) de chaque instruction.

Pendant le traitement des instructions,l’unité centrale suit la séquence générale suivante:

- L’instruction est prise en charge.

- Si l’ACF de l’instruction spécifie une modification quelconque, celle-ci est alors exécutée, ce qui peut impliquer l’accès à des mots extérieurs à la séquence P.

- Si le code d’opération indique que l’instruction est à deux adresses, la seconde adresse est prise en charge.

- L’instruction est exécutée.

- L’instruction suivante est prise en charge. La modification de la première adresse est commandée par l’ACF et la zone d’adresse indirecte et comprend:

1. Modification par un mot d’index fixe (FlW-Fixed Index Word). Le contenu de l’un des six est ajouté à l’instruction.

2. Modification par une séquence de modification d’adresse (AMS Address Modification séquence). Si l’ACF de l’instruction spécifie un AMS, le mot suivant dans la séquence-P pourra être:

- soit un index, dont la zone d’adresse doit être ajoutée à l’adresse de l’instruction en question;

- soit un indicateur d’index, dont la zone d’adresse spécifie la position où se trouve la quantité qui doit être ajoutée à la zone d’adresse de l’instruction;

- soit un enchaînement d’index, dont la zone d’adresse spécifie une position, extérieure à la séquence-P, contenant un index, un indicateur d’index ou un autre enchaînement d’index.

3. Adressage indirect.

La modification s’opère en remplaçant la zone d’adresse de l’instruction par le contenu d’un mot de mémoire quelconque. Après une séquence de modification d’adresse, le mot AMS qui a lancé la séquence est examiné pour vérifier s’il spécifie un adressage indirect. Dans l’affirmative, l’adresse développée devient l’adresse de la position qui contient la zone d’adresse de remplacement. L’adresse indirecte peut également être modifiée.

La zone d’adresse d’une instruction à adresse unique peut être modifiée par l’une quelconque des trois méthodes décrites ci-dessus. La première adresse d’une instruction à deux adresses peut être modifiée au moyen d’une AMS et/ou d’un adressage indirect, mais jamais en employant un mot d’index fixe.

La seconde adresse d’une instruction à deux adresses est généralement spécifiée par une séquence de seconde adresse (SAS - Second Address séquence). Cette séquence est lancée par un mot SAS dans la séquence-P, après l’exécution de toutes les modifications de la première adresse. Le mot SAS peut être:

- Un opérande, sur lequel s’effectuera l’instruction.

- Un indicateur d’opérande, dont la zone contient la seconde adresse de l’instruction.

- Un enchaînement d’opérande dont la zone d’adresse contient l’adresse d’un autre mot SAS, qui peut, à son tour, être un opérande, un indicateur d’opérande ou encore un enchaînement d’opérande.

Il existe une catégorie spéciale d’instructions à deux adresses qui ne requiert pas de SAS. Dans ce cas, la seconde adresse est constituée par l’un des six index fixes, celui qui est spécifié par l’ACF de l’instruction.

On peut faire des combinaisons d’adressage très complexes, ce qui constitue un supplément extrêmement utile aux possibilités d’adressage de base. La modification d’adresse peut réduire considérablement la durée totale du traitement ainsi que le nombre de positions de mémoire utilisées par le programme.

5. Interruption du programme.

La logique d’interruption du programme commande la sélection, le déclenchement et la séquence d’interruptions automatiques du programme, suivant un critère de priorité. Le canal de l’unité centrale possède l’ordre de priorité le plus élevé et le canal d’entrée/sortie de la machine à écrire, l’ordre le plus bas (O). Les autres canaux d’entrée/sortie se rangent, selon leur ordre de priorité, de 1 à 7 ou de 1 à 13.

Quand un canal sollicite une interruption, l’unité centrale transfère le contrôle au mot d’interruption du programme de ce canal. Le contenu de ce mot d’interruption du programme détermine si l’état d’interruption doit être ignoré ou si un programme d’interruption doit être lance.

6. Les possibilités de vérification (contrôle).

Les GE-400 peuvent être programmés de telle façon que toute erreur détectée provoque une interruption du programme et que cette interruption détermine, sans que le système s’arrête, un transfert à un sous-programme de correction du programme.

Par exemple, si, pendant une opération de lecture de bandes magnétiques, un incident de parité est détecté, le contrôleur de bandes magnétiques positionne automatiquement un indicateur d’incident dans l’unité centrale. Une fois l’opération terminée, l’état du dérouleur de bande est examiné et le contrôle est alors transféré à un programme de correction qui relit la bande sous le contrôle du programme. Le programmeur peut choisir en cas d’incident, la procédure qui convient le mieux à son programme. Les autres opérations périphériques peuvent se poursuivre pendant la correction d’un état d’incident. Le programmeur peut désirer tenir l’opérateur au courant des incidents éventuels, au moyen de messages prévus par le programme et tapés par la machine à écrire d’entrée/sortie.

LES AIDES A LA PROGRAMMATION (SOFTWARE)

Pour l’utilisateur d’un ensemble électronique, les aides à la programmation Software possèdent une importance au moins équivalente aux caractéristiques propres de la machine elle-même. C’est pour cette raison que General Electric s’est efforcé d’élaborer pour la série des Compatibles 400 un ensemble aussi complet que possible des programmes. Dans ce but ont été mis au point des programmes modulaires à partir desquels l’utilisateur peut construire un système satisfaisant à ses besoins. Ce système est une entité dans laquelle sont utilisées les techniques modernes de programmation, mais cette entité reste dynamique et peut toujours évoluer en fonction du développement de l’installation et/ou des travaux ou encore bénéficier des apports de techniques de programmation nouvellement mises au point.

Les programmes modulaires utilisés avec les GE-400 présentent un certain nombre de caractéristiques essentielles:

- Il est possible de choisir et d’utiliser le niveau de langage approprié à chaque tâche. Ainsi, par exemple, un programmeur peut combiner, suivant les besoins, des programmes écrits en COBOL et en langages de l’assembleur de base et du macro-assembleur.

- Le langage d’origine pour la rédaction de chaque programme particulier peut être librement choisi grâce à l’utilisation d’un programme de chargement standard, d’une structure standard, des programmes machines et des supports d’information.

- La mise au point des programmes-sources est efficacement réalisée en raison de l’existence de compilateurs rapides et de la segmentation des programmes.

- Le caractère modulaire du système offre une large gamme d’exploitation.

- Enfin, l’exploitation peut atteindre une grande efficacité et l’utilisation des unités périphériques peut être rendue optimale par l’emploi des programmes d’entrée/sortie et des interruptions.

En dehors de l’assembleur de base ou autocode qui est un langage élémentaire de programmation produisant des programmes en format translatable, la série des compatibles GE 400 possède une importante bibliothèque de programmes généraux que nous allons sommairement décrire dans les pages suivantes.

-Système d’entrée/sortie de base (BIOS).

Ce système de base qui a été conçu pour faciliter l’utilisation de tous les autres systèmes de programmation peut presque être considéré comme faisant partie intégrante de la machine (tout comme un élément de « hardware »). Il se trouve en effet presque constamment enregistré en mémoire. Le BIOS peut être divisé en quatre sections distinctes:

- La section de contrôle de l’entrée/sortie évite de réassembler les programmes déjà écrits lorsque la configuration des équipements périphériques a été modifiée sur la machine. Pour ce faire, le programme objet adresse l’équipement périphérique au moyen d’un numéro qui est traduit par le BIOS. De cette manière, un programme écrit pour une machine déterminée peut être également utilisé sur tout autre machine de la même famille.

- La section du canal de l’unité centrale possède quatre sous-sections fonctionnelles de base capables d’exploiter et interpréter chacune des quatre interruptions possibles du canal de l’unité centrale.

- La section de contrôle de la machine à écrire contient les séquences nécessaires à la lecture ou à l’écriture de messages à partir de la machine à écrire en mode alphanumérique ou octal.

- La section moniteur est constituée: de séquences gérant les fins de travail permettant l’enchaînement automatique sur le travail suivant par l’appel du programme moniteur, d’une zone de communications de 21 mots assurant le lien fonctionnel entre les divers programmes de service (assembleurs, moniteur, chargeur).

 - Le macro-assembleur.

Le langage du macro-assembleur est une extension logique de l’assembleur de base qui est essentiellement lié à la machine. Cette extension prend la forme de macro-instructions qui peuvent être utilisées pour effectuer des opérations sur des données décrites à l’aide de définition de zones. Ce langage est tel qu’une instruction peut générer plusieurs instructions machine. Il existe des macro-instructions pour les opérations d’entrée/sortie, les opérations arithmétiques, les transferts de données et les commandes de procédure.

Les macro-instructions d’entrée/sortie peuvent communiquer avec le système d’entrée/sortie de base (BIOS) et avec le système d’entrée/sortie complet (EIOS). Il est ainsi possible de normaliser et de faciliter la programmation pour tout l’équipement périphérique.

Le programme de macro-assemblage comprend quatre parties:

Pour utiliser le programme de macro-assemblage, il est nécessaire de disposer d’un ensemble comprenant:

- Une unité centrale avec mémoire 8K;
- Un contrôleur de bande;
- Quatre lecteurs de bande;
- Une imprimante;
- Un lecteur de cartes;
- Un perforateur de cartes.

Le programme peut utiliser avantageusement des modules de mémoire supplémentaires et des lecteurs de bandes magnétiques peuvent être substitués aux unités périphériques plus lentes.

Le programme d’origine écrit sur les feuilles de programme est perforé sur des cartes (même dessin que la feuille de programme) et est ensuite introduit dans le calculateur, soit directement à partir des cartes, soit à partir d’une bande magnétique dont les enregistrements ont le même dessin que les cartes.

Le programme de macro-assemblage comprend trois phases:

La phase de traduction correspond à l’analyse des cartes d’entrée d’origine et détermine si le langage du macro-assembleur a été utilisé ou non. Si le programme d’origine ne contient pas de division environnement ou données, la phase d’assemblage est chargée dans le calculateur et les phases non nécessaires à l’assemblage ne sont pas utilisées.

Le programme de macro-assemblage permet d’utiliser un langage d’origine avec macro-instructions et de traduire ce langage en instructions des GE 400. Le langage de l’assembleur de base comporte un code pour chaque opération que le calculateur peut exécuter. Le langage du macro-assembleur permet de disposer d’instructions qui génèrent une série de ces codes opérations. Ce langage exécute des opérations sur des données décrites lors de définitions de zones.

Il est une extension logique du langage de l’assembleur de base. Les chances d’introduire des erreurs dans le programme d’origine se trouvent ainsi considérablement réduites.

Le programmeur peut écrire entièrement son programme dans le langage du macro-assembleur ou bien combiner les opérations de l’assembleur de base aux macro-opérations.

Des macro-instructions supplémentaires peuvent être ajoutées au langage d’origine. Les générateurs nécessaires au traitement de ces instructions peuvent être écrits par l’utilisateur dans le langage du macro-assembleur ou de l’assembleur de base. Ils peuvent également être ajoutés au programme de macro-assemblage sous la forme d’un sous-programme de bibliothèque.

Le programme de macro-assemblage présente les principales caractéristiques suivantes:

- Un ensemble minimum mais suffisant de macro-instructions;

- Toutes les opérations-machine et pseudo-opérations disponibles dans le langage assembleur de base;

- Une division donnée séparée avec format fixe;

- Le moyen d’obtenir les sous-programmes d’entrée/sortie automatiques;

- Un langage d’origine qui est commode pour le programmeur et qui est facilement assemblé;

- Une division identification qui fournit une description suffisante du programme d’origine.

 - Le système d’entrée/sortie complet (EIOS).

Dans un programme courant, le programmeur doit répéter au point voulu la codification nécessaire à l’exécution des entrées/sorties, ce qui notamment prend de la place en mémoire et introduit des risques d’erreurs supplémentaires, tout en limitant la compatibilité des programmes. C’est dans le but de diminuer ou de supprimer ces inconvénients et de simplifier le travail du programmeur que le système d’entrées/sorties complet (EIOS) a été écrit.

Ce système est un ensemble de sous-programmes traitant des entrées/sorties et qui a, en plus de celles du BIOS, les caractéristiques suivantes:

- Groupage et dégroupage des articles d’un bloc;

- Traitement alterné des zones d’entrée/sortie;

- Traitement continu des entrées/sorties base sur l’interruption automatique de priorité;

- Vérification des labels de bande;

- Traitement alterné des bandes dès détection de « fin de bande »;

- Comptage des blocs et utilisation des numéros de séquence des blocs (block serial number);

- Points de reprise;

- Désignation modulaire utilisant au mieux la mémoire.

Les programmes de l’EIOS permettent de commander toutes les unités périphériques à savoir: l’unité de bande magnétique (avec ou sans double canal), le lecteur de cartes, le perforateur de cartes, l’imprimante, la machine à écrire, le lecteur de bande perforée, le perforateur de bande, la mémoire à disques, le lecteur/trieur de chèques.

Les programmes de l’EIOS sont incorporés au programme généré par l’intermédiaire du MAP et la configuration nécessaire pour l’EIOS est la même que celle qui est requise pour le MAP. Leur désignation modulaire permet au programmeur de sélecter uniquement les modules nécessaires pour l’exécution des fonctions d’entrée/ sortie désirées par le programme généré.

L’EIOS comprend quatre groupes distincts de programmes:

Les sous-programmes communs d’entrée/sortie de l’EIOS destinés à être incorporés dans chaque programme assurent de façon standard, l’exécution des fonctions de base (transfert de données, vérification de ces transferts, etc.).

D’autre part, de manière à éviter au maximum les risques d’erreurs, des programmes de traitement de « labels ,» (ou étiquettes) de bande ont été inclus. Ces labels comportent trois parties en entrée.

En fin de bande, les labels permettent, d’une part de faire la distinction entre fin de bobine et fin de fichier et, d’autre part, la vérification du nombre de blocs écrits sur la bande.

Il existe également des parties laissées en blanc où le programmeur peut écrire les remarques qu’il juge utiles.

- Package de multiprogrammation.

Ce puissant élément de software permet le déroulement simultané en mémoire d’un nombre de programmes indépendants limité seulement par les périphériques disponibles et la taille de la mémoire. Six routines distinctes (exécutif, entrées-sorties, interruption, contrôle opérateur, initiation, fermeture) permettent le changement, le démarrage et la terminaison d’un programme quelconque appelé par l’opérateur concurremment au déroulement des autres programmes en machine. L’ensemble opère sous le contrôle du moniteur.

- I.D.S. Integrated Data Storage

C’est une méthode nouvelle unique d’utilisation d’un fichier central chaîné sur disques, basée sur la création de liens de relations fonctionnelles entre des éléments d’enregistrements (un texte de commande sera chaîné aussi bien à un numéro de commande qu’à un numéro de vendeur par exemple). Le fichier est traité comme une extension directe de la mémoire par des macro-instructions puissantes mais simples d’emploi.

L’apparition d’IDS rend enfin praticable l’utilisation des mémoires à accès aléatoire si séduisantes sur le plan théorique.

- Le COBOL GE 400

Le compilateur COBOL GE-400 permet de traduire COBOL 61 et ses extensions, ainsi que certains éléments facultatifs de COBOL. Des programmes écrits en COBOL 61 sont compatibles avec les autres systèmes de programmation GE-400, tels que le générateur de programmes d’édition d’états imprimés et le programme de macro-assemblage.

Les quatre divisions séparées de COBOL GE 400 correspondent aux quatre éléments principaux exigés pour la solution des problèmes de traitement de l’information dans le domaine de la gestion: divisions identification environnement, données et procédures.

Le COBOL GE 400 permet d’utiliser automatiquement les instructions à une ou deux adresses, tous les mots index, l’éclatement et le réassemblage des données.

 - Le FORTRAN 400.

FORTRAN 400 est un langage de codification automatique conçu principalement pour les applications scientifiques et techniques. Il est utilisé couramment dans toute l’industrie et est considéré comme un langage universel de programmation scientifique. FORTRAN 400 ressemble beaucoup au langage mathématique et constitue ainsi un moyen de communication commode entre l’utilisateur et le calculateur.

Il comprend des déclarations entrant dans l’une des catégories suivantes:

Ces déclarations sont composées de constantes, de variables, d’indices, d’expressions arithmétiques et logiques et d’appel à des sous-programmes.

 - Les programmes relatifs au système opératoire.

Le chargeur Les segments du programme qui ont été testés et assemblés séparément vont être chargés à des emplacements consécutifs et réunis effectivement au dernier moment, simplifiant la mise au point de tout le programme.

Le moniteur assure la gestion optimum de la machine en améliorant le rapport temps utile/temps disponible.

a) Il permet une utilisation économique de la machine pendant les séances de mise au point des programmes en enchaînant automatiquement les phases d’assemblages et d’essais (LOAD and GO), assurant éventuellement l’arrêt d’un programme mal codé et l’enchaînement sur le programme suivant.

b) Il assure une exploitation continue des programmes d’exploitation, soit en fonction de paramètres, soit en fonction d’un ordre préétabli sur une bande programme.

Le Librarian permet de constituer des bandes programme source ou programme objet, d’assurer leur maintenance et de créer également les bandes comportant les compilateurs qui seront utilisés par le moniteur.

- Les générateurs de tri et fusion.

Ils utilisent le scatter-gather et l’adressage indirect, ce qui réduit les temps de tri et de fusion. Ils permettent l’insertion par l’utilisateur de son propre programme pour des traitements précédant ou suivant le tri ou la fusion des enregistrements.

Les programmes générés peuvent être placés sur une bande magnétique pour être utilisés avec un temps d’appel minimum.

 - Les générateurs d’états imprimés.

Une simple procédure remplace le travail de codification de l’édition, généralement fastidieux. Les descriptions de la page à éditer, de la date, du numéro de la page et de la partie des informations à prendre en compte pour traitement et décisions logiques suffisent au générateur.

Le programme ainsi constitué peut alors être utilise par le système opératoire, écrit sur la bande magnétique et exploité par le moniteur de programme.

texte collecté et numérisé par R Koelbel et Jean-Pierre Mourieras.

Le texte original anglais de General Electric a été traduit avec le dialecte de l'époque par le service technico-commercial de Bull-General Electric.