FR2715746A1 - Procédé et système de remise à zéro d'un registre tampon de surveillance latérale de translation. - Google Patents

Procédé et système de remise à zéro d'un registre tampon de surveillance latérale de translation. Download PDF

Info

Publication number
FR2715746A1
FR2715746A1 FR9500892A FR9500892A FR2715746A1 FR 2715746 A1 FR2715746 A1 FR 2715746A1 FR 9500892 A FR9500892 A FR 9500892A FR 9500892 A FR9500892 A FR 9500892A FR 2715746 A1 FR2715746 A1 FR 2715746A1
Authority
FR
France
Prior art keywords
tlb
reset
request
processors
register
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
FR9500892A
Other languages
English (en)
Other versions
FR2715746B1 (fr
Inventor
Yoshihisa Yamada
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 FR2715746A1 publication Critical patent/FR2715746A1/fr
Application granted granted Critical
Publication of FR2715746B1 publication Critical patent/FR2715746B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/682Multiprocessor TLB consistency

Landscapes

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

Abstract

Système de commande de remise à zéro de TLB, dans un système de multiprocesseur incluant une mémoire principale (2) et une pluralité de processeurs (P12-P1n) dont chacun comporte un registre tampon de surveillance latérale pour translation (TLB) (16-1), comprenant: une unité de décodage pour décoder séquentiellement chacune des instructions, une unité d'exécution d'instruction (14-1), une unité de remise à zéro de TLB, une unité de communication pour communiquer avec les autres processeurs, un moyen de détermination pour déterminer si oui ou non l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB, et un moyen de commande d'exécution pour commander ladite unité d'exécution d'instruction. Ce système permet une remise à zéro du TLB selon un temps d'attente moindre.

Description

PROCEDE ET SYSTEME DE REMISE A ZERO D'UN REGISTRE
TAMPON DE SURVEILLANCE LATERALE DE TRANSLATION
La présente invention concerne un traitement de remise à zéro d'un registre tampon de surveillance latérale pour translation (TLB) et plus particulièrement, un procédé et un appareil permettant de réaliser un traitement de remise à zéro d'un TLB moyennant un temps d'attente moindre.
Dans un système d'ordinateur classique, un système de commande de remise à zéro de TLB est utilisé pour accélérer le traitement. Le système de commande de remise à zéro de TLB classique d'un système de multiprocesseur est représenté sur la figure 1. Le système de multiprocesseur inclut une pluralité de processeurs P101 à PlOn, une mémoire principale 2 et un indicateur F3. Chaque processeur inclut une section d'exécution 131-i (i = 1 à n) et un TLB 132-i. L'indicateur F3 indique qu'une requête de remise à zéro de TLB n'est pas autorisée à être délivrée lorsqu'il est établi et que la requête de remise à zéro de TLB est autorisée à être délivrée lorsqu'il est remis à l'état initial.
Lorsque l'un de la pluralité de processeurs, par exemple le processeur P101, est destiné à exécuter une instruction demandant en requête de remettre à zéro son propre TLB, la section d'exécution 131-1 du processeur P101 se réfère à l'indicateur F3 pour voir si oui ou non une requête de remise à zéro de TLB est autorisée à être délivrée. Lorsque la requête de remise à zéro de TLB n'est pas autorisée à être délivrée, la section d'exécution 131-1 attend jusqu'à ce que l'indicateur
F3 soit remis à l'état initial, c'est-à-dire jusqu'à que la délivrance de la requête de remise à zéro de
TLB soit autorisée. Lorsque la requête de remise à zéro de TLB est autorisée à être délivrée, la section d'exécution 131-1 établit l'indicateur F3 puis délivre des requêtes de remise à zéro de TLB aux processeurs autres que le processeur de délivrance
P101 contenu dans le système de multiprocesseur. Puis le processeur P101 attend des notifications de fin de traitement de remise à zéro de TLB provenant de tous les autres processeurs. Lorsque la section d'exécution 131-1 reçoit les notifications de fin de traitement de remise à zéro de TLB, elle remet à l'état initial l'indicateur F3 puis elle exécute l'instruction mentionnée ci-avant.
Par ailleurs, le processeur P101 réalise le traitement de remise à zéro de TLB pour son propre
TLB 132-1 en réponse à la requête de remise à zéro de
TLB délivrée depuis un autre processeur après que la section d'exécution 131-1 a exécuté une instruction ou tandis que le processeur P101 attend les notifications de fin de traitement de remise à zéro de TLB provenant des autres processeurs pour la requête de remise à zéro de TLB délivrée depuis le processeur P101. Lors de la réalisation du traitement de remise à zéro de TLB, la section d'exécution 131-1 délivre une notification de fin de traitement de remise à zéro de TLB à l'autre processeur qui a délivré la requête de remise à zéro de TLB.
De cette manière, dans le système de multiprocesseur classique comportant une pluralité de processeurs dont chacun inclut un TLB, se pose un problème consistant en ce que, lorsqu'un processeur est destiné à remettre à zéro le TLB pour stocker une information de translation d'adresse, après délivrance d'une requête de remise à zéro de TLB, le processeur a besoin d'attendre des notifications de fin de traitement de remise à zéro de TLB en provenance de tous les autres processeurs pour maintenir la coïncidence des contenus des TLB dans tous les processeurs.
Par ailleurs, lorsque le processeur reçoit des requêtes de remise à zéro de TLB délivrées par des processeurs autres que le processeur en question, le processeur traite séquentiellement les requêtes de remise à zéro de TLB une par une. Par conséquent, il existe un autre problème qui consiste en ce que les autres processeurs doivent attendre jusqu'à ce que les requêtes de remise à zéro de TLB délivrées depuis les processeurs soient traitées.
En outre, le temps requis pour réaliser le traitement de remise à zéro de TLB est allongé lorsque le nombre de processeurs contenus dans un système de multiprocesseur augmente, ce qui conduit à la dégradation de la capacité de traitement dans le système de multiprocesseur.
La présente invention a pour objet de proposer un procédé et un appareil permettant de réaliser une requête de remise à zéro de TLB moyennant un temps d'attente moindre.
Un autre objet de la présente invention consiste à proposer un procédé et un appareil permettant d'exécuter des instructions sans attendre des notifications de fin de traitement de remise à zéro de TLB provenant des autres processeurs en fonction des contenus de traitement des instructions.
Encore un autre objet de la présente invention consiste à proposer un procédé et un appareil permettant de réaliser une requête de remise à zéro de TLB entier et une requête de remise à zéro de TLB partiel moyennant un temps d'attente moindre.
Encore un autre objet de la présente invention consiste à proposer un procédé et un appareil permettant de transmettre une requête de remise à zéro de TLB et une notification de fin de traitement de remise à zéro de TLB moyennant un temps d'attente moindre.
Selon un premier aspect de la présente invention, le système de commande de remise à zéro de
TLB, dans un système de multiprocesseur qui inclut une mémoire principale et une pluralité de processeurs dont chacun comporte un registre tampon de surveillance latérale pour translation (TLB), comprend une unité de décodage pour décoder séquentiellement chacune des instructions, une unité d'exécution d'instruction, une unité de remise à zéro de TLB, une unité de communication pour communiquer avec les autres processeurs, une unité de détermination pour déterminer si oui ou non l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB et une unité de commande d'exécution pour commander ladite unité d'exécution d'instruction afin d'exécuter l'instruction décodée lorsqu'il est déterminé par ledit moyen de détermination que l'instruction décodée n'est pas l'une quelconque des instructions demandant en requête la remise à zéro ou la mise à jour du TLB et pour commander ladite unité de remise à zéro de TLB afin de remettre à zéro le
TLB lorsqu'il est déterminé par ledit moyen de détermination que l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB pour commander ladite unité de communication afin de transmettre une requête de remise à zéro de TLB et pour commander ledit moyen de décodage afin de décoder l'instruction suivante sans attendre des notifications de fin de traitement de remise à zéro de TLB provenant des autres processeurs après que la requête de remise à zéro de TLB est transmise lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête de remettre à zéro le TLB.
Selon un autre aspect de la présente invention, le système de commande de remise à zéro de
TLB, dans un système de multiprocesseur incluant une mémoire principale et une pluralité de processeurs dont chacun comporte un registre tampon de surveillance latérale pour translation (TLB), comprend une unité de décodage pour décoder séquentiellement chacune des instructions, une unité d'exécution d'instruction, une unité de remise à zéro de TLB, une unité de communication pour communiquer avec les autres processeurs, une unité de stockage de requête permettant de stocker des requêtes de remise à zéro de TLB transmises depuis les autres processeurs et reçues par l'unité de communication et une unité de gestion de stockage permettant de générer des données d'état de stockage indiquant si oui ou non une quelconque requête de remise à zéro de
TLB est présente dans ladite unité de stockage de requête, pour lire la requête de remise à zéro de TLB dans ladite unité de stockage de requête en réponse à une commande de lecture et pour remettre à zéro ladite unité de stockage de requête en réponse à une commande de remise à zéro de stockage, une unité de détermination pour déterminer si oui ou non l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro le TLB, de mettre à jour le TLB ou de se référer au TLB et une unité de commande d'exécution pour commander ladite unité d'exécution d'instruction afin d'exécuter l'instruction décodée lorsqu'il est déterminé par ledit moyen de détermination qu'il n'y a pas de requête de remise à zéro de TLB dans le registre de requête ou que l'instruction décodée n'est pas une instruction demandant en requête de remettre à zéro le TLB, de mettre à jour le TLB ou de se référer au
TLB et qu'une quelconque requête de TLB est présente dans le registre de requête, pour délivrer la commande de lecture audit moyen de gestion de stockage et la commande de remise à zéro de TLB audit moyen de remise à zéro de TLB afin de réaliser un traitement de remise à zéro de TLB correspondant à la requête de TLB présente dans ledit moyen de stockage de requête lorsqu'il est déterminé à partir des données d'état de stockage qu'une quelconque requête de TLB provenant des autres processeurs est présente dans le registre de requête et lorsqu'il est déterminé par ledit moyen de détermination que l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro le TLB, de mettre à jour le TLB ou de se référer au TLB, et pour commander ledit moyen de communication afin de transmettre une notification de fin de traitement de
TLB à l'un de la pluralité de processeurs demandant en requête la requête de TLB après réalisation du traitement.
Selon encore un autre aspect de la présente invention, dans un système de multiprocesseur incluant une mémoire principale et une pluralité de processeurs dont chacun comporte un registre tampon de surveillance latérale pour translation (TLB), un procédé d'instruction d'exécution, qui inclut des instructions nécessitant de remettre à zéro les TLB de la pluralité de processeurs lors d'une requête à l'un de la pluralité de processeurs, comprend les étapes de
décodage séquentiel de chacune des instructions
réalisation d'une première détermination pour voir si oui ou non l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro ou de mettre la jour la totalité du
TLB ; et
réalisation d'une seconde détermination pour voir Si oui ou non une quelconque requête de remise à zéro de TLB provenant des autres processeurs est présente dans un registre de requête
lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB et lorsqu'il est déterminé qu'aucune requête de remise à zéro de TLB provenant d'autres processeurs n'est présente dans un registre de requête, réalisation d'une première opération qui remet à zéro le TLB et qui délivre une requête de remise à zéro de TLB aux autres processeurs ; et
après délivrance de la requête de remise à zéro de TLB, réalisation de ladite étape de décodage séquentiellement pour l'instruction suivante lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête seulement la remise à zéro de la totalité du
TLB.
Lorsque l'instruction décodée est l'une quelconque des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB et lorsqu'au moins une requête de remise à zéro de TLB entier provenant des autres processeurs est présente dans un registre de requête, une opération peut être réalisée pour remettre à zéro le TLB afin de remettre à l'état initial le registre de requête, pour délivrer une notification de fin de traitement de remise à zéro de TLB à certains de la pluralité de processeurs délivrant la requête de remise à zéro de
TLB et pour délivrer une requête de remise à zéro de
TLB aux autres processeurs.
Par ailleurs, lorsque l'instruction décodée est l'une quelconque des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB et lorsqu'une quelconque requête de remise à zéro de
TLB partiel provenant des autres processeurs est présente dans un registre de requête sans la requête de remise à zéro de TLB entier, une opération peut être réalisée pour remettre à zéro le TLB de façon partielle en réponse à chacune des requêtes de remise à zéro de TLB partiel afin d'ôter chaque requête de
TLB partiel du registre de requête, pour délivrer une notification de fin de traitement de remise à zéro de
TLB à certains de la pluralité de processeurs délivrant les requêtes de remise à zéro de TLB partiel et pour délivrer une requête de remise de TLB aux autres processeurs.
Les objets et avantages de la présente invention mentionnés ci-avant ainsi que d'autres seront davantage pleinement compris à la lumière de la description détaillée qui suit que l'on lira en relation avec les dessins annexés parmi lesquels
la figure 1 est un schéma fonctionnel qui représente un système de commande de remise à zéro de registre tampon de surveillance latérale pour translation (TLB) classique dans un multiprocesseur ;
la figure 2 est un schéma fonctionnel qui représente un système de commande de remise à zéro de
TLB dans un système de multiprocesseur selon un premier mode de réalisation de la présente invention i
la figure 3 est un schéma fonctionnel qui représente le système de commande de remise à zéro de
TLB du premier mode de réalisation dans un processeur P11 représenté sur la figure 2 ;
la figure 4 est un organigramme permettant d'expliquer le fonctionnement du système de commande de remise à zéro de TLB du premier mode de réalisation lorsqu'une requête de remise à zéro de
TLB est délivrée
la figure 5 est un organigramme permettant d'expliquer le fonctionnement du système de commande de remise à zéro de TLB du premier mode de réalisation lorsque des requêtes de remise à zéro de
TLB reçues depuis les autres processeurs sont traitées ;
la figure 6 est un organigramme permettant d'expliquer le fonctionnement du système de commande de remise à zéro de TLB du premier mode de réalisation lorsqu'une requête de remise à zéro de
TLB est reçue depuis un autre processeur et lorsqu'une notification de fin de traitement de remise à zéro de TLB est reçue ;
la figure 7 est un schéma fonctionnel qui représente le système de commande de remise à zéro de
TLB dans un système de multiprocesseur selon un second mode de réalisation de la présente invention ;
les figures 8A et 8B sont des organigrammes qui décrivent le fonctionnement du système de commande de remise à zéro de TLB dans un système de multiprocesseur selon le second mode de réalisation de la présente invention ; et
les figures 9A et 9B sont des schémas qui représentent les formats d'une requête et d'une notification de remise à zéro de TLB.
Un système de commande de remise à zéro de registre tampon de surveillance latérale pour translation (TLB) selon la présente invention est décrit ci-après par report aux dessins annexés.
Tout d'abord, le système de commande de remise à zéro de TLB utilisé dans un système de multiprocesseur selon un premier mode de réalisation de la présente invention est décrit ci-après par report aux figures 2 et 3. Le système de multiprocesseur inclut une mémoire principale 2, une pluralité de processeurs Pli (i = 1 à n) et un bus système qui connecte la mémoire principale 2 et la pluralité de processeurs Pli les uns aux autres. Le bus système inclut un bus de données pour transférer des données, un bus d'adresse pour transférer une adresse et un bus de commande pour transférer des signaux de commande.
Chacun de la pluralité de processeurs Pli présente la même structure. Par conséquent, la structure de chaque processeur est décrite ci-après en prenant le processeur P11 en tant qu'exemple. Par report à la figure 2, le processeur Pli inclut essentiellement une unité de commande de bus 12-i, une unité d'exécution 14-1, un registre tampon de surveillance latérale pour translation (TLB) 16-1, un jeu d'indicateurs de notification de fin 18-i, un indicateur d'invalidation 20-1 et un registre de requête 24-1. Les indicateurs de notification de fin du jeu 18-1 sont prévus respectivement pour les processeurs P12 à Pln autres que le processeur P11.
Le détail du processeur P11 est présenté sur la figure 3. L'unité d'exécution 14-1 inclut un registre d'instruction 32-1, un décodeur d'instruction 34-1 et une porte ET 36-1, un dispositif de gestion de registre de requête 38-1, une unité de commande d'exécution d'instruction 40-1, une unité de détermination 42-1 et une unité de remise à zéro de
TLB 44-1. L'unité d'exécution 14-1 inclut une unité d'exécution d'instruction (non représentée) qui est bien connue de l'homme de l'art. La description de l'unité d'exécution d'instruction est omise mais celle-ci est commandée par l'unité de commande d'exécution d'instruction 40-1. Le processeur P11 est muni d'une porte ET 22-1 afin de remettre à l'état initial le jeu d'indicateurs de notification de fin 18-1 et l'indicateur d'invalidation 20-1.
L'unité de commande de bus 12-1 acquiert un droit maître de bus et elle émet et reçoit depuis le bus système des données, une commande, une requête et une notification. Lors de la réception d'une commande pour une requête de remise à zéro de TLB, c'est-à- dire d'une requête de remise à zéro de TLB entier ou d'une requête de remise à zéro de TLB partiel provenant de l'unité d'exécution 14-1 l'unité de commande de bus 12-1 transmet la requête de remise à zéro de TLB aux autres processeurs P12 à Pln et lors de la réception d'une commande pour une notification de fin de traitement de remise à zéro de TLB depuis l'unité d'exécution 14-1, l'unité de commande de bus 12-1 transmet la notification de fin à celui des processeurs P12 à Pln qui a délivré une requête de remise à zéro de TLB. Lors de la réception d'une notification de fin de traitement de remise à zéro de
TLB provenant de l'un des processeurs P12 à Pln via le bus système, l'unité de commande de bus 12-1 établit l'un des indicateurs de notification de fin du jeu 18-1 correspondant au processeur qui a délivré la notification de fin. Lorsque tous les indicateurs de notification de fin 18-1 sont établis, la porte ET 22-1 remet à l'état initial le jeu d'indicateurs de fin 18-1 et l'indicateur d'invalidation 20-1. Lors de la réception de la requête de remise à zéro de TLB, l'unité de commande de bus 12-1 la stocke dans le registre de requête 24-1 séquentiellement. Un dispositif de gestion de registre de requête 38-1 gère le contenu du registre de requête 24-1. C'est-àdire que lorsqu'une quelconque requête de remise à zéro de TLB est présente dans le registre de requête 24-1, le dispositif de gestion 38-1 émet en sortie une notification pour la porte ET 36-1. Par ailleurs, le dispositif de gestion 38-1 émet en sortie le nombre de requêtes de remise à zéro de TLB entier et le nombre de requêtes de remise à zéro de TLB partiel sur l'unité de commande d'exécution d'instruction 401 et lit les requêtes de remise à zéro de TLB dans le registre de requête 24-1 afin de les émettre en sortie sur l'unité de commande 40-1. C'est-à-dire que le dispositif de gestion 38-1 lit seulement une requête de remise à zéro de TLB entier lorsque la requête de remise à zéro de TLB entier est incluse dans les requêtes stockées dans le registre de requête 24-1. Par ailleurs, le dispositif de gestion 38-1 lit séquentiellement des requêtes de remise à zéro de TLB partiel dans le registre de requête 24-1 lorsque seulement les requêtes de remise à zéro de
TLB partiel sont présentes dans le registre de requête 24-1 et qu'aucune requête de remise à zéro de
TLB entier n'est présente. La requête de remise à zéro de TLB entier demande en requête de remettre à zéro la totalité du TLB 16-1 et la requête de remise à zéro de TLB partiel demande en requête de remettre à zéro une partie du TLB désignée par la requête. En outre, le dispositif de gestion 38-1 remet à l'état initial le registre de requête 24-1 en totalité ou partiellement, c'est-à-dire en réponse à une commande délivrée depuis l'unité de commande d'exécution d'instruction 40-1. Le registre d'instruction 32-1 verrouille séquentiellement des instructions comme dans un processeur habituel. Cette technique est bien connue de l'homme de l'art et par conséquent, sa description détaillée est omise. Le décodeur d'instruction 34-1 décode séquentiellement l'instruction verrouillée dans le registre 32-1 et émet en sortie le résultat décodé sur l'unité de détermination 42-1. L'unité de détermination 42-1 émet en sortie un signal sur la porte ET 36-1 sur la base du résultat décodé, c'est-à-dire lorsque l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro le TLB 16-1, de mettre à jour le TLB 16-1 ou de se référer au TLB La La porte ET 36-1 émet en sortie un signal d'interruption sur l'unité de commande d'exécution d'instruction 40-1 sur la base du signal provenant de l'unité de détermination 42-1 et du signal provenant du dispositif de gestion de registre de requête 38-1.
Par ailleurs, l'unité de détermination 42-1 émet en sortie sur l'unité de commande d'exécution d'instruction 40-1 un signal indiquant que l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro le TLB 16-1, de mettre à jour le TLB 16-1 ou de se référer au TLB 16-1.
Lors de la réception de l'interruption provenant de la porte ET 36-1, l'unité de commande d'exécution d'instruction 40-1 effectue une vérification pour voir si le nombre de requêtes de remise à zéro de TLB entier vaut zéro sur la base de l'information provenant du dispositif de gestion 381. Si ce nombre est supérieur à zéro, l'unité de commande 40-1 délivre une commande de remise à zéro totale sur l'unité de remise à zéro de TLB 44-1 de telle sorte que l'unité 44-1 remet à zéro le TLB 16-1 en totalité et une commande de remise à l'état initial totale sur le dispositif de gestion 38-1 de telle sorte que le dispositif de gestion 38-1 remet à l'état initial le registre de requête en totalité sans lire une quelconque requête de remise à zéro de
TLB partiel même si elle est présente. Si le nombre de requêtes de remise à zéro de TLB entier est de zéro et si le nombre de requêtes de remise à zéro de
TLB partiel est supérieur à zéro, l'unité de commande 40-1 délivre une commande de lecture au dispositif de gestion 38-1. Le dispositif de gestion 38-1 lit séquentiellement les requêtes de remise à zéro de TLB partiel pour les émettre en sortie sur l'unité de commande 40-1. L'unité de commande 40-1 délivre une commande de remise à zéro partielle à l'unité de remise à zéro de TLB 44-1 sur la base de chacune des requêtes de remise à zéro de TLB partiel lues de telle sorte que l'unité 44-1 remet à zéro le TLB 16-1 en partie. Par ailleurs, l'unité de commande 40-1 délivre une commande de remise à l'état initial partielle pour le dispositif de gestion 38-1 de telle sorte que le dispositif de gestion 38-1 remet à l'état initial partiellement une partie du registre de requête correspondant à chaque requête de remise à zéro de TLB partiel lue. Lorsque le traitement de remise à zéro de TLB est terminé, l'unité de commande 40-1 délivre à l'unité de commande de bus 12-1 une commande pour délivrer une notification de fin de traitement de remise à zéro de TLB. L'unité 12-1 délivre la notification de fin au processeur qui a délivré la requête de remise à zéro de TLB. La notification de fin de traitement de remise à zéro de
TLB inclut un identifieur du processeur qui a délivré la requête de remise à zéro de TLB en tant qu'adresse de destination, un identifieur du processeur P11 en tant qu'adresse source et des données indiquant que le TLB 16-1 est remis à zéro. Lorsque le signal provenant de l'unité de détermination 42-1 indique que l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB 16-1, l'unité de commande 40-1 délivre la commande de remise à zéro totale à l'unité de remise à zéro de TLB 44-1. Par ailleurs, l'unité de commande 40-1 se réfère à l'indicateur d'invalidation 20-1 pour voir si oui ou non la requête de remise à zéro de TLB est autorisée à être délivrée. Lorsque l'indicateur d'invalidation 20-1 est établi, l'unité de commande 40-1 attend jusqu'à ce que l'indicateur d'invalidation 20-1 soit remis à l'état initial.
Lorsque l'indicateur d'invalidation 20-1 est dans l'état de remise à l'état initial, l'unité de commande 40-1 délivre à l'unité de commande de bus 12-1 une commande pour délivrer la requête de remise à zéro de TLB. L'unité 12-1 diffuse la requête de remise à zéro de TLB sur les processeurs P12 à Pln.
La requête de remise à zéro de TLB inclut des données qui indiquent que la requête est diffusée en tant qu'adresse de destination, un identifieur du processeur P11 en tant qu'adresse source, des données indiquant si la requête est une requête de remise à zéro de TLB entier ou une requête de remise à zéro de
TLB partiel et des données indiquant une région qui doit être remise à zéro lorsque la requête est la requête de remise à zéro de TLB partiel.
Puis le fonctionnement du système de commande de remise à zéro de TLB selon le premier mode de réalisation de la présente invention est décrit ci-après par report aux figures 4 à 6.
Tout d'abord, par report à la figure 6, l'unité de commande de bus vérifie si oui ou non il y a une quelconque entrée au niveau d'une étape S50.
Lorsqu'il y a une quelconque entrée, il est vérifié au niveau d'une étape S52 si oui ou non l'entrée est une requête de remise à zéro de TLB. Si la réponse est affirmative au niveau de l'étape S52, l'unité de commande de bus 12-1 stocke la requête de remise à zéro de TLB dans le registre de requête 24-1 au niveau d'une étape S54. Si la réponse est négative au niveau de l'étape S52, une étape S56 est exécutée pour voir si oui ou non une notification de fin de traitement de remise à zéro de TLB est entrée. Si la réponse est négative au niveau de l'étape S56, la commande revient à l'étape S50. Si la réponse est affirmative au niveau de l'étape S56, la commande passe à une étape S58 au niveau de laquelle l'unité de commande de bus 12-1 établit celui du jeu d'indicateurs de notification de fin 18-1 qui correspond au processeur qui a délivré la notification de fin, sur la base de l'adresse de source contenue dans la notification de fin. Au niveau d'une étape S60, il est vérifié si oui ou non tous les indicateurs de notification de fin sont établis. Si la réponse est négative au niveau de l'étape S60, la commande revient à l'étape S50 pour attendre les autres notifications de fin de traitement de remise à zéro de TLB. Si la réponse est affirmative au niveau de l'étape S60, la porte ET 221 remet à l'état initial le jeu d'indicateurs de notification de fin 18-1 et l'indicateur d'invalidation 20-1 au niveau des étapes S62 et S64.
Puis par report à la figu l'unité de commande de bus 12-1 au niveau d'une étape
S12 et l'unité de commande 12-1 diffuse la requête de remise à zéro de TLB aux processeurs P12 à Pln via le bus système. Au niveau d'une étape S13, l'unité de commande d'exécution d'instruction 40-1 délivre une commande de remise à zéro totale pour l'unité de remise à zéro de TLB 44-1, laquelle remet à zéro le
TLB 16-1 en totalité. Ensuite, l'unité de commande 40-1 détermine sur la base de l'information provenant de l'unité de détermination 42-1 au niveau d'une étape S14 si oui ou non l'opération d'attente est nécessaire, c'est-à-dire si oui ou non l'instruction décodée est une instruction demandant en requête un quelconque traitement après que les remises à zéro des TLB des autres processeurs P12, Pln sont terminées. Si la réponse est négative au niveau de l'étape S14, la commande se termine et l'unité de commande 40-1 démarre le traitement de l'instruction suivante. Si la réponse est affirmative au niveau de l'étape S14, l'unité de commande 40-1 attend d'une étape S15 que l'indicateur d'invalidation 20-1 soit remis à l'état initial par les notifications de fin pour la requête de remise à zéro de TLB délivrée depuis les autres processeurs P12 à Pln. Lorsque l'indicateur d'invalidation est remis à l'état initial au niveau de l'étape S15, l'étape S16 est exécutée de telle sorte que l'unité de commande 40-1 commande l'unité d'exécution d'instruction (non représentée) afin d'exécuter l'instruction décodée.
Il est à noter que lorsqu'une instruction de remise à zéro de TLB accompagnée du traitement de coïncidence d'un cache doit être exécutée, l'instruction est exécutée pour maintenir un ordre correct entre le traitement de remise à zéro de TLB et le traitement de coïncidence du cache avant et après l'exécution de l'instruction.
Puis le fonctionnement du système de commande de remise à zéro de TLB lorsque la requête de remise à zéro de TLB est stockée est décrit ciaprès par report à la figure 5. Par report à la figure 5, au niveau d'une étape 22, le registre d'instruction 32-1 verrouille une instruction et le décodeur d'instruction 34-1 décode l'instruction verrouillée dans le registre 32-1. Au niveau d'une étape S24, l'unité de détermination 42-1 détermine si oui non l'instruction est l'une des instructions demandant en requête de remettre à zéro le TLB 16-1, de mettre à jour le TLB 16-1 ou de se référer au TLB 16-1. Si la réponse est négative au niveau de l'étape
S24, la commande passe à une étape S42 au niveau de laquelle l'unité de commande 40-1 commande l'unité d'exécution d'instruction (non représentée) afin d'exécuter l'instruction décodée. Si la réponse est affirmative au niveau de l'étape S24, le traitement de remise à zéro de TLB est exécuté. Lors du traitement de remise à zéro de TLB, l'unité de commande d'exécution d'instruction 40-1 détermine à partir de l'information provenant du dispositif de gestion de registre de requête 38-1 si oui ou non au moins une instruction de remise à zéro de TLB est présente dans le registre de requête 24-1. Si la réponse est affirmative au niveau de l'étape S28, l'unité de commande 40-1 délivre une commande de remise à zéro de TLB entier à l'unité de remise à zéro de TLB 44-1, laquelle remet à zéro le TLB 16-1 au niveau d'une étape S30. Puis l'unité de commande 40-1 délivre au niveau d'une étape S32 une commande au dispositif de gestion 38-1, lequel remet à l'état initial le registre de requête 24-1 en totalité en réponse à la commande. Ensuite, l'unité de commande 40-1 délivre au niveau d'une étape S34 une commande à l'unité de commande de bus 12-1, laquelle diffuse la notification de fin de traitement de remise à zéro de
TLB. Lors de la réception de la notification de fin diffusée, les processeurs P12 à Pln établissent les indicateurs de notification de fin correspondants dans les jeux 18-2 à 18-n. Puis la commande passe à l'étape S42. C'est-à-dire que lorsqu'au moins une requête de remise à zéro de TLB entier est stockée dans le registre de requête 24-l, seulement le traitement de remise à zéro de TLB est réalisé indépendamment des requêtes de remise à zéro de TLB partiel stockées dans le registre 24-1.
Si la réponse est négative au niveau de l'étape S28, l'unité de commande 40-1 délivre au niveau d'une étape S36 une commande de lecture au dispositif de gestion 38-1, lequel lit l'une des requêtes de remise à zéro de TLB partiel dans le registre de requête 24-1. L'unité de commande 40-1 délivre une commande de remise à zéro de TLB partiel à l'unité de remise à zéro de TLB 44-1 sur la base de la requête de lecture de TLB partiel lue et l'unité 44-1 remet à zéro le TLB 16-1 de façon partielle. Au niveau d'une étape S38, l'unité de commande délivre une commande à l'unité de commande de bus 12-i, laquelle transmet la notification de fin de traitement de remise à zéro de TLB au processeur qui a délivré la requête de remise à zéro de TLB partiel lue en réponse à la commande. Au niveau d'une étape
S40, il est déterminé si oui ou non une quelconque requête de remise à zéro de TLB partiel ne subsiste pas. Si la réponse est négative au niveau de l'étape
S40, une autre requête de remise à zéro de TLB partiel est lue au niveau de l'étape S36. Si la réponse est affirmative au niveau de l'étape S40, la commande passe à l'étape S42.
Puis le système de commande de remise à zéro de TLB selon le second mode de réalisation de la présente invention est décrit par report aux figures 7 à 9B. Tout d'abord, par report à la figure 7, le bus système n'est pas prévu et un indicateur F est en outre prévu pour indiquer l'état de transmission d'une requête ou notification. Une pluralité de processeurs P21 à P2n contenus dans un système de multiprocesseur sont connectés les uns aux autres et chaque processeur P2i (i = 1 à n) n'est pas prévu avec l'unité de commande de bus, à la différence du premier mode de réalisation. L'unité d'exécution 14-1 vérifie l'indicateur F pour voir si oui ou non la transmission est autorisée et elle établit l'indicateur F lorsque la transmission est autorisée afin de transmettre la requête ou notification.
L'unité d'exécution 14-1 est connectée aux indicateurs de notification de fin des jeux 18-2 à 18-n correspondant au processeur P21 et elle transmet la notification de fin au processeur qui a délivré la requête de remise à zéro de TLB, c'est-à-dire qu'elle établit l'indicateur de notification de fin dans le processeur qui a délivré la requête de remise à zéro de TLB. Par ailleurs, après que la transmission est autorisée, l'unité d'exécution 14-1 écrit une requête de remise à zéro de TLB dans une partie de registre de requête 24-1 de l'autre processeur P2i qui correspondant au processeur P21. Le reste de la structure du processeur P2i est la même que celle du processeur Pli selon le premier mode de réalisation et par conséquent, sa description est omise.
Par report aux figures 9A et 9B, les formats de la requête de remise à zéro de TLB et de la notification de fin de traitement de remise à zéro de TLB sont décrits. Sur la figure 9A, la requête ou notification comporte une zone de destination permettant de stocker une adresse de destination, une zone de source permettant de stocker une adresse de source et une zone de requête/notification de fin. La zone de destination est munie d'une sous-zone d'un bit indicative d'une diffusion. Ce format est utilisé pour transmettre la requête ou la notification de fin. Par report à la figure 9B, la requête ou notification comporte une zone de destination permettant de stocker une adresse de destination, une zone de source permettant de stocker une adresse de source et une zone de requête. La zone de destination est munie d'une sous-zone d'un bit indicative d'une diffusion et la zone de requête est munie d'une souszone d'un bit indicative de la notification de fin.
Ce format est utilisé pour transmettre la requête avec la notification de fin lorsque la requête de remise à zéro de TLB est stockée dans le registre de requête 24-1 et que la requête de remise à zéro de
TLB est délivrée depuis le processeur P21.
Puis le fonctionnement du système de commande de remise à zéro de TLB est décrit ci-après par report aux figures 8A et 8B. Par report à la figure 8A, au niveau d'une étape 102, le registre d'instruction 32-1 verrouille une instruction et le décodeur d'instruction 34-1 décode l'instruction verrouillée dans le registre 32-1. Au niveau d'une étape S104, l'unité de détermination 42-1 détermine si oui ou non l'instruction est l'une des instructions demandant en requête de remettre à zéro le TLB 16-1, de mettre à jour le TLB 16-1 ou de se référer au TLB 16-1. Si la réponse est négative au niveau de l'étape S104, la commande passe à une étape
S106 au niveau de laquelle l'unité de commande 40-1 commande l'unité d'exécution d'instruction (non représentée) pour exécuter l'instruction décodée. Si la réponse est affirmative au niveau de l'étape S104, il est déterminé au niveau d'une étape S108 si oui ou non une quelconque requête de remise à zéro de TLB est stockée dans le registre ou tampon de requête 241. Si la réponse est négative au niveau de l'étape
S108, la commande passe à une étape S122. Si la réponse est affirmative au niveau de l'étape S108, une étape S110 est exécutée, étape au niveau de laquelle l'unité de commande d'exécution d'instruction 40-1 détermine à partir de l'information provenant du dispositif de gestion de registre de requête 38-1 si oui ou non au moins une instruction de remise à zéro de TLB entier est présente dans le registre de requête 24-1. Si la réponse est affirmative au niveau de l'étape S100, l'unité de commande 40-1 délivre une commande de remise à zéro de TLB entier à l'unité de remise à zéro de TLB 44-1, laquelle remet à zéro le TLB 16-1 au niveau d'une étape S112. Puis l'unité de commande 40-1 délivre au niveau d'une étape S114 une commande au dispositif de gestion 38-1, lequel remet à l'état initial le registre de requête 24-1 en totalité en réponse à la commande. Si la réponse est négative au niveau de l'étape S110, l'unité de commande 40-1 délivre au niveau d'une étape S116 une commande de lecture au dispositif de gestion 38-1 lequel lit l'une des requêtes de remise à zéro de TLB partiel dans le registre de requête 24-1. L'unité de commande 40-1 délivre une commande de remise à zéro de TLB partiel à l'unité de remise à zéro de TLB 44-1 sur la base de la requête de remise à zéro de TLB partiel lue et l'unité 44-1 remet à zéro le TLB 16-1 de façon partielle. Au niveau d'une étape S120, il est déterminé si oui ou non une quelconque requête de remise à zéro de TLB partiel ne subsiste pas. Si la réponse est négative au niveau de l'étape S120, une autre requête de remise à zéro de TLB partiel est lue au niveau de l'étape S116. Si la réponse est affirmative au niveau de l'étape S120, la commande passe à l'étape S122.
Puis par report à la figure 8B, au niveau d'une étape S122, l'unité de détermination 42-1 détermine si oui ou non l'instruction est l'une des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB 16-1. Si la réponse est négative au niveau de l'étape S122, une étape S142 est exécutée de telle sorte que l'unité d'exécution 14-1 se réfère à l'indicateur F et établisse l'indicateur F si l'indicateur F n'est pas établi. Si l'indicateur F est établi, l'unité d'exécution 14-1 attend jusqu'à ce que l'indicateur F soit remis à l'état initial. Puis l'unité d'exécution 14-1 transmet la notification de fin de traitement de remise à zéro de TLB au processeur qui a délivré la requête de remise à zéro de TLB en utilisant le format représenté sur la figure 9A. Si la réponse est affirmative au niveau de l'étape S122, au niveau d'une étape S124, l'unité de commande d'exécution d'instruction 40-1 se réfère à l'indicateur d'invalidation 20-1 pour voir si l'indicateur d'invalidation 20-1 est remis à l'état initial ou établi, c'est-à-dire si la transmission est prête. Au niveau d'une étape 5126, l'unité de commande 40-1 attend jusqu'à ce que la transmission devienne prête, c'est-à-dire jusqu'à ce que l'indicateur d'invalidation soit remis à l'état initial. Puis l'unité d'exécution 14-1 se réfère à l'indicateur F et établit l'indicateur F si l'indicateur F n'est pas établi. Si l'indicateur F est établi, l'unité d'exécution 14-1 attend jusqu'à ce que l'indicateur F soit remis à l'état initial. Si la réponse est affirmative au niveau de l'étape S126, l'unité de commande 40-1 établit l'indicateur d'invalidation 201 au niveau d'une étape S128 afin d'empêcher la délivrance d'une autre requête de remise à l'état initial de TLB depuis le processeur P21. Puis l'unité d'exécution 14-1 diffuse la requête de remise à zéro de TLB aux processeurs P22 à P2n au niveau d'une étape S130. Dans ce cas, si le traitement de remise à zéro de TLB est réalisé au niveau de l'étape S112 ou
S116, la commande de remise à zéro de TLB est munie d'une notification de fin qui utilise le format représenté sur la figure 9B. Ainsi, l'indicateur de notification de fin est établi dans le processeur qui a délivré la requête de remise à zéro de TLB tandis que le bit de notification de fin est négligé dans le processeur qui n'a délivré aucune requête de remise à zéro de TLB. Au niveau d'une étape S132, l'unité de commande d'exécution d'instruction 40-1 délivre une commande de remise à zéro totale à l'unité de remise à zéro de TLB 44-1 afin de remettre à zéro le TLB 161 en totalité sauf si le TLB 16-1 n'est pas remis à zéro au niveau des étapes 110 à 120. Ensuite, l'unité de commande 40-1 détermine sur la base de l'information provenant de l'unité de détermination 42-1 au niveau d'une étape S134 si oui ou non l'opération d'attente est nécessaire, c'est-à-dire si oui ou non l'instruction décodée est une instruction qui demande en requête un traitement après que la remise à zéro des TLB des autres processeurs P22 à
P2n est terminée. Si la réponse est négative au niveau de l'étape S134, la commande se termine et l'unité de commande 40-1 démarre le traitement de l'instruction suivante. Si la réponse est affirmative au niveau de l'étape S134, l'unité de commande 40-1 attend au niveau d'une étape S136 que l'indicateur d'invalidation 20-1 soit remis à l'état initial par les notifications de fin pour la requête de remise à zéro de TLB délivrée depuis les autres processeurs
P12 à Pln. Lorsque l'indicateur d'invalidation est remis à l'état initial au niveau de l'étape S136, l'étape S140 est exécutée de telle sorte que l'unité de commande 40-1 commande l'unité d'exécution d'instruction (non représentée) pour exécuter l'instruction décodée. Puis le traitement de l'instruction suivante est démarré.
Comme décrit ci-avant, selon le système de commande de remise à zéro de TLB contenu dans un système de multiprocesseur selon la présente invention, lorsqu'un processeur délivre une requête de remise à zéro de TLB, le processeur peut éventuellement exécuter une instruction suivante sans attendre les notifications de fin de traitement de remise à zéro de TLB provenant des autres processeurs. Par conséquent, le traitement de TLB peut être réalisé plus rapidement que dans un système de commande de remise à zéro de TLB classique. Dans ce cas, le processeur ne délivre pas de façon erronée la requête de remise à zéro de TLB en double du fait que l'indicateur d'invalidation est prévu. En outre, du fait que chaque processeur peut bloquer les requêtes de remise à zéro de TLB provenant des autres processeurs, le temps requis pour le traitement de remise à zéro de TLB peut être davantage raccourci dans le système de multiprocesseur pris dans sa globalité.

Claims (17)

REVENDICATIONS
1. Procédé d'exécution d'instructions, dans un système de multiprocesseur incluant une mémoire principale et une pluralité de processeurs dont chacun comporte un registre tampon de surveillance latérale pour translation (TLB), lequel procédé inclut des instructions nécessitant de remettre à zéro les TLB de la pluralité de processeurs lors d'une requête à l'un des processeurs de la pluralité, caractérisé en ce qu'il comprend les étapes de
décodage séquentiel de chacune des instructions ;
réalisation d'une première détermination pour vérifier si oui ou non l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro ou de mettre la jour la totalité du
TLB ; et
réalisation d'une seconde détermination pour vérifier si oui ou non une quelconque requête de remise à zéro de TLB provenant des autres processeurs est présente dans un registre de requête ;
lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB et lorsqu'il est déterminé qu'aucune requête de remise à zéro de TLB provenant d'autres processeurs n'est présente dans un registre de requête, réalisation d'une première opération qui remet à zéro le TLB et qui délivre une requête de remise à zéro de TLB aux autres processeurs ; et
après délivrance de la requête de remise à zéro de TLB, réalisation de ladite étape de décodage séquentiellement pour l'instruction suivante lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête seulement la remise à zéro de la totalité du
TLB.
2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape de
exécution de l'instruction décodée lorsqu'il est déterminé que l'instruction décodée n'est pas l'une quelconque des instructions demandant en requête la remise à zéro ou la mise à jour du TLB et lorsqu'il est déterminé qu'aucune requête de remise à zéro de TLB provenant des autres processeurs n'est présente dans un registre de requête.
3. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre les étapes de
réalisation d'une troisième détermination pour voir si oui ou non au moins une requête de remise à zéro de TLB entier est présente dans le registre de requête ; et
lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB et lorsqu'il est déterminé qu'au moins une requête de remise à zéro de TLB entier provenant d'autres processeurs est présente dans un registre de requête, réalisation d'une seconde opération qui remet à zéro le TLB afin de remettre à l'état initial le registre de requête, délivrance d'une notification de fin de traitement de remise à zéro de TLB à certains de la pluralité de processeurs qui délivrent la requête de remise à zéro de TLB et délivrance d'une requête de remise à zéro de TLB aux autres processeurs.
4. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre les étapes de
réalisation d'une troisième détermination pour voir si oui ou non au moins une requête de remise à zéro de TLB entier est présente dans le registre de requête ; et
lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB et lorsqu'il est déterminé qu'au moins une requête de remise à zéro de TLB entier provenant des autres processeurs est présente dans un registre de requête, réalisation d'une seconde opération qui remet à zéro le TLB afin de remettre à l'état initial le registre de requête et délivrance aux autres processeurs d'une requête de remise à zéro de TLB avec une notification de fin de traitement de remise à zéro de TLB.
5. Procédé selon la revendication 1, caractérisé en ce que ladite étape de réalisation d'une première détermination inclut en outre l'étape de réalisation de la détermination de si oui ou non l'instruction décodée est l'une des instructions demandant en requête de se référer au TLB ; et
en ce que ledit procédé comprend en outre l'étape consistant en ce que
lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête de se référer au TLB et lorsqu'il est déterminé qu'une quelconque requête de remise à zéro de TLB provenant des autres processeurs est présente dans un registre de requête, réalisation d'une troisième opération qui remet à zéro le TLB afin de remettre à l'état initial le registre de requête et délivrance d'une notification de fin de traitement de remise à zéro de TLB à certains de la pluralité de processeurs qui délivrent la requête de remise à zéro de TLB.
6. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre les étapes de
réalisation d'une troisième détermination pour voir si oui ou non au moins une requête de remise à zéro de TLB entier est présente dans le registre de requête ; et
lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB et lorsqu'il est déterminé à partir des seconde et troisième déterminations qu'une quelconque requête de remise à zéro de TLB partiel provenant des autres processeurs est présente dans un registre de requête sans la requête de remise à zéro de TLB entier, réalisation d'une quatrième opération qui remet à zéro le TLB de façon partielle en réponse à chacune des requêtes de remise à zéro de TLB partiel afin d'ôter chaque requête de TLB partiel du registre de requête, délivrance d'une notification de fin de traitement de remise à zéro de TLB à certains de la pluralité de processeurs qui délivrent les requêtes de remise à zéro de TLB partiel et délivrance d'une requête de remise à zéro de TLB aux autres processeurs.
7. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre les étapes de
réalisation d'une troisième détermination de si oui ou non au moins une requête de remise à zéro de TLB entier est présente dans le registre de requête ; et
lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB et lorsqu'il est déterminé à partir des seconde et troisième déterminations qu'une quelconque requête de remise à zéro ou de TLB partiel provenant des autres processeurs est présente dans un registre de requête sans la requête de remise à zéro de TLB entier, réalisation d'une quatrième opération qui remet à zéro le TLB de façon partielle en réponse à chacune des requêtes de remise à zéro de TLB partiel afin d'ôter chaque requête de remise à zéro de TLB partiel du registre de requête et délivrance aux autres processeurs d'une requête de remise à zéro de
TLB avec une notification de fin de traitement de remise à zéro de TLB.
8. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre l'étape de:
exécution de l'autre instruction décodée après que les notifications de fin de traitement de remise à zéro de TLB sont reçues depuis les autres processeurs lorsqu'il est déterminé que l'instruction décodée est l'une des instructions demandant en requête la mise à jour du TLB.
9. Procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre les étapes de
détermination de Si oui ou non les notifications de fin de traitement de remise à zéro de TLB pour la requête de remise à zéro de TLB délivrée sont déjà reçues depuis les autres processeurs lorsqu'il est déterminé qu'une autre instruction décodée lors de ladite étape de décodage est l'une des instructions demandant en requête la mise à jour du TLB
attente des notifications de fin de traitement de remise à zéro de TLB pour la requête de remise à zéro de TLB délivrée depuis les autres processeurs lorsqu'il est déterminé que les notifications de fin de traitement de remise à zéro de TLB pour la requête de remise à zéro de TLB délivrée ne sont pas reçues depuis les autres processeurs ; et
délivrance d'une autre requête de remise à zéro de TLB pour les autres processeurs lorsqu'il est déterminé que les notifications de fin de traitement de remise à zéro de TLB pour la requête de remise à zéro de TLB délivrée sont reçues depuis les autres processeurs.
10. Procédé selon la revendication 9, caractérisé en ce que chaque dite étape de réalisation d'une seconde opération inclut l'établissement d'un indication d'invalidation ; et en ce que ladite étape de détermination de si oui ou non les notifications de fin de traitement de remise à zéro de TLB sont déjà reçues inclut les étapes de
chaque fois que la notification de fin de traitement de remise à zéro de TLB est reçue, établissement d'un indicateur de réception de notification correspondant au processeur qui a délivré la notification de fin de traitement de remise à zéro de TLB ;
remise à l'état initial de l'indicateur d'invalidation lorsque les notifications de remise à zéro de TLB sont reçues depuis les autres processeurs et que tous les indicateurs de réception de notification sont établis ; et
référence à l'indicateur d'invalidation pour déterminer sur la base de l'état de l'indicateur d'invalidation si oui ou non les notifications de fin de traitement de remise à zéro de TLB pour la requête de remise à zéro de TLB délivrée sont déjà reçues depuis les autres processeurs.
11. Système de commande de remise à zéro de
TLB, dans un système de multiprocesseur incluant une mémoire principale (2) et une pluralité de processeurs (P12 à Pln) dont chacun comporte un registre tampon de surveillance latérale pour translation (TLB) (16-1), caractérisé en ce qu'il comprend
un moyen de décodage pour décoder séquentiellement chacune des instructions ;
une unité d'exécution d'instruction (14-1)
une unité de remise à zéro de TLB (44-1) ;
une unité de communication pour communiquer avec les autres processeurs ;
un moyen de détermination (42-1) pour déterminer si oui ou non l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB ; et
un moyen de commande d'exécution (40-1) pour commander ladite unité d'exécution d'instruction afin d'exécuter l'instruction décodée lorsqu'il est déterminé par ledit moyen de détermination que l'instruction décodée n'est pas l'une quelconque des instructions demandant en requête la remise à zéro ou la mise à jour du TLB et pour commander ladite unité de remise à zéro de TLB afin de remettre à zéro le
TLB lorsqu'il est déterminé par ledit moyen de détermination que l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro ou de mettre à jour le TLB pour commander ladite unité de communication afin de transmettre une requête de remise à zéro de TLB et pour commander ledit moyen de décodage afin de decoder l'instruction suivante sans attendre des notifications de fin de traitement de remise à zéro de TLB provenant des autres processeurs après que la requête de remise à zéro de TLB est transmise lorsqu'il est déterminé que l'instruction décodée est l'une quelconque des instructions demandant en requête de remettre à zéro le TLB.
12. Système selon la revendication 11, caractérisé en ce que ledit moyen de commande d'exécution commande ladite unité d'exécution d'instruction afin d'attendre l'exécution de l'instruction décodée jusqu'à ce que les notifications de fin de traitement de remise à zéro de TLB soient reçues depuis les autres processeurs lorsqu'il est déterminé que l'instruction décodée est 1' une des instructions demandant en requête de mettre à jour le TLB.
13. Système selon la revendication 11, caractérisé en ce qu'il comprend en outre un moyen d'indication (pour indiquer des déterminations de si oui ou non les notifications de fin de traitement de remise à zéro de TLB pour la requête de remise à zéro de TLB délivrée sont déjà reçues depuis les autres processeurs et en ce quel ledit moyen de commande d'exécution commande ledit moyen de décodage d'instruction pour décoder une instruction suivante, commande ladite unité d'exécution d'instruction pour attendre les notifications de fin de traitement de remise à zéro de TLB pour la requête de remise à zéro de TLB délivrée depuis les autres processeurs s'il est indiqué par ledit moyen d'indication que les notifications de fin de traitement de remise à zéro de TLB pour la requête de remise à zéro de TLB délivrée ne sont pas reçues depuis les autres processeurs, lorsqu'il est déterminé par ledit moyen de détermination que l'instruction suivante décodée est l'une quelconque des instructions demandant en requête de remettre à zéro ou de mettre à jour le
TLB, et commande ledit moyen de communication pour transmettre une autre requête de remise à zéro de TLB aux autres processeurs lorsqu'il est indiqué par ledit moyen d'indication que les notifications de fin de traitement de remise à zéro de TLB pour la requête de remise à zéro de TLB délivrée sont reçues depuis les autres processeurs.
14. Système selon la revendication 13, caractérisé en ce que ledit moyen d'indication inclut un indicateur d'invalidation (20-1), un jeu d'indicateurs de fin (18-1) pour les notifications de fin de traitement de remise à zéro de TLB provenant des autres processeurs et un moyen de remise à l'état initial pour remettre à l'état initial ledit indicateur d'invalidation et ledit jeu d'indicateurs de fin lorsque les indicateurs dudit jeu d'indicateurs de fin sont établis ; en ce que ledit moyen de commande d'exécution établit ledit indicateur d'invalidation lorsqu'une requête de remise à zéro de TLB est transmise aux autres processeurs ; et en ce que ledit moyen de communication inclut un moyen pour établir l'indicateur de fin correspondant au processeur qui a délivré la notification de fin de traitement de remise à zéro de TLB chaque fois que la notification de fin de traitement de remise à zéro de
TLB est reçue.
15. Système selon la revendication 11, caractérisé en ce qu'il comprend en outre
un moyen de stockage de requête permettant de stocker des requêtes de remise à zéro de TLB transmises depuis les autres processeurs et reçues par ledit moyen de communication ; et
un moyen de gestion de stockage permettant de générer des données d'état de stockage indiquant si oui ou non une quelconque requête de remise à zéro de TLB est présente dans ledit moyen de stockage de requête, pour lire la requête de remise à zéro de TLB dans ledit moyen de stockage de requête en réponse à une commande de lecture et pour remettre à zéro ledit moyen de stockage de requête en réponse à une commande de remise à zéro de stockage ;
ledit moyen de détermination incluant en outre un moyen pour déterminer si oui ou non l'instruction décodée est l'une des instructions demandant en requête de se référer au TLB ; et
ledit moyen de commande d'exécution incluant en outre un moyen pour commander ladite unité d'exécution d'instruction afin d'exécuter l'instruction décodée lorsqu'il est déterminé par ledit moyen de détermination qu'il n'y a pas de requête de remise à zéro de TLB dans le registre de requête ou que l'instruction décodée n'est pas une instruction demandant en requête de remettre à zéro le TLB, de mettre à jour le TLB ou de se référer au
TLB et qu'une quelconque requête de TLB est présente dans le registre de requête, pour délivrer la commande de lecture audit moyen de gestion de stockage et la commande de remise à zéro de TLB audit moyen de remise à zéro de TLB afin de réaliser un traitement de remise à zéro de TLB correspondant à la requête de TLB présente dans ledit moyen de stockage de requête lorsqu'il est déterminé à partir des données d'état de stockage qu'une quelconque requête de TLB provenant des autres processeurs est présente dans le registre de requête et lorsqu'il est déterminé par ledit moyen de détermination que l'instruction décodée est l'une des instructions demandant en requête de remettre à zéro le TLB, de mettre à jour le TLB ou de se référer au TLB, et pour commander ledit moyen de communication afin de transmettre une notification de fin de traitement de
TLB à l'un de la pluralité de processeurs demandant en requête la requête de TLB après réalisation du traitement.
16. Système selon la revendication 15, caractérisé en ce que ledit moyen de gestion de stockage inclut
un moyen pour déterminer si oui ou non il y a une quelconque requête de remise à zéro de TLB entier ou une quelconque requête de remise à zéro de
TLB partiel en tant que requête de TLB dans le registre de requête et si oui ou non il y a une quelconque requête de remise à zéro de TLB entier en tant que requête de TLB dans le registre de requête afin d'informer ledit moyen de commande d'exécution du fait que soit il n'y a pas de requête de remise à zéro de TLB dans le registre de requête soit il y a au moins une requête de remise à zéro de TLB entier dans le registre de requête ou qu'il y a une ou plusieurs requêtes de remise à zéro de TLB partiel dans le registre de requête mais qu'il n'y a pas de requête de remise à zéro de TLB entier.
17. Système selon la revendication 16, caractérisé en ce que ledit moyen de commande d'exécution commande ladite unité d'exécution d'instruction pour exécuter l'instruction décodée lorsqu'il est informé depuis ledit moyen de gestion de stockage qu'il n'y a pas de requête de remise à zéro de TLB dans le registre de requête, délivre une commande de remise à zéro de TLB entier audit moyen de remise à zéro de TLB afin de remettre à zéro la totalité du TLB et une commande de remise à zéro audit moyen de gestion de stockage pour remettre à l'état initial le moyen de stockage de requête lorsqu'il est informé depuis ledit moyen de gestion de stockage qu'il y a au moins une requête de remise à zéro de TLB entier dans le registre de requête et délivre une commande de remise à zéro de TLB partiel à ladite unité de remise à zéro de TLB afin de remettre à zéro séquentiellement et partiellement le
TLB et commande ledit moyen de gestion de stockage pour ôter les requêtes de remise à zéro de TLB dudit moyen de stockage de requête lorsqu'il est informé depuis ledit moyen de gestion de stockage qu'il a une ou plusieurs requêtes de remise à zéro de TLB partiel dans le registre de requête mais qu'il n'y a pas de requête de remise à zéro de TLB entier.
FR9500892A 1994-01-28 1995-01-26 Procédé et système de remise à zéro d'un registre tampon de surveillance latérale de translation. Expired - Fee Related FR2715746B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6008061A JP2806778B2 (ja) 1994-01-28 1994-01-28 変換索引バッファクリア命令処理方式

Publications (2)

Publication Number Publication Date
FR2715746A1 true FR2715746A1 (fr) 1995-08-04
FR2715746B1 FR2715746B1 (fr) 1998-02-06

Family

ID=11682836

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9500892A Expired - Fee Related FR2715746B1 (fr) 1994-01-28 1995-01-26 Procédé et système de remise à zéro d'un registre tampon de surveillance latérale de translation.

Country Status (3)

Country Link
US (1) US5928353A (fr)
JP (1) JP2806778B2 (fr)
FR (1) FR2715746B1 (fr)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162608B2 (en) * 2001-10-24 2007-01-09 Cray, Inc. Translation lookaside buffer-based memory system and method for use in a computer having a plurality of processor element
US7234027B2 (en) * 2001-10-24 2007-06-19 Cray Inc. Instructions for test & set with selectively enabled cache invalidate
US7617378B2 (en) * 2003-04-28 2009-11-10 International Business Machines Corporation Multiprocessor system with retry-less TLBI protocol
US7284100B2 (en) * 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
US7530067B2 (en) * 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers
US9454490B2 (en) 2003-05-12 2016-09-27 International Business Machines Corporation Invalidating a range of two or more translation table entries and instruction therefore
US7281116B2 (en) * 2004-07-30 2007-10-09 Hewlett-Packard Development Company, L.P. Multiprocessor system having plural memory locations for respectively storing TLB-shootdown data for plural processor nodes
US7631147B2 (en) * 2006-12-06 2009-12-08 Microsoft Corporation Efficient flushing of translation lookaside buffers in a multiprocessor environment
US8051338B2 (en) * 2007-07-19 2011-11-01 Cray Inc. Inter-asic data transport using link control block manager
US9182984B2 (en) 2012-06-15 2015-11-10 International Business Machines Corporation Local clearing control
GB2551226A (en) * 2016-06-08 2017-12-13 Google Inc TLB shootdowns for low overhead
US10540292B2 (en) 2016-06-08 2020-01-21 Google Llc TLB shootdowns for low overhead

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4733348A (en) * 1984-05-31 1988-03-22 Kabushiki Kaisha Toshiba Virtual-memory multiprocessor system for parallel purge operation
JPH01234964A (ja) * 1988-03-16 1989-09-20 Fujitsu Ltd マルチプロセッサ制御方式

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
JPS6091462A (ja) * 1983-10-26 1985-05-22 Toshiba Corp 演算制御装置
US4779188A (en) * 1983-12-14 1988-10-18 International Business Machines Corporation Selective guest system purge control
JPS60130995A (ja) * 1983-12-19 1985-07-12 Nippon Telegr & Teleph Corp <Ntt> プロセツサ間通信制御方式
JPH01109452A (ja) * 1987-10-22 1989-04-26 Fujitsu Ltd 変換索引バッファ情報の消去制御方式
US5317754A (en) * 1990-10-23 1994-05-31 International Business Machines Corporation Method and apparatus for enabling an interpretive execution subset
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5500948A (en) * 1991-10-29 1996-03-19 Intel Corporation Translating instruction pointer virtual addresses to physical addresses for accessing an instruction cache
JPH05250332A (ja) * 1992-03-05 1993-09-28 Juki Corp 電子機器
US5428757A (en) * 1992-04-29 1995-06-27 International Business Machines Corporation Method for reducing translation look aside buffer purges in a multitasking system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4733348A (en) * 1984-05-31 1988-03-22 Kabushiki Kaisha Toshiba Virtual-memory multiprocessor system for parallel purge operation
JPH01234964A (ja) * 1988-03-16 1989-09-20 Fujitsu Ltd マルチプロセッサ制御方式

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PATENT ABSTRACTS OF JAPAN vol. 013, no. 563 (P - 975) 14 December 1989 (1989-12-14) *
TELLER P J: "TRANSLATION-LOOKASIDE BUFFER CONSISTENCY", COMPUTER, vol. 23, no. 6, 1 June 1990 (1990-06-01), pages 26 - 36, XP000173737 *

Also Published As

Publication number Publication date
JP2806778B2 (ja) 1998-09-30
JPH07219915A (ja) 1995-08-18
US5928353A (en) 1999-07-27
FR2715746B1 (fr) 1998-02-06

Similar Documents

Publication Publication Date Title
FR2715746A1 (fr) Procédé et système de remise à zéro d&#39;un registre tampon de surveillance latérale de translation.
EP0538133B1 (fr) Téléchargement d&#39;un système d&#39;exploitation par réseau
EP0755010B1 (fr) Dispositif d&#39;interface entre un calculateur à architecture redondante et un moyen de communication
CA3072046C (fr) Mecanisme de transfert de fichier optimise pour dispositif mobile base sur un code qr
US8830247B2 (en) Image displaying device having image cache memory
US20060161733A1 (en) Host buffer queues
US20020184451A1 (en) Unifying data storage in a distributed network
EP0755013B1 (fr) Système informatique multinodal et procédé de transfert de messages dans ledit système informatique multinodal
FR2862400A1 (fr) Dispositif et procede de commande de memorisation
EP1849054A1 (fr) Dispositif de stockage de donnees
EP1710703A1 (fr) Cohérence de cache dans un système multiprocesseurs à mémoire partagée
CN109491928A (zh) 缓存控制方法、装置、终端及存储介质
FR2681452A1 (fr) Unite de commande pour une unite a bande magnetique.
US20200379745A1 (en) Firmware update device and firmware update method
CN110647460A (zh) 一种测试资源管理方法、装置和测试客户端
US8032556B1 (en) Systems and methods for user profile data delivery
FR2738367A1 (fr) Procede et appareil de telechargement rapide de fonctions dans une memoire volatile
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
EP0027851A1 (fr) Système pour commander la durée de l&#39;intervalle de temps entre blocs de données dans un système de communication calculateur à calculateur
US7213245B2 (en) Software on demand system
FR2808902A1 (fr) Systeme de pre-extraction speculative de donnees dans un systeme de processeur d&#39;execution non ordonnee d&#39;instructions
FR2493562A1 (fr) Systeme d&#39;utilisation de disques en commun et d&#39;intercommunication entre disques
JPH04336641A (ja) 処理システムにおける使用のためのデータキャッシュおよび方法
US7330880B1 (en) Method and apparatus for reliable download to a network cache while limiting origin server load
FR2625342A1 (fr) Dispositif permettant de traiter simultanement les demandes de transfert produites par l&#39;unite centrale de traitement, l&#39;unite de traitement arithmetique et l&#39;unite de traitement d&#39;entree-sortie d&#39;un ordinateur de grande puissance

Legal Events

Date Code Title Description
ST Notification of lapse