CH616251A5 - - Google Patents

Download PDF

Info

Publication number
CH616251A5
CH616251A5 CH375876A CH375876A CH616251A5 CH 616251 A5 CH616251 A5 CH 616251A5 CH 375876 A CH375876 A CH 375876A CH 375876 A CH375876 A CH 375876A CH 616251 A5 CH616251 A5 CH 616251A5
Authority
CH
Switzerland
Prior art keywords
interrupt
register
signals
processor
multiplexer
Prior art date
Application number
CH375876A
Other languages
English (en)
Inventor
Garvin W Patterson
William A Shelly
Jaime Calle
Earnest M Monahan
Original Assignee
Honeywell Inf Systems
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Inf Systems filed Critical Honeywell Inf Systems
Publication of CH616251A5 publication Critical patent/CH616251A5/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority

Description

La présente invention a trait à un appareil d'entrée/sortie pour commander des opérations de transfert de données d'entrée/sortie, et un procédé pour sa mise en action.
60
En général, des de tels appareils contiennent dans une partie de leurs programmes d'exploitation un certain nombre de sous-routines d'interruption pour traiter des événements produisant des interruptions. Ces événements peuvent résulter des conditions internes à l'intérieur de l'appareil ou des conditions exis- as tant à l'intérieur de ses dispositifs d'entrée/sortie.
En général, des interruptions sont décelées, selon une priorité prédéterminée par l'unité de traitement de l'appareil et par des unités de commande reliés à des dispositifs périphériques faisant partie du système. En conséquence, une fois que la priorité de traitement d'événements a été établie, les événements doivent être traités de la même manière. Un inconvénient important de ces appareils est que certains événements peuvent obliger l'unité de traitement à interrompre un programme important pour traiter une interruption en liaison avec un programme moins important. Il en résulte une perte sensible de temps de traitement qui est provoquée par une commutation inutile entre les programmes.
En outre, dans les types d'appareils mentionés ci-dessus, quand un événement est détecté, l'unité crée une interruption qui oblige à revenir à un emplacement prédéterminé de la mémoire qui contient une information d'adresse en vue d'établir une référence avec une routine courante d'interruption. L'adresse de mémoire obtenue dans de telles conditions est fixe par rapport à une interruption produite par le dispositif. En conséquence, ces types d'appareils, du fait que pour des types différents d'interruption, on peut utiliser la même routine d'interruption, exigent que l'unité de traitement détermine alors la cause de l'interruption en question et sélectionne la routine appropriée pour la traiter. Il en résulte également une perte sensible de temps de traitement qui provient du fait que l'unité de traitement doit se brancher sur le programme correct pour traiter l'interruption. En outre, de tels appareils nécessitent des programmes d'interrogation se traduisant par un doublement de programme.
En outre, à chaque fois que des appareils du type mentionné doivent adresser des instructions à un des appareils de commande de dispositif, cela oblige normalement à retarder des opérations de transfert de données dans le système ou bien cela nécessite que lesdites instructions soient émises seulement pendant des intervalles précédant et suivant lesdites opérations de transmission de données. Il en résulte également une diminution du rendement de traitement d'entrée/sortie.
En conséquence, l'invention a pour but principal de fournir un appareil qui permette un traitement efficace d'événements se rapportant à des opérations d'entrée/sortie faisant intervenir un certain nombre de dispositifs périphériques, ainsi qu'un procédé pour la mise en action de cet appareil.
L'invention a également pour but de fournir un appareil qui assure une commutation efficace entre les programmes pendant le traitement d'événements, et qui facilite le traitement d'opérations d'entrée/sortie.
Les problèmes précités sont résolus, conformément à l'invention, par un appareil d'entrée/sortie pour commander des opérations de transfert de donnée d'entrée/sortie dans plusieurs dispositifs périphériques comprenant:
- une mémoire,
- un processeur d'entrée/sortie qui comprend des moyens pour traiter des signaux d'interruption provenant des différents dispositifs périphériques,
- un multiplexeur connecté à ces dispositifs périphériques,
- des moyens d'interconnexion reliant entre eux la mémoire, le processeur et le multiplexeur en vue d'établir des communications basées sur des priorités, le multiplexeur comprenant plusieurs blocs de connexion d'adaptation réliés aux différents dispositifs périphériques, caractérisé en ce que le multiplexeur comprend:
- un groupe de plusieurs registres, associés aux blocs de connexion et agencés pour emmagasiner une information de commande d'interruption sous forme d'ordres se rapportant au traitement desdites opérations d'entrée/sortie par ledit multiplexeur,
- un premier registre dudit groupe contenant des signaux codés spécifiant une valeur numérique utilisée pour identifier l'une des différentes routines d'interruption qui sont exécutées par le processeur en vue de traiter les signaux d'interruption
616 251
4
reçus en provenance desdits dispositifs, tandis qu'un second registre du groupe contient des signaux codés spécifiant des valeurs numériques servant à identifier des niveaux de priorités, à donner par le multiplexeur aux différents signaux d'interruption, 5
— des moyens logiques d'interruption branché de manière à recevoir les signaux d'interruption provenant du bloc de connexion,
— un réseau de circuits de priorité relié auxdits moyens logiques et audit second registre et agissant de façon à engen- l0 drer des signaux indiquant la demande présentant la priorité la plus élevée en réponse à des signaux d'interruption reçus en provenance desdits moyens logiques, cette priorité la plus élevée étant définie en concordance avec les valeurs emmagasinées dans le second registre, u
— un registre de sortie couplé fonctionellement audit réseau de priorité et audit groupe de registres, ce réseau de priorité agissant de façon à faire appliquer les contenus desdits premier et second registres audit registre de sortie envue de leur transfert auxdits moyens d'interconnexion sous la forme d'une partie 2o d'une demande d'interruption.
Puisque l'affectation du niveau de priorité peut être modifiée à l'aide d'instructions transmises par l'intermédiaire de l'interface programmable, il est facile pour le multiplexeur d'établir un distinction entre des événements importants et des 25 événements moins importants et également de classifier des événements. Cette structure permet une commutation efficace entre programmes puisque seuls les événements qui correspondent à un niveau de priorité élevé obligent l'unité de traitement à commuter entre les programmes. En outre cette structure 30 empêche l'unité de traitement d'interrompre l'exécution d'un programme important juste pour déterminer qu'un événement moins important s'est produit.
D'autres avantages de l'invention seront mis en évidence dans la suite de la description, donnée à titre d'exemple, en 35 référence aux dessins annexés dans lesquels:
Fig. 1 représente sous la forme d'un schéma synoptique une forme d'exécution particulière d'un appareil d'entrée/sortie suivant la présente invention.
Fig. 2 montre de façon plus détaillée l'unité de traitement 40 d'entrée/sortie de la figure 1.
Fig. 3a à 3c montrent de façon plus détaillée l'interface de système de la figure 1.
Fig. 4a et 4b montrent de façon plus détaillée un multiplexeur tel que celui de la figure 1. 45
Fig. 5 a montre les lignes qui composent une interface de données.
Fig. 5b montre les lignes qui composent une interface programmable employée dans l'appareil de la figure 1.
Fig. 5c montre les lignes qui composent les interfaces d'in- 50 terruption incluses dans l'appareil de la figure 1.
Fig. 5d montre les lignes qui composent une interface de mémoire locale de la figure 1.
Fig. 6 montre la forme des instructions de programme WREX et RDEX. 55
Fig. 7a à 7c montrent les formats des ordres d'interface.
Fig. 7d montre une certain nombre des différentes instructions de registres de charge utilisées en liaison avec le module multiplexeur 300 de la figure 1.
Fig. 7e montre un certain nombre des différentes instruc- 60 tions de registres de lecture utilisées en liaison avec un multiplexeur 300 de la figure 1.
Fig. 8a et 8b montrent les formes de certains mots de commande de canal.
Fig. 9 montre la séquence des signaux servant à traiter une 65 interruption.
Fig. 10a et 10b montrent les séquences de signaux servant à transférer une instruction WREX.
Fig. 10c montre la séquence des signaux pour l'exécution d'une instruction RDEX.
Fig. lOd montre la séquence des signaux pour l'exécution d'une instruction RDEX.
Fig. 1 la et 1 lb mettent en évidence, en termes de logique négative (c'est-à-dire lorsqu'un UN binaire correspond à une transition négative), les séquences de signaux pour exécuter des opérations des lecture et d'enregistrement en mémoire.
Fig. 12 montre la séquence de signaux d'une opération de transmission de données de lecture dans un dispositif.
Fig. 13 montre la forme d'un mot de données d'interruption.
Fig. 14 montre la forme d'un type de donnée de direction.
Fig. 15 montre un ensemble de blocs de commande d'interruption intervenant dans le module de mémorisation 500 correspondant au multiplexeur 300.
Fig. 16 montre schématiquement des transmissions simultanées de données à l'intérieur du multiplexeur 300.
Comme indiqué sur la figure 1, l'appareil selon l'invention comprend au moins un processeur d'entrée/sortie (IOPP) 200 une unité d'interface de système (SIU) 100, un multiplexeur à grande vitesse (HSMX) 300, un multiplexeur à basse vitesse (LSMX) 400, un processeur de réception 700 et au moins un module de mémorisation correspondant à un module de mémorisation locale 500. Différents modules sont reliés à l'un d'un certain nombre de blocs de connexion de l'unité d'interface de système 100 par l'intermédiaire de plusieurs lignes faisant partie des différents interfaces 600 à 603. Plus particulièrement, le processeur d'entrée/sortie 200, le processeur de réception 700 et le multiplexeur à grande vitesse 300 sont reliés respectivement aux bornes de connexion G, E et A tandis que le multiplexeur à basse vitesse 400 et le module de mémorisation 500 sont reliés respectivement aux blocs de connexion J et LMO.
On peut considérer le système d'entrée/sortie de la figure 1 comme comportant un certain nombre de «modules actifs», de «modules passifs» et de «modules de mémoire». Le processeur IOP 200, le processeur de réception 700 et le multiplexeur à grande vitesse 300 servent de modules actifs du fait que chacun d'eux a la possibilité d'émettre des ordres ou des instructions. Les modules actifs sont reliés normalement aux blocs de connexion A à H. Plusieurs modules passifs sont reliés aux trois blocs de connexion J, K et L. Ces modules correspondent au multiplexeur basse vitesse 400 et à l'unité d'interface de système 100 et ils sont capables d'interpréter et d'exécuter des instructions appliquées aux lignes de l'interface 601, comme cela va être décrit dans la suite. Le dernier groupe de modules de mémorisation locale et des modules de mémorisation à distance (non représentés) tels que ceux du système principal (non représenté) qui sont capables d'exécuter deux types différents d'instructions appliquées aux lignes d'interface 603.
Le système d'entrée/sortie de la figure 1 fonctionne normalement comme un sous-système d'entré/sortie réagissant à des instructions d'entrée/sortie qui sont produites par le processeur de réception 700 qui est normalement relié au bloc de connexion F par l'intermédiaire des interfaces 600,601 et 602 qui correspondent à une interface de données, à une interface programmable et à une interface d'interruption qui vont être décrites respectivement de façon plus détaillée dans la suite. Les blocs de connexion F et E comprennent les interfaces permettant une liaison avec un multiplexeur ou bien des modules de traitement de la figure 1.
Dans la mise en pratique de la présente invention, le processeur 700 est d'une conception classique et peut se présenter sous la forme des unités décrites dans le brevet US 3 413 613. Dans le mode préféré de réalisation, le processeur d'entrée/sortie 200 enclenche et arrête des programmes de canaux qui sont nécessaires pour l'exécution des instructions d'entrée/sortie, il traite des demandes d'interruption provenant de l'unité d'interface de système 100 et il commande directement des dispositifs périphé
5
616 251
riques d'enregistrement qui sont reliés au multiplexeur basse vitesse 400. Le processeur 200 est relié à la borne H par l'intermédiaire de l'interface de données 600 et de l'interface d'interruptions 602.
Le multiplexeur basse vitesse 400 qui, dans la mise en pratique de la présente invention, peut être considéré comme étant d'une conception classique, permet la liaison de dispositifs périphériques basse vitesse par l'intermédiaire d'adaptateurs périphériques qui assurent chacun la connexion avec les lignes d'une interface d'adaptateur de dispositif (DAI). L'interface et l'adaptateur peuvent se présenter sous la forme des unités décrites dans le brevet US No. 3 742 457 qui a été délivré à la demanderesse. Les dispositifs à basse vitesse comprennent des lecteurs et des perforatrices de cartes ainsi que des imprimantes. Comme le montre la figure 1, le multiplexeur 400 est relié à la porte J par l'intermédiaire de l'interface programmable 601.
Le multiplexeur à grande vitesse 300 commande directement des transferts entre les groupes de dispositifs à disques et de dispositifs à bandes 309 à 312 qui sont reliés aux adaptateurs de canaux 302 à 305. Chacun des adaptateurs de commande de canaux 303 à 306, qui peut correspondre à un maximum de seize dispositifs, est lui-Même relié à un des blocs de connexion ou canaux 0 à 3 par l'intermédiaire des lignes d'une interface d'adaptateur de canaux (CAI) 301-1. Le multiplexeur à grande vitesse 300 est relié au bloc de connexion A correspondant à une interface de données 600, à une interface programmable 601 et à une interface d'interruption 602.
Dans la pratique chacun des adaptateurs de commande de canaux 302 à 305 peut être considéré comme étant d'une conception classique et il peut se présenter sous la forme des adaptateurs de commande décrits dans le brevet US No. 3 742 457 mentionné ci-dessus.
Comme indiqué précédemment, chacun des modules est relié à différents blocs de l'unité d'interface du système 100. L'unité 100 commande la liaison des différents modules entre eux par l'intermédiaire de voies de transfert permettant la transmission d'informations de données et de commandes entre des paires de modules. Pour l'application de la présente invention, l'unité d'interface de système 100 peut être considérée comme un réseau de commutation permettant à chacun des modules actifs de transmettre des données vers et à partir du module de mémorisation locale 500 quand le module demandeur présente la priorité la plus élevée et lorsqu'il a obtenu le prochain cycle de mémorisation disponible. Ainsi, comme cela sera précisé dans la suite, l'unité 100 comporte des circuits logiques de priorité qui déterminent la priorité relative de demandes provenant de chacun des modules actifs et qui accordent le prochain cycle de mémoire disponible à la demande reçue qui a la priorité la plus élevée.
En outre, l'unité 100 contient des circuits logiques de priorité d'interruption qui déterminent la priorité relative de demandes d'interruptions reçues en provenance de chacun de modules et qui sélectionnent la demande de priorité la plus élevée reçue en transmettant la demande au processeur 200 par l'intermédiaire d'un réseau de commutation comme cela va être expliqué.
Avant de décrire en détail les différents modules de la figure 1, on va maintenant décrire en référence aux figures 5a à 5d chacune des interfaces 600 à 603.
En se référant d'abord à la figure 5a, on voit que cette figure représente les lignes qui constituent l'interface de données qui est une des interfaces assurant un échange d'informations entre un module actif et l'unité d'interface de système 100. L'échange est assuré en commandant les états logiques des différentes lignes de transmission de signaux conformément à des règles pré-établies par l'intermédiaire d'une séquence de signaux appelée «un dialogue».
Comme le montre la figure 5a, l'interface comporte une ligne de demande de blocs de connexion de sortie active (AOPR), plusieurs lignes de transmission de données à SIU (DTS 00-DTS 35, P0-P3), plusieurs lignes de direction de données vers SIU (SDTS 0-6P), plusieurs lignes d'identification de blocs de connexions multiples vers SIU (MITS 0-3, P), une ligne d'acceptation de demande active (ARA) une ligne d'acceptation de lecture de données (ARDA), plusieurs lignes de transmission de données à partir d'un bus SIU (DFS 00-35, POPS), plusieurs lignes d'identification de blocs de connexion multiples à partir de SIU (MIFS 0-3, P) une ligne de double précision à partir de SIU (DPFS) et une ligne d'acceptation d'état (AST). On va décrire dans la suite de façon plus détallée ces différentes lignes d'interface.
LIGNES D'INTERFACE DE DONNÉES Désignation Description
AOPR La ligne de «demande de bloc de con nexion de sortie active» est une ligne unidirectionnelle qui relie chacun des modules actifs avec l'unité SIU 100. Lorsqu'elle est excitée, cette ligne signale à l'unité SIU que le module demande un trajet de transfert par l'intermédiaire duquel une instruction ou une donnée doivent être transmisses.
DTS 00-35, P0-P3 Les lignes de «transmission de données» sont constituées par un trajet unidirectionnel d'une largeur de quatre multiplets (quatre multiplets de 10 bits) qui s'étend entre chacun des modules actifs et l'unité SIU, ces lignes étant utilisées pour transmettre des instructions ou des données de chaque module actif à l'unité SIU 100.
SDTS 0-6, P Les lignes de «direction de données vers
SIU» s'étendent de chaque module actif à l'unité SIU 100. Ces lignes sont utilisées pour transmettre une information de commande de direction à l'unité SIU 100 quand la ligne AOPR est excitée. Une information de commande de direction se compose de sept bits et d'un bit de parité qui sont codés de la manière suivante:
(a) L'état du bit 0 - le type d'instruction appliqué aux lignes DTS (que l'instruction soit une instruction d'interface programmable ou une instruction de mémoire).
(b) Les bits 1 à 4 sont codés de façon à indiquer celui des modules qui doit recevoir et interpréter l'instruction (des instructions sont interprétées seulement par des modules de mémorisation alors que des instructions d'interface programmable doivent être interprétées par tout les modules excepté le processeur d'entrée/ sortie 200).
(c) L'état du bit 5 indique si un ou deux mots de l'information de commande doivent être transférés entre le module actif demandeur et le module récepteur désigné (un mot spécifie un seul transfert de précision et deux mots spécifient un double transfert de précision).
(d) L'état du bit 6 indique la direction de
5
10
15
20
25
30
35
40
45
50
55
60
65
DFS 00-35, P0-P3
transfert entre le module demandeur et le module récepteur désigné.
(e) Le bit P est un bit de parité engendré par le module actif demandeur et qui est vérifié par un appareil incorporé à l'unité SIU 100.
MITS 0-3, P Les quatre lignes d' «identification de blocs de connexions multiples» s'étendent entre un module actif et l'unité SIU 100. Ces lignes sont codées de manière à indiquer le sous-canal ou la borne d'un module actif qui a produit l'excitation d'une ligne AOPR. ARA La ligne d' «acceptation de demande ac tive» s'étend entre l'unité SIU 100 et chacun des modules actifs. Cette ligne est excitée pour indiquer que le module récepteur désigné a accepté la demande de module actif qui permet au module d'extraire l'information demandée à partir des lignes d'interface de données.
ARDA La ligne d' «acceptation de donnée lue»
relie l'unité SIU à chacun des modules actifs. Cette ligne est excitée par l'unité SIU 100 pour indiquer au module actif qu'il doit accepter la donnée précédemment demandée provenant d'un module désigné.
Les lignes de «transmission de données ä partir de SIU» constituent un autre groupe de lignes de transmission de données qui établissent un trajet unidirectionnel d'une largeur de quatre multiplets (quatre multiplets de 10 bits) s'étendant de l'unité SIU jusqu'à chaque module actif. Ces groupes de lignes sont utilisés par l'unité SIU 100 pour transmettre une donnée du type lecture à un des modules actifs qui a été désigné.
MIFS-0-3, P Les quatre lignes d' «identification de blocs de connexion multiples» plus la ligne de «parité impaire» s'étendent de l'unité SIU 100 à chacun des modules actifs. Ces lignes sont codées de manière à indiquer la borne ou le sous-canal du mosule actif qui doit recevoir la donnée correspondant à une précédente opération de lecture effectuée par l'unité SIU 100.
DPFS La ligne de «double précision à partir de
SIU» relie l'unité SIU à chacun des modules actifs. L'état de cette ligne indique si un ou deux mots d'une donnée lue doivent l'être parle module actif pour compléter un transfert (instruction de lecture).
AST La ligne d' «acceptation d'état» relie l'unité SIU 100 à chaque module actif. L'état de cette ligne qui correspond exclusivement à celui de la ligne ARDA, signale au module actif qu'il doit recevoir une information d'état appliquée aux lignes DFS.
Les lignes de l'interface programmable 601 indiquées sur la figure 5b assurent un transfert d'une information de commande à partir d'un module actif et à partir d'un module désigné. Le transfert est assuré par commande de la partie logique des états des différentes lignes de signaux en concordance avec des réglés pré-établies et suivant une séquence de signaux appelée «dialogue». Cette interface programmable comprend une ligne d'acceptation de commande d'interface programmable (APC), plusieurs lignes de transmission de donnée d'interface programma-5 ble à partir de SIU (PDFS 00-35, P0-P3), une ligne de préparation d'interface programmable (PIR), une ligne de demande de transfert de donnée lue (RDTR), plusieurs lignes de transmission d'une donnée d'interface programmable vers SIU (PDTS 00-35, P0-P3) et une ligne d'acceptation de donnée lue „] (RDAA). On va décrire de façon plus détaillée dans la suite ces différentes lignes d'interface.
LIGNES D'INTERFA CE PROGRA MMABLE Désignation Description
15 APC La ligne d' «acceptation d'ordre d'inter face programmable» relie l'unité SIU 100 à chaque module récepteur. Lorsqu'elle est excitée, cette ligne signale au module qu'une information de comman-2« de a été appliquée aux lignes PDFS de l'interface par l'unité SIU et qu'elle doit être acceptée par le module.
PDFS 00-35, P0-P3 Les lignes de «transmission de donnée vers l'interface programmable à partir de 25 SIU» établissent un trajet directionnel d'une largeur de quatre multiplets (quatre multiplets de 10 bits) qui s'étend entre l'unité SIU 100 et chaque module. Ces lignes transmettent une information 30 d'interface programmable de l'unité
d'interface de système à un module récepteur désigné. La ligne de «préparation d'interface programmable» relie chaque module à l'unité SIU. Lorsqu'elle 35 est excitée, cette ligne indique que le module est prêt à accepter une commande à appliquer à une ligne PDFS.
PDTS 00-35, P0-P3 Les lignes de «transmission de donnée d'interface programmable vers SIU» éta-40 blissent un trajet unidirectionnel d'une largeur de quatre multiplets (quatre multiplets de 10 bits) qui s'étend de chaque module à l'unité SIU 100. Ces lignes sont utilisées pour transférer une information 45 d'interface programmable à l'unité SIU.
RDTR La ligne de «demande de transfert de donnée lue» s'étend de chaque module relié à l'interface programmable jusqu'à l'unité SIU 100. Lorsqu'elle est excitée, so cette ligne indique que la donnée lue précédemment demandée est disponible pour être transférée à un module et qu'ella a été appliquée aux lignes PDTS par le module.
55 RDAA La ligne «d'acceptation de donnée lue»
s'étend de l'unité SIU 100 à chaque module. Lorsqu'elle est excitée, la ligne indique au module que la donnée appliquée aux lignes PDTS a été acceptée et 60 que le module peut extraire l'informa tion de ces lignes.
Une autre interface est constituée par l'interface d'interruption 602, figure 5c qui assure un traitement d'interruption par le 65 processeur d'entrée/sortie 200, c'est-à-dire qu'elle autorise le transfert d'une information d'interruption par un module actif à l'unité SIU 100 ainsi que le transfert d'une information d'interruption par l'unité SIU 100 au processeur d'entrée/sortie 200 en
7
616 251
vue d'un traitement. Comme pour les autres interfaces, le transfert de demandes d'interruptions est assuré par une commande des états logiques des différentes lignes de signaux en concordance aves des règles pré-établies et suivant une séquence de signaux appelée «dialogue».
L'interface comprend une ligne de demande d'interruption (IR), plusieurs lignes de données d'interruption (IDA 00-11, P0-P1) et plusieurs lignes d'identification de blocs de connexion multiples d'interruptions (IMID 00-03), pour des modules reliés aux bornes A à D. Pour des modules reliés aux blocs de connexion G et H, l'interface d'interruption comprend en outre une ligne d'existence de niveau zéro (LZP), une ligne d'exis-tance d'interruption à un niveau supérieur (HLIP), une ligne de demande de donnée d'interruption (IDR), une linne de libération (RLS) et plusieurs lignes de niveau d'interruption actif i (AILO-2). Comme le montre la figure 5c, les blocs de connexion d'interface d'interruption G et H ne contiennent pas de lignes d'identification de blocs de connexion multiples d'interruption. On va décrire de façon plus détaillée dans la suite lesdites lignes d'interface d'interruption.
IR
IDA 0-3, P0, IDA 4-11, PI
LIGNES D'INTERFACE D'INTERRUPTION Désignation Description
La ligne de «demande d'interruption» relie chaque module à l'unité SIU 100. Lorsqu'elle est excitée, cette ligne indique à l'unité SIU qu'elle nécessite un service.
les lignes de «données d'interruption» s'étendent d'un module actif jusqu'à l'unité SIU 100. Ces lignes sont codées de manière à contenir une information de commande nécessaire pour être transmise au processeur d'entrée/sortie lorsqu'une demande d'interruption a été acceptée par ce processeur. Ces bits sont codés de la façon suivante:
(a) l'état du bit 0 spécifie à l'unité SIU 100 celui des deux processeurs (c'est-à-dire le numéro duprocesseur) qui doit traiter la demande d'interruption.
(b) les bits 1 à 3 sont codés de façon à indiquer la priorité ou le numéro de niveau de la demande d'interruption à l'unité SIU 100.
(c) le bit P0 est un bit de parité pour les bits 0 à 3.
(d) les bits 4 à 8 sont codés de façon à faire partie d'une adresse devant être établie par le processeur d'entrée/sortie 200 pour définir le processus correct de traitement de l'interruption (c'est-à-dire un numéro de bloc de commande d'interruption ICBN).
(e) le bit PI est un bit de parité pour les bits 4 à 11.
Les lignes d' «identification de blocs de connexion multiples d'interruption» relient chaque module actif à l'unité SIU 100. Ces lignes sont codées de manière à identifier le sous-canal particulier du module actif et à demander l'opération d'interruption.
La ligne d' «existence de niveau zéro» relie l'unité SIU 100 au processeur d'entrée/sortie 200. Lorsqu'elle est excitée, cette ligne indique qu'une demande de priorité maximale (interruption de niveau zéro) a été adressée au processeur 200 par l'unité SIU 100. La ligne d' «existence d'interruption de niveau supérieur» relie l'unité SIU au processeur d'entrée/sortie. Lorsqu'elle est excitée, cette ligne indique qu'il existe une demande
IMID 00-03
LZP
HLIP
d'interruption présentant un niveau supérieur ou une priorité plus élevée que le processus ou l'opération en train d'être exécuté par le processeur 200.
i IDR La ligne de «demande de donnée d'interrup tion» s'étend du processeur d'entrée/sortie 200 jusqu'à l'unité SIU 100. Lorsqu'elle est excitée, cette ligne indique qu'une donnée d'interruption doit être adressée au proces-Ki seur par l'intermédiaire des lignes DFS par l'unité SIU 100.
RLS La ligne de «libération» relie le processeur d'entrée/sortie 200 à l'unité SIU 100. Cette ligne, quand elle est excitée, indique que le 15 processeur 200 a terminé l'exécution de l'opé
ration en cours.
AIL 0-2 Les lignes de «niveau d'interruption actif»
relient l'unité SIU au processeur d'entrée-/ sortie 200. Ces lignes sont codées de manière 2o à définir le numéro du niveau d'interruption de l'opération en train d'être exécutée par le processeur 200.
Un dernier groupe de lignes d'interface utilisées par certains 25 des modules de la figure 1 correspond aux lignes d'interface de mémoire locale de la figure 5d. L'interface de mémoire locale 603 assure un échange d'informations entre la mémoire locale 500 et les modules du système. L'échange est effectué en commandant les états logiques des différentes lignes d'interface 30 de signaux selon des règles pré-établies et suivant une séquence de signaux appelée «un dialogue». L'interface de mémoire locale comprend plusieurs lignes de transmission de donnée à la mémoire (DTM 00-35, P0-P3), plusieurs lignes d'identification de demande transmise à la mémoire (RITM 0-7 P0-P1), plu-35 sieurs lignes de spécification de lignes à la mémoire (SLTM 0-3, P) d'une ligne de commande d'acceptation PI (APC), une ligne de commande d'acceptation ZAC (AZC), une ligne de préparation d'interface PI (PIR), une ligne de préparation d'interface ZAC (ZIR), une ligne de demande de transfert de donnée lue 4» (RDTR), plusieurs lignes de transmission de données à partir de la mémoire (DFM 00-35, P0-P3), plusieurs lignes d'identification d'une demande provenant de la mémoire (RIFM 0-7, PO-PI), une ligne de double précision partant de la mémoire (DPFM), une ligne QU AD, la ligne d'acceptation de donnée lue 45 (RDAA) et une ligne de synchronisation de système (SYS-CLK).
Des instructions de mémoire et d'interface programmable sont transmises par les mêmes lignes de transmission de données de l'interface. L'interface ne comporte pas de groupe de lignes se pour traiter des demandes d'interruption et en conséquence les modules reliés à la mémoire locale par l'unité SIU 100 ne peuvent pas produire directement une interruption de mémoire. On va donner dans la suite, de façon plus détaillée, une description des lignes d'interface de mémoire locale.
55
LIGNES D'INTERFACE DE MEMOIRE LOCALE Désignation Description
DTM 00-35, P0-P3 Les lignes de «voie de transmission de données» établissent une voie direction-6« nelle d'une largeur de quatre multiplets
(36 lignes d'information et 4 lignes de parité impaire) qui s'étend de l'unité SIU 100 à la mémoire locale 500. Ces lignes sont utilisées pour transmettre des ins-65 tructions de mémoire ou d'interface pro grammable à la mémoire locale 500. RITM 0-3, P0, Les lignes d'«identification de module RITM 4-7, PI demandeur» transmises à la mémoire
5 616 251
8
SLTM 0-3, P
AZC
APC
s RIFM 0-3, PO
DPFM et QU AD
PIR
constituent deux groupes de quatre lignes qui s'étendent de l'unité SIU 100 à la mémoire locale 500. Ces lignes sont codées de manière à transmettre une information à la mémoire locale, cette in- 5 formation identifiant le module qui a RDTR établi l'instruction, et elles sont utilisées pour renvoyer la donnée demandée au module correct.
Les lignes de «spécification» reliées à la m mémoire s'étendent entre l'unité SIU 100 et la mémoire locale 500 et comprennent deux lignes de sélection de nombre de blocs de connexion, une ligne d'écriture lecture en mémoire, une ligne de double précision en mémoire et une ligne de parité. Les signaux d'information qui sont transmis à ces lignes sont codés de la façon suivante :
(a) les bits 0-1 sont des bits de sélection de numéros de blocs de connexion codés de manière à spécifier le bloc de connexion ou le sous-canal situé à l'intérieur du module correspondant et qui doit recevoir ou interpréter l'instruction de mémorisation transmise au module.
(b) le bit 2 est un bit d'écriture/lecture en mémoire qui est incorporé à l'information de commande de direction reçue en provenance du module actif et qui est transmise par l'unité SIU à la mémoire locale 500 quand une nouvelle instruction est adressée à la mémoire par SIU 100. L'état de ce bit indique la direction de transfert de la donnée.
(c) le bit 3 est un bit de double précision en mémoire qui est codé pour spécifier la quantité de données à transférer. Il est également inclus dans l'information de commande de direction fournie par le module actif et transmise au module de mémoire locale 500 par l'unité SIU 100 quand une nouvelle instruction est adressée au module de mémoire.
La ligne d' «acceptation d'ordre ZAC»
relie l'unité SIU 100 au module de mémoire locale 500. Quand elle est excitée,
cette ligne signale au module de mé- DSD
moire locale 500 qu'il doit accepter l'information d'instruction et de commande ZAC qui est appliquée aux autres lignes par SIU 100. L'excitation de cette ligne d'interface se fait exclusivement avec celle de la ligne d'interface de commande d'acceptation Pl.
La ligne d'«acceptation d'ordre d'interface programmable» qui a été décrite en référence â l'interface programmable s'étend de l'unité SIU 100 au module de mémoire locale 500. Lorsqu'elle est exci- «> tée, cette ligne indique que l'information de commande qui est appliquée aux li- RDAA gnes DTM doit être acceptée par le module de mémoire locale 500.
La ligne de «préparation d'interface pro- w grammable», qui a été décrite en référence a l'interface programmable,
s'étend du module de mémoire locale 500
DFM 00-35, P0-P3
jusqu'à l'unité SIU 100. Lorsqu'elle est excitée, cette ligne signale à l'unité SIU 100 que le module de mémoire locale 500 peut recevoir une commande d'interface programmable (PI).
La ligne «de demande de transfert de donnée lue» s'étend du module de mémoire locale 500 jusqu'à l'unité SIU 100. Cette ligne, quand elle est excitée, indique que la donnée lue précédemment demandée par instruction ZAC ou PI est disponible en même temps que l'information de commande nécessaire à adresser au module demandant la donnée. Les lignes de «transmission de donnée en provenance de mémoire» constituent un bus unidirectionnel d'une largeur de quatre multiplets qui s'étend du module de mémoire locale 500 jusqu'à l'unité SIU 100. Ces lignes sont utilisées pour renvoyer une donnée lue demandée à un modul actif par l'intermédiaire de l'unité SIU 100.
50
55
Les deux groupes de lignes d'«identifica-tion de demandeur» partant d'une mémoire s'étendant du module de mémoire locale 500 jusqu'à l'unité SIU 100. Ces lignes sont codées pour renvoyer la donnée lue du module 500 au module demandeur.
La ligne de «double précision» et la ligne «QUAD» partent du module de mémoire locale 500 pour aboutir à l'unité SIU 100. Ces lignes sont codées de façon à indiquer le nombre de mots à transférer par l'intermédiaire de SIU 100 au module demandeur pendant l'intervalle de demande de transfert de donnée lue. Ces lignes sont codées de la manière suivante:
QUAD, DPFM
0 0 un mot, simple précision
0 1 deux mots, double précision
1 X
(ne pas tenir compte) quatre mots
La ligne d'«identification d'état/donnée lue» s'étend du module de mémoire locale 500 à l'unité SIU. L'état de cette ligne signale à l'unité SIU 100 si l'information appliquée aux lignes DFM est une donnée lue ou une information d'état quand la ligne RDTR est excitée. Lorsqu'elle est excitée, la ligne indique qu'une information d'état concernant un ou deux mots (QUAD = 0) est en train d'être transférée. Lorsqu'elle est excitée de manière à prendre l'état binaire ZERO, la ligne signale que jusqu'à quatre mots de données sont en train d'être transférés, le nombre étant spécifié par le codage des lignes QUAD et DPFM. La ligne d'«acceptation de donnée lue», correspondant au terminal programmable, s'étend de l'unité SIU 100 au module de mémoire locale. Lorsqu'elle est excitée, cette ligne signale au module de mémoire que la donnée appliquée aux lignes d'interface par le module de mémoire locale a été acceptée et
9
616 251
que le module de mémoire locale peut extraire une donnée desdites lignes.
SYS-CLK La ligne de «synchronisation de système» est une ligne qui relie l'unité SIU 100 à chaque module du système. Cette ligne est reliée à une base de temps incorporée au processeur d'entrée sortie 200 de manière à synchroniser les opérations de chaque module de mémoire à partir d'une source d'horloge commune du système.
Bien que les figures 5a à 5d représentent les lignes qui relient les différents modules du système de la figure 1 à l'unité SIU 100, il est à noter que d'autres lignes sont également prévues pour signaler d'autres conditions, par exemple des conditions d'erreurs et des conditions opérationnelles. Après avoir décrit les différents types d'interfaces utilisés par les modules de la figure 1, on va maintenant décrire de façon plus détaillée chacun des modules permettant une meilleure compréhension de l'invention.
Processeur d'entrée/sortie 200
En se référant à la figure 2, on voit que le processeur 200 comprend une commande microprogrammée 201 agissant de façon à produire des signaux de commande en réponse à des microinstructions emmagasinées dans une mémoire de commande 201-10 en vue de l'exécution d'instructions, une mémoire-tampon d'instructions 202 servant à emmagasiner des instructions extraites du module dé mémoire locale 500, une partie de mémorisation 203 et une partie de traitement 204 servant à effectuer des opérations arithmétiques et logiques sous la commande de microprogrammes emmagasinés dans la mémoire de commande 201-10.
Mémoire de commande 201
En considérant chaque section de façon plus détaillée, la mémoire de commande 201-10 comprend des sections fixes qui utilisent par exemple une mémoire remplissant seulement une fonction de lecture (ROM). La mémoire 201-10 est adressable par l'intermédiaire de signaux provenant de l'une quelconque des huit sources d'adresses et appliqués à un commutateur 201-14. Les contenus des emplacements adressés sont transmis à un registre de sortie 20-15 et ils sont décodés par des circuits décodeurs prévus dans un bloc 201-16.
En outre, comme indiqué, des signaux provenant d'un des emplacements des contenus de microinstructions du registre 201-15 sont appliqués à l'entrée du commutateur 201-14 afin de sélectioner une des huit sources d'entrée en vue d'appliquer une adresse à la mémoire de commande 201-10. Les microinstructions lues dans le registre 201-15 contiennent des constantes d'adressage servant à brancher la mémoire de commande 201-10 sur des routines de microprogrammes appropriées.
Comme le montre la figure 2, les huit sources d'adresses de la mémoire de commande comprennent: des signaux d'interruption/exception dérivés de signaux appliqués par l'unité d'interface de système 100 et des circuits incorporés au processeur 200; une position de registre d'adresse suivante qui reçoit une information d'adresse suivante emmagasinée dans un registre • 201-22 par l'intermédiaire d'un circuit additionneur 201-24 ; une position de registre d'adresse de retour qui reçoit les contenus correspondant aux adresses de retour d'un registre de retour 201-20 ; une position de registre d'adresse d'exécution qui reçoit une adresse provenant d'une mémoire de détection de voie 201-22 par l'intermédiaire d'un registre de sortie de mémoire 201-4; un position de registre d'adresse de séquence qui reçoit également une adresse provenant du registre 201-4 et une position constante qui reçoit une valeur constante provenant du registre de sortie 201-15.
L'adresse suivant appropriée est établie par le circuit additionneur 201-24 qui reçoit comme première entrée d'opérande des signaux d'adresses provenant de l'une des sources sélectionnées par le commutateurs 201-14 et comme autre entrée d'opérande des signaux provenant de circuits de commande de branchement faisant partie d'un bloc 201-26. Les circuits de commande de branchement sont conditionnés par des signaux constants emmagasinés dans un registre 201-15 de la commande de mémoire et qui fournit à son tour une valeur appropriée constituant l'une des entrées d'opérande du circuit additionneur 201-24. L'adresse résultante établie par le circuit additionneur 201-24 représente la somme des adresses transmises par le commutateur 201-14 et des signaux constants fournis par les circuits de commande de branchement du bloc 201-26. En résumé, les différentes positions du commutateur 201-14 sont sélectionnées en réponse à des microinstructions lues dans la mémoire de commande 201-10 en vue d'établir des adresses appropriées pour des microprogrammes emmagasinés dans la mémoire de commande 201-10 et nécessaires pour l'exécution d'une opération spécifiée par les codes d'opérations d'une instruction de programme. Le code d'opération de l'instruction est appliqué à la mémoire de détection de voie 201-2 par l'intermédiaire de la voie 201-6 comme indiqué. La position du registre d'adresse de retour définie par le commutateur 201-14 est sélectionné pendant l'exécution séquentielle d'un programme à la suite d'une opération de branchement tandis que la position constante de registre est sélectionnée de façon à créer une dérivation vers un emplacement prédéterminé de la mémoire de commande 201-10 qui est défini par l'emplacement de constante de la microinstruction emmagasinée dans le registre 201-15.
Des interruptions sont traitées à la fin de l'exécution d'une instruction de programme. La figure 2 montre que des lignes d'existence d'interruption de niveau supérieur (HLIP) et d'interruption de niveau zéro (LZP) appliquent des signaux au commutateur 201-14. Le signal appliqué à la ligne HLIP est combiné suivant le mode logique «ET» avec des signaux d'inhibition d'interruption provenant d'un registre de commande de processus 204-22 et le signal résultant est combiné suivant le mode logique «OU» avec le signal appliqué à la ligne LZP. Lorsqu'il ne se produit pas d'inhibition du signal d'existence d'interruption de niveau supérieur ou bien lorsqu'il existe un signal appliqué à la ligne LZP, les signaux provenant de circuits non représentés et reliés au commutateur 201-14 sélectionnent la position d'exception/interruption. Les lignes de transmission de signaux représentant l'existence d'une interruption (LZP et HIPL) assurent la sélection d'une séquence de microinstructions d'interruption qui est à mettre en référence au lieu de mettre en référence la séquence de microinstructions correspondant à l'exécution de l'instruction suivante du programme.
Des lignes de transmission de signaux représentant des «exceptions» sont appliquées à des circuits de commande, non représentés, associés au commutateur 201-14 et assurent la sélection de la position d'exception/interruption. Cela établit une adresse servant à la mise en référence d'une séquence de microinstructions d'exception. En fonction du type d'exécution, l'exception peut être traitée immédiatement du fait qu'on doit empêcher la poursuite de l'exécution d'une instruction du programme ou bien cela n'est pas possible (par exemple du fait de défauts, d'instructions illégales). L'exception est traitée à la fin de l'exécution de l'instruction du programme, quand la situation ne nécessite pas une attention immédiate (par exemple un temps de pause, un report, ect...). Comme cela sera précisé dans la suite, l'apparition d'exception se traduit par une sélection de la position exception/interruption dans le commutateur 201-14 et par l'établissement d'une position de bit appropriée dans le registre de commande de processus 204-22.
Des signaux de minutage, désignés par PDA sur la figure 1, et nécessaires pour établir des cycles appropriés de mémorisa5
Kl
15
20
25
30
35
40
45
50
55
60
65
616 251
10
tion pour la partie de commande 201 ainsi que des signaux de minutage servant à commander d'autres sections du processeur 200 et les autres modules du système de la figure 1, sont engendrés par des circuits de minutage incorporés à un bloc 201-30. Dans le cadre de la présente invention, on peut considérer les circuits de minutage ainsi que les autres circuits de la figure 2 comme étant d'une conception classique et ils peuvent se présenter par exemple sous la forme des circuits décrits dans la publication intitulée «The Integrated Circuits Catalog for Design Engineers» de Texas Instruments, Inc., de 1972. Plus particulièrement, les circuits d'horloge peuvent comporter un oscillateur commandé par cristal et des circuits de comptage tandis que le commutateur 201-14 peut comporter plusieurs circuits sélecteurs-multiplexeurs de données.
La description faite ci-dessus montre que, dans la plupart des machines de commande à microprogrammes, la mémoire de commande 201-10 assure la commande nécessaire de chaque cycle de fonctionement du processeur, c'est-à-dire que chaque mot de microinstruction lu dans la mémoire de commande 201-10 pendant un cycle de fonctionnement est divisé en un certain nombre d'emplacements séparés de commande qui fournissent les signaux nécessaires d'entrée aux différents commutateurs-sélecteurs de la figure 2 en vue de l'adressage des différentes mémoires interprètes et de la sélection des opérandes, des signaux de spécification de différentes conditions de contrôle en vue d'un branchement, des signaux de commande du fonctionnement d'une unité d'addition/décalage de la selection 204 et des signaux fournissant une information de commande nécessaire pour établir des instructions ou des ordres.
Mémoire-tampon d'instructions- 202
Cette section comprend plusieurs registres 202-2 servant à emmagasiner jusqu'à quatre mots d'instructions extraits du module de mémoire locale 500 et transmis par l'intermédiaire d'un registre d'entrée de donnée 204-18. Les registres 202-2 sont reliés à un commutateur 202-4 à deux positions qui est agencé de façon à comporter deux sorties, à savoir une sortie de lecture d'instruction courante (CIR) et une sortie de lecture d'instruction suivante (NIR). La sélection des mots d'instruction sur la base d'une moitiée de mot ou d'un mot complet est effectuée en concordance avec les états des positions de bits du compteur d'instructions courantes (IC) normalement emmagasinées dans le premier des registres de traivail du bloc 204-12. Cet agencement peut être considéré comme étant d'une conception classique.
Partie de mémorisation 203
Comme le montre la figure 2, cette partie comprend une mémoire interprète contenant huit séries ou groupes de registres associés à huit processus différents qui sont chacun affectés à un des huit niveaux de priorité. Le niveau de priorité le plus élevé est le niveau 0 et le niveau de priorité le plus bas est le niveau 7. Chaque groupe ou niveau comporte 16 registres qui sont utilisés de la manière décrite dans la suite.
La mémoire interprète 203-10 est adressée par l'intermédiaire d'un commutateur-sélecteur de données à huit positions 203-14 qui applique sélectivement une adresse de sept bits provenant de l'une de huit sources à des entrées d'adresses 203-12. Les trois positions de bits les plus significatifs des entrées d'adresses 203-12 sélectionnent un des huit groupes de registres (c'est-à-dire le niveau) tandis que les quatre bits restants sélectionnent un des seize registres. Des signaux appliqués aux lignes de niveau d'interruption actif (AIL) par l'unité SIU 100 trans -mettent les trois bits les plus significatifs aux entrées d'adresse de niveau d'interruption actif (AIL) par l'unité SIU 100 transmettent les trois bits les plus significatifs auc entrées d'adresse emplacements correspondants à l'instruction appliquée par l'intermédiaire de IRSW.
Le registre d'adresse d'enregistrement 203-22 reçoit par l'intermédiaire du commutateur 202-4 des signaux correspondant aux bits 9-12 ou aux bits 14-17 de l'instruction de programme courant en correspondance à un des emplacements de s la microinstruction contenue dans la registre 201-15. En conséquence, le registre d'adresse d'enregistrement assure un emmagasinage d'adresse en vue de la charge ou du renvoi d'un résultat vers l'un des registres de la mémoire interprète 203-10. L'opération d'enregistrement se produit lors de la génération d'un m signal de minutage d'enregistrement qui est engendré soit en réponse à la commutation dans l'état binaire UN d'une bascule d'enregistrement minutée, non représentée, soit en réponse à un emplacement d'une microinstruction chargée dans le registre 201-15. Lorsqu'il est engendré par la bascule d'enregistrement, i5 le signal de minutage d'enregistrement se produit quand la bascule est remise à zéro lors de l'apparition d'une impulsion d'horloge PDA suivante. Cela permet le déroulement d'une opération d'enregistrement se rapportant à une instruction de programme pendant le début du traitement de l'instruction 20 suivante.
Il est à noter que les contenus du registre d'adresse d'enregistrement 203-22 sont appliqués à un réseau décodeur 203-28 par l'intermédiaire du commutateur-sélecteur 203-14 qui fonctionne de manière à engendrer un signal transmis par une ligne 25 de sortie à chaque fois que le registre 203-22 emmagasine une adresse de 0,1 ou 15. Ce signal empêche la génération d'une impulsion de minutage d'enregistrement par les circuits de commande, non représentés, quand la bascule d'enregistrement se trouve à l'état binaire UN. En outre, le réseau décodeur 203-30 28 reçoit un signal de mode provenant du registre d'état de processus 204-20. L'état de ce signal, qui indique si le processeur 200 fonctionne suivant le mode principal ou le mode d'asservissement, est combiné par une opération logique ET avec le signal de sortie et il est utilisé pour engendrer un signal 35 d'exception transmis par une autre ligne de sortie et appliqué à une entrée du registre de commande du processus 204-22 en vue de faire passer le commutateur 201-14 dans la position d'exception-interruption. Comme expliqué ci-dessus, cela évite une modification des contenus de l'emplacement de registre 40 d'état de processus (GRO) dans la mémoire interprète 203-10.
Les contenus d'un emplacement de registre adressé sont transférés dan un registre 203-16 de la mémoire interprète par l'intermédiaire d'un commutateur-sélecteur de données 203-18 à deux positions. Les contenus du registre-tampon 203-16 sont 45 ensuite sélectivement appliqués à une partie de traitement 204 par l'intermédiaire d'un autre commutateur-sélecteur 203-20 à deux positions. Les positions différentes de chacun des commutateurs-sélecteurs 203-14,203-18 et 203-20 peuvent être sélectionnées par des emplacements différents des microinstructions so lues dans le registre 201-15. La mémoire interprète 203-10-reçoit des signaux de données qui proviennent de l'un de deux bus de sortie reliés sélectivement à l'un des quatre registres de traivail du bloc 204-12.
Chaque groupe de 16 registres comprend une position 55 (registre général 0) de registre d'état de processus (PSR) servant à emmagasiner une information essentielle pour la commande du processus en cours. Les huits premières positions de bits du registre contiennent une information de direction codée de manière à identifier le module d'interruption. La position sui-60 vante est une position de bit privilégiée qui est codée de manière à identifier le mode de fonctionnement (c'e st-à-dire principal ou asservi). Le registre contient également une position de bit de registre extérieur qui est codée de manière à indiquer si le contenu du registre peut être modifié, une position de bit de 65 mode d'adresse, deux positions de bit de code de condition, une position de bit de report et 22 positions de bits servant à emmagasiner un compte qui diminue périodiquement à mesure que le processus associé se déroule (c'est-à-dire qu'il sert de
11
616 251
«minuterie de processus»). Du fait de la fréquence des accès aux contenus du registre d'état de processus qui sont nécessaires en vue d'une modification ou d'une référence, des signaux représentant les contenus de ce registre sont emmagasinés dans un des registres de la partie de traitement 204 (c'est-à-dire le registre 204-20). En conséquence, l'emplacement d'emmagasinage de registre général servant à emmagasiner les contenus du registre d'état de processus sert à mémoriser la valeur courante du registre d'état de processus de la partie 204 lors de l'apparition d'une interruption.
Chaque groupe de registres comporte en outre un compteur d'instruction (registre général 1) en vue de l'emmagasinage de l'adresse de l'instruction courante du processus associé. En outre, chaque groupe de registres comporte un registre de base de tableau de pages (registre général 15) et un certain nombre de registres généraux (registres généraux 2 à 14) assurant une mémorisation temporaire d'opérandes et d'informations d'adresses. La mémoire interprète 203-10 contient également un emplacement de registre de base de bloc commande (CBB) qui contient une adresse absolue pointée vers la base d'un bloc de commande d'exception et des tableaux de bloc de commande d'interruption emmagasinés dans le module de mémoire locale 500. Le premier registre GRO du groupe de priorité la plus élevée de registre (niveau 0) qui n'est jamais modifié contient l'information de bloc de base de commande. Les tableaux de bloc de base d'interruption (ICB) contiennent 256 groupes d'emplacement de mémorisation qui emmagasinent des informations servant à traiter le type d'interruption. Les tableaux du bloc de commande d'exception (ECB) contiennent 16 groupes d'emplacements de mémoire qui contiennent des informations servant à traiter le type d'exception.
Les exceptions sont des conditions détectées dans un processeur et qui obligent le processeur 200 à amorcer automatiquement l'une des 16 routines de traitement d'exception. Les conditions d'exception sont identifiées par un numéro d'exception à quatre bits qui correspond aux bits 10 à 13 de l'instruction de programme quand le processeur aborde le mode principal. Dans tous les autres cas, le numéro d'exception est ZERO. Le numéro d'exception (ECB # ) est utilisé pour identifier un des quatre mots de blocs de commande d'exception (ECB) qui est pointé vers une routine de traitement d'exception. L'adresse de multiplet d'un bloc ECB est égale à la base de bloc de commande (CBB)-16 (ECB 4= +1). Chaque bloc ECB contient des valeurs destinées à être chargées dans les registres PSR, IC et PTBR en addition à un pointeur de zone disponible qui sert d'emplacement de réserve pour emmagasiner une information se rapportant au processus en cours avant que le processeur 200 amorce la routine d'exception.
L'adresse d'un bloc de commande d'interruption (ICB) est égale à la base de bloc de commande (CBB) + 16 (ICB#). Le ICB rf est obtenu à partir du mot d'interruption comme cela va être précisé dans la suite. De même, le bloc ICB est un bloc de quatre mots et il contient des valeurs destinées aux registres PSR, IC, GR14 et PTBR.
Partie de traitement 204
Cette partie effectue toutes les opérations arithmétiques et logiques nécessaires pour traiter des instructions du programme. La partie 204 comprend une unité d'addition/décalage 204-1 qui est capable d'effectuer des opérations arithmétiques, de décalage et logiques sur une paire d'opérandes de 36 bits. Les résultats obtenus par la partie d'addition ou la partie de décalage de l'unité 204-1 sont sélectionnés en réponse à des microinstructions/puis ils sont sélectivement transférés par l'intermédiaire d'un commutateur-sélecteur 204-8 à quatre positions vers deux lignes de sortie de manière à parvenir à l'un des registres de travail du bloc 204-12 et à un registre de sortie de donnée
204-14. Le registre de sortie de donnée 204-14 est relié aux lignes de l'interface de donnée 600 du processeur.
Dans le cadre de la présente invention, l'unité d'addition/ décalage 204-1 peut être considérée comme étant d'une concep-s tion classique. Egalement, l'unité 204-1 peut comporter des circuits tels que ceux faisant l'objet du brevet US No. 3.811.039 ou bien d'autres circuits connus.
Le bloc 204-12 comporte quatre registres de travail R0 à R3 qui assurent une mémorisation temporaire pour le compteur ic d'instruction et pour des adresses pendant l'exécution d'une instruction. Les registres peuvent être chargés à partir de l'une des sources reliées au commutateur 204-8 (c'est-à-dire l'unité d'addition/décalage 204-1, le commutateur d'adresse 204-6, le commutateur PSR/PCR 204-24 et le commutateur d'entrée de 15 la mémoire interprète 203-18). Le registre à charger et le signal d'enregistrement nécessaire pour charger le registre sont définis par des instructions comprises dans la microinstruction lue dans le registre 201-15.
Comme indiqué sur la figure 2, les registres sont reliés à 20 deux bus de sortie WRP et WRR. Le bus WRP est relié aux entrées d'adresse 204-5, au commutateur 203-18 et à la mémoire interprète 203-10. Le bus WRR est relié à un commutateur d'opérande A 203-20, au commutateur d'opérande B 204-1, au registre 204-20 et au registre 204-22. Les registres 25 sélectionnées pour une connexion avec les bus WRR et VRP sont définis par deux emplacements contenus dans la microinstruction lue dans le registre 201-15.
Comme le montre la figure 2, la partie de traitement 204 contient un registre d'état de processus 204-20 et un registre de .io commande de processus 204-22. Le registre d'état de processus 204-20, comme mentionné ci-dessus, est chargé à partir de la mémoire interprète 203-10 par l'intermédiaire du bus de sortie WRR. Le registre de commande de processus 204-22 est un registre de 36 bits qui est Commun aux huit niveaux d'interrup-35 tion.
Les positions de bits du registre de commande de processus 204-22 contiennent les informations suivantes. Les positions de bits 0 à 8 définissent différents types d'exception du mode nonprincipal qui contiennent les éléments suivants:
40
POSITION DE BIT PCR TYPE D'EXCEPTION 0 Opération non terminée ; aucune réponse transmise par SIU 100 dans les lignes ARA ou ARDA. 45 1 Défaut dans les limites d'adresse de page (vérifier la touche)
2 Défaut d'accès en page
3 Page non située en mémoire
4 Opération illégale so 5 Arrêt de la minuterie de processus
6 Dépassement
7 Défaut de verrouillage
8 Mésalignement d'adresse.
55
Le terme «défaut» ne signifie pas obligatoirement l'existence d'un défaut dans la partie matérielle de l'installation mais il se rapporte également à des conditions d'erreur, etc
Les positions de bits 9 à 15 identifient l'emplacement 60 d'ereurs de parité tandis que les positions de bits 23 à 26 identifient le numéro et le niveau du processeur qui sont reçus en provenance des lignes PNID et AIL. La position de bit 27 est une position de bit d'inhibition d'interruption tandis que les positions de bits 28 à 35 contiennent des bits de demande 65 d'interruption qui, lorsqu'ils sont commutés dans un état binaire UN, indiquent une interruption à un niveau correspondant à la position de bit (par exemple le bit 28 = niveau 0). Les positions de bits 27 à 25 peuvent être chargées par une instruction de
616 251
12
programme à partie du groupe de registres faisant partie du bloc 204-12 par l'intermédiaire du bus de sortie WRR.
Les contenus de chacun des registres 204-20 et 204-22 sont sélectivement appliqués à une autre position du commutateur-sélecteur 204-8 à quatre positions par l'intermédiaire d'un commutateur-sélecteur 204-24 à deux positions. Le registre 204-20 est également relié aux positions PI d'un commutateur-sélecteur 204-10 à deux positions et d'un commutateur-sélecteur d'adresse 204-6 à quatre positions.
Le commutateur de direction 204-10 assure la transmission d'une information vers l'unité SIU 100 qui est utilisée pour transférer la commande vers le module correct. Un des emplacements des microinstructions lues dans le registre 201-15 sélectionne la position appropriée pour une commande de mémoire ou une commande PI. L'information de direction d'une commande de mémoire est établie à partir d'emplacements contenus dans la micro-instruction et à partir d'une information d'adresse de page provenant de la mémoire interprète 204-4 ou bien à partir d'une information d'adresse absolue provenant du bus WRP.
Dans le cas d'une commande PI, l'information de direction est engendrée de la manière suivante : le bit 0 est commuté à l'état binaire pour une commande PI; les bits 1 4 correspondent aux bits 0 à 3 du registre 204-20 et les bits 5-6 correspondent aux bits d'un des emplacements de la micro-instruction qui sont codés de manière à définir s'il s'agit d'un transfert d'un seul mot ou bien d'un double mot ou bien s'il s'agit d'une opération de lecture ou d'écriture. Au début d'un cycle de mémorisation ou bien de l'amorçage d'une instruction, les signaux provenant du commutateur de direction 204-10 sont appliqués à un registre de direction 204-16 qui transmet les signaux aux lignes appropriées de l'interface de données 600 du processeur 200. Comme cela sera précisé dans la suite, l'instruction contenant une information supplémentaire de direction est établie par la position 2 du commutateur d'adresse 204-6 dans le cas d'une instruction PI.
Comme le montre également la figure 2, la partie de traitement 204 comporte une mémoire interprète 204-4 pouvant être adressée par l'intermédiaire d'entrées d'adresse 204-5 et qui reçoit des signaux d'adresse provenant de l'un des registres reliés au bus WRP. La mémoire interprète 204-4 assure l'emmagasinage d'une adresse de tableau de page pour chacun des huits niveaux d'interruption utilisés pour la génération d'adresses absolues en vue de l'adressage du module de mémoire locale 500. Lorsqu'ils sont adressés, les contenus de l'emplacement de mémorisation de la mémoire interprète 204-4 sont transmis vers deux des quatre positions du commutateur d'adresse 204-6. Ces deux positions sont utilisées pour établir une référence de page dans la module de mémoire locale 500. Comme les opérations sur pages de la mémoire interprète 204-4 ne se rapportent pas particulièrement à la présente invention, on ne les décrira pas de façon détaillée.
Les deux autres positions du commutateur-sélecteur d'adresse 204-6 sont utilisées pour établir l'instruction de mémorisation ou l'instruction PI. Plus particulièrement, la position 1 du commutateur d'adresse 204-6, lorsqu'elle est sélectionnée par un emplacement de commande d'adresse d'un mot de microinstruction emmagasiné dans le registre 201-15, engendre l'information de commande de mémoire R/W qui contient les bits 0 à 8 codés en concordance avec des emplacements prédéterminés du mot de microinstruction et des bits 9 à 35 codés de manière a correspondre soit à une information d'adresse de page provenant de la mémoire 204-4 soit à des bits d'adresse absolue qui sont appliqués au bus de sortie WRP par les registres de travail du bloc 204-12. Lorsque la position PI est choisie pour le commutateur 204-6, ce commutateur établit un mot de commande d'interface programmable dans lequel le bit 0 est un ZERO binaire, le bit 1 est défini par un emplacement du mot de micro-instruction emmagasiné dans le registre 201-15, le bit 2 est défini par le bit 9 du registre PSR 204-20 et précise si le processus en cours peut modifier certains registres externes, les bits 5 à 8 sont égaux aux bits 4 à 7 du registre 204-20 et 5 définissent le bloc de connexion ou le sous-canal à l'intérieur du module, le bit 3 est codé de manière à spécifier le nombre de paires de processeurs qui sont alimentés par l'unité SIU 100, le bit 4 est un bit ZERO et les bits 9 à 35 sont égaux aux bits 9 à 35 du bus WRP qui correspondent à l'adresse absolue de la com-io mande PI.
ON VA MAINTENANT DECRIRE EN DETAIL L'UNITE D'INTERFACE DE SYSTEME 100.
Partie d'interruption 102 i s L'unité d'interface de système 100, comme mentioné ci-dessus, établit une communication entre des modules du système de la figure 1 par l'intermédiaire de plusieurs commutateurs du type «Crossbar». On utilise des commutateurs crossbar séparés pour collecter des signaux provenant des lignes de 2i: chacune des interfaces différentes des modules. La figure 3a montre les commutateurs et les circuits de la partie d'interruption 102 servant à traiter les interfaces d'interruption de modules. Dans le système de la figure 1, il est prévu des modules qui sont reliés aux bornes LMO, A, E, G et J, chacun d'eux 25 appliquant des signaux à l'unité SIU 100 par l'intermédiaire de lignes différentes de l'interface d'interruption 602. En outre, l'unité SIU 100 fournit également des signaux par l'intermédiaire d'une interface d'interruption associée au boîtier de connexion L de la figure 1.
.ni Comme le montre la figure 3a, chacun des modules, lorsqu'il demande une communication, applique un signal à sa ligne de demande d'interruption (IR) ainsi qu'une information d'identification d'interruption appropriée à ses lignes IDA qui sont reliées aux circuits d'un bloc de commande et de priorité d'inter-35 ruption 101-2. Les circuits du bloc 101-2 contrôlent toutes les interfaces d'interruption et signalent le processeur approprié correspondant au processeur 200 lorsqu'il existe une demande présentant une priorité supérieure à celle du processus en train d'être exécuté. Lorsque le processeur 200 signale qu'il est 4o capable d'accepter la demande, l'unité SIU 100 établit l'information d'identification associée à la demande de priorité la plus élevée en vue de la transmettre au processeur 200. L'information d'identification comprend un numéro de bloc de commande d'interruption à huit bits comportant un bit de parité, un 45 numéro de niveau d'interruption de trois bits et un numéro de processeur d'un bit ainsi qu'un bit de parité et un numéro de canal de quatre bits.
On va maintenant considérer la partie d'interruption 102 de façon plus détaillée; les circuits du bloc 101-2 comportent des so circuits décodeurs qui décodent le numéro de processeur et les signaux de demande d'interruption. A condition qu'il n'existe pas d'erreur de parité, les signaux de sortie des circuits décodeurs sont appliqués à des circuits logiques de priorité faisant partie des circuits logiques du processeur désigné. Les circuits 55 logiques de priorité décodent les signaux de niveau d'interruption et déterminent le niveau de priorité le plus élevé, puis ils déterminent la priorité de boîtier de connexion de manière que le module présentant le niveau de priorité le plus élevé et la plus grande priorité de borne soit sélectionné. La priorité de boîtier 6o de connexion d'interruption à l'intérieur d'un niveau donné s'établit comme suit:
ancienne ; boîtier L ; boîtier A, boîtier B ; boîtier C, boîtier D ;
boîtier E ; boîtier F ; boîtier G ; boîtier H, boîtier J et 65 boîtier K.
Cela signifie que, dans le système de la figure 1, le boîtier des processus en cours a la priorité la plus élevée qui est suivie
13
616 251
par l'unité SIU 100, le multiplexeur à grande vitesse 300, le de ses lignes IDA à une position différente d'un commutateur processeur de réception 700, le processeur 200 et le multi- sélecteur 101-14 à huit positions. En outre, chaque module plexeur à basse vitesse 400. fournit l'information identifiant le sous-canal ou la borne du
Les circuits de priorité du bloc 101-2 fonctionnent de façon module demandeur à d'autres circuits de commande du réseau à engendrer un signal de sortie transmis par l'une des n lignes de 5101-12 par l'intermédiaire des lignes IMID de l'interface d'in-sortie, n correspondant au nombre de modules d'interruption se terruption. Quand le processeur 200 fait passer sa ligne de trouvant dans le système. Les n lignes de sortie sont reliées à un demande de données d'interruption (IDR) à l'état binaire UN, commutateur-sélecteur de données à huit positions 101-4 qui l'unité SIU 100 transmet les signaux provenant du réseau de sélectionne les signaux correspondant à un niveau d'interruption commande 101-12 aux lignes du bus de transmission de données présentant une priorité supérieure au niveau en cours en vue de l(, à partir de SIU (DFS) de l'interface de donnée 600 du proces-les introduire dans un registre 101-6. Les signaux de sortie du seur par l'intermédiaire d'une des positions d'un commutateur registre 101-6 sont appliqués aux lignes AIL quand le procès- sélecteur 101-20 à quatre positions. On n'a pas représenté les seur 200 fait passer la ligne IDR à l'état binaire UN en réponse autres positions du commutateur 101-20 du fait qu'elles n'inter-au passage de l'unité SIU 100 à l'état binaire UN avant la ligne viennent pas pour la compréhension de la présente invention, d'existence d'interruption de niveau supérieur (HLIP) ou bien 15
la ligne d'existence de niveau zéro (LZP). Lorsque le processus Partie de transfert de données 102.
en cours n'est pas empêcher d'être interrompu, une demande La figure 3b montre la partie de transfert de données 102 de d'interruption oblige le processeur 200 à suspendre le processus l'unité d'interface de système 100. Cette partie comporte des en cours et à accepter un mot d'interruption provenant de circuits de priorité qui définissent quel module de source doit l'unité SIU 100 et contenant l'information d'identification men- 211 transférer des commandes ou des instructions au multiplexeur à tionnée précédemment. Plus particulièrement, le mot d'inter- grande vitesse 300 par l'intermédiaire de l'interface program-ruption a le format suivant: mable 601 et quel module de source doit transférer des données
Le bit 0 est une position de bit de nouvelle interruption. au multiplexeur 300 par l'intermédiaire de l'interface de donnée
Lorsqu'il se trouve à l'état binaire UN, il indique que l'interrup- 600. En outre, la partie 102 comporte des circuits de priorité qui tion est nouvelle, alors que, lorsqu'il est à l'état binaire ZERO, 25 déterminent quel module de source doit effectuer un transfert il indique que l'interruption est celle d'un processus précédem- de données ou d'instructions au module de mémoire locale 500. ment interrompu et qui doit être repris. Il est à noter que des transferts entre deux modules se
Les bits 1 à 17 sont inutilisés et ont l'état binaire ZERO. Les produisent lorsqu'un module a engendré une demande transbits 18 à 27 définissent les numéro du bloc de commande mise â l'autre module et lorsque la demande a été acceptée par d'interruption, les bits 18 à 27 ayant l'état binaire ZERO. Les 30 cet autre module. Pour qu'une demande soit acceptée, le bits 28 à 31 sont établis par l'unité SIU 100 et ils identifient le module demandeur doit avoir la priorité la plus élevée, les deux module de source comme cela va être précisé dans la suite. modules doivent se trouver dans un état de réception d'informa-Les bits 32 à 35 sont engendrés par des modules comportant tion et le trajet de transfert doit être disponible (c'est-à-dire non des blocs de connexion multiples et ils identifient le sous-canal occupé.).
ou le bloc de connexion se trouvant à l'intérieur du module de 35 En ce qui concerne les signaux appliqués à la partie 102 par source, comme cela sera précisé dans la suite. le processeur 200, la génération de ces signaux est commandée
On voit également que les lignes de sortie partant des dans une large mesure par les différents emplacements des circuits de priorité d'interruption 101-2 sont reliées à un autre microinstructions qui sont lues dans le registre de traitement commutateur-sélecteur de données 101-8. Puisque seul le 201-15 de la figure 2. Par exemple, la ligne de demande de module demandeur présentant la priorité la plus élevée applique 40 boîtier de connexion de sortie actif (AOPR) partant du proces-un signal au circuit sélecteur 101-8, ce circuit sélecteur est seur 200 et reliée aux circuits du bloc 102-4 est autorisée à
branché de façon à fournir une série de signaux codés de fonctionner en concordance avec un emplacement de bit de direction qui identifient la borne à laquelle le module deman- commande du type «demande de SIU» qui existe dans chaque deur ayant la priorité accordée doit être relié (c'est-à-dire les microinstruction qui est lue dans le registre 201-15 et qui a été bits 28 à 31 du mot d'interruption). 45 codée de façon à définir un transfert d'une instruction d'inter-
Dans le mode de réalisation considéré, les codes suivants de face programmable ou de mémoire de lecture/écriture. La don-direction sont engendrés pour identifier les modules de la figure née transmise aux lignes SIU (DTS) de l'interface de processeur 1. 600 et qui est appliquée à un commutateur sélecteur à deux positions 102-2 constitue une information de commande qui est CODE BORNE DE SIU (MODULE) IDENTIFIEE 5« engendrée sous le contrôle d'un microprogramme chargé dans le
0000 Module de mémoire locale — borne LMO registre de sortie de processeur 204-14 de la figure 2. Les lignes
0001 Bloc de connexion K de direction de données vers SIU (SDTS) reçoivent des signaux 0010 SIU 100 - Bloc de connexion L engendrés sous le contrôle d'un microprogramme et qui sont 0101 Multiplexeur basse vitesse 400 — bloc de connexion J chargés dans le registre de direction de processeur 204-16 de la 0110 Processeur 200-Bloc de connexion G 55 figure 2.
1101 Multiplexeur grande vitesse 300 — bloc de connexion En ce qui concerne le système de la figure 1, seules les
A. instructions de transfert fournies par les processeurs d'entrée/
1110 Processeur de réception 700 - Bloc de connexion E. sortie au multiplexeur 500 seulement et au processeur 200
appliquent des signaux au réseau 102-4. Le réseau 102-4 con-Le code à quatre bits qui est engendré par le circuit sélecteur <,0 tient par conséquent des circuits décodeurs qui décodent l'infor-101-8 est appliqué à son tour à un groupe de circuits de mation de direction provenant du module de traitement afin commande du type logique ET classiques qui sont incorporés à d'établir quand le module désire transférer des instructions vers un réseau de commande 101-12. Les autres informations le multiplexeur 300. Dans le cas où il existe plus d'un processeur d'identification établies par les différents modules du système de d'entrée/sortie et lorsque plu d'un module désire effectuer un source sont également appliquées à d'autres circuits de com- 65 transfert de données pendant le même cycle, un réseau de mande du réseau 101-12. priorité incorporé au réseau 102-4 sélectionne le module auquel
Spécifiquement, chaque module applique un numéro de a été affecté la priorité la plus élevée et permet le transfert d'une bloc de commande d'interruption (ICBM) par l'intermédiaire instruction par ce module vers le multiplexeur 300 par Tinter-
616 251
14
médiaire des lignes PDFS de son interface programmable 601. Plus particulièrement, le réseau 102-4 applique des signaux au commutateur-sélecteur à deux positions 102-2 qui sélectionne des signaux provenant du module approprié. Cela sa produit quand le multiplexeur 300 signale à l'unité SIU 100 qu'il est prêt à recevoir une instruction en faisant passer la ligne PIR à l'état binaire UN. En même temps, le réseau 102-4 fait passer la ligne APC à l'état binaire UN en signalant au multiplexeur 300 qu'il peut recevoir l'instruction transmise par les lignes PDFS. Lorsque le processeur 200 exécute une instruction l'obligeant à adresser un ordre d'interface programmable (PI) au multiplexeur 300, le processeur 200 introduit l'identification de numéro de processeur dans le bit 3 de l'ordre. Le multiplexeur 300 emmagasine le numéro de processeur contenu dans l'ordre jusqu'à ce qu'il désire produire une demande d'interuption et à ce moment le numéro d'ordre est inclus dans une partie de la donnée d'interruption comme cela été expliqué. Lorsque l'ordre PI est transmis au multiplexeur 300, l'information de direction identifiant le processeur 200 comme l'élément demandeur est emmagasinée dans un registre 102-6 associé au multiplexeur 300 (borne A). Quand le multiplexeur 300 réagit en produisant une demande de transfert de donnée lue à l'unité SIU 100, le contenu du registre 102-6 est utilisé pour identifier le processeur 200 comme étant le module qui est effectivement destiné à recevoir la donnée.
On utilise un agencement similaire pour transférer des signaux de données au multiplexeur 300. Sur la figure 1, le module de mémorisation 500 est le seul module qui transfère des données au multiplexeur 300. Ce transfert se produit en réponse à un ordre de mémoire de lecture (ZAC) qui est acheminé vers le module de mémoire 500 par le multiplexeur 300 par l'intermédiaire du réseau 102-20. Quand le multiplexeur 300 transmet d'ordre, l'unité SIU 100 engendre le code d'identification de demandeur à quatre bits (code de direction) qui est associé à l'information d'identification de bornes multiples reçue en provenance du multiplexeur 300. L'information est emmagasinée par le module de mémoire 500 et elle est renvoyée â l'unité SIU 100 quand le module 500 engendre une demande de transfert de donnée lue pour désigner le multiplexeur 300 qui doit recevoir la donnée. Egalement, quand l'unité SIU 100 accepte la demande, elle le notifie au multiplexeur 300 en faisant passer la ligne ARDA à l'état binaire UN.
La ligne de demande de transfert de donnée lue (RDTR) lorsqu'elle est excitée par le module de mémorisation 500, signale au réseau 104-14 qu'elle est prête à transférer une information lue pendant un cycle d'opération. Le module de mémoire locale 500 fournit également des signaux aux lignes d'identification de demandeur partant de mémoire (RIFM) de manière à identifier le module demandeur auquel l'information doit être transmise.
Plus particulièrement, des circuits incorporés à un réseau décodeur 102-14 décodent les signaux d'identification qui sont appliqués aux lignes RIFM et, quand les signaux indiquent que le module de mémoire locale 500 est prêt à transférer une information au multiplexeur 300 et que le multiplexeur 300 est prêt à recevoir l'information, le réseau décodeur 102-14 applique les signaux appropriés au commutateur-sélecteur 106-12 et aux circuits se trouvant dans un réseau de commande 102-16.
En outre le réseau de décodage 102-14 applique un signal à la ligne d'acceptation de donnée lue (ARDA) de l'interface de données en signalant au multiplexeur 300 qu'il doit accepter la donnée provenant des lignes SIU (DFS) de son interface 600. Les circuits du bloc 102-16 appliquent l'information appropriée l'identification de bornes multiples à des lignes de transmission d'identificateur de bornes multiples partant de SIU (MIFS) afin d'identifier le sous-canal demandeur qui est obtenu à partir des lignes RIFM. Quand le transfert s'est effectué, le réseau 102-14 fait passer la ligne RDAA à l'état binaire UN en signalant au module demandeur que la donnée a été accepté par le module de mémorisation 500.
5 Un agencement similaire au réseau 102-14 est utilisé par l'unité SIU 100 pour transférer des ordres PI et de mémorisation depuis l'un des modules de la figure 1 jusqu'au module de mémoire locale 500. Le module 500 agit de façon à faire passer l'une ou l'autre de la ligne d'interface programmable (PIR) ou 1() de la ligne de demande d'interface ZAC (ZIR). reliée à un réseau décodeur 102-20, à l'état binaire UN lorsqu'il est prêt à acdepter un ordre d'interface programmable ou un ordre de mémoire. En outre le processeur 200, le processeur 700 et le multiplexeur 300 appliquent des signaux provenant du réseau i5 102-20 à la ligne de demande de borne de sortie active (AOPR) et aux lignes de direction de données vers SIU faisant partie de leurs interfaces de données respectives. Le réseau 102-20, lors du décodage de l'information de direction qui est appliquée par chacun des modules, agit de façon à engendrer les signaux 2o appropriés qui sont appliqués à un commutateur-sélecteur à trois positions 102-24 pour permettre au module présentant la priorité la plus élevée d'appliquer des signaux à des lignes de transfert de données vers SIU faisant partie de l'interface 603. On voit également que le réseau 102-20 applique des signaux 25 soit à la ligne d'acceptation d'ordre programmable (APC) soit à la ligne d'acceptation de mode de commande ZAC (AZC) en même temps que les signaux appropriés d'identification de demandeur aux lignes d'identification de demandeur vers la mémoire (RITM) de l'interface de module de mémoire locale 30 603 par l'intermédiaire d'un réseau de commande 102-26.
Les deux derniers réseaux 102-30 et 102-40 sont utilisés pour transférer des données de mémoire et des données d'interface programmable au processeur 200 en réponse à des instructions de mémorisation et à des instructions PI qui ont été 35 respectivement engendrées précédemment par le processeur 200. Comme le montre la figure 3b, le réseau décodeur de priorité 102-30 comporte les mêmes lignes d'entrée que le réseau 102-14 et il fonctionne de la même manière pour transmettre la donnée de mémoire demandée au processeur 200 par 4o l'intermédiaire d'un commutateur-sélecteur 102-32 et du commutateur-sélecteur à quatre positions 101-20 de la figure 3a. Il est à noter que, puisque le processeur 200 traite un seul ordre ou une seule instruction à la fois, il ne peut pas y avoir d'interférence entre les modules transmettant une donnée au commuta-4. teur-sélecteur 101-20 en vue de son transfert vers les lignes DFS en réponse à des demandes de processeur. Ainsi, après que le processeur 200 a adresséun ordre à un des modules de la figure 1, son fonctionnement est arrêté en attente de la réception de la donnée demandée. L'unité SIU 100, lors de l'acceptation de la so demande du processeur, excite la ligne ARA du processeur de façon à obliger ce dernier à retarder les opérations en cours.
Le réseau séparé 102-40 traite des demandes de retour de données provenant des modules qui répondent à des ordres ou instructions PI. Le réseau 102-40 décode les signaux qui sont 55 appliqués aux lignes RDTR et qui proviennent du registre 102-6 ainsi que des registres des autres modules, non représentés. Quand l'unité SIU 100 détecte qu'un module essaie de renvoyer une donnée demandée au processeur 200 (c'est-à-dire l'identificateur de demandeur qui est emmagasiné dans le multiplexeur 60 300, registre 102-6), le réseau 102-40 engendre des signaux qui conditionnent un circuit sélecteur à trois positions 102-42 de manière à appliquer les signaux provenant des lignes PDTS de l'interface PI du module essayant de renvoyer une donnée demandée au processeur 200. Ces signaux sont à leur tour 65 appliqués aux lignes DFS du processeur par l'intermédiaire du commutateur-sélecteur 101-20 de la figure 3 a qui est conditionné par le signal de demande de module. Pendant un cycle suivant, le réseau 102-40 fait passer la ligne RDAA à l'état
15
616 251
binaire UN en signalant au module que la donnée appliquée aux lignes PDTS a été acceptée et que le module peut maitenant extraire cette donnée (c'est-à-dire libérer son registre de sortie). En conséquence, on voit que le commutateur 101-20 applique sélectivement l'un de trois types de données aux lignes DFS de l'interface de données 600 d'un processeur.
Dans la pratique les circuits incorporés à des blocs différents de la figure 3b peuvent être considérés comme étant d'une conception classique et ils comprennent des circuits logiques tels que ceux décrits dans la publication précitée de Texas Instruments Inc. Egalement, dans la mise en pratique de la présente invention, les réseau de commutation peuvent comprendre des commutateurs crossbar classiques.
On va maintenant décrire en détail la partie commune au multiplexeur à grand vitesse 300. Les figures 4a et 4b représentent de façon plus détaillée la partie commune de commande 301 et une partie de l'adaptateur de canaux 302. En se référant d'abord à la figure 4a, on voit que la partie commune de la commande comprend deux registres 301-2 et 301-5 servant à emmagasiner les mots d'un ordre PI reçu par l'intermédiaire des lignes PDFS de l'interface programmable de multiplexeur 601 et par l'intermédiaire d'un commutateur-sélecteur 301-1 à deux positions. Le commutateur 301-1 permet l'introduction des signaux d'ordre PI provenant d'une autre voie (c'est-à-dire lignes DFS) dans les registres 301-2 et 301-5. Cependant dans le mode préféré de réalisation, ou utilise seulement la position PDFS. On voit également qu'un registre 301-40 reçoit par l'intermédiaire de circuits excitateurs 301-3 une donnée de mémoire appliquée aux lignes DFS de l'interface d'introduction de donnée en multiplexeur 600.
Les signaux d'ordre qui proviennent des deux registres 301-2 et 301-5 sont sélectivement appliqués par l'intermédiaire d'un commutateur-sélecteur 301-6 à deux positions aux quatre sections d'adaptateurs de canaux par l'intermédiaire des circuits excitateurs du bloc 301-8. Egalement, les signaux d'ordre peuvent être sélectivement appliqués à une position d'un commuta-teur-sélecteur de données 301-20 à huit positions par l'intermédiaire d'un commutateur-sélecteur de données 301-42 à deux positions. Le même commutateur 301-42 applique également les signaux de données provenant du registre 301-40 à chacune des quatre sections d'adaptateur de canaux par l'intermédiaire des circuits excitateurs du bloc 301-43.
Deux circuits de contrôle de parité 301-45 et 301-49 assurent une vérification du contenu des registres 301-2,301-5 et 301-40 et appliquent des signaux représentant les résultats aux circuits du bloc 301-4 qui fournissent des signaux d'états transmis au commutateur C 301-50. Ces circuits comprennent des circuits logiques d'une conception classique qui combient des signaux provenant du registre 301-2 avec des signaux provenant des sections d'adaptateur de canaux de façon à engendrer des signaux de commande qui sont nécessaires pour exécuter les ordres reçus en provenance du processeur 200.
En outre, les signaux provenant du registre 301-5 peuvent également être introduits dans un registre sélectionné du groupe de registres des blocs 301-10,301-12 et 301-14 par l'intermédiaire des circuits excitateurs des blocs 301-8,301-15 et 301-16. Le bloc 301-10 comprend quatre registres de 8 bits d'une conception classique et qui peuvent se présenter sous la forme des registres décrits dans le document de Texas Instrument mentionné plus haut (par exemple T17481). On peut sélectivement appliquer des signaux de sortie de chacun de ces registres à une position d'interruption du commutateur-sélecteur 301-20 en même temps que les signaux correspondants provenant d'un commutateur-sélecteur 301-30 à quatre positions et d'un com-mutateur-sélecteur 301-32 à huit positions. Les contenus des registres ICB, de niveau et de masquage des sections d'adaptateurs de canaux peuvent être lus pendant l'exécution des opérations de contrôle et de vérification en réponse à des ordres PI.
En outre, les registres du bloc de commande d'interruption 301-10 sont sélectivement reliés à un registre de données d'interruption à 14 bits (IDA) 301-22 en réponse à des signaux engendrés par un réseau de priorité de niveau d'interruption s 301-24. Des groupes des positions de bits de chacun des registres de niveaux à 24 bits du bloc 301-12 sont appliqués à des positions correspondantes d'un des commutateurs-sélecteurs de multiplexeur à 8 positions 301-26 à 301-28. On voit également que chacun des registres de niveaux du bloc 301-12 sont reliés à io des positions différentes du commutateur-sélecteur 301-30 à quatre positions et du commutateur-sélecteur 301-32 à 8 positions. On voit également que chacun des registres de masquage à 8 bits faisant partie du bloc 301-14 sont reliés à des positions différentes du commutateur-sélecteur 301-32 à quatre bits et à 15 des circuits logiques de priorité d'interruption faisant partie du bloc 301-34.
Comme le montre la figure 4a, les circuits du bloc 301-34 reçoivent des groupes de signaux de demandes d'interruption proveannt d'adaptateurs de canaux en addition à des groupes de 20 signaux d'interruption engendrés par les adaptateurs de commandes qui sont reliés aux adaptateurs de canaux. Plus particulièrement, chaque canal CA peut engendrer quatre types différents de demandes d'interruption. Elles comprennent une interruption pour défaut qui est produite par excitation d'un bit 25 indicateur d'erreur de parité dans un registre d'état courant, non représenté, qui peut être considéré comme faisant partie d'un bloc 301-4, une interruption de mot de commande de donnée (DCW), une interruption programmable et une interruption d'exception produit par la détection d'un ordre illégal, etc ... io L'interruption pour défaut est rendue commune à chaque canal de façon à constituer une entrée pour le bloc 301-34 qui est le même pour les quatre canaux.
Chaque adaptateur de commande peut également engendrer quatre types différents de demandes d'interruption qui sont 35 fonction du type de dispositif relié à l'adaptateur. Dans le cas d'un dispositif à disque, les types de demandes d'interruption comprennent: une interruption pour défaut qui est causée par la détection d'erreurs de parité, une interruption correspondant à une détection de position de rotation, une interruption corres-40 pondant à une terminaison de transfert de donnée et une interruption correspondant à une dérivation qui est causée par la terminaison d'une opération de dérivation telle qu'une opération de rechenche. Les quatre types de demandes d'interruption de canal et les quatre types de demandes d'interruption CA 45 constituent ensemble un groupe de huit types par canal CA qui définissent des événements EVO à EV7. Chaque type de demande d'interruption est affecté à un numéro de type de trois bits de manière que les quatre types de demandes d'interruption correspondant à des canaux soient numérotés de 0 à 3 en so correspondance à EVO-EV3 tandis que les quatre types de demandes d'interruption correspondant à des adaptateurs de commande sont numérotés de 4 à 7 et correspondent à EV4 et EV7. Les événements ayant les codes minimaux présentent la priorité la plus élevée (c'est-à-dire 000 = priorité la plus élevée 55 = EVO = interruption pour défaut et 111 = priorité la plus basse = EV7 = interruption due à une dérivation). La priorité pour les types différents de demandes d'interruption est fixe et elle est déterminée par le numéro de type. Pour autres renseignements concernant l'affectation de types de priorité, on 60 pourra se référer à la demande de brevet déposée en même temps par la demanderesse et ayant pour titre «Appareil d'interface programmable». Chacun des canaux fournit 7 entrées et demandes d'interruption au bloc 301-34 en même temps que l'entrée de défaut commun qui est fournie par le bloc 301-4. 65 Les circuits se trouvant dans le bloc 301-34 assurent la combinaison logique des signaux provenant de chacun des registres de masquage du bloc 301-14 avec les signaux de demandes d'interruption provenant de chaque canal et de chaque adapta
616 251
16
teur et ils sélectionnent le type d'interruption présentant la priorité la plus élevée pour chaque canal. Le code de type à trois bits pour chaque canal est appliqué à un circuit-sélecteur de multiplexeur correspondant 301-25 à 301-28. Les groupes de codes de types engendrés par le bloc 301-34 sont également appliqués comme des signaux d'entrée à des positions correspondantes d'un commutateur-sélecteur de niveau/type à quatre positions 301-35.
Chacun des circuits multiplexeur 301-25 à 301-28, lorsqu'il est enclenché par les circuits du bloc 301-34, établit un code de niveau à 3 bits approprié qui est appliqué comme signal d'entrée à un réseau de priorité de niveau d'interruption 301-24. Le réseau 301-24 engendre des signaux qui sont transmis par deux lignes reliées aux entrées des registres ICB du bloc 301-10, au commutateur 301-35 et à commutateur IMID d'identification de bornes multiples d'interruption 301-36 à quatre positions. Les signaux engendrés par le réseau 301-24 définissent le canal ou le boîtier de connexion présentant la priorité la plus élevée. Dans le cas où plus d'un canal a le même niveau de priorité, les circuits du réseau 301-24 sélectionnent le canal qui est affecté au niveau de canal le plus bas (c'est-à-dire CAO = OOXX = priorité la plus élevée, CA3 = 11XX = priorité la plus basse). Dans des cas où les adaptateurs de commande utilisent des sous-canaux ou des sous-boîtiers de connexion, deux lignes partant de CAI fournissent des signaux appliqués aux positions correspondant aux 2 bits d'ordre inférieur du commutateur 301-36. Les positions correspondant aux 2 bits d'ordre supérieur du commutateur reçoivent en permanence le numéro d'adaptateur de canal correspondant (par exemple 00 = CAO, etc.). Le signal de sortie du commutateur 301-36 est appliqué au registre IMID 301-23 comme le montre la figure 4a.
Les signaux de sortie du registre ICB sélectionné du bloc 301-10, les signaux de niveaux provenant des circuits multiplexeurs sélectionnés et les signaux de type provenant du bloc 301-34 sont combinés dans le registre IDA 301-2. Egalement, ces signaux sont appliqués aux circuits générateurs de parité d'un bloc 301-37 qui engendre deux bits de parité impaire pour les signaux emmagasinés dans le registre 301-22. Une autre bascule 301-21 qui peut être considérée comme faisant partie du registre 301-22 reçoit un signal provenant des circuits du bloc 301-34 de manière à indiquer la présence d'une demande d'interruption.
Comme le montre la figure 4a, des signaux de données emmagasinés dans le registre de bits 301-40 sont appliqués par l'intermédiaire de la position de registre H du commutateur-sélecteur 301-42 à deux positions à un commutateur d'enregistrement de canal (CW) 301-44 à deux positions. La première position du commutateur 301-44, lorsqu'elle est sélectionnée, charge un des quatre groupes de registres de boîtiers de connexion d'adaptateur de caunaux 301-46 sélectionnés en réponse à des signaux engendrés par des circuits de commande et de sélection de priorité faisant partie du bloc 301-48. Les circuits du bloc 301-48 qui reçoivent des signaux d'entrée provenant des registres 301-2 et 301-68 et des adaptateurs de canaux représentés appliquent des signaux de sortie aux lignes et au registre de sortie 301-65. Les registres du groupe 301-46 comprennent un registre à 40 bits servant à emmagasiner un mot de pointage de liste LPW correspondant à la borne associée, un registre DA à 40 bits pour emmagasiner l'adresse d'une donnée à lire ou emmagasiner et un registre DT à 40 bits pour emmagasiner une information de comptage et de commande se rapportant à une opération de transfert de donnée en cours. Les mêmes registres des quatre section d'adaptateur de canaux sont reliés à des positions différentes d'un commutateur-sélecteur 301-50 à quatre positions qui reçoit des signaux de commande provenant des circuits du bloc 301-48. Les signaux de sortie du commutateur 301-50 sont appliqués à deux réseaux additionneurs 301-52 et 301-54 en addition à un circuit de contrôle de parité 301-56
agissant de façon à vérifier les contenus pour y détecter des erreurs éventuelles. Le réseau additionneur 301-52 agit de façon à assurer la mise à jour des contenus du registre sélectionné par l'intermédiaire du commutateur 301-50 tandis que le s réseau additionneur 301-54 applique des signaux de sortie à un circuit générateur de parité 301-58. Les signaux provenant des circuits 301-52 et 301-58 sont renvoyés au registre sélectionné par l'intermédiaire de la position de réseau de mise à jour du commutateur 301-44.
i o Comme le montre également la figure 4, les signaux de sortie de commutateur 301-50 sont appliqués sélectivement à un registre de direction à 8 bits 301-60 par l'intermédiaire d'un commutateur de direction 301-59 et ils sont également appliqués au commutateur DT 301-20. Chacun des commutateurs-I? sélecteurs de données 301-59 et 301-61 reçoit des signaux de sortie provenant du commutateur DT 301-0 qui est branché non seulement aux sources mentionnées ci-dessus mais de manière à recevoir des signaux de données provenant des lignes DF de chacune des sections d'adaptateur de canaux CA0-CA3. Les 2i signaux de sortie du commutateur DT 301-20 et du commutateur ZAC 301-61 sont appliqués à un circuit de contrôle et de génération de parité 301-62 ainsi qu'au groupe de registres faisant partie du bloc 301-64. En outre, le commutateur 301-61 est relié de manière à recevoir l'information de zone et d'ordre 25 provenant des lignes de service d'adaptateur de canal et qui est appliquée au bloc 301-4 quand le multiplexeur 300 fonctionne dans un mode particulier ne rentrant pas dans le cadre de la présente invention. Les quatre registres du bloc 301-64 qui ont été désignés respectivement par ZAC, PDTS, Donnée 1 et 3f Donnée 2, emmagasinent des signaux d'ordre de mémorisation, des signaux de données PI et des signaux de données.concernant les adaptateurs de canaux. Les signaux de sortie provenant desdits registres sont appliqués aux lignes DTS de l'interface de données de multiplexeurs 600 ou aux lignes PDTS de l'interface 35 de multiplexeur 601. Lors du chargement du registre ZAC du bloc 301-64, il en résulte la commutation d'une bascule AOPR 301-65 dans l'état binaire UN de façon à signaler à l'unité SIU 100 que le multiplexeur 300 est en train de demander une voie par l'intermédiaire de laquelle il pourra transférer un ordre de 4o mémorisation (ZAC) et une donnée. L'information de direction de mémorisation appropriée qui est appliquée par l'intermédiaire du commutateur 301-59 a été emmagasinée dans le registre 301-60 et un circuit de génération et de contrôle de parité 301-66 agit de façon à établir une parité impaire pour 45 l'information de direction.
PARTIES D'ADAPTATEURS DE CANAUX
La figure 4b montre les registres et le commutateur-sélec-50 teur de données qui constituent chacune des parties d'adaptateur de canaux CA0-CA3. Comme les différentes parties sont identiques, on ne décrira que la partie CAO. On voit que cette partie reçoit des signaux de sorite provenant du commutateur de transfert de données 301-6 et du commutateur H 301-42. Les 55 signaux provenant du commutateur DT 301-6 sont appliqués par l'intermédiaire de circuits excitateurs du bloc 301-2 à un commutateur-sélecteur de données (WD) 301-4 à deux positions. Les signaux d'ordre provenant du commutateur 302-4 peuvent être appliqués sélectivement soit à un registre de mode 6o 302-5 soit à plusieurs bascules de commande 302-3 en réponse à des signaux de commande provenant de 301-4.
Les signaux de sortie de registre de mode 302-5 et des bascules de commande sont appliqués comme des signaux d'entrée aux circuits logiques du bloc 302-7 qui engendrent les 65 signaux de commande nécessaires pour l'exécution d'un ordre par l'adaptateur de commande relié à la partie en question. Les circuits du bloc 302-7 reçoivent également des signaux de commande provenant du bloc 301-4 et provenant du groupe de
17
616 251
registres 301-46 associé à l'adaptateur de canaux et partant des lignes de l'interface d'adaptateur de commande.
Dans le mode de réalisation considéré, l'interface d'adaptateur de commande comprend les lignes suivantes:
LIGNES D'ADAPTATEUR DE COMMANDE
Désignation Description
DTA Les lignes de transmission de données vers adaptateur sont constituées par 40 lignes qui s'étendent du module 300 jusqu'à l'adaptateur de commande et elles sont utilisées pour transmettre une donnée contenant des ordres et des adresses à l'adaptateur.
ADTA La ligne d'acceptation de donnée vers adapta teur s'étend du module 300 jusqu'à l'adaptateur et, quand elle est excitée, elle indique qu'une donnée est disponible dans les lignes DTA et qu'elle doit être acceptée par l'adaptateur.
ACTA La ligne d'acceptation de commande vers adaptateur relie le module 300 à l'adaptateur et, quand elle est excitée, elle indique qu'un ordre ou une donnée PI est disponible dans les lignes DTA et qu'elle doit être acceptée l'adaptateur.
CHBSY La ligne d'occupation de canal relie le module
300 à l'adaptateur et, dans le mode indirect, elle indique à l'adaptateur que le multiplexeur 300 fonctionne maintenant dans le mode de transfert automatique de données; le canal reste occupé jusqu'à la terminaison de l'opération de transfert automatique de données. Dans un mode direct, cette ligne est excitée quand un ordre de mémorisation (ZAC) est reçu en provenance de l'adaptateur et elle reste excitée jusqu'à ce que soit la donnée lue demandée soit transférée, soit l'état soit retourné à partir du module de mémorisation.
CDR La ligne de préparation de canal de donnée relie le module 300 à l'adaptateur et, quand elle est excitée, elle indique que le module 300 est prêt à recevoir plus de données ou d'ordres provenant de l'adaptateur.
EDT La ligne de fin de transfert de donnée relie le module 300 à l'adaptateur et elle est utilisée pendant des opérations de transfert automatique de donnée dans le mode indirect pour indiquer que le dernier mot de donnée a été transféré (écriture) ou bien que le dernier mot de donnée a été emmagasiné (lecture).
DFA Les lignes de «transmission de données à par tir d'adaptateur» sont constituées par 40 lignes qui s'étendent de l'adaptateur de commande au module 300 utilisé et elles sont utilisées pour transmettre des données contenant des adresses de mémoire, des états, des instructions, au module 300.
PIDFA Les lignes d'«identification de bornes partant d'adaptateur» sont constituées par deux lignes reliant l'adaptateur au module 300 et elles sont utilisées en coopération avec les lignes d'interruption pour indiquer quel sous-boîtier de connexion de l'adaptateur de commande a produit l'interruption.
ADFA La ligne d'«acceptation de données en prove nance d'adaptateur» s'étend de l'adaptateur au module 300 et, quand elle excitée, elle indique qu'une donnée ou un ordre de mémoire est appliqué aux lignes DFA et doit être accepté par le module 300.
AD-BUSY La ligne d'«occupation PI d'adaptateur» s'étend de l'adaptateur au module 300, et, quand 5 elle est excitée, elle indique que l'adaptateur a accepté un ordre PI et qu'il n'est pas capable d'en accepter plus.
ADR La ligne de «préparation de l'adaptateur à la réception de données» s'étend de l'adaptateur io au module 300, et quand elle est excitée, elle indique au canal que l'adaptateur est prêt à recevoir plus de données. IFA Les lignes d'interruption à partir d'adaptateur sont constituées par quatre lignes qui s'éten-15 dent de l'adaptateur de commande au module
300 et qui indiquent le type de demandes d'interruption (c'est-à-dire qui produit des signaux EVA à EV7 qui sont appliqués au bloc 301-34).
20 TFA La ligne de «terminaison d'opération par adaptateur» s'étend de l'adaptateur au module 300 et, quand elle est excitée, elle indique la terminaison d'une opération de transfert de données vers le module 300.
25
Il est à noter que l'interface d'adaptateur de commande comprend d'autres lignes qui sont nécessaires pour remplir d'autres fonctions telles qu'une mise en service initiale, une autorisation d'enclenchement, etc .. .
3(i Les signaux de sortie du commutateur 302-4 sont appliqués à un autre commutateur-sélecteur 302-6 à deux positions qui reçoit également des signaux de données qui lui sont transmis par l'intermédiaire des lignes DFA et par l'adaptateur de commande associé. Pendant une opération de transfert de données, 35 les signaux de sortie provenant de la position DFA du commutateur 302-6 sont chargés dans l'un des quatre registres de données 302-8 à 40 bits en vue d'un transfert à la partie commune 301 par l'intermédiaire d'un commutateur 302-12 à 4 positions ou bien à l'adaptateur de commande par l'intermédiaire d'un 40 commutateur-sélecteur 302-10 à deux positions. En outre, des signaux de sortie du commutateur WD 302-4 sont transmis à l'adaptateur de commande par l'intermédiaire de la position WD du commutateur 302-10. Des registres différents 302-8 sont sélectionnés en vue de recevoir et de fournir les signaux 45 d'adresse emmagasinés dans des registres d'adresse de lecture et d'écriture du bloc 302-14 qui sont modifiés par des signaux engendrés par les circuits du bloc 302-7. Egalement, ces registres WA et RA fournissent des signaux représentant le nombre de mots emmagasinés qui sont utilisés pour déterminer l'état so d'une opération de transfert.
Pendant une opération de transfert de donnée, les circuits de génération et de contrôle de parité du bloc 302-14 assurent le contrôle de la parité des signaux de données qui sont reçus en provenance de l'adaptateur de commande par l'intermédiaire du 55 commutateur 302-6 et ils établissent la parité nécessaire. On voit également que le commutateur 302-4 reçoit des signaux provenant de la première paire de registres de donnés d'enregistrement (W Reg 0, W Reg 1) qui contiennent deux mots d'information en vue de leur transfert à partir du commutateur 60 H 301-42 jusqu'à l'un ou l'autre des registres 302-8 ou bien directement à l'adaptateur de commande par l'intermédiaire du commutateur-sélecteur 302-10.
On va maintenant décrire, en se référant aux figures 1 à 16, le fonctionnement de l'appareil décrit en examinant comment 65 est exécutée une opération de transfert de donnée lue faisant intervenir un dispositif à disque qui est relié à la section de canal désignée par CAO. Il est à noter que, avant de fournir des ordres à un module quelconque, le processeur 200 a assuré la mise en
616 251
18
service initiale des différents modules de la figure 1 (par exemple le module 300). En considérant le module 300, le processeur 200 exécute, dans une partie de la séquence de mise en service initiale, une série d'instructions WREX qui sont extraites du module de mémoire 500 et qui sont introduites dans des registres différents du multiplexeur 300.
La figure 6 montre le format de l'instruction WREX dans laquelle le code d'opération est défini de manière à spécifier une opération d'écriture dans un registre extérieur qui est exécuté par la génération d'un ordre PI. L'emplacement GR1 est codé de manière à spécifier celui des registres la mémoire interprète
203-10 qui contient l'information istres de la mémoire interprète 203-10 qui contient l'information à introduire dans un registre externe défini par l'emplacement d'adresse.
Le code d'opération de l'instruction est appliqué par le commutateur 202-4 à la mémoire 201-2 de façon que celle-ci établisse une référence avec un des emplacements correspondants. Le contenu de l'emplacement est lu dans le registre 201-4 et il comprend deux adresses spécifiant les adresses de départ, dans la mémoire de commande 201-10, des séquences de microinstruction nécessaires pour le traitement des instructions.
Pendant une première phase de l'exécution d'instruction le commutateur B 204-1 applique des signaux correspondant à l'emplacement d'adresse de l'instruction WREX aux entrées d'opérandes B du circuit d'additionneur/de décalage 204-9 par l'intermédiaire de la position IL du commutateur JB 204-1 tandis que le contenu de la mémoire interprète 203-16 (uniquement des ZEROS) est appliqué par l'intermédiaire du commutateur A 203-20 aux entrées d'opérandes A. La somme des deux opérandes qui correspond à l'emplacement d'adresse du mot d'instruction de la figure 7a est transférée dans un registre de travail R2. Ensuite, la position de registre général qui est spécifiée par l'emplacement GR1 de l'instruction WREX est adresse par l'intermédiaire des entrée d'adresses 203-14 et le contenu du mot de donné est lu dans la mémoire 203-16.
Pendant la phase d'exécution de l'instruction WREX, le mot d'instruction PI qui a été mis au format dans le registre R2 est transmis au bus WRP et est chargé dans le registre de sortie de donnée 204-14 par l'intermédiaire du commutateur d'adresse
204-6 placé dans la position PI et du commutateur crossbar 204-8. Les signaux comprennent un niveau ou un type d'information de direction (c'est-à-dire le numéro de canal cf. figure 7a) à transférer comme une partie de l'ordre utilisé pour sélectionner une portion du multiplexeur 300, le numéro du processeur qui identifie la borne à laquelle le processeur est relié ainsi que l'identité du processeur. L'unité SIU 100 fournit le numéro d'identification du processeur au processeur 200 par l'intermédiaire de deux lignes, non représentées. Dans le cas du processeur 200, l'information est un zéro et en conséquence le bit 3 du mot d'ordre PI est commuté à l'état binaire ZERO. En outre, sous la commande d'un microprogramme, le processeur 200 transfère des signaux provenant du registre 201-15 et du registre PSR 204-20 par l'intermédiaire de la position PI du commutateur de direction 204-10 dans les positions de bits 0 à 8 du registre de direction 204-16. Ces signaux ont le format indiqué sur la figure 14 et ils établissent un autre niveau ou type d'information de direction qui est utilisable par l'unité SIU 100 pour transférer la commande PI vers le multiplexeur 300 ou vers la borne (à savoir la borne A) à laquelle le multiplexeur 300 est relié.
Après la charge des deux registres 204-14 et 204-16, le processeur 200 fait passer la ligne AOPR à l'état binaire UN de façon à amorcer la séquence de signaux servant à transférer l'ordre PI dans le multiplexer 300. Egalement, le processeur 200 augmente le contenu du compteur d'instruction (IC) et emmagasine le résultat dans le registre de travail R3. Ensuite, le processeur 200 retarde l'exécution de la microinstruction suivante jusqu'à ce qu'elle reçoive un signal par l'intermédiaire de la ligne ARA en provenance de l'unité SIU 100, ce signal indiquant l'acceptation de la demande.
La séquence de signaux pour le transfert d'ordre a été 5 représentée sur la figure 10a. L'unité SIU 100 considère l'ordre PI comme nécessitant deux cycles SIU, à savoir un cycle d'adresse/ordre suivi par un cycle de données, les deux cycles étant désignés respectivement par A et D sur la figure 10a. En supposant que le multiplexeur 300 est prêt à accepter l'ordre PI, 1()la ligne PIR se trouve à l'état binaire UN. Un réseau de priorité SIU 102-4 de la figure 3b intervient de manière à appliquer le mot d'ordre par l'intermédiaire du commutateur-sélecteur 102-2 aux lignes PDFS du multiplexeur 300 pendant le premier cycle de fonctionnement. Le processeur 200 attend en retenant l'in-! 5 formation dans le registre de sortie de données 204-14 jusqu'à ce que l'unité SIU 100 ait fait passer la ligne ARA à l'état binaire ZERO. Simultanément, l'unité SIU 100 fait passer la ligne APC à l'état binaire UN en signalant au multiplexeur 300 qu'il peut recevoir l'ordre PI.
2o Lors d'une détection du changement d'état dans la ligne ARA, le processeur 200 termine, sous le contrôle de la microinstruction, le traitement de l'instruction WREX en transférant le mot de donnée ayant la format indiqué sur la figure 7a de la mémoir-tampon 203-16 jusque dans le registre de sortie de 2? donnée 204-14 par l'intermédiaire du circuit d'addition-décalage 204-2 et du commutateur 204-8 placé dans la position correspondante. Comme le montre la figure 10a, ce mot est appliqué à l'unité SIU 100 pendant la premiere impulsion d'horloge qui se produit après que le processeur 200 a détecté le m changement d'état de la ligne ARA. Le mot de donnée reste dans les lignes DTS jusqu'à ce que se produise l'impulsion d'horloge suivante, et à ce moment l'opération est terminée.
En référence à la figure 4a, on voit que le mot d'ordre et le mot de donnée sont chargés respectivement dans le registre PC 35 301-2 et le registre PD 301-5 respectivement par l'intermédiaire des lignes PDFS. Les circuits du bloc 301-4 décodent les signaux d'ordre et engendrent les signaux de commande qui produisent un transfert des signaux de donnée se trouvant dans le registre PD 301-5 jusque dans un des registres 301-10 et des 40 registres de niveau de canal 301-12 spécifiés par l'emplacement d'adresse du mot d'ordre PI par l'intermédiaire du commutateur 301-6 placé dans la position PD, et des circuits excitateurs 301-8 et 301-15.
A la fin de l'exécution des quatre instructions WREX, tous 45 les registres 301-10 et 301-12 ont reçu les signaux appropriés identifiant le groupe de blocs de commande d'interruption qui doivent être utilisés par chaque canal ainsi que les niveaux de priorité à accorder à chacune des huit conditions d'interruption possibles qui peuvent se produire dans un canal. D'une façon 5( similaire, les registres de masquage 301-14 sont préconditionnés par des ordres PI engendrés en réponse à une autre série d'instructions WREX. Lorsqu'ils sont excités, les registres permettent le masquage par leur contenu de certaines conditions d'interruption. Cela évite au processeur 200 de déterminer par 55 une partie logicielle les interruptions auxquelles ils doit réagir en le signalant au multiplexeur 300.
En ce qui concerne le multiplexeur 300, les groupes de blocs de commande d'interruption sont en général définis par le type 60 de dispositifs. Plus particulièrement, pendant la mise en service initiale du multiplexeur 300, les canaux reliés aux dispositifs à disque sont affectés à une série de routines ICB tandis que les canaux reliés à des dispositifs à bandes sont affectés à une série différente de routines ICB. Cependant, il est à noter que les 65 deux types de dispositifs peuvent également être affectés aux mêmes séries de routines ICB. Puisque le numéro ICB se compose du numéro ICBD à 5 bits et du numéro de type à 3 bits, chaque série de routines ICB contient 8 routines, une pour
19
616 251
traiter chaque type d'interruption. En conséquence, les 32 séries de routines ICB utilisées pour le traitement de 256 vecteurs d'interruption apparaissent dans le module de mémoire locale 500 comme indiqué sur la figure 15. Cet agencement consistant en une spécification par la source d'interruption de la routine de traitement du type d'interruption oblige le processeur 200 à amorcer une routine qui est spécialement conçue ou adaptée pour répondre à un tel événement. Cela élimine les surcharges normales qui résultent du traitement d'interruption par l'intermédiaire de programmes d'investigation. En outre, cet agencement permet de modifier le numéro ICB lorsqu'il est souhaitable d'exécuter des opérations particulières telles que des opéra saires pour faire fonctionner un dispositif dans un mode différent (par exemple une émulation).
En ce qui concerne l'affectation de niveaus de priorité aux différents types d'interruptions d'adaptateurs de canaux, cela est déterminé par l'urgence en temps réel de l'interruption comme mentionné précédemment. Plus précisément, une opération complète de recherche utilise le dispositif à disque pendant plusieurs millisecondes pour non exécution tandis qu'un transfert de donnée prend moins d'une milliseconde. En conséquence, il est important, pour obtenir un fonctionnement efficace du système, que le processeur 200 traite une interruption signalant la fin d'un transfert de donnée (c'est-à-dire une interruption pour terminaison de transfert de donnée) immédiatement de façon à déterminer si d'autres dispositifs peuvent amorcer un transfert de donnée afin que le canal soit occupé le maximum de temps possible. En correspondance, on affecte à une interruption pour terminaison de transfert de donnée une priorité plus élevée qu'à une opération complète de recherche qui peut être considérée comme un événement différé. Ainsi, l'opération complète de recherche qui est signalée par l'adaptateur de commande signifie que le dispositif à disque a positionné ses têtes de lecture/écriture sur le cylindre désiré. En conséquence, à chaque fois que cela est approprié, l'adaptateur de commande détermine si le dispositif est bien celui qui a émis l'ordre de transfert de donnée suivant.
En ce qui concerne l'interruption concernant une détection de position angulaire, l'adaptateur de commande engendre l'in-terruptio signaler au processeur 200 qu'un dispositif particulier est placé à proximité étroite d'un secteur désiré. Cela établit une priorité pour le processeur 200 en ce qui concerne la sélection du dispositif suivant servant à amorcer une opération de transfert de donnée. Quand le processeur 200 reçoit ce type d'interruption, il dispose normalement moins d'une milliseconde pour amorcer l'opération suivante. Puisque le minutage est très critique dans ce cas, on affecte à cette interruption une priorité plus élevée que celle mentionnée ci-dessus. En conséquence, les niveaux de priorité pour un dispositif à disque, comme mentionné ci-dessus correspondent â l'ordre décroissant suivant: niveau le plus élevé pour les défauts détectés dans la partie matérielle EV4, niveau immédiatement inférieur pour une interruption de détection de position angulaire EV5, niveau encore plus bas pour une terminaison de transfert de donnée EV6 et niveau inférieur pour une opération complète de recherche EV7. Puisque des défauts détectés dans la partie matérielle empêchent l'exécution d'autres opérations, cet événement est affecté de la priorité la plus élevée.
Du fait qu'il est particulièrement avantageux de pouvoir relier différents types d'adaptateurs de commande et dispositifs aux différents canaux de multiplexeurs, la structure agencée selon l'invention facilite de telles modifications. En outre, cette structure permet de modifier les niveaux de priorité qui sont affectés aux différents types d'événements quand un événement correspondant à un adaptateur de commande nécessite une priorité plus élevée que le même événement d'un autre adaptateur de commande. En conséquence, en fonction de l'emplacement de l'adaptateur de commande, il peut y avoir des conditions temporelles différentes pour les mêmes événements. Des différences entre les vitesses et les formats de pistes peuvent également nécessiter des niveaux différents de priorité EV5 et EV6. On peut également rencontrer d'autres différences comme 5 cela est bien connu des spécialistes.
Après l'exécution des instructions WREX, le multiplexeur 300 est suffisamment préconditionné pour traiter les interruptions reçues en provences de l'un quelconque des quatre adaptateurs de commande 303-306. On a supposé que le processeur io récepteur 700 peut exécuter les instructions qui font en sorte que le processeur 200 conditionne le canal CAO pour exécuter une opération de transfert de donnée lue faisant intervenir un dispositif â disque particulier qui fait partie du groupe de dispositifs reliés à l'adaptateur de commande 303.
15 Comme mentionné précédemment, chaque section de canal contient un registre de mode 302-5. Les quatre premières positions de bits du registre 302-5 sont codées de façon à définir une opération de canal et les quatre positions de bits suivantes sont codées de façon à définir l'opération de l'adaptateur de 2o commande. Dans l'exemple considéré, le processeur 200 exécute une autre instruction WREX qui engendre un ordre PI destiné à être chargé dans le registre de mode 302-5. Les mots ordre et de donnée sont chargés respectivement dans le registre PC 301-2 et le registre PD 301-5.
25 Le mot d'ordre emmagasiné dans le registre PC 301-2 contient une adresse codée de manière à désigner et spécifier le registre de mode de canal 302-5 comme étant le registre destiné à recevoir les signaux de mot de donnée. Les circuits du bloc 301-4 sont conditionnés de manière à engendrer des signaux en io vue du transfert des signaux de donnée dans le registre PD 301-5 par l'intermédiaire du commutateur 301-6 placé dans la position PD, des circuits excitateurs 301-8, du commutateur DTA et du commutateur WD 302-4 de la figur 4b. Les signaux représentant le numéro de canal et emmagasinés dans le registre i5 PC 301-2 sont codés (rien que des zéros) de façon à sélectionner la position DTA du commutateur WD du canal approprié (c'est-à-dire le commutateur 302-4) qui permet le chargement du mot de donnée dans le registre de mode de canal 302-5.
Le première position de bit du registre de mode 302-5 est 4o codée de façon à spécifier si le canal doit fonctionner dans un mode direct ou indirect de transfert de donnée, la seconde position de bit définit si le canal doit exécuter une opération de lecture ou d'écriture, la troisième position de bit définit si l'opération est commandée ou non par un mot de commande de 45 donnée (DCW( tandis que la quatrième position de bit définit si l'opération à exécuter correspond à un mode de contrôle. On a supposé que les bits mentionnés sont codés de façon à spécifier une opération de lecture indirecte, une opération de commande DCW et une opération normale.
so Après le chargement du registre de mode de canal 302-5, le processeur 200 exécute une autre instruction WREX qui engendre un ordre PI servant à enclencher l'adaptateur de commande 303. Le mot d'ordre est codé de façon à spécifier un transfert de signaux correspondant au mot d'ordre à l'adaptateur de com-55 mande 303 (c'est-à-dire bit 28 = 1). Plus particulièrement, le mot d'ordre emmagasiné dans le registre PC 301-2 conditionne les circuits du bloc 301-4 de façon à engendrer des signaux qui assurent le transfert des signaux d'ordre par l'intermédiaire de la position PC du commutateur 301-6 puis de commutateur CAO 60 DTA jusqu'aux circuits excitateurs 301-2, et, par l'intermédiaire de la position DTA du commutateur WD 302-4, jusqu'au commutateur D 302-10. Les signaux d'ordre sont acheminés jusqu'à l'adaptateur de commande 303 par l'intermédiaire de commutateur D 302-10 placé dans la position WD et des lignes 65 DTA de l'interface CA 300-1.
En supposant que l'ordre PI spécifie une opération de charge de registre, le mot d'ordre emmagasiné dans le registre PC 301-2 conditionne également les circuits du bloc 301-4 de
616 251
20
façon à engendrer les signaux qui transfèrent le mot de donnée emmagasiné dans le registre PD 301-5 jusque dans l'adaptateur de commande 303 par l'intermédiaire des lignes DTA. Le mot de donnée est codé de manière à contenir une information de mode à charger dans un registre de mode incorporé à l'adaptateur et qui est similaire au registre de mode de canal, en vue de conditionner l'adaptateur de commande 303 pour l'opération à exécuter.
A la fin du conditionnement de l'adaptateur de commande 303 et du canal 302, le processeur 200 est prêt à signaler le début de l'opération de transfert de donnée. Pour exécuter un transfert de donnée, le canal a besoin d'une autre information lorsqu'il fonctionne dans le mode indirect. Ainsi, dans le mode indirect, le multiplexeur 300 commande le transfert de donnée lorsqu'il est relié aux adaptateurs de commande. En conséquence, des instructions DCW doivent être fournies au canal et elles contiennent une information se rapportant à l'emplacement des données en mémoire, à la quantité de données à transférer et au mode de transfert. Au contraire, dans le mode direct, l'adaptateur de commande transfère des adresses de mémoire, des ordres et des informations de direction à un canal qui est lui-même relié par le multiplexeur ^00 au module de mémoire 500 par l'intermédiaire de l'unite oiU 100.
La liste des instructions DCW dont l'intégrité est vérifiée par le processeur 200 comprend un programme de canal emmagasiné dans le module de mémoire local 500. L'adresse de la liste est incorporée à un mot de pointage de liste (LPW) du programme de canal.
Pour amorcer le fonctionnement du canal, le processeur 200 exécute une autre instruction WREX qui établit un ordre PI spécifiant le chargement du registre LPW du canal (c'est-à-dire CAO). Le mot d'ordre ultérieurement introduit dans le registre PC 301-2 conditionne les circuits du bloc 301-4 de façon à engendrer les signaux qui transfèrent le mot de donnée contenu dans le registre PD 301-5 par l'intermédiaire des positions des commutateurs 301-6 et 301-42 et de la position HSW du commutateur CW 301-44 dans le registre LPW, et dans le canal sélectionné en réponse à des signaux emmagasinés dans le registre PC 301-2.
Le registre LPW contient maintenant une adresse qui est pointée sur la liste d'instructions DCW. Le format de registre LPW a été indiqué sur la figure 8a. Après le chargement du registre LPW de canal, le processeur 200 exécute une autre instruction WREX qui engendre un ordre PI spécifiant une opération de commande de chargement qui indique que le mot de donné emmagasiné dans le registre PD 301-5 doit être ignoré pour le moment. Le mot d'ordre PI est codé comme indiqué sur la figure 7b.
Le mot d'ordre emmagasiné dans le registre PC 301-2 conditionne les circuits du bloc 301-4 de manière à engendrer des signaux qui assurent le transfert de signaux depuis le registre 301-2 par l'intermédiaire de la position PC du commutateur PD 301-6 et de la position DTA du commutateur WD 302-4 jusque dans un groupe de bascules de commande de canaux 302-3. Une des bascules est une bascule automatique qui est mise en UN en concordance avec le bit 35 du mot d'ordre PI (cf figure 7b). Lorsqu'elle est excitée, cette bascule signale au canal qu'il peut commencer à transférer des données.
La bascule automatique assure la transmission d'un premier signal de liste à l'une des quatre entrées des circuits de commande et de sélection de priorité 301-48 en même temps qu'un signal de demande de service qui est appliqué à l'une des deux lignes de demande partant du canal. Les circuits 301-48 sélectionnent le canal présentant la priorité la plus élevée parmi ceux qui demandent un service et il est fait en sorte que les quatre entrées du canal définissent celui des registres qui doit être sélectionné. Les circuits de priorité 301-48 codent le signal de demande de service CAO sous la forme d'un code à 2 bits (CA0-
00) qui est appliqué aux circuits 301-4. En supposant qu'aucune autre opération qui empêcherait l'attribution de la priorité n'est en cours (c'est-à-dire lorsqu'aucune donnée n'est en train d'être transférée à partir du module de mémoire 500), les circuits 301-4 appliquent des signaux d'autorisation de fonctionnement aux circuits 301-48. Les circuits 301-48 interviennent alors pour appliquer un signal binaire UN à la ligne ANS de service du canal CAO. Ce signal conditionne le canal CAO pour le transfert de données.
Le signal de liste qui est transmis à partir du signal CAO par l'intermédiaire des circuits 301-48 fait en sort que les circuits 301-4 sélectionnent la position LPW pour le commutateur C 301-50. Des signaux correspondant au code de canal à 2 bits et au signal de liste sont chargés dans les trois premières positions de bits du registre 301-65. Les deux positions de bits d'ordre supérieur du registre 301-65 identifient le canal demandeur de donnée. Comme le montre la figure 4a, les contenus du registre 301-65 sont appliqués aux lignes MITS. Des signaux partant des lignes de sélection de canaux reliés à 301-48 assurent la sélection du registre LPW pour le canal CAO.
L'adresse du registre LPW est chargée dans le registre ZAC du groupe 301-64 sélectionné en réponse à des signaux provenant des circuits 301-4 par l'intermédiaire du commutateur DT 301-20 placé dans la position CSW sélectionnée en réponse à des signaux appliqués par les circuits 301-48. En outre, les circuits 301-48 appliquent des signaux par l'intermédiaire du commutateur ZAC 301-61 placé dans la position correspondant au commutateur CMD, ces signaux étant chargés dans la première position de multiplet du registre ZAC. Il en résulte la mise au format d'un mot d'ordre ZAC tel que celui indiqué sur la figure 7c. Les signaux provenant des quatre entrées de canaux (par exemple dans le mode direct ou indirect, pour un ordre de lecture ou d'écriture, pour un système à simple ou double précision) définissent l'état de la partie de commande du mot d'ordre ZAC. Puisque le multiplexeur 300 engendre seulement des ordres ZAC, la position de bit 0 du registre ZAC se trouve dans la condition binaire ZERO. Puisqu'elle correspond à une fourniture de liste, les bits de la partie de commande sont codés de façon à définir une commande de lecture en double précision.
Pendant le chargement du registre ZAC, l'adresse LPW est appliquée aux deux réseaux additionneurs 301-52 et 301-54 où elle est augmentée de deux unités (2 mots ou 8 multiplets), une nouvelle parité est engendrée et le résultat est renvoyé au registre LPW de canal par l'intermédiaire de la position de mise à jour du commutateur CW 301-44. En outre, l'information de direction contenue dans le registre LPW est transférée dans le registre de direction 301-60 par l'intermédiaire du commutateur de direction 301-59 se trouvant dans la position CSW. Le chargement du registre ZAC produit une commutation de la bascule AOPR 301-69 dans l'état binaire UN.
Le multiplexeur 300 attend jusqu'à ce que le réseau SIU 102-20 de la figure 3b reçoive la demande signalée par la ligne AOPR par l'intermédiaire de la ligne APA qui a été commutée dans l'état binaire UN. La séquence de signaux di dialogue entre l'unité SIU 100 et la mémoire locale 500 a été mise en évidence sur la figure 1 la. En supposant que l'unité SIU 100 a accepté la demande provenant du multiplexeur 300, elle fait alors passer la ligne AZC dans l'état binaire UN de façon à commander le module 500 pour qu'il amorce un cycle de lecture/écriture de donnée. Comme indiqué sur la figure lia, le module demandeur produit, en même temps que l'excitation de la ligne AZC, des signaux ID, des signaux d'ordre ZAC et des signaux de double précision qui sont transmis à partir du multiplexeur 300 aux lignes RITM, aux lignes DTM et aux lignes SLTM de l'interface 603 en réponse à des signaux provenant du réseau 102-20.
Comme mentionné précédemment, le module de mémoire locale 500 emmagasine les signaux ID du module demandeur qu'il renvoie à l'unité SIU 100 sous la forme d'une information
5
10
15
20
25
30
35
40
45
50
55
60
65
21
616 251
de direction qui est combinée avec la donnée lue. En se référant â la figure 1 la, on voit que le module de mémoire locale 500 réagit en faisant passer la ligne ZIR â l'état binaire ZERO. Cela permet à l'unité SIU 100 de couper la voie de demande. Le module de mémoire locale 500 amorce le transfert d'une donnée vers l'unité SIU 100 en faisant passer la ligne RDTR â l'état binaire UN et en outre en appliquant un signal ID provenant du multiplexeur 300 et un signal de double précision respectivement aux lignes RIFM et DPFM de l'interface 603.
L'unité SIU 100 répond à la commutation de la ligne RDTR en faisant passer la ligne RDAA à l'état binaire UN comme indiqué sur la figure lia. Il en résulte que le module de mémoire locale 500 est averti que le trajet aboutissant au module demandeur 300 est ouvert et qu'il peut assurer le transfert des données. Le signal appliqué à la ligne RDAA fait également en sorte que le module 500 applique un second mot de donnée â l'interface 603 lors de l'arrivée du flanc arrière de l'impulsion d'horloge qui suit la réception des signaux transmis par la ligne RDAA, comme indiqué sur la figure 1 la. A la fin de l'opération, aussitôt que le module 500 est prêt à recevoir un autre ordre, il fait passer la ligne ZIR à l'état binaire UN.
Au moment de la commutation de la ligne RDAA. l'unité SIU 100 notifie au module multiplexeur demandeur 300 qu'un mot de donnée est en train d'être appliqué à ses lignes DFS par commutation de la ligne ARDA à l'état binaire UN. L'unité SIU 100 applique également au module demandeur des signaux qui sont transmis à la ligne MIFS en vue de leur emmagasinage dans le registre 301-68. Les contenus du registre 301-68 qui sont transmis aux circuits 301-48 sont décodés et ils assurent la sélection des registres de canaux appropriés en addition à l'autorisation de fonctionnement du canal CAO par l'intermédiaire d'une ligne de sélection CAO. Le premier mot de donnée est chargé dans le registre H 301-40 par l'intermédiaire des circuits excitateurs 301-3. Ensuite, les contenus sont chargés dans le registre DT du canal CAO par l'intermédiaire du commutateur 301-42 placé dans la position correspondant au registre H et du commutateur CW 301-44 placé dans la position correspondant également au registre H. Le second mot de donnée qui est appliqué à une impulsion d'horloge à la suite du premier mot est chargé dans le registre 301-42 puis il est transféré dans le registre DA 301-40 du canal CAO.
Comme mentionné précédemment, les signaux provenant des circuits 301-48 définissent la rangée de registres de danaux à sélectionner (c'est-à-dire CAO). Egalement, quand le multiplexeur 300 répond à la demande de liste établie par le canal CAO, les circuits 301-48 engendrent un signal qui oblige les circuits de canaux 302-7 de la figure 4b à remettre à ZERO la bascule de liste. A ce moment, les circuits 302-7 assurent la commutation à l'état binaire UN d'une bascule d'occupation de canal, non représentée, qui peut être considérée comme une autre bascule de commande. Celle-ci applique à son tour un signal binaire UN à la ligne d'occupation de canal du canal CAI de l'adaptateur de commande 303 en lui signalant que le canal est prêt pour le transfert.
Les formats des deux mots de donnée de l'instruction DCW qui est chargée dans les registres DT et DA sont conformes à ce qui est indiqué sur la figure 8b. Le registre DT comprend une position de bit qui indique si le premier transfert de donnée vers le module de mémoire 500 est un transfert de simple précision ou de double précision. On va supposer que cette position de bit est un ZERO binaire indiquant un transfert en double précision.
L'adaptateur de commande 303 qui, comme indiqué ci-dessus, peut être considéré comme étant d'une conception classique, effectue une opération de détection pour localiser sur le dispositif à disque précédemment sélectionné par une commande de recherche précédemment émise, la donnée demandée qui doit être transférée dans la mémoire locale 500. Lors de la localisation de la donnée, l'adaptateur de commande 303 agit de façon à commencer une accumulation de multiplets lus dans le dispositif à disque et à les transférer. Lorsque l'adaptateur de commande 303 a assemblé un mot de donnée complet (c'est-à-s dire 4 multiplets), il fait passer la ligne ADFA à l'état binaire UN en signalant au multiplexeur 300 que le premier mot de donnée est appliqué aux lignes DFA et qu'il doit être accepté. La séquence de signaux transmis entre le canal et l'adaptateur de commande 303 a été indiquée sur la figure 12.
io En référence à la figure 4b, on voit que le signal partant de la ligne ADFA conditionne les circuits 302-7 pour produire des signaux qui sélectionnent la position DFA du commutateur D 302-6 et qui assurent le chargement du premier mot dans le registre D0 du groupe 302-8. Puisque les deux registres d'adres-i5 ses delecture et d'écriture du bloc 302-14 sont remis initialement à ZERO, le registre D0 est sélectionné. Puisque cela correspond à une opération en double précision, le canal CAO attend jusqu'à ce qu'il ait reçu le second mot provenant de l'adaptateur 303. De même que ci-dessus, le canal CAO assure 20 un chargement du second mot dans le registre suivant (c'est-à-dire le registre D (1)) du groupe 302-8. Il est à noter que l'adresse emmagasinée dans le registre d'écriture est augmentée d'une unité après chaque transfert de mot. Lors de la détection de la présence de deux mots dans le groupe de registres 302-8, 25 des circuits du bloc 302-7 assurent la génération d'un signal de demande de service qui est appliqué aux circuits 301-48 de la figure 4a. Les circuits 302-7 obligent également les lignes d'entrée de canal à signaler une opération d'enregistrement en double précision. A ce moment, la ligne de liste est à l'état so binaire ZERO tandis que la ligne de mode se trouve encore dans le mode indirect.
Lors de la réception de la demande de service, les circuits 301-48 établissent dans les lignes de sélection de service un code qui est appliqué aux circuits 301-4. Les circuits 301-4 condition-35 nent les circuits 301-48 de manière à engendrer des signaux de service ANS et un signal de sélection transmis au canal CAO. Egalement, les circuits 301-4 font passer le commutateur C 301-50 dans la position DA de manière qu'il constitue une source de signaux servant à charger les trois dernières positions du registre 40 ZAC du groupe 301-64 et du registre de direction 301-60.La charge s'effectue par l'intermédiaire du commutateur ZAC 301-61 placé dans la position correspondante et par l'intermédiaire du commutateur DT 301-20 du commutateur de direction 301-59. Egalement, les deux premières positions de bits du registre 45 301-65 sont chargées avec des ZEROS identifiant le canal CAO comme étant le demandeur. La position de bit 3 est un ZERO binaire indiquant qu'il n'existe aucune utilisation de liste.
Ace moment, le ligne AOPR est commutée à l'état binaire UN. Pendant le même intervalle de temps, c'est-à-dire pendant so la seconde impulsion d'horloge succédant à une sélection de canal, l'adresse (DA) est augmentée de deux unités par le réseau additionneur 301-52 et elle est renvoyée au registre DA par l'intermédiaire de la position de mise à jour du commutateur CW 301-44. Ensuite, la position du commutateur C 301-50 55 correspondant au registre DT est sélectionnée et les contenus de données existance sont appliqués au réseau additionneur 301-52, après réduction de 2 unités, et elles sont ensuite rencoyées au registre DT par l'intermédiaire du commutateur 301-44.
Pendant l'impulsion d'horloge suivante, le commutateur DT fio 301-20 est conditionné de manière à sélectionner la position CA0-DF qui permet le transfert du contenu du registre de données (0) dans le registre de données (1) du groupe 301-64. Après la sélection d'un canal, les circuits 301-7 correspondant au canal CAO augmentent le contenu du registre d'adresse lue « d'une unité ce qui permet le transfert des contenus du registre de données 2 dans le registre de données (2) du groupe 301-64.
Une séquence de signaux similaire à celle décrite ci-dessus est amorcée en vue d'un transfert par l'unité SIU 100 de l'ordre
616 251
22
ZVC présentant le format de la figure 7c (c'est-à-dire que la ligne AOPR est commutée à l'état binaire UN lorsque le registre ZAC est chargé). La séquence de signaux transmis entre l'unité SIU 100 et le module de mémoire 500 pour l'opération d'enregistrement en double précision a été indiquée sur la figure 5
I lb. En se référant à cette figure, on voit que la séquence d'enregistrement est amorcée de la même manière que la séquence de lecture (c'est-à-dire que l'unité SIU 100 fait passer la ligne AZC à l'état binaire UN). Quand le multiplexeur 300 reçoit le signal indiquant que SIU 100 a accepté la demande, les m circuits 301-4 aggissent de façon à transmettre les contenus du registre de données du groupe 301-64 aux lignes DTS. Le module de mémoire 500 réagit en faisant passer la ligne ZIR à l'état binaire ZERO.
Le premier mot de donnée appliqué par le multiplexeur 300 ]5 aux lignes DTS est introduit dans les lignes DTM pendant l'intervalle d'horloge correspondant à la commutation de la ligne AZC à l'état binaire ZERO. Pendant l'intervalle d'horloge suivant, les contenus du registre de données 2 du groupe 301-64 sont appliqués aux lignes DTS. Ce second mot suit le premier 2» mot comme indiqué sur la figure 11b et il termine le transfert de deux mots dans le module de mémoire 500.
La séquence décrite ci-dessus et représentée en partie sur les figures 1 lb et 12 poursuit jusqu'à ce que les contenus du registre de canal DT diminuent jusqu'à zéro. En supposant que les 25 données contenues dans le registre ont été lues et réduites de 2 unités de manière à former alors un compte égal à zéro, le réseau additionneur intervient alors pour faire passer le signal de zéro du compteur à l'état binaire UN. A ce moment, les circuits 301-4 sont conditionnés de manière à examiner l'état du 30 bit 4 du mot DT afin de définir si le transfert est terminé (c'est-à-dire s'il s'est produit un débranchement ou bien si l'opération est en cours). Lorsque le bit 4 a l'état binaire ZERO, le canal CAO est conditionné de manière à extraire une autre instruction DCW du module de mémoire 500 en utilisant les contenus du 35 registre LPW de canal. En supposant que le bit 4 a l'état binaire UN, les circuits 301-4 engendrent un signal appliqué au canal CAO et indiquant que la donnée correspondante a été extraite.
Lorsque le signal CTZ = 0 est reçu en provenance des circuits 301-4, les circuits de canaux 302-7 agissent de façon à 40 faire passer la ligne EDT du canal CAI à l'état binaire UN en signalant que l'opération de transfert est terminée (cf figure 12).
II est à noter que l'adaptateur de commande 303 termine l'ordre (par exemple l'adaptateur termine l'opération de lecture jusqu'à la fin d'un secteur si un secteur complet n'a pas été lu, il effectue 45 les opérations de vérification nécessaire, la détection d'erreurs, etc...). En supposant qu'il n'existe aucune erreur, l'adaptateur de commande 303, à la fin de toutes les opérations, fait passer une des quatre lignes d'interruption du module CAI à l'état binaire UN. L'interruption correspond à une interruption pour 50 terminaison qui est normalement une interruption du type EV6.
Le signal d'interruption est appliqué à une entrée du bloc 301-34 de la figure 4a. Ce signal d'interruption oblige les circuits du bloc 301-34 à engendrer une demande et à sélectionner les signaux de niveau de priorité emmagasinés dans le 55 registre de niveau CAO de l'interruption de priorité la plus élevée (EV0-EV7) par l'intermédiaire de la sixième position du commutateur de multiplexeur 301-28 de manière que les signaux soient appliqués au réseau 301-24 en même temps qu'un signal de demande. Le réseau 301-24 compare le code de 6o niveau à trois bits avec des signaux de niveau de priorité qui sont engendrés par des interruptions possibles provenant d'autres canaux CA1-CA3. Le signal d'interruption oblige également les circuits 301-34 à engendrer un numéro de type à trois bits (c'est-à-dire un code de 110) qui est appliqué à une entrée (.5 correspondant à la position CAO du commutateur 301-35 en même temps que les signaux de niveau de priorité provenant du commutateur 301-28.
Il est à noter que, lorsque l'adaptateur de commande 303 établit une interruption d'un autre type (par exemple EV4, EV5 ou EV6), les circuits 301-34 fonctionnent de façon à sélectionner les signaux de niveau de priorité pour une autre interruption mais non les signaux de niveau pour l'interruption de tape EV6. On va supposer qu'il n'existe pas d'autres interruptions de priorité supérieure.
En supposant que le signal d'interruption de canal CAO présente la priorité la plus élevée, cela oblige le réseau 301-24 à engendrer un code de deux bits (c'est-à-dire un code de 00) qui assure un transfert des contenus du registre ICB du canal CAO qui contient le numéro ICB et le numéro de processeur ainsi que les signaux de type de niveau et de type d'interruption dans le registre IDA 301-22. Le code de deux bits qui a été établi par le réseau 301-24 et qui représente le numéro de canal est introduit dans les positions correspondant aux deux bits d'ordre supérieur du registre IMID 301-23. Puisque l'adaptateur de commande 303 est relié aux dispositifs à disques, il m'existe pas de sous-canal. En conséquence, les positions de bits d'ordre inférieur du registre IMID sont chargées en ZEROS. Egalement, le signal de demande fait passer la bascule IR à l'état binaire UN en signalant l'interruption à l'unité SIU 100.
En se référant à la figure 3a, on voit que le signal IR est appliqué au réseau de priorité d'interruption 101-2. Le réseau 101-2 fonctionne de manière à décorder les signaux représentant le numéro de processeur et la demande de niveau d'interruption qui sont appliqués aux lignes IDA. A ce moment, le réseau 101-2 vérifie la parité de la donnée d'interruption et, en supposant qu'il ne s'est produit aucune erreur, les signaux de niveau sont appliqués aux circuits qui les comparent avec le niveau du processus en train d'être exécuté par le processeur 200.
En supposant que les signaux de niveau provenant du multiplexeur 300 sont les plus élevés, il en résulte que le réseau 101-2 fait passer la ligne HLIP à l'état binaire UN en signalant au processeur 200 l'existence d'une interruption de niveau supérieur. Egalement, le réseau 101-2 produit à une de ses n bornes de sortie un signal qui identifie le multiplexeur 300 comme étant la source de l'interruption. Ce signal, lorsqu'il est appliqué à un circuit sélecteur de donnée 101-8, assure la génération d'un code de quatre bits (c'est-à-dire 1101) qui identifie le multiplexeur 300 ou la borne A à laquelle il est relié comme étant la source d'interruption. Ce signal agit également sur les commutateurs-sélecteurs de données 101-4 et 101-14 de manière qu'ils sélectionnent comme signaux de sortie les signaux de niveau et les signaux de direction qui sont appliqués aux lignes IDA 0-3 et aux lignes IMID par le multiplexeur 300.
Comme mentionné précédemment, le processeur 200 exécute des interruptions à la fin des instructions du programme. Le signal appliqué à la ligne HLIP commande des circuits logiques incorporés au commutateur d'adresse de mémoire de commande 201-14 de manière à sélectionner la position d'exception/interruption quand les bits de commande contenus dans l'emplacement CSA de la microinstruction qui est lue dans le registre 201-15 assurent la sélection de la position de séquence standard du commutateur CSA 201-14. Les signaux appliqués aux bornes d'entrée de la position d'exception/interruption produisent l'application d'une adresse d'une séquence d'interruption à la mémoire de commande 201-10 à la place de la séquence standard d'instruction suivante.
Sous le contrôle de la séquence d'interruption, le processeur 200 applique des signaux correspondant aux contenus du registre PSR 204-20, par l'intermédiaire de la position PSR du commutateur 204-24 et de la position PSR/PCR du commutateur de barre X 204-8 dans le registre de travail RI du groupe 204-12. Les contenus sont transférés jusqu'à l'emplacement GR0 de la mémoire interprète par l'intermédiaire du bus WRP.
23
616 251
En outre, le processeur 200 demande une donnée d'interruption à l'unité SIU 100 en faisant passer la ligne IDR à l'état binaire UN puis il retarde l'exécution de la microinstruction suivante jusqu'à la réception d'une réponse en provenance de SIU 100.
L'unité SIU 100, lors de la réception du signal IDR, introduit le nouveau niveau d'interruption dans le registre AIL 101-6 et applique les signaux représentant le mot de donnée d'interruption aux lignes DFS de l'interface 600 du processeur. En même temps, l'unité SIU 100 fait passer la ligne ARDA à l'état binaire UN de manière à signaler au processeur 200 que le mot de donnée d'interruption a été appliqué aux lignes DFS. La séquence de signaux qui vient d'être décrite a été mise en évidence sur la figure 9.
On a indiqué sur la figure 13 le format du mot de donnée d'interruption. En se référant à cette figure, on voit que l'information de direction qui est fournie au processeur 200 est engendrée par des circuits faisant partie du multiplexeur 300 et de l'unité SIU 100 et qu'elle est basée sur l'emplacement physique de la source d'interruption dans le système de la figure 1.
En se référant à la figure 2, on voit que le signal ARDA assure le chargement du mot d'interruption dans le registre d'entrée de donnée 204-18. En même temps, l'unité SIU 100 agit de façon à extraire les données des lignes DFS. En outre, le processeur 200 assure, lors de la réception du signal ARDA la remise à zéro de la ligne AOPR.
Ensuite, le processeur 200, sous la commande d'un microprogramme approprié, extrait la base de bloc de commande (CBB) de l'emplacement zéro de la mémoire interprète pendant la période où le mot de donné d'interruption est chargé dans le registre d'entrée de données 204-18. Les contenus du mot d'interruption sont transférés par l'intermédiaire de la position DI du commutateur B 204-1, par l'intermédiaire du circuit additionneur/de décalage 204-2 et par l'intermédiaire de la position d'addition/de décalage du commutateur 204-8 dans le registre de travail IC du groupe 204-12. Egalement, le registre d'adresse de mémoire interprète 204-12 est remis à zéro de façon à lire le contenu CBB de la mémoire interprète 203-10 en vue de son transfert dans la mémoire-tampon 203-16.
Du fait qu'on a supposé qu'on avait affaire à une nouvelle interruption, l'élément primaire CBB doit être aligné et il se produit par conséquent un décalage du mot CBB vers la gauche de 11 positions de bits. Le mot CBB est appliqué à l'entrée d'opérande A du circuit additionneur/de décalage 204-2 par l'intermédiaire de la position SPB du commutateur A 203-20. Le résultat est transféré par l'intermédiaire du commutateur 204-8 dans le registre de travail R2. Il est à noter que, dans le cas d'une interruption ancienne, on peut utiliser directement les contenus des emplacements PSR et IC de la mémoire interprète.
Sous la commande d'un microprogramme, le processeur 200 établit l'adresse ICB en appliquent d'abord les contenus de donnée d'interruption du registre de travail RI par l'intermédiaire du bus WRR et de la position WRR du commutateur A 203-20 au circuit additionneur/de décalage 204-2 où ils sont décalés vers la droite de 9 positions de bits et chargés dans le registre de travail R2 qui emmagasine CBB # 1. Cette opération de décalage enlève le numéro ICB du mot de donnée d'interruption. Pendant le même cycle, les contenus du registre de travail R2 sont ensuite transférés par l'intermédiaire du bus WRP à la mémoire-tampon 203-16. Ensuite, les contenus correspondant au numéro ICB dans la mémoire-tampon 203-16 sont transmis par l'intermédiaire du commutateur A 203-20 au circuit additionneur/de décalage 204-2 et ils sont décalés vers la gauche de 4 positions de bits. Le résultat décalé est ensuite chargé dans le registre de travail R2. L'opération de décalage permet de multiplier le numéro ICB par 16. Le circuit additionneur/de décalage 204-2 agit de façon à additionner ou combiner les contenus de la mémoire-tampon 203-16 qui sont transmis par l'intermédiaire du commutateur A 203-20 avec les contenus du registre de travail R2 qui sont transmis par l'intermédiaire du commutateur B 204-1. Le résultat qui définit l'adresse de ICB 5 dans le module de mémoire locale 500 est chargé dans le registre de travail R2. Comme mentionné ci-dessus en référence à la figure 15, le type d'interruption définit la routine ICB particulière qui permet de traiter l'interruption correspondant à une terminaison de transfert de donnée et qui a été reçue en io provenance du multiplexeur 300. La routine ICB identifie à son tour le processus qui exécute le processeur 200 au niveau spécifié par les signaux qui sont appliqués par l'unité SIU 100 aux lignes AIL. Comme mentionné précédemment, l'un quelconque des 256 processus peut se dérouler à l'un quelconque de i s huit niveaux différents. En conséquence, cette structure permet l'exécution de huit processus différents en même temps ou bien de huit processus différents à plusieurs niveaux.
Sous la commande d'un microprogramme, le processeur 200 amorce une double opération de lecture pour extraire un double 2o mot de ICB (c'est-à-dire PSR et IC) à partir du module 500 en utilisant l'adresse ICB qui est emmagasinée dans le registre de travail R2. L'adresse ICB est introduite en même temps qu'une autre information dans le registre d'entrée 204-14 à partir du registre R2 par l'intermédiaire du commutateur d'adresse 204-6 25 placé dans la position ABS et du bus WRP (c'est-à-dire en fonction de l'ordre ZAC engendré). En outre, le registre de direction 204-16 est chargé par l'intermédiaire du commutateur de direction 204-10 placé dans la direction R/W et le processeur 200 fait passer la ligne AOPR à l'état binaire UN de manière à ■w signaler à l'unité SIU 100 une demande de mémoire. Egalement, l'adresse ICB est augmentée de 8 et elle est renvoyée au registre de travail R2. Le processeur 200 retarde alors l'exécution d'autres microinstructions jusqu'à ce que l'unité SIU 100 ait signalé l'acceptation de la demande (c'est-à-dire lorsque le 35 réseau 102-20 fait passer la ligne ARA à l'état binaire UN).
Ensuite, le processeur 200 charge les contenus du registre PCR 204-22 dans le registre de travail R3. En même temps, les registres de travail RI, R2 et R3 emmagasinent respectivement le mot d'interruption, l'adresse ICB plus 8 et les contenus PCR. 4o Les contenus PCR emmagasinés dans le registre de travail R3 sont vérifiés de manière à déterminer s'il s'est produit une réponse provenant de SIU 100 par les lignes ARA ou ARDA. En supposant une opération normale (c'est-à-dire qu'il n'existe aucune exception), le processeur 200 agit sous le contrôle du 45 microprogramme pour produire une autre demande de double lecture qui est transmise au module de mémoire 500 en vue de l'extraction des deux mots suivants de l'instruction ICB.
Pendant la vérification des contenus PCR, les mots PSR et IC provenant du module de mémoire 500 sont transférés dans le so registre d'entrée 204-18. Le premier mot (c'est-à-dire PSR) est transféré par l'intermédiaire de la position DI du commutateur B 204-1 et du Circuit additionneur/de décalage 204-2 dans le registre de travail R3. Le second mot (c'est-à-dire IC) est chargé dans le registre de travail IC.
55 Le processeur 200 effectue sous la commande du microprogramme les opérations nécessaires pour charger le mot d'interruption dans le registre PSR 204-20. En premier lieu, les contenus PSR du registre de travail R3 sont décalés vers la gauche de huit positions de bits. Cela élimine l'emplacement de so direction qui est incorporé au multiplet situé le plus à gauche dans le mot puisqu'il n'a aucune importance pour le traitement de l'interruption. Le résultat est ensuite transféré dans le registre de travail R3. Les contenus du registre de travail RI correspondant au mot d'interruption sont transférés dans la mémoire-65 tampon 203-16 par l'intermédiaire du bus WRP. Il est à notre que les bits 28 à 35 contiennent l'information de direction qui est établie par l'unité SIU 100 et le multiplexeur 300 et qui doit être introduite dans le registre PSR 204-20.
616 251
24
Pendant un cycle suivant, les contenus du registre de travail R3 sont appliqués par l'intermédiaire du bus WRR et de la position WRR du commutateur B 204-1 à l'entrée d'opérande B du circuit additionneur/de décalage 204-2 tandis que les contenus de la mémoire-tampon 203-16 sont appliqués par l'intermédiaire de la position SPB du commutateur A 203-20 à l'entrée d'opérande B du circuit additionneur/de décalage 204-2. L'opérande A et l'opérande B sont combinés et alignés par le circuit de décalage afin de former le nouveau mot PSR qui est transmis au registre de travail RI.
Le processeur 200 retarde l'exécution d'autres microinstructions jusqu'à la réception des deux mots suivants en provenance de ICB. Lors de la réception du signal ARDA provenant de l'unité SIU 100, le processeur 200 transfère les nouveaux contenus PSR du registre de travail RI dans le registre PSR 204-20 par l'intermédiaire du bus WRR. Pendant des cycles suivants, les mots provenant du registre d'entrée de donnée 204-10 chargé par ICB sont transférés dans les emplacements du registre de mémoire interprète approprié (par exemple les adresses GR14 et PTBR). Ensuite, le processeur 200 extrait des instructions du programme qui a été amorcé par une routine de traitement d'interruption en utilisant les contenus du registre de travail IC.
D'après ce qui vient d'être décrit, on voit que, en obligeant le processeur 200 à introduire dans le registre PSR une information de direction établie par l'unité SIU 100 et le multiplexeur 300, des ordres PI engendrés en réponse à des instructions WREX et RDEX émises par l'utilisateur et exécutées par suite de l'amorçage de processus résultant de l'interruption seront dirigés automatiquement vers un canal du multiplexeur qui est identifié par l'information de direction engendrée par la partie matérielle du système. Comme décrit précédemment, le processeur 200, lors de la génération de chaque ordre PI, insère automatiquement une information de direction obtenue à partir du registre PSR 204-20 dans le registre de direction 204-16 et dans le registre de sortie de donnée 204-14. La donnée de direction insérée dans le registre de direction 204-16 a le format indiqué sur la figure 14, tandis que la donnée de direction insérée comme une partie de l'ordre PI a le format indiqué sur la figure 7 a.
Il est à noter que, au moment où une instruction émise par l'utilisateur et concernant le processus en cours, se traduit par l'introduction d'une adresse contenant seulement des ZEROS dans le registre d'adresse d'enregistrement 203-22 et est sélectionnée en vue d'un transfert vers le registre d'adresse 203-12, le circuit décodeur 203-28 agit de façon à produire un signal d'exception sauf si la position de bit numéro 8 du registre PSR 204-20 est excitée pour spécifier un mode principal. Le signal d'exception fait alors passer la position de bit numéro 4 du registre PCR 204-22 à l'état binaire UN en signalant l'opération illégale et en obligeant le processeur 200 à amorcer automatiquement une routine de traitement d'exception comme décrit précédemment. Il est à noter que certains outres emplacements de la mémoire interprète peuvent également être protégés contre un accès non autorisé par des utilisateurs.
En se référant à la figure 16, on voit que le multiplexeur 300 peut exécuter d'autres opérations en même temps que l'opération de transfert de donnée lue qui vient d'être décrite. Comme indiqué sur cette figure, pendant le temps où l'adaptateur de commande CAO est en train de recevoir des multiplets de données provenant du dispositif à disque et assure l'assemblage des multiplets enregistrés dans le module de mémoire locale 500 par l'intermédiaire de son canal, le processeur 200 émet, en réponse à l'instruction RDEX, un ordre PI qui est transmis par l'intermédiaire de l'interface programmable et qui spécifie que les contenus des registres de l'adaptateur de commande (c'est-à-dire CA2) doivent être renvoyés au processeur 200.
Comme décrit pour une instruction WREX, le processeur 200 engendre un ordre PI qui a le format indiqué sur la figure 7a et qui est chargé dans le registre de donnée 201-14 en même temps qu'une information de direction ayant le format indiqué sur la figure 14 et qui a été introduite dans le registre de direction 204-16. La séquence de signaux intervenant dans le transfert de l'ordre PI du processeur 200 vers le multiplexeur 300 par l'intermédiaire de l'unité SIU 100 a été indiquée sur la figure 10c. En se référant à cette figure, on voit que les cycles d'adresse (A) et de donnée (D) ne peuvent pas être exécutés pendant des périodes successives puisque l'unité SIU 100 ne réserve pas une voie de transmission de données par laquelle le multiplexeur 300 pourrait transmettre les contenus du registre de donnée correspondant au processeur 200. En conséquence, le module adressé (multiplexeur 300) a la responsabilité de demander un cycle de donnée en faisant passer sa ligne RDTR à l'état binaire UN. Quand le multiplexeur 300 constitue le demandeur de priorité la plus élevée, il se voit attribuer une voie de transmission.
La séquence de signaux permettant le transfert des contenus du registre spécifié entre le multiplexeur 300 et le processeur 200 est conforme à ce qui a été indiqué sur la figure lOd. Le mot de donnée transféré par le multiplexeur 300 a un format similaire aux formats indiqués sur la figure 7d. Aussitôt que des signaux correspondant aux contenus de données du registre spécifié ont été introduits dans le registre PDTS du groupe 301-64 par l'intermédiaire du commutateur 301-20, les circuits 301-4 font passer la ligne RDTR à l'état binaire UN par excitation d'une bascule non représentée. A ce moment, les contenus du registre PDTS sont appliqués aux lignes PDTS de l'interface 601. Quand l'unité SIU 100 reçoit la demande du multiplexeur 300, le réseau 102-40 de la figure 3 fait passer la ligne RDAA à l'état binaire UN en signalant l'acceptation au multiplexeur 300. A ce moment le multiplexeur 300 peut extraire le mot de donnée et remettre à zéro la bascule de demande.
Comme le montre la figure lOd, l'unité SIU 100 assure, en même temps que la commutation de la ligne RDAA, également la commutation de la ligne ARDA à l'état binaire UN. Cela signifie au processeur 200 que les contenus du registre appliqués aux lignes PDTS existent dans les lignes DFS de l'interface 600 du processeur. Lors de l'arrivé d'une impulsion d'horloge suivante, l'opération est terminée. Quand le multiplexeur 300 est incapable d'emmagasiner des ordres de lecture PI, il intervient de façon à maintenir la ligne PIR à l'état binaire «zéro» ensigna-lant à l'unité SIU 100 qu'il n'est pas prêt pour l'exécution d'un autre ordre.
La description qui précède montre comment le multiplexeur 300 peut s'adapter à deux types d'opérations différentes en utilisant l'agencement selon la présente invention. Il est également à noter que le multiplexeur 300 peut également s'adapter à d'autres opérations de transfert de données qui font intervenir d'autres modules de mémoire (par exemple une mémoire principale) qui sont reliées à d'autres bornes de l'unité SIU 100.
On voit par conséquent que l'appareil décrit permet de traiter efficacement des interruptions en réduisant au minimum le temps de traitement consacré à une commutation entre des programmes. Cela est réalisé en utilisant des ordres qui préconditionnent différents modules reliés à des dispositifs périphériques du système en autorisant ces modules à affecter des niveaux de priorités appropriés à des événements différents. De cette manière le module peut établir une distinction entre des événements importants et des événements moins importants et il peut assurer l'interruption de l'unité de traitement du système seulement dans le cas où il est nécessaire d'exécuter une opération de priorité supérieure. En outre, du fait que chaque module établissant une demande d'interruption définit la routine d'interruption utilisée pour le traitement d'interruption en question, on élimine la perte de temps qu'on aurait si l'unité de traitement
5
II)
15
20
25
30
35
4(1
45
50
55
60
65
25
616 251
déterminait la raison de l'interruption, en plus de son importance relative.
L'appareil décrit du fait qu'il comporte une interface séparée permettant de transmettre des ordres, permet également à un module d'exécuter des opérations de transfert de données en parallèle à l'exécution d'instructions qui sont appliquées par l'interface séparée.
Bien entendu, l'invention n'est pas limitée aux exemples de réalisation ci-dessus décrits et représentés, à partir desquels on pourra prévoir d'autres modes et d'autres formes de réalisation, sans pour cela sortir du cadre de l'invention. Par exemple, bien que le mode préféré de réalisation de l'invention fasse intervenir un préconditionnement des modules du système par des ordres appliqués par une interface séparée, il va de soi qu'on peut utiliser le système de façon qu'il réagisse à des ordres provenant d'autres interfaces du système, par exemple l'interface de données. Plus particulièrement, en plaçant le commutateur 301-1 de la figure 4a dans la position DFS, on peut utiliser des ordres provenant des lignes DFS et non des lignes PDFS. En variante, comme dans le cas du multiplexeur à basses vitesses, on peut transmettre des ordres et des données en utilisant seulement l'interface programmable. Ainsi, lorsqu'une simultanéité d'opérations n'est pas essentielle pour le système considéré, on peut réduire le nombre d'interface et par conséquent les frais d'investissement et d'exploitation.
Il est également à noter qu'on peut apporter des modifications au système en vue de faciliter la simultanéité des opérations à exécuter en incorporant au processeur 200 des circuits logiques supplémentaires servant à engendrer des ordres PI en parallèle à des ordres de mémorisation. En outre, au lieu d'avoir un code d'opération d'une instruction qui définisse le type d'interface par l'intermédiaire de laquelle le processeur doit s transférer un ordre, on peut coder des bits supplémentaires inclus dans la partie d'adresse en mémoire d'une instruction pour définir l'interface en question. Plus particulièrement, les bits supérieurs de l'adresse servent de définition de destination et ils spécifient une adresse extérieure aux adresses normales qui m correspondraient à une adresse de registre extérieur. Cela évite de prévoir différents types d'instructions pour commander les interfaces de transmission de données et de transmission d'ordres. Il est également à noter que, bien que le système correspondant au mode préféré de réalisation décrit ci-dessus fasse 15 intervenir un élément d'établissement de priorité d'interruption qui est incorporé à l'interface de système, il va de soi qu'on pourrait incorporer cet élément au processeur tout en restant dans le cadre de l'invention.
Pour éviter de compliquer la description du système selon 2o l'invention pour les spécialistes en la matière, on a adopté une formule à schémas synoptiques en donnant une description fonctionelle détaillée de chaque bloc et en fournissant une identification correcte des circuits représentés par chaque bloc. Les techniciens pourront librement sélectionner les éléments et 25 les composants correspondants, tels que des bascules, des registres, des circuits sélecteurs, des multiplexeurs et d'autres composants nécessaires pour réaliser des formes d'exécution plus particulièrement aceptées à leur besoins.
C
16 feuiles dessins

Claims (11)

  1. 616 251
    2
    REVENDICATIONS
    1. Appareil d'entrée/sortie pour commander des opérations de transfert de données d'entrée/sortie dans plusieurs dispositifs périphériques comprenant:
    - une mémoire,
    - un processeur d'entrée/sortie qui comprend des moyens pour traiter des signaux d'interruption provenant des différents dispositifs périphériques,
    - un multiplexeur connecté à ces dispositifs périphériques,
    - des moyens d'interconnexion reliant entre eux la mémoire, le processeur et le multiplexeur en vue d'établir des communications basées sur des priorités, le multiplexeur (300) comprenant plusieurs blocs de connexion d'adaptation (CPO) reliés aux différents dispositifs périphériques, caractérisé en ce que le multiplexeur comprend:
    - un groupe de plusieurs registres (302-10/12/14), associés aux blocs de connexion et agencés pour emmagasiner une information de commande d'interruption sous forme d'ordres se rapportant au traitement desdites opérations d'entrée/sortie par ledit multiplexeur,
    - un premier registre (301-10) dudit groupe contenant des signaux codés spécifiant une valeur numérique utilisée pour identifier l'une des différentes routines d'interruption qui sont exécutées par le processeur en vue de traiter les signaux d'interruption reçus en provenance desdits dispositifs, tandis qu'un second registre (301-12) du groupe contient des signaux codés spécifiant des valeurs numériques servant à identifier des niveaux de priorités à donner par le multiplexeur aux différents signaux d'interruption,
    - des moyens logiques (301-34) d'interruption branché de manière à recevoir les signaux d'interruption provenant du bloc de connexion,
    - un réseau de circuits de priorité (301-24) relié auxdits moyens logiques et audit second registre et agissant de façon à engendrer des signaux indiquant la demande présentant la priorité la plus élevée en réponse à des signaux d'interruption reçus en provenance desdits moyens logiques, cette priorité la plus élevée étant définie en concordance avec les valeurs emmagasinées dans le second registre,
    - un registre de sortie (301-22) couplé fonctionnellement audit réseau de priorité et audit groupe de registres, ce réseau de priorité agissant de façon à faire appliqeur les contenus desdits premier et second registres audit registre de sortie en vue de leur transfert auxdits moyens d'interconnexion (100) sous la forme d'une partie d'une demande d'interruption.
  2. 2. Appareil selon la revendication 1, caractérisé en ce que lesdits moyens d'interconnexion comprennent:
    - un bus d'interface (600) de transfert de données,
    - un bus d'interface (602) d'ordre qui est branché de manière à être indépendant du bus d'interface de données, ledit bus d'interface d'ordre étant relié au multiplexeur (300) de façon à recevoir les ordres provenant du processeur (200) pendant lesdits opérations de transfert de données.
  3. 3. Appareil selon la revendication 2, caractérisé en ce que ledit bus d'interface d'ordre (602) comprend plusieurs lignes de commande (IR, IDA, LZP, HL1P, 1DR, RLS, AIL) qui sont couplées avec le processeur (200) et en ce que ledit processeur comprend un microprocesseur (201) pour amorcer une séquence de transfert d'ordres par l'intermédiaire desdites lignes de commande en vue du transfert desdits ordres par l'intermédiaire dudit bus d'interface d'ordre.
  4. 4. Appareil selon la revendication 3, caractérisé en ce que ledit processeur comprend un moyen de minutage servant à engendrer des signaux d'horloge, ce moyen de minutage étant relié à ladite mémoire, auxdits moyens d'interconnexion et audit multiplexeur afin de synchroniser la transmission des demandes entre eux.
  5. 5. Appareil selon une des revendications précédentes, caractérisé en ce que lesdits moyens d'interconnexion comprennent :
    - un réseau de priorité (101-2/4/6) qui est branché de manière à recevoir des demandes d'interruptions provenant du s multiplexeur (300), et qui agit de façon à déterminer la demande de priorité la plus élevée qui est définie par lesdits signaux représentant des niveaux de priorité et à transférer lesdits signaux correspondant à la valeur numérique d'interruption associée audit processeur sous la forme d'une partie de la io demande d'interruption.
  6. 6. Appareil selon la revendication 5, caractérisé en ce que ladite mémoire (500) comprend plusieurs emplacements de mémorisation servant à emmagasiner des groupes de routines d'interruptions pour traiter un nombre correspondant d'inter-
    i s ruptions possibles,
    - en ce que le processeur (200) comporte une commande d'interruption branchée de manière à recevoir lesdites demandes d'interruption, cette commande d'interruption comprenant:
    - un registre (202-2) d'adresses pour emmagasiner une 2« adresse de base de bloc de commande desdits groupes de routines,
    - un registre (203-16) pour emmagasiner lesdits signaux de valeurs numériques de ladite routine d'interruption reçus en provenance desdits moyens d'interconnexion et
    25 _ un additionneur (204-2) relié au registre d'adresses et au registre de combinaisons de l'adresse de base de commande avec ladite valeur numérique pour former une adresse identifiant ledit groupe particulier de routines d'interruptions se trouvant dans ladite mémoire.
    •w 7. Appareil selon la revendication 6, caractérisé en ce que ledit processeur (200) comprend en outre:
    - une mémoire de commande 203-10) de processus contenant des groupes de registres servant à emmagasiner des informations de processus en relation avec un nombre correspondant ss de niveaux de processus qui sont échelonnés entre une faible priorité et une grande priorité, seulement un niveau de processus étant actif à un instant donné,
    - un sélecteur (203-14) relié à la mémoire de commande de processus pour sélectionner le groupe de registres correspon-
    4(1 dant au niveau de priorité en question en vue de l'exécution du processus spécifié par ladite routine d'interruption.
  7. 8. Appareil selon une des revendications 6 et 7, caractérisé en ce que chaque groupe de routines d'interruption de la mémoire (500) comprend un certain nombre de routines d'in-« terruption servant à traiter un type particulier d'événements d'interruption et en ce que lesdits moyens logiques d'interruption (301-34) comprennent des éléments logiques agissant en réponse auxdits signaux représentant les événements d'interruption pour produire des signaux codés identifiant ledit type 50 d'événement d'interruption signalé, lesdits moyens logiques étant branchés de façon à appliquer les signaux codés en question au registre de sortie (301-22) sous la forme d'une partie de ladite demande d'interruption.
    ~ 9. Appareil selon la revendication 8, caractérisé en ce que ss ledit registre (203-16) de la commande d'interruption du processeur est agencé pour emmagasiner les signaux codés représentant le numéro de type en même temps que lesdits signaux numériques et en ce que ledit additionneur (204-2) agit de façon à combiner ladite adresse de base de commande avec un numéro «> de bloc de commande d'interruption se composant desdits signaux numériques et des signaux représentant le numéro de type afin de former une adresse identifiant une routine particulière d'interruption à l'intérieur dudit groupe en vue du traitement desdits types d'événements d'interruption signalés. 65 10. Appareil selon la revendication 9, caractérisé en ce que ledit second registre (301-12) du multiplexeur emmagasine des séries de signaux représentant des nombres de niveaux d'interruption, à savoir un signal pour chacun des types différents de
    3
    616 251
    signaux d'événements d'interruption qui doivent être traités pendant lesdites opérations de transfert de données et en ce que ledit multiplexeur (300) comprend en outre:
    - un sélecteur de multiplexeur (301-14) comportant plusieurs bornes de sortie, plusieurs séries de bornes d'entrée, 5 chaque série de bornes d'entrée étant branchée de façon à recevoir un groupe différent de signaux représentant des numéros de niveau d'interruption en provenance du second registre (301-12) et une série de bornes d'entrée de commande qui sont branchées de manière à recevoir lesdits signaux représentant les l() numéros de type et provenant desdits moyens logiques (301-34), ledit sélecteur (301-14) étant conditionné par lesdits signaux représentant les numéros de type pour appliquer auxdi-tes bornes de sortie la série désignée des signaux représentant le numéro de niveau d'interruption et provenant du second régis- 15 tre (301-12) afin d'indiquer la priorité qui a été accordée par ledit réseau de priorité à un signal d'événement particulier associé.
  8. 11. Appareil selon la revendication 10, caractérisé en ce que le premier (301-10,0-3) et le second (301-12, CAO-3) registre 20 de chacune desdites sections de canaux contiennent des signaux codés définissant les mêmes routines et des routines différentes utilisées pour le traitement desdits signaux d'événements d'interruptions.
  9. 12. Appareil selon une des revendication 10 et 11, caracté- 25 risé en ce que lesdits moyens logiques d'interruption (301-34) agissent en réponse à plus d'un signal d'événement d'interruption provenant de la même section de canal (CAO-3) pour engendrer des signaux codés identifiant le type de signal d'événement présentant la priorité la plus élevée basée sur une 30 priorité fixe prédéterminée qui a été établie par les entrés particulières auxquelles lesdits signaux d'événements sont appliqués par lesdits dispositifs.
  10. 13. Procédé pour la mise en action de l'appareil d'entrée-sortie selon la revendication 1, caractérisé en ce que: on classe 35 l'ensemble des signaux d'interruption en un nombre de niveaux de priorité différents représentés par un nombre équivalent de codes; on emmagasine dans le multiplexeur des codes désignant les niveaux assignés à des signaux d'événement représentant des interruptions prédéterminés, on incorpore ces signaux d'inter- 40 ruption codés dans les demandes d'interruption correspondantes et on transfère au processeur d'entrée-sortie le signal codé d'interruption désignant le signal d'événement provenant du dispositif de niveau le plus élevé, afin de provoquer une interruption de l'activité du processeur d'entrée-sortie en vue de sa 45 commutation à une activité ayant un niveau de priorité supérieur.
  11. 14. Procédé selon la revendication 13, caractérisé en ce qu'on emmagasine dans le multiplexeur plusieurs constantes identifiant chacune une routine correspondant à un type d'inter- 50 ruption, et qu'on insère le code correspondant à la constante appropriée dans le signal codé d'interruption avant de transférer celui-ci au processeur d'entrée-sortie.
    55
CH375876A 1975-03-26 1976-03-25 CH616251A5 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/562,364 US4006466A (en) 1975-03-26 1975-03-26 Programmable interface apparatus and method

Publications (1)

Publication Number Publication Date
CH616251A5 true CH616251A5 (fr) 1980-03-14

Family

ID=24245983

Family Applications (1)

Application Number Title Priority Date Filing Date
CH375876A CH616251A5 (fr) 1975-03-26 1976-03-25

Country Status (10)

Country Link
US (1) US4006466A (fr)
JP (1) JPS5930290B2 (fr)
BE (1) BE840024A (fr)
BR (1) BR7601585A (fr)
CA (1) CA1064623A (fr)
CH (1) CH616251A5 (fr)
DE (1) DE2612083A1 (fr)
FR (1) FR2305790A1 (fr)
GB (1) GB1547384A (fr)
NL (1) NL7603019A (fr)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4035780A (en) * 1976-05-21 1977-07-12 Honeywell Information Systems, Inc. Priority interrupt logic circuits
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4080649A (en) * 1976-12-16 1978-03-21 Honeywell Information Systems Inc. Balancing the utilization of I/O system processors
US4325119A (en) * 1977-01-19 1982-04-13 Honeywell Information Systems Inc. Process and apparatus employing microprogrammed control commands for transferring information between a control processor and communications channels
US4156907A (en) * 1977-03-02 1979-05-29 Burroughs Corporation Data communications subsystem
US4099236A (en) * 1977-05-20 1978-07-04 Intel Corporation Slave microprocessor for operation with a master microprocessor and a direct memory access controller
US4110830A (en) * 1977-07-05 1978-08-29 International Business Machines Corporation Channel storage adapter
US4384327A (en) * 1978-10-31 1983-05-17 Honeywell Information Systems Inc. Intersystem cycle control logic
US4462073A (en) * 1978-11-08 1984-07-24 Data General Corporation Apparatus for fetching and decoding instructions
US4217640A (en) * 1978-12-11 1980-08-12 Honeywell Information Systems Inc. Cache unit with transit block buffer apparatus
US4293909A (en) * 1979-06-27 1981-10-06 Burroughs Corporation Digital system for data transfer using universal input-output microprocessor
US4445176A (en) * 1979-12-28 1984-04-24 International Business Machines Corporation Block transfers of information in data processing networks
US4418382A (en) * 1980-05-06 1983-11-29 Allied Corporation Information exchange processor
US4547849A (en) * 1981-12-09 1985-10-15 Glenn Louie Interface between a microprocessor and a coprocessor
US4456970A (en) * 1981-12-10 1984-06-26 Burroughs Corporation Interrupt system for peripheral controller
US4598359A (en) * 1983-04-01 1986-07-01 Honeywell Information Systems Inc. Apparatus for forward or reverse reading of multiple variable length operands
US4939644A (en) * 1983-05-19 1990-07-03 Data General Corporation Input/output controller for controlling the sequencing of the execution of input/output commands in a data processing system
US4901232A (en) * 1983-05-19 1990-02-13 Data General Corporation I/O controller for controlling the sequencing of execution of I/O commands and for permitting modification of I/O controller operation by a host processor
US4698770A (en) * 1984-01-13 1987-10-06 Bell & Howell Company Computer controlled video device and slide projector interface arrangement
JPS6139582U (ja) * 1984-08-17 1986-03-12 秀工電子株式会社 玉貸機に投入されたコインの枚数の計数装置
US4660143A (en) * 1984-09-24 1987-04-21 The United States Of America As Represented By The Secretary Of The Air Force Programmable realtime interface between a Block Floating Point processor and memory
US4792890A (en) * 1985-12-31 1988-12-20 International Business Machines Corp. Method for resolving conflicts between interrupt sources sharing the same priority level
US4788640A (en) * 1986-01-17 1988-11-29 Intel Corporation Priority logic system
JPH0545351Y2 (fr) * 1986-11-23 1993-11-18
US4901226A (en) * 1987-12-07 1990-02-13 Bull Hn Information Systems Inc. Inter and intra priority resolution network for an asynchronous bus system
US5261084A (en) * 1988-05-06 1993-11-09 Nec Corporation Error judgment method
US5111423A (en) * 1988-07-21 1992-05-05 Altera Corporation Programmable interface for computer system peripheral circuit card
US4972342A (en) * 1988-10-07 1990-11-20 International Business Machines Corporation Programmable priority branch circuit
JPH07122868B2 (ja) * 1988-11-29 1995-12-25 日本電気株式会社 情報処理装置
US4964033A (en) * 1989-01-03 1990-10-16 Honeywell Inc. Microprocessor controlled interconnection apparatus for very high speed integrated circuits
US5347637A (en) * 1989-08-08 1994-09-13 Cray Research, Inc. Modular input/output system for supercomputers
CA2036688C (fr) * 1990-02-28 1995-01-03 Lee W. Tower Processeur de signaux multigroupe
US5517624A (en) * 1992-10-02 1996-05-14 Compaq Computer Corporation Multiplexed communication protocol between central and distributed peripherals in multiprocessor computer systems
US6266731B1 (en) 1998-09-03 2001-07-24 Compaq Computer Corporation High speed peripheral interconnect apparatus, method and system
US6816934B2 (en) * 2000-12-22 2004-11-09 Hewlett-Packard Development Company, L.P. Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol
US6877060B2 (en) * 2001-08-20 2005-04-05 Intel Corporation Dynamic delayed transaction buffer configuration based on bus frequency
US7487502B2 (en) 2003-02-19 2009-02-03 Intel Corporation Programmable event driven yield mechanism which may activate other threads
US7849465B2 (en) * 2003-02-19 2010-12-07 Intel Corporation Programmable event driven yield mechanism which may activate service threads
US9208109B2 (en) 2011-06-01 2015-12-08 Altera Corporation Memory controllers with dynamic port priority assignment capabilities

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3419849A (en) * 1962-11-30 1968-12-31 Burroughs Corp Modular computer system
NL164143C (nl) * 1965-09-10 Ibm Gegevensverwerkend systeem met variabele prioriteiten.
US3421150A (en) * 1966-08-26 1969-01-07 Sperry Rand Corp Multiprocessor interrupt directory
US3386083A (en) * 1967-01-13 1968-05-28 Ibm Interruptions in a large scale data processing system
US3665415A (en) * 1970-04-29 1972-05-23 Honeywell Inf Systems Data processing system with program interrupt priority apparatus utilizing working store for multiplexing interrupt requests
US3676861A (en) * 1970-12-30 1972-07-11 Honeywell Inf Systems Multiple mask registers for servicing interrupts in a multiprocessor system
GB1397438A (en) * 1971-10-27 1975-06-11 Ibm Data processing system
US3728693A (en) * 1972-04-28 1973-04-17 Burroughs Corp Programmatically controlled interrupt system for controlling input/output operations in a digital computer
IT971304B (it) * 1972-11-29 1974-04-30 Honeywell Inf Systems Sistema di accesso a priorita variabile dinamicamente

Also Published As

Publication number Publication date
JPS5930290B2 (ja) 1984-07-26
US4006466A (en) 1977-02-01
CA1064623A (fr) 1979-10-16
GB1547384A (en) 1979-06-20
NL7603019A (nl) 1976-09-28
BR7601585A (pt) 1976-09-28
BE840024A (fr) 1976-07-16
FR2305790B1 (fr) 1982-03-05
DE2612083A1 (de) 1976-10-07
JPS51117839A (en) 1976-10-16
FR2305790A1 (fr) 1976-10-22
AU1117076A (en) 1977-09-01

Similar Documents

Publication Publication Date Title
CH616251A5 (fr)
EP0030504B1 (fr) Dispositif de synchronisation et d&#39;affectation de processus entre plusieurs processeurs dans un système de traitement de l&#39;information
EP0167193B1 (fr) Système d&#39;arbitrage des demandes d&#39;accès de plusieurs processeurs à des ressources communes, par l&#39;intermédiaire d&#39;un bus commun
FR2480458A1 (fr) Dispositif pour transferer des informations entre des unites d&#39;un systeme de traitement de donnees
EP0121030B1 (fr) Dispositif d&#39;arbitrage pour l&#39;attribution d&#39;une ressource commune à une unité sélectionnée d&#39;un système de traitement de données
FR2480460A1 (fr) Dispositif pour transferer des informations entre des unites principales d&#39;un systeme de traitement de donnees et un sous-systeme central
FR2630839A1 (fr) Procede et dispositif de controle de l&#39;acces a un bus dans un systeme informatique
FR2472234A1 (fr) Protocoles de communication geres par les modules de communication utilises dans un systeme de traitement de donnees reparti
FR2486682A1 (fr) Systeme de traiteme
FR2558617A1 (fr) Systeme processeur comportant un certain nombre de postes interconnectes par un reseau de communication et poste a utiliser dans un tel systeme processeur
FR2539239A1 (fr) Systeme d&#39;ordinateur a taches multiples a gestion de memoire
FR2539528A1 (fr) Systeme a microprocesseur comportant deux processeurs
FR2560411A1 (fr) Memoire fonctionnant a grande vitesse et systeme de gestion de cette memoire
FR2632096A1 (fr) Systeme de microcalculateur a bus multiple avec arbitrage d&#39;acces aux bus
FR2519441A1 (fr) Systeme de selection de priorite pour l&#39;acces a un bus utilise en mode partage
CH629319A5 (fr) Installation de traitement de donnees.
CH629320A5 (fr) Installation de traitement de donnees.
FR2503899A1 (fr) Procede et dispositif de transmission de donnees numeriques
CH621201A5 (fr)
EP0102434A1 (fr) Dispositif pour signaler à l&#39;unité de commande centrale d&#39;un équipement de traitement de données, les erreurs se produisant dans les adaptateurs
CN113204530A (zh) 分布式文件系统的数据写入方法、装置、设备以及介质
EP0032862B1 (fr) Dispositif pour superposer les phases successives du transfert des informations entre plusieurs unités d&#39;un système de traitement de l&#39;information
FR2744539A1 (fr) Systeme et procede de traitement par augmentation du nombre d&#39;entrees de donnees
CA1073546A (fr) Systeme d&#39;articulation et de gestion pour central de telecommunications
FR2632139A1 (fr) Reseau de transmission d&#39;informations numeriques entre plusieurs stations

Legal Events

Date Code Title Description
PL Patent ceased