Compagnie Honeywell-Bull    

Ligne GCOS7

Level 64

PÉRIPHÉRIQUES
PERIPHERALS

1971-1978

Appareils "unit record" (cartes et imprimantes)

Appareils de mémoire à disques magnétiques

Appareils à bandes magnétiques

Unit Record Devices

Magnetic Disk Devices

Magnetic Tapes Devices

 

Unit Record Processor

Une partie importante de l'architecture du Level 64/DPS-7 est dissimulée dans un mini-ordinateur auxiliaire formellement connu sous le nom de processeur de périphériques Unit record. On emploiera ici le nom engineering, moins promotionnel, mais bien plus utilisé d'URC (Unit Record Processor).

Lorsque des systèmes possédant plus d'une URC ont été commercialisés, l'URC principale -celle connectée au canal de maintenance du processeur central- a reçu le nom de SURP System Unit Record Processor. Les différences opérationnelles entre le SURP et les URC ordinaires sont décrites dans les paragraphes initialisation et maintenance ci-dessous.

© 2002,2003  Jean Bellec

  • Histoire
  • Projet
  • Architecture
  • Technologie
  • Micro-Logiciel

Histoire de l'URC

Origine:

A une revue du programme Charlie à la fin de 1967, John Haanstra suggéra l'adoption d'un mini-ordinateur pour effectuer le contrôle des entrées sorties. A cette époque, ni Bull-GE, ni General Electric ne disposaient de matériel semblable - le Datanet-30 était construit en une technologie obsolète et son successeur le Datanet 355 était plus puissant, mais trop cher pour être utilisé à plusieurs exemplaires sur un système moyen.
L'équipe de Georges Lepicard avait déjà commencé à faire les spécifications d'un contrôleur de lignes de télécommunications micro-programmable qui évolua au cours de l'année 1968 en ce qui devint plus tard connu sous le nom de URC (Unit Record Controller).
La raison pour laquelle ce mini-ordinateur s'appelle Unit Record, est que Bull-General Electric avait obtenu la "mission" des appareils Unit Records (appareils à cartes et imprimantes) pour le groupe, les appareils étant confiés à Belfort, les sous-systèmes NPL devant être conçus à Paris dans le Medium Systems Department.
Cet URC, essentiellement optimisé pour le système moyen -futur Level 64- devait servir aussi de sous-système unit record pour le haut de gamme et l'établissement parisien ne faisait pas trop mystère de son souhait de voir utiliser cette plate-forme comme un processeur de bas de gamme, réglant ainsi un vieux compte avec leurs amis transalpins.
Le système en cours de conception n'était pas -en principe un système transactionnel- mais il semblait désirable de le doter d'une configuration minimale de ligne de communications (support de Teletypes et de ligne haute vitesse 4800 bps pour le remote batch). Un système doté d'un processeur 16-bits   fonctionnant à une fréquence de 6 MHz -celle du CPU- devait être capable de multiplexer un ensemble d'appareils à cartes, une imprimante et 16 lignes à 110 bps en plus d'une ou deux lignes remote batch, moyennant la dotation de mémoires tampon adaptées.
L'idée d'un processeur de maintenance faisant les diagnostics off-line de la logique du processeur principal et capable de suppléer aux procédures manuelles d'initialisation du système se fit jour en 1969-1970 et comme ce processeur était susceptible d'utiliser off-line les périphériques unit record, il apparut judicieux de combiner ces fonctions avec celles de l'URC. Le seul appareil manquant était une mémoire de masse permanente pour laquelle l'utilisation des cassettes de ruban magnétique était -en 1970- une solution acceptable, qui devint encore plus attrayante lorsque les augures annoncèrent que ce media pouvait remplacer avantageusement la carte perforée comme véhicule de saisie de données.

Projet URC

La conception et la réalisation de l'URC a été réalisée dans la division Périphériques de la direction hardware des Systèmes Moyens de Honeywell-Bull sous l'autorité de Henri Verdier.

Les outils logiciels étaient développés dans la division Software de la Direction hardware, initialement dirigée par Michel Rocher, puis par Jean-Jacques Pairault.

Les "device adapters" de périphériques étaient conçus par l'équipe de Henri Verdier et réalisés par les constructeurs des périphériques -ils se trouvaient dans l'armoire du périphérique et packagés avec l'électronique analogique spécifique de celui-ci, à l'exception des adaptateurs de communication (MLA) , intégrés dans un tiroir voisin de l'URC, réalisés par l'équipe de Jean Akriche chez Henri Verdier.

 

Architecture de l'URC

