Brevet FR2736738A1 — publié le 19970117

SYSTEME A MULTIPROCESSEUR ET PROCEDE POUR COMMANDER UN ACCES A UN CIRCUIT TAMPON DE CONVERSION A ACTION SECONDAIRE DESCRIPTION ARRIERE-PLAN DE L'INVENTION La présente invention se rapporte à un multiprocesseur et à un procédé pour commander un accès à un circuit tampon de conversion à action secondaire (TLB), et plus particulièrement à un système à multiprocesseur et à un procédé pour commander un accès à un circuit tampon de conversion à action secondaire qui a été invalidé (par exemple, mis à jour). Comme on le sait bien, la mémoire virtuelle donne un espace d'adressage (logique) virtuel utilisant une mémoire auxiliaire pour sauvegarder un espace d'adressage suffisamment large au-delà de la limite de capacité physique d'une mémoire principale. L'espace d'adressage virtuel est attribué à l'adressage (physique) réel de la mémoire principale. D'une manière générale, le concept de mémoire virtuelle fait que la mémoire principale de taille normale apparaît à l'utilisateur comme étant aussi grande que l'espace d'adressage virtuel (par exemple, représenté par un registre ou analogue contenant l'adresse virtuelle), tout en apparaissant encore comme fonctionnant à sensiblement la vitesse de la mémoire réelle. Dans un système de mémoire virtuelle avec une segmentation par pages, des zones de mémoire virtuelle sont divisées en blocs de taille variable appelés "segments", et chaque segmer.t est divisé en blocs de taille fixe appelés "pages". Des blocs actifs sont placés sur la mémoire principale (par exemple, ils sont paginés de façon dynamique dans cette dernière), tandis que les blocs restants sont placés sur la mémoire auxiliaire. En se référant à la figure 1, chaque adresse logique est constituée par trois parties : une adresse de segment, une adresse de page, et un déplacement. L'adresse de segment est une adresse relative dans une table de segments. L'adresse de page est une adresse relative dans une table de pages. Le déplacement est une adresse relative dans une page. La table de segments stocke des descripteurs de segment spécifiant des tables de pages. La table de pages stocke des descripteurs de page spécifiant des pages. Un circuit tampon de conversion à action secondaire (TLB) d'un processeur est un type spécial de mémoire cache pour stocker (par exemple, enregistrer) des couples d'adresses logiques et d'adresses physiques. Ainsi, une adresse logique va être stockée avec une adresse physique correspondante en tant que couple. Le TLB du processeur est référencé à chaque fois qu'on accède à la mémoire principale, pour effectuer, de ce fait, la conversion d'une adresse logique en une adresse physique. Quand une entrée dans le TLB doit être désaffectée (par exemple, à la fin d'un processus), l'entrée est invalidée (par exemple, effacée ou mise à jour) Dans un système classique à multiprocesseur ayant une mémoire virtuelle, quand un processeur délivre un message pour invalider une entrée dans son TLB, le message est envoyé à tous les TLB des processeurs dans le système à multiprocesseur.Pendant le processus d'invalidation, avant d'effectuer d'autres processus, d'autres processeurs doivent attendre l'achèvement du processus d'invalidation d'entrée de TLB. Ainsi, des opérations normales ne peuvent pas être effectuées jusqu'à ce que l'opération d'invalidation d'entrée de TLB soit achevée, étant donné que d'autres processeurs sont dans des états "d'attente" (pause) Cette attente par les autres processeurs diminue la performance du système. RESUME DE L'INVENTION En raison du problème précédent du système classique, un objectif de la présente invention est de proposer un système à multiprocesseur dans lequel, tandis qu'un circuit tampon de conversion à action secondaire est en train d'être invalidé par un certain processeur, d'autres processeurs peuvent fonctionner sans attendre l'achèvement de l'invalidation du circuit tampon de conversion à action secondaire. Dans un système à multiprocesseur selon un premier aspect de la présente invention, chaque processeur d'une pluralité de processeurs possède un circuit tampon de conversion à action secondaire pour enregistrer des couples d'adresses logiques et d'adresses physiques, une unité de commande d'invalidation pour invalider le circuit tampon de conversion à action secondaire, et un comparateur de plage pour comparer une adresse logique désignée avec une plage d'adresses, dans l'unité de commande d'invalidation, en train d'être invalidée par l'unité de commande d'invalidation, et pour convertir l'adresse logique désignée lorsque l'adresse logique désignée est en dehors de la plage d'adresses. Avec la structure unique et non évidente de la présente invention, les opérations, autres que l'accès à un circuit tampon de conversion à action secondaire en train d'être mis à jour, peuvent être exécutées par les autres processeurs sans attente. BREVE DESCRIPTION DES DESSINS Les objectifs, particularités et avantages précédemment mentionnés de cette invention, ainsi que d'autres vont devenir plus évidents en se référant à la description détaillée qui va suivre de l'invention, prise en relation avec les dessins annexés, dans lesquels la figure 1 représente une conversion d'adresse d'une adresse logique en une adresse physique la figure 2 est un schéma fonctionnel représentant la configuration d'un système à multiprocesseur selon un mode de réalisation de la présente invention ;; la figure 3 représente un format d'informations de page logique la figure 4 est un schéma fonctionnel représentant la configuration d'un comparateur de plage 130 dans un processeur du système à multiprocesseur représenté sur la figure 2 la figure 5 est un schéma fonctionnel représentant la configuration d'un circuit de comparaison d'adresse 135 dans le comparateur de plage 130 de la figure 4 la figure 6 est un organigramme représentant l'opération d'invalidation d'une unité de commande d'invalidation 120 dans un processeur du système à multiprocesseur représenté sur la figure 2 ; et la figure 7 est un organigramme représentant l'opération de comparaison par le comparateur de plage 130 de la figure 4. DESCRIPTION DETAILLEE DU MODE DE REALISATION PREFERE On va décrire en détail un système à multiprocesseur selon un mode de réalisation préféré de la présente invention en se référant aux dessins annexés. En se référant à la figure 2, un système à multiprocesseur selon un mode de réalisation de la présente invention comprend une pluralité de processeurs 100, une mémoire principale 200, une mémoire secondaire 300, un bus d'invalidation 400 interconnectant les processeurs 100, et un bus de système 500 interconnectant les processeurs 100 et la mémoire principale 200. La mémoire principale 200 stocke des blocs incluant des programmes et des données. Les blocs qui ne sont pas souvent utilisés sont transférés vers la mémoire secondaire 300. La mémoire principale 200 stocke également une table de segments ayant des descripteurs de segment et des tables de pages ayant des descripteurs de page. Chaque processeur 100 possède un décodeur d'instruction 110, une unité de commande d'invalidation 120, un comparateur de plage 130, et un circuit tampon de conversion à action secondaire (TLB) 140. Le décodeur d'instruction 110 décode des instructions en provenance d'une mémoire de programme (non représentée) dans le processeur, une par une. Si l'instruction décodée est une instruction d'invalidation de TLB, le décodeur d'instruction 110 délivre un message d'invalidation au bus d'invalidation 400. Si l'instruction décorne demande l'accès à la mémoire principale 200, le décodeur d'instruction 110 délivre une adresse logique sur la ligne de signal 111. L'unité de commande d'invalidation 120 détermine si le message d'invalidation a été délivré sur le bus d'invalidation 400. Si le message d'invalidation a été délivré sur le bus d'invalidation 400, l'unité de commande d'invalidation 120 délivre des informations de page logique (décrites par la suite) sur une ligne de signal 121. L'unité de commande d'invalidation 120 possède, de préférence, un registre 120a pour stocker les informations de page logique. Le comparateur de plage 130 compare l'adresse logique sur la ligne de signal 111 aux informations de page logique sur la ligne de signal 121. Si l'adresse logique concorde avec les informations de page logique, le comparateur de plage 130 arrête de traiter avec la conversion d'adresse logique. S'il n'y a pas concordance, le comparateur de plage 130 délivre une adresse de page logique au circuit tampon de conversion à action secondaire (TLB) 140, et reçoit une adresse physique, qui correspond à l'adresse de page logique (par exemple, stockée dans le même couple que l'adresse physique), à partir du TLB 140. Le circuit tampon de conversion à action secondaire (TLB) 140 est une mémoire cache spéciale pour stocker (par exemple, enregistrer) des couples d'adresses logiques et d'adresses physiques. Chaque entrée du TLB 140 comprend une adresse physique et un binaire de validité. Le TLB 140 est indexé par une adresse logique, et sort l'adresse physique si le binaire de validité est actif. En se référant à la figure 3, des informations de page logique, en provenance de l'unité de commande d'invalidation 120, comprennent des informations d'adresse et des informations de masque. Chacune des informations d'adresse et des informations de masque est divisée en une partie segment et en une partie page. Les informations d'adresse sont une adresse de page logique en train d'être invalidée par ces dernières. Les informations de masque masquent la partie page des informations d'adresses lorsque le TLB 140 est invalidé par un segment. Ainsi, le TLB 140 peut être invalidé par un segment, aussi bien que par une page. Par exemple, si le TLB 140 est invalidé par une page, alors tous les binaires des informations de masque sont des "0". D'un autre côté, si le TLB 140 est invalidé par un segment, alors les binaires de la partie segment dans les informations de masque sont des "0", et les binaires de la partie page dans les informations de masque sont des "1". En se référant à la figure 4, le comparateur de plage 130 comprend un circuit de comparaison d'adresse 135, un indicateur de mise en attente 136, et un indicateur de redémarrage 137. La ligne de signal 111 est divisée en une partie ligne de signal de déplacement 113 et en une partie ligne de signal restante (segment et page) 112. La ligne de signal 112 est utilisée en tant qu'entrée du circuit de comparaison d'adresse 135. La ligne de signal 113 devient la ligne de signal 139 associée à une adresse de page physique en provenance du TLB 140. Le circuit de comparaison d'adresse 135 compare l'adresse logique sur la ligne de signal 112 et la partie adresse des informations de page logique sur la ligne de signal 121 en provenance de l'unité de commande d'invalidation 120. Lorsque le circuit de comparaison d'adresse 135 détecte une coïncidence, l'indicateur de mise en attente 136 arrête de convertir l'adresse logique jusqu'à ce que l'indicateur de redémarrage 137 indique le redémarrage de la conversion d'adresse logique. L'indicateur de redémarrage 137 détecte des changements dans le circuit de comparaison d'adresse 135 de coïncidence à non-coïncidence. En se référant à la figure 5, le circuit de comparaison d'adresse 135 dans le comparateur de plage 130 comprend des portes NON-OU exclusif (EXNOR) 131, des portes OU 132 et une porte ET 133. Chaque porte EXNOR 131 compare un binaire correspondant de l'adresse logique sur la ligne de signal 112 et la partie adresse des informations de page logique sur la ligne de signal 121 en provenance de l'unité de commande d'invalidation 120, et sort un "1" si les deux binaires sont égaux. Les portes OU 132 effectuent des opérations logiques OU entre les sorties des portes EXNOR 131 et la partie masque des informations de page logique sur la ligne de signal 121. Ainsi, les portes OU 132 masquent la comparaison d'adresse. La porte ET 133 effectue une opération logique ET entre les sorties des portes OU 132. Ainsi, la porte ET 133 sort un "1" si l'adresse logique sur la ligne de signal 112 est dans une plage de la partie adresse des informations de page logique sur la ligne de signal 121 en provenance de l'unité de commande d'invalidation 120. Par la suite et en se référant aux figures 2 à 7, on va décrire le fonctionnement du système à multiprocesseur selon le mode de réalisation précédemment mentionné de la présente invention. En se référant à la figure 6, quand l'unité de commande d'invalidation 120 reçoit un message d'invalidation par l'intermédiaire du bus d'invalidation 400 à l'étape S201, l'unité de commande d'invalidation 120 sort une adresse de page logique à invalider vers le TLB 140 à l'étape S202, et l'unité de commande d'invalidation 120 active des informations de page logique vers la ligne de signal 121 à l'étape S203. Cette activation des informations de page logique continue jusqu'à ce que l'invalidation de l'adresse de page logique soit achevée et la totalité de la plage d'adresses soit inactivée (étapes S204 et S205). En se référant à la figure 7, quand le comparateur de plage 130 reçoit une adresse logique en provenance du décodeur d'instruction 110, par l'intermédiaire de la ligne de signal 111 à l'étape S301, si les informations de page logique sont inactivées (par exemple, un "0") dans l'unité de commande d'invalidation 120 à l'étape S302, alors le comparateur de plage 130 continue à convertir l'adresse logique aux étapes S306 à S308. C'est-à-dire que le comparateur de plage 130 sort l'adresse de page logique vers le TLB 140 à l'étape S306, et reçoit une adresse de page physique en provenance du TLB 140 à l'étape S307. Après cela, le comparateur de plage 130 sort l'adresse physique vers la mémoire principale 200 par l'intermédiaire de la ligne de signal 139 et le bus de système 500, à l'étape S308. Si les informations de page logique sont activées (par exemple, un "1") Jans l'unité de commande d'invalidation 120 à l'étape S302, le comparateur de plage 130 détermine si l'adresse logique sur la ligne de signal 112 (voir figure 4) est dans une plage des informations de plage logique en provenance de l'unité de commande d'invalidation 120 à l'étape S303. Si l'adresse logique est dans la plage à l'étape S304, le comparateur de plage 130 arrête la conversion d'adresse logique à l'étape S305. S l'adresse logique est en dehors de la plage à l'étape S304, le comparateur de plage 130 attend l'achèvement de l'invalidation (par exemple, la mise à jour) du TLB 140 pour continuer la conversion d'adresse logique. Dans le mode de réalisation précédent, étant donné que l'invalidation de l'entrée dans le TLB a été achevée avant le traitement de l'instruction après l'instruction d'invalidation de TLB, la cohérence entre les adresses logiques et les adresses physiques dans la totalité des processeurs du système à multiprocesseur est assurée (par exemple, pas d'erreur de cohérence). La présente invention a été décrite en prenant un mode de réalisation préféré en tant qu'exemple, mais elle n'est pas nécessairement limitée au mode de réalisation précédent. Comme il est évident à partir de la description précédente, selon la présente invention, l'accès au TLB en train d'être invalidé dans un premier processeur d'un système à multiprocesseur peut être bloqué sans interférer ou sans affecter les opérations des autres processeurs du système à multiprocesseur. Ainsi, même si le TLB est en train d'être mis à jour, les opérations de traitement par les autres processeurs, autres que l'accès au TLB en train d'être invalidé, peuvent être exécutées. Ainsi, le système à multiprocesseur a augmenté ses performances, en comparaison au système classique. Tandis que l'invention a été décrite en termes d'un unique mode de réalisation préféré, les hommes de l'art reconnaîtront que l'invention peut être mise en pratique avec des modifications entrant dans l'esprit et dans le champ d'application des revendications annexées. REVENDICATIONS 1. Système à multiprocesseur ayant une pluralité de processeurs (100) et une mémoire (200), caractérisé en ce que chacun desdits processeurs (100) comprend un circuit tampon de conversion à action secondaire (TLB) (140) pour stocker des couples d'adresses logiques et d'adresses physiques une unité de commande d'invalidation (120) pour invalider ledit circuit tampon de conversion à action secondaire (TLB) (140) ; et un comparateur de plage (130) pour comparer une adresse logique désignée avec une plage d'adresses dans ladite unité de commande d'invalidation (120) en train d'être invalidée par ladite unité de commande d'invalidation (120), et pour convertir l'adresse logique désignée lorsque l'adresse logique désignée est en dehors de la plage d'adresses. 2. Système à multiprocesseur selon la revendication 1, caractérisé en ce que ledit comparateur de plage (130) comprend un convertisseur d'adresse pour convertir l'adresse logique désignée en une adresse physique correspondante un circuit de comparaison d'adresse (135) pour comparer l'adresse logique désignée avec la plage d'adresses de ladite unité de commande d'invalidation (120) en train d'être invalidée par ladite unité de commande d'invalidation (120) ; et un indicateur de mise en attente (136) pour arrêter la conversion d'adresse de ladite adresse logique désignée dans ledit convertisseur d'adresse, lorsque ledit circuit de comparaison d'adresse (135) détecte que l'adresse logique désignée est dans la plage d'adresses. 3. Système à multiprocesseur selon la revendication 2, caractérisé en ce que ledit circuit de comparaison d'adresse (135) comprend une pluralité de portes de coïncidence (131) pour détecter une coïncidence entre l'adresse logique désignée et la plage d'adresses ; une pluralité de portes de masquage (132), reliée à ladite pluralité de portes de coïncidence (131), pour masquer les binaires indiqués par la plage d'adresses ; et une porte (133), reliée à ladite pluralité de portes de masquage (132), pour effectuer une opération logique sur les sorties de ladite pluralité de portes de masquage (132). 4. Système à multiprocesseur selon la revendication 3, caractérisé en ce que- chaque porte de ladite pluralité de portes de coïncidence (131) est une porte NON-OU exclusif (EXNOR). 5. Système à multiprocesseur selon la revendication 3, caractérisé en- ce que chaque porte de ladite pluralité de portes de masquage (132) est une porte OU. 6. Système à multiprocesseur selon la revendication 3, caractérisé en ce que ladite porte (133) est une porte ET. 7. Système à multiprocesseur selon la revendication 2, caractérise en ce que ledit comparateur de plage (130) comprend, de plus un indicateur de redémarrage (137) pour redémarrer la conversion d'adresse dans ledit convertisseur d'adresse, lorsque ledit circuit de comparaison d'adresses (135) détecte que l'adresse logique désignée est en dehors de la plage c'adresses. 8. Système à multiprocesseur selon la revendication 1, caractérisé en ce que ladite unité de commande d'invalidation (120) comprend un registre (120a) pour stocker la plage d'adresses en train d'être invalidée. 9. Système à multiprocesseur selon la revendication 1, caractérisé en ce que chacun desdits processeurs (100) comprend un décodeur d'instruction (110), relié audit comparateur de plage (130), pour décoder une instruction pour détecter l'une parmi une première instruction pour accéder audit circuit tampon de conversion à action secondaire (TLB) (140) et une seconde instruction pour invalider ledit circuit tampon de conversion à action secondaire (TLB) (140). 10. Système à multiprocesseur selon la revendication 1, caractérisé en ce qu'il comprend, de plus un bus d'invalidation (400) pour transporter un message d'invalidation vers les autres processeurs (100) de ladite pluralité de processeurs (100). 11. Système à multiprocesseur selon la revendication 1, caractérisé en ce qu'il comprend, de plus un bus d'invalidation (400) pour transporter un message d'invalidation vers chaque unité de commande d'invalidation (120) des autres processeurs (100) de ladite pluralité de processeurs (100). 12. Processeur, caractérisé en ce qu'il comprend un circuit tampon de conversion à action secondaire (TLB) (140) pour stocker des couples d'adresses logiques et d'adresses physiques ; une unité de commande d'invalidation (120) pour invalider ledit circuit tampon de conversion à action secondaire (TLB) (140) ; et un comparateur de plage (130) pour comparer une adresse logique désignée avec une plage d'adresses dans ladite unité de commande d'invalidation (120) en train d'être invalidée par ladite unité de commande d'invalidation (120), et pour convertir l'adresse logique désignée lorsque l'adresse logique désignée est en dehors de la plage d'adresses. 13. Processeur selon la revendication 12, caractérisé en ce que ledit comparateur de plage (130) comprend un convertisseur d'adresse pour convertir l'adresse logique désignée en une adresse physique correspondante ; un circuit de comparaison d'adresse (135) pour comparer l'adresse logique désignée avec la plage d'adresses de ladite unité de commande d'invalidation (120) en train d'être invalidée par ladite unité de commande d'invalidation (120) ; et un indicateur de mise en attente (136) pour arrêter la conversion d'adresse de ladite adresse logique désignée dans ledit convertisseur d'adresse, lorsque ledit circuit de comparaison d'adresse (135) détecte que l'adresse logique désignée est dans la plage d'adresses. 14. Processeur selon la revendication 13, caractérisé en ce que ledit circuit de comparaison d'adresse (135) comprend une pluralité de portes de coïncidence (131) pour détecter une coïncidence entre l'adresse logique désignée et la plage d'adresses une pluralité de portes de masquage (132), reliée à ladite pluralité de portes de coïncidence (131), pour masquer les binaires indiqués par la plage d'adresses ; et une porte (133), reliée à ladite pluralité de portes de masquage (132), pour effectuer une opération logique sur les sorties de ladite pluralité de portes de masquage (132). 15. Processeur selon la revendication 14, caractérisé en ce que chaque porte de ladite pluralité de portes de coïncidence (131) est une porte NON-OU exclusif (EXNOR) . 16. Processeur selon la revendication 14, caractérisé en ce que chaque porte de ladite pluralité de portes de masquage (132) est une porte OU. 17. Processeur selon la revendication 14, caractérisé en ce que ladite porte (133) est une porte ET. 18. Processeur selon la revendication 13, caractérisé en ce que ledit ccmparateur de plage (130) comprend, de plus un indicateur de redémarrage (137) pour redémarrer la conversion d'adresse dans ledit convertisseur d'adresse, lorsque ledit circuit de comparaison d'adresse (135) détecte que l'adresse logique désignée est en dehors de la plage d'adresses. 19. Procédé de commande d'un accès à un circuit tampon de conversion à acticn secondaire (TLB) (140) dans un système à multiprocesseur ayant une pluralité de processeurs (100), caracterisé en ce que ledit procédé comprend les étapes su vantes de réception, par un processeur, d'une instruction pour invalider une plage d'adresses d'un circuit tampon de conversion à action secondaire (TLB) (140) ; et activation, par ledit processeur, de ladite plage d'adresses en train d'être invalidée jusqu'à ce que l'invalidation dudit circuit tampon de conversion à action secondaire (TLB) (140) soit achevée. 20. Procédé de commande de l'accès au circuit tampon de conversion à action secondaire (TLB) (140) selon la revendication 19, caractérisé en ce que ledit procédé comprend, de plus, les étapes suivantes de réception d'une adresse à accéder ; détermination pour savoir si l'adresse est dans la plage d'adresses ; conversion de l'adresse si l'adresse est déterminée comme étant dans la plage d'adresses ; et arrêt de la conversion de l'adresse si l'adresse est déterminée comme étant en dehors de la plage d'adresses. 21. Procédé de commande de l'accès au circuit tampon de conversion à action secondaire (TLB) (140) selon la revendication 20, caractérisé en ce que ledit procédé comprend, de plus, ltétape suivante de redémarrage de la conversion de l'adresse si l'adresse devient en dehors de la plage d'adresses.