Brevet FR2720531A1 — publié le 19951201

I COMMANDE DE VERROUILLAGE POUR SYSTEME DE TRAITEMEIT DE DONNMES ARRIERE-PLAN DE L'INVENTION La présente invention se rapporte à une commande de verrouillage pour un système de traitement de données, plus particulièrement à une commande de verrouillage dans un système de traitement de données muni d'une pluralité d'unités de traitement de données partageant une mémoire centrale. Dans un système de traitement de données, une pluralité d'unités de traitement de données partage une mémoire centrale. Parfois, pour la structure précédente, l'unité de traitement de données prédéterminée doit accéder exclusivement aux données stockées dans une région partagée, pendant une période de temps prédéterminée. Quand une certaine unité de traitement de données fonctionne pour ajouter "un" aux données stockées dans une certaine zone partagée, par exemple, un accès à ces données à partir d'autres unités de traitement de données doit être inhibé, pendant une période de traitement o les données de la zone partagée sont lues pour ajouter "un" et ensuite les données sont écrites de nouveau dans la zone partagée. Sans une commande de ce type, un résultat à jour des données n'est pas assuré. Pour assurer cet accès exclusif, une variable de verrouillage est utilisée. Lors de l'accès à la zone partagée, la variable de verrouillage doit être vérifiée pour confirmer qu'elle n'est pas dans un état de verrouillage. Si la variable de verrouillage est dans un état de déverrouillage, elle est modifiée pour l'état de verrouillage pour accéder à une zone partagée correspondante. Après qu'un traitement exclusif a été achevé, la variable de verrouillage est restaurée pour l'état de déverrouillage. La commande, comme précédemment expliquée, est appelée commande de verrouillage. Dans le Brevet U. S. n 4 733 352, par exemple, on décrit un système de traitement de données comprenant une pluralité d'unités de commande de mémoire, laquelle pluralité effectue une commande de verrouillage pour accéder à une mémoire centrale à partir d'une pluralité d'unités de traitement. Dans cette technique antérieure décrite par le Brevet U.S., les états de la variable de verrouillage sont exprimés en utilisant deux voies: une est qu'un verrouillage est obtenu, et l'autre est que le verrouillage n'est pas obtenu. Le premier est appelé un état de verrouillage, le dernier est appelé un état de déverrouillage. Par conséquent, dans une certaine unité de mémoire, si une demande pour obtenir le verrouillage est reçue, c'est-à-dire une demande de verrouillage, et si une demande pour libérer le verrouillage est recue, c'est-à-dire une demande de déverrouillage, cela provoque la vérification d'un état de la variable de verrouillage ou cela provoque la mise à jour des états de la variable de verrouillage dans d'autres unités de commande de mémoire. Par exemple, quand une demande de verrouillage est délivrée à partir d'une certaine unité de traitement de données et quand une variable de verrouillage détenue dans une unité de commande de mémoire reliée à l'unité de traitement indique un état de déverrouillage, les états des variables de verrouillage dans les autres unités de commande de mémoire doivent être indexés. Ensuite, si l'indexation des états des variables de verrouillage révèle qu'elles sont dans un état de verrouillage, la demande de verrouillage est refusée, et l'unité de traitement de données doit renouveler sa demande de verrouillage. Ces opérations sont appelées un verrouillage tournant. Comme précédemment décrit, dans la technique antérieure, au moment o l'unité de traitement de données délivre une nouvelle demande de verrouillage, si une variable de verrouillage dans cette unité de commande de mémoire indique un état de déverrouillage, une variable de verrouillage dans d'autres unités de mémoire doit être accédée pour obtenir un verrouillage. Pour cette raison, il y a des inconvénients, dans la technique antérieure, en ce qu'une longue période de temps est nécessaire pour obtenir le verrouillage, et en ce que le trafic sur le bus est augmenté à cause d'un accès inutile au bus. RESUME DE L'INVENTION L'objectif de la présente invention est de proposer une commande de verrouillage pour partager une mémoire centrale. Un autre objectif de la présente invention est de proposer une commande de verrouillage qui fonctionne localement de façon à réaliser un fonctionnement à grande vitesse. Dans un système de traitement de données qui comprend une pluralité d'unités de traitement de données partageant une unité de mémoire centrale, une pluralité d'unités de commande de verrouillage, pour commander les états des variables de verrouillage concernant au moins une unité particulière de la pluralité des unités de traitement de données, comprend: des moyens formant registre pour enregistrer au moins un des états de la variable de verrouillage; et des moyens de maintien d'état pour maintenir l'état de la variable de verrouillage enregistré dans les moyens formant registre; caractérisé en ce que lesdits moyens de maintien d'état sont commandés de sorte qu'ils comprennent un état spécifié pour exprimer la non- obtention d'un verrouillage dans toutes les unités de commande de verrouillage et, pour chaque variable de verrouillage, au plus une des unités de commande de verrouillage a une possibilité d'être dans l'état spécifié, comme l'état de la variable de verrouillage. BREVE DESCRIPTION DES DESSINS Les objectifs précédents et avantages de la présente invention vont être évidents à partir de la description détaillée du mode de réalisation préféré de la présente invention, en se référant aux dessins annexés, dans lesquels: la figure 1 est un schéma représentant une structure complète d'un système de traitement de données appliqué à la présente invention; la figure 2 est un schéma représentant une structure d'une unité formant cache incorporée dans l'unité de traitement de données de la présente invention; la figure 3 est un schéma représentant une structure d'une unité de commande de demande de verrouillage de la présente invention; la figure 4 est un tableau représentant les états d'une variable de verrouillage dans un premier mode de réalisation selon la présente invention; la figure 5 est un tableau représentant les opérations au moment de la délivrance d'une demande de verrouillage dans le premier mode de réalisation selon la présente invention; la figure 6 est un tableau représentant les opérations au moment de la délivrance d'une demande de déverrouillage dans le premier mode de réalisation selon la présente invention; la figure 7 est un schéma représentant les opérations, de façon concrète, dans le premier mode de réalisation selon la présente invention; la figure 8 est un tableau représentant les états d'une variable de verrouillage dans un second mode de réalisation selon la présente invention; la figure 9 est un tableau représentant les opérations au moment de la délivrance d'une demande de verrouillage dans le second mode de réalisation selon la présente invention; la figure 10 est un tableau représentant les opérations au moment de la-délivrance d'une demande de déverrouillage dans le second mode de réalisation selon la présente invention; la figure 11 est un schéma représentant les opérations, de façon concrète, dans le second mode de réalisation selon la présente invention; la figure 12 est un tableau représentant les états d'une variable de verrouillage dans un troisième mode de réalisation selon la présente invention; la figure 13 est un tableau représentant les opérations au moment de la délivrance d'une demande de verrouillage dans le troisième mode de réalisation selon la présente invention; la figure 14 est un tableau représentant les opérations au moment de la délivrance d'une demande de déverrouillage dans le troisième mode de réalisation selon la présente invention; la figure 15 est un schéma représentant les opérations, de façon concrète, dans le troisième mode de réalisation selon la présente invention; la figure 16 est un tableau représentant les états d'une variable de verrouillage dans un quatrième mode de réalisation selon la présente invention; la figure 17 est un tableau représentant les opérations au moment de la délivrance d'une demande de verrouillage dans le quatrième mode de réalisation selon la présente invention; la figure 18 est un tableau représentant les opérations au moment de la délivrance d'une demande de déverrouillage dans le quatrième mode de réalisation selon la présente invention; et la figure 19 est un schéma représentant les opérations, de façon concrète, dans le quatrième mode de réalisation selon la présente invention. DESCRIPTION DETAILLEE DES MODES DE REALISATION PREFERES Tout d'abord, un mode de réalisation d'un système de traitement de données appliqué à la présente invention va être décrit, de manière détaillée, en se référant aux dessins. En se référant à la figure 1, un système de traitement de données appliqué à la présente invention comprend quatre unités de traitement 201 à 204 partageant une unité de mémoire 207. Les unités de traitement 201 et 202 sont reliées à une unité formant cache 205, et les unités de traitement 203 et 204 sont reliées à une unité formant cache 206. Les unités formant cache 205 et 206 sont respectivement reliées à une unité de mémoire 207 par l'intermédiaire d'un bus de système 208. L'unité formant cache 205 travaille comme une mémoire cache pour les unités de traitement 201 et 202 qui lui sont connectées, et l'unité formant cache 206 travaille comme une mémoire cache pour les unités de traitement 203 et 204 qui lui sont connectées. En outre, elles détiennent des variables de verrouillage. Le bus de système 208 comprend un bus d'adresses et le bus de données, et il peut fonctionner indépendamment du bus d'adresses et du bus de données. Dans une demande de verrouillage pour demander une obtention d'un verrouillage et une demande de déverrouillage pour demander une libération du verrouillage, seul le bus d'adresses est utilisé. De plus, le bus de système 208 comprend un bus pour transmettre des informations de cache. Une possibilité d'une obtention du verrouillage est transmise en utilisant le bus de système 208. En se référant à la figure 2, une structure des unités formant cache 205 et 206 est la suivante. Les unités 205 et 206 comprennent des organes tampon de demande 21 et 22 pour détenir une demande en provenance des unités de traitement 201 à 204, un sélecteur 23 pour sélectionner une demande parmi une demande délivrée sur le bus de système 208, les organes tampon de demande 21 et 22, une matrice d'adresses 24 de la mémoire cache, une unité de commande de demande de verrouillage 25, et des sélecteurs 26 et 27 pour sélectionner une demande sélectionnée par le sélecteur 23 ou un résultat de détermination de verrouillage en provenance de l'unité de commande de demande de verrouillage 25. Les organes tampon de demande 21 et 22 détiennent une pluralité de demandes. Ils travaillent comme un organe tampon premier entré premier sorti (FIFO). Le sélecteur 23 sélectionne une des trois entrées selon une règle prédéterminée. Le sélecteur 23 peut utiliser un procédé d'ordonnancement à tour de r8le. De plus, le sélecteur 23 peut utiliser un procédé dans lequel une demande en provenance du bus de système est traitée avec la priorité la plus haute. La matrice d'adresses 24 a une structure similaire à celle d'une mémoire cache normale, et stocke des adresses d'indicateur correspondant à chacune des entrées d'une mémoire de données (non représentée). Des sélecteurs 26 et 27 sélectionnent l'unité de commande de demande de verrouillage 25 pendant la phase de répétition des demandes de verrouillage. Les sélecteurs 26 et 27 sélectionnent la sortie du sélecteur 23 pendant la phase de commande de cohérence de cache. En se référant à la figure 3, l'unité de commande de demande de verrouillage 25 comprend des registres d'adresse de verrouillage 1 et 2 pour mémoriser une adresse d'une variable de verrouillage concernant la demande sélectionnée par le sélecteur 23, des registres d'état de verrouillage 5 et 6 pour mémoriser des états de verrouillage correspondant à chacune des variables de verrouillage stockées dans les registres d'adresse de verrouillage 1 et 2, des détecteurs de coincidence d'adresse de verrouillage 3 et 4 pour entrer l'adresse de la variable de verrouillage en provenance du sélecteur 23 et les adresses stockées dans les registres 1 et 2 pour détecter une coincidence de ces dernières, un sélecteur 7 pour sélectionner des données dans un des registres d'état de verrouillage 5 et 6 correspondant aux entrées détectées par le registre d'adresse de verrouillage 1 ou 2, et un circuit de commande de demande de verrouillage 8. Ensuite, le premier mode de réalisation du système de traitement de données selon la présente invention va être décrit en se référant aux dessins ci-dessous. En se référant à la figure 4, une variable de verrouillage occupe un des trois états exprimés respectivement par LCK, ULS et ULE. Le symbole LCK indique l'état o une unité de traitement de données reliée à une unité formant cache a obtenu un verrouillage et o les autres unités de traitement de données n'ont pas obtenu de verrouillages. Le symbole ULS indique l'état o une unité de traitement de données reliée à une unité formant cache n'a pas obtenu un verrouillage et o les obtentions de verrouillages des autres unités de traitement de données sont inconnues. De plus, le symbole ULE indique l'état o aucune unité de traitement de données reliée à une unité formant cache n'a obtenu un verrouillage. Si la variable de verrouillage est dans l'état ULE, il est possible d'obtenir le verrouillage, sans confirmer l'état de la variable de verrouillage mémorisée de nouveau dans d'autres unités formant cache. Les opérations du premier mode de réalisation du système de traitement de données selon la présente invention, au moment o une demande de verrouillage est délivrée en provenance de l'unité de traitement de données, vont être décrites en se référant à un tableau représenté à la figure 5 ci-dessous. En se référant à la figure 5, la colonne la plus à gauche indique les états de la variable de verrouillage mémorisée dans une unité locale formant cache reliée aux unités de traitement de données ayant délivré les demandes de verrouillage. La colonne du milieu indique les états des variables de verrouillage dans les autres unités formant cache autres que l'unité locale formant cache de la colonne la plus à gauche. De plus, la colonne la plus à droite indique des actions dans ces états des variables de verrouillage. On notera que les unités formant cache reliées aux unités de traitement de données ayant délivré la demande sont appelées, dans la suite du document, "unités locales formant cache". Si la variable de verrouillage détenue dans l'unité locale formant cache est dans un état LCK, par exemple, cela signifie qu'un verrouillage est déjà obtenu de sorte que l'unité de commande de verrouillage transmet un résultat "verrouillé avec succès" à l'unité de traitement de données. En outre, si la variable de verrouillage détenue dans l'unité locale formant cache est dans un état ULE, on trouve que toutes les unités de traitement de données n'ont pas obtenu le verrouillage, ainsi, l'unité de commande de verrouillage transmet le résultat "verrouillé avec succès" à l'unité de traitement de données et change la variable de verrouillage pour un état LCK. De plus, si la variable de verrouillage détenue dans l'unité locale formant cache est dans un état ULS, on doit se référer aux variables de verrouillage détenues dans les unités formant cache autre que l'unité locale formant cache. De manière spécifique, si les variables de verrouillage détenues dans les unités formant cache autre que l'unité locale formant cache sont dans l'état LCK, l'unité de commande transmet le résultat "verrouillage non réussi" à l'unité de traitement de données. Si les variables de verrouillage détenues dans les unités formant cache autres que l'unité locale formant cache sont dans un état ULE, l'unité de commande de verrouillage transmet le résultat "verrouillage non réussi" à l'unité de traitement de données et change la variable de verrouillage détenue dans l'unité locale formant cache pour un état LCK, rendant les variables de verrouillage détenues dans les unités formant cache autres que l'unité locale formant cache dans un état ULS. Si les variables de verrouillage détenues dans les unités formant cache autres que l'unité locale formant cache sont dans l'état ULS ou si cette variable de verrouillage n'est pas enregistrée dans le registre d'adresse de verrouillage, l'unité de commande de verrouillage transmet le résultat "verrouillé avec succès", tandis que l'unité de commande de verrouillage rend la variable de verrouillage détenue dans l'unité locale formant cache à l'état LCK. En outre, si une variable de verrouillage correspondant à une unité locale formant cache n'est pas enregistrée dans l'unité locale formant cache, le Il traitement est exécuté sensiblement de la même manière que dans le cas o la variable de verrouillage détenue dans l'unité locale formant cache est dans l'état ULS. On notera que, dans ce cas, une adresse de la variable de verrouillage correspondant à la demande de verrouillage est enregistrée dans un registre d'adresse de verrouillage. A ce moment, si le verrouillage peut être obtenu, la variable de verrouillage est positionnée à l'état LCK, et si le verrouillage ne peut pas être obtenu, la variable de verrouillage est positionnée à l'état ULS. Les opérations du premier mode de réalisation de la présente invention, au moment o une demande de déverrouillage est délivrée en provenance d'une unité de traitement de données, vont être décrites en se référant à un tableau représenté à la figure 6. En se référant au tableau représenté à la figure 6, la colonne de gauche représente les états d'une variable de verrouillage détenue dans une unité formant cache reliée à une unité de traitement de données qui a délivré une demande de verrouillage. La colonne de droite représente les actions pour une demande de verrouillage correspondant aux états représentés dans la colonne de gauche. De manière spécifique, si une variable de verrouillage détenue dans une unité locale formant cache est dans un état LCK, une unité de commande de demande de verrouillage change la variable de verrouillage pour un état ULE. Quand un verrouillage n'est pas obtenu, une demande de déverrouillage n'est normalement jamais produite, par conséquent, la variable de verrouillage détenue dans une unité locale formant cache n'est jamais dans un état ULE ou ULS. De plus, la demande de déverrouillage n'est jamais normalement produite, lorsque la variable de verrouillage n'est pas enregistrée. Les particularités du premier mode de réalisation vont être décrites en se référant à la figure 7. Tout d'abord, on suppose qu'une variable de verrouillage détenue dans une unité formant cache 205 du côté gauche est dans un état LCK, et une variable de verrouillage détenue dans une unité formant cache 206 du côté droit est dans un état ULS. Quand une demande de déverrouillage est délivrée dans l'unité formant cache 205 du côté gauche, l'état de la variable de verrouillage détenue dans l'unité formant cache 205 est mis à jour de LCK à ULE (voir figure 6). Avec cette situation, lorsque la demande de verrouillage est de nouveau délivrée dans l'unité formant cache 205, un verrouillage peut être obtenu sans tenir compte de l'état de l'unité formant cache 206. De manière spécifique, l'état de la variable de verrouillage dans l'unité formant cache 205 est mis à jour pour LCK (voir figure 5). Comme précédemment décrit, selon le système de traitement de données du premier mode de réalisation de la présente invention, on arrive à une obtention du verrouillage après une libération de verrouillage, avec une vitesse élevée, en prévoyant l'état ULE de la variable de verrouillage. A la suite du premier mode de réalisation, le second mode de réalisation de la présente invention va être décrit en se référant aux dessins. En se référant à la figure 8, une variable de verrouillage dans le second mode de réalisation prend quatre états LCK, ULS, ULE et ULL. De manière spécifique, la particularité du second mode de réalisation est que l'état ULL est ajouté aux états du premier mode de réalisation. L'état ULL indique l'état o une unité de traitement de données reliée à une unité formant cache n'assure pas un verrouillage et ou une quelconque autre unité de traitement de données assure le verrouillage. Lorsque la sécurité du verrouillage est compromise, selon une demande de verrouillage, la variable de verrouillage détenue dans une unité formant cache change pour l'état ULL. Ainsi, cette unité formant cache fonctionne de façon à ne pas délivrer une demande de verrouillage supplémentaire pour d'autres unités formant cache. En se référant à la figure 9, une opération du second mode de réalisation va être décrite lorsque la demande de verrouillage est délivrée en provenance d'une unité de traitement de données. Quand on se réfère à la figure 9, la colonne la plus à gauche indique les états d'une variable de verrouillage détenue dans une unité locale formant cache et la colonne intermédiaire indique les états d'une variable de verrouillage détenue dans des unités formant cache autres que l'unité locale formant cache, de manière similaire à la figure 5. De plus, la colonne la plus à droite indique des actions dans les états des variables de verrouillage dans la colonne le plus à gauche et dans la colonne la plus à droite. Si une variable de verrouillage détenue dans une unité locale formant cache est dans l'état ULL, un verrouillage est obtenu dans une unité formant cache autre qu'une unité locale formant cache de sorte qu'une unité de commande de verrouillage transmet un résultat "verrouillage non réussi" à une unité de traitement, de manière similaire à l'état LCK. Quand la variable de verrouillage détenue dans l'unité locale formant cache est dans l'état ULS, les états des variables de verrouillage des unités formant cache autre que l'unité locale formant cache sont indexés. De manière spécifique, lorsque la variable de verrouillage détenue dans l'unité formant cache autre que l'unité locale formant cache est soit dans l'état LCK ou dans l'état ULL, l'unité de commande de verrouillage transmet le résultat "verrouillage non réussi" à l'unité de traitement de données. L'unité de commande de verrouillage change la variable de verrouillage détenue dans l'unité locale formant cache pour l'état ULL. Lorsque la variable de verrouillage détenue dans l'unité formant cache autre que l'unité locale formant cache est soit dans l'état ULE ou dans l'état ULS, l'unité de commande de verrouillage transmet le résultat "verrouillé avec succès" à l'unité de traitement de données. L'unité de commande de verrouillage rend la variable de verrouillage détenue dans l'unité locale formant cache à l'état LCK, et change la variable de verrouillage détenue dans l'unité formant cache autre que l'unité locale formant cache pour l'état ULL. Quand une variable de verrouillage n'est pas enregistrée dans une unité locale formant cache, on effectue sensiblement le même traitement que dans le cas o un état de la variable de verrouillage dans l'unité locale formant cache est dans l'état ULS. Dans ce cas, on notera qu'une adresse de la variable de verrouillage correspondant à la demande de verrouillage est enregistrée dans un registre d'adresse de verrouillage. Les opérations du second mode de réalisation, au moment o une demande de déverrouillage est délivrée en provenance d'une unité de traitement de données, vont être décrites en se référant à la figure 10. En se référant à la figure 10, la colonne la plus à gauche indique les états d'une variable de verrouillage dans une unité locale formant cache, la colonne du milieu indique les états d'une variable de verrouillage dans une unité formant cache autre que l'unité locale formant cache. La colonne la plus à droite indique les actions dans ces états. De manière spécifique, si la variable de verrouillage dans l'unité locale formant cache est dans l'état LCK, une unité de commande de demande de verrouillage rend la variable de verrouillage à l'état ULE. A ce moment, si la variable de verrouillage dans l'unité formant cache autre que l'unité locale formant cache est dans l'état ULL, l'état de cette variable de verrouillage est changé pour l'état ULS. Ainsi, l'unité formant cache rendue dans l'état ULS devient capable de sortir de nouveau la demande de verrouillage vers l'extérieur. Les particularités du second mode de réalisation vont être décrites en se référant à la figure 11. Tout d'abord, lorsque la variable de verrouillage dans l'unité formant cache 205 du côté gauche est dans l'état ULS et lorsque la variable de verrouillage dans l'unité formant cache 206 du côté droit est dans l'état LCK, la délivrance de la demande de verrouillage dans l'unité formant cache 205 a pour conséquence l'échec du verrouillage et la mise à jour de l'état dans l'unité formant cache 205 de ULS à ULL (voir figure 9). Ainsi, l'unité formant cache 205 du côté gauche arrête de délivrer la demande de verrouillage vers l'extérieur. Cet état est libéré quand une demande de déverrouillage est délivrée dans l'unité formant cache 206 du côté droit. De manière spécifique, dans ce cas, étant donné que l'état de la variable de verrouillage dans l'unité formant cache 205 du côté gauche est modifié pour l'état ULS (voir figure 10), l'unité formant cache 205 devient capable de délivrer de nouveau la demande de verrouillage vers l'extérieur. Comme précédemment décrit, selon le second mode de réalisation de la présente invention, en prévoyant l'état ULL de la variable de verrouillage par ajout aux états de la variable de verrouillage du premier mode de réalisation, une sortie inutile de la demande de verrouillage après échec de la sécurité du verrouillage peut être supprimée. Le troisième mode de réalisation de la présente invention va être décrit en se référant aux dessins ci- dessous. En se référant à la figure 12, une variable de verrouillage dans le troisième mode de réalisation a une possibilité de prendre l'un quelconque des états LKS, LKE, ULS, ULE et ULL. De manière spécifique, le troisième mode de réalisation de la présente invention a la particularité que deux états LKS et LKE sont prévus pour le compte de l'état LCK dans le second mode de réalisation. L'état LKS indique l'état o un verrouillage est dans une situation en train d'être assurée par une unité de traitement de données reliée à l'unité formant cache en question et l'une quelconque des variables de verrouillage dans les autres unités formant cache pourrait être dans l'état ULL. De plus, l'état LKE indique l'état o un verrouillage est obtenu par une unité de traitement de données reliée àl'unité formant cache. Dans cet état de la variable de verrouillage, on confirme que toutes les variables de verrouillage dans les autres unités formant cache ne sont pas dans l'état ULL. Pour l'unité formant cache, la présence de l'état LKE élimine la vérification des états des autres unités formant cache, au moment de l'état de déverrouillage. Les opérations du troisième mode de réalisation, au moment o une demande de verrouillage est délivrée en provenance d'une unité de traitement de données, vont être décrites ci-dessous en se référant à la figure 13. En se référant à la figure 13, la colonne la plus à gauche indique les états des variables de verrouillage dans une unité locale formant cache et la colonne du milieu indique les états des variables de verrouillage dans des unités formant cache autre que l'unité locale formant cache, de manière similaire à celle du cas de la figure 5. De plus, la colonne la plus à droite indique les actions effectuées sous les conditions représentées dans la colonne la plus à gauche et dans la colonne du milieu. Si la variable de verrouillage dans l'unité locale formant cache est dans l'état ULE, étant donné qu'on confirme que le verrouillage n'est pas obtenu dans l'une quelconque des unités formant cache, le résultat "verrouillé avec succès" est transmis à l'unité de traitement et la variable de verrouillage dans l'unité locale formant cache est modifiée pour l'état LKE. Si la variable de verrouillage dans l'unité locale formant cache est dans l'état ULS, les variables de verrouillage dans les unités formant cache autre que l'unité locale formant cache sont référencées. De manière spécifique, si la variable de verrouillage dans l'unité formant cache autre que l'unité locale formant cache est dans l'état LCK ou dans l'état ULL, l'unité de commande de verrouillage transmet le résultat "verrouillage non réussi" à l'unité de traitement de données et change la variable de verrouillage pour l'état ULL. De plus, si la variable de verrouillage dans l'unité formant cache est dans l'état ULE ou dans l'état ULS, l'unité de commande de verrouillage transmet le résultat "verrouillé avec succès" à l'unité de traitement de données, change la variable de verrouillage dans l'unité locale formant cache pour l'état LKE, et change la variable de verrouillage dans l'unité formant cache autre que l'unité locale formant cache pour l'état ULS. On notera que le cas o la variable de verrouillage n'est pas enregistrée dans l'unité locale formant cache est démontré de manière supplémentaire à la figure 13, aucun enregistrement n'est nécessaire, étant donné que la variable de verrouillage dans l'unité locale formant cache est déjà enregistrée, quand elle est dans l'état ULS. Lorsque la variable de verrouillage en question n'est pas enregistrée dans l'unité locale formant cache, un traitement sensiblement identique est effectué, comme dans le cas o la variable de verrouillage dans l'unité locale formant cache est dans l'état ULS. On notera que dans ce cas, une adresse de la variable de verrouillage correspondant à la demande de verrouillage est enregistrée dans un registre d'adresse de verrouillage. Les opérations du troisième mode de réalisation, au moment o une demande de déverrouillage est délivrée en provenance de l'unité de traitement de données, vont être décrites en se référant à la figure 14. En se référant à la figure 14, la colonne la plus à gauche indique les états des variables de verrouillage dans une unité locale formant cache et la colonne du milieu indique les états des variables de verrouillage dans des unités formant cache autre que l'unité locale formant cache, de manière similaire à celle du cas de la figure 10. La colonne la plus à droite indique les actions effectuées sous les conditions représentées dans la colonne la plus à gauche et dans la colonne du milieu. De manière spécifique, si la variable de verrouillage dans l'unité locale formant cache est dans l'état LKE, l'unité de commande de demande de verrouillage change la variable de verrouillage pour l'état ULE, sans tenir compte des états des variables de verrouillage dans les autres unités formant cache. Les particularités du troisième mode de réalisation vont être décrites en se référant à la figure 15. Tout d'abord, on suppose que la variable de verrouillage dans l'unité formant cache 205 du côté gauche est dans l'état LKS et que la variable de verrouillage dans l'unité formant cache 206 du côté droit est dans l'état ULL, si une demande de déverrouillage est délivrée dans l'unité formant cache 205, l'état de la variable de verrouillage est mis à jour pour l'état ULE et l'état des variables de verrouillage dans l'unité formant cache 206 est mis à jour pour l'état ULS (voir figure 14). Dans cette situation, quand une demande de verrouillage est délivrée dans l'unité formant cache 205, un verrouillage est obtenu dans l'unité formant cache 205 sans tenir compte de l'état de l'autre unité formant cache 206. L'effet du troisième mode de réalisation est similaire à celui du premier mode de réalisation. En conséquence, la variable de verrouillage dans l'unité formant cache 205 prend l'état LKE (voir figure 13). Ensuite, dans cette situation, quand une demande de déverrouillage est de nouveau délivrée dans l'unité formant cache, l'état de la variable de verrouillage dans l'unité formant cache 205 est mis à jour pour l'état ULE (voir figure 14). Dans ce cas, l'action pour l'autre l'unité formant cache n'est pas nécessaire, comme dans le cas de la première demande de déverrouillage. Comme précédemment décrit, selon le troisième mode de réalisation de la présente invention, en introduisant les états LKE et LKS pour le compte de l'état LCK, le troisième mode de réalisation de la présente invention a un effet en ce qu'une opération pour d'autres unités formant cache n'est pas nécessaire, pour libérer le verrouillage de l'état LKE. Le quatrième mode de réalisation de la présente invention va être décrit en se référant aux dessins ci- dessous. En se référant à la figure 16, une variable de verrouillage dans le quatrième mode de réalisation prend l'un quelconque des états ULS, ULE, SLK et RSV. De manière spécifique, la particularité du quatrième mode de réalisation est que les deux états SLK et RSV sont prévus pour le compte de l'état LCK dans le premier mode de réalisation. Ces états SLK et RSV signifient qu'un verrouillage est obtenu dans au moins une des unités formant cache du système. Une unité formant cache obtenant le verrouillage pourrait être cette même unité ou d'autres unités formant cache. Les états SLK et RSV diffèrent l'un de l'autre, sur le point que lorsque le verrouillage est libéré, l'état SLK est changé pour l'état ULS et l'état RSV est changé pour l'état ULE. En prévoyant l'état RSV, une variable de verrouillage, à changer pour l'état ULE au moment du déverrouillage, peut être réservée. Les opérations pour un verrouillage, du quatrième mode de réalisation de la présente invention, au moment o une demande de verrouillage est délivrée en provenance d'une unité de traitement de données, vont être décrites en se référant à la figure 17. En se référant à la figure 17, la colonne la plus à gauche indique les états des variables de verrouillage dans les unités locales formant cache et la colonne du milieu indique les états des variables de verrouillage dans des unités formant cache autres que les unités locales formant cache, de manière similaire à celle de la figure 5. La colonne la plus à droite indique des actions effectuées sous les conditions représentées dans la colonne la plus à gauche et dans la colonne du milieu. Si la variable de verrouillage dans l'unité locale formant cache est soit dans l'état SLK ou dans l'état RSV, étant donné qu'un verrouillage est obtenu dans l'une quelconque des unités formant cache, l'unité de commande de verrouillage transmet le résultat "verrouillage non réussi". D'un autre côté, lorsque la variable de verrouillage dans l'unité locale formant cache est dans l'état ULE, le verrouillage est verrouillé avec succès de sorte que la variable de verrouillage dans l'unité locale formant cache passe à l'état RSV, sans tenir compte de l'état des autres unités formant cache. Lorsque la variable de verrouillage dans l'unité locale formant cache est dans l'état ULS, les états des variables de verrouillage dans les unités formant cache autres que l'unité locale formant cache sont référencés pour déterminer si le verrouillage est obtenu avec succès ou non. De manière spécifique, "verrouillé avec succès" ou "verrouillage non réussi" est déterminé à partir des états SLK, RSV, ULS et ULE et à partir d'un état indiquant le non-enregistrement de la variable de verrouillage. On notera que l'état de la variable de verrouillage dans l'unité locale formant cache prend l'état RSV, sans tenir compte du résultat déterminé, étant donné que la variable de verrouillage est réservée de façon à être dans l'état ULE au moment du déverrouillage. Lorsque la variable de verrouillage correspondant à l'unité locale formant cache n'est pas enregistrée dans l'unité locale formant cache, les opérations sont effectuées d'une manière similaire à la précédente. On notera qu'une adresse de la variable de verrouillage correspondant à la demande de verrouillage en question est enregistrée dans le registre d'adresse de verrouillage, dans ce cas. Les opérations du quatrième mode de réalisation, au moment o une demande de déverrouillage est délivrée en provenance d'une unité de traitement de données, vont être décrites en se référant à la figure 18. En se référant à la figure 18, la colonne la plus à gauche indique les états des variables de verrouillage dans des unités locales formant cache et la colonne du milieu indique les états des variables de verrouillage dans des unités formant cache autre que les unités locales formant cache, de manière similaire à celle du cas de la figure 10. La colonne la plus à droite indique les actions effectuées sous les conditions représentées dans la colonne la plus à gauche et dans la colonne du milieu. De manière spécifique, si la variable de verrouillage dans l'unité locale formant cache est dans l'état RSV, la variable de verrouillage dans les unités locales est changée pour l'état ULE par l'unité de commande de demande de verrouillage, sans tenir compte de l'état de la variable de verrouillage dans l'autre unité formant cache. De plus, quand la variable de verrouillage dans l'unité locale formant cache est dans l'état SLK, l'état de la variable de verrouillage dans l'unité locale formant cache prend l'état ULS. Dans ce cas, si la variable de verrouillage dans l'unité formant cache autre que l'unité locale formant cache est dans l'état RSV, elle passe à l'état ULE, et si la variable de verrouillage dans cette dernière est dans l'état SLK, elle passe à l'état ULS. Les particularités du quatrième mode de réalisation vont être décrites en se référant à la figure 19. Tout d'abord, on suppose que la variable de verrouillage dans l'unité formant cache 205 du côté gauche est dans l'état ULS, la variable de verrouillage dans l'unité formant cache 206 du côté droit est dans l'état RSV, et un verrouillage est obtenu, si une demande de verrouillage est délivrée dans l'unité formant cache 205, l'obtention du verrouillage échoue, la variable de verrouillage dans l'unité formant cache 205 est mise à jour de l'état ULS vers l'état RSV et l'état des variables de verrouillage dans l'unité formant cache 206 est mis à jour pour l'état SLK (voir figure 17). On notera que le verrouillage reste à obtenir dans l'unité formant cache 206. Dans cette situation, quand une demande de déverrouillage est délivrée dans l'unité formant cache 206, l'état de la variable de verrouillage dans l'unité formant cache 206 devient l'état ULS et l'état de la variable de verrouillage dans l'unité formant cache 205 devient l'état ULE (voir figure 18). Ainsi, quand une demande de verrouillage est délivrée dans l'unité formant cache 205, à la suite, un verrouillage est obtenu dans l'unité formant cache 205, sans tenir compte de l'état de l'autre l'unité formant cache 206. Ensuite, l'état de la variable de verrouillage dans l'unité formant cache 205 est mis à jour pour l'état RSV (voir figure 17). Ainsi, selon le quatrième mode de réalisation de la présente invention, en prévoyant l'état RSV pour le compte de l'état LCK utilisé dans le premier mode de réalisation, l'unité formant cache à positionner dans l'état ULE, après une libération du verrouillage, peut être réservée de sorte que le verrouillage peut être obtenu après la libération du verrouillage à haute vitesse et avec souplesse. Comme précédemment décrit, selon la présente invention, en prévoyant des états des variables de verrouillage correspondant au registre d'adresse de verrouillage, référencer l'opération de variables de verrouillage dans une seconde unité formant cache, qui n'est pas directement reliée à une unité centrale de traitement de données ayant délivré une demande de déverrouillage, est rendu inutile. En conséquence, le verrouillage peut être obtenu avec une vitesse élevée. En outre, une augmentation du trafic de bus peut être supprimée, en abolissant l'opération d'accès au bus non nécessaire. Des avantages et modifications supplémentaires vont aisément apparaître aux hommes de l'art. Par conséquent, l'invention, dans ses aspects les plus larges, n'est pas limitée aux détails spécifiques, aux dispositifs représentatifs, et aux exemples représentés, montrés et décrits dans ce document. Par conséquent, différentes modifications peuvent être apportées, sans s'écarter de l'esprit ou de l'étendue du concept général de l'invention, comme défini par les revendications annexées et leurs équivalences. REVENDmICATIONS 1. Système de traitement de données ayant une pluralité d'unités de traitement de données (201 à 204) partageant une mémoire centrale (207), comprenant: une pluralité d'unités de commande de verrouillage; caractérisé en ce que lesdites unités de commande de verrouillage pour commander les états de variable de verrouillage concernant au moins une unité particulière de ladite pluralité d'unités de traitement de données (201 à 204) comprennent: des moyens formant registre (5; 6) pour enregistrer au moins un des états de ladite variable de verrouillage; et des moyens de maintien d'état pour maintenir l'état de la variable de verrouillage enregistré dans lesdits moyens formant registre (5; 6); en ce que lesdits moyens de maintien d'état sont commandés de sorte qu'ils comprennent l'état spécifié indiquant qu'un verrouillage n'est pas obtenu dans l'une quelconque des unités de commande de verrouillage et sont commandés de sorte qu'au plus une desdites unités de commande de verrouillage prenne ledit état spécifié pour ce qui est de chacune des variables de verrouillage. 2. Unité de commande de verrouillage selon la revendication 1, caractérisé en ce que, lorqu'une demande de verrouillage concernant la variable de verrouillage dans ledit état spécifié est délivrée, l'obtention avec succès du verrouillage est déterminée sans se référer aux états de l'autre unité de commande de verrouillage. 3. Système de traitement de données ayant une pluralité d'unités de traitement de données (201 à 204) partageant une mémoire centrale (207), comprenant: une pluralité d'unités de commande de verrouillage; caractérisé en ce que lesdites unités de commande de verrouillage pour commander les états de variable de verrouillage concernant au moins une unité particulière de ladite pluralité d'unités de traitement de données (201 à 204) comprennent: des moyens formant registre (5; 6) pour enregistrer au moins un des états de ladite variable de verrouillage; et des moyens de maintien d'état pour maintenir l'état de la variable de verrouillage enregistré dans lesdits moyens formant registre (5; 6); en ce que lesdits moyens de maintien d'état représentent, en tant qu'états de ladite variable de verrouillage, un premier état indiquant qu'une unité particulière desdites unités de commande de verrouillage obtient un verrouillage et que les autres unités de commande de verrouillage n'obtiennent pas de verrouillage, un second état indiquant qu'une unité particulière desdites unités de commande de verrouillage n'obtient pas de verrouillage et que l'obtention du verrouillage des autres unités de commande de verrouillage est inconnue, et un troisième état indiquant que le verrouillage n'est pas obtenu dans l'une quelconque des unités de commande de verrouillage, et on détermine que le verrouillage est obtenu avec succès sans référence aux états des autres unités de commande de verrouillage quand une demande de verrouillage est délivrée concernant la variable de verrouillage dans le troisième état. 4. Système de traitement de données ayant une pluralité d'unités de traitement de données (201 à 204) partageant une mémoire centrale (207), comprenant: une pluralité d'unités de commande de verrouillage; caractérisé en ce que lesdites unités de commande de verrouillage pour commander les états de variable de verrouillage concernant au moins une unité particulière de ladite pluralité d'unités de traitement de données (201 à 204) comprennent: des moyens formant registre (5; 6) pour enregistrer au moins un des états de ladite variable de verrouillage; et des moyens de maintien d'état pour maintenir l'état de la variable de verrouillage enregistré dans lesdits moyens formant registre (5; 6); en ce que lesdits moyens de maintien d'état représentent, en tant qu'états de ladite variable de verrouillage, un premier état pour exprimer qu'une unité de commande de verrouillage en elle-même obtient un verrouillage et que d'autres unités de commande de verrouillage n'obtiennent pas de verrouillage, un second état pour indiquer que l'unité de commande de verrouillage en elle-même n'obtient pas de verrouillage et qu'une obtention du verrouillage des autres unités de commande de verrouillage est inconnue, un troisième état pour exprimer que toutes les unités de commande n'obtiennent pas de verrouillage, un quatrième état pour indiquer que l'unité de commande de verrouillage en elle-même n'obtient pas de verrouillage et que l'autre unité de commande de verrouillage obtient le verrouillage; et la sécurité réussie du verrouillage est déterminée sans référence aux états des autres unités de commande de verrouillage, quand une demande de verrouillage, pour ce qui concerne une variable de verrouillage du troisième état, et quand la demande de verrouillage, pour ce qui concerne une variable de verrouillage du quatrième état, est délivrée, la demande de verrouillage n'est pas transmise à l'autre unité de commande de verrouillage. 5. Système de traitement de données ayant une pluralité d'unités de traitement de données (201 à 204) partageant une mémoire centrale (207), comprenant: une pluralité d'unités de commande de verrouillage; caractérisé en ce que lesdites unités de commande de verrouillage pour commander les états de variable de verrouillage concernant au moins une unité particulière de ladite pluralité d'unités de traitement de données (201 à 204) comprennent: des moyens formant registre (5; 6) pour enregistrer au moins un des états de ladite variable de verrouillage; et des moyens de maintien d'état pour maintenir l'état de la variable de verrouillage enregistré dans lesdits moyens formant registre (5; 6); en ce que lesdits moyens de maintien d'état représentent, en tant qu'états de ladite variable de verrouillage, un premier état pour exprimer qu'une unité de commande de verrouillage en elle-même n'obtient pas de verrouillage et qu'une obtention du verrouillage des autres unités de commande de verrouillage est inconnue, un second état pour indiquer que toutes les unités de commande de verrouillage n'obtiennent pas de verrouillage, un troisième état pour indiquer que l'unité de commande en elle-même n'obtient pas de verrouillage et que d'autres unités de commande de verrouillage obtiennent le verrouillage, un quatrième état pour indiquer que l'unité de commande de verrouillage en elle-même obtient le verrouillage et pour indiquer que les autres unités de commande de verrouillage pourraient être dans le troisième état, et un cinquième état pour exprimer que l'unité de commande de verrouillage en elle-même obtient le verrouillage et que les autres unités de commande de verrouillage ne sont pas dans le troisième état; et quand une demande de verrouillage pour ce qui concerne une variable de verrouillage du second état, l'obtention réussie du verrouillage est déterminée sans se référer aux états des autres unités de commande de verrouillage; quand la demande de verrouillage, pour ce qui concerne une variable de verrouillage du troisième état, est délivrée, la demande de verrouillage n'est pas transmise à l'autre unité de commande de verrouillage; et quand la demande de déverrouillage, pour ce qui concerne une variable de verrouillage du cinquième état, est délivrée, la demande de déverrouillage n'est pas transmise à l'autre unité de commande de verrouillage. 6. Système de traitement de données ayant une pluralité d'unités de traitement de données (201 à 204) partageant une mémoire centrale (207), comprenant: une pluralité d'unités de commande de verrouillage; caractérisé en ce que lesdites unités de commande de verrouillage pour commander les états de variable de verrouillage concernant au moins une unité particulière de ladite pluralité d'unités de traitement de données (201 à 204) comprennent: des moyens formant registre (5; 6) pour enregistrer au moins un des états de ladite variable de verrouillage; et des moyens de maintien d'état pour maintenir l'état de la variable de verrouillage enregistré dans lesdits moyens formant registre (5; 6); en ce que lesdits moyens de maintien d'état représentent, en tant qu'états de ladite variable de verrouillage, un premier état pour indiquer qu'une unité de commande de verrouillage en elle-même n'obtient pas de verrouillage et qu'une obtention du verrouillage des autres unités de commande de verrouillage est inconnue, un second état pour indiquer que toutes les unités de commande de verrouillage n'obtiennent pas de verrouillage un troisième état pour indiquer qu'une quelconque unité de commande de verrouillage obtient le verrouillage et pour indiquer un changement pour le premier état pour une demande de déverrouillage, un quatrième état pour indiquer qu'une quelconque unité de commande de verrouillage en elle- même obtient le verrouillage et pour indiquer le décalage vers le second état pour la demande de déverrouillage; et quand une demande de verrouillage pour ce qui concerne une variable de verrouillage du second état, l'obtention réussie du verrouillage est déterminée sans se référer aux états des autres unités de commande de verrouillage.