Bien que l'URC ait été conçu comme un mini ordinateur à usage général, on n'avait jamais envisagé que sa base architecturale soit directement programmable par l'utilisateur final. Lorsqu'on a envisagé son utilisation comme processeur de bas de gamme, l'"interior decor" considéré devait être un code d'instructions compatible avec celui du 64 (aligné octet, instructions de longueur variable...) interprété par du "firmware" et non le décor natif offert par le matériel (machine mot de 16-bits, adressage limité à 64KB, 2  registres de base - un pour le code, l'autre pour les données-). On a donc appelé "firmware de l'URC" le logiciel en mode natif, dont une partie, celle du "bootstrap", et les pilotes des périphériques de base  était réalisé en PROM.

L'URC comprenait un processeur, une mémoire DRAM et des adaptateurs (1 ou 2 adaptateurs de canal PSI -liaison avec le processeur central, adaptateurs de canaux DAI -liaison avec l'électronique des périphériques).
Les canaux DAI étaient un standard Honeywell et identiques pour tous les périphériques (parallèle sur 8-bits).

Les "device adapters" de communication étaient de types différents: un adaptateur de lignes asynchrones regroupant 8 lignes à basse vitesse avec un double tampon d'un caractère par ligne, un adaptateur de ligne asynchrone à "grande vitesse" , un adaptateur de lignes synchrones BSC puis plus tard un adaptateur de ligne synchrone HDLC. Ces adaptateurs étaient échantillonnés par le programme de gestion de lignes aussi appelé "MLA firmware".

 

Technologie de l'URC

