Brevet FR2733067A1 — publié le 19961018

DISPOSITIF ET PROCEDE DE COMMANDE DE VERROUILLAGE La présente invention concerne un dispositif et un procédé de commande de verrouillage, et plus particulièrement un dispositif et un procédé de commande de verrouillage pour un système d'ordinateur, qui comporte une pluralité de banques, dont chaque système apparié comporte une pluralité de mémoires cache de stockage (SIC), qui partagent une mémoire principale. Chacun des caches du système apparié est respectivement utilisé par au moins une unité centrale de traitement, et il est connecté à un autre cache du système apparié par un bus. Dans un système multiprocesseur à mémoire partagé, une pluralité de processeurs partagent une mémoire principale. Dans un tel système, un certain processeur doit exclusivement utiliser les données situées dans une certaine zone partagée de la mémoire principale pendant un certain temps. Par exemple, lorsque le processeur exécute une opération d'addition de "1" à des données situées dans la certaine zone partagée, pendant une séquence de traitement exécutée pendant que les données de la zone partagée sont lues pour ajouter "1", jusqu'à ce que les données soient de nouveau écrites dans la zone partagée, il doit être interdit aux autres processeurs d'accéder à ces données. Sans une telle interdiction, la mise à jour des données, et ainsi l'accès aux données mises à jour, ne sont pas garantis. Afin d'assurer un accès exclusif, et ainsi d'interdire aux autres processeurs d'accéder aux données, une variable de verrouillage est typiquement utilisée. En obtenant l'accès à la zone partagée de la mémoire principale, la variable de verrouillage doit être vérifiée pour confirmer que la variable de verrouillage n'est pas dans un état "verrouillé". La vérification de la variable de verrouillage est exécutée selon une demande de verrouillage, et lorsque la variable de verrouillage se trouve dans un état "déverrouillé", alors la variable de verrouillage est mise à jour dans l'état "verrouillé". Puis, l'accès est autorisé à une zone partagée correspondante. Après achèvement du traitement exclusif, la variable de verrouillage est remise dans l'état "déverrouillé", selon une demande de déverrouillage. Une telle commande est appelée "commande de verrouillage". Lorsqu'une mémoire cache (par exemple, une première mémoire cache) est prévue dans chaque processeur, si une incohérence se produit entre le contenu de la mémoire principale et le contenu de la mémoire cache, les données correspondantes situées dans la mémoire cache doivent être invalidées. Un tel traitement est appelé "traitement de cohérence de cache". Lorsque par exemple, un certain processeur réécrit le contenu dans la zone partagée de "0" a "1", sauf si les données correspondantes des mémoires cache des autres processeurs sont invalidées (par exemple, annulées), les autres processeurs lisent des données anciennes, c est-à-dire "0", involontairement, et de façon erronée,. Ainsi, ces données sont invalidées par le traitement de cohérence de cache, de façon à être "brûlées" (par exemple, supprimées) de la mémoire cache. Puis, les autres processeurs lisent les données de la mémoire principale, en raison d'une "absence" de cache, car les processeurs sont capables de lire des données après mise à jour, c'est-à-dire, "1". Dans cet exemple, lorsqu'un certain processeur A acquiert un "verrouillage" selon la demande de verrouillage, tous les traitements de cohérence de cache par rapport aux zones partagées correspondantes doivent être achevés. Sans le traitement, une opération de mise à jour de données qui a été effectuée en fonction des zones partagées par les autres processeurs B, n'est pas assurée. Ainsi, un dispositif de commande de verrouillage classique comporte un tampon de demande, qui assure un ordre des demandes. Une "réponse pour verrouillage" (par exemple, une réponse de verrouillage) est stockée dans une dernière entrée du tampon de demande. Dans le dispositif de commande de verrouillage classique, lorsqu'un verrouillage est destiné à être acquis dans le cache secondaire, qui a été divisé en une pluralité de banques, deux procédés classiques sont utilisés comme décrit ci-dessous. Dans un premier procédé, un processeur délivre concurremment des demandes de verrouillage à toutes les banques, jusqu'à ce que le processeur ait acquis les verrouillages de toutes les banques. Toutefois, dans ce premier procédé, lorsqu'une pluralité de processeurs délivre respectivement une demande de verrouillage à la même adresse de verrouillage, et lorsqu'un processeur différent obtient un verrouillage dans chaque banque, une demande de déverrouillage et une demande de verrouillage doivent être répétées, car chaque unité centrale de traitement libère une fois le verrouillage ainsi acquis, jusqu'à ce qu'il délivre de nouveau une demande de verrouillage, et le verrouillage réussit dans toutes les banques. Ceci est lourd et problématique, en ce que le temps requis pour acquérir un verrouillage au moment du conflit de verrouillage à la même adresse, est augmenté. Dans un deuxième procédé, un processeur délivre une demande de verrouillage à une certaine banque. Après acquisition du verrouillage, le processeur délivre des demandes de cohérence de cache à toutes les banques. Toutefois, dans ce deuxième procédé, il ne peut pas être accédé à une mémoire cache située dans le processeur avant qu'une réponse à la demande de cohérence de cache soit retournée depuis toutes les banques. C'est-à-dire que, même si un résultat d'une demande de verrouillage est trouvé en fonction d'une réponse de verrouillage provenant d'un certain cache secondaire, puisqu'il ne peut pas être assuré que le traitement de cohérence de cache pour la zone partagée a été achevé, il ne peut pas être accédé à un premier cache avant qu'une réponse à une demande de garantie de cohérence de cache soit retourné depuis tous les caches secondaires. Ainsi, l'accès à la zone partagée est retardé jusqu'à ce que les réponses aux demandes de garantie de cohérence de cache soit retournée depuis toutes les banques du cache secondaire, bien que l'acquisition de verrouillage ait été terminée. Considérant le problème précédent du système classique, un objet de la présente invention consiste à diminuer le temps requis pour accéder à une zone partagée par l'intermédiaire d'une acquisition de verrouillage. Dans un dispositif de commande de verrouillage selon un premier aspect de la présente invention, un registre d'état de verrouillage contient un état de variable de verrouillage par rapport à chaque processeur, et à chaque banque de mémoires, et le contrôleur contrôle l'état de la variable de verrouillage stocké dans le registre d'état de verrouillage. Si l'état de la variable de verrouillage par rapport à une certaine banque de mémoires indique un état d'acquisition de verrouillage, le contrôleur positionne l'état de la variable de verrouillage dans les autres banques de mémoires à l'état d'acquisition de verrouillage. Avec la structure et le procédé uniques et non évidents de la présente invention, le temps requis pour accéder à une zone partagée est réduit par rapport au système classique décrit ci-dessus. Les objets, caractéristiques et avantages mentionnés ci-dessus de la présente invention, ainsi que d'autres, deviendront plus évidents en référence à la description détaillée qui suit de l'invention, effectuée conjointement avec les dessins annexés dans lesquels La figure 1 est un schéma synoptique représentant un système d'ordinateur auquel la présente invention est appliquée la figure 2 est un schéma synoptique représentant un cache secondaire 205, selon un mode de réalisation de la présente invention la figure 3 est un schéma synoptique représentant un dispositif de commande de verrouillage 25, selon le mode de réalisation de la présente invention la figure 4 est un schéma représentant des types d'états d'une variable de verrouillage, selon un premier mode de réalisation de la présente invention la figure 5 est un schéma représentant les opérations pour une demande VERROUILLAGE, selon le premier mode de réalisation de la présente invention la figure 6 est un schéma représentant les opérations pour une demande SETLS, selon le premier mode de réalisation de la présente invention la figure 7 est un schéma représentant les opérations pour une demande DEVERROUILLAGE, selon le premier mode de réalisation de la présente invention la figure 8 est un schéma représentant des exemples d'opérations selon le premier mode de réalisation de la présente invention la figure 9 et un schéma représentant des types d'états d'une variable de verrouillage, selon un deuxième mode de réalisation de la présente invention la figure 10 est un schéma représentant les opérations pour une demande VERROUILLAGE, selon le deuxième mode de réalisation de la présente invention la figure 11 est un schéma représentant les opérations pour une demande SETLS, selon le deuxième mode de réalisation de la présente invention la figure 12 est un schéma représentant les opérations pour une demande DEVERROUILLAGE, selon le deuxième mode de réalisation de la présente invention la figure 13 et un schéma représentant des exemples d'opérations, selon le deuxième mode de réalisation de la présente invention la figure 14 est un schéma représentant des types d'états d'une variable de verrouillage, selon un troisième mode de réalisation de la présente invention la figure 15 est un schéma représentant les opérations pour une demande VERROUILLAGE, selon le troisième mode de réalisation de la présente invention la figure 16 est un schéma représentant les opérations pour une demande SETLS, selon le troisième mode de réalisation de la présente invention la figure 17 et est un schéma représentant les opérations pour une demande DEVERROUILLAGE, selon le troisième mode de réalisation de la présente invention ; et la figure 18 est un schéma représentant des exemples d'opérations, selon le troisième mode de réalisation de la présente invention. Un dispositif de commande de verrouillage selon les modes de réalisation préférés de la présente invention va être décrit en détail en référence aux dessins annexés. En se référant à la figure 1, un système multiprocesseur comprend quatre processeurs 201 à 204, quatre caches secondaires 205 à 208, et deux mémoires principales 211 et 212. Chaque processeur 201 à 204 comporte un premier cache dans celui-ci. Les processeurs 201 et 202 partagent les caches secondaires 205 et 206, et les processeurs 203 et 204 partagent les caches secondaires 207 et 208. Les mémoires principales 211 et 212 sont divisées en une pluralité de banques (par exemple, deux) comportant les banques A (213) et B (214). Correspondant aux mémoires principales 211 et 212, les caches secondaires 205 et 206 sont divisés dans les deux banques, et les caches secondaires 207 et 208 sont également divisés dans les deux banques. Les caches secondaires 205 et 207 sont connectés à la mémoire principale 211 par l'intermédiaire d'un bus de système 209, et les caches secondaires 206 et 208 sont connectés à la mémoire principale 212 par l'intermédiaire d'un bus de système 210. Une banque parmi les deux banques, auxquelles il doit être accédé, est déterminé en fonction d'un certain bit dans une adresse de demande provenant des processeurs 201 à 204. En conséquence, lorsqu'une adresse délivrée en sortie par les processeurs 201 à 204 représente (par exemple, correspond) la banque A, les processeurs 201 et 202 accèdent à la mémoire principale 211 par le cache secondaire 205, tandis que les processeurs 203 et 204 accèdent à la mémoire principale 211 par le cache secondaire 207. De façon similaire, lorsqu'une adresse délivrée en sortie par les processeurs 201 à 204 représente (par exemple, correspond) la banque B, les processeurs 201 et 202 accèdent à la mémoire principale 212 par le cache secondaire 206, tandis que les processeurs 203 et 204 accèdent à la mémoire principale 212 par le cache secondaire 208. Les caches secondaires 205 à 208 fonctionnent en fonction d'un protocole de stockage. Dans le protocole de stockage, les données écrites dans le cache secondaire (par exemple, les caches 205 à 208) ne sont pas écrites dans la mémoire principale (par exemple les mémoires principales 211 et 212) avant un certain moment. En outre, chacun des caches secondaires 205 à 208 lit des informations dans l'autre cache secondaire, couplé à son même bus (par exemple, commun) par les bus de système respectifs 209 et 210. En se référant à la figure 2, le cache secondaire 205 comporte deux tampons d'entrée 21 et 22, pour recevoir des demandes provenant des processeurs 201 et 202, par l'intermédiaire, par exemple, de circuits de commande respectifs (non référencés) ou directement depuis ceux-ci, un sélecteur 23 pour sélectionner l'une des demandes provenant des tampons d'entrée 21 et 22, et du bus de système 209, par l'intermédiaire, par exemple, des circuits de commande respectifs (non référencés) ou directement depuis ceux-ci, un réseau d'adresses 24 du cache secondaire, un dispositif de commande de verrouillage 25, deux sélecteurs 26 et 27, pour sélectionner l'une des demandes provenant du dispositif de commande de verrouillage 25 et du sélecteur 23, et deux tampons de demande 28 et 29, pour constituer un tampon pour les demandes provenant respectivement des sélecteurs 26 et 27, d'une manière "premier entré premier sorti" (FIFO). Selon une règle prédéterminée, le sélecteur 23 sélectionne une demande parmi les trois demandes présentées. Par exemple, un aménagement "en boucle", dans lequel les demandes sont sélectionnées en rotation, peut être utilisé. Le réseau d'adresses 24 comprend un réseau identique à celui de la mémoire cache classique, car le réseau d'adresses 24 contient des adresses de marquage correspondant à chaque entrée d'une mémoire de données (non représentée). Les sélecteurs 26 et 27 sélectionnent une sortie du dispositif de commande de verrouillage 25, en retournant une réponse pour une demande de verrouillage, et sélectionnent une sortie du sélecteur 23 pendant le contrôle de cohérence de cache. Les caches secondaires 206, 207 et 208 ont, de préférence, la même structure que le cache secondaire 205 décrit ci-dessus. En se référant à la figure 3, le dispositif de commande de verrouillage 25 comporte des registres d'adresses de verrouillage 1 et 2, pour stocker une adresse d'une variable de verrouillage par rapport à une demande sélectionnée par le sélecteur 23. Les registres d'état de verrouillage 5 et 6 contiennent un état de la variable de verrouillage dans les registres d'adresses de verrouillage 1 et 2, et les circuits de détection de coïncidence d'adresses de verrouillage 3 et 4 (comportant chacun, par exemple, un comparateur et une porte ET, tous deux étant non référencés) détectent une coïncidence entre l'adresse provenant du sélecteur 23 et les adresses stockées dans les registres d'adresses de verrouillage 1 et 2.Un sélecteur 7 sélectionne l'un des états de verrouillage stockés dans les registres d'état de verrouillage 5 et 6, en fonction du résultat des circuits de détection de coïncidence d'adresses de verrouillage 3 et 4. Les registres d'adresses de verrouillage 1 et 2 ont chacun un bit de validité, qui indique que le registre d'adresse de verrouillage respectif contient des données valides. Le dispositif de commande de verrouillage 25 comporte en outre des registres de numéros de processeur 9 et 10, pour stocker un numéro spécifié de chacun des processeurs qui délivre une demande de verrouillage, des comparateurs 11 et 12 pour détecter la coïncidence entre le numéro de processeur délivré en sortie par le sélecteur 23 et les numéros de processeur contenus dans les registres de numéros de processeur 9 et 10, un sélecteur 13 pour sélectionner l'une des sorties des comparateurs 11 et 12, et un circuit de commande 8 pour contrôler les registres d'adresses de verrouillage 1 et 2, les registres d'état de verrouillage 5 et 6, et les registres de numéros de processeur 9 et 10. Ci-dessous, et en référence aux figures 4 à 8, le fonctionnement du dispositif de commande de verrouillage selon le mode de réalisation mentionné cidessus de la présente invention va être décrit. Dans la description ci-dessous, un cache secondaire connecté à un processeur qui délivre une demande, est appelé un "cache local". L'état de verrouillage est modifié par une parmi une demande VERROUILLAGE, une demande SETLS, et une demande DEVERROUILLAGE, comme décrit ci-dessous. La demande VERROUILLAGE vérifie si d'autres processeurs ont acquis un verrouillage, et si aucun des processeur n'a acquis de verrouillage, alors l'état de verrouillage est modifié vers l'état "verrouillé". La demande SETLS modifie l'état de verrouillage d'une banque, qui n'a pas été modifié dans l'état "verrouillé" selon la demande VERROUILLAGE, vers l'état "verrouillé". La demande DEVERROUILLAGE met à jour l'état de verrouillage d'une banque, qui a été modifié vers l'état "verrouillé" selon la demande VERROUILLAGE ou la demande SETLS, vers l'état "déverrouillé". En se référant à la figure 4, la variable de verrouillage a un état "LCK" ou "ULS". "LCK" indique que l'état de verrouillage d'un processeur connecté à un cache secondaire sélectionné est l'état "verrouillé", et que l'état de verrouillage des autres processeurs est l'état "déverrouillé". "ULS" indique que l'état de verrouillage d'un processeur connecté à ce cache secondaire est l'état "déverrouillé", et qu'il n'est pas certain, ou qu'il n'est pas connu si d'autres processeurs ont acquis des verrouillages. En se référant à la figure 5, la colonne la plus à gauche représente un état de verrouillage du cache local, la colonne centrale représente un état de verrouillage des caches différent du cache local, et la colonne la plus à droite représente l'action effectuée pour une demande VERROUILLAGE. La figure 5 est appliquée à la fois à la banque A et à la banque B, simultanément, car un processeur délivre des demandes VERROUILLAGE aux deux banques. Toutefois, ces banques A et B agissent typiquement de façon à modifier l'état de la variable de verrouillage à la demande VERROUILLAGE. Une rangée "BANQUE A:" sur la figure 5 n'est appliquée que si la banque appliquée est la banque A, et une rangée "BANQUE B:" n'est appliquée que si la banque appliquée est la banque B. La figure 5 est basée sur l'hypothèse selon laquelle la banque A est verrouillée par une demande VERROUILLAGE. Toutefois, la banque verrouillée peut être la banque B, ou une banque quelconque déterminée par une adresse. Selon la figure 5, lorsque l'état de la variable de verrouillage du cache local est "LCK", et que le numéro de processeur est différent, le dispositif de commande de verrouillage retourne un signal "défaut de verrouillage", car un autre processeur a déjà acquis un verrouillage. Lorsque l'état de la variable de verrouillage du cache local est "ULS", et que l'état de verrouillage des caches différents du cache local est "ULS", le dispositif de commande de verrouillage retourne "verrouillage réussi", car aucun processeur n'a acquis de verrouillage. De plus, si le cache local est la banque A, l'état de la variable de verrouillage du cache local devient "LCK", et l'état de la variable de verrouillage des caches différents du cache local reste "ULS". Si le cache local est la banque B, les états des variables de verrouillage de tous les caches restent "ULS". Lorsqu'une variable de verrouillage d'une adresse correspondante n'est pas enregistrée dans le cache local, le dispositif de commande de verrouillage fonctionne presque comme ci-dessus. Les seules exceptions sont que le dispositif de commande de verrouillage du cache local (figure 3) enregistre une adresse de verrouillage dans l'un des registres d'adresses de verrouillage 1 et 2, valide un bit de validation correspondant, et enregistre un numéro de processeur (par exemple le numéro du processeur délivrant la demande de verrouillage) dans l'un des registres de numéros de processeur correspondant 9 et 10. En se référant à la figure 6, la colonne la plus à gauche représente un état de verrouillage du cache local, la colonne centrale représente un état de verrouillage des caches différents du cache local, et la colonne la plus à droite représente l'action effectuée pour une demande SETLS. Selon la figure 6, lorsque l'état de la variable de verrouillage du cache local est "ULS", et que l'état de verrouillage des caches différent du cache local est "ULS", l'état de la variable de verrouillage du cache local devient "LCK", et l'état de la variable de verrouillage des caches différents du cache local reste "ULS". En se référant à la figure 7, la colonne de gauche représente un état de verrouillage du cache local, et la colonne de droite représente l'action effectuée pour une demande DEVERROUILLAGE. Selon la figure 7, lorsque l'état de la variable de verrouillage du cache local est "LCK", l'état de la variable de verrouillage du cache local devient "ULS". Si l'état de la variable de verrouillage du cache local est "ULS", ou s'il n'y a pas d'entrée, alors, aucune action n'est effectuée pour la demande DEVERROUILLAGE, car aucun verrouillage destiné à être "déverrouillé" n'existe. En se référant à la figure 8, le fonctionnement du dispositif de commande de verrouillage selon le premier mode de réalisation est décrit ci-dessous. En supposant d'abord que tous les états des variables de verrouillage sont "ULS", lorsque le processeur 201 délivre une demande VERROUILLAGE, le dispositif de commande de verrouillage retourne un signal "verrouillage réussi". Par cette demande VERROUILLAGE, l'état de la variable de verrouillage du cache secondaire 205 est modifié en "LCK" (figure 5). Puis, lorsque le processeur 201 délivre une demande SETLS, l'état de la variable de verrouillage du cache secondaire 206 est modifié en "LCK" (figure 6). Puis, le processeur 201 peut accéder à une zone partagée dans la mémoire principale 211. Après l'accès, lorsque le processeur 201 délivre une demande DEVERROUILLAGE, les états des variables de verrouillage des caches secondaires 205 et 206 est modifié en "ULS" (figure 7). Comme cela apparaît d'après la description cidessus, selon le premier mode de réalisation de la présente invention, puisque les états des variables de verrouillage des caches secondaires de toutes les banques sont positionnés à "LCK" par la demande SETLS, le temps requis pour accéder à une zone partagée est réduit. Ci-dessous, et en référence aux figures 9 a 13, le fonctionnement du dispositif de commande de verrouillage selon le deuxième mode de réalisation de la présente invention va être décrit. Le deuxième mode de réalisation est similaire au premier mode de réalisation, mais il comporte en outre un état "ULE" pour la variable de verrouillage. En se référant à la figure 9, la variable de verrouillage à un état "LCK", "ULS" ou "ULE". "ULE" indique que l'état de verrouillage d'un processeur connecté à ce cache secondaire est l'état "déverrouillé", et que l'état de verrouillage des autres processeurs est également l'état "déverrouillé". En se référant à la figure 10, de façon similaire à la figure 5, la colonne la plus à gauche représente l'état de verrouillage du cache local, la colonne centrale représente l'état de verrouillage des caches différents du cache local, et la colonne la plus à droite représente l'action effectuée pour une demande VERROUILLAGE. Selon la figure 10, lorsque l'état de la variable de verrouillage du cache local est "ULE", le dispositif de commande de verrouillage retourne un signal de "verrouillage réussi", sans vérifier les autres caches secondaires. En se référant à la figure 11, de façon similaire à la figure 6, la colonne la plus à gauche représente l'état de verrouillage du cache local, la colonne centrale représente l'état de verrouillage des caches différents du cache local, et la colonne la plus à droite représente l'action effectuée pour une demande SETLS. Selon la figure 11, lorsque l'état de la variable de verrouillage du cache local est "ULE", l'état de la variable de verrouillage du cache local devient "LCK", sans vérifier les autres caches secondaires. En se référant à la figure 12, de façon similaire à la figure 7, la colonne de gauche représente l'état de verrouillage du cache local, et la colonne de droite représente l'action effectuée pour une demande DEVERROUILLAGE. Selon la figure 12, lorsque l'état de la variable de verrouillage du cache local est "LCK", l'état de la variable de verrouillage du cache local devient "ULE", à l'apparition d'une demande DEVERROUILLAGE, et non "ULS", comme dans le premier mode de réalisation (par exemple, figure 7). En se référant à la figure 13, le dispositif de commande de verrouillage selon le deuxième mode de réalisation est décrit ci-dessous. Supposons d'abord que tous les états des variables de verrouillage sont "ULS", lorsque le processeur 201 délivre une demande VERROUILLAGE, le dispositif de commande de verrouillage retourne un signal de "verrouillage réussi". Par cette demande VERROUILLAGE, l'état de la variable de verrouillage du cache secondaire 205 est modifié en "LCK", et l'état de la variable de verrouillage du cache secondaire 206 est modifié en "ULE" (figure 10). Puis, lorsque le processeur 201 délivre une demande SETLS, l'état de la variable de verrouillage du cache secondaire 206 est modifié en "LCK", sans vérifier l'état de la variable de verrouillage du cache secondaire 208 (figure 11). Puis, le processeur 201 peut accéder à une zone partagée de la mémoire principale 211. Après l'accès, lorsque le processeur 201 délivre une demande DEVERROUILLAGE, les états des variables de verrouillage des caches secondaires 205 et 206 sont modifiés en "ULE" (figure 12). Après cela, lorsque le processeur 201 délivre une demande VERROUILLAGE suivante, le dispositif de commande de verrouillage retourne un signal de "verrouillage réussi", sans vérifier l'état de la variable de verrouillage des caches secondaires 207 et 208 (figure 10). Comme cela apparaît d'après la description cidessus, selon le deuxième mode de réalisation de la présente invention, puisque l'état "ULE" de la variable de verrouillage assure que les autres processeurs n'acquièrent aucun verrouillage, le temps requis pour accéder à une zone partagée est réduit encore davantage que dans le premier mode de réalisation de la présente invention. Ci-dessous, et en référence aux figures 14 à 18, le fonctionnement du dispositif de commande de verrouillage selon le troisième mode de réalisation de la présente invention va être décrit. Le troisième mode de réalisation de la présente invention est similaire au deuxième mode de réalisation, mais il comporte en outre un état "ULL" pour la variable de verrouillage. En se référant à la figure 14, la variable de verrouillage a un état "LCK", "ULS", "ULE" ou "ULL". "ULL" indique que l'état de verrouillage d'un processeur connecté au cache secondaire est l'état "déverrouillé", et que l'état de verrouillage d'un autre processeur est l'état "verrouillé". En se référant à la figure 15, de façon similaire à la figure 5, la colonne la plus à gauche représente l'état de verrouillage du cache local, la colonne centrale représente l'état de verrouillage des caches différents du cache local, et la colonne la plus à droite représente l'action effectuée pour une demande VERROUILLAGE. Selon la figure 15, lorsque l'état de la variable de verrouillage du cache local est "ULL", le dispositif de commande de verrouillage retourne un signal de "défaut de verrouillage" sans vérifier les autres caches secondaires. En se référant à la figure 16, de façon similaire à la figure 6, la colonne la plus à gauche représente l'état de verrouillage du cache local, la colonne centrale représente l'état de verrouillage des caches différents du cache local, et la colonne la plus à droite représente l'action effectuée pour une demande SETLS. Selon la figure 16, lorsque l'état de la variable de verrouillage du cache local est "ULL", la demande SETLS n'est pas délivrée, car "ULL" signifie qu'un autre processeur a acquis un verrouillage. En se référant à la figure 17, de façon similaire à la figure 7, la colonne de gauche représente l'état de verrouillage du cache local, et la colonne de droite représente l'action effectuée pour une demande DEVERROUILLAGE. Selon la figure 17, lorsque l'état de la variable de verrouillage d'un cache différent du cache local est "ULL", l'état de la variable de verrouillage d'un cache différent du cache local devient "ULS", car l'état de la variable de verrouillage du cache local est modifié de "ULE" à "LCK". En se référant à la figure 18, le fonctionnement du dispositif de commande de verrouillage selon le troisième mode de réalisation est décrit ci-dessous. En supposant d'abord que les états des variables de verrouillage du cache secondaire 205, 206, 207 et 208 respectivement "ULE", "ULE", "ULS" et "ULS", lorsque le processeur 201 délivre une demande VERROUILLAGE, le dispositif de commande de verrouillage retourne un signal de "verrouillage réussi", sans vérifier l'état de la variable de verrouillage des caches secondaires 207 et 208 (figure 15). Par cette demande de VERROUILLAGE, l'état de la variable de verrouillage du cache secondaire 205 est modifié en "LCK" (figure 15). Puis, lorsque le processeur 201 délivre une demande SETLS, l'état de la variable de verrouillage du cache secondaire 206 est modifié en "LCK", sans vérifier l'état de la variable de verrouillage du cache secondaire 208 (figure 16). Puis, le processeur 201 peut accéder à une zone partagée de la mémoire principale 211. Dans cet état, lorsque le processeur 203 délivre une demande VERROUILLAGE, le dispositif de commande de verrouillage retourne un signal de "défaut de verrouillage" (figure 15). Par cette demande VERROUILLAGE, les états des variables de verrouillage des caches secondaires 207 et 208 sont modifiés en "ULL" (figure 15). Après cela, lorsque les processeurs 203 et 204 délivrent une demande VERROUILLAGE, le dispositif de commande de verrouillage retourne un signal de "défaut de verrouillage", sans vérifier les autres caches secondaires (figure 15). Lorsque le processeur 201 délivre une demande DEVERROUILLAGE, les états des variables de verrouillage des caches secondaires 205 et 206 sont modifiés en "ULE", et les états des variables de verrouillage des caches secondaires 207 et 208 sont modifiés en "ULS" (figure 17). Comme cela apparaît d'après la description précédente, selon le troisième mode de réalisation de la présente invention, puisque l'état "ULL" de la variable de verrouillage assure qu'un autre processeur acquiert un verrouillage, le temps requis pour accéder à une zone partagée est réduit encore davantage que dans le deuxième mode de réalisation de la présente invention. Bien que l'invention ait été décrite en terme de plusieurs modes de réalisation préférés, les hommes de l'art comprendront que l'invention puisse être mise en pratique sans modification, dans l'esprit et la portée des revendications annexées. REVENDICATIONS 1. Dispositif de commande de verrouillage dans un système multiprocesseur à mémoire partagé, comportant une pluralité de processeurs et une pluralité de banques de mémoires, chacune parmi ladite pluralité de banques de mémoires comportant une pluralité de mémoires cache, caractérisé en ce qu'il comprend des moyens pour stocker un état de variable de verrouillage par rapport à chaque processeur et chaque banque de mémoires dudit système multiprocesseur ; et des moyens pour commander ledit état de variable de verrouillage stocké dans lesdits moyens de stockage, dans lequel, lorsque ledit état de variable de verrouillage par rapport à une banque de mémoires indique un état d'acquisition de verrouillage, lesdits moyens de commande positionnent ledit état de variable de verrouillage dans toutes les autres banques de ladite pluralité de banques de mémoires, dans l'état d'acquisition de verrouillage. 2. Dispositif de commande de verrouillage selon la revendication 1, caractérisé en ce qu'il comprend en outre des moyens pour juger si l'état de la variable de verrouillage stocké dans lesdits moyens de stockage, par rapport à ladite banque de mémoires, indique l'état d'acquisition de verrouillage. 3. Dispositif de commande de verrouillage selon la revendication 2, caractérisé en ce que ledit état de variable de verrouillage comporte: un premier état pour indiquer qu'une mémoire cache associée au dispositif de commande de verrouillage a acquis un verrouillage, et que les autres mémoires cache de ladite pluralité de mémoires cache n'a pas acquis de verrouillage, et un deuxième état pour indiquer que ladite mémoire cache associée au dispositif de commande de verrouillage (25) n'a pas acquis ledit verrouillage, et qu'il n'est pas certain que lesdites autres mémoires cache de ladite pluralité de mémoires cache aient acquis ledit verrouillage. 4. Dispositif de commande de verrouillage selon la revendication 3, caractérisé en ce que ledit état de variable de verrouillage comporte en outre un troisième état pour indiquer qu'aucune parmi ladite pluralité de mémoires cache n'a acquis ledit verrouillage. 5. Dispositif de commande de verrouillage selon la revendication 4, caractérisé en ce que ledit état de variable de verrouillage comporte en outre un quatrième état pour indiquer que ladite mémoire cache associée audit dispositif de commande de verrouillage (25) n'a pas acquis ledit verrouillage, et que l'une desdites autres mémoires cache de ladite pluralité de mémoires cache a acquis ledit verrouillage. 6. Dispositif de commande de verrouillage dans un système multiprocesseur à mémoire partagée, ayant une pluralité de mémoires cache, ledit dispositif de commande de verrouillage (25) fourni correspondant à chaque mémoire cache qui est connectée entre un processeur et une mémoire partagée, caractérisé en ce que ledit dispositif de commande de verrouillage (25) comprend un registre d'état de verrouillage (5) pour stocker un état d'une variable de verrouillage un registre d'adresses de verrouillage (1) pour stocker une adresse de la variable de verrouillage un circuit de décision pour juger si ledit état stocké dans ledit registre d'état de verrouillage (5) indique un état d'acquisition de verrouillage ; et un contrôleur pour contrôler ledit état, dans lequel, lorsque ledit circuit de décision juge que ledit état dans une banque de mémoires indique l'état d'acquisition de verrouillage, ledit contrôleur positionne ledit état dans les autres banques de la pluralité de banques de mémoires, dans l'état d'acquisition de verrouillage. 7. Dispositif de commande de verrouillage selon la revendication 6, caractérisé en ce qu'il comprend en outre: un registre de numéros de processeur, pour stocker un numéro d'un processeur qui a délivré une demande de verrouillage correspondant audit état de ladite variable de verrouillage ; et un comparateur (11) pour comparer le numéro de processeur stocké dans ledit registre de numéros de processeur, à un numéro de processeur qui délivre ladite demande de verrouillage. 8. Dispositif de commande de verrouillage selon la revendication 7, caractérisé en ce que ledit état de variable de verrouillage comporte un premier état pour indiquer qu'une mémoire cache associée au dispositif de commande de verrouillage (25) a acquis un verrouillage, et que les autres mémoires cache de ladite pluralité de mémoires cache n'ont pas acquis de verrouillage, et un deuxième état pour indiquer que la mémoire cache associée au dispositif de commande de verrouillage (25) n'a pas acquis ledit verrouillage, et qu'il n'est pas certain que les autres mémoires cache de ladite pluralité de mémoires cache aient acquis ledit verrouillage. 9. Dispositif de commande de verrouillage selon la revendication 8, caractérisé en ce que ledit contrôleur retourne une information de verrouillage réussi, lorsque ledit registre d'état de verrouillage (5) contient le premier état, et que ledit comparateur (11) détecte la coïncidence entre le numéro de processeur stocké dans ledit registre de numéros de processeur, et un numéro dudit processeur qui délivre ladite demande de verrouillage, et dans lequel ledit contrôleur retourne une information de défaut de verrouillage, lorsque ledit registre d'état de verrouillage (5) contient le premier état, et que ledit comparateur (11) ne détecte pas de coïncidence entre le numéro de processeur stocké dans ledit registre de numéros de processeur et ledit numéro dudit processeur qui délivre ladite demande de verrouillage. 10. Dispositif de commande de verrouillage selon la revendication 8, caractérisé en ce que ledit état de variable de verrouillage comporte en outre un troisième état pour indiquer qu'aucune parmi ladite pluralité de mémoires cache n'a acquis ledit verrouillage. 11. Dispositif de commande de verrouillage selon la revendication 10, caractérisé en ce que ledit contrôleur positionne le troisième état au premier état, sans vérifier un état dans une mémoire cache associée à un autre dispositif de commande de verrouillage (25), lorsque le processeur délivre ladite demande de verrouillage. 12. Dispositif de commande de verrouillage selon la revendication 10, caractérisé en ce que ledit état de variable de verrouillage comporte en outre un quatrième état pour indiquer que ladite mémoire cache associée audit dispositif de commande de verrouillage (25) n'a pas acquis ledit verrouillage, et que l'une desdites autres mémoires cache de ladite pluralité de mémoires cache a acquis ledit verrouillage. 13. Dispositif de commande de verrouillage selon la revendication 12, caractérisé en ce que ledit contrôleur positionne le deuxième état au quatrième état, lorsque le processeur délivre ladite demande de verrouillage. 14. Dispositif de commande de verrouillage selon la revendication 12, caractérisé en ce que ledit contrôleur retourne une information de défaut de verrouillage, sans vérifier un état dans une mémoire cache associée à un autre dispositif de commande de verrouillage (25), lorsque le processeur délivre ladite demande de verrouillage. 15. Système multiprocesseur, caractérisé en ce qu'il comprend une pluralité de processeurs ; une mémoire principale divisée en banques ; et une pluralité de mémoires cache fournies de façon correspondant à un groupe desdits processeurs et de chacune desdites banques, dans lequel chacune desdites mémoires cache comporte un dispositif de commande de verrouillage (25), ledit dispositif de commande de verrouillage (25) comprenant un registre d'état de verrouillage (5) pour stocker un état d'une variable de verrouillage un registre d'adresses de verrouillage (1) pour stocker une adresse de la variable de verrouillage un circuit de décision pour juger si ledit état stocké dans ledit registre d'état de verrouillage (5) indique un état d'acquisition de verrouillage ; et un contrôleur pour contrôler ledit état, dans lequel, lorsque ledit circuit de décision juge que ledit état d'une banque indique l'état d'acquisition de verrouillage, ledit contrôleur positionne ledit état dans les autres banques, à l'état d'acquisition de verrouillage. 16. Dispositif de commande de verrouillage selon la revendication 15, caractérisé en ce que ledit état de variable de verrouillage comporte: un premier état pour indiquer qu'une mémoire cache associée au dispositif de commande de verrouillage a acquis un verrouillage, et que les autres mémoires cache de ladite pluralité de mémoires cache n'ont pas acquis ledit verrouillage, et un deuxième état pour indiquer que ladite mémoire cache associée au dispositif de commande de verrouillage (25) n'a pas acquis ledit verrouillage, et qu'il n'est pas certain que lesdites autres mémoires cache de ladite pluralité de mémoires cache aient acquis ledit verrouillage. 17. Dispositif de commande de verrouillage selon la revendication 16, caractérisé en ce que ledit état de variable de verrouillage comporte en outre un troisième état pour indiquer qu'aucune parmi ladite pluralité de mémoires cache n'a acquis ledit verrouillage. 18. Dispositif de commande de verrouillage selon la revendication 17, caractérisé en ce que ledit état de variable de verrouillage comporte en outre un quatrième état pour indiquer que ladite mémoire cache associée au dispositif de commande de verrouillage (25) n'a pas acquis ledit verrouillage, et que l'une desdites autres mémoires cache de ladite pluralité de mémoires cache a acquis ledit verrouillage. 19. Procédé de commande de verrouillage dans un système multiprocesseur à mémoire partagée, comprenant une pluralité de banques de mémoires, caractérisé en ce que ledit procédé comprend les étapes de acquisition d'un verrouillage par rapport à une banque de mémoires de ladite pluralité de banques de mémoires ; positionnement d'un état d'acquisition de verrouillage par rapport aux autres banques de mémoires de ladite pluralité de banques de mémoires accès à une mémoire partagée de ladite banque de mémoires ; et libération du verrouillage acquis. 20. Procédé de commande de verrouillage selon la revendication 19, caractérisé en ce que ledit verrouillage comporte un parmi une pluralité d'états, ladite pluralité d'états comportant: un premier état pour indiquer qu'un processeur a acquis ledit verrouillage, et que les autres processeurs parmi une pluralité de processeurs n'ont pas acquis ledit verrouillage un deuxième état pour indiquer que ledit processeur n'a pas acquis ledit verrouillage, et qu'il n'est pas certain que les autres processeurs aient acquis le verrouillage ; un troisième état pour indiquer qu'aucun parmi ladite pluralité de processeurs n'a acquis le verrouillage ; et un quatrième état pour indiquer que ledit processeur n'a pas acquis le verrouillage, et que l'un des autres parmi ladite pluralité de processeurs a acquis le verrouillage, dans lequel, dans ladite étape d'acquisition de verrouillage, le troisième état est positionné dans le premier état, sans vérifier l'état d'un autre processeur lorsque le processeur délivre une demande de verrouillage. 21. Procédé de commande de verrouillage selon la revendication 20, caractérisé en ce que dans ladite étape d'acquisition de verrouillage, le deuxième état est positionné dans le quatrième état, lorsque le processeur délivre ladite demande de verrouillage, et que la demande d'acquisition de verrouillage échoue sans vérifier l'état dans lesdits autres processeurs lorsque le processeur délivre une demande de verrouillage suivante.