FR2578071A1 - Installation de multitraitement a plusieurs processus - Google Patents

Installation de multitraitement a plusieurs processus Download PDF

Info

Publication number
FR2578071A1
FR2578071A1 FR8602680A FR8602680A FR2578071A1 FR 2578071 A1 FR2578071 A1 FR 2578071A1 FR 8602680 A FR8602680 A FR 8602680A FR 8602680 A FR8602680 A FR 8602680A FR 2578071 A1 FR2578071 A1 FR 2578071A1
Authority
FR
France
Prior art keywords
memory
data
line
common
installation
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
FR8602680A
Other languages
English (en)
Other versions
FR2578071B1 (fr
Inventor
David J Schanin
Russell L Moore
John R Bartlett
Charles S Namias
David W Zopf
Brian D Gill
Trevor A Creary
Stephen S Corbin
Mark J Natale
David E Ford
Steven J Frank
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Encore Computer Corp
Original Assignee
Encore Computer Corp
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 Encore Computer Corp filed Critical Encore Computer Corp
Publication of FR2578071A1 publication Critical patent/FR2578071A1/fr
Application granted granted Critical
Publication of FR2578071B1 publication Critical patent/FR2578071B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors

Abstract

L'INVENTION CONCERNE UNE INSTALLATION DE MULTITRAITEMENT. ELLE SE RAPPORTE A UNE INSTALLATION QUI COMPORTE PLUSIEURS MODULES PROCESSEURS 20, PLUSIEURS MODULES DE MEMOIRE PARTAGEE 40 ET UNE COMMANDE 60, ORGANISEE AUTOUR D'UNE LIGNE COMMUNE COMPRENANT UNE LIGNE COMMUNE DE DONNEES 102, UNE LIGNE COMMUNE D'ADRESSES 104 ET UNE LIGNE COMMUNE VECTORISEE 106 AINSI QU'UNE LIGNE DE COMMANDE. LES MODULES PROCESSEURS COMPORTENT UNE ANTE-MEMOIRE 22 QUI GARDE LE CONTENU DES EMPLACEMENTS ATTEINTS LE PLUS SOUVENT DANS LA MEMOIRE 40. APPLICATION AUX INSTALLATIONS DE MULTITRAITEMENT D'INFORMATIONS.

Description

La présente invention concerne les installations
de multitraitement et plus précisément une telle installa-
tion ayant plusieurs processeurs étroitement couplés.
Les développements actuels de l'industrie des ordinateurs ont créé une tendance toujours croissante
vers les systèmes de calcul plus importants et plus élabo-
rés. Ces développements ont été rendus possibles dans de nombreux cas par une plus grande vitesse et des éléments de circuit moins coûteux. Des augmentations plus importantes des débits des installations ont été obtenues par une meilleure organisation des systèmes de calcul. Il faut noter en particulier, à propos de l'organisation, les installations de calcul par multitraitement dans lesquelles plusieurs unités autonomes de traitement peuvent partager
une charge commune de travail.
Au cours des ans, on a élaboré différents types de configurations de multitraitement très nombreuses. En fait, de nombreux vendeurs d'unités centrales et certains fournisseurs de mini-ordinateurs offrent actuellement des
installations comprenant deux à quatre processeurs. Actuel-
lement, ces structures ont été de réalisation coûteuse étant
donné le coût élevé des processeurs utilisés. En conse-
quence, les installations de calcul par multitraitement ont trouvé des applications essentiellement dans des calculs nécessitant une disponibilité importante (par exemple dans les communications, les installation's des
banques, les réservations de places d'avion).
Un autre but des arrangements de multitraitement est l'augmentation de la puissance de calcul et de la vitesse de calcul par utilisation de plusieurs unités de traitement qui travaillent en parallèle afin que le débit d'informations dépasse celui qui peut être obtenu avec un seul processeur travaillant à une vitesse quelconque qui peut être obtenue. De nombreux algorithmes et calculs traités habituellement par les ordinateurs peuvent être traités en parallèle. En outre, comme le coût de la vitesse plus grande d'un processeur augmente beaucoup au-delà d'une valeur prédéterminée, on a montré que, au-dessus d'un niveau correspondant, une augmentation du débit peut être obtenue d'une manière plus rentable par utilisation d'un plus grand
nombre de processeurs relativement lents que par augmenta-
tion de la vitesse d'un seul processeur. Etant donné la grande vitesse d'évolution des microprocesseurs, le nombre d'applications sensibles nécessitant l'exécution du traitement d'un seul courant d'informatiors supérieur à ce qui peut être fourni par un processeur unique est
déjà très faible et continuera à diminuer.
Certains des avantages obtenus par utilisation de processeurs de multitraitement sont obtenus au détriment de la fiabilité de l'installation et d'une augmentation de
la difficulté de programmation, d'une manière considérable.
Ces inconvénients sont dus à l'organisation hiérarchique des processeurs. Une caractéristique qui contribue souvent
à la pose de problèmes de fiabilité est l'arrangement com-
portant l'organisation habituelle dans laquelle chaque dispositif de communicationsou d'entrée-sortie est associé à un processeur donné. Une défaillance dans ce processeur empêche l'ensemble de l'installation de remplir la tâche
prévue dans son ensemble.
Les installations de multitraitement peuvent
être couplées de l'une de deux manières. Dans une installa-
tion de multitraitement à couplage fermé, chaque processeur travaille dans un environnement fermé de calcul comprenant
un processeur, une mémoire privée, une interface d'entrée-
sortie et un système séparé d'exploitation. La souplesse et la puissance sont limitées dans une telle installation car chaque processeur est aussi isolé qu'il le serait s'il était incorporé à une installation indépendante en réseau fixe. En outre, plusieurs processeurs ne peuvent pas
être utilisés efficacement pour une même tâche sans trans-
fert de quantités importantes d'informations et de contexte chaque fois qu'une commutation est réalisée. Ainsi, une limite est imposée à l'équilibrage dynamique du groupe de processeurs en fonction d'une charge de travail qui
varie rapidement.
Dans une installation à couplage étroit, les multiprocesseurs se partagent une ligne commune, une mémoire, des dispositifs d'entrée-sortie et un système d'exploitation. Avec une telle architecture, une seule copie du système d'exploitation est nécessaire à des centaines de processus exécutés sur un grand nombre de microprocesseurs individuels. Tous les processeurs et les processus ont accès à toute la mémoire principale, à tout le réseau et à toutes les interfaces d'entrée-sortie ainsi qu'à toute la mémoire de masse. Ce partage permet une utilisation maximale des processeurs disponibles avec une perte minimale d'espace mémoire et de largeur de bande de ligne commune car l'accès partagé nécessite une copie minimale des données et une commutation minimale du contexte. Dans une telle installation, un processeur quelconque peut être utilisé à un moment quelconque pour une opération quelconque. La souplesse énorme de cette conception donne une plus grande puissance disponible, de plus grandes possibilités d'expansion, et une gamme beaucoup
plus large d'applications.
Divers problèmes doivent être considérés lors de la réalisation d'un système de multitraitement afin que le niveau obtenu de performance soit optimal. Un tel facteur est qu'un vendeur donné doit pouvoir fournir
des installations de multitraitement d'une grande variété.
Cette variété doit porter à la fois sur les performances et le prix. Le choix parmi un nombre limité d'organes d'une
famille d'ordinateurs est rarement une solution satisfai-
sante, car il est coûteux de réaliser et mettre au point
différents organes d'une famille d'ordinateurs.
Un problème important à considérer lors de la réalisation d'une installation de multitraitement est que, lorsque l'installation est réalisée à partir d'un certain nombre de modules de types différents tels que des processeurs, des dispositifs d'entrée-sortie et des modules de mémoire, la défaillance d'un tel module ne doit
pas provoquer une défaillance de l'ensemble de l'instal-
lation. Dans un cas idéal, un support convenable par
logiciel doit permettre la reproduction des modules défec-
tueux et la mise hors-service de ceux-ci afin que le fonctionnement puisse se poursuivre avec un temps minimal d'arrêt.
Il est important qu'une installation de multi-
traitement ne soit pas formée d'un nombre important de cartes originales dans un mini-ordinateur d'un type particulier, afin que les coûts de réalisation d'un système
de multitraitement puissent être aussi faibles que possible.
Au contraire, lorsque l'installation est formée de nom-
breuses copies d'un petit nombre de modules, l'installation est plus rapide et moins coûteuse à réaliser et les types individuels de modules peuvent être réalisés en grand volume si bien que les coûts de fabrication peuvent être
réduits par rapport à des technologies plus anciennes.
Dans une installation de multitraitement dans laquelle les performances et la souplesse ont une importance primordiale, la ligne commune qui relie les divers modules de l'installation doit avoir une très
grande vitesse de transfert de données. Une telle instal-
lation doit pouvoir arbitrer convenablement entre les modules demandant l'accès à la ligne commune afin qu'aucun module ne soit toujours coupé de la ligne commune. Il est aussi préférable en général, pour l'obtention d'une vitesse élevée de transfert de données, que la ligne commune soit du type à attente, c'est-à-dire une ligne commune ayant une structure qui permet la dissociation au cours du temps des demandes d'informations et des réponses qu'elles engendrent. L'attente des opérations permet la communication d'un certain nombre de dispositifs
relativement lents (par exemple des processeurs) avec d'au-
tres dispositifs lents (par exemple des blocs de mémoire
principale) sans que la largeur de bande de la ligne com-
mune, destinée à permettre des transferts à vitesse supé-
rieure à celle que permet un seul dispositif, ne soit pas réduite. Lorsque les demandes sont en attente, elles sont référencéesà l'aide de l'identité du demandeur et transmises au réceptionnaire à la première occasion. Lorsque le réceptionnaire répond à un moment ultérieur, la réponse
est référencée avec l'identité du demandeur. Aucun partici-
pant à la transaction ne sait que de nombreuses autres transactions impliquant d'autres demandeurs et d'autres réceptionnaires peuvent être intervenues entre la demande
et sa réponse.
Dans une installation à ordinateur contenant
plus d'un processeur, il est aussi nécessaire qu'un proces-
seur quelconque puisse réaliser un test atomique et établir des opérations sur une mémoire. Une manière évidente d'assurer l'atomicité est de mobiliser le trajet de liaison
à la mémoire, c'est-à-dire la ligne commune, pendant l'opé-
ration entière de lecture-modification-écriture. Dans une installation sensible aux performances, ceci est manifestement indésirable. Dans une ligne commune à attente, c'est-à-dire une ligne commune dans laquelle les cycles de lecture sont imbriqués avec d'autres opérations, le
trajet rejoignant la mémoire ne peut pas être immobilisé.
Le résultat est qu'il faut un procédé externe pour le verrouillage d'un emplacement de mémoire. Comme les mémoires selon l'invention sont imbriquées sur la base de blocs, il est possible de verrouiller la mémoirebloc à bloc. Etant
donné la taille du bloc de mémoire cependant, le verrouil-
lage de la mémoire sur des limites de quatre mégaoctets
est très indésirable.
La présente invention a donc essentiellement
pour objet la réalisation des installations de multitrai-
tement comprenant un nombre important de processeurs.
Elle concerne une telle installation de multi-
traitement dans laquelle les différents processeurs sont
couplés étroitement.
Elle concerne aussi une telle installation de multitraitement dans laquelle un utilisateur peut construireà un niveau convenable de prix ou de performances sans avoir à choisir parmi un nombre limité d'organes d'une
famille d'ordinateurs.
L'invention concerne aussi une installation de multitraitement qui a une fiabilité propre obtenue par utilisation d'un petit nombre de types de modules qui peuvent être mis hors-service sans affecter le reste de l'installation. Elle concerne aussi une telle installation de
multitraitement qui peut transférer des interruptions vec-
torisées sans immobilisation des lignes communes de données
et/ou d'adresses.
' Elle concerne aussi une telle installation de multitraitement qui comprend de multiples copies d'un
petit nombre de modules.
Elle concerne aussi une telle installation de multitraitement qui peut être étendue par interconnexion
à une autre installation analogue de multitraitement.
Elle concerne aussi une telle installation
de multitraitement qui comprend une ligne commune d'instal-
lation ayant des vitesses très élevées de transfert de données. Elle concerne aussi une telle installation de multitraitement qui comprend un système de mémoire qui peut exécuter un test atomique et établir des opérations
sans immobilisation de la ligne commune de l'installation.
L'installation de multitraitement selon l'inven-
tion comprend une ou plusieurs copies d'un certain nombre de modules distincts. Un module processeur contient au moins un processeur qui peut interagir indépendamment
avec les composants restants de l'installation. Une instal-
lation peut comprendre un certain nombre de ces modules.
L'installation gère une défaillance de l'un des modules ou d'un processeur de l'un des modules par suppression
logique du module ou du processeur de l'installation. Cha-
cun de ces modules processeurs comprend aussi une antémé-
moire qui conserve les données et instructions souvent référencées. L'antémémoire réduit beaucoup le temps d'accès aux données et, étant donné le plus petit nombre de demandes transmis par la ligne commune, le trafic de la ligne commune est notablement réduit. L'antémémoire peut être
d'un type transmettant les écritures ou non.
Les modules de mémoire qui sont tous partagés par tous les processeurs des modules processeurs, forment au moins un bloc indépendant de microplaquettes de mémoire
à accès direct. Chaque module supporte au moins une imbri-
cation entre les modules dans quatre directions, permettant ainsi aux modules de mémoire de travailler à la vitesse
maximale de la ligne commune.
L'élément clé de l'installation de multitrai-
tement est la ligne commune qui relie tous les modules de l'installation les uns aux autres. Cette ligne commune comprend en réalité quatre lignes communes séparées,
pour les données, les adresses, les vecteurs et les com-
mandes. Les communications par ces lignes communes sont du type à attente et les communications en parallèle et avec recouvrement dans le temps transmises le long des lignes communes permettent à la ligne commune de
l'installation d'entretenir des vitesses élevées de trans-
fert de données. Dans le mode de réalisation préféré, la ligne commune de l'installation permet une vitesse de
transfert de 100 mégaoctets par seconde.
Le module de commande de l'installation joue le rôle d'une chambre de compensation des communications, d'un coordinateur de ligne commune et d'un centre de diagnostic pour l'installation selon l'invention. C'est le module de commande de l'installation qui comprend les arbitres de ligne commune destinés aux lignes communes des vecteurs, des données et des adresses. Le module de commande de l'installation comporte aussi l'horloge de l'installation qui est utilisée par tous les modules de l'installation. L'arbitre de ligne commune d'adresses facilite la réduction des problèmes de dispute d'accès à
la ligne commune par une instruction de nouvel essai auto-
matique de toute demande de lecture ou d'écriture qui n'a pas été terminéeparce que le dispositif demandé ne pouvait pas accepter la demande. Une caractéristique empêchant l'encombrement empêche le blocage de la ligne commune
de données de lecture-écriture qui est partagée par exis-
tence d'un grand nombre d'opérations consécutives d'écriture
à partir des données revenant de la mémoire.
Une installation de multitraitement selon l'invention peut comprendre des modules à mémoire de masse-"Ethernet", ainsi qu'un adaptateur de ligne commune normalisée dans l'industrie telle qu'une ligne commune "VMEbus". L'installation de multitraitement peut être reliée à d'autres installations de multitraitement par l'intermédiaire d'un module d'interface de multitraitement
d'arrangement important. Ce module d'interface peut com-
prendre une antémémoire qui peut avoir un rôle analogue à celui de l'antémémoire incorporée à chacun des modules de traitement. Les arbitres de ligne commune traitent toutes les demandes arrivant par la ligne commune par l'intermédiaire du module d'interface de la même manière qu'une autre demande provenant d'un autre module connecté
à la ligne commune.
D'autres caractéristiques et avantages de
l'invention ressortiront mieux de la description qui
va suivre, faite en référence aux dessins- annexés sur lesquels:
la figure 1 est un diagramme synoptique repré-
sentant les divers éléments d'une installation de multi-
traitement selon la présente invention; la figure 2 est un diagramme synoptique des constituants d'un module processeur de l'installation de multitraitement représentéesur la figure 1; la figure 3 est un diagramme synoptique des divers constituants du module de mémoire de l'installation de multitraitement représentée sur la figure 1;
la figure 4 est un diagramme synoptique repré-
sentant les différents éléments du module de commande de l'installation de multitraitement de la figure 1;
la figure 5 est un diagramme synoptique repré-
sentant les divers éléments du module formant mémoire de masse-"Ethernet" de l'installation de multitraitement de la figure 1; la figure 6 est un diagramme synoptique d'une installation comprenant des installations de multitraitement du type représenté sur la figure 1; la figure 7 est un diagramme synoptique des constituants des modules d'interface utilisés pour la connexion de plusieurs installations de multitraitement, comme représenté sur la figure 6;
la figure 8 est un diagamme des temps repre-
sentant les opérations de lecture et d'écriture effectuées par la ligne commune de l'installation de multitraitement représentée sur la figure 1; la figure 9a représente schématiquement divers modules de l'installation selon l'invention utilisés dans un exemple de schéma d'arbitrage de ligne commune d'adresses de l'installation de multitraitement représentée sur la figure 1; la figure 9b représente schématiquement divers
modules de l'installation de multitraitement selon l'inven-
tion, utilisés dans un exemple de description du schéma
d'arbitrage pour la ligne commune de données- de l'instal-
lation de multitraitement de la figure 1; la figure 10 représente schématiquement un fond de papier de ligne commune d'un mode de réalisation préféré d'installation de multitraitement de la figure 1;
la figure 11 est un diagramme des temps corres-
pondant à un cycle de la ligne commune de l'installation de la figure 1 pendant laquelle la ligne est inactive;
la figure 12a est un diagramme des temps repre-
sentant un vecteur d'interruption dirigé transmis par un module de l'installation représentée sur la figure 1; la figure 12b est un diagramme des temps représentant un vecteur d'interruption de classe transmis par un module de l'installation de multitraitement de la figure 1; la figure 13 représente schématiquement les mots de données transmis avec un vecteur transmis par un module de l'installation de multitraitement représentée sur la figure 1; la figure 14 représente schématiquement les dix lignes de données utilisées dans le schéma d'arbitrage
de ligne commune vectorisée de l'installation de multi-
traitement de la figure 1; les figures 15 et 16 sont des diagrammes des temps représentant divers exemples de fonctionnement de ligne commune de l'installation de multitraitement de la figure 1;
la figure 17 est un schéma du circuit néces-
saire à la création des signaux de retard représentés dans le diagramme des temps de la figure 16; et la figure 18 est un schéma du circuit utilisé
dans le module de mémoire de l'installation de multitrai-
tement de la figure 1.
L'installation de multitraitement selon l'inven-
tion combine une puissance modulaire de traitement, une mémoire partagée fonctionnant à grande vitesse, et une
grande capacité de configuration d'entrée-sortie à un pro-
duit unique qui peut avoir une puissance allant des micro-
ordinateurs à celle d'unités centrales de traitement. Comme l'indique la figure 1, l'installation 10 de multitraitement comporte quatre types fondamentaux de modules, les modules processeurs 20, les modules 40 de mémoire partagée, un module 60 de commande de l'installation, et des modules
de mémoire de masse-"Ethernet".
Le module processeur 20 représenté sur la
figure 2 comprend de préférence deux processeurs indépen-
dants NS32032 de 10 MHz portant la référence 21 et une antémémoire partagée 22. Chaque module processeur 20 a une unité 24 de gestion de mémoire qui permet la création d'adresses physiques à 32 bits. Les deux processeurs se partagent aussi une ligne commune interne de données 23 à 32 bits et une ligne commune interne d'adresses 25 à 1 1 32 bits. La ligne commune interne 23 et la ligne commune
interne 25 sont séparées des processeurs 21 par des regis-
tres et émetteurs-récepteurs 26 de données et d'adresses et
elles sont séparées de la ligne commune 100 de l'installa-
tion à des émetteurs-récepteurs 27 de données et des
registres 28 d'adresses.
L'antémémoire 22 est destinée à réduire le temps d'accès à la mémoire par conservation des données et instructions souvent appelées, dans un bloc important (32 kilooctets) de mémoire à accès direct de type statique
à grande vitesse. Les données de la mémoire sont habituel-
lement écrites dans une antémémoire 22 chaque fois que des emplacements de la mémoire principale sont lus ou
écrits par l'un des deux processeurs dans un module proces-
seur double données 20. Un index des adresses des emplacements ainsi conservés est conservé dans un arrangement 30 de
mémoire d'étiquettes d'unités centrales de traitement.
Ensuite, tout effort visant à un accès de ces emplacements dans la mémoire principale 40 provoque l'accès des mêmes données dans l'antémémoire 22. Les accès à l'antémémoire ne créent pas les états d'attente des processeurs provoqués par les accès à la mémoire principale car le processeur faisant la demande n'a pas à entrer en compétition avec des processeurs d'autres modules processeurs 20 pour l'accès à la mémoire principale. Au contraire, les données sont simplement transmises par la ligne interne commune 23 du module processeur 20. Dans le mode de réalisation
préféré, le taux de réponse obtenue dépasse 90 % en moyenne.
L'antémémoire 22, pour un module processeur donné 20, reste au courant des modifications correspondantes effectuées dans la mémoire principale (à la suite d'écritures
par d'autres dispositifs de l'installation) parl'intermé-
diaire du circuit logique d'étiquetage de ligne commune.
Ce circuit logique analyse constamment la ligne commune 30 afin qu'il détermine l'activité de la mémoire pour d'autres modules de l'installation, mettant en oeuvre des adresses contenues dans l'antémémoire locale. Lors de la présence de ces écritures, le bit 34 de validité correspondant à cette adresse de l'antémémoire est commuté à un état non valable indiquant ainsi que les données de l'antémémoire
à cet emplacement ne correspondent plus à celles de l'empla-
cement associé de la mémoire principale. En conséquence, lorsqu'un processeur interne demande des données à cette adresse de l'antémémoire, il reconnaît que les données
associées à cette adresse ne sont pas valables. Le proces-
seur passe alors à la mémoire principale et non à l'anté-
mémoire 22 afin d'obtenir ces données. Cette action remet
à jour automatiquement l'inscription de l'antémémoire 22.
Comme la mémoire 32 d'étiquetage de ligne commune est indépendante de la mémoire 30 d'étiquetage d'unitéscentraies
et reproduit ces données, le maintien à jour de l'antémé-
moire par contrôle de la ligne commune peut être réalisé sans réduction de la vitesse d'accès à l'antémémoire par
les unités centrales.
L'antémémoire 22 peut être réalisée comme
une antémémoire transmettant les écritures ou non. Lors-
qu'unmodule processeur 20 ayant une antémémoire transmet-
tant les écritures demande une opération d'écriture, les données sont écrites à la fois dans l'antémémoire 22 du module -processeur demandeur 20 et à l'emplacement convenable de la mémoire principale 40. L'utilisation d'une antémémoire permettant l'écriture maintient un accord entre les données des antémémoires et de la mémoire principale.
Lorsqu'un module processeur 20 ayant une anté-
mémoire ne transmettant pas les écritures, demande une opération d'écriture, le module reçoit les données et les données ne sont écrites que dans l'antémémoire 22. La mémoire 32 d'étiquetage de ligne commune est remise à jour afin qu'elle indique que l'emplacement de la mémoire
principale correspondant à l'emplacement écrit dans l'anté-
mémoire ne contient plus de données valables. Ensuite, toute tentative d'accès à cet emplacement de la mémoire principale par un module processeur 20 autre que le module ayant l'antémémoire contenant les données valables, est
dirigée vers l'antémémoire ayant les données valables.
L'utilisation d'un cache ne transmettant pas l'écriture réduit le trafic dans la ligne commune 100 de l'installation puisque le nombre d'opérations d'écriture transmises par
les modules processeurs est réduit.
Sur la figure 2, la référence 22a désigne les bits de parité associés à l'antémémoire 22, la référence 22b désigne un -circuit générateur et vérificateur de parité des données, la référence 22c désigne un circuit logique de diagnostic et d'asservissement, et la référence 27a désigne un circuit de synchronisation et de commande, associé à des machines locales alors que la référence 32a
indique la vérification de parité.
Chaque unité centrale 21 transmet et reçoit des vecteurs par l'intermédiaire de la ligne 'commune 100
de l'installation (comme décrit dans la suite). En conse-
quence, une file d'attente 36 d'interruption du type premier entrépremier sorti est associée à chaque processeur 21 et conserve les vecteurs reçus jusqu'à ce qu'ils soient traités, et ils sont alors chargés dans la ligne commune interne de données 23 pendant les cycles de reconnaissance d'interruption de l'unité centrale. Les vecteurs provenant de la ligne commune 100 de l'installation ne sont pas reconnus ou écrits dans les files d'attente 36 lorsque
celles-ci sont pleines.
Comme l'indique la figure 3, chaque module 40
de mémoire partagée comprend de préférence deux blocs indé-
pendants 41 de mémoire. Les blocs peuvent comprendre des microplaquettes de mémoire à accès direct MOS de 256 ko, et la capacité totale de mémoire peut atteindre 4 mégaoctets. Chaque module entretient une imbrication quadridimensionnelle entre les cartes de mémoire de même dimension. Toutes les données conservées dans les modules de mémoire partagée sont mémorisées avec un code de correction d'erreur ECC. Des erreurs à un seul bit dans chaque mot de grande longueur (32 bits) subissent une correction ECC à chaque accès. Les erreurs à 2 bits sont détectées et reportées. En outre, le module 40 de mémoire partagée balaie la totalité de l'arrangement de la mémoire pendant les cycles de régénération et corrige toutes les erreurs à un seul bit qui sont trouvées. Comme un balayage complet de régénération a lieu toutes les 8 s environ (dans le cas de mémoire à accès direct de 256ko), le balayage ECC réduit la probabilité de l'apparition d'une erreur à 2 bits (qui ne peut pas être corrigée). Grâce à cette caractéristique ECC, deux microplaquettes de mémoire du module 40 de mémoire partagée peuvent présenter une panne (une dans chaque bloc) sans que les opérations
de l'installation ne s'arrêtent.
Chaque carte 40 de mémoire partagée porte aussi un microprocesseur 46 de diagnostic qui vérifie tous les blocs de mémoire lors de la mise sous tension et lorsque cela lui est demandé par le processeur de diagnostic
de l'installation du module 60 de commande de l'installa- tion. La carte 40 de mémoire partagée contient un registre 48 de commande
et d'état qui indique les erreurs à 1 et à
2 bits et les erreurs de parité de ligne commune au proces-
seur qui le demande.
Le module de commande 60 de l'installation a
les fonctions d'une chambre de compensation des communica-
tions, d'un coordinateur de ligne commune et d'un centre de diagnostic de l'installation de multitraitement 10 selon l'invention. Divers constituants de ce module 60 de commande
sont représentés schématiquement sur la figure 4.
Le processeur 62 de diagnostic met en oeuvre un microprocesseur NS32016 et a accès au 128 kilooctets d'une mémoire à accès direct dynamique incorporée ainsi qu'à 4 kilooctets d'une mémoire à accès direct statique
ayant une batterie de secours. Le processeur 62 de diagnos-
tic exécute les diagnostics de l'installation et l'initia-
lisation après la mise sous tension, comporte une horloge
permanente, et supervise le tableau de commande de l'instal-
lation ainsi que l'accès à la console et deux accès pour les utilisateurs locaux. Le processeur de diagnostic 62
a aussi la commande de la ligne commune 100 de l'installa-
tion et de tous les modules associés lorsqu'une erreur fatale existe. Lorsque l'erreur est créée par un constituant qui présente une panne dns l'un des modules de l'installa- tion, le module 60 peut interdire au module précédent l'accès à la ligne commune 100 lors de la remise en route ultérieure. Lors d'une telle remise en route, le module de commande peut informer le système d'exploitation que
le module doit être traité comme inactif.
Le processeur 62 de diagnostic comprend aussi l'interface 64 de ligne commune de l'installation qui permet au processeur 62 de diagnostic d'avoir accès à d'autres modules raccordés à la ligne commune 100 de l'installation, tout en permettant simultanément à d'autres modules de lire et d'écrire dans la mémoire partagée de commande-réponse du module de commande et dans les
organes de minutage 66 de cette mémoire.
Le circuit 66 de minutage et formant mémoire partagée est visible sur tous les modules actifs par
la ligne commune 100. Ce circuit ne déclenche pas cepen-
dant des demandes d'une manière active. Il contient des minuteries qui peuvent être utilisées pour la création des identifications des processus et des interruptions minutés. Il a aussi 32 kilooctets de mémoire statique à accès direct utilisés pour la communication de commande et de réponse entre le module 60 et d'autres modules
connectés à la ligne commune 100 de l'installation.
Comme décrit dans la suite, la ligne commune 100 est composée en réalité de plusieurs lignes communes indépendantes (adresses, données et vecteurs) qui peuvent transporter des informations non reliées dans chaque
cycle de la ligne commune. En conséquence, il est néces-
saire d'assurer un arbitrage de l'accès séparé à chaque ligne commune. Le circuit 68 d'arbitrage de ligne commune vectorielle, le circuit 70 d'arbitrage de ligne commune de données et le circuit 72 d'arbitrage de ligne,commune d'adresses qui, dans le mode de réalisation préféré,
sont contenus dans le module 60 de commande de l'installa-
tion, sont réalisés à cet effet.
Le module 60 de commande de l'installation comporte aussi l'horloge de l'installation ou horloge
principale 74 de l'installation demultitraitement 10. L'hor-
loge principale est répartie à partir du module de commande et toutes les lignes d'horloge de lignes communes de la ligne commune 100 sont pilotées par cette horloge 74. Le module 90 de mémoire de masse-"Ethernet" constitue des interfaces avec un réseau local "Ethernet" et avec une ligne commune 91 d'une interface de petits systèmes d'ordinateurs. Dans un mode de réalisation préféré d'installation de multitraitement selon l'invention, l'interface 98 portée par un module tel que 90 travaille avec des disques SMD et un appareil à bande magnétique d'un demi-pouce (12,7 mm). Des modules supplémentaires analogues au module 90 peuvent être montés et chacun peut créer un trajet de circulation de données correspondant
à des appareils supplémentaires à disques.
Comme l'indique la figure 5, le module 90 com-
prend quatre éléments fondamentaux, l'interface 92 de ligne commune de l'installation, l'interface 94 de réseau local, une unité centrale 96 du module et l'interface 98 avec un petit système d'ordinateur. L'interface 92 est partagée par les trois autres éléments. L'interface 94 comporte un organe de commande "Ethernet" et un circuit d'accès direct à la mémoire et une mémoire locale. Cette mémoire est utilisée pour l'émission et la réception de données, d'informations de commande et d'états, de statistiques de gestion de réseau et d'informations de diagnostics. Une partie quelconque de cette mémoire de
l'interface 94 peut être remplie par des données prove-
nant de la mémoire principale de multitraitement ou peut transférer des données à cette mémoire par l'intermédiaire
du circuit d'accès direct à la mémoire de l'interface 94.
L'unité centrale 96 est de préférence un microprocesseur NS32032 équipé d'une mémoire passive locale destinée à conserver un programme, d'une mémoire locale à accès direct destinée à conserver un programme et des données, de - registres locaux de commande-états, d'inter- ruptions vectorielles et de deux fenêtres dans la mémoire
de l'installation de multitraitement.
* L'interface 98 comporte un organe de commande de ligne commune, une pile du type premier rentré-premier sorti, un microprocesseur et un circuit d'accès direct à la mémoire. L'organe de commande transfère les données entre la ligne commune et la pile sous la commande de l'unité centrale. Le circuit d'accès direct à la mémoire peut transférer les données entre la mémoire principale de l'installation de multitraitement et la pile de données,
dans les deux sens.
Un module d'adaptation 99 de ligne commune VME peut aussi accepter des cartes de ligne commune VME très
diverses. Cet adaptateur correspond aux normes bien documen-
tées des lignes communes VME afin que les utilisateurs de l'installation de multitraitement puissent mettre en oeuvre de nouvelles fonctions sans qu'il soit nécessaire d'utiliser une interface coopérant directement avec la ligne commune 100 de l'installation. Grâce au circuit 99
d'adaptation, l'installation peut coopérer avec des inter-
faces d'entrée-sortie en temps réel ainsi qu'avec des
interfaces spécialisées, réalisées par les utilisateurs.
Chaque système 10 de multitraitement peut en outre être étendu par l'intermédiaire d'un module 200
d'interface de multitraitement à arrangement étendu.
Comme l'indique la figure 6, chaque installation 10 qui est représentée par une série de modules demandeurs et de modules de mémoire partagée, est reliée à d'autres installations analogues par un module 200 d'interface et une ligne commune 202 de communications. Une installation
comprenant de tels modules peut traiter jusqu'à seize ins-
tallations de multitraitement 10, dans sa réalisation actuelle. Comme l'indique la figure 7, chaque module 200 d'interface comporte une interface 204 de ligne commune
de l'installation et une interface 206 de ligne commune.
Le module 200 comporte aussi une antémémoire 208 qui réduit le temps d'accès aux mémoires d'une installation
autre que l'installation à laquelle appartient le demandeur.
Cette antémémoire réduit donc le nombre de demandes trans-
mises par la ligne commune 202 de communications puisque l'antémémoire 208 gère les demandes correspondant aux emplacements de mémoires auxquels l'accès est le plus fréquent. Une mémoire 210 d'étiquette d'antémémoire garde
un index d'adresses de mémoire principale à chaque empla-
cement de l'antémémoire ainsi que le numéro d'installation
contenant cette mémoire principale.
Un circuit 212 d'étiquetage de vérification
de mémoire de groupe garde un index pour tous les empla-
cements de mémoire résidant dans des modules 40 de mémoire de l'installation 10 de multitraitement qui ont été transmis
à d'autres installations interconnectées 10 de multitrai-
tement. Les demandes transmises par la ligne commune 10 et qui n'affectent pas les modules qui demandent et qui répondent et qui sont raccordés à d'autres lignes communes d'installation 100 qui sont interconnectées -sont filtrées
par le circuit 212 d'étiquetage.
On considère maintenant la ligne commune de l'installation qui porte la référence 100. Elle constitue
l'interconnexion principale des divers modules de l'instal-
lation de multitraitement selon l'invention. Cette ligne commune 100 relie les processeurs, les mémoires, les
périphériques à accès direct à la mémoire et les périphé-
riques asservis.
La ligne commune 100 est du type à attente ayant un débit de 100 mégaoctets par seconde. Elle comporte des lignes communes séparée 102 et 104 de données et
d'adresses dont les fonctionnements sont indépendants.
La ligne commune 100 est une ligne commune de type synchrone dans laquelle tous les transferts sont
réalisés en synchronisme avec l'horloge 108.
Comme l'indique la figure 1, la ligne commune comprend quatre lignes communes séparées: la ligne commune 102 de données, la ligne commune 104 d'adresses, la ligne commune 106 de vecteurs et la ligne commune 108 de commandes. Comme l'indique le dessin, la ligne
commune 102 de données peut transmettre 64 bits d'infor-
mation avec en plus des bits de parité et la ligne commune 104 d'adresses transmet 32 bits d'information avec des bits de parité. L'avantage de l'utilisation des trajets
parallèles pour les données et les adresses est l'élimina-
tion de la nécessité d'un multiplexage qui prend du temps.
En conséquence, la largeur de bande de la ligne commune est fortement accrue. L'arbitrage entre les lignes communes 102 et 104 n'est réparti que partiellement. La décision indiquant quel dispositif a la hiérarchie la plus élevée, parmi ceux qui demandent la ligne commune, est prise par un circuit central d'arbitrage et est transmise à l'organe élu de demande de ligne commune. La décision de la suppression d'un module particulier ou non, de sa propre initiative, du jeu actuel de demandeurs possibles est cependant prise par chaque module. Lorsqu'un module s'est vu attribuer l'accès à la ligne commune d'adresses, il transmet son adresse et le cas échéant des données par la ligne commune. Lorsqu'un module a eu l'accès à la ligne commune de données, il indique ses données dans
cette ligne commune.
Avant discussion des divers schémas d'arbitrage utilisés par la ligne commune 100, on décrit les divers cycles de transfert de données. Comme décrit précédemment, les transferts dans l'installation selon l'invention
sont réalisés sous forme de transfert avec attente, c'est-
à-dire que l'adresse du transfert des données lues est transmise au réceptionnaire et la ligne commune assure une imbrication d'autres opérations pendant que les données sont renvoyées en retour. En d'autres termes, la ligne commune n'attend pas le renvoi des données. Cependant, les adresses d'écriture sont toujours suivies, au cycle
suivant, par les données à écrire.
Divers modules peuvent demander l'utilisation de la ligne commune 104 d'adresses. Ces modules comprennent les modules processeurs 20, le module 90 d'entrée-sortie et le module 200 d'interface. Un module qui veut utiliser la ligne commune d'adresses transmet une demande qui est transmise par les lignes 108 de commande au module de commande d'installation qui contient les circuits d'arbitrage. Lorsque le circuit 72 d'arbitrage d'adresses donne l'accès à la ligne commune 104 d'adresses, l'adresse du module ainsi autorisé est placée dans la ligne commune
104 d'adresses pendant la période suivante d'horloge.
Lorsque l'opération demandée est une opération d'écriture, les données à écrire sont placées dans la ligne commune 102 de données dans la période d'horloge qui suit la période dans laquelle l'adresse est placée dans la ligne commune 104.
Divers modules peuvent aussi demander l'utili-
sation de la ligne commune 102 de données. Un module qui veut utiliser 'la ligne 102 transmet une demande par les lignes 108 au module 60 de commande d'installation qui contient le circuit 70 d'arbitrage de ligne commune de données. Un module demandant l'accès à la ligne commune 102 de données doit aussi contrôler la ligne commune
104 d'adresses afin qu'il détermine si les données d'écri-
ture sont sur le point d'être placées dans la ligne commune 102. Dans ce cas, le module demandeur retarde sa demande
et redemande ultérieurement la ligne commune de données.
La figure 8 représente un exemple de cycle
de synchronisation et de transfert tel que décrit précédem-
ment, avec deux lignes de commande, l'une reliée au circuit d'arbitrage de ligne commune de données et l'autre au circuit d'arbitrage de ligne commune d'adresses. Lorsqu'une demande provient d'un module demandeur (demandeur n 1), le circuit 72 d'arbitrage donne l'accès à la ligne 104 au module n 1 pendant une période d'horloge. Pendant la période suivante d'horloge, l'adresse affirmée du demandeur n 1 est placée dans la ligne commune d'adresses. Comme la demande n 1 est une opération d'écriture, le demandeur n 1 doit attendre plusieurs cycles d'horloge de ligne
commune avant le retour des données.
Pendant que leémodule demandeur n 1 place l'adresse voulue dans la ligne commune 104 d'adresses, le demandeur n 2 transmet une demande d'écriture et se voit accorder l'accès à la ligne commune d'adresses. L'adresse affirmée du demandeur n 2 est placée dans les lignes d'adresses pendant la période d'horloge suivante (période n 3 dans l'exemple), et comme une opération d'écriture est demandée, les données sont placées sur la ligne commune 102 pendant la période d'horloge qui suit la période pendant laquelle l'adresse est placée sur la ligne commune d'adresses
(période n 4). Pendant une opération d'écriture, l'arbi-
trage de l'accès à la ligne commune 102 de données n'est pas nécessaire. La demande n 2 est ainsi terminée. Quelques périodes d'horloge plus tard, les données correspondant à la demande n 1 sont prêtes à être renvoyées. A ce moment, le circuit 70 d'arbitrage doit donner accès à la ligne commune 102 de données au module qui doit renvoyer
ces données. Dans cet exemple, l'accès est accordé immédia-
tement et, dans la période suivante d'horloge, les données sont placées sur la ligne commune 102 et la- demande n 1 est terminée. Lorsque la ligne commune 102 est occupée, le module renvoyant les données doit attendre jusqu'à ce
que la ligne commune lui soit accordée.
Lorsque, dans l'exemple qui précède et pour
une raison quelconque, un grand nombre de demandesd'écri-
tures se sont vues accorder l'accès aux lignes communes, les données de lecture peuvent être bloquées et ne peuvent donc pas- revenir vers le demandeur. Un signal spécial de commande de déblocage L destiné à la résolution de ce problème qui pourrait ralentir le traitement, est transmis par la ligne commune afin qu'il réserve celle-ci après une certaine période d'attente d'accès à la ligne commune de données (par exemple quatre cycles de la ligne commune). Lorsqu'un tel signal de déblocage est présent, la ligne commune d'adresse cesse de prendre des demandes et libère ainsi l'accès à la ligne commune de données pendant quelques périodes d'horloge. En outre, aucune nouvelle demande d'accès à la ligne commune de données n'est enregistrée. Le déblocage est supprimé lorsque les données en attente ont eu accès à la ligne commune de données. La ligne commune 100 de l'installation, étant donné qu'elle est du type en attente, permet à plusieurs demandes d'attendre l'accès à un seul bloc de mémoire. Les mémoires ne peuvent pas satisfaire plus de deux demandes (une en cours et une en attente) si bien qu'il est possible qu'un bloc de mémoire 40 soit occupé et ne puisse pas accepter l'adresse (et les données d'écriture lorsqu'un cycle d'écriture est demandé). Lorsque cette situation se présente, le bloc de mémoire refuse l'adresse et transmet un signal de nouvel essai qui provoque un nouvelle essai
de l'adresse quatre cycles plus tard de la ligne commune.
Lorsqu'un module demandeur quelconque détecte qu'une adresse a été refusée, par exemple parce que le bloc de mémoire était occupé, il n'enregistre pas de nouvelles demandes jusqu à ce que la demande précédente ait été satisfaite. Cette.opération empêche le gel d'un demandeur pendant une longue période car, entre les nouveaux essais, d'autres modules transmettent des demandes et obtiennent l'accès à l'emplacement que le module demandeur
essaie aussi d'atteindre.
Comme décrit précédemment, la ligne commune 104 d'adresses et la ligne commune 102 de données ont chacune un circuit indépendant d'arbitrage qui contrôle les demandes de transfert de données. Lorsqu'une demande
est enregistrée, le circuit d'arbitrage utilise un algo-
rithme qui assure l'équité et permet l'accès à un demandeur.
Le circuit d'arbitrage réalise cette opération par trans-
mission d'un accord au module choisi. Celui-ci indique
alors l'adresse ou transmet les données à la ligne commune.
Le circuit 72 d'arbitrage de ligne commune d'adresses assure l'équité de l'accès à la ligne commune par mise
en oeuvre de l'algorithme suivant.
1.. Tous les modules non-processeurs (par exemple le module de commande de l'installation ou les modules adaptateurs de ligne commune) peuvent avoir priorité sur les modules processeurs. Ces modules forment un groupe hiérarchique A. Lorsque l'un quelconque de ces dispositifs demande l'accès à la ligne commune 104 d'adresses, cet accès lui est accordé malgré les demandes d'un module
du groupe hiérarchique B, défini dans la suite.
2. Le groupe hiérarchique B est formé de tous les modules processeurs. Un module du groupe B se voit accordé un transfert d'adresse lorsqu'il constitue le dispositif du groupe demandant un transfert qui a l'ordre hiérarchique le plus élevé, et lorsqu'un dispositif
du groupe hiérarchique A n'a pas une demande en attente.
3. Chaque fois qu'un dispositif a accès à la ligne commune, le dispositif logiquement suivant prend
l'ordre hiérarchique le plus élevé.
Le circuit 72 d'arbitrage de ligne commune d'adresses comprend un mécanisme centralisé d'arbitrage et un mécanisme réparti de commande. Le mécanisme centralisé d'arbitrage accepte les demandes et transmet des accords d'après. un schéma hiérarchique tournant mettant en oeuvre
des numéros de tranches de modules. Dans le mode de réalisa-
tion préféré, le circuit central d'arbitrage est placé
dans le module 60 de commande. Un exemple de schéma d'arbi-
trage de ligne commune d'adresses est décrit dans la suite en référence à la figure 9a. L'installation de la figure 9a contient huit modules demandeurs. On suppose que la ligne commune a été attribuée d'abord au module n 1, et le module n 2 a alors l'ordre hiérarchique le plus élevé. Si les modules n 0 et n 5 demandent tous deux l'accès à la ligne commune, le module n 5 se voit accorder l'accès puisqu'il représente le module ayant l'ordre hiérarchique le plus élevé après le module n 2 qui demande l'accès. Lorsque le module n 5 a eu accès, le module
ayant l'ordre hiérarchique le plus élevé est alors le mo-
dule n 6.
Le mécanisme réparti de commande comprend un séquenceur d'état placé sur chaque module et qui détermine si un module peut porter une demande de ligne commune d'adresses 104. Les demandes de ligne commune d'adresses sont modifiées par les modules demandeurs lorsqu'il existe
l'une des conditions suivantes.
1. Lorsqu'un module du groupe hiérarchique A transmet une demande au circuit central d'arbitrage d'adresses, il peut placer le signal de priorité L dans la ligne commune 108 de commande afin que tous les modules du groupe B suppriment leurs demandes, si bien que l'accès d'ordre hiérarchique plus élevé est donné aux modules du groupe A. 2. Tous les demandeurs suspendent les demandes d'écriture et les demandes de lecture-modification-écriture tant que les signaux de cycles d'attente sont transmis
par la ligne commune de commandes 108.
3. Lorsqu'un module de mémoire ne peut pas avoir accès à la ligne commune de données afin qu'il renvoie des données demandées pendant un nombre spécifié de cycles d'horloge de la ligne commune, il introduit
le signal de déblocage par la ligne commune 108 de commande.
Les demandeurs suspendent alors leurs demandes d'écriture
jusqu'à ce que le signal de déblocage ne soit plus présent.
4. Lorsqu'un bloc de mémoire auquel un ordre de transfert de données est transmis est occupé, la mémoire ne place pas le signal d'acceptation dans la ligne commune
108, notifiant ainsi au demandeur qu'il doit réessayer ulté-
rieurement de transmettre sa demande. Les modules deman-
deurs qui ne demandent pas l'accès à la ligne commune à ce moment ne peuvent pas placer une demande tant que le module qui a fait un nouvel essai est en liaison avec le bloc de mémoire, si bien que -l'ensemble des demandeurs actuels est gelé. Les demandes du jeu gelé continuent à avoir accès à la ligne commune avec arbitrage et ordre hiérarchique tournant, à l'exception du fait que le module qui a fait un nouvelle essai a un ordre hiérarchique plus élevé chaque fois qu'il transmet sa demande. La demande de ce module qui fait un nouvel essai n'affecte pas l'ordre hiérarchique tournant des autres demandes du jeu gelé. Les demandes sont dégelées lorsque les modules formant un nouvel essai ont été convenablement traités par le bloc
de mémoire.
L'accès à la ligne commune de données est
attribué sur la base de l'algorithme suivant.
1. Lorsqu'un cycle d'écriture est en cours dans la ligne commune 104 d'adresses, la ligne commune 102 de données transfère toujours les données d'écriture pendant le cycle suivant de la ligne commune de données, indépendamment d'autres demandes en attente pour cette
ligne commune.
2. Lorsqu'aucun transfert de données d'écriture n'est en attente, le dispositif d'ordre hiérarchique le plus élevé demandant la ligne commune pour assurer un transfert de données de lecture, se voit attribuer le transfert de données. L'ordre hiérarchique logique des dispositifs qui peuvent demander un transfert de données
est le suivant: le module de commande, le module d'adapta-
tion de ligne commune, le module d'interface de multitrai-
tement dans un arrangement élargi, et les modules de mémoire. 3. L'ordre hiérarchique dans la ligne commune
de données correspond à une stricte priorité numérique.
Un exemple de schéma d'arbitrage de ligne
commune de données est décrit en référence à la figure 9b.
Dans le mode de réalisation représenté sur la figure 9b, l'installation comprend un module d'adaptation A de ligne commune, un module d'interface B de multitraitement d'arrangement élargi, un module C de commande et trois modules D, E et F de mémoire. Dans l'exemple, le dernier module auquel l'accès est accordé est le module de mémoire E. Lorsqu'aucun transfert de données d'écriture n'est en attente et lorsque le module d'interface B et le module de mémoire F demandent accès à la ligne commune,
l'accès est donné au module B étant donné la stricte prio-
rité numérique du schéma d'arbitrage. Lorsque le module qui fait la demande n'est pas le module B, mais le module de mémoire D ou F, l'accès est donné au module de mémoire D, bien qu'il puisse avoir eu accès à la ligne commune de données plus récemment que le module de mémoire F. Comme décrit précédemment, l'installation 1U de multitraitement selon l'invention met en oeuvre une antémémoire répartie. Toutes les antémémoires 22 surveillent certaines opérations de la ligne commune et surveillent les accès à leur mémoire d'étiquette de ligne commune
32 afin que les données se correspondent entre les antémé-
moires 22 et la mémoire principale 40. Lorsqu'un tel accès est déterminé, le circuit logique de l'unité centrale remet à jour la mémoire locale 30. Cependant, les critères de l'installation nécessitent que de tels accès soient minimaux et il est possible que plusieurs accès aux mémoires 32 provoquent une saturation. Dans ce cas, l'unité centrale doit transmettre le signal de cycle d'attente au circuit d'arbitrage de ligne commune d'adresses afin que les opérations d'écriture et de lecture-modificationécriture soient repoussées jusqu'à à un moment ou la saturation
a disparu.
Toutes les données transférées par la ligne commune 100 de l'installation sont accompagnées d'une
étiquette qui identifie exactement le demandeur de l'infor-
mation afin que les données puissent être renvoyées.
Cette information est contenue dans les lignes d'identi-
fication d'adresses et de données ID. L'information qui est transmise comprend un numéro de tranche physique à 4 bits et 2 bits réservés. Ces bits sont créés par le demandeur et sont mémorisés par le dispositif adressé
afin qu'ils soient renvoyés vers les données demandées.
Cette information est utilisée pour deux raisons: le numéro de tranche physique identifie celui qui doit recevoir les
données parmi tous les modules d'une installation locale.
(Le terme "local" indique que l'installation représente une seule installation de multitraitement reliée à une seule ligne commune et ne comprenant pas d'installation supplémentaire connectée par l'intermédiaire d'un module d'interface de multitraitement d'arrangement étendu). Les bits réservés ne sont pas utilisés par un module quelconque de mémoire et ils sont simplement renvoyés au demandeur sans être modifiés. Ceci permet au demandeur d'étiqueter les données de lecture revenant de la mémoire afin qu'il les identifie d'une manière originale (par exemple un module d'interface peut les demander pour identifier celui auquel les données sont renvoyées. Un module ayant plusieurs processeurs peut utiliser aussi ces bits afin qu'il identifie le processeur qui a transmis la demande). Les cycles de lecture transmis par la ligne commune 100 commencent par mise d'un signal de demande de ligne commune. Le circuit 74 d'arbitrage reconnaît la demande et, lorsque l'ordre hiérarchique est convenable, il sélectionne le module. L'adresse peut être acceptée par le module adressé ou ce dernier peut indiquer qu'il est occupé et demander que l'accès soit demandé à nouveau quatre cycles plus tard de la ligne commune. Lorsque l'emplacement adressé n'existe pas, l'installation peut rejeter l'adresse. En outre, en présence d'une carte d'interface de multitraitement d'arrangement étendu, l'adresse peut être acceptée par la carte d'interface
et transmise à une autre installation locale.
Les cycles d'écriture commencent aussi par apparition du signal de demande de ligne commune. Le
circuit 74 d'arbitrage de ligne commune d'adresses recon-
naît la demande et, lorsque l'ordre hiérarchique est convenable, ilsélectionne le module convenable. Les données d'écriture sont toujours transférées dans le cycle de la ligne commune qui suit immédiatement l'adresse, donnant une indication sur le nombre d'octets des mots longs à écrire. Comme dans le cas du cycle de lecture, l'adresse peut être acceptée par le module adressé ou ce dernier peut indiquer qu'il est occupé et demander que l'accès soit réessayé quatre cycles ultérieurement. En outre, comme dans le cas d'un cycle de lecture, l'adresse
peut être rejetée par l'installation parce que l'empla-
cement adressé n'existe pas. Contrairement aux cycles
de lecture, les données d'écriture suivent toujours l'adres-
se, que celle-ci soit acceptée ou non. En outre, lorsqu'un module d'interface de multitraitement d'arrangement étendu est connecté à l'installation, l'adresse et les données d'écriture peuvent être acceptées par le module d'interface
et transmises à une autre installation locale.
Dans le mode de réalisation considéré d'instal-
lation de multitraitement selon l'invention, les cycles de la ligne commune ont une durée de 80 ns. Ce temps est suffisant pour le transfert de l'information nécessaire concernant un cycle de la ligne commune. Cependant, ce temps ne suffit pas pour qu'un module quelconque traite l'information pendant ce cycle. En conséquence, la ligne commune 100 de l'installation présente un recouvrement d'un niveau. En d'autres termes, un cycle transfère des données et le second cycle permet la prise de décision
sur ce qui doit être exécuté avec les données.
L'opération de transfert de deux longs mots (64 bits) dans un cycle de données est appelée un double cycle de pompage. Un tel cycle est demandé par un demandeur lorsque l'adresse est transférée par mise d'un signal dans la ligne de demande de double pompage dans la ligne commune 108. L'adresse d'un double pompage doit se trouver à une limite d'un double long mot, c'est-à-dire que les
trois derniers bits de l'adresse doivent être des zéros.
Une demande de double pompage aligné ne portant pas sur des longs mots donne des résultats imprévisibles. Les données résultant d'une demande de lecture de double pompage sont transmises dans le même cycle de données par la ligne
commune qui a une largeur de 64 bits. Cependant, un dispo-
sitif adressé peut ne pas satisfaire la demande de double pompage et peut n'accorder qu'un transfert unique. Ce
fait est indiquer au demandeur de données de lecture lors-
que les données lui sont renvoyées. A ce moment, un signal NDPMP est présent et indique au demandeur que la demande de double pompage est en cours de satisfaction ou que seul le long mot d'ordre inférieur est renvoyé. Un demandeur qui souhaite exécuter uniquement une opération de double pompage peut donner un signal convenable à la ligne de double pompage de la ligne commune 108. La présence de
ce signal impose un transfert de 64 bits et le renvoi ulté-
rieur des données, sans présence du signal NDPMP.
Les signaux de ligne commune et les diverses fonctions assurées par eux (dont certaines ont déjà été
décrites) sont indiqués dans la suite. Dans la description
qui suit, les signaux décrits sont utilisés dans une configuration d'installation de multitraitement 10 selon l'invention du type représenté sur la figure 10. Les modules demandeurs peuvent être des modules processeurs 20 ou des modules 90 de mémoire de masse-"Ethernet". En outre, lorsqu'on se réfère à la création d'une parité,- on désigne la définition suivante: le bit de parité créé donne toujours la parité qu'il décrit, c'est-à-dire- qu'un bit de parité impaire est établi lorsque le nombre de uns dans le champ protégé est pair donnant ainsi une parité impaire
ou un nombre impair de uns.
ADD 02 - ADD 31: ces lignes transportent l'adresse de
l'emplacement en cours d'adressage par le demandeur.
Les opérations de lecture sont toujours réalisées sur des mots longs si bien que des bits zéro et un ne sont pas nécessaires. Les signaux BYTE n L et WORDSEL remplacent les bits zéro et un pendant les cycles d'écriture. L'adresse transmise par ces lignes est de niveau élevé, c'est-à-dire
que la ligne commune ne subit pas une inversion.
ADDP 0 - ADDP 3: il s'agit des bits de parité des lignes d'adresses, l'algorithme suivant de parité est utilisé: ADDP 0 est de parité impaire pour CYCTYPE 0-1, ADD 02-07
ADDP 1 " " " ADD 08- 15
ADDP 2 " " " ADD 16 - 23
ADDP 3 " " " ADD 24 - 31
DATA 00 - DATA 63: ces lignes transportent les données qui sont transférées entre les dispositifs par la ligne commune
, pour tous les emplacements des mots longs. DATA 00 -
DATA 31 transportent 32 bits de données. Le bit le moins significatif est DATA 00 et le bit le plus significatif est ' DATA 31. DATA 32 - DATA 63 contiennent 32 bits de données de tous les emplacements impairs de mots longs. Le bit le moins significatif est DATA 32 et le plus significatif est
DATA 63.
DATAP 0 - 7: ces bits assurent la parité dans les lignes de données. DATAP 0 est le bit de parité paire pour l'octet des données DATA 00 - 07 alors que DATAP 7 est le bit de parité paire de l'octet placé en DATA 56 63. Une parité d'octet seulement doit être transmise dans le cas d'un mot long lorsqu'un seul mot long est transféré. En conséquence, un module de mémoire ne doit pas vérifier la parité sur un
mot long qui n'est pas en cours d'écriture.
ABUSREQ n L: ce signal est introduit par un demandeur n
(n étant compris entre 0 et le nombre de registres dispo-
nibles qui est égal à dix dans le mode de réalisation pré-
féré) lorsqu'il veut demander un transfert d'adresse. Les six tranches du demandeur font apparaître les signaux ABUSREQ 0 - 9 L respectivement. Le circuit 99 d'adaptation introduit le signal ABUSREQ 10 L. Le module de commande 60 n'a pas à donner un signal de ligne commune puisqu'il contient le circuit d'arbitrage de ligne commune. Ce signal doit être introduit en synchronisme avec le signal
d'horloge de ligne commune.
DBUSREQ n L: ce signal est introduit par un dispositif n (n, dans le mode de réalisation préféré, étant compris entre 0 et 9) qui veut renvoyer des données par la ligne commune de données. Les modules de mémoire 0 - 7 créent les
signaux DBUSREQ 0 - 7 L respectivement. Le circuit 99 d'adap-
tation transmet un signal DBUSREQ 8 L. Le module 200
d'interface de multitraitement d'arrangement élargi intro-
duit le signal DBUSREQ 9 L. Le module de commande 60 n'a pas à indiquer un signal de ligne commune puisqu'il contient le circuit d'arbitrage de ligne commune. Ce signal doit être introduit en synchronisme avec l'horloge de ligne commune. CYCTYPE 0 - 3:ces signaux sont commandés par le demandeur afin qu'ils apparaissent dans la ligne commune 100 avec l'adresse, et ils déterminent le type de cycle qu'exécute actuellement la ligne commune 104 d'adresses. Les codes CYCTYPE suivants sont utilisés:
CYCTYPE 0 1 2 3
0 0 X X indiquent la lecture d'un cycle atomi-
que lecture-modification-écriture 0 1 0 1 indiquent un cycle privé d'accès de lecture 0 1 X 0 réservés pour une attribution ultérieure 0 1 1 1 indiquent un cycle d'accès public de lecture 1 0 1 1 indiquent un cycle invalidé d'écriture 1 0 0 1 cycle modifié d'écriture 1 0 1 0 cycle de réponse d'écriture 1 0 0 0 réservés pour attribution future 1 1 X X indiquent qu'il n'y a pas d'adresse valable actuellement sur la ligne commune X = n'a pas d'importance
Il faut noter que tout dispositif qui peut ren-
voyer des données par la ligne commune 100 est responsable du contrôle des lignes CYCTYPE afin qu'il indique qu'une adresse d'écriture est en cours de transfert sur la ligne commune d'adresses. Lorsque cet événement ce produit, le demandeur transmet les données d'écriture dans la tranche suivante de ligne commune de données. En conséquence, un dispositif quelconque envisageant de renvoyer des données pendant la tranche temporelle suivant un transfert d'adresse d'écriture doit retarder l'opération d'un cycle
supplémentaire de la ligne commune de données.
BYTE n L: ces signaux sont introduits pendant tous les cycles de ligne commune (lecture et écriture) afin qu'ils indiquent quels octets sont valables parmi les différents octets. BYTE 0 - 3 L: s'appliquent à l'octet 0 à 3 respectivement
du mot long choisi par WORDSEL.
WORDSEL H: ce signal détermine à quel signal BYTE n L de mot long s'applique l'opération. Lorsqu'il est annulé, ce signal indique que le long mot choisi est le mot long des lignes DATA 00 - 31. Lorsque WORDSEL est présent, le mot
long des données DATA 32 - 63 est sélectionné.
BYTEP: ce signal représente une parité impaire sur BYTE n L,
WORDSEL, FDPMP L, REQDPMP L et CYCTYPE 2.
NOCACHE L: ce signal est introduit par tous les dispositifs renvoyant des données de lecture qui ne doivent pas être introduites dans l'antémémoire. Ces données peuvent provenir d'un emplacement quelconque qui peut être manipulé sans
activité visible de la ligne commune lors du contrôle BTAG.
Des exemples de tels emplacements sont les mémoires à deux
accès, les registres d'un module quelconque ou les empla-
cements qui se trouvent en réalité sur une autre ligne commune et qui sont vus uniquement à travers un circuit
d'adaptation de ligne commune.
PRIORITY L: ce signal est introduit par un demandeur qui n'est pas un dispositif de classe B, c'est-à-dire tout
demandeur autre qu'une unité centrale de traitement.
Ceci permet à ces demandeurs tels que des modules de mémoire de masse"Ethernet" (EMS), le module 60 de commande et le circuit 99 d'adaptation, d'avoir accès rapidement à
la ligne commune 100.
MEMORY ACCEPTED L: ce signal est introduit par un disposi-
tif à mémoire afin qu'il indique qu'il a décodé convena-
blement l'adresse ADD 02 - ADD 31, et que la demande
d'un transfert de données a été acceptée.
MEMORY BYPASS L: ce signal est introduit par une antémé-
moire ne permettant pas une écriture et qui souhaite
répondre à l'adresse actuelle transmise par la ligne com-
mune 104. Ce signal, lorsqu'il est présent, supprime
l'action du signal MEMORY ACCEPTED L. La mémoire fait avor-
ter tout transfert prévu en réponse à cette adresse.
CACHE ACCEPTED L: ce signal est introduit uniquement lors-
que le signal MEMORY BYPASS L est présent. Lorsqu'il est
lui-même présent, il indique qu'une antémémoire ne permet-
tant pas la transmission d'une écriture a accepté l'adresse. WRITE DATA PARITY L: ce signal est présent un cycle de la ligne commune après la validité du signal MEMORY ACCEPTED L (pour un transfert de données d'écriture). Le signal indique si les données d'écriture ont été transférées
de manière satisfaisante ou non.
REQDPMP L: ce signal est introduit par le demandeur afin 15. qu'il indique que le cycle demandé de ligne commune est une demande à double pompage. Il faut noter que l'adresse de toutes les demandes de double pompage doit être des
mots longs doubles alignés o les résultats sont impré-
visibles. DPMP L: ce signal peut être introduit par le destinataire d'une demande de double pompage. Il est présent lorsque la demande de double pompage qui a été transmise est en cours d'exécution sous forme d'une demande de double pompage. FORCE DPMP REQ L: ce signal est introduit par le demandeur afin qu'il oblige le module adressé de mémoire de répondre à la demande sous forme d'un double pompage. Lorsqu'un bloc du module de mémoire est occupé, la demande est
refaite ultérieurement.
STALL CYCLE L: ce signal peut être introduit par un demandeur quelconque à un moment quelconque à la suite d'un débordement de la pile BTAG du type premier entré-premier sorti ou à la suite de la détection d'une erreur de parité d'adresse de ligne commune. Lorsque le signal est présent, le module de mémoire doit faire avorter la réponse reçue qui a provoqué cette condition de blocage et les demandeurs
doivent suspendre les demandes d'écriture et de lecture-
modification-écriture. UNJAM L: ce signal est introduit lorsqu'une mémoire n'a pas pu avoir accès à la ligne commune 112 de données
pendant un nombre spécifié de cycles de ligne commune.
Lorsqu'il est présent, ce signal - empêche l'enregistrement de nouvelles demandes d'accès à la ligne commune 102, - suspend l'attribution de la ligne commune 104 par le circuit 72 d'arbitrage du module 60
de commande de l'installation.
ADDID 0 - 5: ces signaux sont présents avec l'adresse lorsqu'ils sont transmis par le demandeur choisi. Ils indiquent au module adressé quel module demandeur exécute le transfert. Le signal ADDID comprend deux champs, le
champ de numéro de tranche physique et deux bits réservés.
Le schéma suivant est utilisé pour la détermination du champ de tranche physique ADDID 0 - 3: Oxxx - 1001 module demandeur 0 - 9 identifié par le numéro de tranche 1100 module de commande du système 1101 circuit d'adaptation de - ligne commune. ADDID 4 et 5 sont réservés afin qu'ils soient utilisés par le demandeur. La mémoire renvoie ces bits avec les données demandées et ces bits ne sont pas modifiés. Ceci permet aux demandeurs d'étiqueter les données qu'ils ont renvoyées
avec deux bits quelconques d'information.
ADDIDP: ce bit crée une parité paire sur ADDID 0-5.
DESTSEL 0 - 5: ces signaux sont introduits par un dispo-
sitif qui transmet des données de lecture demandées anté-
rieurement par la ligne commune de données. Il s'agit simplement d'une copie des 'signaux ADDID 0 - 5 utilisés pendant le transfert de l'adresse au dispositif. Ils
indiquent quel demandeur voit les données demandées ren-
voyées sur la ligne commune et comprend deux champs, le
champ de numéro de tranche physique et deux bits réservés.
Le schéma suivant est utilisé pour la détermination du champ de tranche physique DESTSEL 0 - 3: 0xxx - 1001 module demandeur 0 - 9 identifié par un numéro de tranche 1100 module de commande de l'installation 1101 circuit d'adaptation de ligne commune 1111 pas de données valables de lecture sur la ligne commune (des données valables d'écriture peuvent être
présentes dans la ligne commune).
DESTSEL 4 et 5 sont réservés pour être utilisés par le demandeur. La mémoire renvoie ces bits avec les données demandées et ces bits ne sont pas modifiés. Ceci permet aux demandeurs d'étiqueter les données qu'ils ont renvoyées avec deux bits quelconques d'information. Lorsque les
données transférées sont des données d'écriture, le deman-
deur fait passer les lignes DESTSEL à un lorsque l'antémé-
moire du demandeur est une antémémoire permettant la transmission d'une écriture. Lorsqu'un demandeur veut des données conservées dans une antémémoire ne transmettant pas une écriture, DESTSEL contient le signal ADDID du demandeur des données. L'état terminé ne contenant que des uns indique à tous les autres modules qu'il s'agit de données d'écriture et qu'elles doivent être ignorées
*par tous les modules demandeurs.
DESTSELP: ce signal transmet un signal de parité impaire aux bits 0-5 de DESTSEL L, DPMP L et NOCACHE L. SLOTID 0 - 3: ces quatre signaux sont codés uniquement dans chaque tranche sur la ligne commune 100. Ceci permet à un module de lire ces lignes et détermine dans quelle
tranche se trouve le module.
BCLOCK n L: ce signal assure la synchronisation fondamen-
tale de la ligne commune. Dans le mode de réalisation pré-
féré, l'impulsion d'horloge peut avoir une durée aussi faible que 80 ms avec un temps de maintien au niveau élevé compris entre 22 et 33 ms. Le signal BCLOCK n L est réparti sur six lignes qui sont raccordées de la manière suivante: BCLOCK 1 L module de mémoire 0 - 2 BCLOCK 2 L module de mémoire 3 - 5 BCLOCK 3 L module de mémoire 6, 7, tranche 0 de demandeur, SCM BCLOCK 4 L tranche de demandeur 1 - 4 BCLOCK 5 L tranche de demandeur 5 - 7 BCLOCK 6 L tranche- de demandeur 8, 9, circuit d'adaptation de ligne commune Il faut noter que toutes les lignes commandent trois modules, sauf les lignes BCLOCK 3 et 4. Dans la configuration considérée, ces deux lignes commandent des longueurs plus faibles de fond de panier, et ont
ainsi une charge d'un module supplémentaire.
DCOK H: ce signal est supprimé par le module de commande et l'alimentation afin que tous les circuits matériel soient remis à zéro, sauf le module considéré. Tout l'état de l'installation est perdu lorsque le signal DCOK H est supprimé. Ceci est réalisé habituellement après la mise sous tension, après une panne de l'installation
ne permettant pas un rétablissement ou lorsque l'alimenta-
tion continue sort des plages de tolérances.
POWERFAIL L: ce signal est introduit par l'alimentation.
Il indique que le courant alternatif manque et qu'il reste
au moins 3 ms d'énergie continue convenable avant suppres-
sion du signal DCOK H. La matrice suivante. indique les combinaisons possibles des signaux POWERFAIL L et DCOK H:
DCOK H POWERFAIL L INDICATION
présent présent panne d'énergie présent absent fonctionnement normal absent présent remise à zéro à l'allumage absent absent remise à zéro de logiciel SCMNMI L: ce signal est introduit par un module quelconque
dans l'installation, lorsqu'il veut provoquer une interrup-
tion non masquable pour le processeur de diagnostic, dans le module 60 de commande. Lorsqu'il est présent, tous les modules gèlent leurs interfaces de ligne commune et commandent des interruptions locales non masquables. Ce
signal est en synchronisme avec le signal BCLOCK de l'ins-
tallation. Il doit être transmis par tout module au flanc antérieur du signal ENDATA et doit être maintenu pendant
au moins un cycle principal. Tous les modules échantil-
lonnent SCMNMI L au flanc antérieur du signal CKDATA.
UNFREEZE n L: ce signal est introduit par le processeur 62 de diagnostic du module de commande afin qu'il dégèle l'interface de ligne commune d'un module demandeur. Bien que la transmission de ce signal permette le fonctionnement de l'interface du module choisi, il laisse à l'état inhibé l'antémémoire de données, la vérification de parité de ligne commune et le circuit logique de blocage. Ce circuit logique est remis à l'état de fonctionnement lorsque le module 60 de commande cesse de transmettre le signal UNFREEZE L. Ceci peut être contrôlé par un module demandeur ayant une ligne UNFREEZE L qui peut être lue dans une console locale. Il existe onze lignes de signaux UNFREEZE L, une pour chaque demandeur, mis à part le module de commande lui-même.
TESTRACK L: ce signal n'est pas transmis dans l'instal-
lation de multitraitement. Chaque module doit avoir une résistance élévatrice sur cette ligne. Lorsque le module est placé dans le châssis d'essai de déverminage, le
connecteur qui est enfiché met cette broche à la masse.
Ceci permet au module de déterminer dans quel mode il doit
effectuer son essai automatique.
ADDSEL n L: ces signaux (n est compris entre 0 et 10) sont transmis par le circuit d'arbitrage de ligne commune d'adresses afin qu'il sélectionne le module suivant qui est sélectionné afin que son adresse soit introduite dans la ligne commune d'adresses. Il faut noter que le module 60 de commande n'a pas une ligne d'attribution car il contient le circuit d'arbitrage. Ces signaux ne sont pas codés, et il existe une seule ligne d'attribution par demandeur. DATASEL n L: l'un de ces signaux est transmis par le circuit d'arbitrage de ligne commune de données afin que le module suivant soit sélectionné pour la transmission de ces données par la ligne commune de données. Chacune des lignes DATASEL L est connectée à un module. DATASEL 0-7
sont connectés aux modules de mémoire 0 à 7 respectivement.
DATASEL 8 L est connecté au circuit 99 d'adaptation de ligne commune et DATASEL 9 est connecté au module d'inter-
face 200.
En plus de la ligne commune 102 de données et de la ligne commune 104 d'adresses, la ligne commune
de l'installation comporte une ligne commune 106 de vec-
10. teurs. Cette ligne commune est sensible au transfert d'interruption vectorisée parmi les modules de chaque installation locale 10. Tous les demandeurs de ligne commune peuvent créer des interruptions vers d'autres demandeurs et en conséquence tous les demandeurs doivent avoir accès à la ligne commune vectorisée 106. Celle-ci non seulement permet le transfert de vecteurs entre les demandeurs mais elle assure aussi l'arbitrage parmi les demandeurs
pour les interruptions dans la classe considérée. Lors-
qu'un demandeur souhaite transférer une interruption, elle est transférée vers une classe de dispositifs. Une désignation d'interruption dirigée permet la spécification d'un demandeur particulier. Dans ce cas, le transfert du vecteur est direct, c'est-à-dire que le vecteur passe directement au demandeur particulier. Cependant, lorsqu'une interruption de classe est spécifiée, tous les demandeurs de cette classe particulière doivent assurer l'arbitrage
entre eux et seul le demandeur de plus faible ordre hiérar-
chique peut accepter l'interruption. Cette dernière fonction est réalisée par un schéma d'arbitrage parallèle qui
est aussi décrit dans la suite.
La ligne commune vectorisée 106 permet aussi le transfert des vecteurs par le module d'interface 200 vers d'autres installations 10. L'opération peut être réalisée par transmission, comme destinataire, à toute une classe d'une autre installation ou par spécification
d'un demandeur unique dans une autre installation.
La ligne commune vectorisée 106 contient douze lignes de signaux à collecteur ouvert et deux lignes de signaux en logique TTL. Dix des lignes de signaux à collecteur ouvert sont utilisées comme lignes de données vectorisées, une des lignes est utilisée comme ligne de demande de circuit d'adaptation de ligne cômmune et de sélection d'interface de multitraitement, et l'autre ligne de signaux est utilisée comme ligne d'accusé de réception. Les deux lignes de signaux TTL sont les lignes des phases de la ligne commune vectorisée. La commande de cette ligne commune est assurée par un organe de commande et d'arbitrage placé dans le module 60 de commande. L'organe de commande détermine aussi quelle phase de la ligne
commune est présente.
La ligne commune 106 met en oeuvre trois types de cycles de synchronisation, un cycle d'attente,
un cycle vectorisé dirigé et un cycle vectorisé de classe.
Lorsque la ligne commune 106 est en attente (c'est-à-dire qu'aucun demandeur ne demande la ligne commune), les opérations suivantes sont exécutées de manière répétée jusqu'à ce qu'un demandeur place une demande pendant la phase de demande (comme représenté sur la figure 11): 1. Demande de ligne commune 1 cycle de ligne commune 2. Affectation de ligne commune 1 cycle de ligne commune 3. Attente 1 cycle de ligne commune Lors d'un transfert vectorisé d'interruption dirigée, les opérations suivantes sont exécutées (comme l'indique la figure 12a): 1. Demande 1 cycle de ligne commune 2. Affectation de la ligne 1 cycle de ligne commune commune 3. Transfert du vecteur 2 cycles de ligne commune
4. Accusé de réception du 1 cycle de la ligne com-
vecteur mune Lorsque le transfert du vecteur met en oeuvre
un vecteur d'interruption de classe, les opérations sui-
vantes sont exécutées (comme l'indique la figure 12b): 1. Demande de ligne commune 1 cycle de ligne commune 2. Affectation de ligne commune 1 cycle de ligne commune 3. Transfert du vecteur 2 cycles de ligne commune 4. Arbitrage du processeur qui 4 cycles de ligne commune doit accepter le vecteur (au maximum) 5. Accusé de réception du 1 cycle de ligne commune vecteur
Tous les transferts par le module 200 d'inter-
face vers une installation 10 autre que celle dans laquelle se trouve le demandeur, quelle que soit sa nature, subissent un cycle de ligne commune vectorisée lorsqu'il s'agit de transfert dirigé. Ceci est dû au fait qu'un tansfert n'a lieu que d'un demandeur vers le module 200 et le module 200 exécute le cycle convenable de la ligne
commune vectorisée dans l'installation locale visée 10.
Un transfert à une installation non locale est identifié par la présence du signal de sélection d'interface pendant deux des transferts de la ligne commune vectorisée. Un cycle de ligne commune vectorisée équivaut à deux cycles
de ligne commune du système.
Dix demandeurs peuvent demander des lignes de demande afin qu'ils assurent l'arbitrage de l'accès a la ligne commune vectorisée. Le circuit 99d'adaptation peut aussi transmettre un signal à une ligne de demande le circuit d'adaptation de ligne commune et de sélection
d'interface. Comme le module 60 de commande de l'instal-
lation contient le circuit d'arbitrage de ligne commune vectorisée, il ne doit pas transmettre un signal à la ligne des signaux de ligne commune pour la demande de la ligne commune vectorisée. Des affectations aux modules
ont lieu sur la même ligne que les demandes correspondantes.
Pendant un cycle de transfert de données vectorisées, un certain nombre d'éléments d'information sont transférés dans la ligne commune vectorisée par les lignes 0-9 de données vectorisées par le demandeur à qui la ligne est affectée. Cette information est contenue
dans deux mots de données comme indiqué sur la figure 13.
Un numéro 110 d'identification d'interface de multitrai-
tement utilisé lorsque le vecteur est transmis par une installation locale autre que l'installation avec laquelle travaille la ligne 100 transportant le vecteur ou reçu d'une telle installation, est un numéro à quatre bits. Deux de ces bits 110a sont compris dans le premier mot 114 de données et les seconds bits 110b sont compris dans le second mot de données 112. En plus des deux premiers bits a du numéro d'identification, le premier mot 114 a un numéro 122 d'identification de type qui indique comment les bits 118 de classe et d'identification de tranche doivent être interprétés. Lorsque le numéro 122 est égal à zéro, c'est-à-dire dans le cas d'un transfert dirigé, les bits 118 contiennent un nombre qui indique la tranche du fond de panier qui contient le module qui doit recevoir
le vecteur. Lorsque le type est un, les bits de classe-
identification contiennent le numéro de classe du vecteur.
Le premier mot 114 de données comprend aussi un numéro 120 d'identification d'unité centrale à trois bits qui identifie un processeur d'un module se trouvant dans la tranche choisie. En plus des deux seconds bits 110a du numéro d'identification, le second mot contient aussi un numéro
116 d'identification de vecteur.
Lorsque la phase de transfert de données
a eu lieu, l'un de deux jeux d'événements est exécuté sui-
vant le type du vecteur qui a été transféré. Lorsqu'un vecteur dirigé ou un vecteur d'une installation autre que l'installation locale a été transféré, le module adressé transfère simplement le vecteur précédemment reçu à son processeur local et transmet le signal indiquant le prélèvement du vecteur. S'il s'agissait d'un vecteur de classe et si le signal de sélection d'interface n'était pas présent pendant le transfert des données vectorisées, les modules demandeurs doivent assurer l'arbitrage sur ladestination du vecteur. Le schéma d'arbitrage a pour rôle de permettre à tous les modules de la même classe que
le vecteur transféré de déterminer qui a l'ordre hiérar-
chique le plus faible parmi eux.
Un ordre hiérarchique des modules est déterminé par l'information suivante qui est transmise par les huit lignes de données vectorisées qui sont représentées sur le schéma de la figure 14. La profondeur de tranche ou les bits 124 de comptage de piles indiquent qu'un ou plusieurs vecteurs ont été mis en file d'attente vers le
processeur. Les bits de profondeur permettent une réparti-
tion égale des vecteurs parmi les demandeurs dans une classe. Le numéro 128 d'identification de tranche indique
10. dans quelle tranche se trouve le module. Le schéma d'arbi-
trage correspond à un arbitrage parallèle si bien qu'un module transmet toute l'information indiquée par la ligne commune à collecteur ouvert et compare l'information
reçue réellement à partir de la ligne commune à l'informa-
tion qu'il transmet. Cette comparaison commence par le bit d'ordre le plus élevé et se propage vers le bit d'ordre le plus faible. Lorsqu'un défaut existe entre les signaux transmis et ceux qui sont présents, le module arrête
la transmission de tous les bits d'ordre significatif infé-
rieur. Comme un numéro de tranche de module est incorporé à l'information d'arbitrage, il est certain que seul un module est sélectionné par l'arbitrage même lorsque deux modules ont le même ordre hiérarchique et pendant l'établissement des bits de service. Ce processus de comparaison et de déseclection est réalisé de manière asynchrone et les quatre cycles de ligne commune attribués à l'arbitrage de réception du vecteur est le temps maximal
nécessaire à la mise en état des lignes d'arbitrage.
La ligne commune 100 d'installation transfère des informations d'adresses et de données pendant un cycle principal de la ligne commune. Les transferts de données par la ligne 100 nécessitent une impulsion de synchronisation et un flanc d'horloge. L'impulsion de synchronisation est utilisée pour l'arrêt du fonctionnement des circuitsde pilotage de ligne commune, pour la sélection d'un nouveau circuit de pilote de ligne commune et pour la remise en fonctionnement du nouveau circuit de pilotage de ligne commune. Le flanc d'horloge est utilisé pour la transmission des données de tous les modules restants
de l'installation.
La précision de la répartition de ces signaux de synchronisation est primordiale pour le fonctionnement convenable de la ligne commune 100. Il n'est pas possible de répartir ces flancs avec la précision nécessaire étant donné le retard capacitif introduit dans la ligne commune, les décalages entre le-s portes des différents modules,
les variations des seuils entre les portes, etc. En consé-
quence, le schéma utilisé pour la ligne commune 100 selon l'invention est une répartition soigneuse d'un seul flanc de synchronisation dans l'installation. Ce flanc est
utilisé pour le déclenchement d'un générateur d'impulsions-
ligne à retard qui permet la création d'impulsions d'une manière bien réglée. Le schéma de la figure 15 illustre le comportement de l'impulsion de synchronisation et
du flanc de synchronisation formés par la ligne à retard.
Le signal ENDATA L est celui qui crée l'impulsion 132 d'inhibition de circuit de pilotage de ligne commune qui assure aussi la transmission d'impulsions d'horloge
pour la sélection du circuit suivant de pilotage. L'impul-
sion 132 doit avoir une largeur suffisamment grande pour que tous les circuits de pilotage en courant cessent de fonctionner avant la mise en fonctionnement du nouveau circuit de pilotage. Le flanc postérieur de l'impulsion 132 remet en état de fonctionnement le jeu suivant de circuitsde pilotage. La création du signal EN BUF TO BUS L de validation de mémorisation temporelle des échanges vers la ligne commune est qualifiée à chaque module. Le signal CKDATA H est utilisé comme signal d'horloge de données. L'analyse de la synchronisation de la ligne commune selon l'invention, comme représenté sur la figure 16, correspond à l'utilisation d'une ligne à retard avec une analyse électrique correspondant à des variations de
seuil et de décalage de ligne commune qui sont les pires.
Il faut noter que, pour la lecture du schéma d'analyse de synchronisation, le signal CKDATA H est destiné à être appliqué au cycle précédent par rapport au signal ENDATA L. En outre, des impulsions appelées BUS TRANSFER ENABLE 1H et TANSFER ENABLE 2H sont incorporées. Ces im- pulsions sont nécessaires pour que les modules puissent transférer de manière fiable des données à l'intérieur,
après réception par la ligne commune 100 de l'installation.
Le circuit destiné à créer les impulsions retar-
dées représentées sur les figures 15 et 16 est lui-même représenté sur la figure 17. Le circuit à retard est commandé par les impulsions d'horloge de ligne commune BCLOCK n L appliquées à la ligne à retard par une porte NON-ET 136 qui reçoit à son autre entrée un signal de la ligne à retard 140. Le signal de sortie de cette porte 136 est transmise à la ligne à retard 140 et à l'entrée
de portes NI 138. Les autres entrées des portes 138 re-
çoivent le signal local de validation L. Les signaux de sortie des portes 138 sont les signaux CKDATA H. Un autre signal de sortie de la ligne à retard 140 alimente la porte NON-ET 142. L'autre entrée de cette dernière reçoit un signal d'un basculeur de type D 144, ayant une ligne de données (entrée D) qui est connectée à la ligne de sélection locale H. La porte 142 transmet le signal de validation d'écriture de données dans la ligne commune. Un autre signal de la ligne à retard 140 parvient à une porte NON-ET 146 dont l'autre entrée reçoit un signal du basculeur D 148 qui reçoit son signal de données de ADDSEL. La porte NON-ET 146 transmet le signal précédent EN BUF TO BUS L. Le signal final de sortie de la ligne à retard 140 est transmis aux portes NON-ET 150 dont les autres entrées sont reliées à une source de tension d'alimentaiton à 5 V. Les portes NON- ET 150 transmettent les signaux BUS TRANSFER ENABLE 1H et BUS TRANSFER ENABLE 2H.
On considère maintenant la mémoire de l'instal-
lation de multitraitement selon l'invention qui comporte deux blocs indépendants de mémoire 41, un registre de commande et d'état (CSR) 48 et un processeur incorporé de diagnostic 46 destiné à exécuter automatiquement des tests. La structure d'adressage permet une imbrication quadruple entre des modules de mémoire 40 de taille équivalente. L'imbrication des modules est commandée par les bits 12 et 13 du registre 48 et est automatique entre les blocs. L'interface de ligne commune de mémoire est partie intégrante-de la ligne commune 100 de l'installation et est considérée en conséquence comme une extension de celle-ci. La ligne commune interne 154 de la mémoire 40 BUF DATA tavaille au double de la fréquence des données
de la ligne commune 100. Les données lues sont trans-
férées d'un bloc de mémoire 41 ou du registre 48 au circuit tampon d'interface de ligne commune lorsque le signal ENDATA
est mis à l'état nul, et les données d'écriture de l'inter-
face sont transférées lorsque le signal CLKDATA est sup-
primé. Cette architecture permet à la mémoire de transférer des données lues et écrites entre l'interface 165 et les blocs de mémoire (ou le registre CSR) en un seul
cycle principal de ligne commune.
Comme l'indique le schéma simplifié de la mémoire de la figure 3, les blocs 41 et le registre 48 sont des sous-ensembles séparés de couplage à une ligne commune interne 154. Cette dernière est pilotée par la commande 156 d'interface ou le processeur 46 de diagnostic. Lorsque ce dernier est raccordé à la ligne commune interne 154, la
mémoire devient invisible pour la commande 156 d'interface.
En conséquence, le processeur 46 de diagnostic doit mettre en oeuvre un mécanisme de synchronisation chaque fois qu'un test automatique est déclenché par écriture dans le bit 15 du registre. Comme le registre 48 n'est pas disponible dans ce mode, le circuit logique de demande de ligne commune de données met en oeuvre un mécanisme de priorité selon lequel les transferts de données par la
ligne commune interne 154 sont synchronisés sur la disponi-
bilité des données des blocs individuels. La parité d'adresse provenant de la commande 156 est vérifiée au niveau des récepteurs et, en cas d'erreur, l'adresse est traitée comme inexistante. La parité des données d'écriture est vérifiée par le circuit logique 49 de vérification de parité de données d'écriture. En présence d'une erreur, l'écriture est abandonnée et le signal d'erreur de parité
de données d'écriture WRITE DATA PARITY ERROR L est trans-
mis. La parité des données de lecture est créée localement à chaque sousensemble. La parité dans le champ ADDID n'est 10. pas vérifiée; ADDIDP est simplement copié dans DESTSELP
afin que le registre CSR y fasse référence ou est complé-
menté dans DESTSELP afin que la mémoire puisse y faire référence. Ceci est nécessaire car DESTSELP contient
une partité en présence du signal NOCACHE.
Comme représenté sur la figure 11, chaque bloc 41 de mémoire comporte deux rangées de mémoire à
accès direct raccordées à une seule ligne commune bidi-
rectionnelle 160 de données. Une microplaquette 162 de détection et de correction d'erreursEDAC forme une interface de cette ligne interne de même qu'un circuit logique de parité 164 destiné à créer et vérifier la parité pour la ligne commune 100. Celle-ci ne contient pas de bits de code de correction d'erreur. La parité des données
lues est créée dans le circuit logique 164 et est trans-
mise à l'interface 165 à l'aide du signal BUF DATA. Lorsque la parité des données d'écriture est vérifiée par le circuit logique 49 et, en présence d'erreurs, un signal d'erreur de parité de données d'écriture L WRITE DATA PARITY ERROR L est transmis et le cycle d'écriture est mis à l'état de régénération. Le registre 48 est mis à jour par le signal ADDID du transfert. Le processeur 46 de diagnostic utilise les lignes DATAP pour le transfert des bits de vérification et/ou de syndromes entre les
blocs de mémoire et son circuit d'interface de données.
Chaque bloc de mémoire 120 a un fonctionnement séquentiel assuré par un organe séparé de commande 166, les organes 166 travaillant indépendamment. Dans le mode de réalisation préféré, les organes de commande sont des séquenceurs d'état de type 82S105A. Ces dispositifs fonctionnent en parallèle par bloc afin qu'ils créent des signaux suffisants de sortie de commande. Sept types fondamentaux de cycles sont déterminés pour chaque organe de commande, de la manière suivante.
Cycle Description
0 Régénération 1 Lecture d'interface de ligne commune seulement 2 Verrouillage de lecture d'interface de ligne commune 3 Ecriture d'un mot long d'interface de ligne commune 4 Ecriture d'interface de ligne commune Lecture convenable validée de diagnostic 6 Ecriture convenable validée de diagnostic Lorsqu'un cycle 0 (régénération) est activé, un bloc 41 est sélectionné et la minuterie de régénération
demande une régénération. Un cycle de régénération a tou-
jours priorité sur une demande en attente d'une interface quelconque 165 ou du processeur 48 de diagnostic. Lorsque l'initialisation ECC est validée, l'organe de commande verrouille le registre de sortie de la microplaquette 162 de détection et de correction d'erreur EDAC et impose un mode de création d'un bit de vérification. Ainsi, pendant l'initialisation ECC, le contenu aléatoire du registrede sortie du circuit EDAC est écrit dans la mémoire avec des bits convenables de vérification. La minuterie de mémoire à accès direct est alors déclenchée si bien
que les écritures dans les mémoires 168 sont réalisées.
Lorsque l'initialisation ECC n'est pas en cours, le contenu
de l'adresse régénérée est lu et conservé dans la micro-
plaquette 162. Lorsque le balayage d'erreurs est validé, les données sont vérifiées afin que des erreurs soient déterminées. Les erreurs sur un seul bit sont corrigées et donnent lieu à réinscription dans la mémoire. Les
erreurs sur plusieurs bits sont ignorées.
Un cycle 1 (lecture seulement) est déclenché lorsque le bloc correspondant 41 a son adresse chargée
et en l'absence d'un cycle en attente de régénération.
Lorsque le bloc n'est pas occupé à ce moment, la minuterie RAM est déclenchée par le circuit logique de chargement d'adresse en parallèle avec le déclenchement du séquenceur 166 de bloc. Lorsque le bloc 41 est actuellement occupé, la minuterie de mémoire à accès direct est déclenchée
par le séquenceur 166 sur une transition d'état occupé-
non occupé À Pendant un cycle de lecture seulement, la rangée choisie de mémoire est atteinte et les données lues sont chargées dans la microplaquette 162 et les registres 170 de données bloc-tampon. L'organe 166 de commande exécute aussi une demande de transfert des données lues dans l'interface 165 en parallèle avec la vérification des erreurs des données. En l'absence d'erreurs, les données déjà chargées dans la mémoire à accès direct
sont transférées vers l'interface 165. Dans le cas con-
traire, la tranche de données, lorsqu'elle a été affectée, est perdue et les données corrigées (s'il s'agit d'une erreur sur un seul bit) sont rechargées dans les registres bloc-tampon à partir de la microplaquette 162. Des erreurs non corrigibles sur les données sont enregistrées avec
le registre 48.
Un cycle 2 (blocage de lecture) est essentiel-
lement une lecture suivie d'une écriture automatique au même emplacement de mémoire. En d'autres termes, cette
opération est un cycle interne de lecture-modification-
écriture au niveau du bloc. Pendant ce cycle, un bloc 41 de mémoire exécute une opération de lecture identique à celle du cycle 1 décrit précédemment et transmet les données au demandeur. Pendant la phase d'écriture, l'organe 166 de commande provoque l'écriture de uns à l'emplacement de l'octet qui vient juste d'être lu. L'avantage d'un tel cycle de lecture-modification-écriture exécuté par le module 40 est que les opérations d'établissement du bit atomique peuvent être réalisées sans immobilisation de la ligne commune et sans empêchement d'autres accès
à cette ligne.
Dans un cycle 3 (écriture d'un mot long), les écritures de mots longs sont réalisées par écriture de 32 bits de données des registres 170 à la mémoire, avec
des bits convenables de vérification.
Un cycle 4 (d'écriture) est analogue au cycle
de blocage de lecture (cycle 2) en ce que les deux opéra-
tions effectuent une opération interne de lecture-modifi-
cation-écriture. L'emplacement atteint est lu dans les mémoires à accès direct, conservé dans le circuit EDAC 162 et les erreurs sont vérifiées. Les erreurs sur un
seul bit, le cas échéant, sont automatiquement corrigées.
Les erreurs qui ne peuvent pas être corrigées sont à nouveau étiquetées et repérées dans le registre 46. Dans le cas d'une erreur non corrigible, l'opération d'écriture est abandonnée et le cycle se termine. En l'absence d'erreur incorrigible, l'octet à écrire peut être transmis des
registres tampon-bloc avec les octets non modifiés? cor-
rigés le cas échéant, provenant de la microplaquette EDAC 162 par la ligne commune 160. Le mot résultant est écrit
dans la mémoire avec les nouveaux bits de vérification.
Un cycle 5 (lecture convenable avec inhibition de diagnostic) est utilisé afin que le processeur 46 de diagnostic puisse lire les données des mémoires à
accès direct sans intervention de la microplaquette 162.
De même, le cycle 6 (écriture convenable avec inhibition de diagnostic)est utilisé pour l'écriture de données et de bits de vérification conservés dans les registres tampon-bloc vers la mémoire, avec.passage en dérivation par rapport à la microplaquette 162. Ce mécanisme permet au processeur 46 de diagnostic d'écrire tout dessin de données ou de bits de vérification dans la mémoire afin
que la microplaquette 162 puisse subir un diagnostic.
Bien qu'on ait décrit le système de multitrai-
tement en référence à des modes de réalisation, diverses
variantes entrent dans le cadre de l'invention. En parti-
culier, les divers modules et notamment les modules de mémoire et processeur peuvent être modifiés afin qu'ils comprennent d'autres configurations d'éléments (par exemple
plus de deux processeurs par module processeur).

Claims (19)

REVENDICATIONS
1. Installation de multitraitement, caractérisée
en ce qu'elle comprend: -
plusieurs modules processeurs (20) ayant chacun au moins un processeur et ayant une interface permettant la communication de données, d'adresses et d'interruption, les modules processeurs ayant aussi une
antémémoire (22) destinée à-conserver le contenu d'empla-
cements souvent traités de la mémoire, une mémoire (40) d'installation ayant des interfaces permettant la communication de données et d'adresses, la mémoire étant accessible par chacun des
processeurs, -
un dispositif de commande (60) destiné à affecter et commander la mise en oeuvre des différents processus dans au moins un processeur, un dispositif de synchronisation destiné à créer des signaux de synchronisation qui déterminent des intervalles successifs de transaction, une ligne commune (100) d'installation couplée aux interfaces des divers modules processeurs et aux interfaces de la mémoire et comprenant: a) une ligne commune d'adresses (104) destinée à transférer des adresses de mémoire de l'un des modules processeurs à la mémoire, b) une ligne commune de données (102) destinée
à transférer des données de la mémoire aux modules proces-
seurs et des modules processeurs vers la mémoire, c) une ligne commune vectorisée (106) destinée à transférer des signaux d'interruption vectorisés entre l'un des modules processeurs et un autre des modules processeurs, et d) une ligne de commande destinée à former un trajet de circulation de signaux qui doivent être transférés entre le dispositif de commande et les modules processeurs et la mémoire et entre les modules processeurs et la mémoire et le dispositif de commande, un dispositif destiné à arbitrer l'accès à chacune des lignes communes d'adresses, de données et vectorisées, si bien que le dispositif de commande permet le fonctionnement de l'installation à des vitesses élevées par répartition efficace des opérations aux différents
modules processeurs qui sont couplés étroitement.
2. Installation selon la revendication 1, carac-
térisée en ce que chacun des modules processeurs (20) comporte en outre: un dispositif destiné à écrire le contenu d'emplacementsde mémoire souvent traités dans l'antémémoire (22), un dispositif d'étiquetage de processeur
(30) destiné à conserver des adresses de mémoire de l'ins-
tallation à des emplacements souvent traités, conservés dans le cache, un dispositif d'étiquetage de ligne commune destiné à contrôler la ligne commune du système afin que l'exécution d'opération d'écriture mettant en oeuvre un emplacement de mémoire dont le contenu est conservé dans l'antémémoire du module processeur soit déterminée, un dispositif de remise à jour commandé par le dispositif d'étiquetage de ligne commune et destiné à indiquer au dispositif d'étiquetage de processeur que le contenu de l'emplacement de l'antémémoire diffère de celui de l'emplacement correspondant de la mémoire principale.
3. Installation selon la revendication 1, caractérisée en ce que la ligne commune (100) permet
l'imbrication de plusieurs opérations.
4. Installation selon la revendication 1,
caractérisée en ce que la commande (60) comporte un dispo-
sitif destiné à arbitrer l'accès à la ligne commune d'adresses, ce dispositif d'arbitrage donnant la priorité
d'accès aux modules processeurs et aux modules non proces-
seurs, l'ordre hiérarchique étant tel que les modules non processeurs ont priorité sur les modules processeurs, l'accès entre les modules étant affecté d'une manière tournante.
5. Installation selon la revendication 4, carac-
térisée en ce que le dispositif d'arbitrage de la ligne commune d'adresses comporte en outre un dispositif destiné à placer une réservation dans la ligne commune d'adresses
pour un cycle de données de lecture.
6. Installation selon la revendication 1, caractérisée en ce que la ligne commune vectorisée (106) comporte en outre un dispositif destiné à déterminer quel processeur doit recevoir un vecteur transmis parmi
plusieurs processeurs.
7. Installation selon la revendication 1, caractérisée en ce que la ligne commune vectorisée (106) comporte en outre un dispositif destiné à regrouper les processeurs et à assurer une répartition uniforme des
vecteurs dans les groupes.
8. Installation selon la revendication 5, caractérisée en ce que la commande (60) comporte en outre un dispositif destiné à arbiter l'accès à la ligne commune de données, ce dispositif d'arbitrage donnant accès à la ligne commune a un module demandeur qui demande une opération d'écriture et qui a placé une adresse sur la ligne commune d'adresses, le dispositif d'arbitrage de ligne commune de données comprenant aussi un dispositif destiné à donner l'accès en priorité à des modules demandant
une opération de lecture sous forme d'une réponse.
9. Installation selon la revendication 8, caractérisée en ce que le dispositif d'arbitrage de la ligne commune de données comporte en outre un dispositif destiné à réserver la ligne commune de données avant
le moment auquel elle est nécessaire à un demandeur.
10. Installation selon la revendication 1, caractérisée en ce que la commande comporte en outre un dispositif destiné à réessayer une opération demandée
qui n'a pas été acceptée par le destinataire de la demande.
11. Installation selon la revendication 1, caractérisée en ce que le dispositif d'arbitrage de ligne commune d'adresses comporte en outre un dispositif destiné
à rétablir la priorité d'une demande réessayée sans pertur-
bation du schéma de priorité de type tournant.
12. Installation selon la revendication 1, caractérisée en ce que la commande comporte en outre un dispositif de déblocage destiné à donner accès à une demande de données qui n'a pas abouti pendant une période prédéterminée afin que l'accès à la ligne commune de données lui soit attribué, le déblocage étant assuré par un dispositif empêchant l'accès à la ligne commune par
de nouvelles demandes.
13. Installation selon la revendication 1, caractérisée en ce qu'elle comprend en outre une interface (200) connectée à la ligne commune de l'installation et destinée à permettre la communication de signaux de données, d'adresses et d'interruptions entre plusieurs installations
de multitraitement afin que l'installation de multitrai-
tement et les autres installations de multitraitement
paraissent sous forme d'une seule installation de multi-
traitement étroitement couplée, raccordée à une ligne
commune unique.
14. Installation selon la revendication 1, caractérisée en ce que l'antémémoire (22) des modules processeurs (20) comporte un dispositif destiné à écrire les mêmes données dans l'antémémoire et dans la mémoire
de l'installation.
15. Installation selon la revendication 1, caractérisée en ce que l'antémémoire (22) des modules processeurs (20) comporte un dispositif qui peut être commandé afin qu'il écrive uniquement dans l'antémémoire, ce dispositif comprenant un dispositif destiné à indiquer à la mémoire que les données conservées à l'emplacement correspondant de l'antémémoire diffèrent de celles qui sont conservées à l'emplacement correspondant de la mémoire
de l'installation.
16. Installation de multitraitement, caracté-
risée en ce qu'elle comprend: plusieurs modules processeurs (20) ayant chacun au moins un processeur et une interface permettant la coamunication de données, d'adresses et d'interruptions, les modules processeurs comprenant aussi une antémémoire destinée à conserver le contenu d'emplacements de la mémoire qui sont souvent traités, une mémoire (40) d'installation ayant des interfaces permettant la communication de données et
d'adresses, la même étant accessible par chacun des proces-
seurs, la mémoire comprenant aussi un dispositif destiné à bloquer un emplacement de mémoire pendant un cycle de lecture-modification-é6riture, le dispositif de blocage permettant la communication des données et des adresses dans l'installation pendant que le dispositif de blocage maintient bloqué un emplacement de mémoire, une commande (60) destinée à affecter et commander le déroulement de plusieurs processus dans au moins un processeur, un dispositif de synchronisation destiné à créer des signaux de synchronisation qui délimitent des intervalles successifs de transaction, une ligne commune (100) d'installation connectée aux interfaces des modules processeurs et aux interfaces de la mémoire et comprenant: a) une ligne commune d'adresses (104) destinée à transférer des adresses de la mémoire de l'un des modules processeurs vers la mémoire de l'installation, b) une ligne commune de données (102) destinée à transférer des données de la mémoire vers les modules processeur et des modules processeurs vers la mémoire, c) une ligne commune vectorisée (106) destinée à transférer des signaux d'interruption entre l'un des modules processeurs et un autre module processeur, d) une ligne de commande destinée à former un trajet de circulation de signaux qui doivent être transmis de la commande au module processeur et à la mémoire de l'installation, et des modules processeurs et de la mémoire vers la commande, un dispositif d'arbitrage de l'accès à chacune des lignes communes d'adresses, de données et vectorisées,
si bien que la commande permet à l'installation de tra-
vailler à des vitesses élevées par répartition efficace des processus aux modules processeurs qui sont étroitement couplés.
17. Installation de multitraitement, caracté-
risée en ce qu'elle comprend: plusieurs modules processeurs (20) ayant chacun au moins un processeur et ayant une interface permettant la communication de données, d'adresses et d'interruptions, les module processeur comprenant aussi
une antémémoire destinée à conserver le contenu d'empla-
cements de mémoire souvent traités, une mémoire (40) d'installation ayant des interfaces permettant la communication de données et d'adresses, la mémoire étant accessible par chacun des processeurs, une commande (60) destinée à affecter et commander le déroulement de plusieurs processus exécutés dans au moins un processeur, un dispositif de synchronisation destiné à créer des signaux de synchronisation qui délimitent des intervalles successifs de transaction, une ligne commune (100) d'installation connectée aux interfaces des modules processeurs et aux interfaces de la mémoire et comprenant: a) une ligne commune d'adresses (104) destinée à transférer des adresses de mémoire d'un module processeur (102) vers la mémoire, b) une ligne commune de données destinée
à transférer les données de la mémoire aux modules proces-
seurs et des modules processeurs vers la mémoire, c) une ligne commune vectorisée (106) destinée à transférer des signaux d'interruption entre l'un des modules processeurs et un autre module processeur, d) une ligne de commande destinée à former un trajet de transfert de signaux de la commande vers les modules processeurs et la mémoire et des modules processeurs et de la mémoire vers la commande, un dispositif destiné à arbitrer l'accès à chacune des lignes communes d'adresses, de données et vectorisées, une interface (200) raccordée à la ligne commune (100) de l'installation et destinée à permettre la communication de signaux de données, d'adresses et d'interruptions entre l'installation de multitraitement
et une autre installation de multitraitement, cette inter-
face comprenant aussi une antémémoire destinée à conserver le contenu d'emplacements de mémoire souvent traités dans d'autres installationsde multitraitement, si bien que la commande permet à l'installation de travailler à vitesse élevée par répartition efficace des processus aux modules processeurs qui sont étroitement couplés.
18. Installation de multitraitement, caracté-
risée en ce qu'il comprend: une mémoire (40) d'installation ayant des interfaces permettant la communication de- données et d'adresses, plusieurs modules processeurs (20) capables chacun d'avoir accès à la mémoire et ayant au moins un processeur, les modules processeurs comprenant aussi une interface permettant la communication de données, d'adresses et d'interruptions, les modules processeurs comprenant aussi une antémémoire (22) destinée à conserver le contenu d'emplacements souvent traités dans la mémoire, l'antémémoire étant d'un type transmettant une écriture,
dans lequel les données à écrire aux emplacementsde l'anté-
mémoire sont aussi écrites à des emplacements de la mémoire de l'installation, ou une antémémoire ne permettant pas
une telle écriture, les données étant écrites aux empla-
cements de l'antémémoire seulement, une commande (60) destinée à affecter et commander le déroulement de plusieurs processus dans au moins un processeur, un dispositif de synchronisation destiné à créer des signauxde synchronisation qui délimitent des intervalles successifs de transaction, une ligne commune (100) connectée aux interfaces des modules processeurs et aux interfaces de la mémoire et comprenant: a) une ligne commune d'adresses (104) destinée à transférer des adresses de la mémoire d'un des modules processeurs à la mémoire, b) une ligne commune de données (102) destinée
à transférer des données de la mémoire aux modules proces-
seurs et des modules processeurs à la mémoire, c) une ligne commune vectorisée (106) destinée à transférer des signaux d'interruption entre l'un des modules processeurs et un autre module processeur, d) une ligne de commande destinées à former un trajet de circulation des signaux à transférer de la commande vers les modules processeurs et la mémoire
et des modules processeurs et de la mémoire vers la com-
mande, un dispositif destiné à arbitrer l'accès à chacune des lignes communes d'adresses, de données et vectorisées, *- -si bien que la commande permet à l'installation de travailler à une vitesse-élevée par répartition efficace des processus aux modules processeurs qui sont étroitement
couplés.
19. Installation selon la revendication 18, caractérisée en ce qu'elle comprend en outre un dispositif - destiné à indiquer à un demandeur que des données conservées à un emplacement de la mémoire de l'installation sont
conservées de manière valable dans une antémémoire ne trans-
mettant pas l'écriture seulement.
FR868602680A 1985-02-27 1986-02-26 Installation de multitraitement a plusieurs processus Expired - Lifetime FR2578071B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/706,142 US5067071A (en) 1985-02-27 1985-02-27 Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus

