MANAGEMENT DEVICE FOR A COMMON MEMORY WITH SEVERAL PROCESSORS

Abstract: 1. A device for managing a memory (1) which is common to a plurality of processors, comprising control means (26) creating a logic signal E, if the access to the common memory (1) is free, each processor being respectively coupled to a control device, the control device being connected in series according to the priority rank of the processors associated thereto and transmitting the signal E until it reaches the control device of highest priority out of those having requested an access to the common memory (1), this last control device inhibiting transmission of the signal E and authorizing the processor coupled thereto to occupy the common memory (1), each control device comprising asynchroneous means for inhibiting the transmission of the signal E, the asynchroneous means of a control device being enabled by the signal E, if this signal reaches this control device and if the processor associated to this control device has requested an access to the common memory (1), these asynchroneous means for inhibiting the transmission of the signal E comprising : a bistable flip-flop (33) controlled by the arrival of the signal E and validated by an access request signal created by the associated processor for memorizing an access authorization ; means for delivering this signal E with a transit time which is longer than that of the flip-flop (33), characterized in that each control device is provided with an output connected to a first input (3) of the control means (26) for transmitting a signal (DMC) corresponding to an access request, that each control device (no i) is provided with an output transmitting a signal Ei + 1 and connected to an input of the control device of next higher rank (no i + 1), the first device (no 1) having an input (5) which is connected to an output (4) of the control means for transmitting a signal E1 ; that the last control device of the series is provided with an output (21) which is connected to a second input (2) of the control means (26) in order to retransmit thereto the signal En + 1, and that the data an address output of each processor (no i) is connected to an address and data bus (29) for the access to the common memory (1) via a gate (no i) controlled by an output of the corresponding control device (no i) which transmits a control signal OBi, the control means supplying on their output (4) the signal E1, if the signal DMC is applied to their first input (3) or if the signal En + 1 is applied to their second input (2).

