FR2720531A1 - Commande de verrouillage pour système de traitement de données. - Google Patents

Commande de verrouillage pour système de traitement de données. Download PDF

Info

Publication number
FR2720531A1
FR2720531A1 FR9506115A FR9506115A FR2720531A1 FR 2720531 A1 FR2720531 A1 FR 2720531A1 FR 9506115 A FR9506115 A FR 9506115A FR 9506115 A FR9506115 A FR 9506115A FR 2720531 A1 FR2720531 A1 FR 2720531A1
Authority
FR
France
Prior art keywords
lock
state
locking
variable
states
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9506115A
Other languages
English (en)
Other versions
FR2720531B1 (fr
Inventor
Kazuya Matsumoto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of FR2720531A1 publication Critical patent/FR2720531A1/fr
Application granted granted Critical
Publication of FR2720531B1 publication Critical patent/FR2720531B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Commande de verrouillage pour chaque unité de traitement de données (201 à 204) exécutée, sur la base d'un état d'une variable de verrouillage, par une unité de commande de demande de verrouillage d'une unité formant cache reliée à l'unité de traitement de données (201 à 204). A réception d'une demande de verrouillage ou de déverrouillage, l'unité de commande (8) indexe un registre d'adresse de verrouillage (1; 2) maintenant une adresse de la variable et se réfère à un état d'un verrouillage mémorisé dans un registre d'état de verrouillage correspondant (5; 6). Différents états sont définis pour une variable, en plus d'indiquer que chaque unité de commande est dans un état de verrouillage ou de déverrouillage. Un symbole ULE indique l'état où aucune obtention d'un verrouillage n'est confirmée. Ainsi, l'obtention de verrouillage s'effectue à haute vitesse, sans confirmation des états des autres unités de commande autres que l'unité de commande.

Description

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.

Claims (6)

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.
FR9506115A 1994-05-25 1995-05-23 Commande de verrouillage pour système de traitement de données. Expired - Fee Related FR2720531B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11085094 1994-05-25

Publications (2)

Publication Number Publication Date
FR2720531A1 true FR2720531A1 (fr) 1995-12-01
FR2720531B1 FR2720531B1 (fr) 1997-10-03

Family

ID=14546249

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9506115A Expired - Fee Related FR2720531B1 (fr) 1994-05-25 1995-05-23 Commande de verrouillage pour système de traitement de données.

Country Status (2)

Country Link
US (2) US5721870A (fr)
FR (1) FR2720531B1 (fr)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968157A (en) * 1997-01-23 1999-10-19 Sun Microsystems, Inc. Locking of computer resources
US6108757A (en) * 1997-02-28 2000-08-22 Lucent Technologies Inc. Method for locking a shared resource in multiprocessor system
US6173375B1 (en) * 1997-02-28 2001-01-09 Lucent Technologies Inc. Method for accessing a shared resource in a multiprocessor system
US6148300A (en) * 1998-06-19 2000-11-14 Sun Microsystems, Inc. Hybrid queue and backoff computer resource lock featuring different spin speeds corresponding to multiple-states
US6347364B1 (en) * 1998-11-20 2002-02-12 International Business Machines Corp. Schedulable dynamic memory pinning
US6230230B1 (en) * 1998-12-03 2001-05-08 Sun Microsystems, Inc. Elimination of traps and atomics in thread synchronization
US6726726B2 (en) * 1999-06-03 2004-04-27 Otto Bock Healthcare Lp Vacuum apparatus and method for managing residual limb volume in an artificial limb
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6668317B1 (en) * 1999-08-31 2003-12-23 Intel Corporation Microengine for parallel processor architecture
US6606704B1 (en) * 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6427196B1 (en) 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
WO2001016702A1 (fr) 1999-09-01 2001-03-08 Intel Corporation Ensemble de registres utilise dans une architecture de processeurs multifiliere paralleles
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6631430B1 (en) * 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6661794B1 (en) * 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6976095B1 (en) 1999-12-30 2005-12-13 Intel Corporation Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch
US6584522B1 (en) * 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6631462B1 (en) * 2000-01-05 2003-10-07 Intel Corporation Memory shared between processing threads
US7640315B1 (en) 2000-08-04 2009-12-29 Advanced Micro Devices, Inc. Implementing locks in a distributed processing system
US7681018B2 (en) * 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US6986003B1 (en) 2001-08-09 2006-01-10 Unisys Corporation Method for processing communal locks
US6922744B1 (en) 2001-08-09 2005-07-26 Unisys Corporation Communal lock processing system for multiprocessor computer system
US6810464B1 (en) 2001-08-09 2004-10-26 Unisys Corporation Multiprocessor computer system for processing communal locks employing mid-level caches
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7126952B2 (en) * 2001-09-28 2006-10-24 Intel Corporation Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method
US7158964B2 (en) * 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US6934951B2 (en) * 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US7181594B2 (en) * 2002-01-25 2007-02-20 Intel Corporation Context pipelines
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7149226B2 (en) 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7471688B2 (en) * 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7337275B2 (en) 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7433307B2 (en) * 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
GB0409326D0 (en) * 2004-04-27 2004-06-02 Ibm Locker manager for managing access to shared resources
US7454570B2 (en) * 2004-12-07 2008-11-18 International Business Machines Corporation Efficient memory update process for on-the-fly instruction translation for well behaved applications executing on a weakly-ordered processor
US7861093B2 (en) * 2006-08-30 2010-12-28 International Business Machines Corporation Managing data access via a loop only if changed locking facility
US8365008B2 (en) * 2010-10-13 2013-01-29 International Business Machines Corporation Providing unsolicited global disconnect requests to users of storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1989006011A1 (fr) * 1987-12-18 1989-06-29 Digital Equipment Corporation Gestion de l'enchevetrement d'adresses
EP0384102A2 (fr) * 1989-02-22 1990-08-29 International Business Machines Corporation Mémoire cache de système multiprocesseur à structure de blocs de grande granularité et réservation exclusive desdits blocs
US5289588A (en) * 1990-04-24 1994-02-22 Advanced Micro Devices, Inc. Interlock acquisition for critical code section execution in a shared memory common-bus individually cached multiprocessor system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0760422B2 (ja) * 1983-12-30 1995-06-28 株式会社日立製作所 記憶ロツク方式
US4984153A (en) * 1988-04-27 1991-01-08 Unisys Corporation Storage locking control for a plurality of processors which share a common storage unit
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1989006011A1 (fr) * 1987-12-18 1989-06-29 Digital Equipment Corporation Gestion de l'enchevetrement d'adresses
EP0384102A2 (fr) * 1989-02-22 1990-08-29 International Business Machines Corporation Mémoire cache de système multiprocesseur à structure de blocs de grande granularité et réservation exclusive desdits blocs
US5289588A (en) * 1990-04-24 1994-02-22 Advanced Micro Devices, Inc. Interlock acquisition for critical code section execution in a shared memory common-bus individually cached multiprocessor system

Also Published As

Publication number Publication date
US5721870A (en) 1998-02-24
FR2720531B1 (fr) 1997-10-03
US5875485A (en) 1999-02-23

Similar Documents

Publication Publication Date Title
FR2720531A1 (fr) Commande de verrouillage pour système de traitement de données.
EP0032863B1 (fr) Procédé et dispositif pour gérer les conflits posés par des accès multiples à un même cache d'un système de traitement numérique de l'information comprenant au moins deux processeurs possédant chacun un cache
EP1233342B1 (fr) Contrôleur de cohérence pour ensemble multiprocesseur, module et ensemble multiprocesseur à architecture multimodule intégrant un tel contrôleur
EP0434483B1 (fr) Processeur à plusieurs unités de traitement microprogrammées
FR2624994A1 (fr) Systeme de commande de registre intermediaire de traduction
EP0351955B1 (fr) Systèmes multiprocesseurs à antémémoires du type à écriture immédiate soumises à interrogation croisée
EP3129874B1 (fr) Systeme de calcul distribue mettant en oeuvre une memoire transactionnelle materielle de type non-speculatif et son procede d'utilisation pour le calcul distribue
FR2677472A1 (fr) Unite de controle pour memoire cache de second niveau.
EP0059018A1 (fr) Multiprocesseur avec affectation dynamique des tâches en multitraitement et son utilisation
CH629319A5 (fr) Installation de traitement de donnees.
FR2528195A1 (fr) Systeme de communication entre ordinateurs
FR2643993A1 (fr) Procede pour remplacer des modules memoire dans un systeme informatique et systeme informatique pour la mise en oeuvre du procede
EP0837396B1 (fr) Opération atomique sur mémoire distante et dispositif permettant d'effectuer cette opération
EP1607878B1 (fr) Procédé de traitement d'une adresse virtuelle pour la programmation d'un contrôleur de DMA, système sur puce et programme d'ordinateur associés
EP0033264A1 (fr) Procédé et dispositif d'arbitrage des conflits d'accès entre une requête asynchrone et un programme en section critique
FR3103584A1 (fr) Procédé de gestion du débogage d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
EP0435718B1 (fr) Processeur à plusieurs unités microprogrammées avec mécanisme d'exécution anticipée des instructions
EP2666092B1 (fr) Systeme multi-coeurs et procede de coherence de donnees
FR2808902A1 (fr) Systeme de pre-extraction speculative de donnees dans un systeme de processeur d'execution non ordonnee d'instructions
FR2733067A1 (fr) Dispositif et procede de commande de verrouillage
EP0344052B1 (fr) Mémoire modulaire
US20200356420A1 (en) Executing an atomic primitive in a multi-core processor system
JP2826483B2 (ja) ロック制御装置
FR2765004A1 (fr) Systeme d'antememoire capable de conserver une coherence antememoire parmi les antememoires de stockage de deux unites de traitement centrales lors d'un conflit de stockage
EP1341093B1 (fr) Accès à une ressource collective

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20060131