Brevet FR2567293A1 — publié le 19860110

La présente invention concerne, de façon générale, des systèmes multiprocesseurs eten particulier, une commande du verrouillage d'accès exclusive qui permet aux processeurs d1obtenir,de façon exclusive, l'accès à un dispositif de stockage commun. Dans les systèmes usuels multiprocesseurs à couplage lâche, les données à attribuer aux différents processeurs sont stockées dans un dispositif de stockage commun, tel qu'une unité de disque, si la quantité de ces données dépasse la capacité totale de mémorisation des mémoires et des registres des processeurs. Les systèmes multiprocesseurs conventionnels présentent un problème inhérent en ce sens que l'emmagasinage de données sur des disques implique un long temps d'accès. Un autre problème est que, si les données sont emmagasinées dans des registres, la capacité de stockage de tels registres ne peut pas être augmentée comme on le souhaite en augmentant simplement le nombre de processeurs.Un autre inconvénient réside dans le fait que pour que ces données puissent avoir accès sur une base mutuellement exclusive, un ordinateur hôte doit être connecté aux autres processeurs par l'intermédiaire de canaux différents pour effectuer la commande du verrouillage d'accès. Ceci impose des limitations quant au nombre de canaux disponibles pour l'intercommunication entre les processeurs. La présente invention a pour but de fournir un système multiprocesseur à couplage lâche qui soit exempt des problêmes inhérents aux systèmes antérieurs. Le système multiprocesseur selon l'invention comporte un dispositif de stockage commun comprenant des zones de stockage, plusieurs processeurs émettant chacun une première commande demandant l'accès au dispositif de stockage et une seconde commande, et un dispositif de commande du verrouillage d'accès connecté par l'intermédiaire de canaux respectifs aux processeurs.Le dispositif de commande détermine si le dispositif de stockage est disponible lorsque la première commande est émise, délivre une autorisation exclusivement à l'un des processeurs selon ce qu'il a déterminé, définit dans une mémoire un tableau et une zone de stockage de données liée à celui-ci conformément à la première commande émise par le processeur auquel l'autorisation est délivré, emmagasine l'information dans la zone de stockage de données définie, permet au processeur mentionné en dernier lieu d'avoir accès à une zone de stockage du dispositif de stockage correspondant au tableau, et adresse la zone de stockage de données de la mémoire sous l'effet de la seconde commande.Du fait du stockage de données devant être sauvées à partir du processeur ou utilisées entre processeurs, dans le dispositif de commande du verrouillage d'accès et du stockage des données nécessaires pour l'accès au dispositif de stockage commun,dans le dispositif de commande du verrouillage d'accès, le système multiprocesseur selon l'invention élimine les limitations des systèmes antérieurs relatives à la vitesse d'accès aux données et relatives à la capacité de mémoire,et devient flexible en ce qui concerne l'augmentation du nombre de processeurs. La présente invention sera décrite avec plus de détails en rapport avec les dessins annexés, dans lesquels la figure 1 est une représentation sous forme de bloc-dia- gramme d'un système multiprocesseurs à couplage lâche selon l'invention, la figure 2 est un diagramme de fonctionnement concernant l'exécution d'une commande de verrouillage pour emmagasiner des données dans le dispositif de contrôle du verrouillage d'accès de la figure 1, la figure 3 est une représentation sous forme d'un blocm diagramme de différents tableaux développés dans la mémoire de la figure 1 à un instant donné, la figure 4 est un diagramme de fonctionnement pour lVexécu- tion d'une commande de lecture pour la lecture de données emmagasinées dans des tableaux de sauvetage de données dans le dispositif de commande du verrouillage d'accès, et la figure 5 est un diagrameme de fonctionnement de l'exécu- tion d'une commande de déverrouillage pour effacer les données emmagasinées dans le dispositif de commande du vers rouillage d'accès. Selon la figure 1 un système multiprocesseur a couplage lâche selon l'invention comporte des processeurs 1A 1B, des dispositifs de commande de disques 2A, 2B, un dispose tif de stockage commun ou unité de disques 3 et un dispositif de commande du verrouillage d'accès 4.Les processeurs la et 1B sont connectés au dispositif de stockage commun 3 par lwinter- média ire des dispositifs de commande de disques respectifs 2A, 2B.Lorsque chaque processeur fait une tentative d'avoir accès à l'unité de disques 3, le processeur émet d'abord une demande d'accès ou "commande de verrouillage" adressée au dispositif de commande de verrouillage d'accès 4 pour demander que cette demande soit acceptée de sorte qu'il puisse avoir accès, de façon exclusive, au dispositif de stockage 3. La commande de verrouillage comporte des informations d'une pre mièvre catégorie comprenant le "nom du processeur le "nom du travail", le "nom du fichier", le '!nom au bloc': l'attri- but' et des informations d'une seconde catégorie comprenant les données à sauver du processeur ou les données à utiliser entre processeurs.Lesinformationsde la- seconde catégoriesont emmagasinées dans le#dispositif de commande de verrouillage en plus des informations de la première catégorie plutôt que dans le dispositif de stockage 3 pour permettre un accès rapide à la seconde catégorie de données. Le dispositif de commande du verrouillage d'accès 4 comporte un dispositif de commande de l'interface du processeur, qui reçoit la commande de verrouillage des processeurs 1A, 1B et répond à celle-ci en délivrant une autorisation suite à la requête d'accès. Les données reçues dans le dispositif de commande 41 sont acheminées par l'intermédiaire d'un dispositif de commande entrée/sortie 42A et une ligne commune 48 et sont emmagasinées dans la mémoire 43 Un programme de commande de fichiers à verrouillage d'accès exclusif qui sera décrit en détail plus loin, est chargé dans la mémoire 43 à partir d'un disque souple 45 par l'intermédiaire du dispositif de commande 42B, dès que le dispositif de commande du verrouillage d'accès 4 est mis en fonction. Comme suite à une commande de verrouillage reçue d'un processeur, une commande d'interruption est émise du dispositif de commande 42A et adressée à une unité de traitement centrale 44 par l'intermédiaire de la ligne commune 48 pour décl-ncher l'exécution du programme de commande de fichier. Le dispositif de commande 4 peut comporter un ensemble clavier-imprimante 46 et une source de signaux d'horloge 47 qui sont raccordés par l'intermédiaire du dispositif de commande d'interface de processeur 42C. Après avoir eu accès au dispositif de stockage 3 le processeur émet une commande de déverrouillage à destination du dispositif de commande de verrouillage d'accès 4 pour effacer les données emmagasinées dans la mémoire 43 à la suite de la commande de verrouillage. Une description du programme de commande de fichier à verrouillage d'accès exclusif sera maintenant donnée en rapport avec les figures 2 et 3. Dans une étape 21, la commande de verrouillage emmagasinée dans la mémoire 43 est analysée pour une vérification de validité. On suppose que la commande de verrouillage inclut le nom du processeur '11", le nom du travail "T2", le nom du fichier B et le nom du bloc "33" ainsi que l'information spécifiant les données à sauver. L'unité de traitement central 44 passe à l'étape 2 pour déclencher le contrôle concernant le nom du fichier "B", le nom du travail "T2" et le nom du processeur "1" ,de manière à obtenir une entrée "m" dans un index de tableau de fichier 8, figure 3, et une entrée x dans un tableau de processeur 12B.La commande passe ensuite à une étape de contrôle, dans l'étape 23,pour déterminer si les entrées "m" et x sont disponibles. Si les entrées contrôlées ne sont pas disponibles, la commande est interrompue jusqu'à ce que les entrées deviennent disponibles et lorsqu'elles sont devenues disponibles, la commande passe à l'étape 24. En supposant qu'un nom de fichier "A"ait déjà donné lieu à un tableau de fichier 9A, ce tableau de fichier présente une liaison avec l'entrée m, cette liaison étant identifiée par un indicateur d'adresse 50 mémorisé dans le tableau de fichier 9A. Si le nom de fichier "B" a le même total de contrôle que le nom du fichier "A", un tableau de fichier 9B est formé avec une liaison-au tableau de fichier 9A au moyen d'un indicateur d'adresse 51 qui est mémorisé dans le tableau de fichier 9B avec les données de la commande de verrouillage. Etant donné que le tableau de fichier 9B n'a pas été formé antérieurement, il n'a pas de liaison avec un tableau de bloc. Ceci veut dire que le nom de bloc "33" n'est pas verrouillé en rapport avec d'autres travaux. Ceci est vérifié dans l'étape 25. Si le tableau de fichier qui est vérifié dans l'étape 25 présente une liaison avec un tableau de bloc existant, la commande passe à l'étape 26 pour contrôler que ce tableau de bloc indique "verrouillage commun". Ce verrouillage commun permet à l'autre processeur effectuant un autre travail, d'avoir accès à la même zone de stockage ou "bloc" dans le dispositif de stockage 3 correspondant à ce tableau de bloc pendant l'intervalle entre les instants d'apparition des commandes de verrouillage et de déverrouillage émanant d'un processeur donné,9 condition que la fonction de ce dernier travail est de lire exclusivement des données de ce "bloc" et le verrouillage commun est indiqué par "l'attribut" dans la commande de verrouillage. Si,par conséquent,l'indication de verrouillage commun est détectée dans l'étape 26, la commande passe à l'étape 27. Sinon,elle saute à l'étape 29 pour émettre une commande de fin de verrouillage à l'adresse du processeur par l'intermédiaire du dispositif de commande d'interface de processeur 41 pour indiquer que la demande d'accès a été rejetée. Si aucun tableau de bloc existant n'est disponible à l'étape 25, la commande passe à l'étape 27 pour former un tableau de bloc 10C, établir une liaison avec le tableau de fichier 9B au moyen d'un indicateur d'adresse 52 et mémoriser l'indicateur d'adresse 52 avec les données de commande de verrouillage dans le tableau de fichier 9B et le tableau de bloc 10C, et la commande se poursuit pour former un tableau de données à sauver 11B, établir une liaison de celuici avec un tableau de bloc 10C,emmagasiner les données à sauver ou à utiliser entre processeurs dans le tableau de données à sauver 11B,et mémoriser un indicateur d'adresse 57 dans le tableau de bloc 10C. Dans l'étape 28, un tableau de travail 13B est formé qui présente une liaison avec l'entrée"x" du tableau de processeur 12B identifiée par un indicateur d'adresse 53. Si le tableau de travail 13B a déjà établi une liaison avec un tableau de bloc î0Bau moyen d'un indicateur d'adresse 54, une autre liaison est établie entre les tableaux de bloc 10B et 10C au moyen d'un indicateur d'adresse 5. Si le tableau de travail 13B ne présente pas de liaison avec un tableau existant, le tableaudebloc 10Csera ainsi mis en liaison avec le tableau de travail 13B au moyen d'un indicateur d'adresse, tel que cela est indiqué par la ligne pointillée 56. Etant donné que le temps mis pour obtenir l'accès à l'unité de disques3 et, par conséquent, l'intervalle entre les instants d'apparition de commandes de verrouillage et de déverrouillage,sont longs, le dispositif de commande de verrouillage d'accès 4 utilise le temps autrement perdu en acceptant une autre commande de verrouillagesi celle-ci demande l'accès à un autre tableau de bloc Par conséquent, plusieurs ensembles de données de commande de verrouillage peuvent être emmagasinés dans la mémoire 43 à un instant donné.Par exemple,si une commande de verrouillage donnée trouve des entrées "n" et "y" respectivement dans l'index de tableau de fichier 8 et dans le tableau de processeur 12B, ces entrées, Si elles sont disponibles, établiront une liaison avec un nouveau tableau 9C à partir de l'entrée ne une liaison avec un tableau de travail 13C à partir de l'entrée "y".Si le tableau de fichier 9C a un tableau de bloc 10D existant et si le tableau de travail 13C n'a pas de tableau de bloc existants, un nouveau tableau de bloc 10E est formé et une liaison est établie entre les tableaux de bloc 10D et 10E, et, d'autre parts un tableau de données à sauver 11C est défini et mis en liaison avec le tableau de bloc 1OD. En supposant qu'une autre commande de verrouillage établit une entrée "z" dans le tableau de processeur 12A et une entrée "n" dans l'index de table de fichier 8, un tableau de travail 13A sera mis en liaison avec l'entrée "z" et le tableau de fichier 9C est mis en liaison avec l'entrée "n".Si le tableau de travail 13A a un tableau de bloc existant 10A présentant une liaison avec un tableau de fichier 9A, une autre liaison sera établie du tableau de bloc 10S au tableau de bloc lOD. La figure a est une représentation d'un programme pour la lecture de commandes qui sont émises par les processeurs lorsque les données emmagasinées dans les tableaux de données à sauver sont à adresser Dans la figure 4, la commande de lecture est vérifiée à l'étape 60 On suppose que la commande de lecture s'adresse au tableau de bloc 10C La commande passe à l'étape 61 pour trouver une entrée dans 1' index de tableau de fichier 8 selon le nom de fichier donné dans la commande de lecture. Dans l n etape 62, le tableau de ichier aS est dérivé de l'entrée S8m'l "m" et et à étape 63, le tableau de bloc A OC est dérivé du tableau du de fichier 9B. Le contrôle passe à l'étape 64 pour déterminer si le tableau de bloc 10C est présent. Si ce n'est pas le cas, le contrôle passe à l'étape 68 pour émettre une commande de fin de lecture indiquant qu'il n'y a pas de données de bloc. Si de telles données existent,la commande passe à l'étape 65 pour lire les données du tableau de données à sauver 11B et les placer dans une mémoire intermédiaire,et la commande passe à l'étape 66 pour émettre une demande de commande du prochain canal par le processeur. Lorsqu'une telle demande est reçue, les données dans la mémoire intermédiaire sont transferrées au processeur (étape 67) et la commande passe à l'étape 68 pour émettre une commande de fin de lecture indiquant que les données sont adressées. Au cours des opérations de déverrouillage, le dispositif de commande de verrouillage 4 efface toutes les données,y compris les indicateurs d'adresse mémorisés dans les tableaux de la manière montrée à la figure 5. Supposons que les données emmagasinées dans le tableau de bloc 10Csoient à effacer. Dans la figure 5,une commande de déverrouillage comprenant des données similaires à celles de la commande de verrouillage,est émise par le processeur concerné et vérifiée dans l'étape 70. La commande passe à l'étape 71 pour dériver des entrées,dans l'index de tableau de fichier 8 et dans le tableau du processeur 12B,du nom de processeur et du nom de fichier donnés dans la commande de déverrouillage. Le tableau de fichier 9B et le tableau de travail 13B sont dérivés des entrées "m" et "x" dans l'étape 72 et le tableau de bloc 10C est dérivé du tableau de fichier 9B et du tableau de travail 13B (étape 73). La commande passe à l'étape 74 pour déterminer si le tableau de bloc 10C est présent dans la mémoire 43.Si ce tableau n'est pas présent, la commande passe à l'étape 76 pour émettre une commande de fin de déverrouillage,indiquant que le tableau de bloc n'est pas disponible pour le processeur. S'il est disponible, la commande passe à l'étape 75 pour effacer les données emmagasinées dans le tableau de bloc 10C1; Y compris les indicateurs d'adresse 52 et 57. Etant donné que le tableau de bloc 10C n'a pas de liaison avec un autre tableau de bloc, le tableau de fichier 9B et le tableau de travail 13B sont effacés. Si le tableau de bloc qui est à effacer a une liaison avec un autre tableau de bloc, la ou les liaisons sont réétablies. Par exemple,si la commande de déverrouillage doit effacer le tableau de bloc 10A, une liaison est établie entre le tableau de fichier 9A et le tableau de bloc 103 et une autre liaison est établie entre le tableau de travail 13A et le tableau de bloc 10D. Lorsque les données sont effarées, la commande passe à l'étape 76 pour fournir une commande de fin de verrouillage au processeur, indiquant que les données ont été effacées. Il ressort de ce qui précède qu'en mémorisant les données dans un tableau de données à sauver dans la mémoire 43, le temps nécessaire pour obtenir l'accès à celle-ci est beaucoup plus court qu'il ne serait pour accéder à l'unité de disques 3et que le nombre de processeurs peut entre simplement augmenté comme on le souhaite en formant autant de taw bleaux de processeurs que nécessaire. La description qui précède montre seulement des formes d'exécution préférentielles de la présente invention Différentes modifications sont d la portée des hommes de métier sans s'écarter de la portée de la présente invention telle qu'elle ressort des revendications annexées. Ainsi, les formes d'exécution représentées et décrites n'ont qu'un caractère d'illustration et ne sont pas restrictives. REVENDICATIONS 1. Système multiprocesseur à couplage lâche comportant un dispositif de stockage commun ayant des zones de stockage, plusieurs processeurs émettant chacun une première commande demandant l'accès audit dispositif de stockage et une seconde commande, et un dispositif de commande du verrouillage d'accès connecté par l'intermédiaire de canaux respectifs auxdits processeurs, ce dispositif de commande comportant une mémoire et des moyens pour déterminer si ledit dispositif de stockage est disponible lorsque ladite première commande est produite, pour délivrer une autorisation exclusivement à l'un des processeurs selon ce qui a été déterminé, pour définir dans la mémoire un tableau et une zone de stockage de données liée avec le tableau conformément à la première commande produite par le processeur auquel l'autorisation est délivrée, pour emmagasiner l'information dans ladite zone de stockage de données définie, pour permettre au processeur mentionné en dernier d'obtenir 11 accès à une zone de stockage du dispositif de stockage correspondant à ce tableau et pour adresser ladite zone de stockage de données de ladite mémoire en réponse à ladite seconde commande. 2. Système multiprocesseur à couplage lâche comportant un dispositif de stockage commun ayant des zones de stockage, plusieurs processeurs produisant chacun une commande de verrouillage demandant l'accès auxdits dispositifs de stockage, une commande de déverrouillage et une commande de lecture, et un dispositif de commande du verrouillage d'accès connecté par l'intermédiaire de canaux respectifs auxdits processeurs, ce dispositif de commande comportant une mémoire et des moyens pour déterminer si ledit dispositif de stockage est disponible lorsque ladite commande de verrouillage est produite, pour délivrer une autorisation exclusivement à l'un des processeurs selon ce qui a été déterminé, pour définir dans la mémoire un tableau et une zone de stockage de données liée avec le tableau conformément à ladite commande de verrouillage produite par le processeur-auquel l'autorisation est dé- livrée, pour emmagasiner l'information dans ladite zone de stockage de données définie, pour permettre au processeur auquel l'autorisation est délivrée d'avoir accès à la zone de stockage dudit dispositif de stockage correspondant audit tableau, pour adresser ladite zone de stockage de données de la mémoire en réponse à ladite commande de lecture et pour effacer ledit tableau et ladite zone de stockage de données en réponse à ladite commande de déverrouillage. 3. Système multiprocesseur à couplage lâche comportant un dispositif de stockage commun ayant des zones de stockage, plusieurs processeurs produisant chacun une commande de verrouillage demandant l'accus audit dispositif de stockage, une commande de déverrouillage et une commande de lecture, et un dispositif de commande du verrouillage d'accès comportant une mémoire, ce dispositif de commande étant connecté par l'intermédiaire de canaux respectifs auxdits processeurs et étant programmé pour réaliser les étapes consécutives consistant à (a) emmagasiner les entrées dans ladite mémoire en réponse à ladite commande de verrouillage, (b) déterminer si lesdites entrées ne sont pas utilisées par un autre processeur, (c) déterminer s'il y a un tableau existant ou non, (d) s'il y a un tableau existant,définir dans la mémoire un tableau et une zone de stockage de données liée avec le tableau conformément à ladite commande de verrouillage, (f) emmagasiner l'information dans ladite zone de stockage de données définie, (g) s'il n'y a pas de tableau e.istant,déterminer si un tableau existant permet un accès commun audit dispositif de stockage sur une base limitée ou non, (h) si ledit tableau existant permet un accès commun, délivrer une autorisation exclusivement à l'un des processeurs pour lui permettre d'accéder à une zone de stockage dudit dispositif de stockage correspondant audit tableau, (i) si ledit tableau existant ne permet pas ledit accès commun limité,fournir une indication quelacommande de verrouillage est rejetée au processeur duquel émane cette commande, (j) adresser ladite zone de stockage de données de la mémoire en réponse à ladite commande de lecture, et (k) effacer ledit tableau et ladite zone de stockage de données définis dans l'étape (d) en réponse à ladite commande de déverrouillage. 4. Système multiprocesseur à couplage lâche selon la revendication 3, dans lequel l'étape (k) comporte les opérations consistant kl) dériver des entrées à partir de ladite commande de déverrouillage, k2) détecter ledit tableau et ladite zone de stockage de données dans ladite mémoire en réponse à ladite commande de déverrouillage, k3) effacer ledit tableau et ladite zone de stockage de données et, k4) établir une liaison entre ledit tableau existant et lesdites entrées si ledit tableau existant présente une liaison avec ledit tableau effacé.