Brevet FR3086426A1 — publié le 20200327

B17302 - 0018785ST DESCRIPTION TITRE : GESTIONNAIRE DE VERROUS POUR. ARCHITECTURES MULTICOEURS Domaine technique [0001] La présente description concerne de façon générale le domaine des architectures informatiques multicoe, et en particulier un circuit et un procédé pour gérer des verrous. Technique antérieure [00021 Dans le domaine de l'informatique, un. verrou. ou mutex (exclu.sion mutuelle) est un. mécanisme dp synchronisation qui limite l'accès à une ressouxce, par exemple l'accès à une ou. plusieurs adresses dans une mémnire. De tels verrous sent utilises lorsqu'il y a de multiples fils d'exécution qui sont exécutés en parallèle sur la base de données partagées, risquaht un fonctionnement non correct si aucune exclusion. mutuelle e'titre le5 accès mémoire n'est ii.aosee. Un verrou. ça ..lrntit qu'un. seul et unique fil de traitement possède des droits d'accès = id ressource à un instant donné. [0003] On a besoin d'un système pour gérer les verrous, y compris la création de verrous, et gérant les demandes provenant. de processeurs pour la propriété d' un verrou. Lorsque le nombre de processeurs augmente dans une architecture mudticoeur, la complexité de la. gestion des verrous augmente aussi. En effet, en. général plus le nombre de processeurs est Grand, plus le nombre de taches qui doivent être exécutées en parallèle est grand, et plus le nombre de verrous qu'il raui. générer et gérer est. grand. [0004] Dans des architectures pu1ticseur, les communications entre les processeurs ou. les CPU (unités de traitement centrales) sont en général réalisées par l'intermédiaire d'un réseau sur puce (NoC) dans lequel des canaux sent prévus entre les processeurs. La gestion de verrous dans une architecture multicoeur augmente le nombre de messages à émettre sur le NoC, 2 B17302 - D018785ST ce qui conduit à une augmentation de la charge dans les communications, ce qui peut à son tour conduire à des délais de communication. [0005] Il y e un problème technigtie pour. obtenir un procédé et un circu.- t de gestion de verrous dans une architecture multicoeur qui conduisent à une réduction de la charge des communications. [0006] En outre, il y a un , °blême technique pour fournil une solution qui soit bien extensible, en d'autres termes dans laquelle la charge des communications augmente de manière relativement linéaire lorsque le nombre de coeurs de processeurs augmente. Résumé de l'invention [0007] Des modes de réalisation de l- p présente description. répondent_ à un ou plusieurs besoins de t antérieur. [0008i Séion un mode de réalisation, on prévoit une architecture multicoer compienant une pluralité de dispositifs de traitement, chaque dispositif de traitement comprenant un seul processeur ou une grappe de processeurs ; et un gestionnaire H verrous associé à chaque dispositif de traitement, chaque gestionnaire de verrous étant agencé peur mémoriser une première valeur de données indiquant s'il possède ou non actuellement un premier verrou, le premier verrou autorisant l'accès à une ressource ; et permettre qu'un propriétaire du premier verrou soit déterminé par un ou p LU S ors apstionnatres de verrou _ en diffusant., sur un réseau d'intercornexicns vers chacun. des autres. gestionnaires de verrous, au moins un message. [0009] Selon un mode de réalisation, le diffusion de messages vers chacun des autres gestionnaires de verrous est soit. un. message indiquant que la propriété du premler verrou. s'est déplacée ou va se déplacer vers un autre dispositif d B17302 -- D018785ST traitement ; soit un -ce ,sage demandant. la. propriété du premier verrou_ [0010] Selon un mode de réalisation, chaque gestionnaire de verr us comprend un circuit gestionnaire de verrous comprenant un circuit logique mettant en oeuvre une machine états finis. [0011] Set° un mode de r ai1isütion, chaque gestionnaire de verrous comprend en outre une mémoire mémorisant une table ayant une entrée associée au premier verrou, l'entrée comprenant la première valeur de données. [0012] Selon un mode de réalisation, chaque gestionnaire de verrous est partiellement mis en oeuvre par un ou plusieurs modulés logiciels assurant une interface entre une application d'utilisateur et le c rcuit gestionnaire errous. [0013] Selon un mode de réalisation, le réseau d'inter-- connexions est un réseau sur puce. [0014] Selon un mode de réalisation, le réseau d'inter- connexions est un maillage 2h mettant en oeuvre un premier routage de messages en x. [0015] Selon un mode de réalisation, les gestionnaires de verrous sont agencés pour transmettre des messages entre sur le réseau d'interconnexions sur au. moins trois canaux séparés. [0016] Selon un mode réalisation, au moins l'un de a pluralité de dispositifs dP traitement 2st une grappe de deux ou plusieuxs processeurs partageant l'un. des gestionnaires de verrous. [0017] ScLon un mode de réalisatio , chaque gestionnaire de verrous est agencé pour émettre sur le réseau d'interconnexions certains ou la totalité des messages suivants vers un ou plusieurs autres gestionnaires de verrous : un message 4 B17302- 0018785ST diffusé de lancement de verrou ; un. message d'accusé de réception de lancement de verrou ; un message de suppression. Cie verrou ; un message de demande de verrou ou un message diffusé de demande verrou ; un message d'accusé de réception de demande de verrou accusant réception du. message de demande de verrou ; um. message de déplacement de verrou indlquant le moment où un verrou s'est déplacé ou va être déplacé vers un autre gestionnaire de verrous ; un message d'accusé de réception. de déplacement de verrou accusant réception du. message de déplacement de verrou ; un message de refus de verrou indiquant qu'un verrou esten cours d'utilisation et ne peut pas êLre transféré ; et un message de verrou déplacé indiquant que la responsabilité d'un verrou a été entièrement transférée d'un gestionnaire de verrous un autre gestionnaire de verrous. [0016] Selon un mode de réalisation, les gestionnaires de verrous sont agencés pour mémoriser une liste d'attente distribuée pour la propriété d'un. verrou. [0019] Selon un mode de réalisation, un fil de traitement exécuté par un premier des dispositifs de traitement est seulement autorisé à modifier un verrou lorsqu'il est la propriété cim gestionnaire de verrous associé au premier dispositif de traitement. [0020] Selon un autre aspect, prévoit un procédé de gestion dP verrous dans une archilecture millticoeur comprenant une pluralité de dispositifs de traitement, chaque dispositif de traitement comprenant un seul processeur ou une grappe de processeurs, le procédé comprenant mémoriser, par un gestionnaire de verrous associé à chaque dispositif de traitement, une première valeur de données indiquant si le gestionnaire de verrous possède ou non actuellement un premier verrou, le premier verrou autorisant l'accès A une ressource ; et diffuser, par un gestionnaire de verrous sur un. réseau B17302 - D018785ST d'interconnexions ver s chacun des autres oertionnaires de verrous, au moins un. message permettant un opriétaire courant du premier verrou d'être identifié. [0021] Selo un mode de réalisation, la diffusion de messags vers chacun des autres gestionnaires de verrous est : soit un. message indiquant que la propriété du premier verrou s'est déplacée ou. va se déplacer vers un autre dispositif de traitemer - soit un. message demandant la propriété du premier verrou. [0022] Sel= un mode de réalisation, IP procédé comprend en outre : lancer un nouveau verrou par un premier des qestionmaires de verrous ; et diffuser, par ie premier ces-Hionflire de verrous, un message de lancement de verrou vers chacun (es autres gestionnaires de verro'rs les informant du lancement du nouveau verrou. Brève description des dessina [0023] Ces caractéristiaues et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation. avec les fHgures jointes parmi lesquelles [0024] [Fig. 1] La. figure 1 représente schématiquement une architPctirre informatique m lticoeur selon un exemple de réalisation ; [0025] [Fig. 2] La figure 2 représente schématiquement une grappe de 1`architecture informatigpe de la. figure 1 plus en. détail selon un exempde de réalisation ; [00261 [Fig. La figure 3 représente un système de gestion de verrous qui_ a été proposé [Fig. La figure 4 est un schéma reprerentant des communications de gestion de verrous dans une architecture multicoeur selon un procédé qui a été proposé 6 617302 - 0018785ST [0028] [Fig. 51 La figure 5 représente un. gestionnaire de verrous selon un exemple de réalisation. de la présente description ; [00291 fu 61 La fHgure 6 représente une entrée dans une table de verrous mémorisée par le gestionnaire de verrous de la figure 5 selon un exemple de réalisation de la présente description ; [0030] [Fig. 7] Ta fsure. 7 est un schéma représentant an exemple de communications de gestion de verrous dans une architecture multicoeur selon un exemple de réalisation de la présente description ; [0031] [Fig. 8] La figure $ est un schéma représentant un premier exemple de la transmission de messages entre des gestionnaires de verrous selon un exemple de réalisation de ia présente description [00321 [Fig. 9] La figure 9 est un schéma représentait un deuxième exemple de la transmission de messages entre des (9-,ei'onnaires de verrous selon un exemple de réalisation de présente description ; [0033] [Fig. 10] La figure 10 est un schéma représe]Ltant un troisième exemple de la. txansmission. de messages entre des gestionnaires de verrous selon un exemple de réalisation. de la présente description. [0034] [Fig. 11] La figure 11 illustre schématiquement un circuit gestionnaire de verrous de la tigure 5 plus en détail selon un. exemple de réalisation. de la présente description [0035] [Fig. 12] La figure 12 est un diagramme d'états représentant le fonctionnement d'une machine à états finis du circuit gestionnaire de verrous de la figure 11 selon un exemple de réalisation de la présente description ; [Fig. 3] La figure 13 Pst un schéma représentant un autre exemple de la transmission de messages entre des B17302- 0018785ST gestionnaires verrous selon un exempt de réalisation de la présente description sur la base d'un autre protocole de gestion de verrous. Description des modes de réalisation [00371 De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les ,.. éléments structurels e`.., ou fonctionnels communs aux dlfférents modes de réallsatinn peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensinnnelles et matérielles identiques. [0038] Par souci de clarté, seules les étapes et éléments utiles A la compréhension des modes de réalisation décrits ont été représentes et sont détaillés. En particulier, les protocoles pour des communications dans un NoC sont bien connus de l'tmlmne de l'art et ne seront pas décrits en détail. [00391 Sauf précision contraire, lorsque l'on. fait référence à deux éléments connectés entre eux, cela signifie directement connéctés sans éléments intermédiaires autres Que des conducteurs, et lorsque l'on fait référence à deux éléments reliés ou couplés entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés ou couplés par intermédiaire d'un ou plusieurs autres éléments. [0040] Sauf précision contraire, les expressions "environ.", "approximativement", "sensiblement" et. "de l'ordre de' signifient à 10 % près, de préférence à 5 [0041] [Fig. 1] La. figure 1 représente schématiquement une architecture informatique multicoeur 100 selon un exemple réalisation. L'architecture 100 comprend des dispositifs de tlatement 102, dont cinq sont illustrés dans l'exemple de la figure 1. Chaque dispositif de traitement 102 peut correspondre à um seul CPU ou. à une grappe de CPU. Chaque dispositif de aitement 102 est par exemple couplé un noeud B17302 -- 0018785ST correspondant 101 d'un réseau. d'interconnexions, qui est par. exemple un NoC. Un autre noeud. 106 du. réseau est par exemple_ couplé à une. mémoire (MEMORY) 108, qui est par exemple accessible par la totalité des dispositifs de trait =ment 102 - Ar 1"jntermédiaire du NoC. [00421 Le NoC est exemple un réseau maillé basé sur un routage de messages. En effet, les noeuds 104, 106 du réseau sont par exemple agencés selon une grille 2f), et interconnectés par de connexions câblées dans des directions x 3t Chaque noeud 104, 106 correspond par exemple à. um commutateur qui est capable de mémoriser temporairement des messages, ou des sous-parties de messages, connus sous le nom anglais de "flit et de les acheminer vers leur destination. La transmission. de messages à. tria:vers le réseau est par exemple réalisée en utilisant un premier routage en x, en d'autres termes les messages sent transmis suivant les connexions câblées dans la direction x jusqu'à ce qu'ils arrivent dans une colonne cOrxespondant à leur noeud de destination, puis lis sont. achemines suivant les connexions câblées dans la direction v jusqu'à ce qu'ils atteignent. P noeud de destination. n43] La mémoire 108 est par exemple une mémoire â. aco aléatoire, et. comprend au moins une portion partagée 110 correspondant à une ou plusieurs adresses à protéger en utilisant un ou plusieurs verxous. Par exemple, la portion partagée 110 est partagée par au moins deux, et dans certains cas par la totalité, des, dispositifs de traitement 102, Comme cela est connu de l'homme de l'art, un verrou, connu aussi sous ie nom de mutez, est une propriété qui peut être altribuée à 1' ouelconque des disTDosilifs de traitement 102 à un instant donné qui permet à seulement ce dispositif de traitement 102 d'accéder â et/ou de modifier une portion d'une mémoire. Par exemple, chaque verrou correspond à une seule 9 B17302 - D018785ST adresse mémoire, ou à. une plage d/adresses memoIre. Un protocole est mis en oeuvre pour assurer que le verrou peut être possédé par un seul dispositif de traitement 102 à un instant donné, empêchant par cela des accès mémoire simultanés qui pourxaient conduire à une exécution. non. correcte d'un ou. plusieurs fils d'exécution. La création d'un verrou pour une adresse mémoire ou une plage d'adresses mémoire donnée est par exemple lancée par une application logicielle s'exécutant sur l'un des dispositifs de traitement de l'architecture muiticcPur. [0044] La figure 2 illustre schématiquement l'un des dispositifs de traitement 102 plus en détail selon un exemple dans lequel il correspond a une grappe de processeurs. Bans l'exemple de la figure 2, H dispositif 102 comprend des CIPUs 202 (CL- Tl) et 204 (CPU2). Chaque CPU 202, 204 a une mémoire cache locale privée (CACHE) 206, et. les CPU de la grappe par exemple partagent en outre une mémoire cache de niveau 2 (CACHE L2) 206. [0045] La figure 3 représente un système qui a été proposé pour gérer des verrous. Par exemple, une azproche similaire a été proposée dans la publication de Kuo, Caxter and. Kuramkote intitulée "MP-LOCKs: Replacing Hardware Synchronizaton Primitives with Message Passinq", Proceedings fifth international symposium on High-Computer Architectures, 9-13 Janvier, 1999. La figure 3 représente des processeurs A. et B, et un serveur M. Le serveur M est responsable de la création. de verrous, et la figure 3 re.présente le cas dans lequel un verrou 302 est créé. Le verrou peut ensuite être passé, sur demande, à l'un ou l'autre des processeurs A et B, comme on va le décrire maintenant plus en detaU en faisant référence à la figure 4. [0046] La figure 4 est un schéma représentant des .orm.ur gations de gestion de verrous dans l'architecture de 10 B17302 - 0018785ST figure 3. Des lignes verticales en trait plein. en. figure représentemt le serveur M et les fils d'exécution A. et B des processeurs A et B respectivement. Les lignes verticales en pointillés représentent des zones mémoire LookBuf(M), LockBufgAK etLbckBuf(E.), qui sont des zones megnoire associées respectivement au serveur M et aux processeurs A et B et. qui sont réservées pour la gestion des verrous. [0041j In instanL 01, le serveur.rée un nouveau verrou (CREATE), et il est instancie (cg dans la mémoire locale LockBuf (M) du serveur M. Le serveur M est le gestionnaire de ce verrou. [0048] un instant t2, fil de traitement A. souhaite prendre ) ssesslon (LOOK) , g.=11, et fait une demamde de verrou (1) à sa mémoire locale i1orkr3uf(A.), mais obtient un échec. Il émet par exemple une demande (REQUEST LOOK) vers le serveur. M. La demande est traitée au niveau logiciel, et puisque le verrou est disponible (s), le verrou est déplacé (MOUE LOCK) vers la émire locale du processeur A. Le verrou est. ainsi physiquement localisé dans cette mémoire locale LockBuf(A), et lorsque le verrou est ultérieurement libéré (.11) par Le fil de traitement A à un instant 1:3 (UNlOCK) , il reste physiquement dans la mémoire locale LockBuf(A). Ainsi, lorsque le fil de traitement A souhaite de nouveau prendre possession du verrou à un instant t4 (LOOK) , un' succés est obtenu à partir de la mémoire locale LockBuf(A), et le verrou est obtenu. directement par le fil de traitement A. [0049] un instant t5, le fil de traitement B souhaite acquérir. le verg-ou., et obtient un échec à partir de sa. mémoire locale LockBuf(B). Ne sachant pas gui possède le verrou, le fil de traitememt B fait une demande pour obtenir le verrou (REQUEST LOOK) au serveur M. La demande est transmise par le serveur M au processeur A (RL.QUEST LOOK (TRANSFERRED)). Puisque le verxou est disponible, il est déplacé physiquement 11 B17302-0018785ST (MOVE LOGE) ers la mémoire locale LockBuf(B) du prone seur B. [0050] Uh avantage de l'approche représentée dans les figures 3 et 4 atg-- en mémorisant physiquement leverrou. dans la mémoi ,cale du processeur qui a obtenu le plus récemment la possession du verrou, la réaffectatinn du verrou au même processeur est très simple. Cela est avantageux, puisque des études ont montré qu'il v avait statistiquement plus de chances qu'un verrou soit repris par un même processeur que de chances que le verrou soit demandé par am. autre processeur. [0051] Toutefois, un inconvénient de l'approche des figures 3 et est que, lorsqu'un verrou doit être transféré, processus est relativement consommateur de ressources traitement et de communications réseau- En. particulier, 1. implique une demande de verrou au serveur M, suivie d'un transfert de la demande au propriétaire courant, puis un déplacement du verrou vers le fil de traitement demandeur. Chacun de ces messages traverse le réseau d'interconnexions entre le serveur le processeur A et le processeur B, et conduit ainsi à une charge relativement élevée sur le réseau. En. outre, l'utilisation du serveur central M pour la gestion des verrous conduit A un point chaud dans le réseau, et lorsque la taille du réseau augmente, cela peut conduire à des problèmes de communication comme des encombrements. En plus de cela encore, la gestion de verrous étant réalisée par. logiciel implique que chaque message reçu par un processeur provoque une interruption du processeur afin que le message soit traité, ce qui ralentit l'exécution par les prnmesseurs. En outre, en. général les mises en ouvre par logiciel sont d'une exécution relativement lente. [0052] La figure 5 illustre schématiquement un gestionnaire de verrous 500 selon un exemple de réalisation de la présente description. Un gestionnaire de verrous similaire à celui de 12 617302 - 0018785ST figure 5 est par exemple mis en ouvre en association avec chaque dispositif. de traitement 102 de l'architecture de la. figure 1. La mise en oeuvre du gestionnaire de verrous 500 est par exemple au moins partiellement réalisée sous forme de matériel. L'approche est par exemple une approche décentralisée, les gestionnaires de verrous 500 des dispositifs de traitement 102 gérant. la création. et JAS transferts de verrous sans aucune gestion centralisée. En particulier, le gestionnaire de verrous 500 comprend un circuit. gestionnaire de verrous (LOOK MANAGER CLRGUIrid "02 comprenant une mémoire 504 mémorisant une table d'un ou plusieurs verrous (i.0_-1S) gui sont mis en oeuvre dans le système. Le. mémoire 504 est psr exemple mise en oeuvre pax une mémoire volatile, comme un banc de registres. circuit 502 est par exemple accédé par l'intermédiaire d'un MMU 506, qui dirige des messages provenant du systèmeexploitation du dispositif de raitemerit 102 soit vers le circuit gestionnaire de verxons 502 soit vers une mémoire uumc)::n, 508, qui est par exemple une mémoire cache comme le cache 208 de Ja. figure 2. Comme cela est représenté par am. nuage 509 en. figure 5, considérant que le circuit gestionnaire de verrous 502 fonctionne par exemple sur la base de l'espace d'adresse virtuel de l'application. d/utilisateur 512, une conversion. d'adxesses est par exemple assurée dans le MMU 506 pour traduire des adresses virtuelles en adresses physidues de la mémoire 502. [0054] Un bloc 510 en figure 5 représente dea fo-ctionm du gestionnaire de verrous 500 qui sont par exemple mises en oeuvre dans du logiciel exécuté par le dispositif de traitement nôte 102. Ce logiciel fournit per exemple une interfAce entre une application d'utilisateur (USER APP) 512 et le circuit gestionnaire de verrous 502. Les moduMes logiciels 510 comprennbnt par exemple une librairie de commandes de verrous 13 B17302 - 0018785ST (LOCK COMMA1lDS ltIBRARY) 514, et un module de commande (CONTUR.011 MODULE) 516. Ces modules 510 génèrent par exemple des commandes pour contrôler le circuit gestionnaire de verrous 502. Dans certains modes de réalisation, ces modules logiciels sont aqeagencés pour fonctionner dans l'environnement Linux, bien. que d'autres solutions soient possibles. [00551 librairie de commandes de verrous contient par exemple une ou. plusieurs des quatre fonctions suivantes pour contrôler le circuit gestionnaire de verrous 502 - une fonction de création de verrou, qui par exemple garantit l'unicité du verrou créé par rapport à des verrous. existants. Par exempl u e, les modules locticiels 51.0 mémorisent une image des verrous de la table 504. Dans certains modes de realisatiol image de la table est protégée par un verrou supplémentaire, mis en oeuvre par exemple en logiciel dP manière standard, afin d'empêcher des modifications simultanées de la table par plus qu'un seul gestionnaire de verrous d'utilisateur/fil de traitement ; - une fonction de suppression de verrou pour la destruction d'un ou plusieurs verrous existants ; - une fonction d'obtention de verrou pour gérer une demande pour obtenir un verrou. Si le verrou n'est pas disponible, e gestionnaire de verrous joint une liste d'attente pour le verrou (décrite plus en détail ci-après) et le dispositif de traitement hôte est par exemple conçu pour. attendre jusqu'A ce que le gestionnaire de vermoas soit capable d'obtenir le verrou. Le dispositif de traitement. est par exemple conçu pour attendre activement ou passivement, en fonction d'un paramètre affecté au verrou à l'instant de sa. création-Attendre activement signifie par exemple qne le dispositif de, traitement va rester. actif et prêt à recevoir une réponse du. circuit gestionnaire de verrous 502 indiquant le moment oü le verrou. a été obtenu. Attendxe passi-vement signifie par exemple que le fil de traitement rentre dans un. mode de sommeil pour 14 B17302- 0018785ST économiser l'énergie. LP fi 1 de traitement est par exemple réveillé pour sortir du mode de sommeil par un signal IRO (demande d'interruption) généré par le circuit gestionnaire de verrous 502 (non illustré en figure 5) ; et - une fonction de déverrouillage Gui provoque la libération. d'un. verrou. p00561 La figure 5 illustre un exemple d'une entrée dans la table de verrous 504 mémorisée par le circuit gestionnaire de verrous 502 de la figure 5. Chaque entrée comprend par exemple certains ou la totalité des champs suivants : - le propriétaire (OWNER) : ce champ, comprenant par exemple un seul bit, indique si le verrou est possédé ou non par le dispositif de tratLement 102 assoce au gestionnaire de verrous mémorisant la table ; - la grappe suivante (NEXT CLUSTER) ce champ, Gui comprend par exemple un nombre de bits suffisant pour identifier tous les dispositifs de traitement 102 de l'architecture, indique par exemple l'identifiant du gestionnaire de verrous suivant sur la liste d'attente pour acquérir le verrou ; - un pointeur (POINTER) : ce champ cul comprend aussi par exemple un nombre de bits suffisant pour identifier tous les dispositifs de traitement 102 de l'architecture, indique par exemple le propriétaire courant du verrou. ; - en. attente (WAITING) : ce champ, comprenant par exemple un seul bit, indique que le gestionnaire de verrous est déjà sur la liste d'attente du verrou: Ainsi si an autre fil de traitement du dispositif do traitement fait une demande pour obterir le même verrou, le gestionnaire de verrous ne doit pas émettre une autxe demande pour le verrou ; - ancien (OLD) : ce chàmp, comprenant par exemple un seul bit, indique si le gestionnaire de verrous était le propriétaire précédant du verrou, qui est un état intermédiaire à la suite du transfert du. verrou mais avant que toutes les responsabilités associées au verrou aient été transférée ; et 15 617302--00187855T - un compteur d/équité (FAIR-NESS COUNTEIR) : cette valeur est par exemple utilisée pour indiquer le nombre d'attributions consécutives du verrou au dispositif de traitement hôte 102, par exemple permet de mettre en oeuvre une politique d'équité. Par exemple, dans un mode de réalisation un. verrou est transféré à. un autxe gestionnaire de verrous si le nombre d'attributions consécutives au dispositif de traitement hôte local atteint un. seuil de x attributions. Par exemple, x est une valeur comprise entre 2 et 20, et dans certains cas entre 4 et 12. [0057] Le protocole de gestion de verrous mis en oeuvre par les gestionnaires de verrous 500 garantit par exemple certains ou la totalité des con»itions suivantes : [0058] 1) Cohérence entre les tables e verrous mémorisées par. tous les gestionnaires de verrous. [0059] 2) Qu'um se.-_ gestionnaire de verrous/dispo.slt if de traitement possède un verrou à un instant donné. [00601 Qu'un. seul fil. de traitement a reçu l'a .tribution. du verrou à instant donne, en d'autres ternies qu'un changement d'état d'un verrou (verrouillé/déverrouille) est déclenché par un seul fil de traitement. [0061] 4) Que des blocages ne sur e nent pas dans le réseau :''interconnexions. r00621 5) Qu'un gestionnaire de verrous; fil. de traitement demandant_ un verrou. obtienne une réponse. [0063] 6) Qu'il y ait une, absence de famine dans l'affilé bution des verrous, en d' termes qu'um gestipmnaire de verrous demandant un verrou reçoive le verrou en temps utile. [ 0064] Que l'attribution de verrou s s équitable. 16 B17302-0018785ST [0065] Les conditions b et 7 susmentionnées amont par exemple satisfaites en utilisamt une liste d'attente qui est répartie entre les gestionnaires de verrous afin de minimiser l'espace mémoire pour mémoriser la liste. En particulier, lorsqu'un gestionnaire de verrous 500 demande un verrou qui est déjà. attribué à un. autre gestionnaire de verrous 500, le gestionnaire de verrous demandant le verrou ré oit une réponse négative, mais la demande est prise en compte par l'ajout d'un identifiant du gestionnaire de verrous à la liste d'attente. Er particulier, le gestionnaire de verrous qui la possession courante du verxou écrit pax exemple dans le champ "grappe suivante" dans sa table de verrous l'identifiant du gestionnaire de verrous demandant le verrou, à moins que ce champ n'indique déjà un autre gestionnaire de verrous. Dans ce dernier cas, le gesLionnuire de verrous avant possession courante du verrou transmet la demande au gestionnaire de verrous suivant identifié dans le champ "grappe suivante", qui à son tour mémorise l'identifiant dans son champ "grï_55pe suivante", ou transmet la demande si le champ indique déjà un autre gestionnaire de verrous. De cette manière, le gestionnaire de verrous faisant la dernière demande pour le verrou va être ajouté à la fin de la liste d'attente. r- La figure 7 est un schéma représentant un exemple de communications de gestion de verrous utilisant le gestionnaire de verrous 500 de la. figure 5. Le schéma de la figuxe 7 est similaire A celui de la figure 4, excepté qu'au vu de 1 'approche centralisée, il n'v a plus de serveur M, et le nombre de messages transmis pendant un transfert du ver reg est réduit. [0067] En. effet, l'exemple de la figure 7 suppose que le fil traitement Pi crée (CREATE, o) un verrou à un instant tl, et demande la propriété du verrou (LOCK, l un instant t2, 17 B17302- 0018785ST ce qui est accordé. Ainsi, le champ "propriétaire" est initialisé dans la table de verrous 504 du gestionnaire de verrous correspondant au fil de traitement. A. Le circuit gestionnaire de verrous A indique l'identifiant du propriétaire du verrou. dans la table, et diffuse un message (LOOK 11011) vers les autres gestionnaires de verrous de sorte qu'ils initialisent aussi le verrou dans leurs tables de verrous respectives et initialisent le pointeur vers l'identifiant du. propriétaire. Le verrou est par exemple déverrouillé (UNLOCK, u) par le fil de traitement A à un instant t3, demandé de nouveau. par le fil de traitement A à un instant t4, puis déverrouillé de nouveau par le fil de traitement A à un instant fi. A un instant t6, Qui peut être avant l'instant t5, le fil de traitement B demande la propriété du verrou. Le gestionnaire de verrous du fil. de traitement B cannait, à partir de la table de verrous 504, l'identifiant du propriétaire de verrou courant, et ainsi la demande (REOJEST LOOK) est par exemple transmise directement au gestionnaire de verrous du fil de traitement A. Cette demande arrive au niveau du gestionnaire de verrous du fil de traitement. A une fois que le verrou a delà été libéré, et ainsi, trouvant, le verrou disponible, le gestionnaire de verrous du. fil de traitement A répond par exemple avec une réponse positive (IGVE LOOK) au gestionnaire de verrous du fin de traitement B, qui devient le nouveau propriétaire du verrou à un instant t6 suivant son transfert. [0068] Le si6nal de déplacement de verrou indiquant le moment où un verrou est déplacé d'un gestionnaire de verrous vers un autre est par exemple un signal diffusé envoyé à. tous les gestionnaires de verrous, comme on va le décrire maintenant plus en détail en. faisant référence à la figuré 8, [0069] La figure 8 est un diagramme représentant un exemple de communications entre des gestionnaires de verrous. Dans 18 817302-D018785ST l'exemple de la. figure l'architecturé informatique multicoeur comprend trois dispositifs de traitement comportant des gestionnaires de verrous LMO, DM1 et TEI2 respectivement, Des lignes verticales en figure 8 associées à chaque gesticnnaire de verrous représentent le temps, et des fléches entre les lignes verticales représentent des messages transmis entre les gestionnaires de verrous. [0070] Dans un. exemLle, le protocole de communication. entre les gestionnaires de verrous supporte certains ou la totalité des messages définis dans le tableau suivamt, les noms de ces messages étant fournis seulement à titre d'exemple ron71] [Tableau 1] DOCK ':.NIT !Message diffusé généré à la suite de li, création d'un nouveau verrou Idonnant instiucLion aux gestionnaires de verrous destinataires d'instancier 1 un nouveau verrou dans leurs tables de 1 verrous pour un identifiant de verrou 1 fourni dans je message DOCK IMIT ACK 1Message d'accuse de réception envoyé len réponse au message. LOCKINIT si 1 1l'instanciaLion du nouveau verrou a été réalisée avec succès DOCK DEL !Demande de suppression d'un verrou, ! !l'identifiant du verrou étant indiqué ! . dans le message 1 1 DOCK REQ Demande d'acquisition d' un verrou, ! !l'identifiant du verrou étant indiqué ! ans le message 1 DOCK MCV !Message diffusé indiquant qu'une demande pour un. verrou peut être _ B17302 - D018785ST !acceptée et transférantpartiellement 1 !la responsabilité au nouveau ;gestionnaire de verrous LOGELOCKED .e fis me demande. d'moi.:ces à un. Iverrou. 1 LOOK MOVED LUSTER 1Transicert final de responsabilPhe du ;verrou au nouveau gestionnaire de verrous LOGE NE Flransfert d'un identifiant d'un !gestionnaire de verrous à ajouter é la 1 !liste d'attente LCCEL !Accusé dp réception du message LOOK NEXT CLUSTER LOCK_MOV_ACK _:cusé de r.é:ention dm message ;LOOK MOV -------------------------------------- ... LOOK ERR Indication que L'action demandée ne !peut pas être. traitée [0072] La figure P illustre un exemple de messages transmis entre des gestionnaires de verrous en réponse A l'initialisation d'un vexrou par le gestionnaire de verrous LMO puis le transfert de ce verrou au gestionnaire de verrous LM1, Par exemple, le clrculL gestlonnuixe de verrous du gestionnaire de verrous LMO reçoit une demande logicielle provenant des modules logiciels 510 de son gestionnaire de verrous demandant la création d'un nouveau verrou pour une adresse donnée é. [0073] Tnitialememt lors de la création du nouveau verrou par le gestionnaire de verrous LMO, il active son bit de propriétaire, règle le pointeur sur LW, et le message LOOKINIT est par exemple transmis par le gestionnaire de verrous LMO à chacun des autres gestionnaires de verrous LM1 20 617302 0018785ST et liM2 afin que ce verrou puisse etre ajouté à leurs tables de verrous respectives. Chacun des gestionnaires de verrous instancie le verrou, règle son pointeur sur LMO, et répond avec le message d'accusé de réception LOOK [00741 Après la réception du message LOCKINIT, gestionnaire de verrous LM1 demande par exemple d'acquérir e verrou en émettant le message LOJKREO vers le gestionnaire de verrous LMO. Une fois que le gestàbrinaife de verrous EMO a reçu. les messages LOCKINITACK provenant de chacun des gestionnaires de verrous, le verrou. est pax exemple déplacé vers le gestionnaire de verrous LM1 an amenant a l'état bas le bit "propriétaire' et en activant le bit "ancien" dans le gestionnaire de verrous LMO, et en émettant à. partir du gestionnaire de verrous INC la diffusion du message LOCh MOV vers les deux gestionnaires de verrous LM1 et LE2. Les gestionnaires de verrous LM1 et LM2 reçoivent par exemple le message LOOKMOV, mettent à jour leurs champs "pointeur" pour. pointer sur LM1, et répondent avec le message LOCKMOVACKLe gestionnaire de verrous -Ml active aussi son. bit "propriétaHre". Une fois que le gestionnaire de verrous LM° a reçu le message d'accusé de réception LOCKMOV_ACK à partir de chacum des gestionnaires de verrous, il amène par exemple à l'état bas son bit "ancienY, et envibJe le message LOCKMOVED au nouveau qestionnairà de verrous Un pour. finaliser le transfert. Jusqu'à ce que le gestionnaire de verrous LMI ait revu le message LOOK MOVED, il. gère par. exemple l'état du. verrou comme soit bloque soit libéré, mais ne peut pas transférer le verrou. [00751 Dams certain modes de réalisation, pour éviter un encombrPment des messages dans le NoC, 1es messages sont par exemple transmis en utilisant au moins trois canaux séparés. Chaque canai correspond par exemple à un chemin de transmission indépendant pour les messages, obtenu par. 21 B17302 - D018785ST exemple en utilisarit plusieurs ris électriques et/ou. en utilisant. des canaux virtuels (c'est-à-dire un multiplexage temporel) sur un ou plusieurs fils partagés. Par exemple, dans un mode de réalisation, tout message qui provoque la transmission du message d'accusé de réception ou une autre forme de message de réponse est transmis sur un canal séparé du message d'accuse de réception. P:insi, les messages LOOK INIT et LOOK INIT ACK sont par exemple transmis sur des canaux séparés, et les messages DOCK MCV et pnc.K. NOV ACK sont nar exemnie transmis sur des canaux séparés Dans l'exemple de la figure 8, les flèches en trait plein représentent. des messages transmis sur un premier canal, les flèches en trait interrompu représentent de messages transmis sur un deuxième canal, et les. flèches en pointillés représentent dos messages transmis. sur un troisième canal. [00761 Dans un mode de réalisation, les messages transmis sur les canaux sont représentés dans le tableau suivant, dans leguel les noms des canaux sont donnés simplement à titre d'exemple [1:07 [Tableau 21 Nom du canal 1 Messages Réponse 1DOCK FRP I DOCK INT I: ACK 1 I DOCK MOVED 1 1 DOCK NEXT ACK Description ------------ ----- - - - - Ce canal est uar exemple utilisé pour. transmettre des messages qui ne provoquent p r as diecteme tl la. génération de nouveaux messages de réponse --------------------------- ..... -------------------------- Demande CK REO DOCK NOV ACK e canal est utilise pour 1 le message DOCKREC), gui peut potentiellement vaquer la génération beaucoup d'autres 22 B17302 - D018785ST messages. Un. avantage de fournir le message LOOK MCV ACK dans ce canal* 1 est que cela garantit qu/aucune demande n'est en .I attente dans le réseau. Déplacement !LOOK MCV Ce canai est utilise pour LOOK NEXT CLUSTER des messages diffusés, LOCK LOCKED comme les messages ILOOK 1N11 LOOK MOV, LOOK INIT et LOOK DEL LOOK DEL. Le message LOOK LOCKET) est pax exemple transmis sur le même canal que LOOK MOV pour empêcher que l'ordre d'arrivée de ces messages soit altéré [00781 La figure 9 est un schéma représentant un exemple messages transmis entre des gestionnaires de verrous selon un autre exemple de réalisation- En. figure 9, des valeurs O, L, P, OLD et NEXT sont représentées poux chaque gestionnaire de verrous. La valeur 0-1 indique que le gestionnaire de verrous est le propriétaire du verrou, tandisque la valeur 0-.0 indique l'opposé. La valeur L-1 indique l'état verrouillé du verrou, tandis que la valeur L=0 indique que le verrou est libre. La valeur 9=_- indique que le champ "pointeur" pointe vers le propriétaire du verrou, tandis que la valeur P=0 indique l'opposé. La valeur OLD indique si le champ "ancien" est vrai ou faux. La valeur NEXT est un pointeur vers le gestionnaire de verrous suivant attendait le verrou_ [00791 Comme cela est représenté en figure 9, initialement, le gestionnaire de verrous LM1 est le propriétaire du verrou, 23 B17302---0018785ST et lie verrou est verrouille par un fil de traitement correspondant, comme cela est indiqué par L=1. Le gesIlionnaire verrous LMO émet un message de demande LOOK REQ pour ie verrou vers le gestionnaire de verrous LM1, qui est identifié dans le champ "pointeur" de l'entrée pour le verrou aans la table de verrous du gestionnaire de verrous LMO. [00801 Le gestionnaire de verrous LM1 répond en indiquant, avec le message XOCKLOCKY,D, que le verrou est verrouille par un fil de traitement, et le gestionnaire de verrous LM1 mémorise, dans son champ "grappe suivante", un identifiant du gestionnaire de verrous LI'IO comme étant le gestionnaire de verrous suivant attendant le verrou. Pax exemple, un identifiant "0" est écrit dans le champ "grappe suivante". le gestionnaire de verrous LMO place ainsi le fil de traitement demandant le verrou dans un mode d'attente, par exemple dans un mode de sommeil comme cela a été décrit précédemment. Le champ "en attente" dans le gestionnaire de verrous LMO est par exemple mis à vrai pour indiquer à tous les autres fils de traitement exécutés par le même dispositif de traitement que le verrou a déjà été demandé, évitant par cela l'émission d'autres demandes de verrous par le gestionnaire de verrous LMO pour le même verrou. [00811 Le gestionnaire de verrous LM3 envoie aussi message de demande de verrou LOOK REQ au gestionnaire de verrous LM1 indiqué par son cliamp "pointeur'. Le gestionnaire de verrous LM1 répond en indiquant, avec le message LOCKLOCKED, que le verrou est verrouillé par un fil de traitement. Puisque le champ "grappe suivante" du gestionnaire de verrous LM1 n'est pas vide, le gestionnaire de verrous LMT envoi aussi par exemple un message LOCKLIEXTCLUSTER au gestionnaire de verrous indiqué dans son champ "grappe suivante", qui est le Gestionnaire de verrous LMO, afin de demander que 24 B17302 -- 0018785ST l'identifiamt du gestionnaire de verrou:, LM.3 soit ajouté liste d' attente [0082] Le gestionnaire de verrous LMO reçoit ce message LOCK NEXT (.1TSTEP., met à jouT son champ "grappe suivante" pour indiquer l'identifiant dugestionnaire de verrous LM3, et envoie le message LOCKflEXT K au gestionnaire de verrous LMJ. Ce message indique aussi au gestionnaire de verrous LM1 que le canal de transmission est maintenant libre dans le cas où un nouveau message LOCKNEXICLUSTER doit être envoyé A partir du. gestionmaire de verrous LM1 au. gestionnaire de verrous LM°, et évite ainsi es blocages dans les transmissions de messages. [0083] Le verrou est ensuite libéré par le gestionnaire de verrous LMI, qui diffuse vers tous les autres. gestionnaires de verrous le message LOOK MCV indiquant que le nouveau propriétaire est le gestionnaire de verrous IMO (c'est-à-dire l'identifiant "0"), comme cela est indiqué dans le champ "grappe suivante". Le gestionnaire de verrous LMI règle son champ "pointeur" à l'identifiant du propriétaire suivant LMO, et règle aussi son champ "ancien" A vrai. Les autres gestionnaires de verrous recevant le messaae LOOK MW règlent aussi leurs champs "pointeur" l'identifiant du. gestionnaire de verrous LM:;, et renvoient un messagp -0cl; .ick au propriétaire précédant LM1 confirmant que le nouveau propriétaire a été enregistre. Le gestionnaire de verrous LM() règle par exemple le verrou comme cela est indique par [00841 Le gestionnaire de verrous LM2 demande ensuite par exemple le verrou en envoyant un message ,O(r.REQ au propriétaire indidue dans son. canamp "pointeur". Lie gestionnaire de verrous LMO répond avec le message LOOK LCCKED. Cela aurait été le cas mémé si le verrou n'était pas déjà verrouillé, puisque le gestionnaire de verrous. LMO n'a pas encore la responsabilité complete du ver rou. et par conséquent 25 617302 0018785ST ne peut pas transférer. I verrou jusqu'à ce qu'il ait reçu message DOCKMOVED. Cette fois le champ "grappe suivante n'est pas vide mais contient l'identifiant du gestionnaire de verrous LM2, qui est sur la liste d'attente pour le verrou. Le gestionnaire de verrons LHO envoie ainsi le m.essage LOCKNEXTCLUSTER au gestionnaire de verrou.s LM2, [00851 Une fois que le gestionnaire de verrous précédant L'Al a reçu tous les messages LOCK MOU ACK, cela signi-ie que toutes les de :mandes de verrous LOCKBEQ en attente faites au gestionnaire de verrous LM1 ont été traitées, ces messages partageant un même canal. Le gestionnaire de verrous LY1 règle ainsi son champ "ancien" à faux, et le message T,OCKMOVED est envoyé au nouveau. propriétaire Lffl, gui modifie son. champ "propriétaire" à vrai. [0086] La figure 10 est un schéma représentant un exemple de messages transmis entre des gestionnaires de verrous selon encore u'1 aLtre exemple de réalisation. Les étiquettes en figure 10 sont similaires à. celles de la figure 9, et ne seront pas décrites de nouveau en détail. [0087] La figure 10 montre l'avamtage d'inclure dans un. même canal les messages LOCKE.E(D et LOOK MOVACE. En effet, cela garantit que lorsqu'un gestionnaire de verrous gui était précédemment propriétaire d'un verrou reçoit le message LOOK NOV ACK à partir d'un. autre gestionnaire de verrous, comme le message émis par le gestionnaire de verrous LI.,13 en figure 10, tous les messages LOCKREQ provenant du gestionnaire de verrous précédant ont été reçus. [0088] En outre, on. peut voir en figure 10 que le message LOOK MENT CLUSTER est émis par un propriétaire précédant du verrou lorsque le champ "ancien" est vrai. man:- un tel cas, le transfert complet de la propriétéo 1 u verrou dépend de la réception des messages LOCK NEXT ACK afin de garantir que mites les demandes en cours de traitement par le propriétaire 26 B17302 - D018785ST précédant ont été traitées avanc que le message ,O:K MGVED soit émis, ce qui permet un nouveau transfert du verrou. [0089] La figure 11 illustre schématiquement le circuit gestionnaire de verxous 502 de la figure 5 plus en. détail selon un exemple de réalisation_ Le circuit L comprend par exemple, pour chaque verrou, un bloc de circuits , comprenant bloc logique de calcul (COM-PUTE) 1104 et un registre (REG) 1106, qui mémorisa une entrée ayant les champs de la figure 6. Le bloc logique de calcul 1104 est par exemple mis en oeuvre par une machine à. états finis. Le bloc logique de calcul 1104 pour chaque verrou reçoit par exemple une sortie correspondarte de quatre demultiplexpurs lloo, 1110, 112 et 1114 qui reçoivent respectivement, en tant cr»e cible (TGT), des signaux provenant : du dispositif de traitement hâte (CPU CML) ; du canal. de réponse (RESPONSE TGT) ; du. canal de déplacement (MOVE TGT) ; et du canai de demande (REQUEST TGT). Les demultiplexeurs 1108, 1110, 1112 et 1114 sont par. exemple contrôlés par l'adresse de verrou indiquée dans chaque message pour diriger le message vers le bloc logique de calcul 1104 du. verrou correspondant. Des tampons 1116 sont par exemple prévus entre chaque démultiplexeur 1108, 1110, 1112 et 1114 et les blocs logiques de calcul respectifs 1104. Dans certains modes de réalisation, les tampons 1116 sont des FIFO. [0090] Le nombre Lb de verrous, et donc le nombre de blocs de circulbs 1]02, est par exemple choisi sur la base du nombre maximum. de verrous attendus pour servir dans l'architecture multicoe,..r. Dans certains modes de réalisation, Nb est égal à au moins 16, et dans certains cas peut aller iusqu'à 256. [00911 Le bloc logique de calcul 1104 aénere par exemple des signaux de sortie vers quatre commutateurs de tour de râle (RR) 1 18, 1120, 1122 et 1124, qui fournissent respectivement les messages à partir des blocs logiques de calcul 1104 à une sortie de dis-flositif de traitement hôte (CPU CML ROP) 27 B17302---0018785ST et des signaux vers les initiateurs de messages (INI) sur le canal de réponse (RESPONSE INI) ; le canal de déplacement (NOVE INI) ; et le canal de demande (REQUEST INI). [0092] Alors Que la figure 11 correspond à un cas où il un seul bloc logique de calcul 1104 par verrou, dans des variantes de réalisation il serait possible mutualiser un ou plusieurs blocs logiques de calcul 1104 pour une ut lisation par plus qu'un seul verrou. [0093] La figure 12 est un di aGramme d'état 1200 représentant le fonctionnement du bloc logique de calcul 1104 de la figure 1 selon, un exemple de réalisation. [0094] Un gestionnaire de verrous reste dans un état NO INIT jusqu'à une transition. vers un étai INIT, représentée par une flèche "1", en réponse A la réception d'une commande de création de verrou provenant du dispositif de traitement hôte. En réponse, message diffusé LOOK I12I1 est par exemple émis. Comme cela est représente par une -flèche W, si toutefoHs, pendant qu'il se trouve dans l'état NO INI1, le gestionnaire de verrous reçoit un message autre que LOOK INIT, ou un message de CPU autre qu'u:ne création de verrou, un message d'erreo LOOK FRR est par exemple généré. [0095] Comme cela est représenté par une flèche nW", gestionnaire de verrous reste dans l'état INIT jusqu'à ce que le message LOOK ACK ait été reçu à. partir de chacun. des autres gestionnaires de. verrous. Une fois que cela est fait, le champ "propriétaire" est mis e vrai, le champ "pointeur" est mis à l'ID du gestionnaire de verrous, et l'état passe à un état FREE, comme cela est représenté par une. fleche "2". Toutefois, si un quelconque message LOOK ACK est manquant après un certain temps d'attente maximum, l'état revient à l'état NO INIT comme cela est représenté par une flèche "F", et un renvoi d'erreur est par. exemple généré. 28 B17302--0018785ST [00961 Comme cela est représenté par une flèche "3", l'Pti't FREE est aussi par exemple atteint directement à partir de l'état NO INIT si le message LOCKTMIT est reçu. En réponse, le champ "propriétaire" est mis à faux et le champ "pointeur" est mis à l'identifiant du gestionnaire de verxous demandeur indiqué dans le message LOCKINIT. [00971 Comme cela est représenté par. une flèche "4", à partir de l'état FREE, une transition survPent vers un. état LOCKED si le verrouest demandé par un fil du traitement et le verrou est possédé par le gestionnaire de verrous. En. réponse, le compteur d'équité est par. exemple décrémente, et une réponse au dispositif de traitement hôte est générée pour indiquer que le verrou a été acquis avec sucrés. [0098] Comme cela e représenté par une 11 èche "5", une transition A partir de l'état I-RE-P. vers un état PENDING survient si le verrou n'est pas actuellement détenu par. le gestionnaire de verrous et si le champ "en. attente" est faux, ou si le chat; "en attente" est vrai et le verrou n'est pas actuellement détenu par le gestionnaire de verrous. En réponse, le message LOCKRE(,) est envoyé au gestionnaire de verrous désigné dans le champ "pointeur". [0099] Comme cela est. représenté par une flèche "6", A partir de l'état PENDING, une transition vers l'état LOCKED survient par exemple si le message LOCK MCV est reçu. et le nouveau pointeur est égal à l' ID du gestionnaire de ver rous. En réponse, le compteur d'équité est décrémenté, le champ "propriétaire" est mis à vrai, le pointeur est mis à jour, et Je mes sa incK MO! ACK est envOye. [0100] Comme cela esP représenté par une flèche "7", une transition à partir de l'état PENDING vers un état WALD survient lorsque le message LOOK LOCKED est reçu. En réponse, le champ "en attente" est mis à. vrai, et i dispositif de traitement hôte est informes pup le verrou Pst verrouillé_ 29 B17302 D018785ST [0101] Comme cela est représenté par une flèche "7°", une txansi ion A partir de l'état FREE vers l'état WATT survient si le gestionnaire de verrous n'est pas le propriétaire du verrou et le champ, "en attente" est vrai, l e dispositif de traitement e est aussi informé que le verrou est verrouillé. [01021 Comme cela est représenté par une fléche "8", une transition à partir de l'état W-P,IT vers un état RESEEVED suxvient si le signal LOCKMOV est reçu et le nouveau pointeur est égal à l' ID du gestionnaire de verrous. Le champ "propriéttilre" est ensuite mis à vrai, le champ "en attente" est mis A faux, le champ "pointeur" est mis à jour, et le signal LOOK MCVACK est envoyé. [0103] Comme cela est .présent:c une flèche "9", une transition à partir de l'état LOCKED vers l'état FREE survient si le dispositif de traitement hôte demande la libération du verrou, le champ "en attente" est faux et le champ "grappe suivante" est vide. [0104] Comme cela représenté par une flèche "10", une transition partir de l'état LOCKEtD vers un état TRANSFER survient par exemple si le dispositif de traitement hâte deman.dp la libération. du verrou, le champ rappe suivante" n'est pas vide, et le champ "en attente" est faux ou le compteur d'equité a atteint zéro, le champ "propxiétairp" est mis à faux, le champ "ancien" est mis à vrai, le pointeur est mis vprs la grappe suivante eL le compteur des messages MOV AC-K esh mis à l'état bas. Le message diffusé LOOK MCV est aussi envoyé aux autres gestiénnaires de verrous. [ 105] Comme cela est représenté par une flèche "11", une transition. de l'état TRANSFER vers l'état FRET survient par exemple si le message LOOKMOVACK a été reçu de tous les autres gestionnaires de verrous, le message LOCI REVENDICATIONS1.Architecture multicoeur comprchant une pluralité de dispositifs de traitement (102), chaque dispositif de traitement comprenant un sen' processeur ou. une Grappe He processe-rs ; et un gestionnaire de verrous (500) associé à chaque dispositif de t t temen° (102), chaque gestionnaire de verrous étant agencé pour memoriser une première valeur de données (OWMER) indiquant s'il possède ou non actuellement un premier verrou, le premier verrou autorisant l'accès à une ressource ; et -- permettre qu'un propriétaire du premier verrou soit déterminé par un ou plusieurs gestionnaires de verrous en diffusant, sur un réseau d'interconnexions veis chacun des autres gestionnaires de verrous, au moins un message (LOCKMOV, LOCKREQ). 2. Architecture multicoeur selon la revendication 1, dans laauelle la diffusion (e. messages vers chacun des autres gestionnaires de verro est soit un message (LOCKM.W) indiquant que la propriété du premier verrou s'est déplacée ou. va se déplacer vers un autre dispositif de traitement soit un. message (T,OCKREQ) demandant la propriété du premier verrou. 3.Architec,ie multicoenr selon la revendication 1 ou 2, dans laquelle chaque gestionnaire de verrous (500) comprend un circuit gestionnaire de verrons (502) comprenant un circuit. logique (1104) mettant en oeuvre une machine à états finis. 4. Architecture multicoeur selon la revendication 3, dans ilughelle chaque gestionnaire de verrous (500) comprend en outre une mémoire (504) mémorisant une table ayant une 40 BI7302-0018785ST entrée associée au premier verrou, l'entrée comprenant la première valoeur de données (owNER). 5.Architecture multicoeur selon la revendication 3 ou 4, dans laquelle chaque gestionnaire de verrous (500) est partiellement mis en. oeuvre par un. ou plusieurs modules logiciels (514, 516) assurant une interface entre une application d/utilisateur (512) et le circuit gestionnaire de verrous (502). 6. ,Architecture multicoeur se n l'une quelconque des revendications à 5, dans laquelle le réseau d'inter- connexions est un réseau sur puce (NoC). 7Architecture multicoisr selon la re dicat on 6, dans laquelle le réseau d'interconnexions est un maillage 25 mettant en. oeuvre un premier routage de messages en. m. 8.Architecture multicoeurl'une quelcon des que selon revendications 1 à 7, dam,s laquelle les gestionnaires de verrous sont agences pour transmettre des messages entre eux sur le réseau d'interconnexions sur au moins trois canaux séparés. 9.Architecture multicoeuir selon l'une quelconque des revendications 1 à 8, dans laquelle au moins l'un de la. -oluralité de dispositifs de traitement est une grappe de deux ou plusieur.s processeurs partageant l'un des gestionnaires de verrous. 10. Architecture ral ticoeur selon l'une quelconque des revendications 1 à 9, dars laquelle ctaque gestionraire de verrous est agencé peur émettre sur le réseau d'interconnexions certains ou la totalité des messages suivants vers un. ou plusieurs cintres gestionnaires de verrous : - un message diffusé de lancempnt de verrou (LOCKINIT) 41 B17302 0018785ST - un message d'accusé de réception de lancement de verrou (LOCK INITME) - un message de suppression de verrou (LOOK DEL) - un message de demande de verrou fLOCKREÇQ ou un message diffusé de demande de verrou (LOCKREQ) - un massacre d'accusé de réception de demande de verrou (LOCKPECLACK) accusant réception du message de demande de verrou (LOOK REQ) - - un. message de déplacement de verrou (LOOK21rv) indiquant le moment où un verrou s'est déplacé ou. va être déplace vers un autre gestionnaire de verrous - message d' accusé de réception de déplacement de verrou (LOcKMoViArW accusant récerition du message de déplacement de verrou (LOCKMOV) - un messagede refus de verrou (LOOK LCCKED) indiquant qu'un verrou est en cours d'utilisation et ne peut pas être transféré ; et - un message de verrou déplacé- (LOOKMoVEL) indiquant que la responsabilité d'un verrou a été entièrement transférée d'un gestionnaire de verrous à un autre gestionnaire de verrous. 11. Architecturé multicoeur selon l'une quelconque des revendications 1 A 10, dans laquelle les gestionnaires de verrous (500) sont agencés pour mémoriser une liste d'attente distribuée (MMT CLUSTER) pour la propriété d'un verrou. 12. Architecture multicceur selon l'une quelconque des revendications là 11, dans laquelle un fil de traitement exécute par un premier des dispositifs de traitement (302) est seulement autorise à dodu-Fier un verrou lorsqu'il est la propriété du gestionnaire de verrous associé au premier dispositif de traitement (302). 42 B17302--0018785ST 13. Procédé de gerii_ on. de.. verrou: dans une axchitecture multicoeur comprenant. une pluralité de dispositifs de traHfemént (102), chaque dispositif de traitement comprenant un seul processeur nu une grappe de processeurs, le procédé comprenant - mémoriser, par un gestionnai ce de verrous (500) associé à chaque dispositif de traitement (102) , une première valeur de données (OWNE-R) indiquant si le gestionnaire de verrous possède ou non actuellement un premier verrou, le premier verrou autorisant l'accès à une ressource ; et - diffuser, par un gestionnaire de vorrous sur un réseau d'interconnexions vers chacun des autres gestionnaires de verrous, au moins un message (LOC' MCV, LOCK EK)) -permettant à un propriéiaire courant du premier verrou d'être identifié. 14. Procédé selon la revendication 13, dans lequel la diffusion de messages vers chacun des autres gestionnaires de verrous est : soit un. message (L OC