FR 2028346 A1 19701009 FR 6944501 A 19691222 69 44501 1 2028346 Les besoins techniques actuels ont conduit à la réalisation d'ordinateurs électroniques de plus en plus importants et de plus en plus compliqués. La réalisation d'un système permettant de satisfaire à ces besoins est possible grâce à l'utilisation d'éléments de circuits fonctionnant à grande vitesse et moins 5 coûteux que par le passé. Le rendement des ordinateurs a pu être augmenté par une meilleure organisation. On porte de plus en plus d'intérêt aux systèmes de multi-traitement dans lesquels on utilise plusieurs unités de traitement autonomes qui peuvent se partager une tâche commune ou qui peuvent traiter des tâches totalement distinctes. 10 Dans un tel système de multi-traitement on doit prévoir des dispositifs pour commander le fonctionnement d'éléments du système tels que celui des dispositifs de traitement, des emplacements de mémoire et des dispositifs entrée/sortie I/O pour traiter la charge globale de travail présentée au système par les divers usagers. Les fonctions que doit réaliser cette partie du 15 système sont souvent appelées "fonctions d'exécution". Elles sont déterminées par les exigences de l'ensemble des usagers. Les procédés disponibles pour réaliser ces fonctions et leur efficacité dépendent de certaines propriétés de la structure du système, de la structure donnée par les usagers et le système à l'information traitée et de la structure 20 des procédés que crée le système pendant le fonctionnement. Le but d'un ordinateur est d'obtenir le rendement le meilleur possible compatible avec l'observation d'une série d'objectifs de fonctionnement généraux qui peuvent se résumer par la condition qu'un usager reçoive le bénéfice total résultant du grand nombre de dispositifs et d'informations existant dans les 25 systèmes afin de rendre un service dans un intervalle de temps déterminé à un usager (sujet à des limitations de capacité) au prix le moins élevé possible. Pour décrire la présente invention on doit en premier lieu définir certains termes. Un système de multi-traitements est considéré comme un système de calcul qui comprend plusieurs unités de traitement autonomes partageant l'accès à une 30 zone d'emmagasinage commune ou mémoire et capable d'exécuter des programmes simultanément. Le terme "travail" est utilisé pour désigner toute l'activité qui se produit dans le système lorsqu'une demande d'un usager individuel pour réaliser un calcul est acceptée. Un système de multi-traitement est capable de traiter plusieurs travaux indépendants simultanément. 35 On sait que de nombreux travaux peuvent être dissociés en séquences d'exé cutions d'instructions qui sont indépendantes les unes des autres du point de vue logique. Ces séquences peuvent être appelées "tâches". Etant donné un travail qui est composé de plusieurs tâches, un système de multi-traitement peut être réalisé pour traiter ces tâches simultanément. Ce mode de fonctionnement 40 est appelé "traitement parallèle". 69 44501 2 2028346 La présente invention permet de résoudre le problème de réaliser des dispositifs qui permettent aux tâches d'exécution et des usagers se produisant simultanément d'agir les unes sur les autres en des points appropriés sans avoir à intercaler dans les programmes de nombreuses instructions de test dans 5 ce but, ce qui ferait perdre les emplacements de mémoire et des cycles d'emmagasinage. Dans l'art antérieur on a fait plusieurs tentatives pour réaliser des systèmes de multi-traitement de diverses dimensions comprenant des commandes qui reposent sur des connexions spécialisées du point de vue fonction entre les 10 systèmes de traitement pour réaliser 1'intéraction entre les tâches, cependant, cette solution est côuteuse et elle est limitée du point de vue fonction. Le brevet n° 1 5 46 905 déposé par la demanderesse en FRANCE le 27.11.1967 et la demande de brevet n° PV 9 227 AM déposée par la demanderesse en FRANCE le 19.6.68 décrivent un système de multi-traitement utilisant un bus d'intéraction 15 commun et des dispositifs de commande d'intéraction individuel associé à chaque unité de traitement. Chacun des dispositifs de commande d'intéraction peut communiquer avec un autre de ces dispositifs de commande d'intéraction par le bus. Cependant, cette solution bien qu'elle soit supérieure aux autres solutions de l'art antérieur nécessitent beaucoup de circuits et un bus d'in-20 téraction spécial. La demande de brevet n° 69 20439 déposée par la demanderesse en FRANCE le 19.6.69 utilise les bus des modules de mémoire existants pour la communication d'intéraction cependant le système décrit dans ce brevet nécessite un certain nombre de commandes de transfert spécialisées et de systèmes de commande spé- 25 cialisés, à la fois dans les unités de traitement individuelles et dans la mémoire pour envoyer et recevoir les messages. Pour les systèmes plus petits et moins coûteux il est naturellement souhaitable de. réaliser un système de multi-traitement ayant aussi peu que possible de dispositifs supplémentaires ou spécialisés. 30 On a trouvé que l'on peut réaliser une communication satisfaisante entre les unités de traitement individuelles dans un système de multi-traitement comprenant plusieurs unités de traitement individuelles de bus, une mémoire centrale, et bus pour connecter les unités de traitement individuelles à la * mémoire centrale en prévoyant des zones d'emmagasinage spéciales pour la fonc-35 tion de commande fondamentale de chaque unité de traitement dans la mémoire centrale. Les commandes du système utilisent les cycles des machines existants ainsi que les circuits existants pour laisser l'information de message pour une unité de traitement destinataire possible dans la mémoire centrale et aussi pourprendre l'information dans la mémoire centrale à partir d'une unité 40 de traitement émettrice. 69 44501 3 2028346 Le système utilise ainsi les chemins de données, les cycles d'exécution, et les circuits existants. En ajoutant un minimum de circuits de commande supplémentaires, et en prévoyant un petit espace de mémoire supplémentaire, on peut réaliser une liaison de communication pratique d'une unité de traitement 5 à une autre. Un principal objet de la présente invention est de réaliser une possibilité d'inter-communication dans un système de multi-traitement utilisant un minimum de circuits supplémentaires. Un autre objet de l'invention est de réaliser un système de multi-traite-10 ment dans lequel les liaisons de données existantes et la mémoire centrale commandent l'établissement de circuits de transmission de messages. Un autre objet de la présente invention est de réaliser un système de multi-traitement dans lequel est alloué un espace de mémoire supplémentaire pour emmagasiner les indications de réception des messages et de transmission 15 pour garder la trace des opérations réalisées dans le système. Un autre objet de l'invention est de réaliser un système danà lequel les commandes d'exécution des unités de traitement fonctionnent de façon classique en l'absence d'indication de réception et de transmission de messages mais qui peuvent changer leur fonctionnement lorsque c'est nécessaire suivant les condi-20 tiens du message. Un autre objet de 1'inventionest de réaliser un tel système dans lequel les circuits existants sont utilisés dans chaque unité de traitement et dans la mémoire centrale pour envoyer et recevoir les messages à l'aide d'un emplacement d'emmagasinage spécial dans la mémoire centrale. 25 D'autres objets, caractéristiques et avantages de la présente invention rassortiront mieux de l'exposé qui suit fait en référence aux dessins annexés à ce texte qui représentent un mode de réalisation préféré de celle-ci. La figure 1A représente un bloc diagramme d'une réalisation préférée d'un système de multi-traitement général montrant la mémoire centrale et 30 plusieurs unités de traitement. La figurelB représente un bloc diagramme du fonctionnement des commandes des unités de traitement individuelles nécessaires pour la présente invention. La figure 2 montre comment doivent être disposées les figures 2A, 2B. Les figures 2A-2B représentent un diagramme schématique logique et forre-35 tionnel des commandes des unités de traitement individuelles nécessaires pour mettre en oeuvre la présente invention. La figure 3 représente un organigramme d'une séquence d'instructions pour une unité de traitement classique indiquant le point de branchement où il est nécessaire d'envoyer et de recevoir les commandes de messages. 40 La figure 4 représente un organigramme de l'horloge S indiquant les opéra- 69 44501 4 2028346 tions réalisées pendant une séquence d'émission. La figure 5 représente un organigramme de l'horloge T représentant une opération de recherche de message. La figure 6 représente le format de la mémoire de commande spécial indi-5 quant le contenu des données et les adresses associées pour la zone d'emmagasinage supplémentaire dans la mémoire centrale nécessaire pour mettre en oeuvre la présente invention. Les objets de la présente invention sont atteints en utilisant une communication entre une unité de traitement à un centre dans un système de multi-trai-10 tement comprenant une mémoire centrale et plusieurs unités de traitement individuelles servies par elle. Le procédé comprend les étapes qui consistent à prévoir une zone d'emmagasinage dans la mémoire centrale dans des emplacements fixes prédéterminés pour chaque unité de traitement afin d'emmagasiner l'information ée message, exécuter les instructions dans chaque unité de 15 traitement d'une manière classique jusqu'à ce que soit détectée une instruction "envoyer un message" et trouver l'unité de traitement destinataire déterminée par cette instruction "envoyer un message". On accède ensuite à un emplacement d'emmagasinage déterminé fixe pour l'unité de traitement destinataire et les données identifiant le message sont emmagasinées dans ledit emplacement de 20 mémoire. A la fin de l'opération d'emmagasinage, l'unité de traitement émet-trice reprend sa séquence d'exécution d'instructions normales. A des instants prédéterminés fixes, pendant le cycle de chaque unité de traitement, l'unité de traitement accède à la mémoire centrale à son propre emplacement d'emmagasinage prédéterminé fixe pour déterminer si une information de message est 25 présente dans cet emplacement. S'il en est ainsi, l'unité de traitement interrogatrice .en est avertie et on accède à l'information du message et la tâche demandée est réalisée suivant une priorité prédéterminée fixe. A l'exécution du message, la mémoire centrale est ramenée à son état intial à l'emplacement d'emmagasinage prédéterminé fixe. 30 Les principes de la présente invention tels qu'ils sont décrits ici, sup posent que le système de multi-traitement comporte une mémoire centrale, dans laquelle est prévue une zone d'emmagasinage de la valeur du dispositif de chronologie et un emplacement de mot de donnée prédéterminé pour chaque unité * de traitement dans le système et ce mot est utilisé pour représenter la valeur 35 du dispositif de chronologie de l'unité de traitement. Avec les systèmes classiques par exemple avec le système IBM 360 modèle 50, l'unité de traitement examine la valeur de son dispositif de chronologie périodiquement et continue à réaliser une tâche donnée tant que cette valeur n'est pas mise,à 1, ce qui indiquerait que c'est le moment d'introduire dans l'unité de traitement une 40 routine d'interruption du dispositif de chronologie. Dans de tels systèmes une 69 44501 5 2028346 horloge centrale diminue périodiquement le contenu du dispositif de chronologie d'une manière connue et lorsqu'une nouvelle tâche ou un nouveau travail est commencé le dispositif de chronologie est initialement chargé avec un nombre fixe déterminé par le superviseur. Un système de multi-traitement que l'on 5 trouve dans le commerce comprenant plusieurs unités de traitement individuelles partageant une mémoire centrale de grande capacité,le système IBM 9020 comprenant quatre unités de traitement constituées par des systèmes 360 modèle 50. Ainsi, est prévu dans de nombreux ordinateurs un mécanisme pour accéder au dispositif de chronologie périodiquement afin d'allouer correctement le temps 10 de l'unité de traitement à diverses tâches et travaux dans le système. La présente invention utilise ce fait en prévoyant un emplacement.d'emmagasinage supplémentaire pour la valeur du dispositif de chronologie de sorte que l'information du message peut être emmagasinée pour chaque unité de traitement individuelle du système en un point dans la mémoire qui est de préférence mais 15 pas nécessairement adjacent à l'emplacement normal de la valeur du dispositif de chronologie. Le système utilise aussi quelques circuits supplémentaires se présentant sous la forme d'une horloge "émission" qui est mise en route lorsque est détectée l'instruction "envoyer message" dans le registre d'instructions de l'unité de traitement individuelle. En bref ce mécanisme permet à l'infor-20 mation correcte d'être emmagasinée dans la zone d'emmagasinage prédéterminée pour l'unité de traitement "destinataire". Une horloge "réception" est aussi utilisée et elle est mise en route par la détection d'un signal "message" dans l'emplacement d'emmagasinage de la mémoire centrale pour une unité de traitement particulière pendant l'opération de vérification du dispositif de chrono-25 logie. A la détection d'un tel message, la tâche en cours de réalisation par l'unité de traitement destinataire est terminée aussitôt que possible et le service demandé par le message est réalisé par l'unité de traitement après quoi l'unité de traitement reviendra à la tâche interrompue. On doit comprendre que le message laissé par l'unité de traitement "émettri-30 ce" pour une unité de traitement destinataire doit être normalement une adresse dans la mémoire pour la première instruction d'une liste d'instructions qui constituera le message ou la liste de services demandés. Ainsi, le message laissé dans le dispositif de chronologie pour une unité de traitement destinataire doit être normalement une adresse et pas nécessairement une instruction déterminée. 35 il apparent d'après la description générale du système et la manière sui vant laquelle il fonctionne que le système peut être réalisé par un homme de l'art de différentes façons. On doit comprendre que la réalisation décrite est une réalisation qui utilise autant que possible les circuits fondamentaux et n'utilise que certains circuits de commande spécialisés supplémentaires quand 40 c'est nécessaire. 69 44S01 6 2028346 On va maintenant décrire l'invention en se référant aux dessins. Au cours de la description dB cette réalisation, on suppose que le système de multitraitement comporte plusieurs unités de traitement connectées à un système d'emmagasinage central commun ou mémoire. Ce système est représenté sur la fi-5 gure 1A et il est à noter que seules les unités de traitement et la mémoire centrale sont représentées. Les divers dispositifs entrée/sortie ne sont pas décrits car ce sont des dispositifs classiques et ils ne font pas partie de la présente invention. On suppose aussi que chaque unitéde traitement a un système d'interruption interne et comme on l'a dit précédemment, le système 10 global comporte une horloge qui est utilisée pour diminuer la valeur des divers dispositifs de chronologie des unités de traitement. La figure 1B constitue un diagramme schématique des unités fonctionnelles principales à l'intérieur de chaque unité de traitement du système représenté sur la figure 1A. Comme on l'a dit précédemment on suppose que chaque unité 15 de traitement comporte des canaux entrée/sortie qui partagent le temps des unités de traitement et qui sont classiques et ne sont pas représentés sur le dessin. On suppose aussi que chaque unité de traitement a un code condition et un registre emmagasine ce code, ce qui est classique dans les ordinateurs et ce que l'on trouve particulièrement dans les systèmes IBM 360. On suppose aussi 20 qu'une instructiond'exécution peut être réalisée par le système et qu'un mécanisme est prévu pour créer certains verrouillages analogues du point de vue fonction à l'instruction chargement et test du système IBM 360. L'instruction exécution diffère d'une instruction classique en ce qu'elle provoque l'exécution d'un mot à un emplacement déterminé sans changer autrement la séquence 25 des instructions à exécuter. L'existence de l'instruction d'exécution fournit un point de commande auquel le système de l'invention peut être connecté pour se servir des circuits existants comme cela deviendra apparent à partir de la description ultérieure du système et particulièrement de l'organigramme de la figure 3. 30 En se référant de nouveau à la figure 1B on peut voir que chaque unité de traitement comprend une mémoire centrale 10 et des commandes d'accès appropriées associées à un registre d'instructions 12 et à un décodeur 14. La sortie du décodeur va aux commandes d'exécution 16 qui sont classiques et auxquelles on , ne se référera que pour décrire certaines des bascules de fonctions spéciales 35 utilisées pour cpontrôler certaines opérations dans le mécanisme de la présente invention. La sortie la plus importante du décodeur est celle connectée à l'horloge "émission" 18 qui, comme on l'a dit précédemment est mise en route par une détection de l'instruction "envoyer message".Cette horloge règle alors la succession des opérations du système et provoque la réalisation des opérations 40 nécessaires qui laissent le message dans la mémoire centrale pour une unité de 69 44501 7 2028346 traitement destinataire. L'horloge "réception 20" (horloge Tl>comme on l'a dit précédemment est mise en route lorsqu'il faut vérifier périodiquement les dispositifs de chronologie dans la mémoire centrale, par les diverses unités de traitement du système. Lorsqu'on trouve un message pendant cette opération 5 de vérification, appelée "vérification dispositif de chronologie" sur le dessin, une séquence particulière "réception message" est amorcée dans l'horloge "réception 20". Le bloc 22 représente un additionneur qui peut être constitué soit par un additionneur de formation d'adresse spécialisé que l'on trouve généralement dans les gros systèmes ou dans un système plus petit, cet addi-10 tionneur sera constitué par un circuit spécialisé supplémentaire ayant la fonctiond'engendrer des adresses particulières et des paramètres pour les dispositifs de chronologie comme cela sera apparent d'après laldescription ultérieure. Les registres 24 sont simplement des registres de maintien spécialisés représentés dans la réalisation préférée et utilisés pour engendrer 15 des adresses particulières et des paramètres pour les dispositifs de chronologie □ans le diagramme schématique logique, des figures 2A, 2C sont représentés certains circuits de commande particuliers connectés à certaines des unités âe commande existantes telles que la bascule "exécution", la bascule "interruption dispositif de chronologie", la bascule "dispositif de chronologie" etc... et 20 recevant aussi des entrées à partir des horloges "émission" et "réception". Le fonctionnement de ces circuits de commande sera décrit en se référant aux figures 2A-2C et aux tableaux de la séquence des opérations. La figure 3 représente la fonction de balayage principale pour une des unités de traitement. En premier lieu, toute fonction I/O nécessaire est réa-25 lisée. Ensuite, une instruction est exécutée. Si cette instruction est une instruction d'exécution réalisée de façon satisfaisante, l'instruction objet est ensuite exécutée. La seule instruction qui concerne la présente invention est l'instruction "envoyer message". Sur la figure 3 on peut voir que l'exécution de cette instruction a lieu entre le point Y et le point Z et les détails de 30 cette exécution seront représentés en se référant à la figure 4. En continuant à se référer à la figure 3, on peut voir que lorsque l'instruction "non exécution" a été exécutée, l'état de la bascule "dispositif de chronologie" est vérifié. Cette bascule est enclenchée par le mécanisme d'horloge qui est utilisé pour amorcer la diminution de la valeur du dispositif de chronologie. Elle 35 est restaurée par une routine de manipulation du dispositif de chronologie classique. Cette routine est représentée sur la figure 5 et a lieu entre le point W d'une part et le point X1 et le point X2 d'autre part, sur la figure 3. Une fois que le dispositif de chronologie a été pris en considération, si c'est nécessaire, les demandes d'interruption en suspens sont traitées. L'unité 40 de traitement revient alors aux demandes des dispositif entrée/sortie une fois 69 44501 8 2028346 de plus. La figure 4 représente comment l'instruction "envoyer message" est exécutée. Un bloc de mémoire commençant à l'emplacement de mémoire BASE est réservé au 1) verrouillages 2) dispositifs de chronologie, 3) dispositifs de chronolo-5 gie et 4) remplaçant messages — un pour chacune des unités de traitement, ce qui fait au total quatre mots contigûs de mémoire attribués par unité de traitement. La figure 6 représente une partie typique de la mémoire centrale utilisée pour emmagasiner la valeur des dispositifs de chronologie et l'information 10 de message nécessaire pour mettre en oeuvre l'invention. Les adresses seront normalement engendrées dans l'additionneur 22. Comme indiqué sur la figure 6, chaque unité de traitement a sa propre série de quatre emplacements d'emmagasinage. Le "blocage" empêche à une unité de traitement d'utiliser la zone d'emma-15 gasinage pendant qu'une autre unité de traitement (soit une unité de traitement "émettrice", soit une unité de traitement "destinataire") utilise cette zone. C'est une opération de verrouillage classique. Le dispositif de chronologie comme on l'a dit précédemment, est le mécanisme utilisé de façon classique dans les systèmes comportant plusieurs unités de 20 traitement ou une unité de traitement unique, pour attribuer le temps des unités de traitement à divers travaux ou tâches. C'est ce dispositif de chronologie auquel on accède périodiquement, qui est vérifié, et dont la valeur est diminuée par un système de commande classique. Le dispositif de chronologie remplaçant est utilisé pour emmagasiner la 25 valeur du dispositif de chronologie d'une unité de traitement destinataire lorsqu'elle va recevoir un message et permet à l'unité de traitement destinataire de revenir à son travail précédent au même point après avoir réalisé la tâche du message. Finalement, le mot du "message" contiendra normalement l'adresse dans la 30 mémoire centrale de la première instruction du message ou le travail demandé à l'unité de traitement destinataire par l'unité de traitement émettrice. On va maintenant se référer à la figure 4 et on supposera que l'unité centrale de traitements a décodé une instruction "envoyer message" ; un champ n de cette instruction indique que le message est destiné à l'unité centrale de 35 traitement m et un autre champ indique l'adresse dans la mémoire centrale dans laquelle le message réel (instruction) est placé. En premier lieu, l'unité centrale de traitement s vérifié et bloque le verrouillage pour l'unité centrale de traitement m, placée à l'adresse BASE + 4m, ce qui assure qu'il ne se produit pas de chevauchement non désiré des 40 références au dispositif de chronologie, au dispositif de chronologie remplaçant M 44501 g 2028346 et aux mots de message pour l'unité centrale de traitement m. Lorsqu'elle a obtenu un accès exclusif en bloquant le verrouillage (en supposant qu'élle était débloquée} l'unité centrale de traitement s oérifie le dispositif de chronologie pour l'unité centrale de traitement m. La valeur de ce dispositif 5 de chronologie sera nulle lorsqu'il y a un message qui attend pour l'unité centrale de traitement m et uniquement dans ce cas. La valeur du code condition après l'exécution d'une instruction "envoyer message" indique si il y a déjà un message qui attend. S'il n'y a pas de message qui attend, l'unité centrale de traitement s place la valeur du dispositif de chronologie à l'emplacement 10 du dispositif de chronologie remplaçant et met des zéros dans l'emplacement du dispositif de chronologie pour indiquer qu'un message attend. Elle place ensuite ce message provenant de son propre registre d'instructions dans l'emplacement du mot du message Bt libère le verrouillage. Si au contraire il y a un message qui attend on a le choix entre deux actions, et ce choix est 15 réalisé par un bit dans l'instruction, appelé bit de choix. Si ce bit est nul aucun message n'est placé et la seule action est de libérer le verrouillage. D'autre part, si ce bit est égal à 1, le message auquel se rapporte cette instruction est écrit sur le message attendant, il n'est pas nécessaire de modifier le dispositif de chronologie puisqu'il a été restauré de façon appro-20 priée lorsque le message précédent a été mis en place. Evidemment il y a de nombreuses autres façons de traiter les messages multiples en restant dans le cadre et l'esprit de la présente invention. Ils peuvent par exemple être mis en chaine de la manière classique ou bien à la place d'un seul mot de message il peut y avoir un bloc de mots un pour chacune des autres unités de traite-25 ment dans le système. La figure 4 représente ainsi comment les messages sont disposés pour les unités de traitement. Ce procédé est commandé par l'horloge S mentionnée précédemment. La figure 5 représente comment les messages sont captés et traités et comment ce traitement est inséré dans les procédés déjà connus pour 30 diminuer la valeur des dispositifs de chronologie et engendrer les interruptions des dispositifs de chronologie. Cette dernière opération est essentiellement commandée par l'horloge T. Les séquences des horloges S et T sont décrites en détail dans les tableaux représentant la succession des opérations. Si à la fin de l'exécution d'une instruction "NON-EXECUTION" la bascule 35 de l'horloge de l'unité centrale de traitement m est enclenchée par un mécanisme d'impulsions bien connu, cette unité de traitement a un accès exclusif à son dispositif de chronologie, à son dispositif de chronologie remplaçant et aux zones de messages dans la mémoire centrale comme représenté sur la figure 5. On peut noter que l'opération de verrouillage est la même pour mettre en 40 place les messages, pour diminuer la valeur des dispositifs de chronologie, et 69 44501 10 2028346 recevoir les messages. Ensuite, il restaure sa bascule d'horloge de sorte qu'au cours du cycle suivant de l'unité de traitement (une fois qu'une autre instruction a été exécutée) le dispositif de chronologie qui ne sera pas de nouveau servi.à moins qu'une autre impulsion d'horloge se soit produite. 5 L'unité de traitement recherche et examine son dispositif de chronologie si ce dispositif n'est pas nul il n'y a pas de message qui attend. D'autre part, si ce dispositif de chronologie est nul, il y a alors un message, l'unité de traitement recherche ce message et le place dans son registre d'instruction (IR), enclenchant la bascule EXECUTION, de sorte que ce message sera exécuté comme 10 instruction ultérieure, elle recherche aussi le dispositif de chronologie à partir de l'emplacement du dispositif de chronologie remplaçant. Dans l'un ou l'autre cas", la valeur exacte du dispositif de chronologie est maintenant dans le registre de donnée DR. De manière classique, ce registre est diminué de 1 et si le résultat est nul, une bascule demandant un cycle d'interruption 15 du dispositif de chronologie est enclenchée et la valeur du dispositif de chronologie est remplacée par la valeur maximum, c'est-à-dire la valeur ne contenant que des 1. Que le dispositif de chronologie soit devenu nul ou non, la nouvelle valeur est maintenant emmagasinée dans l'emplacement du dispositif de chronologie et le blocage pour l'unité centrale de traitement m est annulé. 20 S'il n'y a pas de message, l'unité de traitement continue pour considérer les interruptions possibles. S'il y a un message l'unité de traitement restaure sa bascule exécution, et passe à la partie de son cycle qui suit l'exécution réussie d'une instruction d'exécution, ainsi le message qui est maintenant dans le registre d'instruction est exécuté. Le message peut par exemple provoquer le 25 chargement ou l'emmagasinage des données, ou un branchement, ou une interruption du type "demande du superviseur". La description précédente des tableaux représentés sur les figures 3,4,5 et la description de la zone d'emmagasinage spéciale de la mémoire centrale représentée sur la figure B achève la description des concepts généraux de la 30 présente invention. On pense qu'en utilisant cette description et les diverses suggestions qu'elle contient, l'homme de l'art peut modifier la plupart des systèmes de multi-traitement pour réaliser une communication unité de traitement à unité de traitement avec le moins possible de circuits spécialisés supplémentaires. 35 La description qui suit est une représentation d'une réalisation particu lière préférée représentée, sur les figures 2A, 2C (appelée ensuite figure 23. Cependant, les détails de la réalisation ne sont pas donnés pour limiter l'invention. Avant de passer à la description détaillée de la figure 2 on notera que 40 les tableaux suivants déterminent les opérations particulières du système néces 69 44501 11 2028346 saires pour réaliser les instructions- représentées sur les organigrammes des figures 3 à 5 et particulièrement nécessaires pour les circuits de la figure 2. Ainsi, l'horloge S correspond à l'horloge émission 18 de la figure 1B et l'horloge T correspond aux séquences comprises dans l'horloge de réception 20 5 sur la figure 1B. On notera que les étages d'horloge particuliers ne sont pas représentés sur les figures car ce sont des circuits classiques et ils comprennent une série de monostables ayantune entrée qui met en route l'étage et dans lesquels une première impulsion de sortie est produite lorsque l'étage d'horloge est 10 enclenché et une seconde impulsion de sortie est produite lorsque l'étage d'hors loge est restauré. L'impulsion correspondant à l'état enclenché est normalement utilisée pour amorcer les diverses séquences de commande énunérées et représentées dans les diagrammes schématiques logiques comme indiqué par les légendes et l'impulsion correspondant à l'état restauré peut être utilisée pour 15 enclencher un autre étage ou avec d'autres signaux pour tester et effectuer un branchement à d'autres étages non séquentiels. L'étage d'horloge S8 par exemple est enclenché par la restauration de l'étage S7, l'impulsion S8 est produite par l'étage, et la restauration de cette étage enclenche l'étage S9. TABLEAU DES SEQUENCES DE CHRONOLOGIE 20 HORLOGE S Cette horloge délivre l'information du message à la mémoire centrale. 51 (mis en route par le décodage d'une instruction "envoyer message") transfère le champ d'identification du CPU et de BASE dans le 25 registre d'instruction IR, à l'additionneur et transfère la sortie de l'additionneur au registre d'adresse AR. passe à S2. 52 Remet à zéro la bascule opération terminée. demande une opération "de blocage" 30 passe à S3. 53 ne sert que de retard passe à S4 54 Si la bascule opération terminée est à 1. passe à S5 35 Autrement passe à S3 55 si la bascule "mémoire bloquée" est à 1, passe à S6 Autrement passe à S7. 56 ne sert que de retard 40 passe à S2 69 44501 12 2028346 57 Transfère le champ BASE, et CPU du registre IR, et un 1 à l'additionneur et transfère la sortie de l'additionneur au registre AR. • Passe à S8 58 Restaure la bascule "opération terminée" à 0 5 demande une opération de recherche passe à S9 SS Ne sert que de retard passe S10 510 Si la bascule "opération terminée " est à 1 10 passe à S11 autrement passe à SS 511 Si le 'contenu duregistre de donnée est égal à 0 passe à S12 autrement passe à S13 15 S12 met le code condition à 1 si le bit de choix de l'instruction est 1 passe à S21 autrement passe à S29 513 met le code condition à 0 transfère le champ de BASE et CPU du registre IR et un 2 à l'additionneur 20 st transfère la sortie de l'additionneur au registre AR passe à S14 514 met la bascule "opération terminée" à 0 demande une opération d'emmagasinage passe à S15 25 S15 ne sert que de retard passe à S1B S16 Si la bascule "opération terminée" est à 1 passe à S17 autrement passe à S15 30 S17 Transfère des zéros au registre de donnée. Transfère le champ BASE et CPU du registre IR, et un 1 à l'additionneur et transfère la sortie de l'additionneur au registre AR Passe à S18 - S18 Remet la bascule opération terminée à 0 35 demande une opération d'emmagasinage passe à S19 519 ne sert que de retard passe à S 20 520 Si la bascule opération terminée est à 1 40 passe à S21 69 44501 13 2028346 autrement passe à S 19 521 transfère le champ d'adresse de IR au registre AR passe à 5 22 522 restaure la bascule opération terminée à 0 5 demande une opération de recherche passe à S23 523 retard uniquement passe à S24 524 si la bascule opération terminée est à 1 10 passe à S 25 autrement passe à S23 525 transfère le champ BASE et CPU du registre IR et un trois à l'additionneur et transfère la sortie de l'additionneur au registre AR passe à S 26 15 S26 restaure la bascule opération terminée à 0 demande une opération d'emmagasinage passe à S27 S27 retard uniquement passe à S28 20 S28 si la bascule opération terminée est à 1 passe à S29 autrement passe à S 27 529 transfère le champ BASE et CPU du registre IR à l'additionneur transfère la sortie de l'additionneur à AR 25 passe à S30 530 restaure la bascule opération terminée à 0 demande une opération de "déblocage" passe à S 31 531 retard uniquement 30 passe S32 532 Si la bascule opération terminée est à 1 passe à S33 autrement passe à S 31 533 Envoie le signal opération horloge S terminée (qui mettra en route 35 l'horloge T si la bascule du dispositif de chronologie est à 1 autrement met en route l'horloge de vérification d'interruption) et arrête l'horloge S. On va maintenant décrire l'horloge T. Cette horloge recueille l'information de message à partir de la mémoire 40 centrale et du dispositif de chronologie. 69 44501 14 2028346 T1 (amorcé par la séquence du dispositif de chronologie dans les commandes du CPU) transfère le champ BASE et le numéro d'identification du CPU à l'additionneur et la sortie de l'additionneur au registre 5 d'adresse AR passe à T2 T2 restaure la bascule opération terminée à 0 demande une opération de blocage passe à T3 10 T3 retard uniquement passe à T4 T4 si la bascule opération terminée est à 1 passe à T5 autrement passe à T3 15 T5 si la bascule "mfimoire bloquée" est à 1 passe à T6 autrement passe à T7 TB retard uniquement passe à T2 20 T7 restaure la bascule du dispositif de chronologie transfère le champ BASE et le numéro d'identification du CPU et un 1 à l'additionneur et transfère la sortie de l'additionneur à AR. passe à T8 25 T8 restaure la bascule opération déterminée à 0 deman.de une opération de recherche passe à T9 T9 retard uniquement passe à T10 30 T10 si la bascule opération terminée est un 1 passe à T11 autrement passe à T9 T11 si le contenu du registre de données n'est constitué que par des zéros passe à T12 35 autrement passe à T20 T12 met la bascule exécution à 1 transfère le champ BASE, l'identification du CPU et un 3 à l'additionneur et transfère la sortie de l'additionneur à AR passe à T13 40 T13 restaure la bascule opération terminée à 0 69 44501 15 2028346 demande une opération de recherche passe à T14 T14 retard uniquement passe à T15 5 T15 si la bascule opération terminée est à 1 passe à T16 autrement passe à T14 T16 transfère le contenu du registre de donnée DR au registre d'instruction IR 10 Transfère le champ base, et l'identification du CPU et un 2 à l'additionneur et transfère la sortie de l'additionneur à AR passe à T17 T17 restaure à 0 la bascule opération terminée demande une opération de recherche 15 passe à T18 T1B retard uniquement passe à T19 T19 si la bascule opération terminée est à 1 passe à T20 20 autrement passe à T18 T20 transfère le contenu du DR et -1 à l'additionneur passe à T21 T21 transfère la sortie de l'additionneur à DR si cette sortie est 0 passe à T22 25 Si la sortie n'est pas nulle et que la bascule d'exécution est à 1 passe à T23 autrement passe à T24 T22 Met à 1 la bascule "interruption dispositif de chronologie" Transfère des 1 au registre DR 30 Si la bascule "Exécution"est à 1 passe à T23 Autrement passe à T24 T23 Transfère le champ BASE et l'identification du CPU et un 1 à l'additionneur et transfère la sortie de l'additionneur au registre AR 35 passe à T24 T24 restaure la bascule opération terminée à 0 demande une opération d'emmagasinage passe à T25 T25 retard uniquement 40 passe à T2B M 44501 16 2028346 T26 si la bascule opération terminée est à 1 passe à T27 autrement passe à T25 T27 transfère champ BASE et l'identification CPU à l'additionneur 5 et transfère la sortie de l'additionneur à AR passe à T28 T28 restaure la bascule opération terminée à 0 demande une opération de déblocage passe à T29 10 T29 retard uniquement passe à T30 T30 si la bascule opération terminée BSt à 1 passe à T31 autrement passe à T29 15 T31 si la bascule exécution est à 1 passe à T33 autrement passe à T32 T32 envoie un signal pour mettre en route l'horloge de vérification d'interruption et arrête l'horloge T T33 restaure la bascule exécution à 0 20 passe à T34 T34 envoie un signal pour mettre en route l'horloge d'exécution d'instruction et arrête l'horloge T. Avant de passer à la description du fonctionnement du système en se reportant au tableau précédent, on va faire les commentaires généraux suivants con-25 cernant la réalisation de la figure 2. Il est à noter que les parties principales de cette réalisation portent les mêmes caractères de référence que sur la figure 1B. On notera que le décodeur 14 et la commande d'exécution classique 13 ne sont pas représentés sur la figure 2 car ce sont des circuits classiques, la seule caractéristique importante du décodeur 14 étant que l'iden-30 tification d'une instruction "envoyer message" il enclenchera la séquence d'horloge S1. Les diverses bascules spécialisées représentées sur les dessins telles que les bascules "opération terminée", "interruption dispositif de chronologie", "dispositif de chonologie" et "exécution" seront contenues dans " cette unité. On n'a représenté que les bascules ou autres éléments d'emmaga-35 sinage bistables nécessaires pour décrire la présente invention. Les registres 24 sont entourés par une ligne en pointillés et ils portent la référence 24 sur la figure 2. Pendant la description du fonctionnement du système des numéros de référence supplémentaires peuvent être utilisés pour déterminer plus particulièrement un de ces registres 24. 40 On va maintenant passer la description de la réalisation de la présente M 44501 17 2028346 invention, on supposera qu'une instruction a été décodée dans le registre d'instruction 12 demandant une opération "envoyer message". Ceci met en route l'horloge S. L'impulsion S1 est appliquée au circuit OU 100, qui conditionne la porte 5 102 pour transférer le contenu du champ CPU du registre d'instruction 12 à l'additionneur 22. S1 est aussi appliqué au circuit OU 104 qui conditionne la porte 106 pour transférer le champ BASE dans l'additionneur 22. On notera que la multiplication du numéro d'identification du CPU par 4 est effectuée par un décalage à gauche de deux positions, étant supposé que le système est un 10 système binaire. Ce nombre est alors ajouté au champ BASE et transféré dans le registre d'adresse 11 en appliquant l'impulsion S1 au circuit OU 108 qui conditionne la porte 110. La restauration de S1 met en route S2. S2 est appliqué au circuit OU 112 pour amorcer une opération de blocage dans le mécanisme d'accès à la mémoire de l'unité de traitement et qui met 15 l'impulsion de blocage pour le CPU m à 1. L'impulsionest aussi appliquée au circuit OU 114 pour restaurer la bascule opération tenninée à 0. La restauration de l'étage S2 met en route S3. Cet étage ne sert que de retard et son blocage met en route S4. L'impulsion S4 est appliquée à une porte 116 et si la bascule opération terminée est mise à 1, l'étage S5 sera mis en route simul-20 tanément. S4 est appliqué à la porte 118 et si la bascule opération terminée est encore à 0 le système passera à l'étage S3. En supposant que le système se branche à l'état S5, cette impulsion vérifie l'état dé la bascule "mémoire bloquée". S5 est appliquée à la porte ET 122 qui reçoit son autre entrée à partir de la sortie 1 de la bascule "mémoire bloquée" et fera passer à l'étage 25 S6 qui est un étage de retard et ramène à l'étage S2. L'impulsion S5 est appliquée simultanément à la porte ET 122 qui reçoit une seconde entrée à partir de la sortie 0 de la bascule "mémoire bloquée". Si cette bascule est à 0 ceci signifie que l'emplacement d'emmagasinage de la valeur du dispositif de chronologie de l'unité de traitement destinataire peut être, accédée et que le sys-30 tème peut passer à l'étage S7. L'impulsion S7 est appliquée à la porte OU 104 pour exciter la porte 106 afin de transférer le champ BASE à l'additionneur 22. Simultanément S7 est aussi appliqué à la porte OU 100 et à la porte 102 pour transférer le numéro du CPU à l'additionneur 22 où il est, comme on l'a dit précédemment multiplié 35 par 4 par'décalage. Finalement S7 est appliqué aux portes OU 124 et 126 pour exciter les portes 128 et 130 afin de tran'sférer un 1 supplémentaire dans l'additionneur pour obtenir l'adresse BASE +(4xm+1). S7 est aussi appliqué au circuit OU 108 à la porte 110 pour transférer la sortie de l'additionneur dans le registre d'adresses 11. La restauration de S7 met en route S8. 40 S8 est appliqué au circuit OU 132 qui amorce une opération de recherche 69 44501 18 2028346 dans les commandes d'accès à la mémoire du CPU et ainsi une recherche dans la mémoire centrale. S8 est aussi appliqué au circuit OU 114 pour.restaurer à 0 la bascule opération terminée. La restauration de S8 met en route S9. L'étage S9 ne sert que de retard et sa restauration met en route S10. S10 5 est utilisé pour tester l'état de la bascule opération terminée. S10 est appliqué simultanément aux portes ET 134 et 136 et suivant l'état de la bascule opération terminée, l'horloge passera à S11 si cette bascule est à 1 et reviendra à S9 si elle est à 0. En supposant que le système passe à S11 l'impulsion S11 est appliquée aux 10 circuits 138 et 140 qui testent le contenu du circuit de chronologie pour le CPU destinataire ce contenu étant maintenant dans le registre de donnée 13. Si il y a autre chose qu'un 0 dans le dispositif de chronologie il y aura un signal à la sortie de la porte OU 142. L'absence de signal de sortie à partir du circuit OU 142 sera inversé dans l'inverseur 144 pour produire une entrée 15 à la porte ET 138. L'autre entrée de cette porte ET vient de S11, ainsi, si il n'y a que des zéros, la séquence d'horloge S12 sera amorcée. D'autre part, si un signal de sortie provenant de la porte OU 142 produit une entrée au circuit OU 140, l'autre entrée fournie par S11 fera que le système se branchera à l'étage S13. 20 Dn suppose d'abord que le système se branche à l'étage S12. L'impulsion S12 est appliquée à la porte 146 et au circuit OU 148 ce qui conditionne la porte 150 pour transmettre un "01" dans le registre de code condition qui comme on l'a dit précédemment est utilisé par les circuits de commande des ordinateurs classiques. L'impulsion S12 est aussi appliquée aux circuits ET 152 et 154 25 pour voir si il y a un bit de choix. Si un 1 est présent, le système se branche à l'étage S21 et si il n'y en a pas le système se branche à l'étage S29. □ans le premier cas, ceci signifie que le nouveau message doit être écrit dans l'emplacement d'emmagasinage du message de l'unité de traitement destinataire indépendamment de l'existence d'un message antérieur et dans le der-30 nier cas, ceci signifie que le message doit être conservé. On suppose maintenant que S11 a fait passer à S13. Le déclenchement de S13 est appliqué à la porte 156 et à la porte OU 140 pour conditionner la porte 150 afin de mettre le code condition dans l'unité de traitement à 00. L'im-4 pulsion S13 est aussi appliquée au circuit OU 104 à la porte 106 pour trans-35 férer le champ BASE à l'additionneur 22 et elle est aussi appliquée au circuit 100 pour conditionner la porte 102 afin de transférer l'identification du CPU à l'additionneur et elle est finalement appliquée aux circuits OU 158 et 160 pour conditionner le circuit 162 et 164 et transférer un "2" C10 sous forme binaire) à l'additionneur. 40 La restauration de S13 met en route S14. S14 est appliqué au circuit OU 69 44501 2028346 166 pour amorcer une opération d'emmagasinage dans les mécanismes de mémoire et fournir une entrée au circuit OU 114 qui restaure à 0 la bascule opération terminée. Il est à noter que cette opérations'emmagasinage fait que la valeur du dispositif de chronologie emmagasinée dans le registre de données 13 est 5 emmagasinée à l'emplacement correspondant au dispositif de chronologie remplaçant. La restauration de S14 met en route S15. S15 est un étage de retard uniquement et sa restauration fait passer à S16. S16 teste la condition de la bascule opération terminée. Comme on l'a décrit précédemment, S16 est appliquée aux circuits ET 160 et 170 dont les autres entrées sont appliquées respectivs-10 ment par les sorties 1 et 0 de la bascule opération terminée. Si la bascule opération terminée est à 1 le système passe à l'étage S17. Autrement il revient à l'étage S15. En supposant que le système se branche maintenant à S17, cette impulsionest appliquée à la porte 172 pour transférer des 0 dans toutes les positions du 15 rBg*stre de données 13. S17 est appliqué simultanément aux circuits OU 104, 100, 126 et 124 pour transférer le champ BASE et CPU du registre d'instruction et un 1 à l'additionneur 22 pour produire l'adresse (BASE + 4 x m + 1); S17 est aussi appliqué au circuit OU 108 pour transférer le signal de sortie de l'additionneur 22 au registre d'adresse 11. La restauration de S17 met en route S18. 20 L'impulsion S18 est appliquée au circuit OU 166 qui provoque une opération d'emmagasinage dans la mémoire centrale et met aussi la bascule opération terminée à 0. La restauration de S18 met en route S 19. S19 ne sert que de retard et fait passer à S20. S20 teste la bascule opération terminée en appliquant une impulsion aux circuits ET 174 et 176. Suivant l'état de la bascule, le 25 système passe à l'étage S21 ou revient à S19. En supposant que l'opération soit terminée, l'impulsion résultant dudéclenchement de S21 est appliquée au circuit 178 qui transfère le champ d'adresse du registre d'instruction 12 dans le registre d'adresse 11. La restauration S21 met en route S22. S22 est appliqué à la porte OU 132 qui amorce une opération de recherche 30 dans la mémoire centrale par l'intermédiaire du mécanisme d'accès local et restaure à 0 la bascule opération terminée. Il en résulte que l'on accède à la mémoire centrale à l'adresse déterminée par le registre d'instruction et que les données sont placées maintenant dans le registre de données 13. La restauration de S 22 met en route S23. S23 est un étage de retard uniquement et son blocage 35 met en route S24. S24 teste de nouveau la bascule opération terminée en appliquant son impulsion aux sorties ET 180 et 182 et soit il fera passer à S25 ou fera revenir à S23. En supposant que le système passe à S25, cette impulsion est appliquée au circuit OU 104, au circuit OU 100, au circuit OU 160 et au circuit OU 124 pour transférer le champ BASE et CPU du registre d'instruction 40 et un 3 à l'additionneur 22. Ceci engendre l'adresse (BASE + 4 x m + 3). S17 est 69 44501 2028346 aussi appliqué à la porte OU 108 pour transférer la sortie de l'additionneur au registre d'adresse 11. La restauration de S25 met en route S26. L'impulsion S2B est appliquée à la porte OU 16B pour amorcer une opération d'emmagasinage dans la mémoire centrale et restaurer à 0 la bascule opé-5 ration tenninée. Le blocage de S26 met en route S27 ce qui ne sert que de retard et fait passer à S28. S28 teste la bascule opération terminée en appliquant des impulsions aux circuits ET 184 et 186. Si l'opération n'est pas terminée le système revient à S27. Autrement il passe à S29. «fit 10 S29 appliqué au circuit OU 104 et au circuit OU 100 pour transférer le champ-BASEret CPU du registre d'instruction à l'additionneur 22. S29 est aussi appliqué à l'a porte OU 108 pour transférer la sortie de l'additionneur au registre d'adresse 11. La restauration de S29 met en route S30. S30 est appliqué au circuit OU 188 qui amorce une opération de déblocage 15 dans l'emplacement de mot de blocage de la mémoire centrale de l'unité de traitement destinataire et remet à 0 la bascule opération terminée. La restauration de S30 met en route S31 qui ne sert que de retard et fait passer à S32. S32 est appliqué au circuit ET 188 et 190 et teste si l'opération est terminée. A la fin le système passe à S33. 20 S33 est appliqué au circuit ET 192 et.au circuit ET 194 et mettra en route l'horloge T si la bascule "dispositif de chronologie" est tin 1 ou mettra en ù route l'horloge de vérification d'interruption si la bascule est à 0. La restauration de S33 termine la séquence de l'horloge S. On va poursuivre la description du fonctionnement du système avec la des-25 critpion de l'horloge T. On supposera que l'étage T1 de l'horloge dans une unité de traitement destinataire m a été mise en route soit par un signal de sortie, provenant du circuit ET 192, soit par un signal de sortie provenant de 195. On a déjà signalé qu'à la fin de l'exécution d'une instruction classique la bascule "dispositif de chronologie" est vérifiée par le système pour voir 30 si il peut introduire une routine de vérification du dispositif de chronologie. Comme on l'a dit précédemment, la bascule "dispositif de chronologie" est enclenchée par l'impulsion provenant de l'oscillateur du dispositif de chronologie grâce à laquelle le CPU vérifie périodiquement son dispositif de chronologie et il en.résulte que 1/soit un message sera détecté, 2/ soit une rou-35 tine d'interruption sera amorcée, ou 3) soit les dispositifs de chronologie devront être alors diminués de 1 et la tâche précédente continuée. En supposant que l'étage T1 est aussi mis en route par un signal de sortie provenant soit du circuit ET 192, soit du circuit ET 195, cette impulsion est appliquée aux portes OU 104 et 200 pour conditionner les portes 106 et 202 40 afin de transférer le champ BASE et le numéro d'identification du CPU dans M 44501 21 2028346 l'additionneur 22. T1 est aussi appliqué à la porte OU 106 pour conditionner la porte 110 pour transférer la sortie de l'additionneur au registre d'adresses 11. La restauration de T1 met en route T2. T2 est appliqué à la porte OU 112 pour amorcer une opération de blocage 5 dans la mémoire centrale pour l'emplacement d'emmagasinage de la valeur du dispositif de chronologie du CPU particulier et elle est aussi appliquée par l'intermédiaire de la porte OU 114 pour restaurer à 0, la bascule opération terminée. On doit de nouveau se rendre compte que l'opération de blocage met à 1 la bascule de verrouillage pour cette unité CPU ce qui fait qu'aucune 10 autre unité de traitement ne peut accéder à cette partie de la mémoire jusqu'à ce que ce CPU ait terminé son opération en cours. La restauration de T2 met en route T3 qui ne sert que de retard mais qui lorsqu'il est bloqué met en route T4. T4 est appliqué aux circuits ET 204 et 206 pour tester l'état de la bascule opération terminée. Si l'opération n'est 15 pas encore terminée, le système fait passer à l'étage T3 et si elle est terminée, il fait passer à l'étage T5. En supposant que le système fasse passer à T5 cette impulsion est appliquée aux circuits ET 208 et 210 pour tester l'état de la bascule mémoire bloquée. Si la mémoire est de ce fait bloquée, le système passe à T6 qui n'est qu'un étage de retard et fait revenir à T2, 20 autrement le système passe à T7. En supposant que le système passe à T7, l'impulsion est appliquée pour remettre à 0 la bascule "dispositif de chronologie". De plus T7 est appliqué au circuit OU 104 au circuit OU 200, au circuit OU 124 et au circuit OU 26 pour transférer respectivement le champ BASE et le champ d'identification du CPU 25 et un 1 à l'additionneur 22. La sortie de l'additionneur 22 est transférée au registre d'adresse 11 en appliquant l'impulsion T7 au circuit OU 108. La restauration de T7 met en route T8. T8 est appliqué au circuit OU 132 qui amorce une opération de recherche dans la mémoire centrale et aussi par l'intermédiaire du circuit OU 114 res-30 taure à 0 la bascule de l'opération terminée. La restauration de T8 fait passer à T9 qui ne sert que d'étage de retard et dont la restauration met en route T10. L'impulsion provenant de l'étage T10 est appliquée au circuit ET 212 et 214 pour déterminer si l'opération en cours dans la mémoire est terminée. Si elle ne l'est pas le système revient à l'étage T9 si elle l'est il passe à T11. 35 T11 teste le contenu du registre de donnée 13 en appliquant une impulsions aux circuits ET 216 et 218. Si il n'y a que des zéros dans toutes les positions du registre de données, il n'y aura pas de sorties produites par 142 et par contre il y aura une sortie à l'inverseur 144 et ainsi le circuit ET 216 produit une impulsion de sortie pour brancher le système à l'étage T12. D'autre part, si 40 il n'y a pas que des zéros, le système est branché à l'étage T20 en produisant 69 44501 22 2028346 un signal de sortie à partir du circuit ET 218. En supposant que le système soit branché à l'étage T12 cette impulsion est appliquée directement à la bascule d'exécution pour la mettre à 1. L'impulsion T12 est appliquée de la même façon aux circuits OU 104, 200, 160 et 124 5 pour transférer respectivement le champ BASE et le numéro d'identification du CPU et un trois à l'additionneur. T12 est appliqué de la même façon au circuit OU 108 pour transférer la sortie de l'additionneur 22 au registre d'adresse 11. La restauration de T12 met en route T13. L'impulsionT13 est appliquée au circuit OU 132 pour amorcer une opération 10 de recherche dans la mémoire centrale et restaurer à 0 la bascule opération terminée. Le blocage de l'étage T13 met en Voûte T14 qui ne sert que d'étage de retard et dont le blocage fait passer à T15. L'impulsion T15 vérifie l'état de la bascule opération terminée en appliquant une impulsion simultanément au circuit ET 212 et au circuit ET 214. Si l'opération est terminée le système 15 passe à T16 sinon il passe à T14. En supposant que le système passe à T16, l'impulsion correspondante est appliquée au circuit de porte 220, pour transférer le contenu du registre de données 16 au registre d'instructions 12. L'impulsion T16 est aussi appliquée aux circuits OU 104, 200, 158, et 160 pour transférer respectivement le champ BASE et le numéro d'identification du CPU 20 et un deux à l'additionneur 22 et ensuite T16 est appliquée au circuit OU 108 pour transférer la sortie de l'additionneur au registre d'adresse 11. La restauration de T16 fait passer à T17. T17 est appliqué au circuit OU 132 pour amorcer une autre opération de recherche dans la mémoire centrale et remettre à 0 la bascule opération ter-25 minée. La restauration de T17 met en route T18 qui ne sert que de retard et fait passer à T19 qui teste l'état de la bascule opération terminée en appliquant des impulsions simultanément aux portes ET 222 et 224. Si l'opération est terminée, le système passe à T20, sinon il revient à T18. En supposant que l'opération soit terminée l'impulsion correspondant au déclenchement de T20 est 30 appliquée au circuit de porte 226 qui transfère le contenu du registre de donnée 13 à l'additionneur 22 et aussi à la porte 228 pour transférer un -1 à l'additionneur 22. La restauration de T20 fait passer à T21. T21 est appliqué à la porte 230 pour transférer le contenu de l'additionneur et le renvoyer dans le registre de données 13. La sortie de l'addition-35 neur 2 passe aussi au circuit OU 231 et constitue une entrée au circuit ET 234 et à l'inverseur 236 qui à son tour alimente le circuit ET 232. T21 constitue la sseconde entrée au circuit ET 232 et au circuit ET 234. Si la sortie de l'additionneur 22 ne contient que des 0 le circuit ET 232 aura un signal de sortie et le système passera à T22. D'autre part, si la sortie de l'addition-40 neur ne contient pas que des zéros, le circuit ET 234 aura un signal de sortie 69 44501 23 2028346 qui passe dans la porte OU 238 et fournit une entrée aux portes ET 240 et 242 ù dont les autres entrées viennent de la bascule d'exécution. Si cette bascule est un 0 le système se branchera à l'étage T24 et si elle est à 1 il se branchera à T23. 5 En supposant maintenant que la première condition de T21 soit remplie, le système se branche à T22, et cette impulsion est appliquée pour mettre à 1 la bascule "interruption dispositif de chronologie". T22 est aussi appliqué à la porte 244 pour transférer des 1 dans le registre de données 13. De même T22 est appliqué à la porte OU 238 pour fournir une entrée aux deux circuits 10 ET 240 et 242 pour tester l'état de la bascule exécution. Si elle est à 1 le système se branche à T23 ou inversement si elle est à 0 il se branche à T24. En supposant que le système se branche à T23, cette impulsionest appliquée aux circuits OU 104, 200, 124 et 126 pour transférer respectivement le champ 15 BASE et l'identification du CPU et un "1" à l'additionneur. En appliquant aussi T23 à la porte OU 108, la sortie de l'additionneur 22 est transférée au registre d'adresse 11. Le blocage de T23 met en route T24. T24 est appliqué à la porte OU 166 pour amorcer une opération d'emmagasinage dans la mémoire centrale et par l'intermédiaire de la porte OU 114 pour 20 restaurer la bascule opération terminée à 0. La restauration de T24 met en route T25 qui ne sert que de retard et fait ensuite passer à T26 qui vérifie l'état de la bascule opération terminée en appliquant une impulsion simultanément aux circuits ET 246 et 248. Si l'opération est terminée le système passe à T27 sinon il revient à T25. 25 En supposant que le système passe à T27, l'impulsion correspondante est appliquée aux circuits OU 104 et 200 pour transférer respectivement le champ BASE et l'identification du CPU à l'additionneur 22 et cette impulsion est ensuite transférée au circuit OU 108 pour transférer la sortie de l'additionneur 22 au registre d'adresse 11. La restauration de T27 met en route T28. 30 L'impulsion correspondant au déclenchement de T28 est appliquée au circuit OU 188 qui amorce l'opération de déverrouillage de la mémoire centrale pour restaurer la bascule à verrouillage pour le CPU m à 0. Le signal de sortie provenant du circuit OU 188 est aussi annulé par l'intermédiaire d'une porte OU 114 pour remettre à 0 la bascule opération terminée. Le blocage de T28 met 35 en route T29 qui ne sert que de retard et dont le blocage fait passer à T30 qui vérifie l'état de la bascule opération terminée en appliquant des impulsions au circuit ET 250 et au circuit ET 252. Si l'opération est terminée le système passe à T31. Sinon il revient à T29. En supposant que l'opération soit terminée, le déclenchement de T31 40 permet de voir si la bascule d'exécution est mise à 1, en appliquant les M 44501 24 2028346 impulsions aux circuits ET 254 et 256 dont les autres entrées viennent des sorties 1 et 0 de la bascule respectivement. Si la bascule exécution est à 0,1e système passe à T32. Si elle est à 1 il passe à T33.En supposant que le système passe à T32, l'impulsion correspondante est appliquée au circuit OU 258 5 adjacent à la bascule du dispositif de chronologie dont la sortie met en route l'horloge de vérification d'interruption. Si la sortie de T31 provoque un branchement à T33 l'impulsion correspondante est appliquée pour remettre la bascule exécution à 0 et le blocage de cet étage T33 fait passer à T34. T34 est utilisé simplement pour signaler au 10 système de commande classique et mettre de nouveau en route l'horloge d'exécution d'instruction normale et sa restauration arrête l'horloge T. La description de la figure 2 en se reportant aux tableaux de la succession des opérations achève ainsi la description de la présente invention. On peut naturellement comprendre que de nombreuses modifications et variantes peuvent 15 être apportées au système fondamental par l'homme de l'art et ces modifications peuvent porter parmi autres choses sur la configuration particulière du système de multi-traitement. Une autre façon de traiter les messages en restant dans l'esprit de l'inr vention consisterait à provoquer une interruption du message au lieu de l'exé-20 cution du message. Ou bien on peut emmagasiner la valeur 1 au lieu d'emmagasiner la valeur 0 dans le dispositif de chronologie lorsque on met en place le message et emmagasiner toujours un 0 dans le dispositif de chronologie remplaçant après avoir remplacé la valeur du dispositif de chronologie par le contenu du dispositif de chronologie remplaçant, alors le dispositif de chronologie 25 n'aura jamais le valeur 0 et il en sera ainsi jusqu'à ce que la routine d'interruption déclenchée lorsque les dispositifs de chronologie passent à 0 pour faire la distinction entre les messages et les interruptions exactes des dispositifs de chronologie enyxaminant le contenu du mot correspondant à la valeur du dispositif de chronologie remplaçant. 30 Le concept principal de l'invention est l'utilisation d'une zone d'errma- gasinage étendue dans la mémoire centrale pour les valeurs des dispositifs de chronologie de chaque unité centrale de traitement, qui sont vérifiées périodiquement et régulièrement dans chaque unité centrale de traitement, * lorsqu'elles effectuent un cycle d'exécution d'instruction normal. En plççant 35 les indications de messages et l'information des messages à ces emplacements, cette information restant accessible par chaque unité centrale de traitement, on peut effectuer une communication entre les unités de traitement sans augmenter le prix du système global. On doit aussi comprendre qu'ilest possible de mettre en oeuvre la présen-40 te invention en programmant un ordinateur universel monté suivant une confi 44501 25 2028346 guration de multi-traitement. Cependant on pense que la réalisation décrite utilisant certains circuits spécialisés et de commandes spécialisées constitue la façon la plus pratique de réaliser une liaison de communication entre les unités de traitement individuelles d'un tel système. Bien que l'on ait décrit dans ce qui précède et représenté sur les dessins, les caractéristiques essentielles de l'invention, appliquées à un mode de réalisation préférée de celle-ci, il est évident que l'homme de l'art peut lui apporter toutes modifications de forme ou de détail qu'il juge utiles sans pour autant sortir du cadre de ladite invention. 69 44501 26 2028346 REVENDICATIONS 1. Système de multi-traitement de données comportant plusieurs unités de traitement individuelles et une mémoire centrale dans laquelle une zone d'emmagasinage est réservée à chaque unité de traitement, système caractérisé en ce que, dans chaque unité de traitement : 5 - des moyens sont prévus pour détecter une instruction d'envoi de messa ge dans la séquence des instructions que chacune de ces unités a à exécuter, - des moyens déterminent l'unité de traitement destinataire devant recevoir l'information de message, - des rçioyens accèdent à la zone d'emmagasinage allouée à l'unité de traitement destinataire, - des moyens emmagasinent l'information de message dans la zône d'emmagasinage de l'unité destinataire. 2. Système de multi-traitement selon la revendication 1 comportant : 15 - des moyens dans chaque unité de traitement de données pour accéder pé riodiquement à la zône d'emmagasinage qui lui est allouée et vérifier si elle ne contient pas d'information de message, - des moyens pour informer l'unité de traitement destinataire qu'une information de message est présente dans sa zône d'emmagasinage de la mémoire 20 centrale, - des moyens pour accéder à l'information de message dans la mémoire centrale, selon une priorité prédéterminée, - des moyens pour sortir de l'information de message de la mémoire principale. 25 3.Système de multi-traitement selon la revendication 1 ou 2 dans lequel les dites zSnes d'emmagasinage sont situées à des adresses fixes prédéterminées dans la mémoire centrale. 4. Système de multi-traitement selon la revendication 1, 2 ou 3 comportant un dispositif de verrouillage comprenant des moyens dans chaque unité de trai- 30 tement de données pour empêcher qu'une autre unité de traitement n'ait accès à une zôrie d'emmagasinage déjà accédée. 5. Système de multi-traitement de données selon la revendication 1 ou 2 ou 3 ou 4 dans lequel chaque zône d'emmagasinage contient une information de chronologie affectée à l'unité de traitement à laqeelle est allouée ladite zône 35 et des moyens dans chaque unité de traitement sont prévus pour modifier 69 44501 27 2028346 l'information de chronologie pour'indiquer à une unité de traitement destinataire qu'une information de message est emmagasinée dans sa zône d'emmagasinage. 6. Système de multi-traitement de données selon la revendication 5 comprenant des moyens dans chaque unité de traitement pour emmagasiner l'information de 5 chronologie dans une autre zône d'emmagasinage prédéterminée de la mémoire centrale et des moyens pour retourner l'information de chronologie à sa zône d'origine à la suite de l'extraction du message de la mémoire centrale. 7. Système de multi-traitement de données selon l'une des revendications 1 à 6 dans lequel dans chaque zône d'emmagasinage associée à chaque unité de traite- 10 ment sont emmagasinés au moins quatre mots de données séparément adressables contenant : - une information de verrouillage pour empêcher des accès multiples à une zône d'emmagasinage, - une première information de chronologie, 15 - une deuxième information de chronologie, - une information d'identification de message ; 8. Système de multi-traitement selon la revendication 7 dans lequel des moyens dans chaque unité de traitement accèdent à ces positions d'emmagasinage lorsqu'une instruction d'envoi de message est rencontrée dans la séquence d'ins- 20 tructions de l'unité émettrice et accèdent périodiquement au moins aux mots de verrouillage et de chronologie lorsqu'aucune information de message n'est présente et accèdent aux quatre positions de mémoire lorsqu'une indication de message est présente dans l'information de chronologie. 9. Système de multi-traitement de données selon la revendication 7 ou 8 dans 25 lequel des moyens, emmagasinent des zéros dans le premier mot de chronologie etdes moyens vérifient si des zéros y sont emmagasinés pour déterminer si un message est présent. 10. Système de multi-traitement de données selon l'une des revendications pré-30 cédentes comportant des moyens, dans l'unité émettrice, activés lorsqu'un message est déjà dans la zône d'emmagasinage allouée à l'unité déstinataire pour vérifier son registre d'instructions pour déterminer si le message déjà présent doit être effacé. 35 11. Procédé pour faire communiquer au moins deux unités de traitement de données dans un système de multi-traitement de données comportant une mémoire M 44501 2028346 centrale et plusieurs unités de traitement auxquelles sont allouées des zônes d'emmagasinage dans la mémoire centrale, caractérisé en ce que : - on prévoit au moins quatre mots d'information adressables dans chaque zône d'emmagasinage ; 5 - une information de verrouillage pour prévoir plusieurs accès simul tanés à ladite zône, - une première information de chronologie, - une deuxième information de chronologie dans laquelle la première information de chronologie peut être retenue, 10 - une information d'identification de message, - on détecte dans chaque unité de traitement une instruction d'envoi de message parmi la séquence d'instructions qui doit exécuter chaque unité de traitement ; - on accède dans la mémoire centrale à la zône d'emmagasinage à plusieurs 15 mots allouée à l'unité destinataire du message ; - on détermine si cette zône d'emmagasinage est verrouillée j - on verrouille la zône d'emmagasinage qui est accédée ; - on examine le premier mot de chronologie pour détecter une indication de message emmagasiné ; 20 - on transfère ce mot de chronologie au deuxième mot de chronologie ; - on emmagasine l'information du message dans le premier mot dB chronologie et le mot de message j -on supprime le verrouillage de cette zône d'emmagasinage ; - on accède périodiquement à partir de chaque unité de traitement à cha- 25 cune des zones d'emmagasinage correspondantes» - on détermine la zône d'emmagasinage accédée j - on examine le premier mot de chronologie pour déterminer si un message est présent ; - on accède au mot de message et on utilise l'information de message 30 pour obtenir les instructions de message à exécuter suivant une priorité déter minée ; - on retransfère le deuxième mot de chronologie dans le premier mot de chronologie -, v - on déverrouille la zône d'emmagasinage.