Système IBM/3 - IBM System/3

Système IBM/3
Logo IBM.svg
Unità centrale di IBM sistema 3 - Museo scienza tecnologia Milano D0828-D0830 foto.jpg
IBM System/3 modèle 10 au Museo Nazionale della Scienza e della Tecnologia , Milan
Introduit 1969 ; il y a 52 ans ( 1969 )
Abandonné 1985 ; il y a 36 ans ( 1985 )
Coût 1 000 $/mois à louer
Mémoire 4 096 octets
Langue IBM RPG II

L' IBM System/3 était un ordinateur de milieu de gamme IBM introduit en 1969 et commercialisé jusqu'en 1985. Il a été produit par IBM Rochester dans le Minnesota en tant qu'ordinateur professionnel bas de gamme destiné aux petites organisations qui utilisaient encore des ordinateurs de la série IBM 1400 ou un équipement d'enregistrement d'unités . Premier membre de ce qu'IBM appelle sa gamme "milieu de gamme", il a également introduit le langage de programmation RPG II . C'est le premier ancêtre de la gamme de produits dont la version actuelle est la série IBM i et comprend le très réussi AS/400 .

Histoire

Unité de traitement System/3 et 5496 keypunch

Lors de son lancement en 1969, il était disponible pour 1 000 $/mois, soit moins de la moitié du prix d'un IBM System/360 Model 20 ; le plus petit membre de la famille IBM System/360.

La plupart des unités System/3 modèle 10 d'origine ont été expédiées sans disque, avec seulement la nouvelle unité de carte multifonction IBM 5424 (MFCU) qui lisait, perforait, imprimait et triait les nouvelles cartes perforées à 96 colonnes plus petites introduites en même temps.

IBM a livré les modèles suivants :

  • 1969 - IBM 5410, ou System/3 Model 10, introduit (expédié en 1970)
  • 1970 - IBM 5406, ou System/3 Model 6, introduit (système orienté disque)
  • 1973 - IBM 5415, ou System/3 Model 15, introduit
  • 1974 - IBM 5408, ou System/3 Model 8, introduit
  • 1975 - IBM 5412, ou System/3 Model 12, introduit
  • 1976 - IBM 5404, ou System/3 Model 4, introduit

Le System/3 et les modèles successeurs System/32 , System/34 , System/36 et System/38 sont généralement appelés dans la terminologie IBM « systèmes de milieu de gamme » — contrairement aux mainframes d'IBM .

Matériel

carte perforée 96 colonnes
IBM 5496 Data Recorder, le keypunch pour les cartes à 96 caractères
IBM 5486 Card Sorter utilisé avec les cartes perforées System/3

L'IBM System/3 a été annoncé comme un système informatique composé initialement de :

  • Unité centrale de traitement IBM 5410 modèle 10
  • Unité de carte multifonctionnelle IBM 5424 (MFCU)
  • Imprimante de ligne IBM 5203
  • Stockage sur disque IBM 5444 (facultatif)
  • Clavier d'imprimante IBM 5471
  • Clavier de saisie de données IBM 5475
  • IBM 5496 Data Recorder, une machine à perforer avec des fonctions d'impression et de vérification
  • Trieur de cartes IBM 5486

Mémoire

Les modèles d'entrée avaient aussi peu que 4K (4096) octets de mémoire à noyau magnétique .

Stockage à accès direct

Pour le stockage de masse, le System/3 utilisait le disque à plateau unique IBM 5444 , à peu près la taille d'une grande pizza ; au départ, chaque plateau contenait 2,5 Mo de données. La configuration standard pour le stockage était un ou deux disques fixes, chacun dans un tiroir coulissant séparé, qui contenait généralement le système d'exploitation et les programmes développés par l'utilisateur. De plus, chaque disque fixe pourrait avoir un disque de cartouche amovible attaché ; ceux-ci contenaient généralement les fichiers de données associés à diverses applications, par exemple la paie, et les utilisateurs en avaient fréquemment un certain nombre. Ainsi, les systèmes bas de gamme pouvaient prendre en charge un maximum de 10 Mo de stockage en ligne (deux fixes, deux amovibles), bien qu'en pratique cela soit très coûteux et peu courant.