Publications (2)

Publication Number Publication Date
FR2578071A1 true FR2578071A1 (fr) 1986-08-29
FR2578071B1 FR2578071B1 (fr) 1990-01-12

Family

ID=24836377

Family Applications (1)

Application Number Title Priority Date Filing Date
FR868602680A Expired - Lifetime FR2578071B1 (fr) 1985-02-27 1986-02-26 Installation de multitraitement a plusieurs processus

Country Status (6)

Country Link
US (1) US5067071A (fr)
JP (1) JPS6231465A (fr)
AU (1) AU582822B2 (fr)
DE (1) DE3606211A1 (fr)
FR (1) FR2578071B1 (fr)
GB (1) GB2171542A (fr)

Families Citing this family (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4858173A (en) * 1986-01-29 1989-08-15 Digital Equipment Corporation Apparatus and method for responding to an aborted signal exchange between subsystems in a data processing system
NZ220423A (en) * 1986-05-30 1989-07-27 Honeywell Bull Multiprocessor system; shared resource status appears on bus
US4785394A (en) * 1986-09-19 1988-11-15 Datapoint Corporation Fair arbitration technique for a split transaction bus in a multiprocessor computer system
IL85518A0 (en) * 1987-03-13 1988-08-31 Apple Computer Computer with expansion slots for cards and card therefor
US5055999A (en) 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5761413A (en) * 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
IT1227360B (it) * 1988-11-18 1991-04-08 Honeywell Bull Spa Sistema multiprocessore di elaborazione dati con replicazione di dati globali.
US5043874A (en) * 1989-02-03 1991-08-27 Digital Equipment Corporation Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory
CA1324679C (fr) * 1989-02-03 1993-11-23 Michael A. Gagliardo Methode et dispositif pour interfacer l'unite de commande et la memoire principale d'un systeme multiprocesseur
US5526487A (en) * 1989-02-09 1996-06-11 Cray Research, Inc. System for multiprocessor communication
US5121487A (en) * 1989-02-21 1992-06-09 Sun Microsystems, Inc. High speed bus with virtual memory data transfer capability using virtual address/data lines
IT1228728B (it) * 1989-03-15 1991-07-03 Bull Hn Information Syst Sistema multiprocessore con replicazione di dati globali e due livelli di unita' di traduzione indirizzi.
DE3917715A1 (de) * 1989-05-31 1990-12-06 Teldix Gmbh Rechnersystem
US5212796A (en) * 1990-01-02 1993-05-18 Motorola, Inc. System with modules using priority numbers related to interrupt vectors for bit-serial-arbitration on independent arbitration bus while CPU executing instructions
US5555425A (en) * 1990-03-07 1996-09-10 Dell Usa, L.P. Multi-master bus arbitration system in which the address and data lines of the bus may be separately granted to individual masters
US5226143A (en) * 1990-03-14 1993-07-06 International Business Machines Corporation Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
JP2545482B2 (ja) * 1990-03-15 1996-10-16 富士通株式会社 インタ―フェイス装置の転送パラメ―タ設定方法
US5289585A (en) * 1990-03-26 1994-02-22 Siemens Nixdorf Informationssysteme Ag Multiprocessor system having a system bus for the coupling of several processing units with appertaining private cache memories and a common main memory
US5179707A (en) * 1990-06-01 1993-01-12 At&T Bell Laboratories Interrupt processing allocation in a multiprocessor system
US5276852A (en) * 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
JP3144794B2 (ja) * 1990-11-09 2001-03-12 株式会社日立製作所 マルチプロセッサシステム
US5495615A (en) * 1990-12-21 1996-02-27 Intel Corp Multiprocessor interrupt controller with remote reading of interrupt control registers
US5282272A (en) * 1990-12-21 1994-01-25 Intel Corporation Interrupt distribution scheme for a computer bus
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US5253348A (en) * 1990-12-28 1993-10-12 Apple Computer, Inc. Method of arbitration for buses operating at different speeds
ATE128777T1 (de) * 1991-03-28 1995-10-15 Cray Research Inc Echtzeit-input/output-methode fuer ein vektor- prozessor-system.
US5515523A (en) * 1991-06-03 1996-05-07 Digital Equipment Corporation Method and apparatus for arbitrating conflicts by monitoring number of access requests per unit of time in multiport memory systems
US5392417A (en) * 1991-06-05 1995-02-21 Intel Corporation Processor cycle tracking in a controller for two-way set associative cache
US5280608A (en) * 1991-06-28 1994-01-18 Digital Equipment Corporation Programmable stall cycles
US5327570A (en) * 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
JP3466212B2 (ja) * 1991-09-17 2003-11-10 インテル・コーポレーション コンピュータシステム
CA2078315A1 (fr) * 1991-09-20 1993-03-21 Christopher L. Reeve Appareil de traitement parallele et methode d'utilisation du pavage
CA2078312A1 (fr) 1991-09-20 1993-03-21 Mark A. Kaufman Processeur de donnees numeriques a pagination amelioree
CA2078310A1 (fr) * 1991-09-20 1993-03-21 Mark A. Kaufman Processeur numerique a memoire repartie
US5293384A (en) * 1991-10-04 1994-03-08 Bull Hn Information Systems Inc. Microprocessor bus interface protocol analyzer
US5442785A (en) * 1991-10-08 1995-08-15 Unisys Corporation Method and apparatus for passing messages between application programs on host processors coupled to a record lock processor
GB2277181B (en) * 1991-12-23 1995-12-13 Intel Corp Interleaved cache for multiple accesses per clock in a microprocessor
US5276858A (en) * 1991-12-26 1994-01-04 Intel Corporation Memory controller with integrated delay line circuitry
US5239632A (en) * 1992-04-16 1993-08-24 Hewlett-Packard Company Device to translate logical unit number communications on one SCSI bus to ID communications on a subordinate SCSI bus
US5555382A (en) * 1992-04-24 1996-09-10 Digital Equipment Corporation Intelligent snoopy bus arbiter
JPH0660015A (ja) * 1992-06-08 1994-03-04 Mitsubishi Electric Corp 情報処理装置
ES2139583T3 (es) * 1992-08-19 2000-02-16 Siemens Nixdorf Inf Syst Sistema multiprocesador con memorias cache.
US5491812A (en) * 1992-09-28 1996-02-13 Conner Peripherals, Inc. System and method for ethernet to SCSI conversion
US5553248A (en) * 1992-10-02 1996-09-03 Compaq Computer Corporation System for awarding the highest priority to a microprocessor releasing a system bus after aborting a locked cycle upon detecting a locked retry signal
US5553310A (en) * 1992-10-02 1996-09-03 Compaq Computer Corporation Split transactions and pipelined arbitration of microprocessors in multiprocessing computer systems
SE9203016L (sv) * 1992-10-14 1994-04-15 Ericsson Telefon Ab L M Signalbehandlingssystem med delat dataminne
DE69326669D1 (de) * 1992-11-18 1999-11-11 Canon Information Syst Inc Verfahren und Vorrichtung zur Prüfung einer Schnittstellenkarte
US5463739A (en) * 1992-12-22 1995-10-31 International Business Machines Corporation Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold
DE69323861T2 (de) * 1993-01-25 1999-10-07 Bull Hn Information Syst Multiprozessorsystem mit gemeinsamem Speicher
US5666515A (en) * 1993-02-18 1997-09-09 Unisys Corporation Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address
US5381541A (en) * 1993-05-26 1995-01-10 International Business Machines Corp. Computer system having planar board with single interrupt controller and processor card with plural processors and interrupt director
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
US5590338A (en) * 1993-07-23 1996-12-31 Dell Usa, L.P. Combined multiprocessor interrupt controller and interprocessor communication mechanism
US5473763A (en) * 1993-08-02 1995-12-05 Advanced Micro Devices, Inc. Interrupt vector method and apparatus
US5671372A (en) * 1993-09-30 1997-09-23 International Business Machines Corporation Data processing system with microprocessor/cache chip set directly coupled to memory bus of narrower data width
GB2298503B (en) * 1993-12-16 1998-08-12 Intel Corp Multiple programmable interrupt controllers in a computer system
US5666516A (en) * 1993-12-16 1997-09-09 International Business Machines Corporation Protected programmable memory cartridge having selective access circuitry
US5519876A (en) * 1993-12-23 1996-05-21 Unisys Corporation Processor communications bus having address lines selecting different storage locations based on selected control lines
US5611053A (en) * 1994-01-21 1997-03-11 Advanced Micro Devices, Inc. Apparatus and method for integrating bus master ownership of local bus load by plural data transceivers
US6295572B1 (en) * 1994-01-24 2001-09-25 Advanced Micro Devices, Inc. Integrated SCSI and ethernet controller on a PCI local bus
US5471590A (en) * 1994-01-28 1995-11-28 Compaq Computer Corp. Bus master arbitration circuitry having improved prioritization
CA2140685A1 (fr) * 1994-01-28 1995-07-29 Randy M. Bonella Circuit d'arbitrage a etablissement des priorites amelioree pour bus
US5533204A (en) * 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
DE69519816T2 (de) * 1994-05-03 2001-09-20 Hewlett Packard Co Anordnung mit Duplikat des Cache-Etikettenspeichers
US5577226A (en) 1994-05-06 1996-11-19 Eec Systems, Inc. Method and system for coherently caching I/O devices across a network
EP0695999A3 (fr) * 1994-06-30 1998-07-08 Digital Equipment Corporation Bus système avec protocoles séparés de bus d'adresses et de données
US6256694B1 (en) * 1994-06-30 2001-07-03 Compaq Computer Corporation Distributed early arbitration
US5748866A (en) * 1994-06-30 1998-05-05 International Business Machines Corporation Virtual display adapters using a digital signal processing to reformat different virtual displays into a common format and display
CN1205792C (zh) * 1994-08-31 2005-06-08 国际商业机器公司 用于设备间通信的系统与方法
CA2154509A1 (fr) * 1994-10-03 1996-04-04 Paul Peixoto Carreiro Methode et appareil de transmission automatique de blocs de donnees via un canal menant a une interface de controle dans un systeme de traitement de donnees
CA2203378A1 (fr) * 1994-10-26 1996-05-09 Flamepoint, Inc. Traitement simultane par elements multiples
US6061731A (en) * 1994-12-06 2000-05-09 Thunderwave, Inc. Read only linear stream based cache system
US5623699A (en) * 1994-12-06 1997-04-22 Thunderwave, Inc. Read only linear stream based cache system
US5872982A (en) * 1994-12-28 1999-02-16 Compaq Computer Corporation Reducing the elapsed time period between an interrupt acknowledge and an interrupt vector
US5638538A (en) * 1995-01-13 1997-06-10 Digital Equipment Corporation Turbotable: apparatus for directing address and commands between multiple consumers on a node coupled to a pipelined system bus
US5761731A (en) * 1995-01-13 1998-06-02 Digital Equipment Corporation Method and apparatus for performing atomic transactions in a shared memory multi processor system
US5596729A (en) * 1995-03-03 1997-01-21 Compaq Computer Corporation First arbiter coupled to a first bus receiving requests from devices coupled to a second bus and controlled by a second arbiter on said second bus
US6524019B1 (en) * 1995-03-27 2003-02-25 Nec Corporation Inter-cluster data transfer system and data transfer method
US5864839A (en) * 1995-03-29 1999-01-26 Tm Patents, L.P. Parallel system and method for generating classification/regression tree
US5923859A (en) * 1995-04-13 1999-07-13 Compaq Computer Corporation Dual arbiters for arbitrating access to a first and second bus in a computer system having bus masters on each bus
US5901295A (en) * 1995-04-28 1999-05-04 Apple Computer, Inc. Address and data bus arbiter for pipelined transactions on a split bus
US5708783A (en) * 1995-04-28 1998-01-13 Apple Computer, Inc. Data bus arbiter for pipelined transactions on a split bus
US5815676A (en) * 1995-04-28 1998-09-29 Apple Computer, Inc. Address bus arbiter for pipelined transactions on a split bus
US5706446A (en) * 1995-05-18 1998-01-06 Unisys Corporation Arbitration system for bus requestors with deadlock prevention
US5644733A (en) * 1995-05-18 1997-07-01 Unisys Corporation Dual coupled partitionable networks providing arbitration logic for managed access to commonly shared busses
US5737524A (en) * 1995-05-22 1998-04-07 International Business Machines Corporation Add-in board with programmable configuration registers for use in PCI bus computers
KR960042387A (ko) * 1995-05-31 1996-12-21 유기범 하이파이플러스 인터럽트버스 중재방법
US6529933B1 (en) 1995-06-07 2003-03-04 International Business Machines Corporation Method and apparatus for locking and unlocking a semaphore
DE19529434B4 (de) * 1995-08-10 2009-09-17 Continental Teves Ag & Co. Ohg Microprozessorsystem für sicherheitskritische Regelungen
US5765195A (en) * 1995-12-08 1998-06-09 Ncr Corporation Method for distributing interprocessor interrupt requests via cache memory coherency mechanisms
KR100197407B1 (ko) * 1995-12-28 1999-06-15 유기범 전전자 교환기에 있어서 프로세서들간 통신버스구조
EP0882266A1 (fr) 1996-02-20 1998-12-09 Intergraph Corporation Super serveur haute disponibilite
KR100391246B1 (ko) * 1996-04-08 2003-11-28 엘지엔시스(주) 다중 프로세서 시스템의 시스템 버스 운용방법
US5954809A (en) * 1996-07-19 1999-09-21 Compaq Computer Corporation Circuit for handling distributed arbitration in a computer system having multiple arbiters
JP3317156B2 (ja) * 1996-09-18 2002-08-26 三菱電機株式会社 リモートplc装置を備えた数値制御装置
US7136903B1 (en) 1996-11-22 2006-11-14 Mangosoft Intellectual Property, Inc. Internet-based shared file service with native PC client access and semantics and distributed access control
US6647393B1 (en) * 1996-11-22 2003-11-11 Mangosoft Corporation Dynamic directory service
US6021261A (en) * 1996-12-05 2000-02-01 International Business Machines Corporation Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers
US6049845A (en) * 1997-11-05 2000-04-11 Unisys Corporation System and method for providing speculative arbitration for transferring data
US6092156A (en) * 1997-11-05 2000-07-18 Unisys Corporation System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations
US6052760A (en) * 1997-11-05 2000-04-18 Unisys Corporation Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks
US6014709A (en) * 1997-11-05 2000-01-11 Unisys Corporation Message flow protocol for avoiding deadlocks
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6292910B1 (en) * 1998-09-14 2001-09-18 Intel Corporation Method and apparatus for detecting a bus deadlock in an electronic system
US6052700A (en) * 1998-09-17 2000-04-18 Bull Hn Information Systems Inc. Calendar clock caching in a multiprocessor data processing system
EP1067461B1 (fr) 1999-07-08 2013-04-24 Texas Instruments France Système de gestion de mémoire unifié pour architecture hétérogène multiprocesseur
US6687818B1 (en) 1999-07-28 2004-02-03 Unisys Corporation Method and apparatus for initiating execution of an application processor in a clustered multiprocessor system
US6665761B1 (en) 1999-07-28 2003-12-16 Unisys Corporation Method and apparatus for routing interrupts in a clustered multiprocessor system
JP5220974B2 (ja) 1999-10-14 2013-06-26 ブルアーク ユーケー リミテッド ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
US6629176B1 (en) * 1999-11-02 2003-09-30 Agilent Technologies, Inc. Arbiter architecture allowing rapid implementation of arbitration policies
US7509391B1 (en) 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
US6564274B1 (en) * 1999-12-17 2003-05-13 Omnicluster Technologies, Inc. Modular architecture for small computer networks
US6609034B1 (en) * 2000-03-29 2003-08-19 Epicenter, Incorporated System and method for remotely controlling and monitoring a plurality of computer systems
US6463506B1 (en) * 2000-04-29 2002-10-08 Hewlett-Packard Company Arrangement of data within cache lines so that tags are first data received
US6742160B2 (en) * 2001-02-14 2004-05-25 Intel Corporation Checkerboard parity techniques for a multi-pumped bus
US6742145B2 (en) * 2001-03-01 2004-05-25 International Business Machines Corporation Method of de-allocating multiple processor cores for an L2 correctable error
US7032134B2 (en) * 2001-03-28 2006-04-18 Intel Corporation Microprocessor design support for computer system and platform validation
DE10128475A1 (de) * 2001-06-12 2003-01-02 Siemens Ag Mehrprozessorsystem mit geteiltem Arbeitsspeicher
US6789155B2 (en) * 2001-08-29 2004-09-07 Micron Technology, Inc. System and method for controlling multi-bank embedded DRAM
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US7000046B1 (en) * 2003-01-17 2006-02-14 Unisys Corporation Standard channel I/O processor (SCIOP)
US7099971B1 (en) * 2003-06-26 2006-08-29 Emc Corporation Arbitration system
JP4487756B2 (ja) * 2004-12-16 2010-06-23 日本電気株式会社 コンピュータシステム及びシステム監視プログラム
US8055852B2 (en) 2007-08-15 2011-11-08 Micron Technology, Inc. Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same
US7822911B2 (en) * 2007-08-15 2010-10-26 Micron Technology, Inc. Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
US8291174B2 (en) 2007-08-15 2012-10-16 Micron Technology, Inc. Memory device and method having on-board address protection system for facilitating interface with multiple processors, and computer system using same
US20090133022A1 (en) * 2007-11-15 2009-05-21 Karim Faraydon O Multiprocessing apparatus, system and method
US10026458B2 (en) 2010-10-21 2018-07-17 Micron Technology, Inc. Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size
CN102207852A (zh) * 2011-05-27 2011-10-05 清华大学 动态可重构处理器内子单元间进行数据交互的系统和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2027237A (en) * 1978-07-06 1980-02-13 Cii Honeywell Bull Method and arrangement for guaranteeing the coherence of data between masks and other memories on a data-processing system which operates by multiprocessing
EP0037875A1 (fr) * 1980-04-10 1981-10-21 Siemens Nixdorf Informationssysteme Aktiengesellschaft Système d'ordinateur modulaire

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3566363A (en) * 1968-07-11 1971-02-23 Ibm Processor to processor communication in a multiprocessor computer system
US3710324A (en) * 1970-04-01 1973-01-09 Digital Equipment Corp Data processing system
US3665404A (en) * 1970-04-09 1972-05-23 Burroughs Corp Multi-processor processing system having interprocessor interrupt apparatus
FR2273317B1 (fr) * 1974-05-28 1976-10-15 Philips Electrologica
US4130865A (en) * 1974-06-05 1978-12-19 Bolt Beranek And Newman Inc. Multiprocessor computer apparatus employing distributed communications paths and a passive task register
US4141067A (en) * 1977-06-13 1979-02-20 General Automation Multiprocessor system with cache memory
US4190885A (en) * 1977-12-22 1980-02-26 Honeywell Information Systems Inc. Out of store indicator for a cache store in test mode
US4229791A (en) * 1978-10-25 1980-10-21 Digital Equipment Corporation Distributed arbitration circuitry for data processing system
US4232366A (en) * 1978-10-25 1980-11-04 Digital Equipment Corporation Bus for a data processing system with overlapped sequences
US4513390A (en) * 1979-06-08 1985-04-23 Planning Research Corporation System for digital transmission and synthesis of integrated data
IT1122890B (it) * 1979-08-30 1986-04-30 Honeywell Inf Systems Italia Sistema a microprocessori con struttura modulare a bus e configurazione espandibile
BE887134A (fr) * 1979-12-14 1981-05-14 Gte Automatic Electric Lab Inc Circuit expanseur d'interruption
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
US4400773A (en) * 1980-12-31 1983-08-23 International Business Machines Corp. Independent handling of I/O interrupt requests and associated status information transfers
US4439829A (en) * 1981-01-07 1984-03-27 Wang Laboratories, Inc. Data processing machine with improved cache memory management
US4420806A (en) * 1981-01-15 1983-12-13 Harris Corporation Interrupt coupling and monitoring system
US4504902A (en) * 1982-03-25 1985-03-12 At&T Bell Laboratories Cache arrangement for direct memory access block transfer
US4570217A (en) * 1982-03-29 1986-02-11 Allen Bruce S Man machine interface
US4562535A (en) * 1982-04-05 1985-12-31 Texas Instruments Incorporated Self-configuring digital processor system with global system
US4539637A (en) * 1982-08-26 1985-09-03 At&T Bell Laboratories Method and apparatus for handling interprocessor calls in a multiprocessor system
DE3235739C2 (de) * 1982-09-27 1984-07-12 Nixdorf Computer Ag, 4790 Paderborn Verfahren zur Vorbereitung der Anschaltung einer von mehreren datenverarbeitenden Einrichtungen an eine zentral taktgesteuerte Mehrfach-Leitungsanordnung
US4591976A (en) * 1983-06-17 1986-05-27 The United States Of America As Represented By The Secretary Of The Air Force Multiple task oriented processor
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
DE3584690D1 (de) * 1984-06-20 1992-01-02 Convex Computer Corp Ein-/ausgabebus fuer rechner.
CA1239227A (fr) * 1984-10-17 1988-07-12 Randy D. Pfeifer Methode et dispositif d'ordonnancement des operations dans un systeme multiprocesseur

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2027237A (en) * 1978-07-06 1980-02-13 Cii Honeywell Bull Method and arrangement for guaranteeing the coherence of data between masks and other memories on a data-processing system which operates by multiprocessing
EP0037875A1 (fr) * 1980-04-10 1981-10-21 Siemens Nixdorf Informationssysteme Aktiengesellschaft Système d'ordinateur modulaire

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 25, no. 5, octobre 1982, pages 2641-2642, P. HENNET et al.: "Programmable interrupt vectors in processors" *
IEEE MICRO, vol. 5, no. 1, février 1985, pages 53-66, New York, US; H. KIRRMANN: "Events and interrupts in tightly coupled multiprocessors" *

Also Published As

Publication number Publication date
AU5340486A (en) 1986-09-04
US5067071A (en) 1991-11-19
FR2578071B1 (fr) 1990-01-12
JPS6231465A (ja) 1987-02-10
GB8604787D0 (en) 1986-04-03
DE3606211A1 (de) 1986-12-04
GB2171542A (en) 1986-08-28
AU582822B2 (en) 1989-04-13

Similar Documents

Publication Publication Date Title
FR2578071A1 (fr) Installation de multitraitement a plusieurs processus
TWI317482B (en) Wide-port context cache apparatus, systems and methods, and machine-accessible medium having associated information
FR3072797A1 (fr) Synchronisation dans un agencement de traitement a paves multiples et a puces multiples
EP0063071B1 (fr) Procédé et dispositif de transmission de données numériques
FR3072801A1 (fr) Synchronisation dans une matrice de traitement a paves multiples
FR2637997A1 (fr) Procede et dispositif pour mettre en file d'attente des requetes et des reponses sur un bus
US7464208B2 (en) Method and apparatus for shared resource management in a multiprocessing system
CN102402493B (zh) 用于共享数据总线的层级式缓冲器系统的系统和方法
FR2561009A1 (fr) Systemes de traitement de donnees comportant au moins deux unites de traitement de donnees ayant chacune acces aux memes donnees
FR2519442A1 (fr) Systeme d'attribution de l'acces a un bus utilise en mode partage
EP0121030A1 (fr) Dispositif d'arbitrage pour l'attribution d'une ressource commune à une unité sélectionnée d'un système de traitement de données
EP3295293B1 (fr) Opérations d'écriture concurrentes sans verrou à fil sécurisé destinées à être utilisées avec une journalisation en ligne multifil
FR2617304A1 (fr) Sequenceur d'entrees/sorties programmable pour processeur d'entree/sortie
EP0063972A1 (fr) Procédé et dispositif d'allocation d'une ressource dans un système comportant des unités de traitement de données autonomes
EP2438528A1 (fr) Procédé et dispositif de chargement et d'exécution d'instructions à cycles déterministes dans un système avionique multi-coeurs ayant un bus dont le temps d'accès est non prédictible
CA2108812C (fr) Dispositif de resequencement pour un noeud d'un systeme de commutation de cellules
CA2108809C (fr) Dispositif de resequencement pour un noeud d'un systeme de commutation de cellules
CH621201A5 (fr)
EP1132818A2 (fr) Interface multi-processeur et schéma de synchronisation et d'arbitrage utilisant mémoire partagée à multiplexage temporel pour systèmes à temps réel
EP0580727B1 (fr) Circuit coupleur et son utilisation dans une carte et procede
EP1081597A1 (fr) Dispositif à plusieurs processeurs ayant une interface pour une mémoire collective
FR2759178A1 (fr) Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
EP0822495B1 (fr) Distribution de tickets dans un système informatique multinodal
EP0082903B1 (fr) Unité de commande pouvant être connectée à deux mémoires de vitesses différentes
EP0177429B1 (fr) Procédé d'échange d'informations entre abonnés par bus en anneau et dispositif multiprocesseur en comportant application

Legal Events

Date Code Title Description
ST Notification of lapse