Description: Dispositif de gestion d'une mémoire commune à plusieurs processeurs L'invention concerne les systèmes informatiques comportant plusieurs processeurs ayant une mémoire commune. Un système informatique peut être constitué, par exemple, de plusieurs microprocesseurs ayant d'une part chacun une mémoire individuelle, et d'autre part une mémoire commune. li existe dans l'art antérieur divers dispositifs permettant à deux microprocesseurs d'échanger des informations et d'utiliser une me- moire commune. Quand le système comporte un plus grand nombre de microprocesseurs, il est connu de donner à l'un d'entre eux un rôle privilégié de gestion de la mémoire commune. Ce procédé a pour inconvénients d'accaparer une partie du temps de fonctionnement et une partie du logiciel d'un des microprocesseurs du système, et les logiciels de chacun des microprocesseurs du système ne sont pas complétement indépendants. Il est connu de réaliser un dispositif de gestion d'une mémoire commune à plusieurs processeurs en le constituant de moyens de commande, générant un signal logique E lorsque l'accès à la mémoire commune est libre, et de dispositifs de commandes couplés respectivement aux processeurs et reliés en série pour transmettre le signal E, dans l'ordre de priorité des processeurs; un dispositif de commande bloquant la transmission du signal E, si le processeur associé a demandé à accèder à la mémoire, et autorisant ce processeur à exécuter cet accès. Un tel dispositif de commande est décrit dans la demande de brevet français FR 2 476 871. Pour minimiser le temps de propagation du signal E à travers la série des dispositifs de commande ceux-ci comportent un ensemble de dérivations constitués de nombreuses portes commandées par de nombreuses bascules synchrones. Ce dispositif est complexe, et l'utilisation de bascules synchrones entraîne un ralentissement de la propagation du signal E à cause des temps d'attente de la synchronisation. Le dispositif selon l'invention permet de remédier à ces inconvénients par des moyens simples. Selon l'invention un dispositif de gestion d'une mémoire commune à plusieurs processeurs comportant des moyens de commande générant un signal logique E lorsque l'accès à la mémoire commune est libre; chaque processeur étant respectivement couplé à un dispositif de commande; les dispositifs de commande étant reliés en série, dans l'ordre de priorité des processeurs y associés, et transmettant le signal E jusqu'au dispositif de commande le plus prioritaire parmi ceux ayant demandé à accéder à la mémoire commune, ce dernier dispositif de commande bloquant la transmission du signal E et autorisant le processeur qui lui est couplé, à accéder à la mémoire commune; ce dispositif de gestion étant carac térisé en ce que chaque dispositif de commande comporte des moyens asynchrones pour bloquer la transmission du signal E, les moyens asynchrones d'un dispositif de commande étant déclenchés par le signal E lorsqu'il parvient jusqu'à ce dispositif de commande si le processeur associé à ce dispositif de commande a demandé à accéder à la mémoire commune. L'invention sera mieux comprise et d'autres détails apparaîtront dans la description ci-dessous et les figures l'accompagnant La figure 1 représente le schéma synoptique d'un exemple de réalisation du dispositif selon l'invention. La figure 2 et la figure 4 représentent des schémas synoptiques plus détaillés de deux parties du schéma de la figure 1. La figure 6 représente le schéma synoptique d'un exemple de réalisation d'une variante du dispositif représenté par la figure 2 Les figures 3, 5, 7 et 8 représentent des chronogrammes décrivant le fonctionnement de l'exemple de réalisation du dispositif selon l'invention. La figure l représente le schéma synoptique d'un exemple de réalisation du dispositif selon l'invention incorporé à un système informatique comportant n processeurs (n entier supérieur à 1). Chaque processeur est désigné par un numéro qui est une fonction décroissante de sa priorité d'accès à la mémoire commune. Chaque processeur possède une mémoire individuelle, non représentée sur la figure 1, et est relié à une mémoire commune 1 par un bus d'adresses et de données 29, auquel il accède par l'intermédiaire d'une porte portant le même numéro que le processeur. Chaque processeur est relié d'autre part à un dispositif de commande portant ce même numéro. La sortie des adresses et des données du processeur n0 1 est reliée d'une part à l'entrée de la porte n0 1 et d'autre part à une borne d'entrée 8 du dispositif de commande n0 1. Le processeur n0 I fournit un signal logique VM1 à une borne d'entrée 9 du dispositif de commande n0 1, et celui-ci fournit par une borne de sortie 10 un signal logique MRI à une entrée du processeur n0 1, et par une borne de sortie 11 un signal logique OB1 à une entrée de commande de la porte n 1. Des moyens de commande 26 fournissent, par une borne de sortie 4, un signal logique E1 à une borne d'entrée 5 du dispositif de commande n0 l, et celui-ci fournit, par une borne de sortie 7, une signal logique E2 à une borne d'entrée 12 d'un dispositif de commande n0 2 associé au processeur n0 2. Le dispositif de commande n0 2 fournit, par une borne de sortie 14, un signal logique E3 à une borne d'entrée du dispositif de commande n0 3 qui n'est pas représenté sur la figure 1. Le processeur n0 2 est relié au bus des données et des adresses 29 par l'intermédiaire d'une porte n0 2 commandée par un signal logique OB2 fourni par le dispositif de commande n0 2 sur une borne de sortie 18. La sortie des données et des adresses du processeur n0 2 est reliée d'une part à une entrée de la porte n0 2 et, d'autre part, à une borne d'entrée 15 du dispositif de commande n0 2. Le dispositif de commande n0 2 reçoit, sur une borne d'entrée 16, un signal logique VM2 fourni par une sortie du processeur n0 2, et fournit à ce processeur un signal logique MR2 par une borne de sortie 17. Les processeurs n0 3,..., n-l, leurs dispositifs de commande et les portes associées, ne sont pas représentés sur la figure 1, mais leur schéma peut être déduit aisément de la figure 1, où apparaît la structure modulaire du dispositif. Cette modularité constitue un avantage important car elle permet d'agrandir ou de restreindre facilement le système. Un dispositif de commande n0 n reçoit, sur une borne d'entrée 19, un signal logique En fourni par un dispositif de commande n0 n-l non représenté sur la figure 1, et fournit un signal logique En+ 1, par une borne de sortie 21, à une borne d'entrée 2 des moyens de commande 26. La sortie des données et des adresses du processeur n0 n est reliée au bus 29 par l'intermédiaire d'une porte n0 n commandée par un signal logique 08n fourni par le dispositif de commande n0 n sur une borne de sortie 25. La sortie des adresses et des données du processeur n0 n est reliée d'autre part à une borne d'entrée 22 du dispositif de commande n0 n. Le processeur n0 n fournit un signal logique VMn à une borne d'entrée 23 du dispositif de commande n0 n, et celui-ci fournit au processeur n0 n un signal logique MRn par une borne de sortie 24. Les dispositifs de commande n0 1, 2,... , n, sont reliés respectivement par des bornes de sortie 6, 13,..., 20, à une ligne bus transmettant un signal logique DMC à une borne d'entrée 3 des moyens de commande 26. Si le processeur n0 2, par exemple, veut accèder à la mémoire commune 1 il génère une adresse sur sa sortie des adresses et des données et un signal logique VM2 validant cette adresse. Le dispositif de commande n0 2, recevant cette adresse et ce signal logique, génère un signal logique DMC informant les moyens de commande 26 qu'un processeur demande à accèder à la mémoire commune 1. Les moyens de commande 26 génèrent le signal logique E1 qui est retransmis par le dispositif de commande n0 1 sous la forme du signal logique E2 qui est appliqué au dispositif de commande n0 2. Le signal logique E2 autorisant l'accès à la mémoire commune, le dispositif de commande n0 2 fournit le signal OB2 pour ouvrir la porte n0 2 et ensuite le signal MR2 informant le processeur n0 2 qu'il peut accèder à la mémoire commune. Quand cet accès est terminé le signal logique DMC fourni par le dispositif de commande n0 2 disparaît, d'autres dispositifs de commande peuvent demander l'accès à la mémoire commune, en générant un signal DMC. En règle générale le signal logique El passe à la valeur 1 quand les moyens de commande 26 reçoivent un signal DMC de demande d'accès.Ce passage à la valeur 1 constitue une autorisation d'accès et est retransmis successivement par tous les dispositifs de commande jusqu'à un dispositif de commande associé à un processeur ayant fait une demande d'accès, et ne se propage pas au-delà. S'il y a plusieurs demandes d'accès simultanées, c'est le processeur de numéro le plus faible qui est donc satisfait en priorité. Dans l'exemple précédant le signal E1 fourni par les moyens de commande 26 au dispositif de commande n0 1, est transmis par celui-ci sous la forme du signal E2, parce que le processeur n0 1 n'a pas demandé d'accès à la mémoire. Le signal E2 n'est pas retransmis par le dispositif de commande n0 2 parce que, dans cet exemple, le processeur n0 2 a fait une demande d'accès à la mémoire. Si un autre processeur fait une demande d'accès à la mémoire commune 1 pendant qu'elle est utilisée par le processeur n0 2, il attend que le processeur n0 2 ait terminé d'utiliser la mémoire commune. Quand le processeur n0 2 a fini d'utiliser la mémoire commune 1, les signaux DMC et E1 restent à la valeur 1. Le processeur n0 2 ne génère plus le signal VM2 appliqué à l'entrée 16 du dispositif de commande n0 2, celui-ci transmet alors le signal E2, sous la forme du signal E3, à une entrée du dispositif de commande n0 3. Deux cas sont alors à distinguer, selon que l'autre processeur demandeur est en amont ou en aval du processeur libérant la mémoire commune, c'est-à-dire selon que l'autre processeur a un numéro inférieur ou supérieur à 2, dans cet exemple. Dans le cas où l'autre processeur demandeur est en aval, tel le processeur n0 4 dans cet exemple, la valeur 1 du signal E1 se propage jusqu'au dispositif de commande n0 4 sous la forme du passage à la valeur 1 du signal E4. Ce passage à 1 constitue l'autorisation d'accès à la mémoire commune 1. Le dispositif de commande n0 4 bloque la propagation de ce signal, le signal E5 reste à la valeur 0. Le processeur n0 4 est connecté au bus 29 et accède à la mémoire 1. Dans le cas où l'autre processeur demandeur est en amont, tel le processeur n0 1 dans cet exemple, la valeur 1 du signal E1 est transmise sous la forme des signaux E2, E3, ,E +1 et revient aux moyens de commande 26 par leur borne d'entrée 2. Les moyens de commande 26 font alors passer le signal E1 momentanément à la valeur 0. Le dispositif de commande n0 1, qui avait retransmis précédemment le signal E1 parce que le processeur n0 1 ne demandait pas l'accès, est maintenant sensible au passage du signal E1 de la valeur 0 à la valeur 1. Il bloque la propagation du signal E1, le signal E2 reste à la valeur 0. Le processeur n0 1 est reliée au bus 29 et accède à la mémoire commune 1. La figure 2 représente le schéma synoptique d'un exemple de réalisation d'un des dispositifs de commande, par exemple le dispositif de commande n0 I. La borne d'entrée 8 fournit une adresse à une entrée d'un décodeur d'adresses 31, et la borne d'entrée 9 fournit le signal de validation VM1 à une entrée de validation de ce décodeur d'adresses 31. La sortie du décodeur d'adresses 31 fournit un signal logique MC1 lorsque l'adresse reçue est une des adresses de la mémoire commune, le signal MC1 est fourni à l'entrée d'un amplificateur tampon 30, à une entrée D et à une entrée de remise à zéro CL d'une bascule 33, et à une première entrée d'une porte NON ET 32. La sortie de l'amplificateur tampon 30 est reliée, par une borne de sortie 6, à la ligne bus transmettant le signal DMC et qui réalise une fonction logique OU. Les moyens de commande 26 fournissent à la borne d'entrée 5 du dispositif de commande n0 1 un signal E1 qui est appliqué à une entrée d'horloge CK de la bascule 33 et à une première entrée d'une porte ET 35. Un front montant du signal E1 provoque la mémorisation de la valeur 1 du signal MC1 par la bascule 33, une sortie Q de cette bascule 33 passe au niveau l et ce signal logique constitue le signal OBl qui est fourni à la borne de sortie Il du dispositif de commande n0 l. La bascule 33 possède une sortie Q fournissant une valeur complémentaire de celle présente sur la sortie Q. Cette valeur complémentaire est fournie d'une part à une deuxième entrée de la porte ET 35, et d'autre part à une entrée d'un dispositif à retard 37. La sortie du dispositif à retard 37 est reliée d'une part à une première entrée d'une porte ET 36, et d'autre part à une deuxième entrée de la porte NON ET 32. La sortie de la porte NON ET 32 fournit le signal MR1 à la borne de sortie 10. La deuxième entrée de la porte ET 36 est reliée à la sortie de la porte ET 35. La sortie de la porte ET 36 fournit le signal E2 à la borne de sortie 7. Quand l'accès à la mémoire commune 1 est accordé, cette autorisation est mémorisée par la bascule 33, le signal OBI ouvre la porte n0 1 d'accès au bus d'adresses et de données 29, et la sortie de la porte NON ET 32 fournit un signal MRl de valeur I indiquant au processeur n0 l qusil peut accèder à la mémoire commune I. La sortie Q de la bascule 33 fournit un signal de valeur O qui bloque la porte ET 35 pour empêcher la propagation du signal E1, d'autorisation d'accès à la mémoire commune 1, vers la borne de sortie 7. Le dispositif à retard 37 fournit un signal de valeur O avec un retard tl. Tant que la valeur O n'est pas fournie par le dispositif à retard 37 la porte NON ET 32 reçoit sur sa première et sur sa deuxième entrée des valeurs 1, par conséquent la sortie de cette porte fournit un signal de valeur O qui fait attendre le processeur n0 l pendant le temps nécessaire à l'ouverture de la porte n0 1. La figure 3, représente le chronogramme de ces signaux logiques quand le processeur n0 I est seul à demander l'accès à la mémoire commune 1. Le signal MC1 de décodage d'une adresse de la mémoire commune provoque l'envoi du signal DMC de demande d'accès à la mémoire commune. Les moyens de commande 2 autorisent l'accès à la mémoire commune après un certain temps en fournissant le signal E1 de valeur 1, celui-ci provoque le basculement de la bascule 33 qui fournit le signal OBl de valeur 1. D'autre part la valeur l du signal MC1 provoque le passage à la valeur O du signal MR1, qui met en position d'attente le processeur n0 1. Le passage au niveau 1 du signal OBl permet l'accès du processeur n0 1 vers le bus des adresses et des données 29 de la mémoire commune 1. Le signal complémentaire de OB1, retardé par le dispositif à retard 37 d'un temps tl, provoque la remontée au niveau 1 du signal MR1, ce qui autorise le processeur n0 1 à continuer son travail qui est en l'occurrence un accès à la mémoire commune. Le signal E1 ne peut pas se propager sous la forme du signal E2 parce que la porte 35 est bloquée par le signal de valeur O fourni par la sortie Q sitôt que la bascule 33 a basculé sous l'action du front montant de E1. Pour que ce blocage soit effectif il est nécessaire que la bascule 33 soit réalisée avec une technologie plus rapide que la porte ET 35. Quand le processeur n0 l a terminé son accès à la mémoire commune le décodeur d'adresses 31 ne détecte plus sur son entrée la présence d'une adresse de la mémoire commune, le signal MC1 reprend la valeur 0, le signal DMC de demande d'accès à la mémoire commune reprend aussi la valeur O et l'entrée CL de la bascule 33 est activée. Les sorties Q et Q de la bascule 33 prennent respectivement les valeurs O et 1, le signal OB1 reprend la valeur 0, donc la porte n0 1 est bloquée. Le signal MR1 est inchangé, il reste au niveau I, le processeur n0 1 peut donc continuer son travail. Le passage à la valeur 1 du signal fourni par la sortie Q de la bascule 33 débloque la porte ET 35 puis débloque avec un retard tl la porte ET 36. Ces deux portes étant connectées en série, elles ne peuvent acheminer un éventuel signal logique E1 qu'après le déblocage de la porte 36, c'est-à-dire avec un retard supérieur à tl après le retour à zéro du signal MC1. Comme il est représenté sur la figure 3, la disparition de la demande d'accès à la mémoire commune provoque avec un certain retard la disparition du signal E1 d'autorisation d'accès, envoyé par les moyens de commande 26. La figure 4 représente le schéma synoptique d'un exemple de réalisation des moyens de commande 26. La borne d'entrée 3 est reliée à une première entrée d'une porte ET 47 dont une deuxième entrée est reliée à une sortie d'un dispositif générateur d'impulsions 45. La borne d'entrée 2, recevant le signal logique E est reliée à l'entrée de ce générateur d'impulsions 45. La sortie de la porte ET 47 constitue la sortie des moyens de commande 26 et fournit le signal E1 à la borne de sortie 4. Au repos la sortie du générateur d'impulsions 45 fournit un signal logique A de valeur 1. Le dispositif générateur d'impulsions 45 comporte une porte NON ET 46 dont une première entrée est reliée à l'entrée du dispositif générateur d'impulsions 45 et dont une deuxième entrée est reliée à la sortie d'un dispositif à retard 44. L'entrée d'un inverseur logique 43 est reliée à l'entrée du générateur d'impulsions 45 et sa sortie est reliée à l'entrée du dispositif à retard 44. La sortie de la porte NON ET 46 constitue la sortie du générateur d'impulsions 45. Quand un signal En+l, constitué d'un passage de la valeur O à la valeur 1, est appliqué à la borne d'entrée 2, les deux entrées de la porte NON ET 46 sont momentanément au niveau logique 1. L'inverseur 43 inverse le signal En+l. Le dispositif à retard 47 fournit, avec un retard déterminé, un niveau logique O à la deuxième entrée de la porte ET 46. La sortie de cette porte ET 46 passe donc momentanément au niveau logique 0, pendant une durée égale au retard procuré par le dispositif à retard 47. La figure 5 représente les chronogrammes des signaux logiques circulant dans les dispositifs de commande n0 i et n0 j lorsque successivement les processeurs n0 i et n0 j font une demande d'accès à la mémoire commune. La valeur de i est inférieure à la valeur de j, c'est-à-dire que le processeur n0 i est en amont par rapport au processeur n0 j, mais il fait une demande d'accès qui est postérieure à la demande du processeur n0 j. Quand le processeur n0 j demande à accéder à la mémoire commune le signal MCj prend la valeur 1, et provoque le passage à la valeur 1 du signal DMC envoyé aux moyens de commande 26, et le passage à O du signal MR. pour commander au processeur j d'attendre l'autorisation d'accès. La sortie du générateur d'impulsions 45 étant au niveau 1 au repos, le signal DMC provoque le passage au niveau 1 de la sortie de la porte ET 47. La valeur 1 du signal E1 se propage à travers les dispositifs de commande n0 1, ..., i,..., j-l. Dans un premier temps le dispositif de commande n0 i a seulement pour rôle de transmettre le signal d'autorisation d'accès E. sous la forme d'un signal E. 1 qui arrive au dispositif de commande n0 j sous la forme d'un signal E.. Le signal E. provoque la génération d'un signal OB. J J d'ouverture de la porte n0 j permettant au processeur n0 j l'accès à la mémoire commune 1 par le bus d'adresses et de données 29. Pendant l'accès du processeur n0 j à la mémoire commune 1, le processeur n0 i fait une demande d'accès se traduisant par le passage au niveau 1 d'un signal MC. dans le dispositif de commande n0 i, mais ce signal ne change pas la valeur du signal DMC qui reste égale à 1. Un signal MRi généré par le dispositif de commande n0 i, passe au niveau O et met en attente le processeur n0 i. Quand l'accès à la mémoire commune par le processeur n j prend fin le signal MC. reprend la valeur 0, la bascule 33 du dispositif de commande n0 j est remise à zéro, le signal OB. qu'elle fournit reprend la valeur 0. Le signal DMC restant au niveau 1 puisqu'il y a encore une demande d'accès en attente, les moyens de commande 26 fournissent donc encore un signal E1 de niveau 1, ce signal est transmis par tous les dispositifs de commande de n0 1 à j-l. Après la fermeture de la porte n0 j par le passage au niveau O du signal OB. le dispositif à retard 37 fournit un signal débloquant la porte 36 du dispositif de commande n0 j, le signal E. est donc transmis avec un retard tl sous la forme du passage au niveau 1 du signal E. Les processeurs de n0 j+l à n n'ayant pas demandé l'accès à la mémoire commune, le signal Ejsl se propage à travers ces dispositifs. Le dispositif de commande n0 n fournit donc un signal En+l de valeur 1, aux moyens de commande 26. Le dispositif générateur d'impulsions 45 fournit un signal A constitué d'une impulsion au niveau 0, qui, par l'intermédiaire de la porte ET 47, provoque un passage temporaire au niveau O des signaux E1, E2,..., E.. Le front montant du signal E. autorise I I le processeur n i à accéder à la mémoire commune 1, il provoque le changement d'état des sorties de la bascule 33 du dispositif de commande n0 i, le signal OB. passe au niveau 1 et le signal MRi passe au niveau 1 I I après le retard défini par le dispositif à retard 37. La porte ET 35 est bloquée immédiatement, ce qui provoque le passage à O des signaux Ei+l, ..., Ej+l, ...,En+l. Quand le processeur n i a terminé son accès à la mémoire commune le décodeur d'adresses 31 du dispositif de commande n0 i ne détecte plus la présence d'une adresse appartenant à la mémoire commune, le signal MCi repasse au niveau 0, ce qui entraxe le passage au niveau O du signal DMC et du signal OBi pour fermer la porte n0 i. Dans le cas où le processeur n0 i accède à la mémoire commune et n'a pas terminé cet accès avant une demande d'accès par un processeur noj situé en aval (j supérieur à i), le fonctionnement est tout à fait semblable à celui décrit précédemment. Le passage au niveau O du signal MR. donne au processeur n0 j l'ordre d'attendre. Deux difficultés particulières peuvent surgir pendant le fonctionnement du dispositif selon l'invention. Si le temps d'attente d'un processeur est long, l'exécution de ses tâches est ralentie; un perfectionnement du dispositif selon l'invention permet de limiter la durée d'une attente en donnant l'ordre au processeur d'interrompre le traitement du programme en cours et de suivre un autre programme prédéterminé. D'autre part, Si un des processeurs tombe en panne, l'ensemble du système peut être bloqué si le processeur défaillant occupe le bus 29 en permanence. Un autre perfectionnement du dispositif selon l'invention permet d'éviter ce blocage. La figure 6, représente le schéma synoptique d'un exemple de réalisation d'un dispositif de commande, par exemple le dispositif de commande n0 1 de la figure 1, comportant les éléments de l'exemple de réalisation décrit précédemment et représenté sur la figure 2 et comportant en outre des éléments permettant de pallier aux deux difficultés mentionnées. Les moyens de limitation du temps d'attente du processeur sont constitués, dans cet exemple de réalisation, par une porte ET 41 intercalée sur la ligne transmettant le signal MC1 fourni par le décodeur d'adresses 31. Une entrée de cette porte 41 reçoit un signal de commande B fourni par la sortie d'un inverseur logique 42 inversant un signal que lui fournit un temporisateur 39. La sortie de la porte ET 41 fournit un signal DM1 de valeur 1 lorsque le signal MC1 a la valeur 1 si la porte 41 n'est pas bloquée par le signal B. Le temporisateur 39 comporte une entrée recevant le signal DM1, une entrée de remise à zéro R reliée à la sortie Q de la bascule 33, et une sortie reliée, d'une part à l'entrée de l'inverseur 42, et d'autre part à une borne de sortie 43 pour fournir un signal d'interruption I1 à une entrée du processeur n0 1. La sortie de la porte ET 41 est reliée à l'entrée D de la bascule 33, à l'entrée de l'amplificateur tampon 30 et à la deuxième entrée de la porte NON ET 32, et est reliée à l'entrée CL de la bascule 33 par l'intermédiaire d'une porte ET 40 commandée par un signal logique C fourni par un deuxième dispositif à retard 38 dont l'entrée est connectée à la sortie Q de la bascule 33. La porte 40 et le dispositif à retard 38 permettent de libérer le bus 29 en cas de défaillance du processeur n0 1. La porte 41, le temporisateur 39, et l'inverseur 42 permettent de limiter le temps d'attente du processeur n0 1 lorsque la mémoire commune est utilisée longuement par un des autres processeurs du système. La figure 7 représente un chronogramme des signaux logiques intervenant pour limiter la durée d'attente du processeur n0 1. Quand le décodeur d'adresses 31 fournit un signal MC1 de valeur 1, ce signal est transmis par la porte 41 vers l'entrée D de la bascule 33, l'entrée de l'amplificateur tampon 30, la deuxième entrée de la porte NON ET 32, vers une première entrée de la porte ET 40, et vers l'entrée du temporisateur 39 où elle déclenche une temporisation d'une durée tB Le signal B a pour valeur de repos 1 et prend la valeur O après le délai tB La porte ET 41 est alors bloquée, tout se passe comme si le processeur n0 1 ne cherchait plus à accéder à la mémoire commune, le signal DM1 reprend la valeur 0, qui est transmise par la porte ET 40 à l'entrée CL de la bascule 33, le signal OBl reste donc à la valeur 0. Par ailleurs, la borne de sortie 43 fournit un signal li de valeur 1 à une entrée du processeur n0 1, provoquant une interruption du programme suivi par ce processeur et le traitement d'un autre programme prédéterminé. Le signal MR1 repasse à la valeur 1 pour autoriser le processeur n0 1 à travailler. Dans le cas le plus courant la durée d'une attente étant inférieure à la valeur tB du délai fixé, le retour au niveau O du signal 0B1 fourni par la sortie Q de la bascule 33 provoque une remise à zéro du temporisateur 39. La figure 8 représente les chronogrammes des signaux logiques assurant le fonctionnement des moyens de limitation du temps de d'occupation du bus 29 par le processeur n0 1. Quand le processeur n0 1 a obtenu l'autorisation d'accès à la mémoire commune 1, le signal 0B1 prend la valeur 1 et la sortie Q de la bascule 33 passe au niveau 0. Cette valeur O est transmise avec un retard de valeur t c par le dispositif à retard 38 à une deuxième entrée de la porte ET 40. La porte 40 reçoit donc un signal C dont la valeur au repos est 1 et dont la valeur passe à O après un délai de valeur tc La bascule 33 est donc remise à zéro systématiquement quand un accès à la mémoire commune 1 par le processeur n0 1 dépasse une durée tc. Les signaux sont représentés pour le cas où le signal MCI est maintenu indéfiniment au niveau 1. Le front descendant du signal OB1 provoque avec le retard tc une remontée du signal C au niveau 1, la bascule 33 est alors libre de changer d'état, si le signal DM1 est toujours au niveau 1, dès qu'un signal E1 arrive sur l'entrée d'horloge CK de la bascule 33. Les autres processeurs disposent donc d'intervalles de temps de durée au moins égale à tc pendant lesquels ils peuvent accèder au bus, chacun de ces intervalles étant séparé du suivant d'un délai de durée tc pendant lequel le bus 29 est occupé par le processeur n0 1. Ainsi le système peut continuer à fonctionner d'une façon dégradée mais quand même assez bonne si un processeur tombe en panne et demande en permance un accès à la mémoire commune. L'invention ne se limite pas aux exemples de réalisation décrits, il est notamment à la portée de l'homme de l'art de réaliser différemment le dispositif générateur d'impulsions 45, les moyens de limitation du temps d'attente et les moyens de limitation du temps d'occupation du bus. D'autre part, il est à la portée de l'homme de l'art de réaliser des moyens de commande 26 où le signal E1 d'autorisation d'accès n'est pas déclenché par un signal DMC de demande d'accès, mais est envoyé périodiquement par un générateur de signal d'horloge. Dans ce cas un processeur qui fait une demande d'accès à la mémoire commune, attend pendant une durée qui peut atteindre la valeur d'une période d'horloge avant de recevoir un signal d'autorisation d'accès.