Le System/3 était également disponible avec le lecteur de disque IBM 5445 (20 Mo) et plus tard le modèle 15 autorisait les lecteurs 3340 de style "winchester". Sur les modèles plus petits, alors que vous pouviez connecter 5445 disques, vous deviez garder le 5444 pour le système d'exploitation et d'autres bibliothèques de programmation, mais cette limitation a été modifiée avec un logiciel appelé elimn8 qui a permis aux 5445 disques de remplacer totalement les 5444. D'autres sociétés telles que Memorex ont fabriqué des lecteurs compatibles 5445 pour le System/3.

Unité de carte multifonction

Le périphérique à cartes perforées le plus courant était l'unité de cartes multifonctions (MFCU) IBM 5424 qui lisait, perforait, imprimait et triait les nouvelles cartes perforées plus petites à 96 colonnes . Au lieu des perforations rectangulaires de la carte IBM classique à 80 colonnes, les nouvelles cartes avaient de minuscules trous circulaires (1 mm), un peu comme du ruban adhésif en papier . Les données étaient stockées dans un code décimal codé binaire à six bits , avec trois rangées de 32 caractères chacune, ou en EBCDIC à 8 bits , avec les deux trous supplémentaires situés dans les rangées supérieures. Les nouvelles cartes pouvaient contenir 128 caractères imprimés sur quatre rangées de 32 caractères chacune. Elles faisaient environ 1/3 de la taille des anciennes cartes à 80 colonnes, mais contenaient 20 % de données textuelles en plus. La carte plus petite et donc plus légère pourrait être traitée avec un équipement plus rapide et avec moins de bourrages.

Disponibles en tant que RPQ (équipements de commande spéciale) pour gérer les cartes à 80 colonnes, l'IBM 2560 Multifunction Card Machine (MFCM) pouvait lire, perforer, interpréter et trier, et l' IBM 1442 qui ne pouvait que lire et perforer.

Bande magnetique

Le stockage hors ligne était disponible avec l'achat d'un lecteur de bande externe qui lisait et écrivait une bande IBM standard à 9 pistes .

Le System/3 Mod 10 incluait en option le sous-système de bande magnétique IBM 3410.

Installation de la console de l'opérateur

L'installation de console d'opérateur System/3 (OCF) consistait soit en une machine à écrire IBM Selectric modifiée interfacée avec l'ordinateur, soit en un écran IBM 3270 à usage spécial . Dans l'OCF, il était possible d'« annuler » les processus et/ou les tâches en cours d'exécution, y compris l'une ou l'autre des partitions (P1 ou P2). Le système ne pouvait exécuter que deux programmes simultanément, à l'exception du modèle 15 ou des systèmes exécutant le programme de contrôle des communications, CCP. Le CCP était une fonction de programmation de contrôle du système qui permettait de prendre en charge un réseau en ligne de terminaux .

Imprimantes

Imprimante IBM 5203 pour System/3

Une imprimante plus petite (IBM 5203) était connectée au système principal. Plus tard, IBM a proposé plusieurs modèles de la gamme d'imprimantes IBM 1403 existante , qui avait été initialement conçue pour l' ordinateur IBM 1401 .

Disquette

Avec l'arrivée du système de saisie de données IBM 3740 , le System/3 Model 10 est doté d'une fonctionnalité appelée LCA (adaptateur de communication locale) qui permet à une station IBM 3741 d'être « attachée » au système pour transmettre/recevoir des données. Les modèles ultérieurs du System/3 tels que le modèle 8 étaient sans carte et utilisaient la disquette de style 8" 3740 .

Jeu d'instructions

