Brevet FR2792742A1 — publié le 20001027

di 2792742 SYSTEME MULTIPROCESSEUR A MEMOIRE PARTAGEE REPARTIE COMPORTANT UNE FONCTION D'ENFICHAGE A CHAUD POUR DES MEMOIRES PRINCIPALES. CONTEXTE DE L'INVENTION 1. Domaine de l'Invention La présente invention concerne un système multiprocesseur d'une structure à mémoire partagée répartie comportant une pluralité de noeuds comprenant chacun au moins un processeur et une mémoire principale. 2. Description de l'Art Connexe Afin de répondre aux besoins de disponibilité, certains appareils de traitement d'informations comportent une fonction d'enfichage à chaud pour permettre le remplacement d'un composant défectueux par un composant normal sans arrêter l'appareil lorsque l'appareil de traitement d'informations est défaillant. Certains dispositifs classiques comprenant des processeurs et des unités d'entrée/sortie sont réparables en ligne même lorsqu'ils sont séparés du système actif pendant le fonctionnement du système si le système peut être mis en oeuvre continûment par des dispositifs de sauvegarde et peuvent être séparés ou connectés relativement facilement sous le contrôle du système d'exploitation. En fonction du système d'exploitation, cependant, un espace de mémoire fixe est utilisé dans la mémoire principale tandis que le système est en fonctionnement, et la mémoire principale ne peut pas être connectée et déconnectée comme une mémoire principale enfichable à chaud étant donné que l'espace de mémoire fixe ne peut pas être séparé. Afin d'augmenter la disponibilité de la mémoire principale, un appareil présentant une configuration de mémoire principale duplex qui permet l'utilisation d'une mémoire principale de sauvegarde dans le cas d'une défaillance d'une mémoire principale active, et un appareil avec une structure de système multiplex sont utilisés. Cependant, ces appareils sont coûteux à cause de la fonction redondante due à la méthode duplex ou multiplex. Un système multiprocesseur avec une configuration à mémoire partagée répartie pour une plus grande performance et une plus grande capacité d'extension a été proposé récemment. Le multiprocesseur comporte souvent un processeur et une mémoire principale qui sont installés sur une carte de circuit imprimé. La structure de montage physique du multiprocesseur pose une limitation sur l'utilisation d'une unité remplaçable sur site enfichable à chaud, et la carte de circuit imprimé sert en tant qu'unité remplaçable. Par conséquent, lorsque le processeur sur la carte de circuit imprimé présente un défaut et doit être remplacé par un processeur normal par une fonction d'enfichage à chaud, la mémoire principale sur la susdite carte de circuit imprimé doit également être remplacée. Par conséquent, la mémoire principale doit comporter une fonction d'enfichage à chaud. RESUME DE L'INVENTION Un objet de la présente invention est donc de proposer un système multiprocesseur d'une structure à mémoire partagée répartie comportant une fonction d'enfichage à chaud pour des mémoires principales. Afin de séparer un noeud d'un système multiprocesseur d'une structure à mémoire partagée répartie pendant le fonctionnement du système multiprocesseur, l'espace de mémoire d'une mémoire principale gérée par le noeud à séparer commute de manière dynamique vers l'espace de mémoire d'une mémoire principale d'un noeud de sauvegarde sans reconnaissance par un logiciel. Si une demande d'accès en écriture à la mémoire est émise à partir d'un processeur, d'une unité d'entrée/sortie, ou d'un dispositif de déplacement, vers la mémoire principale d'un noeud maître, alors la demande d'accès en écriture à la mémoire est transférée vers le noeud maître et vers un noeud esclave lorsqu'on est dans un mode multidiffusion (pour le transfert de la demande d'accès en écriture à la mémoire vers une pluralité de noeuds), et une instruction de transfert d'une demande d'accès en lecture à la mémoire n'est donnée qu'au noeud maître lorsqu'on n'est pas dans le mode multidiffusion. Par conséquent, lorsqu'on est dans le mode multidiffusion, un traitement d'écriture de mémoire exécuté sur la mémoire principale du noeud maître est également effectué sur la mémoire principale du noeud esclave. En copiant des données depuis l'espace de mémoire d'un noeud à séparer vers l'espace de mémoire d'un noeud de sauvegarde sans un arrêt du système, le noeud peut être séparé sans arrêter le fonctionnement du système. En conséquence, il est possible de réparer une zone défectueuse du système sans arrêter le système. Par conséquent, le système multiprocesseur peut réaliser un système de traitement d'informations de grande disponibilité. Une fonction de dispositif de déplacement mise en oeuvre par un matériel copie des données depuis l'espace de mémoire du noeud à séparer vers l'espace de mémoire du noeud de sauvegarde, un conflit avec une demande d'accès à la mémoire émise à partir du processeur ou de l'unité d'entrée/sortie pendant ce temps étant résolu par le matériel. Lors de la copie de données à partir de l'espace de mémoire du noeud à séparer vers l'espace de mémoire du noeud de sauvegarde sans un arrêt du système, on peut accéder à l'espace de mémoire à partir duquel les données doivent être copiées sans que le système d'exploitation reconnaisse la copie des données de mémoire. Par conséquent, le système multiprocesseur peut réaliser un système de traitement d'informations d'une grande disponibilité indépendamment du système d'exploitation. Etant donné que toutes les données de mémoire sont copiées depuis le noeud à séparer vers l'espace de mémoire du noeud de sauvegarde lors de la séparation du noeud, le noeud de sauvegarde n'est nécessaire que lors de la copie des données de mémoire, et il n'est pas nécessaire qu'un noeud redondant soit disponible à tous moments. Le coût du système multiprocesseur est relativement faible étant donné qu'un tel noeud redondant n'est pas nécessaire pendant son fonctionnement normal. Les ressources à verrouiller destinées à être utilisées en garantissant les opérations inséparables de demande d'accès en lecture à la mémoire et de demande d'accès en écriture à la mémoire vers des mémoires lors de la copie des données de mémoire ne 2792742 sont pas toutes des zones de mémoire, mais seulement des adresses de mémoire qui nécessitent des opérations inséparables. Etant donné que les adresses de mémoire peuvent être verrouillées individuellement par une mémoire tampon d'adresse de verrouillage, la fréquence des conflits avec des demandes d'accès à la mémoire provenant de processeurs et d'unités d'entrée/sortie est réduite. De cette manière, les données de mémoire peuvent être copiées sans impliquer une réduction des capacités du système pendant le fonctionnement du système. Les objets, caractéristiques et avantages ci- dessus, et les autres, de la présente invention deviendront évidents à partir des descriptions qui suivent en référence aux dessins joints qui illustrent des exemples de la présente invention. BREVE DESCRIPTION DES DESSINS La figure 1 est un schéma fonctionnel d'un système multiprocesseur selon un premier mode de réalisation de la présente invention; la figure 2 est un schéma fonctionnel d'une unité de contrôle d'acheminement dans le système multiprocesseur montré sur la figure 1; la figure 3 est un schéma fonctionnel d'une unité de contrôle de verrouillage dans le système multiprocesseur montré sur la figure 1; la figure 4 est un schéma fonctionnel d'un dispositif de déplacement dans le système multiprocesseur montré sur la figure 1; la figure 5 est un organigramme d'une séquence pour séparer et connecter un noeud dans le système multiprocesseur montré sur la figure 1; 6 2792742 la figure 6 est un schéma fonctionnel d'un système multiprocesseur selon un second mode de réalisation de la présente invention; et la figure 7 est un schéma fonctionnel d'un système multiprocesseur selon un troisième mode de réalisation de la présente invention. DESCRIPTION DES MODES DE REALISATION PREFERES En référence maintenant à la figure 1, un système multiprocesseur selon un premier mode de réalisation de la présente invention comprend une pluralité de noeuds la à ld, un bus de verrouillage 6, et un bus de système 7. Le noeud la comporte un processeur 2, une unité d'entrée/sortie 3, une mémoire principale 4, et une unité de contrôle de système 5. L'unité de contrôle de système 5 comporte une unité de contrôle d'acheminement 31, une unité de contrôle de mémoire 32, une unité de contrôle d'interface entre noeuds 33, une unité de contrôle de verrouillage 34, et un dispositif de déplacement 35. La construction des noeuds lb, lc, ld est identique à celle du noeud la. Les noeuds la à ld sont connectés les uns aux autres par le bus de verrouillage 6 et le bus de système 7. Dans chacun des noeuds la à ld, une demande d'accès à la mémoire est émise à partir du processeur 2, de l'unité d'entrée/sortie 3, ou du dispositif de déplacement 35. L'unité de contrôle d'acheminement 31 détermine à quelle mémoire principale 4 de noeud la demande d'accès à la mémoire est destinée, ajoute des informations d'acheminement à la demande d'accès à la mémoire, et transfère la demande d'accès à la mémoire à l'unité de contrôle d'interface entre noeuds 33. Si la demande d'accès à la mémoire reçue par l'unité de contrôle d'interface entre noeuds 33 est destinée à la mémoire principale 4 dans un autre noeud, alors l'unité de contrôle d'interface entre noeuds 33 émet une demande d'accès à la mémoire vers l'autre noeud via le bus de système 7. Lorsque l'unité de contrôle d'interface entre noeuds 33 reçoit une demande d'accès à la mémoire autre qu'une demande d'accès à la mémoire verrouillée ou non verrouillée à partir de l'unité de contrôle d'acheminement 31 ou du bus de système 7, si la demande d'accès à la mémoire reçue est destinée à la mémoire principale 4 qui appartient à l'unité de contrôle d'interface entre noeuds 33, alors l'unité de contrôle d'interface entre noeuds 33 transfère une demande d'index de mémoire tampon d'adresse de verrouillage à l'unité de contrôle de verrouillage 34. L'unité de contrôle de verrouillage 34 vérifie si l'adresse transférée est verrouillée ou non, et envoie le résultat à l'unité de contrôle d'interface entre noeuds 33. Si l'unité de contrôle d'interface entre noeuds 33 reconnaît, à partir du résultat envoyé par l'unité de contrôle de verrouillage 34, que l'adresse transférée n'est pas verrouillée, alors l'unité de contrôle d'interface entre noeuds 33 transfère la demande d'accès à la mémoire, via l'unité de contrôle de mémoire 32, à la mémoire principale 4. Si l'unité de contrôle d'interface entre noeuds 33 reconnaît, à partir du résultat envoyé par l'unité de contr1ôle de verrouillage 34, que l'adresse transférée est verrouillée, alors l'unité de contrôle d'interface entre noeuds 33 conserve la demande d'accès à la mémoire et transfère la demande d'accès à la mémoire de nouveau à l'unité de contrôle de verrouillage 34. Ce traitement est répété jusqu'à ce que la demande d'accès à la mémoire soit déverrouillée. Si la demande d'accès à la mémoire transférée à partir de l'unité de contrôle d'acheminement 31 ou du bus de système 7 à l'unité de contrôle d'interface entre noeuds 33 est une demande de lecture de mémoire verrouillée pour son propre noeud, alors l'unité de contrôle d'interface entre noeuds 33 transfère une demande de verrouillage à l'unité de contrôle de verrouillage 34. Si l'adresse de la demande de verrouillage reçue n'est pas verrouillée, alors l'unité de contrôle de verrouillage 34 verrouille l'adresse et envoie une indication de verrouillage réussi à l'unité de contrôle d'interface entre noeuds 33. Lorsque l'unité de contrôle d'interface entre noeuds 33 reçoit l'indication de verrouillage réussi provenant de l'unité de contrôle de verrouillage 34, l'unité de contrôle d'interface entre noeuds 33 transfère la demande de lecture de mémoire à l'unité de contrôle de mémoire 32. Si l'adresse de la demande de lecture de mémoire verrouillée reçue est verrouillée, alors l'unité de contrôle de verrouillage 34 envoie une indication d'échec de verrouillage à l'unité de contrôle d'interface entre noeuds 33 et au bus de verrouillage 6. En réponse à l'indication reçue d'échec de verrouillage, l'unité de contrôle d'interface entre noeuds 33 élimine la demande de lecture de mémoire verrouillée. Lorsque l'unité de contrôle de système 5 d'une source de demande reçoit l'indication d'échec de verrouillage à partir du bus de verrouillage 6, l'unité de contrôle de système 5 envoie l'indication d'échec de verrouillage à un dispositif de source de demande. Lorsque le dispositif de source de demande reçoit l'indication d'échec de verrouillage, le dispositif de source de demande émet de nouveau une demande de lecture de mémoire verrouillée. Si la demande d'accès à la mémoire transférée à partir de l'unité de contrôle d'acheminement 31 ou du bus de système 7 à l'unité de contrôle d'interface entre noeuds 33 est une demande d'écriture de mémoire non verrouillée pour son propre noeud, alors l'unité de contrôle d'interface entre noeuds 33 transfère une demande d'écriture de mémoire à l'unité de contrôle de mémoire 32 et transfère également une demande de déverrouillage à l'unité de contrôle de verrouillage 34. L'unité de contrôle de verrouillage 34 déverrouille l'adresse de la demande de déverrouillage reçue. Une structure détaillée de l'unité de contrôle d'acheminement 31 va être décrite ci-dessous. La figure 2 montre l'unité de contrôle d'acheminement 31 sous forme de blocs. Comme montré sur la figure 2, l'unité de contrôle d'acheminement 31 comporte des registres 101, 102, 103 pour recevoir les demandes d'accès à la mémoire provenant du processeur, et un commutateur 104 pour commuter les sorties provenant du processeur 2, de l'unité d'entrée/sortie 3, et du dispositif de déplacement 35. Le registre 101 contient des données d'écriture lorsqu'une demande d'écriture de mémoire est reçue. Le registre 102 contient le type d'une demande d'accès à la mémoire. Le registre 103 contient l'adresse de mémoire d'une demande d'accès à la mémoire. L'unité de contrôle d'acheminement 31 comporte également des registres de contrôle d'acheminement 110, 111, 112, 113, 114, 115, 116, 117 pour contrôler à quel 2792742 noeud une demande d'accès à la mémoire doit être envoyée. Le registre 110 contient la valeur de limite inférieure d'un espace d'adresses de la mémoire principale du noeud la, et le registre 111 contient la valeur de limite supérieure de l'espace d'adresses de la mémoire principale du noeud la. De même, les registres 112, 113 correspondent au noeud lb, les registres 114, 115 correspondent au noeud lc, et les registres 116, 117 correspondent au noeud ld. Un circuit combinatoire 120 reçoit des valeurs provenant des registres 103, 110, 111, et sort "1" sur une ligne de connexion 200 si la demande d'accès à la mémoire indiquée par le registre 103 est une demande d'accès à la mémoire pour la mémoire principale 4 du noeud la. De même, un circuit combinatoire 121 reçoit des valeurs provenant des registres 103, 112, 113, et sort "1" sur une ligne de connexion 201 si la demande d'accès à la mémoire indiquée par le registre 103 est une demande d'accès à la mémoire pour la mémoire principale 4 du noeud lb. Un circuit combinatoire 122 reçoit des valeurs provenant des registres 103, 114, , et sort "1" sur une ligne de connexion 202 si la demande d'accès à la mémoire indiquée par le registre 103 est une demande d'accès à la mémoire pour la mémoire principale 4 du noeud lc. Un circuit combinatoire 123 reçoit des valeurs provenant des registres 103, 116, 117, et sort "1" sur une ligne de connexion 203 si la demande d'accès à la mémoire indiquée par le registre 103 est une demande d'accès à la mémoire pour la mémoire principale 4 du noeud lc. Par conséquent, les signaux sur les lignes de connexion , 201, 202, 203 représentent les informations d'acheminement indiquant les destinations des demandes d'accès à la mémoire contenues dans les registres 101, 102, 103. Un indicateur 140 est à "1" si le transfert d'une demande d'écriture de mémoire à une pluralité de noeuds (mode multidiffusion) est indiqué. Un registre 141 contient des informations de noeud maître sous une forme codée. Un registre 142 contient des informations de noeud esclave sous une forme codée. Si le transfert d'une demande d'écriture de mémoire à une pluralité de noeuds est indiqué par l'indicateur , une instruction d'acheminement pour le noeud indiqué par les informations de noeud esclave contenues dans le registre 142 est masquée par des circuits combinatoires 160, 150, 151, et traitée en informations d'acheminement représentées par des lignes de connexion 210, 211, 212, 213. Par conséquent, lorsqu'un mode multidiffusion est représenté par l'indicateur 140, la valeur des informations de noeud esclave contenues dans le registre 142 est ignorée. Un circuit combinatoire 162 décode les informations de commande d'une demande d'accès à la mémoire provenant du registre 102. Si les informations de commande décodées indiquent une demande d'écriture de mémoire, alors le circuit combinatoire 162 sort "1" vers un circuit combinatoire 152. Des circuits combinatoires 161, 163 sortent "1" vers le circuit combinatoire 152 si la destination d'acheminement d'une demande d'accès à la mémoire représentée par les lignes de connexion 210, 211, 212, 213 est une cellule maître indiquée par le registre 141. Le circuit combinatoire 162 sort "1" vers le circuit combinatoire 152 si la demande d'accès à la mémoire mise dans le registre 102 est une demande 12 2792742 d'écriture de mémoire. Par conséquent, si la demande d'accès à la mémoire est une demande d'écriture de mémoire, si le transfert de la demande d'accès à la mémoire à une pluralité de noeuds est indiqué, et si la destination d'acheminement représentée par les lignes de connexion 210, 211, 212, 213 est un noeud maître, alors le circuit combinatoire 152 et un circuit combinatoire 153 ajoutent le noeud esclave représenté par le registre 142 en tant que destination d'acheminement, dont les informations sont transférées en tant qu'informations d'acheminement représentées par une ligne de connexion 220 à l'unité de contrôle d'interface entre noeuds 33 ajoutées à la demande d'accès à la mémoire. Une structure détaillée de l'unité de contrôle de verrouillage 34 va être décrite ci-dessous. La figure 3 montre l'unité de contrôle de verrouillage 34 sous forme de blocs. Comme montré sur la figure 3, l'unité de contrôle de verrouillage 34 comporte une mémoire tampon d'adresse de verrouillage 300 pour contenir une adresse de mémoire principale verrouillée, un circuit de comparaison 301 pour comparer les données contenues dans la mémoire tampon d'adresse de verrouillage 300 avec les adresses de mémoire d'une demande de verrouillage, d'une demande de déverrouillage, et d'une demande d'index de mémoire tampon d'adresse de verrouillage transférées à partir de l'unité de contrôle d'interface entre noeuds 33 pour déterminer si elles correspondent les unes aux autres, et un circuit de contrôle de verrouillage 302 pour recevoir le résultat de la comparaison provenant du circuit de comparaison 301 et une demande d'accès à la mémoire tampon d'adresse de verrouillage provenant de l'unité 13 2792742 de contrôle d'interface entre noeuds 33, pour contrôler la mémoire tampon d'adresse de verrouillage 300, et indique le succès/l'échec du verrouillage à l'unité de contrôle d'interface entre noeuds 33 et au bus de verrouillage 6. Lorsque l'unité de contrôle d'interface entre noeuds 33 transfère une demande d'accès à la mémoire tampon d'adresse de verrouillage à l'unité de contrôle de verrouillage 34, le circuit de contrôle de verrouillage 302 reçoit le résultat de la comparaison provenant du circuit de comparaison 301, et indique que l'adresse transférée est verrouillée à l'unité de contrôle d'interface entre noeuds 33 si la même adresse que l'adresse de demande d'accès à la mémoire a déjà été enregistrée dans la mémoire tampon d'adresse de verrouillage 300. Si la même adresse que l'adresse de demande d'accès à la mémoire n'a pas été enregistrée dans la mémoire tampon d'adresse de verrouillage 300, alors l'unité de contrôle d'interface entre noeuds 33 indique que l'adresse transférée n'est pas verrouillée à l'unité de contrôle d'interface entre noeuds 33. Lorsque l'unité de contrôle d'interface entre noeuds 33 transfère une demande de verrouillage à l'unité de contrôle de verrouillage 34, le circuit de contrôle de verrouillage 302 reçoit le résultat de la comparaison provenant du circuit de comparaison 301, et émet une indication d'échec de verrouillage vers l'unité de contrôle d'interface entre noeuds 33 et vers le bus de verrouillage 6 si la même adresse que l'adresse de demande de lecture de mémoire verrouillée a déjà été enregistrée dans la mémoire tampon d'adresse de verrouillage 300. Si la même adresse qu'une adresse de demande de lecture de mémoire verrouillée n'a pas été enregistrée dans la mémoire tampon d'adresse de verrouillage 300, alors le circuit de contrôle de verrouillage 302 émet une indication de verrouillage réussi vers l'unité de contrôle d'interface entre noeuds 33 et vers le bus de verrouillage 6, et donne l'instruction à la mémoire tampon d'adresse de verrouillage 300 d'enregistrer l'adresse de la demande de verrouillage. Lorsque l'unité de contrôle d'interface entre noeuds 33 transfère une demande de déverrouillage à l'unité de contrôle de verrouillage 34, le circuit de contrôle de verrouillage 302 reçoit le résultat de la comparaison provenant du circuit de comparaison 301, et donne l'instruction à la mémoire tampon d'adresse de verrouillage 300 d'effacer une entrée qui correspond à l'adresse de la demande de déverrouillage parmi les adresses qui sont enregistrées dans la mémoire tampon d'adresse de verrouillage 300. Les indications de verrouillage réussi et d'échec de verrouillage envoyées à partir des autres noeuds via le bus de verrouillage sont rapportées, via le circuit de contrôle de verrouillage 302, à l'unité de contrôle d'acheminement 31. Une structure détaillée du dispositif de déplacement 35 va être décrite ci-dessous. La figure 4 montre le dispositif de déplacement 35 sous forme de blocs. Comme montré sur la figure 4, le dispositif de déplacement 35 comporte un indicateur 400 pour indiquer l'activation du dispositif de déplacement 35, un registre 401 pour indiquer un noeud auquel le dispositif de déplacement 35 exécute la copie de la mémoire, un sélecteur 402 qui reçoit des signaux de sortie provenant des registres 110, 112, 114, 116 de l'unité de contrôle d'acheminement 31 et d'un additionneur 406 et qui est contrôlé par un circuit de contrôle de dispositif de déplacement 404, un sélecteur 403 qui reçoit des signaux de sortie provenant des registres 111, 113, 115, 117 de l'unité de contrôle d'acheminement 31 et d'un additionneur 406 et qui est contrôlé par le circuit de contr1ôle de dispositif de déplacement 404, un registre 405 pour contenir l'adresse de mémoire d'une demande d'accès à la mémoire émise vers l'unité de contrôle d'acheminement 31, un additionneur 406 pour ajouter une valeur particulière à la valeur du registre 405, par exemple ajouter "8" à la valeur du registre 405 si l'unité d'une demande d'accès à la mémoire émise par le dispositif de déplacement est de 8 octets, et un comparateur 407 pour comparer la valeur du sélecteur 403 et la valeur du registre 405 l'une avec l'autre. Si "1" est positionné dans l'indicateur 400, alors le circuit de contrôle de dispositif de déplacement 404 contrôle le sélecteur 402 pour mettre l'adresse de début d'une demande d'accès à la mémoire dans le registre 405 sur la base des informations de noeud indiquées par le registre 401. De même, le circuit de contrôle de dispositif de déplacement 404 contr1ôle le sélecteur 403 pour entrer l'adresse de fin de la demande d'accès à la mémoire dans le comparateur 407. Sur la base de l'adresse entrée à partir du registre 405, le circuit de contrôle de dispositif de déplacement 404 émet une demande de lecture de mémoire verrouillée vers l'unité de contrôle d'acheminement 31. Si une indication d'échec de verrouillage est renvoyée pour la demande de lecture de mémoire verrouillée, alors le circuit de contrôle de dispositif de déplacement 404 émet de nouveau une demande de lecture de mémoire verrouillée vers l'unité de contrôle d'acheminement 31 en utilisant la même adresse. Si des données de réponse sont renvoyées pour la demande de lecture de mémoire verrouillée, alors le circuit de contrôle de dispositif de déplacement 404 émet une demande d'écriture de mémoire non verrouillée à la même adresse. Lorsque la demande d'écriture de mémoire non verrouillée est exécutée, le sélecteur 402 sélectionne une adresse incrémentée par l'additionneur 406, et entre l'adresse sélectionnée dans le registre 405. Tout en incrémentant l'adresse, le circuit de contrôle de dispositif de déplacement 404 émet à plusieurs reprises une demande de lecture de mémoire verrouillée et une demande d'écriture de mémoire non verrouillée vers l'unité de contrôle d'acheminement 31. Si le comparateur 407 détecte que l'adresse du registre 405 dépasse l'adresse du sélecteur 403, le circuit de contrôle de dispositif de déplacement 404 réinitialise l'indicateur 400, et termine l'émission de la demande d'accès à la mémoire vers l'unité de contrôle d'acheminement 31. Le fonctionnement du système multiprocesseur pour séparer/connecter un noeud va être décrit ci-dessous en référence à la figure 5. Dans ce mode de réalisation, on suppose que les noeuds la, lb, lc montrés sur la figure 1 fonctionnent comme des noeuds de système actifs, et lorsque le noeud la présente un défaut, le noeud la est séparé, et le noeud ld est nouvellement connecté au système. A l'étape 501 montrée sur la figure 5, le processeur 2 et l'unité d'entrée/sortie 3 du noeud la sont séparés de manière logique du système. 17 2792742 Ensuite, à l'étape 502, le noeud ld est connecté de manière logique au bus de système 7 et au bus de verrouillage 6. A l'étape 503, les indicateurs 140 de tous les noeuds sont mis à "1", les registres 141 de tous les noeuds sont positionnés au numéro de noeud du noeud séparé la, et les registres 142 de tous les noeuds sont positionnés au numéro de noeud du noeud connecté ld. A cet instant, les demandes d'accès en écriture à la mémoire émises vers la mémoire principale 4 du noeud la à partir des processeurs 2, des unités d'entrée/sortie 3, et des dispositifs de déplacement 35 qui fonctionnent dans les noeuds lb, lc sont également émises vers la mémoire principale 4 du noeud ld. Ensuite, le registre 401 dans le dispositif de déplacement 35 du noeud ld est positionné au numéro de noeud du noeud séparé la, et l'indicateur 400est mis à "1". Aux étapes 504 et 505 (étapes 511 à 514), le dispositif de déplacement 35 exécute une demande de lecture de mémoire verrouillée et une demande d'écriture de mémoire non verrouillée entièrement dans un espace de mémoire entre les adresses des limites inférieure et supérieure dans la mémoire principale 4 du noeud la, et copie les données de la mémoire principale 4 du noeud la vers la mémoire principale 4 du noeud ld. Lors de l'achèvement de la copie des données de mémoire, la mémoire principale 4 du noeud la et la mémoire principale 4 du noeud ld contiennent les mêmes données. A cet instant, la demande d'accès à la mémoire émise à partir du dispositif de déplacement 35 est verrouillée parce que l'élimination des demandes d'écriture de mémoire devrait être empêchée si les adresses de mémoire des demandes d'écriture de mémoire émises à partir des processeurs 2 ou des unités d'entrée/sortie 3 des noeuds lb, lc sont en conflit les unes avec les autres alors que la copie des données de mémoire est exécutée par le dispositif de déplacement 35. Lorsque la copie des données de mémoire est achevée, les registres 116 de tous les noeuds sont positionnés à la valeur du registre 110, et les valeurs des registres 141 et des registres 142 de tous les noeuds sont échangées, à l'étape 506. A cet instant, les demandes d'accès en lecture à la mémoire émises à partir des processeurs 2 et des unités d'entrée/sortie 3 qui fonctionnent dans les noeuds lb, lc vers la mémoire principale 4 du noeud la sont exécutées vers la mémoire principale 4 du noeud ld, et les demandes d'accès en écriture à la mémoire émises à partir de ceux-ci sont exécutées vers les mémoires principales 4 des noeuds la, ld. Ensuite, à l'étape 507, les registres 110, 111 de tous les noeuds sont positionnés à "0", invalidant l'espace d'adresses dans le noeud la. A l'étape 508, les registres 140 de tous les noeuds sont positionnés à "0", annulant le mode multidiffusion. A cet instant, la mémoire principale 4 du noeud la est séparée du système actif, et la mémoire principale 4 du noeud ld est connectée au système actif, à l'étape 509. Ensuite, à l'étape 510, le processeur 2 et l'unité d'entrée/sortie 3 du noeud ld sont connectés au système actif, après quoi le noeud la et le noeud ld sont complètement commutés. La figure 6 montre sous forme de blocs un système multiprocesseur selon un second mode de réalisation de la présente invention. Le système multiprocesseur montré sur la figure 6 diffère du système multiprocesseur montré sur la figure 1 en ce que le dispositif de déplacement 35 est enlevé de l'unité de contrôle de système 5. Tandis que le dispositif de déplacement 35 est mis en oeuvre par du matériel selon le premier mode de réalisation, toutes les fonctions du dispositif de déplacement 35 sont mises en oeuvre par le logiciel qui contrôle le processeur 2 selon le second mode de réalisation. Dans le second mode de réalisation, le processeur 2 émet une demande de lecture de mémoire verrouillée et une demande d'écriture de mémoire non verrouillée pour la copie des données de mémoire entre des noeuds. La figure 7 montre sous forme de blocs un système multiprocesseur selon un troisième mode de réalisation de la présente invention. Sur la figure 7, un registre 36 sert à contenir une adresse présentant un défaut dans la mémoire principale 4, et à fournir des informations d'adresse de défaut au dispositif de déplacement 35. Lorsque la mémoire principale 4 présente un défaut et doit être déconnectée, si un accès à la mémoire principale défectueuse est effectué pour la copie de données de mémoire par le dispositif de déplacement 35, alors des données erronées sont lues et un nouveau défaut est détecté. Pour éviter un tel inconvénient, lorsque le dispositif de déplacement 35 émet une demande d'accès à la mémoire pour la copie de données de mémoire, le dispositif de déplacement 35 compare les adresses de mémoire avec l'adresse mémorisée dans le registre 36. Si une adresse de mémoire correspond à l'adresse mémorisée dans le registre 36, alors le dispositif de déplacement 2792742 2o inhibe l'accès à la mémoire à l'adresse de mémoire, et saute à une adresse de mémoire suivante. Bien que des modes de réalisation préférés de la présente invention aient été décrits en utilisant des termes spécifiques, cette description est effectuée uniquement à des fins illustratives, et on doit comprendre que des changements et des modifications peuvent être effectués sans s'écarter de l'esprit ou de l'étendue des revendications qui suivent. 21 2792742 REVENDICATIONS 1. Système multiprocesseur d'une structure à mémoire partagée répartie comportant une pluralité de noeuds comprenant chacun au moins un processeur (2) et une mémoire principale (4), caractérisé en ce qu'il comprend: des moyens pour gérer les mêmes adresses de mémoire dans deux noeuds; des moyens pour contenir des informations des deux noeuds en tant que noeud maître et noeud esclave; des moyens pour transférer une demande d'accès en lecture à partir d'un processeur (2) et d'une unité d'entrée/sortie (3) par rapport à ladite mémoire principale (4) à un noeud maître; un indicateur indicatif du fait qu'une demande d'accès en écriture provenant du processeur (2) et de l'unité d'entrée/sortie (3) par rapport à ladite mémoire principale (4) doit être transférée au noeud maître ou au noeud maître et au noeud esclave; des moyens pour transférer la demande d'accès en écriture au noeud maître si ledit indicateur indique que la demande d'accès en écriture doit être transférée au noeud maître; et des moyens pour transférer la demande d'accès en écriture au noeud maître et au noeud esclave si ledit indicateur indique que la demande d'accès en écriture doit être transférée au noeud maître et au noeud esclave. 2. Système multiprocesseur selon la revendication 1, comprenant en outre: 22 2792742 des moyens pour contenir des informations d'adresse d'un espace de mémoire de la mémoire principale (4) de chacun des noeuds; des moyens d'accès en lecture à verrouillage pour lire des données à partir de la mémoire principale (4) du noeud maître sur la base desdites informations d'adresse en réponse à une demande d'accès en lecture verrouillée; des moyens d'accès en écriture à déverrouillage pour écrire les données lues par lesdits moyens d'accès en lecture à verrouillage dans les mémoires principales du noeud maître et du noeud esclave en réponse à une demande d'accès en écriture non verrouillée; des moyens de copie de mémoire pour exécuter de manière inséparable ladite demande d'accès en lecture verrouillée et ladite demande d'accès en écriture non verrouillée; et des moyens pour effectuer parfaitement la copie de mémoire par lesdits moyens de copie de mémoire dans l'espace de mémoire de la mémoire principale (4) dudit noeud maître. 3. Système multiprocesseur selon la revendication 2, comprenant en outre: une mémoire tampon d'adresse de verrouillage (300) pour exécuter de manière inséparable une demande d'accès en lecture et une demande d'accès en écriture pour ladite copie de mémoire; des moyens pour enregistrer une adresse de ladite demande d'accès en lecture verrouillée dans ladite mémoire tampon d'adresse de verrouillage (300) en réponse à ladite demande d'accès en lecture verrouillée; 23 2792742 des moyens pour effacer la même adresse que celle de ladite demande d'accès en écriture non verrouillée de ladite mémoire tampon d'adresse de verrouillage (300) en réponse à ladite demande d'accès en écriture non verrouillée; et des moyens pour inhiber ladite demande d'accès à la mémoire jusqu'à ce que l'adresse de mémoire d'une demande d'accès à la mémoire soit effacée de ladite mémoire tampon d'adresse de verrouillage (300) si l'adresse de mémoire de la demande d'accès à la mémoire envoyée à partir dudit processeur (2) ou de ladite unité d'entrée/sortie (3) à ladite mémoire principale (4) a déjà été enregistrée dans ladite mémoire tampon d'adresse de verrouillage (300). 4. Système multiprocesseur selon la revendication 2, dans lequel lesdits moyens de copie de mémoire comprennent: des moyens de mémorisation d'adresse défectueuse pour mémoriser une adresse dans ladite mémoire principale (4) qui présente un défaut; et des moyens pour inhiber la copie de la mémoire si l'adresse de mémoire principale de la demande d'accès en lecture correspond à l'adresse mémorisée dans lesdits moyens de mémorisation d'adresse défectueuse avant la lecture des données à partir de la mémoire principale (4) du noeud maître en réponse à la demande d'accès en lecture. 5. Système multiprocesseur d'une structure à mémoire partagée répartie comprenant une pluralité de noeuds comprenant chacun au moins un processeur (2), une unité d'entrée/sortie (3), une mémoire principale 24 2792742 (4), et une unité de contrôle de système, ladite unité de contrôle de système comprenant une unité de contrôle d'acheminement (31), une unité de contrôle de mémoire (32), une unité de contrôle d'interface entre noeuds (33), une unité de contrôle de verrouillage (34), et un dispositif de déplacement (35); ladite unité de contrôle d'acheminement (31) comportant des moyens pour recevoir une demande d'accès à la mémoire émise à partir dudit processeur (2), de ladite unité d'entrée/sortie (3), ou dudit dispositif de déplacement (35), déterminant à quelle mémoire principale (4) de noeud la demande d'accès à la mémoire est destinée, ajoutant des informations d'acheminement à la demande d'accès à la mémoire, et transférant la demande d'accès à la mémoire à ladite unité de contrôle d'interface entre noeuds (33); ladite unité de contrôle d'interface entre noeuds (33) comportant des moyens pour, si la demande d'accès à la mémoire transférée à partir de ladite unité de contrôle d'acheminement (31) est destinée à la mémoire principale (4) d'un autre noeud, émettre une demande d'accès à la mémoire vers ledit autre noeud via un bus de système, et pour, si une demande d'accès à la mémoire autre qu'une demande d'accès à la mémoire verrouillée ou non verrouillée reçue à partir de ladite unité de contrôle d'acheminement (31) ou du bus de système est destinée à la mémoire principale (4) de son propre noeud, transférer une demande d'index de mémoire tampon d'adresse de verrouillage à ladite unité de contrôle de verrouillage (34), et pour, si ladite unité de contrôle de verrouillage (34) indique qu'une adresse transférée n'est pas verrouillée, transférer la demande d'accès à la mémoire via ladite unité de contrôle de 2792742 mémoire (32) à ladite mémoire principale (4), et pour, si ladite unité de contrôle de verrouillage (34) indique que l'adresse transférée est verrouillée, conserver la demande d'accès à la mémoire et transférer une adresse de demande d'accès à la mémoire de nouveau à ladite unité de contrôle de verrouillage (34), et répétant le traitement ci-dessus jusqu'à ce que l'adresse de demande d'accès à la mémoire soit déverrouillée, et des moyens pour, si la demande d'accès à la mémoire transférée à partir de ladite unité de contrôle d'acheminement (31) ou du bus de système est une demande de lecture de mémoire verrouillée destinée à son propre noeud, transférer une demande de verrouillage à ladite unité de contrôle de verrouillage (34), si une indication de verrouillage réussi est reçue à partir de ladite unité de contrôle de verrouillage (34), transférer la demande de lecture de mémoire à ladite unité de contrôle de mémoire (32), si une indication d'échec de verrouillage est reçue à partir de ladite unité de contrôle de verrouillage (34), éliminer la demande de lecture de mémoire verrouillée, et si la demande d'accès à la mémoire transférée à partir de ladite unité de contrôle d'acheminement (31) ou du bus de système est une demande d'écriture de mémoire non verrouillée destinée à son propre noeud, transférer la demande d'écriture de mémoire à ladite unité de contrôle de mémoire (32), et transférer une demande de déverrouillage à ladite unité de contrôle de verrouillage (34); ladite unité de contrôle de verrouillage (34) comportant des moyens pour déterminer si l'adresse transférée est verrouillée ou non lorsque ladite demande d'index de mémoire tampon d'adresse de verrouillage est transférée, et indiquant le résultat déterminé à ladite unité de contrôle d'interface entre noeuds (33), et, si l'adresse de ladite demande de verrouillage n'est pas verrouillée, verrouiller ladite adresse et envoyer une indication de verrouillage réussi à ladite unité de contrôle d'interface entre noeuds (33), et, si l'adresse de ladite demande de verrouillage est verrouillée, envoyer une indication d'échec de verrouillage à ladite unité de contrôle d'interface entre noeuds (33) et au bus de verrouillage (6), et déverrouiller l'adresse de ladite demande de déverrouillage lorsque ladite demande de déverrouillage est reçue. 6. Système multiprocesseur selon la revendication , dans lequel ladite unité de contrôle d'acheminement (31) comprend: un premier registre pour contenir des données d'écriture lorsque la demande d'écriture de mémoire est revue et pour sortir les données d'écriture vers ladite unité de contrôle d'interface entre noeuds (33); un second registre pour contenir le type de la demande d'accès à la mémoire et pour sortir le type de la demande d'accès à la mémoire vers ladite unité de contrôle d'interface entre noeuds (33); un troisième registre pour contenir l'adresse de mémoire de la demande d'accès à la mémoire et pour sortir l'adresse de mémoire vers ladite unité de contrôle d'interface entre noeuds (33); un indicateur pour indiquer le transfert de la demande d'écriture de mémoire à une pluralité de noeuds; 27 2792742 un quatrième registre pour contenir des informations de noeud maître; un cinquième registre pour contenir des informations de noeud esclave; des sixième et septième registres pour contenir, respectivement, des valeurs de limites inférieure et supérieure de l'espace d'adresses de la mémoire principale (4) de chacun desdits noeuds; des premiers circuits combinatoires associés respectivement auxdits sixième et septième registres, pour comparer l'adresse de mémoire contenue dans ledit troisième registre avec les valeurs de limites inférieure et supérieure de l'espace d'adresses qui sont respectivement contenues dans lesdits sixième et septième registres, et pour rendre les signaux de sortie respectifs actifs si l'adresse de mémoire est comprise entre lesdites valeurs de limites inférieure et supérieure de l'espace d'adresses; et un second circuit combinatoire pour sortir le noeud correspondant au signal de sortie actif des signaux de sortie provenant desdits premiers circuits combinatoires, en tant qu'informations d'acheminement indicatives d'une destination d'acheminement vers ladite unité de contrôle d'interface entre noeuds (33) si le transfert de la demande d'écriture de mémoire à une pluralité de noeuds n'est pas indiqué, et pour ajouter un noeud esclave contenu dans ledit cinquième registre en tant que destination d'acheminement et pour sortir la destination d'acheminement en tant qu'informations d'acheminement vers ladite unité de contrôle d'interface entre noeuds (33) si le transfert de la demande d'écriture de mémoire à une pluralité de noeuds est indiqué, si un noeud correspondant au signal de sortie actif provenant desdits premiers circuits combinatoires est un noeud maître contenu dans ledit quatrième registre, et si la demande d'accès à la mémoire contenue dans ledit second registre est une demande d'écriture de mémoire. 7. Système multiprocesseur selon la revendication 6, dans lequel ladite unité de contrôle de verrouillage (34) comprend: une mémoire tampon d'adresse de verrouillage (300) pour contenir une adresse de mémoire principale verrouillée; un circuit de comparaison pour comparer les données contenues dans ladite mémoire tampon d'adresse de verrouillage (300) avec les adresses de mémoire d'une demande de verrouillage, d'une demande de déverrouillage, et d'une demande d'index de mémoire tampon d'adresse de verrouillage transférées à partir de ladite unité de contrôle d'interface entre noeuds (33) pour déterminer si elles correspondent les unes aux autres; et un circuit de contrôle de verrouillage (302) pour recevoir une demande d'accès à la mémoire tampon d'adresse de verrouillage à partir de ladite unité de contrôle d'interface entre noeuds (33), et pour, si le résultat de la comparaison provenant dudit circuit de comparaison indique que la même adresse que celle de la demande d'accès à la mémoire a déjà été enregistrée dans ladite mémoire tampon d'adresse de verrouillage (300), indiquer que l'adresse transférée est verrouillée à ladite unité de contrôle d'interface entre noeuds (33), et pour, si le résultat de la comparaison provenant dudit circuit de comparaison 29 2792742 indique que la même adresse que celle de la demande d'accès à la mémoire n'a pas été enregistrée dans ladite mémoire tampon d'adresse de verrouillage (300), indiquer que l'adresse transférée n'est pas verrouillée à ladite unité de contrôle d'interface entre noeuds (33), et pour, si le résultat de la comparaison provenant dudit circuit de comparaison indique que la même adresse que celle de la demande de lecture de mémoire verrouillée a déjà été enregistrée dans ladite mémoire tampon d'adresse de verrouillage (300) lorsque la demande de verrouillage est transférée à partir de ladite unité de contrôle d'interface entre noeuds (33), émettre une indication d'échec de verrouillage vers ladite unité de contrôle d'interface entre noeuds (33) et le bus de verrouillage (6), et pour, si le résultat de la comparaison provenant dudit circuit de comparaison indique que la même adresse que celle de la demande de lecture de mémoire verrouillée n'a pas été enregistrée dans ladite mémoire tampon d'adresse de verrouillage (300), émettre une indication de verrouillage réussi vers ladite unité de contrôle d'interface entre noeuds (33) et le bus de verrouillage (6), et donner l'instruction à ladite mémoire tampon d'adresse de verrouillage (300) d'enregistrer l'adresse de la demande de verrouillage, et donner l'instruction à ladite mémoire tampon d'adresse de verrouillage (300) d'effacer une entrée qui correspond à l'adresse de la demande de déverrouillage parmi les adresses qui sont enregistrées dans la mémoire tampon d'adresse de verrouillage (300), en réponse au résultat de la comparaison provenant dudit circuit de comparaison lorsque la demande de déverrouillage est transférée. 2792742 3o 8. Système multiprocesseur selon la revendication 6, dans lequel ledit dispositif de déplacement (35) comprend: un indicateur pour indiquer l'activation du dispositif de déplacement (35); un premier registre pour indiquer un noeud auquel le dispositif de déplacement (35) exécute la copie de la mémoire; un premier sélecteur (402) pour recevoir une adresse contenue dans ledit septième registre de ladite unité de contrôle d'acheminement (31); un second sélecteur (403) pour recevoir une adresse contenue dans ledit sixième registre de ladite unité de contrôle d'acheminement (31); un second registre pour contenir une adresse de mémoire d'une demande d'accès à la mémoire sortie dudit second sélecteur (403) et émise vers ladite unité de contrôle d'acheminement (31); un additionneur (406) pour ajouter une valeur particulière à l'adresse de mémoire sortie dudit second registre et entrer la somme dans ledit sélecteur; un comparateur pour comparer une sortie dudit premier sélecteur (402) et l'adresse de mémoire sortie dudit second registre l'une avec l'autre; et un circuit de contrôle de dispositif de déplacement pour, si ledit indicateur indique l'activation du dispositif de déplacement (35), contrôler ledit second sélecteur (403) pour mettre l'adresse de début d'une demande d'accès à la mémoire dans ledit second registre sur la base des informations de noeud indiquées par ledit premier registre, et contrôler ledit premier sélecteur (402) pour entrer l'adresse de fin de la demande d'accès à la mémoire dans ledit comparateur, émettre une demande de lecture de mémoire verrouillée vers ladite unité de contrôle d'acheminement (31) sur la base de l'adresse entrée à partir dudit second registre, et pour, si une indication d'échec de verrouillage est renvoyée pour la demande de lecture de mémoire verrouillée, émettre une demande de lecture de mémoire verrouillée de nouveau vers ladite unité de contrôle d'acheminement (31) en utilisant la même adresse, et pour, si des données de réponse sont renvoyées pour la demande de lecture de mémoire verrouillée, émettre une demande d'écriture de mémoire non verrouillée à la même adresse, et pour, lorsque la demande d'écriture de mémoire non verrouillée est exécutée, amener ledit second sélecteur (403) à sélectionner une adresse incrémentée par ledit additionneur (406) et entrer l'adresse sélectionnée dans ledit second registre, et pour, tout en incrémentant l'adresse, émettre à plusieurs reprises une demande de lecture de mémoire verrouillée et une demande d'écriture de mémoire non verrouillée vers ladite unité de contrôle d'acheminement (31), et pour, si ledit comparateur détecte que l'adresse dudit second registre dépasse l'adresse provenant dudit premier sélecteur (402), réinitialiser ledit indicateur, et terminer l'émission de la demande d'accès à la mémoire vers ladite unité de contrôle d'acheminement (31). 9. Système multiprocesseur selon la revendication 7, dans lequel ledit dispositif de déplacement (35) comprend: un indicateur pour indiquer l'activation du dispositif de déplacement (35); 32 2792742 un premier registre pour indiquer un noeud auquel le dispositif de déplacement (35) exécute la copie de la mémoire; un premier sélecteur (402) pour recevoir une adresse contenue dans ledit septième registre de ladite unité de contrôle d'acheminement (31); un second sélecteur (403) pour recevoir une adresse contenue dans ledit sixième registre de ladite unité de contrôle d'acheminement (31); un second registre pour contenir une adresse de mémoire d'une demande d'accès à la mémoire sortie dudit second sélecteur (403) et émise vers ladite unité de contrôle d'acheminement (31); un additionneur (406) pour ajouter une valeur particulière à l'adresse de mémoire sortie dudit second registre et pour entrer la somme dans ledit sélecteur; un comparateur pour comparer une sortie provenant dudit premier sélecteur (402) et l'adresse de mémoire sortie dudit second registre l'une avec l'autre; et un circuit de contrôle de dispositif de déplacement pour, si ledit indicateur indique l'activation du dispositif de déplacement (35), contrôler ledit second sélecteur (403) pour mettre l'adresse de début d'une demande d'accès à la mémoire dans ledit second registre sur la base des informations de noeud indiquées par ledit premier registre, et contrôler ledit premier sélecteur (402) pour entrer l'adresse de fin de la demande d'accès à la mémoire dans ledit comparateur, émettre une demande de lecture de mémoire verrouillée vers ladite unité de contrôle d'acheminement (31) sur la base de l'adresse entrée à partir dudit second registre, et pour, si une indication d'échec de verrouillage est renvoyée pour la demande de lecture de 33 2792742 mémoire verrouillée, émettre une demande de lecture de mémoire verrouillée de nouveau vers ladite unité de contrôle d'acheminement (31) en utilisant la même adresse, et pour, si des données de réponse sont renvoyées pour la demande de lecture de mémoire verrouillée, émettre une demande d'écriture de mémoire non verrouillée à la même adresse, et pour, lorsque la demande d'écriture de mémoire non verrouillée est exécutée, amener ledit second sélecteur (403) à sélectionner une adresse incrémentée par ledit additionneur (406) et entrer l'adresse sélectionnée dans ledit second registre, et pour, tout en incrémentant l'adresse, émettre à plusieurs reprises une demande de lecture de mémoire verrouillée et une demande d'écriture de mémoire non verrouillée vers ladite unité de contrôle d'acheminement (31), et pour, si ledit comparateur détecte que l'adresse dudit second registre dépasse l'adresse provenant dudit premier sélecteur (402), réinitialiser ledit indicateur, et terminer l'émission de la demande d'accès à la mémoire vers ladite unité de contrôle d'acheminement (31).