La technologie était identique à celle du processeur principal Level 64 (mémoire MOS 4Kbits, technologie TTL 74N, packaging SP-10.

 

Micro-Logiciel

Inspiré de la conception du processeur du Level 64, un "microprogrammed-OS" (MIOS) servait de système d'exploitation de l'URC. Il s'agissait d'un micro-noyau qui, non seulement gérait les interruptions, mais aussi assurait le dispatching des tâches et leur synchronisation au sein de l'URC. Ce MIOS faisait partie de la partie réalisée en PROM et était par conséquent chargé au début de l'initialisation de l'URC.

Les micro-tâches étaient les suivantes:

  • le pilote du lecteur de cartes (code en PROM)
  • le pilote du perforateur de cartes
  • le pilote de bande perforée
  • le pilote d'imprimante (PR71 et PR54)
  • le pilote du canal PSI de liaison avec le processeur central (code en PROM)
  • le pilote de cassettes de bandes magnétiques  (code en PROM)
  • le pilote de la console (modèle pour le haut de gamme développé à Billerica)
  • le pilote de lignes asynchrone TTY (console bas de gamme GE Terminet 300 compatible TTY35)
  • le pilote de la trieuse de chèques
  • le programme de gestion des lignes de communication (MLA firmware)
  • l'interpréteur du programme de maintenance

La structure de ces micro-tâches était rigoureuse, la partie procédure était réentrante de façon à pouvoir supporter le multi-tasking (ex: support de plusieurs imprimantes) et se dérouler simultanément sous contrôle du MIOS multiplexant le matériel entre ces micro-tâches (appelées micro-process). C'est ainsi que le fonctionnement des lignes de communication pouvait être complètement indépendant et ces lignes allouées à des "logiciels" différents dans le central ou l'URC.

A propos des pilotes, il faut noter que la lourdeur de la distribution des "releases" du micro-logiciel (Basic System Release BSR) conduisit le Département de Conception de Périphériques Unit Record de Belfort à réaliser des matériels rigoureusement compatibles avec des matériels antérieurs, même si le coût et la fonction de ces appareils en différaient sensiblement (ex: lecteur de cartes CR300 et lecteur de cartes Honeywell CR 1000).

Pour la liaison avec le processeur central, l'URC disposait du canal PSI et d'un canal spécial de maintenance. Ce dernier servait à lancer la réinitialisation du central, à accéder au contrôleur de mémoire centrale et à extraire le contenu des registres de l'unité centrale. Le pilote de canal PSI avait comme fonction d'assurer la communication entre le logiciel du central (via le contrôleur d'entrées-sorties du central et son firmware associé) avec les pilotes de contrôle de périphériques. Il maintenait un ensemble de "subchannels", entités logiques définissant des chemins de données (macroscopiquement asynchrones) entre les "processes" du central et des fonctions logiques sur les périphériques.
Cet asynchronisme avait des limites dues aux fonctions "temps réel" du sous-système d'entrées sorties. Ces fonctions pouvaient être réalisées, comme sur le IBM S/360, en synchronisant les "programmes canaux" du central avec les "interruptions" des entrées-sorties. Pour les opérations plus contraignantes, l'URC permettait au programmeur du central de prédéfinir des actions se déroulant dans l'URC  (actions sur caractères spéciaux de communications, actions sur les trieuses de chèques). Ces actions étaient soit définies par des déclarations transmises au programme de gestion de lignes de communication, soit par la génération d'un programme compilé pour la lecture et le tri de chèques.

Attachement de Périphériques

La spécification de l'URC, faite à un moment où la logique des devices adapters était coûteuse, n'avait pas prévu que ces devices adapters enregistraient le type d'appareil qu'ils reliaient à l'URC. Ainsi, il n'y avait pas de possibilité de reconnaissance automatique des appareils au moment de l'initialisation (Fonction Plug and Play).

Les "Device Adapters" spécifiques de chaque appareil étaient connectés à l'URC par une interface standard DAI (également utilisée sur Level 62 et Level 66). Cette interface parallèle sur un octet était directement contrôlée par les micro-programmes de l'URC.

lecteur de cartes

  • PCR80

    Le lecteur de cartes perforées PCR80 était de conception Honeywell, mais sa fabrication fut transférée à Belfort en 1972.

lecteur-perforateur de cartes

  • PCP80

    Le perforateur de cartes PCP-80 utilise la même base mécanique que le PCR80.

lecteur de documents

  • LD1

    Le lecteur de documents OCR ou MICR de fabrication Bull Belfort avait déjà été commercialisé sur les GE-100 et GE-400. Il fut reconnecté sur le Level-64

imprimante

  • PR71

    Les imprimante à bande d'impression PR46 et de la PR71 furent les première imprimantes Bull à disposer d'un ensemble de caractères interchangeable par l'opérateur du client. La bande était auto-reconnaissable par le pilote de l'URC.
    Ces imprimantes possédaient un mécanisme de saut de papier variable suivant un mécanisme firmware émulant le fonctionnement des bandes pilotes. Cette émulation se faisait dans le pilote de l'URC et pouvait être rechargé par le logiciel GCOS.
  • H112

    L'imprimante Honeywell H-112 fut essentiellement utilisée pour la reprise des systèmes récents Honeywell 3200.

La définition de l'attachement imprimante posa des problèmes particuliers dus à l'existence d'une phase off-line,  l'avance du papier. Cette avance était lancée par le micro-programme à la fin du transfert de données dans le tampon ligne de l'imprimante, mais la fin du saut de papier n'était détecté que lorsque le microprogramme se préoccupait de l'envoi de la ligne suivante. Un incident mécanique d'avance papier était donc détecté après que le logiciel du central ait reçu le signal de transfert de données. Dans le cas où le logiciel n'avait pas prévu de point de reprise au niveau de la page, ce problème risquait de provoquer un message d'erreur sur l'état d'impression "LINE MAY BE LOST"

trieuse de cheques

  • H234X

    La connexion du lecteur-trieuse de chèques (modèle MICR ou OCR) posait des problèmes que la plupart des autres appareils unit-record. Les critères de sélection (champ des données, codage, type...) de la case de réception normale des chèques étaient sous-la dépendance du programmeur d'application. De plus, la trieuse de chèques rencontrait des cas d'impossibilité de lecture devait provoquer la sélection en case rebut sans ralentir le rythme de la machine. La lecture des chèques ne devait s'arrêter que dans le cas de case d'alimentation vide, de case sortie pleine ou de bourrage.

bande perforée

Multi-Line adapter (MLA)

Le MLA est composé de deux composants: un composant matériel l'UCLA (Universal Communication Lines Adapter) panier (card cage) recevant une carte de liaison avec l'URC (Common Board) via l'interface DAI et jusqu'à 15 adaptateurs de ligne, et un composant micrologiciel l'"attachement MLA". Plusieurs modèles d'adaptateurs de ligne ont été offerts (l'adaptateur de ligne asynchrone possédant une horloge bit programmable, l'adaptateur de lignes synchrones et l'adaptateur HDLC , ces derniers étant synchronisés par le modem). L'interface entre adaptateur et UCLA est parallèle sur un caractère, l'interface entre adaptateur et modem est du type série. Les adaptateurs pouvaient indifféremment être utilisés via modem ou en connexion locale à courte distance.

L'attachement MLA reconnaît chaque caractères de contrôle, vérifie leur parité -s'il y a lieu-, interprète les caractères de contrôle de bloc et vérifie les contrôles d'intégrité (CRC) selon les protocoles de transmission, effectue -éventuellement- une traduction (ex: ASCII<>EBCDIC), et regroupe le contenu pour une transmission par blocs à l'unité centrale. En outre, l'attachement MLA interprète les caractère de Break qui interrompent la transmission et informe le central par une "attention" spécifique, pouvant interrompre le déroulement du programme canal. A chaque ligne est associée 1 ou 2 logical channels (selon half-duplex ou full-duplex).
Les options du MLA sont le mode TTY (avec support de bande perforée) , le mode Honeywell VIP (avec option de multi-point), le mode IBM BSC utilisé essentiellement en "remote batch", le mode HDLC X25 (compatible IBM SDLC). Un mode Télex 5 moments, code Baudot a été offert mais n'a guère eu d'applications. Essentiellement pour les pays nordiques un support de l'interface de commutation automatiques de circuits X21 a également été offert sur URC.

Presque tous les systèmes avec URC ont eu la console système connectée via le MLA. Seuls font exception des systèmes de haut de gamme ayant reçu un adaptateur spécial pour une console conçu à Boston à base de CRT. La console la plus répandue avant 1981 fut le General Electric Terminet 300 (compatible TTY). Il a été ensuite remplacé par un écran du type VIP, utilisé par GCOS d'abord en mode TTY, puis en mode plein écran.

 

Attachement de Canaux

Canal PSI

L'interface avec le canal PSI était une interface parallèle sur un octet. L'URC pouvait recevoir un second canal PSI permettant de la partager entre deux unités centrales. Les sous-canaux correspondant aux périphériques étaient partagés statiquement (à la génération du firmware) entre les deux appareils ce qui limitait l'intérêt de la double connexion. Elle ne fut guère utilisée que pour connecter  l'ensemble des périphériques à l'une ou l'autre unité centrale, jouant un rôle identique à celui d'un switch de canaux PSI utilisé sur les autres sous-systèmes périphériques.

Canal de maintenance

Le CPU du central (et les autres contrôleurs de périphériques) était connecté via l' interface série MCSI.

 

Initialisation

La mise au point initiale du système Level 64 commença à Paris Gambetta en avril 1972. Les contrôleurs de bandes magnétiques et de disques étaient développés à Billerica et n'étaient pas encore disponibles. Aussi, le système central et sa mémoire devaient être initialisés à partir d'un deck de cartes perforées lues dans l'URC. Cette fonction de durée assez longue (de l'ordre de 15 minutes) fut utilisée seulement avant la connexion du MSC et du MTC. En fait, le lecteur de cassette et son "device adapter" (produit par Honeywell Italia) n'étaient pas non plus disponible, ce qui fait que le paquet de cartes -en mode binaire- émulait la future cassette du point de vue fonctionnalité d'utilisation. la cassette inversement émulera le lecteur de cartes en adoptant des blocs de 120 octets (960 bits) .
A noter que le système prototype du Level 64 possédait une mémoire à tores magnétiques comme aussi le prototype de l'URC, bien qu'il soit prévu d'utiliser des mémoires DRAM dès le début (seul le premier prototype était équipé de mémoire à tores).

On décrira ici, l'initialisation des prototypes complets à partir de la cassette.
A la mise sous tension du matériel, l' URC initialisait sa mémoire et effectuait des auto-tests (les POST d'aujourd'hui) de son processeur et de sa mémoire depuis ses "microprogrammes" en PROM. Le MIOS commençait le chargement et l'initialisation des micro-processes dont le code était résident en ROM et la mémoire de travail (dans la mémoire vive de l'URC) auto-initialisée. Après cela, il chargeait le "firmware" d'initialisation depuis la cassette située dans le lecteur, puis sur le contrôle de cet "attachement d'initialisation", il lisait depuis le cassette le "firmware"  du processeur principal destiné à s'exécuter depuis la mémoire centrale vive. Ensuite, le processeur principal exécute un chargement du premier "logiciel" normalement le System Initialisation Program SIP. Une alternative au SIP -chargée le plus souvent depuis bande magnétique- est le logiciel de tests fonctionnels élémentaires du processeur principal (OPELs).
Le rôle du SIP consiste à examiner la configuration du système contenu dans des tables logiciel (SRT System Resource Table), de charger le "firmware" correspondant à ces tables dans le sous-systèmes périphériques et en particulier dans l'URC et de lancer définitivement la configuration opérationnelle. Il constitue aussi la table de ressources effectivement disponible au système d'exploitation GCOS (SRST) terminant ainsi le processus d'initialisation.

En fonctionnement normal opérationnel, l'initialisation a lieu depuis disque; le "boot-record" est logé sur ces média au lieu d'être sur cassette. Mais le lancement des tests (POST) des contrôleurs et le choix du périphérique d'initialisation reste commandé par l'URC -via l'interface de maintenance des MSC ou MTC.   Le SIP se charge dans la mémoire principale à partir du "boot-record" et les autres contrôleurs de périphériques sont initialisés. "L'image" de la mémoire URC comprenant le support des périphériques spécifiés dans la SRT est descendue ("downloadée" ) dans la mémoire URC depuis la mémoire centrale via le canal PSI. Les micro-tâches de l'URC sont lancées et les périphériques qui le doivent sont placés dans leur état initial par ces micro-tâches.

Dans le cas où le sous-systèmes disques -s'il n'y en a qu'un- doit faire l'objet de vérifications (Tests et Diagnostics du sous-système et d'un appareil), l'initialisation a lieu comme depuis disques, le système d'exploitation chargé étant le SCP

Maintenance

Un arrêt inopiné du processeur central (interruption au niveau 0 -déclenchée par l'interpréteur d'instructions 64 ou par le superviseur GCOS ou par un time-out sur la durée d'une instruction)  se traduisait par l'envoi d'une interruption à l'URC sur le canal de maintenance, interrompant les microprocessus en cours.
Le bootstrap résident de l'attachement de maintenance interprétait cette interruption et lançait l'attachement de maintenance complet écrasant d'autres attachements de l'URC, à l'exception de la cassette, de la console et de l'imprimante. Cet attachement comprenait l'interpréteur du décor processeur de maintenance et l'ensemble de drivers disponibles à l'initialisation.

Dans ce décor -un sous-ensemble réduit du décor GCOS62- étaient écrits un mini-système d'exploitation MPOS 'maintenance panel operating system" et un certain nombre de commandes interprétant les données entrées par l'opérateur à la console du système, telles que DUMP sur l'imprimante, DUMP registres du CPU sur la console, etc...MPOS peut accéder à plusieurs "devices" de l'URC, notamment la console, la cassette et l'imprimante. L'accès à la cassette permettra de créer des commandes non résidentes.

Génération

La programmation de tous les produits liés à l'URC fut faite jusqu'aux années 1980 sur des outils tournant sous GCOSIII sur GE-635, puis sur H-6000 dans les locaux de Bull. Il était, à l'époque, considéré comme stratégique que ni les filiales, ni à fortiori les clients eussent une quelconque de connecter des appareils non-Bull au système 64. La modularité de l'architecture permettait cette exclusion au prix d'une complexité logistique non négligeable  La distribution des Basic System Release (ensemble des micro-logiciels et des outils logiciels appropriés) était distribuée comme du "hardware" par l'usine d'Angers.

Le langage d'écriture du firmware de l'URC était un macro-assembleur. Lorsque le processeur de l'URC devint un 68000, le langage C  remplaça l'assembleur.

URC vs Front-End Processor

Datanet-2000

Le Datanet-2000 était un processeur frontal de communications développé par Honeywell pour la série H-200/2000 à base du mini-ordinateur H-516. Pour reprendre la base de clientèle H-200 par le Level 64, il fut décidé de connecter ce frontal sur un canal PSI. L'existence de ce produit contribua à diminuer la pression pour le développement de l'URC-MLA vers le haut.

 

Commutateur d'interface DAI

Ce switch permettant de connecter un appareil (par exemple une imprimante) à deux URC fut construit. Il ne possédait pas de support système et son action nécessitait la réinitialisation du système auquel était reconnecté l'appareil.

 

Notes

PROM ou ROM.
les premières réalisations furent faites en utilisant des PROM dont il était nécessaire au fabriquant de semi-conducteurs de fournir le masque de métallisation externe. Cette procédure -outre son prix élevé avait l'inconvénient d'un temps très long entre la correction d'un bug et le remplacement du chip défectueux en clientèle. Elle entraîna la création d'une "zone de patches" situés ne mémoire vive dans laquelle étaient placés le contournement du problème au prix d'un certain ralentissement.
A l'époque des années 1970, les PROM étaient plus rapides que les DRAM dans un rapport de 3. La DRAM posait de plus des contraintes de rafraîchissement qui interrompaient le déroulement des micro-processus temps réel. L'architecture du "firmware" URC devait être très rigoureuse pour minimiser l'impact des corrections sur les performances.
Plus tard -sur l'URC-E-, des EPROM modifiables en usine par CII-HB et plus rarement en clientèle remplaceront avantageusement les PROM.

Attachement de URC.
Mot utilisé par développeurs et commerciaux pour désigner les "programmes se déroulant" sur l'URC sous-contrôle du MIOS. Ces programmes occupent une certaine place mémoire, sont normalement relocatables et peuvent dans quelques cas comporter des "overlays". Selon la configuration, ils peuvent être multi-tâches (multi-thread)..

SCP et SIP
Le Support Control Program (SCP) est un système d'exploitation primitif permettant l'exécution de travaux individuellement lancés par l'opérateur, soit un enchaînement séquentiels de travaux. Il n'offre pas de support de multi-programmation, permet le multi-tâches (défini statiquement). Il fut utilisé comme support de la première version de l'émulateur GE-100 sur Level 64 et resta utilisé comme support des tests et diagnostics "stand-alone" permettant les diagnostics de sous-systèmes disques et de discriminer pannes du central et problèmes logiciels de GCOS.
A l'origine conçu comme un travail (job step) séparé sous SCP, l'initialisation du système fut ensuite combinée avec le code de SCP, l'ensemble fut renommé System Initialization Program (SIP). cette intégration réduisait de manière significative la durée de la phase de lancement de GCOS.

 

 

Unit Record Processor

An  important part of the architecture of   Level 64/DPS-7 is hidden inside a auxiliary minicomputer   formally known as   Unit record Processor. We will rather use the engineering name of Unit Record Controller that went more used as URP.

When systems with more than one URC were sold, the main URC -that connected to the processor service interface- was named SURP System Unit Record processor. Operational differences between SURP and other URC are described in initialization end maintenance paragraphs hereunder.

 

© 2003  Jean Bellec

  • History
  • Project
  • Architecture
  • Technology
  • Firmware

    The URC History

    Origin:

    During a design review of project Charlie, end of 1967, John Haanstra suggested to adopt a minicomputer to handle the I/O of the system, to limit the amount of exotic hardware to control peripherals. At that time, neither Bull-GE nor General Electric had a computer suitable for those needs. The Datanet-30 front-end had an obsolete technology and its successor, the Datanet 355, was more powerful but too costly to be used at several items in a medium system.
    George Lepicard's team, in Paris, had started the design of a communications multi-line controller, microprograms controlled in 1967. This design evolved during 1968 to become the URC (Unit Record Controller).
    The name is in relation with a"mission" for Unit Records (punched card devices and printer) allocated to Bull-GE and particulary its Belfort plant. The unit reocrd subsystems were to be designed by Paris Medium Systems Department.
    The URC was essentially optimized for the medium system -that eventually became Level 64- but was also intended for the higher models and the Paris technical establishment wished that this platform be also used as an entry-level processor for NPL, an intent that was seen as a revenge on their trasalpine rivals.
    The marketing target for the system was essentially batch (based on unit reords and sequential files) , but the emergence of transaction systems provoked the addition of a minimal set of communications lines (Teletype support and 4800 bps "high speed" remote batch link used both as downwards and upwards link).
    Using the appropriate buffers, the subsystem equipped with a 16-bits processor at 6 MHz (same frequency as the main 32-bits CPU) should be able to multiplex a set of card devices, a printer and 16 110bps lines (and a couple of faster lines).

    The idea of a maintenance processor to esecute off-line dianostics of the main processor's logic and able to automate  system initialization procedures went to light in 1969-1970. As this maintenance processor had to use some unit record devices (card reader and printers) it appeared desirable to combine those functions with those the URC. There was still a missing device, that of a bulk storage device. The use of magnetic tape cassette (Philips audio format) seemed in 1970 a solution, conforted by the expert prediction that such a media will be used as punched card replacement for data entry.

     

    URC Project

    The design and implementation of the URC were done in the Peripheral Division of Medium Systems Department, within the Hardware Direction. Henri Verdier was in charge of this division.

    Software tools were developed in the software division of the same hardware direction that was initially headed by Michel Rocher, then by Jean-Jacques Pairault.

    Peripheral Devices Adapters were designed in Henri Verdier's division, but generally implemented by peripherals manufacturers (Belfort and Italy). They were packaged with the peripheral specific analog components. The communication adapter (MLA) was packaged in a rack closed to the URC rack. It was developed by Jean Akriche's team in Henri Verdier's organization.

     

    URC Architecture

    While the URC was deigned as  ageneral purpose minicomputer, it was never envisioned that its processor architecture was directly known and programmed by an end-user. When it was envisioned to be used as a low-end processor of the line, the "interior decor" was to be an instruction set identical or compatible with that of 64 (byte aligned, variable length instructions...) interpreted by "firmware" and not the native decor offered by the hardware (words of 16-bits, addressability limited to 32K words, 2 bases registers -one for code, the other for data).
    The native software using the hardware architetcure was named "URC firmware", a part of which the "bootstrap" and some peripherals drivers  being implemented in PROM as in present microprocessor BIOS.

    The URC included the processor, a DRAM memory and adapters (one or two PSI channel adapters -connection with the CPU(s)-, several identical DAI adapters -connection to the peripheral electronics). DAI channels were a Honeywell standard featuring a 8-bits parallel interface, data transfer one byte at a time were under the controller firmware control (URC for Level64).

    The "device adapters " for data communications, implemented in same frame as URC were in different models: an adapter for asynchronous lines grouping 8 low-speed lines, each with a double buffer of one character and a detection of start-stop pulses, an adapter for a  high-speed asynchronous line, a BSC synchronous line adapter and later a HDLC synchronous line. Those adapters were sampled by the communications driver program in the URC also named "MLA firmware".

    Technology of URC

    The technology was identical to that of the main Level 64 processor (MOS DRAM memory of 4Kbits per chip, switching components TTL 74N, SP10 Bull designed packaging).

     

    URC Firmware

    Based on the design of the Level-64 processor micro-kernel, a microprogrammed-OS (named MIOS) was the operating system of the URC. That microkernel not only handles real time interrupts, but also did   dispatches drivers threads (micro-threads) and their synchronisation within URC. That MIOS was implemented in PROM and did also tests and initializes the URC

    Other micro-threads were:

    • card reader driver (stored in PROM)
    • card punch driver
    • paper tape driver
    • printer (PR71 and PR54) driver
    • PSI channel driver (stored in PROM)
    • magnetic tape cassette driver (stored in PROM)
    • CRT console driver (developed in Billerica for high-end systems)
    • asynchronous Teletype driver (for GE Terminet 300 console, TTY35 compatibme)
    • check sorter driver
    • communications lines driver (MLA firmware)
    • maintenance language interpreter and driver

    Those micro-threads were rigorously structured: the procedure part was reentrant to support multi-tasking (e.g. to support two or more printers) and operating entirely under the MIOS control that dispatched the hardware resources between those "micro-processes". The behaviour of each communication line could be completely independant allowing those lines to operate with different software programs in the CPU or even inside URC.

    Concerning drivers, it has to benoted that the burden due to the distribution of firmware releases and related software(grouped under the name of Basic Systems Releases) kead the Unit Record Peripheral Department in Belfort to develop hardware models strictly compatible with models already in the field. Even when cost and functionality differed, as in CR300 card reader and Honeywel designed CR1000), the CR300 adapter hardware emulated perfectly the CR1000 one.

    The link to the central processorand URC was made of the PSI channel and a special maintenance chanel. The latter was used to trigger the CPU initialization, to access the memory controller and to access the CPU registers. The PSI channel driver had the role to allow the CPU software (usually GCOS) to access the unit record peripheral drivers. It handled a set of subchannels, logical entities seting data pathes (seen as asychronous) between CPU "processes" and logical functions of peripherals.

    Such an asynchronism had limits due to the real-time functions of the I/O subsystem. usually, those functions were, as on IBM S/360, realized by synchronizing the architectured channel programs with I/O interrupts. For more time-dependent operations (handling of transmission control  characters, control of check sorter stackers),  URC allowed the software programmer to predefine actions within the URC. Those actions were either declarative tables sent to URC as initialization of the subchannel. or  just sending a precompiled URC program for check reading and sorting.

    Peripherals Attachment

    The design of the URC was made at atime where the logic part of devices adapters was expensive; the specs were not including a memory of the device characheristics attached to the URC. So, there was not a Plug and Play characteistics at initialization time.

    Device adapters were connected through a standard interface, named DAI, that was common to Level 62, Level 64 and Leveal 88. This byte parallel interface was directly accessible by URC microprograms.

    punched cards reader

    • PCR80

    PCR80 was a device designed at Honeywell in the late 1960, its manufacturing was transfered in Belfort (France) in 19772

    cards reader-punch

    • PCP-80

    PCP-80 punch card used the same basic mechanism as PCR-80

    document reader

    • LD1

    The OCR or MICR documents LD1 manufectured by Bull Belfort had been already sold on GE-100 and GE-400. It was also connected to Level-64 on the DAI interface.

    printer

    • PR71

      Band printers PR46 and PR71 were the first Bull printers with a  character set removable by the customer operator. The band carrying the character set was automatically recognized by the URC driver.
      Those printers had a paper skip mechanism emulating the pilot tape behaviour   located in the URC driver and reloadable by GCOS software.

     

    • H112

      The Honeywell H-112 printer on Level-64 was essentially used for delivery to customers having  recently installed Honeywell 200. It was used in H-200 emulation mode and in native converted mode.

    The definition of the printer attachment caused technical problems due to the existence of an off-line phase, the paper movement phase. That phase was triggered by URC microprograms after the transfer of data in the printer data register, but the end of paper skip was notified only just before  the microprogram was beginning the next line printing. A paper skip problem was consequently detected after CPU software had received the termination phase of the line. If that software had not envisioned a checkpoint at page level, this problem might cause an "LINE MAY BE LOST" message to be printed on the user listing.

    check sorter

     

     

     

 

 

Mémoires à Disques Magnétiques

 

Magnetic Storage  Processors

 

L64 and DPS7/7000 Storage Controllers

Level 64 systems were to be configured with at lest a mandatory disc subsystem and an optional tape subsystem. As almost all system migrating to Level 64 were tape oriented, few disc only systems have been sold. The mass storage controllers evolved with time to support new devices and for cost reduction. Tape controllers evolved the same way. The introduction of a streaming tape connection to the URC in the early 1980s coincided with the abandon of removable discs on DPS-7

Attachment of new controllers was technically asynchronous with the introduction of new systems until the advent of DPS-7000 Ares phase 3 that initiated the evolution towards industry standard parts. Eventually complete subsystems ended to be sourced from independent manufacturers such as EMC.

DISC CONTROLLERS

The disc controllers were known under different acronyms in engineering and in the field. They have a very limited visibility in the field, some having been bound with the central processor in some cases. They have been called usually Mass Storage Processor emphasizing "distributed processing" as a distinctive Honeywell and Bull advertising feature.

MSC

Specifications

The original MSC was designed by Honeywell in Billerica in 1971-1972. It has to support state-of-the-art disc devices produced by Honeywell for the H-2000 product line and were, from the hardware point of view, clones of IBM 2314 and 3330 removable discs. The native mode of formatting had to be IBM variable CKD, allowing a data exchange for a migration from low-end S/360 systems. The IBM compatibility was extended to the file system (the IBM VTOC was also adopted)
In addition, the Honeywell H-200 fixed sector format had also to be supported for assisting in co-existence / migration with H-200/2000.
The combination of those requirements was a superset of the IBM disc subsystem architecture and the simultaneous support of several physical formats. A SEARCH DATA command was added to the SEARCH KEY with the believing that more and more data base functions will migrate closer to the physical device, a prediction that was not realized.
The GE-100 small removable drives also were attached to the MSC, but they were supported only by the GE-100 emulator and its special utilities. Their attachment was not raising specific constraints to the controller.

Supported devices

MSU-300

Architecture

The MSC was powered by a special processor optimized on byte searching and fast transfers from the DLI (device level interface) and the main memory (trough the PSI channel) and with a very limited amount of buffering inside the MSC.

The I/O architecture allowed "simultaneous" transfers on logical channels, i.e. block multiplexing. A single logical channel was allocated to each device, while it was contemplated to add fixed head devices that might have several partitions and one logical channel per partition.

The MSC was able to function in dual PSI mode; i.e. a couple of MSCs might be connected to up to 16 devices allowing a pool of 16 logical channels allocated transparently to software (except initialization and malfunction). Dual-PSI allowed dynamic file sharing between two independent GCOS systems, tanks to a software trick to implements shared locks between subsystems by writing a LOCKED status bit in the file entry inside the VTOC using an uninterruptable channel program performing a SENSE/SET if UNLOCKED chain of commands to the MSC. This feature with no hardware impact was known to customers as "coupled systems" feature.

The lack of buffer size in the MSC precluded the automatic recovery from data transfer errors. CRC was computed by the MSC but retries had to be performed by the operating system module (PIAR).

Technology

The MSC was implemented in the same technology as Level 64 (TTL 74N, SP10)

Tests and Diagnostics

The MSC was maintained with  a check-out program running under the free-standing operating system SCP and by functional tests (under SCP and later under GCOS). Those tests emphasized stress on transfer rates on one or several channels, but were not always able to anticipate real stress load caused by variations in CPU speed (creation of sub-models) or introduction of new formats.

 

 

Magnetic Tape Processors

 

MTC Magnetic Tape Controller

The original MTC was designed in Billerica to support the collection of tapes available in 1970 in GE, Honeywell and across the industry. Two recording formats were available NRZI IBM formats in 7 or 9 tracks available in densities (200 bpi, 556 and 800 bpi) and PE (Phase encoding) format also introduced by IBM in 800 and 1600 bpi. Several logical formats had been introduced by GE and Honeywell for GE-100 and H-200 product lines . Level 62 and Level 64 used the IBM format (including labels) as the native format. Other formats were supported by utilities and by the emulators.
The physical format of the tapes (density and speed) had to be "guessed" by GCOS as part of the "automatic volume recognition" procedure, that freed the operator of mandatory mounting on a specific drive.

Although also designed in Billerica the MTC used a different engine from the MSC. That engine was optimized towards minimizing the start stop time and to perform efficiently data chaining across different zones of memory. The processor did recognize end of blocks characters and was able to perform on the fly code conversion.

Two MTC could be associated to an extended crossbar allowing 16 tape units to be connected to each controller.7-tracks tapes support was an extra-cost option.

The technology was Level 64 based (TTL 74N and S, SP10 small boards).

MTC was supported by a collection of maintenance tools specially developed in Billerica. In addition of functional tests available for SCP and transferred under GCOS by Paris engineering (in 1976-1977), a programmed maintenance panel (in fact an interpreter for a  single or a batch of hardware level commands) was made available (under SCP and GCOS). Tape devices analog hardware electronics was hardly visible through the DLI interface and functional tests preceded oscilloscope investigations.