Le jeu d'instructions a été optimisé pour deux aspects clés du produit : la disponibilité limitée de la mémoire principale et le langage de programmation RPG II. Le S/3 d'origine (modèles 10 puis 6, 8 et 12) comportait 29 instructions, toutes occupant entre 3 et 6 octets (24 à 48 bits).

Les 4 premiers bits véhiculaient beaucoup d'informations : "1111" signifiait qu'il s'agissait d'une instruction sans opérande, appelée commande. par exemple Start I/O (l'opération d'E/S étant définie par les registres d'E/S précédemment chargés). "11xx" et "xx11" désignaient une instruction à 1 opérande, telle qu'une branche. Si xx était 00, l'opérande était adressé par son adresse complète de 16 bits. xx=01 ou 10 signifiait que l'adressage par déplacement de base était utilisé, en utilisant le registre d'index 1 ou 2 respectivement. Une adresse de base aurait préalablement été chargée dans l'un des deux registres d'index et l'instruction contenait le déplacement de 256 octets seulement (8 bits d'adressage).

D'autres modèles pour ce premier demi-octet indiquaient une instruction à 2 opérandes. "0000" signifiait que les deux opérandes étaient adressés par leur adresse directe de 16 bits. "0100" : l'opérande 1 utilise reg 1 comme base ; l'opérande 2 utilise l'adressage direct. "0110": l'opérande 1 utilise reg 1 comme base, l'opérande 2 utilise reg 2. Et ainsi de suite.

Les 4 bits restants du premier octet définissent davantage l'instruction. Cette structure signifiait qu'il était possible d'avoir jusqu'à 64 opérations en tout : 16 commandes (bien qu'il n'y en ait jamais eu plus de cinq sur l'ensemble de la gamme de produits) ; 16 instructions à 1 opérande commençant par 11xx ; 16 instructions à 1 opérande commençant par xx11 ; 16 instructions à 2 opérandes.

En plus des deux registres d'index déjà mentionnés (appelés 1 et 2, ou binaires 01 et 10), il y avait d'autres registres. "Reg 4" (0100) était le registre d'adresse d'instruction (IAR) qui pointait vers l'instruction en cours. "Reg 8" (1000) était le registre de rappel d'adresse (ARR), défini par certaines instructions. Parmi ceux-ci se trouvait le branchement conditionnel (mnémonique BC) qui l'utilisait pour pointer vers l'octet suivant immédiatement l'opération de branchement. Pour les programmeurs habitués au comportement de l'ordinateur central IBM, cela signifiait que l'opération de branchement S/3 pouvait être comparée à un BALR conditionnel (registre de branchement et de lien) - très utile lors du branchement à un sous-programme et de retour après son traitement. Enfin, "Reg 16" (00000000) était le registre d'état du programme (PSR), contenant des éléments tels que les résultats d'une instruction de comparaison. Notez que les registres n'étaient utilisés que pour l'adressage et l'état du programme, pas pour l'arithmétique.

Les instructions arithmétiques fournies parmi les 29 instructions étaient des additions/soustractions binaires (fournies pour aider à manipuler les adresses) et des additions/soustractions décimales. La multiplication et la division n'étaient pas prévues par le matériel standard et devaient être gérées par des routines logicielles. Il n'y avait aucune disposition de virgule flottante. Tout cela a continué d'être vrai même avec les systèmes/34 et 36 plus récents et généralement plus sophistiqués.

Tout ce qui précède est devenu plus compliqué avec le modèle System/3 15, et les Systems/34 et /36. Bien qu'utilisant toujours un adressage 16 bits, tous ces systèmes pouvaient prendre en charge plus de 64 Ko de stockage principal (jusqu'à 512 Ko et théoriquement plus), donc la traduction d'adresses a été utilisée pour passer d'un espace d'adressage de 64 Ko à un autre. Les registres de traduction d'adresses ont été configurés pour définir l'espace d'adressage réel utilisé à un moment donné, leur contenu étant concaténé avec l'adresse de 16 bits utilisée par un programme pour produire une adresse réelle. Ces "ATR" étaient privilégiés, disponibles uniquement pour le système d'exploitation.

Le modèle S/3 original 10 (et le modèle ultérieur 12) comportait une forme brute facultative de multi-programmation appelée fonction de double programme. Cela ne fournissait plus d'adressage de la mémoire principale, mais donnait deux ensembles de registres et d'instructions qui basculaient d'un "niveau de programme" à l'autre. Les instructions d'E/S standard ont également été modifiées pour basculer lorsqu'une E/S a été démarrée.

Jusqu'à présent, seul le premier octet de l'instruction a été expliqué ici. L'octet suivant ("Q") était généralement un qualificatif, tel que la spécification du nombre d'octets à déplacer dans une opération de déplacement de caractères ou la condition à tester dans une branche. Quelques instructions ont utilisé cet octet pour un opérande "immédiat" de 1 octet. Le(s) octet(s) restant(s) étaient pour le(s) déplacement(s) ou adresse(s) pour les opérandes, ou les détails pour certaines commandes.

Un exemple : une commande simple, Conditional Jump, un type spécial de branchement conditionnel (en avant uniquement, jusqu'à 256 octets) adapté principalement pour sauter par-dessus de courts blocs de code : Op code byte= F2 (c'est en hexadécimal, Hex F est binaire 1111, Hex 2 (0010) définit l'op); Q byte= 0000001 spécifie que nous "sautons" si le registre de condition a le bit "égal" activé ; Opérande= 00011000 : si la condition est remplie on saute de 24 octets en avant.

Les indicateurs étaient des commutateurs binaires utilisés pour contrôler le déroulement du programme. Plus de 100 d'entre eux étaient à la disposition du programmeur. En utilisant les formats d'instructions expliqués ci-dessus, de nombreuses opérations orientées indicateur pourraient tenir dans seulement 3 octets. Par exemple, une ligne de RPG peut tester un indicateur pour « On » : 3 octets pour une opération « Test Bits On » ; puis 3 octets pour un Jump, comme décrit précédemment, et utile au compilateur RPG. Enregistrer l'octet impair ici et là était bien quand vous n'aviez que 64K pour jouer - et, sur le S/3 lui-même, cela devait inclure le système d'exploitation (qui est passé à environ 20K sur le modèle 10 avec l'introduction du " Programme de contrôle des communications", CCP).

Langage de contrôle des opérations

Un langage de contrôle de travail simple appelé Operation Control Language (OCL) était superficiellement similaire au Job Control Language (JCL).

Commandes de contrôle de l'opérateur

Les commandes de contrôle de l'opérateur (OCC) ont été utilisées pour communiquer avec le système.

Langues

Le System/3 supportait RPG II , Fortran IV , COBOL et Assembler .

Compilateur RPG II

Le System/3 est livré en standard avec un compilateur RPG II . Dans un système à carte seule, le compilateur RPG II a été fourni en deux phases. La première phase serait démarrée à partir d'une trémie d'entrée du MFCU, et la source serait ensuite lue après le compilateur. Un formulaire intermédiaire a été perforé sur des cartes, qui ont ensuite été lues par la deuxième phase du compilateur. Une plate-forme de programme exécutable a ensuite été perforée. Cet exécutable pourra alors être amorcé ("IPL'ed", pour "Initial Program Load") pour effectuer le traitement souhaité. Ce processus peut nécessiter plus d'une heure pour un programme de taille importante.

Problèmes avec System/3

Le System/3 n'avait aucune disposition pour arrêter un processus une fois qu'il avait commencé à s'exécuter. Par exemple, si une compilation échouait à cause d'une erreur sur la toute première page, l'utilisateur devait attendre qu'une liste de compilation parfois volumineuse s'imprime dans son intégralité. Les utilisateurs ont appris à passer la main sous l'imprimante et à bousculer la goulotte d'éjection du papier, ce qui entraînerait l'arrêt de la machine avec un "P3" (erreur d'imprimante) affiché. L'utilisateur pourrait alors composer le code de réponse FF pour annuler l'exécution. Une autre façon de l'arrêter était simplement d'appuyer sur le bouton vert "Démarrer" de la console, provoquant le redémarrage du système.

Les codes d'erreur étaient affichés sur un écran à deux chiffres et à sept segments (l'un des premiers vus et construit avec des lampes plutôt que des LED). La gamme de codes d'erreur comprenait non seulement des chiffres décimaux et hexadécimaux (car les affichages à sept segments sont couramment utilisés), mais également un ensemble limité d'autres lettres ; par exemple, "P3" était l'un des nombreux codes d'erreur de l'imprimante. Un manuel épais fourni avec le System/3 a aidé l'opérateur à interpréter les codes d'erreur et les procédures de récupération suggérées. Le System/3 n'avait pas de dispositif d'avertissement sonore, donc un programme qui n'imprimait pas, ne lisait pas les cartes ou ne provoquait pas d'autres activités évidentes pouvait s'arrêter et l'opérateur ne le saurait pas à moins qu'il ne regarde l'affichage d'état. Les modèles dotés de la fonction Dual Program avaient deux affichages d'état distincts.

La plupart/beaucoup d'utilisateurs n'ont pas acheté de console. Au lieu de cela, le code OCL a été entièrement supprimé ou imprimé sur l'imprimante 5203. La console offerte par IBM ralentissait considérablement l'exécution du programme lorsqu'elle imprimait des commandes OCL, car il s'agissait essentiellement d'une machine à écrire électrique .

Le concept de saisir vos cartes perforées via la console était un stratagème marketing. En réalité, le System/3 ne pouvait pas être un ordinateur et un keypunch en même temps, donc quand c'était un keypunch, aucun calcul n'était possible. L'IBM System/3 original, qui a été présenté en juillet 1969, avait la console keypunch afin qu'ils puissent offrir un ordinateur pour moins de 2 000 $/mois. En réalité, c'était impraticable et presque invariablement les utilisateurs ont acquis un keypunch/vérificateur autonome.

Plus tard, plusieurs sociétés OEM ont construit des perforatrices, des trieuses et des assembleuses à 96 colonnes. Cela a enlevé le « poids lourd » du MFCU et a libéré le System/3 pour les fonctions informatiques réelles.

La plupart des utilisateurs System/3 expérimentés ont minimisé autant que possible l'utilisation du MFCU, car il s'agissait d'un goulot d'étranglement du système.

Émulation

Les derniers System/32 , IBM System/34 et IBM System/36 étaient tous capables d'exécuter des applications System/3 via l'émulation.

Le System/32 utilisait un processeur microcodé verticalement , avec des mots de microcode de 16 bits, qui émulaient le jeu d'instructions System/3, assez lentement, en microcode. Le System/34 et le System/36 avaient tous deux deux processeurs : un Control Storage Processor (CSP), comme dans le System/32, qui gérait la plupart des opérations de supervision et d'entrée/sortie, et un Main Storage Processor (MSP). Ce dernier était une réimplémentation du processeur System/3 modèle 15 ; fournissant efficacement "l'émulation matérielle" du System/3.

Voir également

Les références

Lectures complémentaires

  • "Tout ce que vous avez toujours voulu savoir sur le système/3 mais personne ne vous l'a dit" de Charlie Massoglia
  • "System/3 Disk Sort comme langage de programmation" par Charlie Massoglia
  • "System/3 Programming RPG II" par Solomon Martin Bernard, 1972, ISBN  0-13-881698-0
  • "Une introduction à l'informatique : IBM System/3" par Jerome T. Murray, 1971, ISBN  0-04-510037-3
  • "Business System with Punched card data processing and System/3 Model 10", par FR Crawford, 1973, ISBN  0-13-107698-1

Liens externes