Claims: REVENDICATIONS 1. Dispositif de gestion d'une mémoire commune (1) à plusieurs processeurs comportant des moyens de commande (26) générant un signal logique E lorsque l'accès à la mémoire commune (1) est libre; chaque processeur étant respectivement couplé à un dispositif de commande; les dispositifs de commande étant reliés en série, dans l'ordre de priorité des processeurs y associés, et transmettant le signal E jusqu'au dispositif de commande le plus prioritaire parmi ceux ayant demandé à accéder à la mémoire commune (1), ce dernier dispositif de commande bloquant la transmission du signal E et autorisant le processeur qui lui est couplé, à accéder à la mémoire commune (1); ; ce dispositif de gestion étant caractérisé en ce que chaque dispositif de commande comporte des moyens asynchrones pour bloquer la transmission du signal E, les moyens asynchrones d'un dispositif de commande étant déclenchés par le signal E lorsqu'il parvient jusqu'à ce dispositif de commande si le processeur associé à ce dispositif de commande a demandé à accéder à la mémoire commune (1). 2. Dispositif selon la revendication 1, caractérisé en ce que les moyens asynchrones pour bloquer la transmission du signal E comportent: - une bascule (33) commandée par l'arrivée du signal E, et validée par un signal de demande d'accès généré par le processeur associé, pour mémoriser une autorisation d'accès; - deux portes logiques (35 et 36) montées en série, acheminant le signal E avec un temps de transit plus long que celui de la bascule (33), et commandées respectivement par un signal fourni par la bascule (33) et par ce même signal retardé par un dispositif à retard (37). 3. Dispositif selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que chaque dispositif de commande possède une sortie reliée à une première borne d'entrée (3) des moyens de commande (26) pour leur fournir un signal DMC quand un processeur demande l'accès à la mémoire (1); en ce que les moyens de commande (26) génèrent alors le signal E ¯ en ce que le dispositif de commande associé à un processeur terminant son accès à la mémoire (1) transmet le signal E si celui-ci est encore présent à l'entrée de ce dispositif de commande lorsque cet accès est terminé; en ce que le dernier dispositif de commande de la série possède une borne de sortie (21) reliée à une deuxième borne d'entrée (2) des moyens de commande (26), pour leur retransmettre le signal E; et en ce que si le signal E revient aux moyens de commande (26) ceux-ci fournissent de nouveau le signal E à la série des dispositifs de commande. 4. Dispositif selon la revendication 3, caractérisé en ce que les moyens de commande (26) comportent une porte logique (47) ayant deux entrées couplées respectivement à la première borne d'entrée (3) des moyens de commande (26) et à une sortie d'un générateur d'impulsions (45) dont une entrée est couplée à la deuxième borne d'entrée (2) des moyens de commande (26), et ayant une borne de sortie (4) fournissant le signal E lorsque le signal DMC est appliqué sur la première borne d'entrée (3) ou bien lorsqu'un signal E, précédemment généré, revient sur la deuxième borne d'entrée (2). 5. Dispositif selon l'une quelconque des revendications I à 4, caractérisé en ce que chaque dispositif de commande comporte en outre des moyens de limitation du temps d'attente d'un processeur pour accéder à la mémoire (I), provoquant la suppression de la demande d'accès, une interruption du programme suivi par le processeur qui attend et le traitement d'un autre programme prédéterminé, quand l'attente dépasse une certaine durée. 6. Dispositif selon l'une quelconque des revendications 1 à 5, caractérisé en ce que chaque dispositif de commande comporte en outre des moyens de limitation du temps d'occupation de la mémoire commune (1) par le processeur associé.

Inventors: BUOB, JEAN-PIERRE
Applicants: COMPAGNIE EUROPEENNE DE TELETRANSMISSION C.E.T.T.
Application year: 1982
Main classification: G06F13
IPC codes: G06F13