FR 2528195 A1 19831209 FR 8309363 A 19830606 1. La présente invention concerne un système de communication entre ordinateurs Il est souvent nécessaire que deux ou plusieurs ordinateurs communiquent les uns avec les autres, et on sait qu'une telle communication s'effec- tue via des liaisons standardisées ou propres au fabricant, les ordinateurs respectifs étant adaptés, par exemple grâ- ce à la présence d'un logiciel approprié de traitement des données, pour tenir compte de la liaison concernée Dans les systèmes de l'art antérieur, le transfert de données a tendance à impliquer un temps excessif, en général à cau- se du logiciel quelque peu lourd de traitement du transfert et de la nécessité de faire appel à "l'établissement d'une liaison" synchrone. Il est également courant qu'un ordinateur com- porte deux ou plusieurs processeurs qui partagent sa mémoire ou une partie de celle-ci. Dans la présente invention, une pluralité d'ordi- nateurs ou de processeurs d'ordinateur sont reliés à un moyen de mémoire commun via un moyen de commutation qui a pour fonction de relier chaque ordinateur au moyen de mé- moire commun lors d'une séquence cyclique de façon que la mémoire commune soit apparemment toujours disponible pour chacun des ordinateurs ou processeurs. La présente invention sera bien comprise lors 2, de la description suivante faite en liaison avec les des- sins ci-joints dans lesquels: Les figures 1 et 2 sont des schémas sous forme de blocs de systèmes partageant la mémoire d'un ordina- teur. Un groupe d'adresses dans un ordinateur dit DEC LSI/ll est réservé à ce qu'on appelle une "page d'entrée/sortie" (ou E/S) par l'intermédiaire de laquelle l'ordinateur communique avec des machines extérieures. Pour des communications extérieures, le constructeur four- nit son système dit "QBUS" dans lequel, en premier un si- gnal d'adresse, puis un signal de données passe suivant le même jeu de lignes de bus Dans la figure,quatre ordina- teurs DEC LSI/11 ayant pour référence 1 sont reliés par des points respectifs d'accès 2, 3, 4 et 5 à un tableau 6 de mémoire commune à haute vitesse ayant une capacité de 512 mots, l'agencement étant tel que les emplacements de mé- moire 6 apparaissent parmi les adresses réservées à la page E/S de chaque ordinateur Il ne doit pas en être ainsi - au contraire la mémoire 6 pourrait être placée parmi les adresses associées à la propre mémoire de l'ordinateur Ce- pendant,on préfère utiliser la page E/S car cela permet de libérer la totalité de la mémoire interne de l'ordina- teur pour une autre utilisation. Chacun des points d'accès 2 à 5 comprend un dis- positif standard 7 d'entrée/sortie de déclenchement, qui est connecté à la mémoire commune 6 via un agencement-tam- pon 8 à deux directions Chaque agencement-tampon comporte une entrée de commande qui est connectée à une sortie res- pective d'un ensemble de commande de séquence 9 (par exemple un oscillateur, de préférence un oscillateur avec un rapport marque/espacement variable, commandant un comp- teur) qui valide les agencements-tampon dans la séquence cyclique, c'estàr-dire que le premier, puis le deuxième, puis le suivant s Qnt validée, etc, Chaque agencement-tam- pon est validé pendant environ 100 nanosecondes et ne l'est plus alors pendant les 300 nanosecondes suivantes (au cours desquelles les autres agencements-tampon sont vali- 3, dés à leur tour), Lorsqu'un ordinateur quelconque doit accéder à la mémoire 6, il choisit l'une des adresses de son bloc approprié dans la zone de page E/S et donne à sa sortie le signal approprié de commande de lecture/écriture Le signal d'adresse est déclenché dans le point d'accès ap- proprié des points 2 à 5 qui alors, chaque fois que son agencement-tampon est validé, accède à l'adresse appro- priée de la mémoire 6 La donnée présente à cette adresse est alors disponible pour être lue, ou dans le cas d'une opération d'écriture, la donnée à écrire est également déclenchée dans le point d'accès et, lors de la valida- tion suivante de ce point d'accès, la donnée est entrée. Comme on le remarquera, par validation cyclique des points d'accès à une vitesse telle que chaque ordina- teur à accès à la mémoire commune au moins une fois au cours du temps d'accès normal, dans la mesure o l'ordi- nateur est concerné, la mémoire commune est toujours à sa disposition Toute donnée entrée dans la mémoire commune devient apparemment disponible immédiatement pour chacun des ordinateurs aucun logiciel spécial ne doit être pré- vu pour organiser le transfert des données et chaque ordi- nateur peut fonctionner d'une manière asynchrone par rap- port aux autres. Naturellement, la mémoire commune 6 et les points d'accès doivent pouvoir fonctionner à une vitesse suffi- samment élevée pour permettre des opérations correctes de lecture et d'écriture pendant la durée de validation de chaque point d'accès Cette obligation n'est pas ce- pendant particulièrement onéreuse la mémoire pourrait être mise en oeuvre avec des dispositifs haute vitesse, par exemple avec des puces de mémoire Shottky, mais aucune mi- se en oeuvre très spéciale n'est généralement nécessaire, Comme cela a été indiqué précédemment, il n'est pas nécessaire d'avoir accès à la mémoire commune via le bloc d'adresses de page E/S De plus, la présente inven- tion n'est pas seulement applicable à la marque d'ordina- teur et de système de bus indiqué ci-dessus A titre 4, d'exemple, elle est également applicable à une communica- tion entre une pluralité d'ordinateurs dits PD Pll qui uti- lisent le système de liaison dit "UNIBUS" En outre, on peut modifier à volonté les temps d'accès et de cycle dans les matériels indiqués, de même que peut l'être la capacité de la mémoire commune. On remarquera également que la mémoire commune ne doit pas occuper le même jeu d'adresses dans chaque ordinateur, c'est-à-dire que l'adresse de départ pour la mémoire commune peut être différente, si nécessaire, pour chaque ordinateur. Si le système à mémoire partagée décrit en liaison avec la figure 1 est étendu de manière à inclure sensiblement plus de quatre points d'accès, c'est-à-dire à permettre l'accès à la mémoire d'un nombre d'ordinateurs séparés supérieur à quatre, le temps d'accès à la mémoire pour chaque ordinateur peut devenir sensiblement plus lent Dans ce cas, il peut être souhaitable de-modifier le système de façon que, au lieu de rendre la mémoire dis- ponible pour chaque ordinateur suivant une séquence fixe, elle ne le sera que pour les ordinateurs qui auront be- soin d'y accéder au moment concerné Comme modification supplémentaire, au lieu que la mémoire soit rendue dispo- nible aux ordinateurs suivant une séquence fixe, la sé- quence peut être modifiée pour tenir compte d'une priorité pré-attribuée à chaque ordinateur, par exemple en confor- mité avec la fréquence à laquelle chaque ordinateur devra vraisemblablement demander accès à la mémoire partagée. Le système de la figure 2 représenté l'une des mises en oeuvre possibles de-ces deux modifications Seize ordina- teurs séparés 20 sont ici connectés via leurs bus de com- munication et leurs,points d'accès commutables respectifs 22 à une mémoire partagée 23 Une ligne de commande 21 constituant une partie de chaque bus est reliée à une en- trée respective d'un circuit d'arbitrage 24, circuit qui comporte seize sorties connectées aux entrées de commande des points d'accès respectifs 22 Le circuit 24 comprend deux jeux 25 et 26 de bascules bistables, un générateur 5. de signaux de synchronisation 27, un circuit logique et de décodage d'adresse 28 et une mémoire morte programma- -ble 29 Chaque ordinateur est agencé de façon que, lors- qu'il doit avoir accès à la mémoire partagée 23, il place un signal logique particulier sur sa ligne de commande 21 du bus de communication La combinaison des signaux appa- raissant sur toutes les lignes 21 est chargée dans le jeu de bascules 25 au commencement du cycle d'accès à la mé- moire La combinaison est appliquée au circuit logique et 1 î de décodage d'adresse 28 qui adresse ainsi un emplacement de 16 bits de large dans la mémoire 29 correspondant à la combinaison particulière de signaux Chaque emplacement de la mémoire est pré-rempli d'une série de bits, dont l'un a une valeur qui provoquera la commutation ou la valida- tion des points d'accès 22 alors que tous les autres ont une valeur qui ne valide pas ainsi les points d'accès 22. Le signal à l'emplacement adressé de la mémoire 29 est chargé dans le jeu de bascules 26 et, à partir de là,des bits respectifs du signal sont appliqués aux entrées de commande de point d'accès de manière à mettre en oeuvre un et seulement un de ces points d'accès Le contenu de la mémoire est agencé naturellement de façon que le point d'accès qui est ainsi mis en oeuvre voit celui qui, pour toute combinaison donnée d'ordinateurs demandant présente- ment l'accès à la mémoire, est connecté à l'ordinateur ayant la priorité la plus grande Ainsi, cet ordinateur est maintenant connecté à la mémoire 23 Le signal mainte- nu dans les bascules 26 est également renvoyé aux bascules comme signal de remise à l'état initial, d'o il résul- te que l'une des bascules 25 connectées à l'ordinateur dont l'accès à la mémoire est permis se trouve remise à l'état initial Lorsque cela se produit, la combinaison de si- gnaux allant des bascules 25 Au circuit de décodage 28 change, un nouvel emplacement correspondant à l'intérieur de la mémoire 29 est adressé et un nouveau signal devient disponible aux entrées des bascules 26 Ce nouveau signal aura naturellement une valeur permettant de valider le point d'accès 22 qui est connecté à l'ordinateur ayant la 6, seconde priorité et qui a besoin d'avoir accès à la mémoi- re 23 Après un temps d'accès prédéterminé, établi par le générateur de signaux de synchronisation 27, le nouveau signal provenant de la mémoire 29 est chargé dans les bas- cules 26 et donc appliqué aux points d'accès 22 Ainsi, l'ordinateur ayant la seconde priorité se trouve connecté à la mémoire 23 et entre-temps la bascule appropriée du jeu 25 est remise à l'état initial de sorte que la mémoire 26 rend disponible un signal qui validera le point d'accès connecté à l'ordinateur ayant la troisième priorité A l'issue d'un nouveau temps d'accès prédéterminé, ce signal est chargé dans les bascules 26 et l'ordinateur ayant la troisième priorité est connecté à la mémoire 23 La-séquen- ce se poursuit de cette façon jusqu'à ce que toutes les demandes d'accès à la mémoire qui ont été chargées dans les bascules 25 au comnencement du cycle d'accès à la mémoire aient été satisfaites L'absence de toute autre demande de mémoire chargée dans les bascules 25 est détectée par le circuit logique et de décodage d'adresse 28 qui fonction- ne alors pour que n'importe quelle combinaison nouvelle de signaux présente alors sur les lignes de commande 21 soit chargée dans les bascules 25, à la suite de quoi commence un nouveau cycle d'accès à la mémoire La durée de chaque cycle d'accès à la mémoire est ainsi variable elle est fonction du nombre d'ordinateurs-voulant accéder à la mé- moire au commencement du cycle approprié Pour la plus longue, elle serait égale à seize fois le temps d'accès prédéterminé ou cycle d'horloge établi par le générateur 27 Ainsi, dans le pire des cas (avec tous les ordina- teurs voulant avoir accès simultanément à la mémoire), l'ordinateur ayant la priorité la plus basse aura accès à un moment proche de la fin de ce sixième cycle d'impul-r sions d'horloge, par exemple, si le générateur 27 fonc- tionne à 16 M Hz, en moins d'environ 1 microseconde. La présente invention n'est pas limitée aux exemples de réalisation qui viennent d'être décrits, elle est au contraire susceptible de modifications et de va- riantes qui apparaîtront à l'homme de l'art. 7, REVENDICATIONS 1 Système à mémoire partagée destiné à être utilisé avec une pluralité d'ordinateurs, caractérisé en ce qu'il comprend une mémoire ayant un bus d'entrée/sortie pour recevoir une information d'adresse et une donnée d'entrée destinée à la mémoire et pour fournir une donnée de sortie à partir de la mémoire, une pluralité de points d'accès commutables qui sont connectés au bus et peuvent l'être à des ordinateurs respectifs d'une pluralité d'or- dinateurs, chaque point d'accès étant commutable en des états ouvert et fermé dans lesquels il admet et n'admet pas, respectivement, une communication entre la mémoire et l'ordinateur associé, et un moyen de commande connecté aux points d'accès et pouvant fonctionner pour provoquer la commutation d'au moins un nombre sélectionné de ceux-ci pour qu'ils prennent l'état ouvert les uns après les autres à la suite. 2 Système selon la revendication 1, caracté- risé en ce que le moyen de commande peut fonctionner pour provoquer la commutation de tous les points d'accès et leur faire prendre l'état ouvert selon une séquence répé- titive fixe. 3 Système selon la revendication 1, caracté- risé en ce que le moyen de commande comprend une pluralité d'entrées destinées à être connectées de manière à rece- voir des signaux de demande d'accès à la mémoire provenant d'ordinateurs respectifs parmi les ordinateurs et le moyen de commande peut fonctionner de manière à provoquer la commutation séquentielle pour passage à l'état ouvert des seuls points d'accès associés aux ordinateurs qui ont fourni un signal de demande d'accès à la mémoire, 4 Système selon la revendication 3, caractéri- sé en ce que le moyen de commande comprend une mémoire contenant une information indicatrice d'une priorité pré- allouée pour chaque point d'accès, et le moyen de comman- de peut fonctionner pour provoquer la commutation des points d'accès pour passageaà l'état ouvert dans l'ordre de cette priorité,