[go: up one dir, main page]

FR2765004A1 - Systeme d'antememoire capable de conserver une coherence antememoire parmi les antememoires de stockage de deux unites de traitement centrales lors d'un conflit de stockage - Google Patents

Systeme d'antememoire capable de conserver une coherence antememoire parmi les antememoires de stockage de deux unites de traitement centrales lors d'un conflit de stockage Download PDF

Info

Publication number
FR2765004A1
FR2765004A1 FR9807698A FR9807698A FR2765004A1 FR 2765004 A1 FR2765004 A1 FR 2765004A1 FR 9807698 A FR9807698 A FR 9807698A FR 9807698 A FR9807698 A FR 9807698A FR 2765004 A1 FR2765004 A1 FR 2765004A1
Authority
FR
France
Prior art keywords
bus
cache
request
central processing
storage
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
FR9807698A
Other languages
English (en)
Other versions
FR2765004B1 (fr
Inventor
Takahiro Tanioka
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 FR2765004A1 publication Critical patent/FR2765004A1/fr
Application granted granted Critical
Publication of FR2765004B1 publication Critical patent/FR2765004B1/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration

Landscapes

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

Abstract

Le système d'antémémoire comprend un bus global unique (5), une pluralité d'unités centrales de traitement (1, 2) connectées au bus global et une unité de mémoire principale (3 ou 4) connectée au bus global, chacune des unités centrales de traitement comprend un bus local (110 ou 210), une pluralité d'antémémoires de stockage (101-104 ou 201-204) et un pont de bus (120 ou 220) connecté au bus local et au bus global pour contrôler une requête délivrée par l'une des antémémoires de stockage de chaque unité centrale de traitement au bus local pour éviter un conflit de stockage dû à la requête et une requête différente délivrée au bus global à partir d'une des antémémoires de stockage d'une unité centrale de traitement différente parmi les unités centrales de traitement et ainsi pour conserver une cohérence antémémoire parmi les antémémoires de stockage des unités centrales de traitement.

Description

SYSTEME D'ANTEMEMOIRE CAPABLE DE CONSERVER
UNE COHERENCE ANTEMEMOIRE PARMI LES ANTEMEMOIRES DE
STOCKAGE DE DEUX UNITES DE TRAITEMENT CENTRALES LORS
D'UN CONFLIT DE STOCKAGE
Contexte de l'invention Cette invention concerne un système d'antémémoire et en particulier, un système d'antémémoire formé sur une pluralité de bus connectés par l'intermédiaire d'un pont de bus et agencé de manière hiérarchique. Pour compléter un système multiprocesseur à mémoire partagée, il a été proposé de connecter une pluralité de bus de système par l'intermédiaire d'un pont de bus. Un certain nombre de ces systèmes multiprocesseurs avec possibilité d'extension
améliorée sont connus dans l'art.
La publication non-examinée du brevet japonais (JP-A) No. 297642/1996, par exemple, décrit un système multiprocesseur à mémoire partagée dans lequel deux bus de système sont connectés par intermédiaire d'un type de pont de bus appelé répertoire. La publication décrit également une technique pour assurer la cohérence de l'antémémoire sur les antémémoires de stockage. Dans le système mentionné ci-dessus, les deux bus de système connectés par l'intermédiaire du répertoire ont des cycles de bus synchronisés entre eux avec le décalage d'un demi- cycle. Lors de la détection de requêtes concurrentes provenant de ces bus vers la même adresse de requête, la requête délivrée en dernier est annulée tandis que la requête antérieure est transférée de manière préférentielle au bus de système. Ainsi, la cohérence de l'antémémoire est conservée lors de l'apparition de requêtes
d'écriture concurrentes entre les bus de système.
Pour les requêtes de lecture, les données sont essentiellement acquises à partir d'une mémoire
principale, sauf lorsque des données "souillées" non-
coïncidentes avec des données de la- mémoire principale sont acquises en provenance d'une autre antémémoire. En conséquence, même si les données "propres" coïncidentes avec les données de la mémoire principale sont présentes dans le même bus, les données doivent être acquises par l'intermédiaire du pont de bus depuis la mémoire principale connectée à l'autre bus
du système.
D'autre part, la publication non-examinée du brevet japonais (JP-A) No. 110844/1994 décrit un système multiprocesseur à mémoire partagée répartie dans lequel un bus interne connecté à une antémémoire de CPU et une mémoire principale est connecté à un bus partagé par l'intermédiaire d'un pont de bus appelé
section de contrôle de partage.
La section de contrôle de partage comprend une mémoire de marques d'état d'antémémoire mémorisant l'état de l'antémémoire qui y est connectée. Lors de l'exécution d'une opération d'écriture, la section de contrôle de partage fait référence au contenu de la mémoire de marques. Si un bloc de données est dans un état partagé, une instruction d'invalidation est délivrée par l'intermédiaire du bus partagé aux autres sections de contrôle de partage. Ainsi, la cohérence
de l'antémémoire est conservée.
Les systèmes d'antémémoires classiques mentionnés ci-dessus sont désavantageux en ce qui
concerne ce qui suit.
Comme premier inconvénient, il est impossible d'éviter un conflit d'écriture si le système multiprocesseur comporte trois bus de système ou
davantage connectés entre eux.
De façon spécifique, dans le système multiprocesseur à mémoire partagée décrit dans la publication non-examinée de brevet japonais (JP-A) No. 297642/1996, il est impossible d'assurer la cohérence de l'antémémoire dans le cas o des opérations de stockage sont effectuées simultanément dans des antémémoires connectées au bus de système à des extrémités opposées parmi les trois bus de système
connectés entre eux.
Dans le système multiprocesseur à mémoire
partagée répartie décrit dans la publication non-
examinée de brevet japonais (JP-A) No. 110844/1994, il est fait référence à la mémoire de marques d'état d'antémémoire dans la section de contrôle de partage S15 lors de l'exécution de l'opération d'écriture et l'instruction d'invalidation est envoyée au bus partagé en fonction du contenu de la mémoire de marques d'état d'antémémoire. Toutefois, aucune
description n'est faite de la façon de conserver la
cohérence de l'antémémoire lors de l'apparition d'instructions d'invalidation de conflit sur le bus partagé. Comme deuxième inconvénient, les données doivent être acquises à partir de la mémoire principale dans le cas o les données propres qui coincident avec les données de la mémoire principale doivent être acquises. Ceci influe défavorablement sur
les performances.
Si une antémémoire contenant les données propres est présente à un emplacement plus proche d'une source demandant des données que la mémoire
principale, l'inconvénient mentionné ci-dessus peut-
être éliminé par acquisition des données depuis l'antémémoire. Dans ce cas toutefois, un autre problème apparaît. De façon spécifique, le pont de bus doit posséder une copie exacte d'une marque d'antémémoire. Comme alternative, une requête de lecture délivrée sur un bus de système ne doit pas être acheminée vers l'autre bus de système avant que le résultat de la consultation de l'antémémoire soit fourni. Résumé de l'invention Un objet de cette invention consiste à fournir un système d'antémémoire comprenant trois bus de système ou davantage connectés par l'intermédiaire de ponts de bus et d'antémémoires de stockage connectées aux bus de système, capable d'éviter un conflit de stockage entre ces bus hiérarchiquement distants les uns des autres pour assurer la cohérence de l'antémémoire dans l'ensemble du système et capable de charger rapidement les antémémoires avec des données coïncidentes avec les données se trouvant dans la
mémoire principale.
Un système d'antémémoire selon cette invention est constitué comme suit: (1) Un système d'antémémoire comprenant un bus global unique, une pluralité d'unités centrales de traitement connectées au bus global et une unité de mémoire principale connectée au bus global, chacune des unités centrales de traitement comprenant un bus local, une pluralité d'antémémoires de stockage et un pont de bus connecté au bus local et au bus global pour contrôler, par surveillance de marques d'antémémoire représentant les états des antémémoires de stockage de chaque unité centrale, une requête délivrée par l'une des antémémoires de stockage de chaque unité centrale au bus local de chaque unité centrale pour éviter un conflit de stockage dû à la requête et une requête différente délivrée au bus global à partir d'une des mémoires de stockage d'une unité centrale de traitement différente parmi les unités centrales de traitement à travers le pont de bus de l'unité centrale de traitement différente et pour ainsi conserver une cohérence antémémoire parmi les antémémoires de stockage des unités centrales de traitement. (2) un système d'antémémoire tel que mentionné au paragraphe (1), dans lequel le pont de bus de chacune des unités centrales de traitement comprend une mémoire de marques d'antémémoire destinée à stocker une copie des marques d'antémémoire représentant les états des antémémoires de stockage; le pont de bus de chacune des unités centrales de traitement contrôlant, en référence à la copie des marques d'antémémoire de sa mémoire de marques d'antémémoire, la requête, de façon à éviter le conflit de stockage dû à la requête et à la requête différente. (3) Un système d'antémémoire tel que mentionné au paragraphe (2), dans lequel le pont de bus de chacune des unités centrales de traitement comprend en outre: un tampon de copie de requête destiné à bloquer temporairement, en tant que requête bloquée, la requête reçue depuis le bus local; un tampon de commande de bus global destiné à bloquer une commande délivrée au bus global; un tampon de commande de bus local destiné à bloquer une commande différente qui est délivrée au bus local; et un circuit de contrôle de pont de bus sensible à la requête bloquée et à la requête différente pour contrôler le tampon de commande de bus global et le tampon de commande de bus local en référence à la mémoire de marques d'antémémoire pour que le tampon de commande de bus global et le tampon de commande de bus local délivrent la commande et la commande différente au bus global et au bus local en tant que commandes optimales de façon à éviter le conflit de stockage dû à la requête et à
la requête différente.
(4) Un système d'antémémoire tel que mentionné au paragraphe (2), dans lequel chaque antémémoire de stockage de chacune des unités centrales de traitement notifie un résultat de consultation de la marque d'antémémoire représentant l'état de chaque antémémoire de stockage aux autres antémémoires de stockage de chacune des unités centrales de traitement et à la mémoire de marques d'antémémoire du pont de bus de chacune des unités centrales de traitement à un instant particulier d'un cycle de bus suivant qui fait suite à un cycle de bus auquel une requête de lecture
de bloc est délivrée au bus local en tant que requête.
(5) Un système d'antémémoire tel que mentionné au paragraphe (4), dans lequel le pont de bus de chacune des unités centrales de traitement détermine, en référence à sa mémoire de marques d'antémémoire, l'une des antémémoires de stockage comportant des données de réponse pour la requête de lecture de bloc en tant que répondeur effectuant une réponse due aux
données de réponse pour la requête de lecture de bloc.
(6) Un système d'antémémoire tel que mentionné au paragraphe (5), dans lequel le pont de bus de chacune des unités centrales de traitement contrôle la requête de lecture de bloc pour délivrer la requête de lecture de bloc par l'intermédiaire du bus global à l'unité de mémoire principale lorsqu'il n'y a aucune antémémoire de stockage présente comportant les
données de réponse pour la requête de lecture de bloc.
(7) Un système d'antémémoire tel que mentionné au paragraphe (6), dans lequel le pont de bus de chacune des unités centrales de traitement sert de répondeur qui effectue la réponse due aux données de
réponse présentes dans l'unité de mémoire principale.
(8) Un système d'antémémoire tel que mentionné au paragraphe (6), dans lequel la copie de la marque d'antémémoire pour chaque antémémoire de stockage représente un parmi "invalide" (I), "propre/exclusif" (CE), "propre/partagé" (CS), "souillé/exclusif" (D), o "propre" et "souillé" ont une signification respectivement équivalente à des données dans chaque antémémoire de stockage qui sont "coïncidentes" et "non-coïncidentes" avec des données de l'unité de mémoire principale; le pont de bus de chacune des unités centrales de traitement contrôlant, lorsqu'une requête de lecture de bloc exclusive est délivrée au bus local en tant que requête de lecture de bloc, la requête de lecture de bloc exclusive pour délivrer la requête de lecture de bloc exclusive par l'intermédiaire du bus global, à l'unité de mémoire principale, lorsque la copie des marques d'antémémoires pour les antémémoires de stockage de chacune des unités centrales de traitement représente
soit "invalide" (I), soit "propre/partagée" (CS).
(9) Un système d'antémémoire tel que mentionné au paragraphe (8), dans lequel le pont de bus de chacune des unités centrales de traitement sert de répondeur qui effectue la réponse due aux données de
réponse présentes dans l'unité de mémoire principale.
(10) Un système d'antémémoire tel que mentionné au paragraphe (9), dans lequel le bus local comporte: une requête d'invalidation demandant l'invalidation des données dans les autres antémémoires de stockage; et des moyens d'annulation pour envoyer un signal d'annulation à une source de requête à un instant particulier du cycle de bus du bus local pour interrompre l'exécution d'une requête particulière délivrée et pour que la source de requête envoie de nouveau la requête particulière; le pont de bus déterminant, lorsque la requête d'invalidation demandant l'invalidation des données dans une antémémoire de stockage particulière est délivrée depuis le bus local, à délivrer la requête d'invalidation au bus global si la copie de la marque d'antémémoire est soit I, soit CS, et continuant à annuler la requête d'invalidation sur le bus local jusqu'à l'achèvement de la fourniture de la requête d'invalidation au bus global de façon à supprimer la fin du stockage dans l'antémémoire de stockage en tant
que source de requête.
Ainsi, dans le système d'antémémoire de cette invention, le pont de bus bloque la copie de la marque d'antémémoire (appelée ci-après CTAG) de chaque antémémoire de stockage connectée au bus local (appelé ci- après bus L) esclave du pont de bus. La CTAG représente l'état d'un bloc de l'antémémoire comme étant l'un des quatre états "invalide" (I), "propre/exclusif" (CE), "propre/partagé" (CS) et "souillé/exclusif" (D). Le pont de bus surveille les requêtes du bus L et du bus global (appelé ci-après bus G) et règle la CTAG comme étant une copie de la marque d'antémémoire de l'antémémoire connectée au bus L esclave du pont de bus. De façon exceptionnelle, une telle non-coincidence selon laquelle la valeur de la CTAG est CE ou CS, n'est permise que lorsque aucun
bloc effectif n'est présent dans l'antémémoire.
De plus, le pont de bus comprend un tampon de copie de requête destiné à stocker temporairement une requête de lecture de bloc partagé (appelée ci-après SBR) et une requête de lecture de bloc exclusif (appelée ci-après EBR) délivrée par le bus L. Lorsque la requête EBR est délivrée depuis le bus L, le pont de bus consulte la CTAG et, si l'état du bloc est soit I, soit CS, délivre la requête EBR au bus G. Il est supposé qu'un conflit de stockage apparaît sur le bus G entre la requête EBR susmentionnée et une requête concurrente telle que EBR ou INV (invalidation) dirigée vers la même adresse. Si l'opération de stockage par la requête concurrente précède, la requête EBR suivante fait l'acquisition du bloc dans lequel l'opération de stockage par la requête précédente EBR ou INV a été terminée. Il est ainsi possible de conserver la cohérence d'antémémoire. D'autre part, lorsque la requête INV est délivrée depuis le bus L, le pont de bus consulte la CTAG et, si l'état du bloc est soit I, soit CS, délivre la requête INV au bus G. Simultanément, les requêtes INV provenant du bus L sont annulées de manière continue pour supprimer l'opération de stockage dans l'antémémoire de stockage jusqu'à la fin de la fourniture de la requête INV au bus G. Il est de nouveau supposé qu'un conflit de stockage apparaît sur le bus G entre la requête INV susmentionnée et une requête concurrente telle que EBR ou INV dirigée vers la même adresse. Si l'opération de stockage par la requête concurrente précède, la fourniture de la requête INV susmentionnée est arrêtée et les requêtes INV provenant du bus L sont annulées de manière continue. De cette manière, la requête INV par l'opération de stockage précédente (EBR ou INV) sur le bus G est délivrée au bus L. Ainsi, la cohérence
d'antémémoire est conservée.
Lorsque la requête SBR ou EBR est délivrée depuis le bus L, le pont de bus élimine la requête comme étant une requête inutile ne devant pas être délivrée au bus G si le résultat de la consultation de la CTAG indique que l'état du bloc est un état parmi D, CE et CS, pour SBR et un état parmi D et CE, pour EBR. Si après cela il se révèle que le bloc désiré n'est présent dans aucune antémémoire du bus L, la requête récupérée par le tampon de copie de requête est délivrée de nouveau et délivrée au bus G. Ainsi,
quelle que soit la correspondance ou la non-
correspondance entre la marque d'antémémoire et la CTAG, l'antémémoire de stockage en tant que source de fourniture de la requête SBR ou EBR peut acquérir les données depuis une position la plus proche à
l'intérieur d'une durée appropriée.
D'autres caractéristiques et avantages de l'invention ressortiront plus clairement à la lecture
de la description ci-après faite en référence aux
dessins annexés.
Brève description des dessins
La figure 1 est une vue destinée à décrire un système d'antémémoire selon un mode de réalisation de cette invention; la figure 2 est un schéma synoptique d'un pont de bus illustré sur la figure 1; la figure 3 est un organigramme destiné à décrire une première étape de fonctionnement du système d'antémémoire illustré sur la figure 1 lorsqu'une antémémoire de stockage (SIC) délivre une commande à un bus L; la figure 4 est un organigramme destiné à décrire une deuxième étape de fonctionnement qui suit la première étape de la figure 3; la figure 5 est un organigramme destiné à décrire une troisième étape de fonctionnement qui suit la deuxième étape de la figure 4; les figures 6A et 6B sont des organigrammes destinés à décrire une première étape de fonctionnement du système d'antémémoire illustré sur la figure 1 lorsque la SIC reçoit une commande provenant du bus L; la figure 7 est un organigramme destiné à décrire une deuxième étape de fonctionnement qui suit la première étape de la figure 6; la figure 8 est un organigramme destiné à décrire une troisième étape de fonctionnement qui suit la deuxième étape de la figure 7; la figure 9 est un organigramme destiné -à décrire une quatrième étape de fonctionnement qui suit la troisième étape de la figure 8; la figure 10 est un organigramme destiné à décrire une première étape de fonctionnement du système d'antémémoire illustré sur la figure 1 lorsque le pont de bus reçoit la commande provenant du bus L; la figure 11 est un organigramme destiné à décrire une deuxième étape de fonctionnement qui suit la première étape de la figure 10; la figure 12 est un organigramme destiné à décrire une troisième étape de fonctionnement qui suit la deuxième étape de la figure 11; la figure 13 est un organigramme destiné à décrire une quatrième étape de fonctionnement qui suit la troisième étape de la figure 12; la figure 14 est un organigramme destiné à décrire une première étape de fonctionnement du système d'antémémoire illustré sur la figure 1 lorsque le pont de bus reçoit la commande provenant du bus G; la figure 15 est un organigramme destiné à décrire une deuxième étape de fonctionnement qui suit la première étape de la figure 14; la figure 16 est un organigramme destiné à décrire une troisième étape de fonctionnement qui suit la deuxième étape de la figure 15; et la figure 17 est un organigramme destiné à décrire une quatrième étape de fonctionnement qui suit
la troisième étape de la figure 16.
Description du mode de réalisation préféré
Une description va maintenant être effectuée
concernant cette invention en référence au dessin.
En se référant à la figure 1, un système d'antémémoire selon un mode de réalisation de cette invention est un système de traitement d'informations comportant un bus G (global) unique 5, une pluralité d'unités centrales de traitement (CPU) 1 et 2 connectées au bus G 5 et une pluralité d'unités de
mémoire principale (MMU) 3 et 4 connectées au bus G 5.
Le CPU 1 comporte un bus L (local) 110, une pluralité d'antémémoires de stockage (SIC) 101 à 104 connectées au bus L 110, et un pont de bus 120 connecté au bus L et au bus G 5. De même, le CPU 2 comporte un bus L (local) 210, une, pluralité d'antémémoires de stockage (SIC) 201 à 204 connectées au bus L 210 et un pont de
bus 220 connecté au bus L 210 et au bus G 5.
Les SIC 101 à 104, le bus L 110 et le pont de bus 120 sont ici montés dans un même boîtier à savoir, le CPU 1. De même, les SIC 201 à 204, le bus L 210 et le pont de bus 220 sont montés sur le CPU 2. Chacun des CPU 1 et 2 et des MMU 3 et 4 est connecté au bus G sous la forme d'un boîtier. Le nombre de SIC connectées au bus L et le nombre de CPU et de MMU connectés au bus G sont déterminés en relation avec la possibilité de commande d'un pilote LSI et la fréquence de fonctionnement de chaque bus. En conséquence, le système d'antémémoire
n'est pas limité à la structure ici décrite.
Bien que non-illustré sur la figure, la SIC est connectée à au moins un processeur. Généralement,
le processeur comprend une antémémoire primaire.
Toutefois, la structure de l'antémémoire primaire et le nombre de processeurs connectés à la SIC ne modifient pas l'effet de cette invention. En
conséquence, aucune description détaillée n'est
fournie de ces composants.
Le fonctionnement du bus L et du bus G va maintenant être décrit en détail. Le bus L et le bus G sont du type à transactions séparées et peuvent être actionnés conformément au même protocole de bus. De plus, il est possible de séparer une ligne d'adresse et une ligne de données comme étant actionnées individuellement. Si nécessaire, elles sont mentionnées séparément en tant que bus d'adresses et bus de données. Une commande agissant sur le bus d'adresses et une commande agissant sur le bus de données sont appelées respectivement commande de bus d'adresses et commande de bus de données. Dans le cas o une opération comporte deux requêtes et une réponse, telle qu'une opération de lecture dans une antémémoire, il peut être fait référence en particulier à l'opération comme étant la requête et la
réponse pour distinguer l'une de l'autre.
Le tableau 1 montre les séquencements d'opérations de la commande de bus d'adresses. Les états de bus 1 à 5 représentent des signaux de séquencement comptés de manière continue en synchronisme avec des horloges pendant le fonctionnement du bus. Une période comportant les
états 1 à 5 est appelée cycle de bus.
Tableau 1
Fonctionnement d'une commande de bus d'adresses
ETAT 1 2 3 4 5 1 2 3 4 5
ETAPE REQARB ADO AD1 - CAN - - - OWN
REQ Une requête d'acquisition de bus d'adresses est délivrée.
ARB Etape d'arbitrage. Parmi les noeuds ayant délivré la requête d'acquisition de bus dans l'étape REQ, un noeud destiné à délivrer une commande au bus est
déterminé. A cette étape, aucun signal n'est délivré au bus.
ADO Les bits d'ordre supérieur d'une adresse de commande et un code de
commande sont délivrés.
AD1 Les bits d'ordre inférieur de l'adresse de commande'sont délivrés.
CAN Un signal ACAN est délivré pour annuler la commande lorsque la commande
ne peut pas être reçue.
OWN Un résultat de consultation d'une antémémoire ou une CTAG est fourni au bus. La commande de bus d'adresses est exécutée en dix étapes à partir de l'étape REQ (requête) jusqu'à l'étape OWN. Les séquencements de l'exécution de ces étapes sont entièrement synchronisés avec les états de
bus 1 à 5.
La commande de bus d'adresses peut se superposer à une autre commande de bus d'adresses sur chaque cycle de bus. Dans l'étape CAN (annulation) d'une commande précédente par exemple, l'étape REQ
d'un cycle de bus suivant commence.
Une description va être effectuée ci-après
concernant l'étape CAN et l'étape OWN qui sont importantes dans cette invention. Le signal ACAN (annulation de commande de bus d'adresses) est délivré à l'étape CAN lorsque la commande de bus d'adresses en cours d'exécution ne peut pas être exécutée pour une certaine raison. Le signal peut être délivré par un noeud quelconque connecté sur le bus. Il est prescrit que la fourniture de la commande ne doit être terminée que lorsqu'il n'y a aucun signal ACAN délivré par un noeud quelconque. En conséquence, une source de requête (demandeur) doit arrêter la fourniture de la commande si le signal ACAN est délivré pour la commande ou doit répéter un nouvel envoi jusqu'à ce que le signal ACAN ne soit plus délivré pour la commande. A l'étape OWN, des informations concernant un parmi OWN(I), OWN(C) et OWN(D), sont délivrées en réponse au résultat de la consultation de l'antémémoire ou de la CTAG dans le cas o la commande est la requête SBR ou EBR. Le noeud sur le bus surveille la valeur de OWN pour enregistrer la marque de la SIC ou de la CTAG pour déterminer un répondeur,
c'est-à-dire un noeud destiné à délivrer la réponse.
L'étape de détermination du répondeur sur le bus L est
appelée arbitrage de réponse.
La procédure de l'arbitrage de réponse est résumée sur le tableau 2. Il faut remarquer ici que le pont de bus a une priorité d'acquisition d'un droit de réponse et que le pont de bus est choisi comme répondeur si chaque noeud produit une sortie ayant une
valeur de OWN(1).
Tableau 2
Détermination du répondeur sur le bus L Valeur de OWN Répondeur De SIC de BB OWN(I) OWN(I) Pont de bus (BB) OWN(C) OWN(I) Antémémoire de stockage (SIC) Si une pluralité de SIC produisent OWN(C), le répondeur est
déterminé par arbitrage de réponses.
OWN(C) OWN(C) Pont de bus (BB) OWN(D) OWN(I) Antémémoire de stockage (SIC) Si une pluralité de SIC produisent OWN(D), le répondeur est
déterminé par arbitrage de réponses.
Sur le bus G, le noeud ayant délivré OWN(D) est sélectionné comme répondeur. Ceci est dû au fait que, sur le bus G, il n'y a aucune possibilité pour qu'une pluralité de noeuds délivrent simultanément OWN(D) comme il va être décrit ultérieurement en détail. Dans d'autres cas, la mémoire principale et choisie comme répondeur indépendamment du fait que
OWN(C) ou OWN(I) est délivré.
Le tableau 3 montre les séquencements de fonctionnement de la commande du bus de données. D'une manière similaire à la commande de bus d'adresses, huit étapes depuis une étape REQ jusqu'à une étape D3 sont exécutées en synchronisme avec les états 1 à 5 du bus. Comme la commande de bus d'adresses, une opération peut en recouvrir une autre sur chaque cycle
de bus.
Tableau 3
Fonctionnement d'une commande de bus de données
ETAT 1 2 3 4 5 1 2 3 4 5
ETAPE REQ ARB RID - DO DI D2 D3 - -
REQ Une requête d'acquisition de bus d'adresses est délivrée.
ARB Etape d'arbitrage. Parmi les noeuds ayant délivré la requête d'acquisition de bus dans l'étape REQ, un noeud destiné à délivrer une commande au bus est
déterminé. A cette étape, aucun signal n'est délivré au bus.
RID Un numéro d'ID assigné à une requête correspondant à une réponse est
notifié. Inutile lors de l'écriture dans la mémoire.
D0-3 Des données sont acheminées en quatre étapes divisées. Si les données ne peuvent pas être reçues, un signal DCAN est délivré au moment de l'étape
Dl pour annuler la réponse.
Généralement, dans le bus du type à transactions séparées comme dans cette invention, chaque noeud du bus comporte une table de gestion de ressources de lecture (RRMT) pour lier la requête à la réponse. Lorsque la requête de lecture (SBR ou EBR) est délivrée au bus, il est affecté à la requête un numéro d'ID spécifique, entré dans la RRMT. Une source de fourniture de réponse (répondeur) délivre une réponse en retour à la source de requête (demandeur) avec le numéro d'ID de la requête liée attaché à celle-ci (étape RID du tableau 3). En conséquence, le demandeur peut estimer quelle requête est liée à la réponse délivrée sur le bus de données.
La RRMT a une autre fonction. De façon spécifique, la RRMT contient une adresse de requête avec le numéro d'ID de la requête lors de la fourniture de la requête et utilise l'adresse de requête pour supprimer l'accès à la mémoire des autres noeuds vers la même adresse jusqu'à ce que la réponse soit retournée. De cette manière, il est possible d'assurer l'ordre de renouvellement de la mémoire pour
le bloc de la même adresse.
Ainsi, la RRMT joue un rôle important pour réaliser le bus à transactions séparées mais n'a pas
d'influence sensible sur l'effet de cette invention.
En conséquence, aucune autre description n'est fournie
dans la présente spécification.
Le tableau 4 montre les commandes de bus
définies dans le système d'antémémoire mentionné ci-
dessus. Sur celui-ci, SBR (lecture de bloc partagé) et EBR (lecture de bloc exclusif) son des commandes de bus d'adresses tandis que RPY (réponse) est une commande de bus de données. BW (écriture de bloc) est délivré en utilisant simultanément le bus d'adresses
et le bus de données.
Tableau 4
COMMANDE DE BUS
NOM DE LA
COMMANDE ABREVIATION DESCRIPTION DE L'OPERATION
Lecture de bloc SBR Lecture de bloc capable de partager des
données avec une autre antémémoire.
partagé Délivrée au bus lors de l'apparition d'une
erreur de lecture d'antémémoire.
Lecture de bloc EBR Lecture de bloc incapable de partager des
exclusive données avec une autre antémémoire.
exclusive Délivrée au bus lors de l'apparition d'une
erreur de stockage d'antémémoire.
Invalidation INV Destinée à invalider les données contenues dans d'autres antémémoires. Délivrée au bus lors de l'apparition de stockage dans
l'antémémoire de l'état "C" ou "DS".
Ecriture de bloc BW Destinée à écrire des données de
l'antémémoire dans la mémoire principale.
Réponse de données RPY Destinée à délivrer une réponse à SBR ou EBR. En se référant ensuite à la figure 2, le pont de bus 120 comprend un circuit de contrôle de pont de bus 150, un tampon de commande de bus L (LCB) 151, un tampon de commande de bus G (GCB) 152, une mémoire de
CTAG 153 et un tampon de copie de requête (RCB) 154.
Sur la figure, le bus local (bus L) 110 et le bus global (bus G) 5 sont identiques à ceux illustrés sur la figure 1. Le pont de bus 120 est connecté entre le bus L 110 et le bus G 5 par l'intermédiaire de tampons
d'entrée/sortie bidirectionnels 155.
Le RCB 154 est destiné à sauvegarder temporai-
rement la SBR et la EBR délivrées par le bus L. Une commande envoyée par le bus L est délivrée au circuit de contrôle de pont de bus 150 par l'intermédiaire du RCB 154 (ligne de signal 163) ou directement (ligne de signal 160). De même, une commande envoyée depuis le bus G est délivrée au circuit de contrôle de pont de
bus 150 par l'intermédiaire d'une ligne de signal 162.
Le circuit de contrôle de pont de bus 150 contrôle le
fonctionnement de l'ensemble du pont de bus 120.
Lorsqu'une commande est délivrée depuis le circuit de contrôle de pont de bus 150 vers le bus L, la commande est envoyée par l'intermédiaire du LCB 151. De même, une commande vers le bus G est délivrée
par l'intermédiaire du bus GCB 152.
Comme décrit ci-dessus, chacun parmi le bus L et le bus G a une structure telle que le bus d'adresse
et le bus de données peuvent fonctionner indépen-
damment l'un de l'autre. Il est en conséquence naturel que chacun parmi le LCB 151 et le GCB 152 soit mis en oeuvre sous la forme d'un tampon de bus d'adresses et
d'un tampon de bus de données séparés l'un de l'autre.
Toutefois, la structure du tampon n'a pas d'influence sur l'effet de cette invention et aucune autre
description n'est fournie.
La mémoire de CTAG 153 comporte une copie des marques de SIC 101 à 104 esclave du bus L 110. Le nombre d'entrées de la copie des marques correspond au nombre des SIC. Comme représenté sur le tableau 5, la copie de la marque (CTAG) a quatre états "invalide" (I), "propre/exclusif" (CE), "propre/partagé" (CS) et
"souillé/exclusif" (D).
Tableau 5
ETAT CTAG
ETAT DESCRIPTION
I Aucune donnée n'est présente dans les antémémoires esclaves de la mémoire
de CTAG.
CE Des données de l'état C peuvent être présentes dans une antémémoire esclave de la mémoire de CTAG et les données ne sont partagées avec aucune autre
! antémémoire esclave de la mémoire de CTAG.
CS Des données de l'état C peuvent être présentes dans une antémémoire esclave de la mémoire de CTAG et les données peuvent étre partagées avec une autre
antémémoire esclave de la mémoire de CTAG.
D Des données de l'état DE ou DS sont présentes dans une antémémoire esclave de la mémoire de CTAG et les données ne sont partagées avec aucune autre
antémémoire esclave de la mémoire de CTAG.
Les états de la SIC correspondant à ceux-ci sont présentés sur le tableau 6. Comme représenté sur le tableau 6, la SIC prend l'un des quatre états "invalide" (I), "propre" (C), "souillé/exclusif" (DE)
et "souillé/partagé" (DS).
Tableau 6
ETAT ANTEMEMOIRE
ETAT DESCRIPTION
I Aucune donnée n'est présente dans l'antémémoire.
C Les données de l'antémémoire coïncident avec les données de la mémoire
principale et peuvent être partagées avec une quelconque autre antémémoire.
DE Les dernières données non-coïncidentes avec les données de la mémoire principale sont présentes dans l'antémémoire et ne sont partagées avec aucune
autre antémémoire.
DS Les dernières données non-coïncidentes avec les données de la mémoire principale sont présente dans l'antémémoire et peuvent être partagées avec une
quelconque autre antémémoire connectée au même bus.
Le tableau 7 montre des combinaisons de la valeur d'état de la marque de la SIC et de la valeur d'état de la CTAG. La marque de la SIC et la CTAG en tant que copie de celle-ci sont contrôlées comme étant l'une des combinaisons indiquées par O sur le tableau
7, comme il va être décrit ultérieurement en détail.
Tableau 7
Etat de la CTAG
I CE CS D
- O O-O X
Etat de laC X O O X
SIC DE X X X O
DS x x x O
Une description va ensuite être fournie en
détail concernant les opérations du système d'antémémoire. En premier, l'opération lorsque la SIC
délivre une requête au bus L va être décrite.
En se référant à la figure 3, un processeur connecté à la SIC envoie une requête de lecture à la SIC. En réponse à la requête de lecture provenant du processeur, l'antémémoire est consultée. Dans le cas d'une correspondance d'antémémoire (correspondance-à l'étape 200), l'antémémoire délivre la réponse et
l'opération se termine.
Dans le cas d'une non-correspondance (manque à l'étape 200), la SIC délivre une requête SBR au bus L (étape 201). La réponse délivrée par le bus L est
entrée dans l'antémémoire et délivrée au processeur.
En référence aux valeurs délivrées par d'autres antémémoires dans l'étape OWN (tableau 1) lorsque la SBR est délivrée au bus L, un répondeur, c'est-à-dire un noeud destiné à délivrer la réponse est déterminé (arbitrage de réponse). L'état de l'antémémoire lorsque la réponse est entrée dans l'antémémoire est
déterminé comme étant C ou D (étape 202 à 207).
En passant à la figure 4, le fonctionnement du stockage depuis le processeur dans la SIC va être décrit. Les étapes allant de la fourniture d'une requête de stockage à la SIC jusqu'à la consultation de l'antémémoire sont similaires à celles mentionnées
conjointement avec la requête de lecture.
Si l'état de l'antémémoire est DE (DE à l'étape 210), l'opération d'écriture dans l'antémémoire est effectuée et le stockage est
terminé.
Si l'état de l'antémémoire est C ou DS (C/DS à l'étape 219), la SIC tente d'envoyer la INV au bus L. Si la fourniture de la INV est terminée, l'état de l'antémémoire est renouvelé dans DE (étape 213). Puis, l'opération d'écriture dans l'antémémoire est
effectuée et le stockage est terminé.
Dans le cas d'une non-correspondance d'antémémoire (manque à l'étape 210) et dans le cas du défaut de fourniture de la INV au bus L (défaut à
l'étape 212), la EBR est fournie au bus L (étape 211).
Ici, le défaut de fourniture de la INV représente le cas o, pendant l'essai de la fourniture de la INV par la SIC, une autre INV ou EBR dirigée vers la même adresse est délivrée par l'autre SIC ou le pont de bus sur le bus L. De la manière similaire à la SBR, le noeud destiné à délivrer la réponse est déterminé par l'arbitrage de réponse (étape 214 à 216). La réponse est entrée dans la SIC toujours dans l'état DE (étape 217). Les données de réponse font l'objet d'un
stockage.
En se référant ensuite à la figure 5, l'opération d'écriture depuis la SIC vers la mémoire principale va être décrite. Il est supposé que le bloc de la SIC est balayé en raison d'échange. Si l'état de l'antémémoire est DE ou DS, BW est délivrée au bus L (étapes 220 et 221) avant que l'antémémoire soit invalidée (étape 222). Si l'état de l'antémémoire est I ou C, l'antémémoire est directement invalidée (étape 220).
Une description va être fournie concernant le
fonctionnement lorsque la SIC reçoit une commande du bus L. En se référant aux figures 6A et 6B, il est supposé que la SIC reçoit la SBR du bus L. Si la consultation de l'antémémoire révèle que l'antémémoire se trouve dans l'état DE ou DS (DE/DS à l'étape 230), la SIC délivre OWN(D) à l'étape OWN de la commande de bus (étape 234). Si un droit de délivrer la réponse (droit de réponse) est acquis comme résultat de l'arbitrage de réponse (oui à l'étape 235), la réponse est envoyée au bus L (étape 236). Enfin, l'état de l'antémémoire est renouvelé dans DS (étape 237) et
l'opération se termine.
Si l'état de l'antémémoire est C à l'étape 230, la SIC délivre OWN(C) au bus L (étape 231). Si le droit de réponse est acquis en conséquence de l'arbitrage de réponse, la réponse est délivrée au bus
L (étape 232 et 233) et l'opération se termine.
Si l'état de l'antémémoire est I à l'étape
230, la SIC n'a rien à faire.
En passant à la figure 7, l'opération lorsque
la SIC reçoit la EBR depuis le bus L va être décrite.
Lors de la réception de la EBR, l'antémémoire est consultée (étape 240) de la manière similaire à la réception de la SBR. Si l'état de l'antémémoire est C, OWN(C) est délivré (étapes 241). Si l'état de l'antémémoire est DE ou DS, OWN(D) est délivré (étape 242). Si le droit de réponse est acquis en conséquence de l'arbitrage de réponse, la réponse est délivrée au bus L (étape 244). L'état de l'antémémoire est renouvelé en X (étape 245) et l'opération se termine. D'autre part, si le droit de réponse ne peut pas être acquis (non à l'étape 243), l'antémémoire est directement renouvelée dans I (étapes 245) et
l'opération se termine. Dans le cas d'une non-
* correspondance d'antémémoire (manque à l'étape 240),
la SIC ne fait rien et l'opération se termine.
En se référant à la figure 8, une description
va être fournie du cas o la SIC reçoit la INV depuis le bus L. Comme illustré sur la figure, la SIC ayant
reçu la INV depuis le bus L consulte l'antémémoire.
Dans le cas d'une correspondance d'antémémoire (C/DE/DS à l'étape 250), l'état de l'antémémoire est
renouvelé en I (étape 251) et l'opération se termine.
Dans le cas d'une non-correspondance d'antémémoire (manque à l'étape 250), rien n'est fait et l'opération
se termine directement.
En se référant à la figure 9, l'opération
lorsque la SIC reçoit BW depuis le bus L est décrite.
Lorsque la fourniture de BW sur le bus L est détectée, la SIC consulte l'antémémoire. Si l'état de l'antémémoire est DE ou DS (correspondance à l'étape 260), l'état de l'antémémoire est renouvelé en C (étape 261) et l'opération se termine. Dans le cas de la non- correspondance d'antémémoire (manque à l'étape
260), l'opération se termine sans rien faire.
Le fonctionnement lorsque le pont de bus reçoit une commande provenant du bus L va maintenant
être décrit.
En se référant à la figure 10, il est supposé que la SBR est délivrée sur le bus L. Recevant la SBR depuis le bus L, le pont de bus commence trois
opérations en parallèle.
En premier, il est fait référence à une copie des marques (CTAG) des antémémoires pour examiner si une copie d'un bloc désiré est présente ou non dans une antémémoire quelconque esclave du bus L. Dans une étape 272, une consultation et faite des CTAG correspondant aux SIC différentes du demandeur (CTAG0 sur la figure représente la CTAG correspondant à la SIC différente du demandeur). Dans le cas o il n'y a que des noncorrespondances (manque à l'étape 272), aucune copie du bloc n'est présente dans ces antémémoires esclaves du bus L (voir le tableau 7). En conséquence, le pont de bus délivre OWN(C) au bus L et fait l'acquisition du droit de réponse pour le bus L (voir le tableau 2). De plus, le pont de bus commence la fourniture de la SBR au bus G par l'intermédiaire du tampon de commande de bus G (GCB) (étapes 273, 275
et 277).
Si l'état d'un CTAG0 quelconque est un parmi CE, CS et D, il est estimé que l'une quelconque des SIC sur le bus L est sélectionnée en tant que répondeur. Puis, la fourniture du SBR au bus G est interrompue (étapes 272). Ainsi, le pont de bus fait référence à l'état de la CTAG et commence la fourniture de la commande au bus G. Cette opération a pour but d'augmenter la vitesse d'accès à la mémoire principale. En se référant au tableau 1, le résultat de la consultation de la SIC en ce qui concerne la SBR délivrée sur le bus L est révélé à l'étape OWN. Il faut remarquer ici que la logique de consultation de la RAM de marques lorsque la SIC reçoit l'adresse lors des étapes ADO et AD1 du bus L est fondamentalement similaire à la logique de consultation de la RAM de CTAG lorsque le pont de bus reçoit l'adresse de manière similaire. En conséquence, par comparaison aux cas o l'opération commence lorsque le résultat de la consultation de la marque par la SIC est reçu par l'intermédiaire du bus L, l'opération est plus rapide de plusieurs horloges si elle commence en réponse au résultat de la
consultation de la CTAG.
Dans le système d'antémémoire décrit ci-
dessus, la commande est délivrée au bus tous les cinq cycles d'horloge. En conséquence, si la fourniture de la SBR commence plusieurs horloges plus tôt, l'accès à la mémoire principale peut être augmenté en vitesse de cinq horloges. Cette amélioration de cinq horloges
semble contribuer fortement aux performances.
Puisque la commande est la SBR, la SBR est stockée dans le tampon de copie de requête (RCB)
(étape 270).
Enfin, lors de l'étape OWN du bus L, les signaux provenant des autres SIC sont reçus. Si OWN(C) ou OWN(D) est délivré depuis les autres SIC, il est
estimé que le pont de bus n'est pas le répondeur.
Alors, la CTAG est renouvelée et l'opération se
termine (étapes 271 et 285).
Il va ici être considéré un problème qui va présentement être décrit. De façon spécifique, si la CTAG0 est CE ou CS lors de l'étape 272, il est permis que toutes les SIC produisent OWN(I) (toutes les SIC sont dans l'état I). Dans ce cas, bien que la fourniture de la SBR au bus G soit interrompue lors de l'étape 272, les valeurs de OWN sur le bus L sont toutes OWN(I). En conséquence, conformément à la procédure du tableau 2, le pont de bus est sélectionné comme répondeur. En prenant en compte ce qui précède, le pont de bus de cette invention estime si la condition mentionnée ci-dessus est ou non satisfaite (étape 274). Si la condition est satisfaite la SBR est récupérée dans la RCB et la fourniture de la SBR au
bus G recommence (étape 276).
Après que la SBR est délivrée au bus G comme décrit ci-dessus, il est fait référence à OWN sur le bus G (étape 278). En fonction de l'état de OWN, la CTAG correspondant à la SIC en tant que demandeur est
renouvelée (étapes 279 à 281).
Ci-après, CTAGS indiquée sur la figure représente la CTAG de la SIC correspondant au demandeur sur le bus L. La procédure de détermination du répondeur sur le bus G est plus simple que sur le bus L. Si OWN(D) est délivré, l'état de la CTAG doit être D. Puisque le bloc souillé (DE/DS) n'est pas partagé parmi une pluralité de CPU, OWN(D) est toujours délivré depuis un seul CPU (étape 283). Pour le bus G, la mémoire principale est sélectionnée en tant que répondeur si
OWN(C) ou OWN(I) est délivré (étape 282).
Après que la réponse est délivrée par le bus G, la réponse est acheminée vers le bus L et
l'opération se termine.
En se référant à la figure 11, le pont de bus reçoit la EBR depuis le bus L. De la manière similaire à la réception de la SBR, le pont de bus commence trois types d'opérations en parallèle (étapes 290 -à 292). Il faut remarquer ici que même si la CTAG0 est dans l'état CS à l'étape 292, le pont de bus commence la fourniture de la EBR au bus G. La raison va être
décrite ci-après.
En se référant temporairement à la figure 1, il est supposé que les SIC 101 et 201 envoient les EBR directement à un bloc particulier à la même adresse sensiblement en même temps. Si les SIC 102 et 202 délivrent OWN(C) respectivement aux EBR, des réponses sont retournées aux bus L respectifs et des opérations de stockage individuelles sont effectuées au niveau
des SIC 101 et 201.
En revenant à la figure 11, il est supposé que la EBR est destinée à être délivrée au bus G après l'étape 293 ou les étapes 294 et 296. Dans ce cas, la EBR est délivrée par l'intermédiaire du GCB (étapes 295 et 297). Si la EBR n'est pas délivrée au bus G, la CTAG est renouvelée (étape 304) et l'opération se termine. Lorsque la EBR est délivrée au bus G, la CTAGS et la CTAG0 sont renouvelées respectivement dans D et I, quelle que soit la valeur du OWN (étapes 298 et 299). Après réception de la réponse, la réponse est acheminée vers le bus L (étapes 301 à 303) et
l'opération se termine.
En se référant à la figure 12, une description
va être faite concernant le fonctionnement du pont de bus recevant la INV depuis le bus L. Le pont de bus ayant reçu la INV depuis le bus L commence deux types d'opérations.
En premier, le pont de bus consulte la CTAGS.
Si la CTAGS se trouve dans l'état CE ou D, la INV n'est pas délivrée au bus G (correspondance à l'étape 310). La CTAGS est renouvelée en D et une entrée de correspondance de CTAG0 dans l'état CE ou D est également renouvelée en I. À ce moment, le succès du stockage est estimé lors d'une étape S311 (ligne en
tirets 329) et le traitement de la INV est terminé.
Si la CTAGS est dans l'état CS en conséquence d'une consultation de la CTAGS, la fourniture de la INV au bus G est commencée (étape 312). À ce moment, le défaut de stockage est estimé sur le bus L (ligne
en tirets 329) et la INV est annulée (étape 313).
Après cela, les INV de nouveaux délivrés sur le bus L sont annulées en continu jusqu'à ce que la fourniture
de la INV au bus G réussisse (ligne en tirets 319).
Généralement, si la commande est annulée sur le bus L, le traitement de la commande doit être également interrompu à l'intérieur du pont de bus. En conséquence la commande n'est pas délivrée au bus G. Toutefois, exclusivement dans le cas de la INV, la commande annulée sur le bus L est chargée dans le GCB et délivrée au bus G. La INV stockée dans le GCB à l'étape 312 doit être limitée à la première parmi les
INV annulées en continu.
Si la fourniture de la INV au bus G réussit (étape 314), l'annulation de la INV sur le bus L est supprimée pour terminer la fourniture de la INV au bus L. Comme décrit conjointement avec l'étape 212 de la figure 4, la SIC en tant que demandeur attend l'opération de stockage jusqu'à ce que la fourniture de la INV au bus soit terminée. En conséquence, il est garanti que l'opération de stockage dans la SIC est terminée après achèvement de la fourniture de la INV
au bus G (étapes 316 et 318).
D'autre part, la description va être effectuée
concernant le défaut de fourniture de la INV au bus G (défaut à l'étape 314). Ici, le défaut de fourniture de la INV signifie le cas o, pendant la réservation dans le GCB de la INV destinée à être délivrée au bus G, une autre INV ou EBR délivrée par un autre CPU et dirigée vers la même adresse, est reçue depuis le bus G. Ceci indique que l'opération de stockage au niveau de l'autre CPU est précédemment terminé. En conséquence, le pont de bus noeud ne doit pas délivrer la INV dans le GCB au bus G et terminer l'opération de stockage sur son propre bus L. À cet égard, le pont de bus arrête la fourniture de la INV lors de la détection de ce conflit (étape 315) et produit en continu le signal ACAN pour la INV sur le bus L. Les états de la CTAG sont tous renouvelés dans I (étape 317). Puisque l'état de la CTAGS est toujours CS à l'instant d'apparition du conflit, la INV est délivrée au bus L comme il sera décrit ultérieurement en détail (figure 16). En se référant de nouveau à la figure 4, la SIC en tant que demandeur modifie la fourniture de la INV en la fourniture de la EBR (étapes 211) lorsque le défaut de fourniture de la INV est révélé à l'étape 212. Puis, la EBR est délivrée au bus G. Enfin, le demandeur peut effectuer le stockage dans le dernier
bloc reçu comme réponse.
En se référant à la figure 13, le fonctionnement du pont de bus recevant BW depuis le bus L va être décrit. Lorsque la BW est délivrée depuis le bus L, le pont de bus achemine directement la BW au bus G (étapes 320 et 321). La CTAGS est renouvelée dans l'état I pendant que la correspondance de CTAG0 dans l'état I est renouvelée en CE (étape
322) et l'opération se termine.
Enfin, une description va être faite
concernant le cas o le pont de bus reçoit une commande depuis le bus G. En se référant à la figure 14, le pont de bus reçoit la SBR depuis le bus G. Lorsque la SBR est délivrée depuis le bus G, le pont de bus commence à consulter la CTAG. À ce moment, il est inutile de distinguer le demandeur comme dans la consultation depuis le bus L. Si la CTAG se trouve dans l'état D (D à l'étape 330), OWN(D) et la SBR sont respectivement délivrés au bus G et au bus L, et la réponse de la SIC est acheminée vers le bus G (étapes 333 à 338). À ce
moment, la CTAG est renouvelée de D dans CS.
Si la CTAG est dans l'état CE ou CS, OWN(C) est délivré au bus G et la CTAG est renouvelée en CS (étapes 331 et 332). Dans ce cas, la réponse est
délivrée depuis la mémoire principale.
Si la CTAG se trouve dans l'état I,
l'opération se termine directement.
En se référant à la figure 15, une description
va être faite concernant le fonctionnement du pont de bus recevant la EBR depuis le bus G. Si la CTAG se trouve dans l'état D (D à l'étape 340), OWN(D) est délivré au bus G et la EBR est acheminée vers le bus L de la manière similaire à la SBR. La réponse délivrée par la SIC est acheminée vers le bus G et l'opération se termine (étape 345 à 350). Dans ce cas, les valeurs de CTAG sont toutes renouvelées dans I. Si la CTAG est CE ou CS, OWN(C) est délivré au bus G (étape 341) et l'unité de mémoire principale est sélectionnée comme répondeur. Le pont de bus commence la fourniture de la INV au bus L (étapes 343 et 344) et l'opération se termine. Dans ce cas, la CTAG est
renouvelée dans I (étape 342).
Si la CTAG est I, l'opération se termine directement. En se référant à la figure 16, le fonctionnement du pont de bus recevant la INV depuis le bus G va être décrit. Si la CTAG se trouve dans l'état CS, le pont de bus commence la fourniture de la INV au bus L de la manière similaire à la EBR (étapes 360 à 363). Dans ce cas, la CTAG est renouvelé dans I. Si la CTAG est I, l'opération se termine directement. Lorsque la INV est reçue, la CTAG ne peut pas être CE ou D.
En se référant à la figure 17, une description
va être faite concernant le fonctionnement du pont de bus recevant la BW depuis le bus G. Lorsque l'autre CPU délivre la BW au bus G, il doit être assuré que la CTAG autre que l'expéditeur se trouve dans l'état I. En conséquence, lorsque la BW est envoyée au bus G,
l'autre CPU ne fait rien et l'opération se termine.
Comme décrit ci-dessus, le système d'antémémoire de cette invention à un premier avantage selon lequel, même si le conflit de stockage se produit entre des CPU différents, la cohérence de
l'antémémoire peut être conservée.
Ceci est dû au fait que la INV ou la EBR sur le bus L qui suit l'opération de stockage dans le bloc dont la CTAG est entrée comme état CS est toujours délivrée au bus G. Comme deuxième avantage, l'accès à la mémoire dans un temps d'accès optimum est réalisé avec une incohérence entre la CTAG et la marque d'antémémoire
partiellement autorisée.
Ceci est dû au fait que le temps d'accès à la mémoire est raccourci car le pont de bus fonctionne conformément à la valeur de la CTAG à laquelle il peut être fait référence à une plus grande vitesse que la marque de SIC. Simultanément, le pont de bus comprend la RCB pour la sauvegarde temporaire de la SBR et de
la EBR provenant du bus L de façon que la SBR ou la EBR sauvegardée dans la RCB soit renvoyée vers le bus G lorsqu'une désadaptation entre la CTAG et la marque5 d'antémémoire est révélée.

Claims (9)

REVEND I CATIONS
1. Système d'antémémoire, caractérisé en ce qu'il comprend un bus global unique (5), une pluralité d'unités centrales de traitement (1, 2) connectées audit bus global et une unité de mémoire principale (3 ou 4) connectée audit bus global, chacune desdites unités centrales de traitement comprenant un bus local (110 ou 210), une pluralité d'antémémoires de stockage (101-104 ou 201-204) et un pont de bus (120 ou 220) connecté audit bus local et audit bus global pour contrôler, par surveillance de marques d'antémémoire représentant les états desdites antémémoires de stockage de chaque unité centrale de traitement, une requête délivrée par l'une desdites antémémoires de stockage de chaque unité centrale de traitement audit bus local de chaque unité centrale de traitement pour éviter un conflit de stockage dû à ladite requête et une requête différente délivrée audit bus global à partir d'une des antémoires de stockage d'une unité centrale de traitement différente parmi lesdites unités centrales de traitement à travers le pont de bus de l'unité centrale de traitement différente et pour ainsi conserver une cohérence antémémoire parmi les antémémoires de stockage des unités centrales de traitement.
2. Système d'antémémoire selon la revendi-
cation 1, dans lequel le pont de bus de chacune desdites unités centrales de traitement comprend une mémoire de marques d'antémémoire (153) destinée à stocker une copie desdites marques d'antémémoire représentant les états desdites antémémoires de stockage; et dans lequel le pont de bus de chacune desdites unités centrales de traitement contrôlent, en référence à ladite copie des marques d'antémémoire de sa dite mémoire de marques d'antémémoire, ladite requête, de façon à éviter ledit conflit de stockage
dû à ladite requête et à ladite requête différente.
3. Système d'antémémoire selon la revendi-
cation 2, dans lequel le pont de bus de chacune desdites unités centrales de traitement comprend en outre: un tampon de copie de requête (154) destiné à bloquer temporairement, en tant que requête bloquée, ladite requête reçue depuis ledit bus local; un tampon de commande de bus global (152) destiné à bloquer une commande délivrée audit bus global; un tampon de commande de bus local (151) destiné à bloquer une commande différente qui est délivrée audit bus local; et un circuit de contrôle de pont de bus (150) sensible à ladite requête bloquée et à ladite requête différente pour contrôler ledit tampon de commande de bus global et ledit tampon de commande de bus local en référence à ladite mémoire de marques d'antémémoire pour que ledit tampon de commande de bus global et ledit tampon de commande de bus local délivrent ladite commande et ladite commande différente audit bus global et audit bus local en tant que commandes optimales de façon à éviter ledit conflit de stockage dû à ladite requête et à ladite
requête différente.
4. Système d'antémémoire selon la revendi-
cation 2, dans lequel chaque antémémoire de stockage de chacune desdites unités centrales de traitement notifie un résultat de consultation de la marque d'antémémoire représentant l'état de chaque dite antémémoire de stockage aux autres antémémoires de stockage de chacune desdites unités centrales de traitement et à ladite mémoire de marques d'antémémoire du pont de bus de chacune desdites unités centrales de traitement à un instant particulier d'un cycle de bus suivant qui fait suite à un cycle de bus auquel une requête de lecture de bloc
est délivrée audit bus local en tant que dite requête.
5. Système d'antémémoire selon la revendi- cation 4, dans lequel le pont de bus de chacune desdites unités centrales de traitement détermine, en référence à sa dite mémoire de marques d'antémémoire, l'une des antémémoires de stockage comportant des données de réponse pour ladite requête de lecture de bloc en tant que répondeur effectuant une réponse due auxdites données de réponse pour ladite requête de
lecture de bloc.
6. Système d'antémémoire selon la revendication 5, dans lequel le pont de bus de chacune desdites unités centrales de traitement contrôle ladite requête de lecture de bloc pour délivrer ladite requête de lecture de bloc par l'intermédiaire dudit bus global à ladite unité de mémoire principale lorsqu'il n'y a aucune antémémoires de stockage présente comportant les données de réponse pour ladite
requête de lecture de bloc.
7. Système d'antémémoire selon la revendi-
cation 6, dans lequel le pont de bus de chacune desdites unités centrales de traitement sert de dit répondeur qui effectue la réponse due aux données de réponse présentes dans ladite unité de mémoire principale.
8. Système d'antémémoire selon la revendi-
cation 6, dans lequel la copie de la marque d'antémémoire pour chaque antémémoire de stockage représente un parmi "invalide" (I), "propre/exclusif" (CE), "propre/ partagé" (CS), "souillé/exclusif" (D) o "propre" et "souillé" ont une signification respectivement équivalente à des données dans chaque antémémoire de stockage qui sont "coïncidentes" et "non-coïncidentes" avec des données de ladite unité de mémoire principale; et dans lequel le pont de bus de chacune desdites unités centrales de traitement contrôlent, lorsqu'une requête de lecture de bloc exclusive est délivrée audit bus local en tant que dite requête de lecture de bloc, ladite requête de lecture de bloc exclusive pour délivrer ladite requête de lecture de bloc exclusive par l'intermédiaire dudit bus global, à ladite unité de mémoire principale, lorsque la copie des marques d'antémémoires pour les antémémoires de stockage de chacune desdites unités centrales de traitement représente soit "invalide"
(I), soit "propre/partagée" (CS).
9. Système d'antémémoire selon la revendi-
cation 8, dans lequel le pont de bus de chacune desdites unités centrales de traitement sert de dit répondeur qui effectue la réponse due aux données de réponse présentes dans ladite unité de mémoire principale.
FR9807698A 1997-06-19 1998-06-18 Systeme d'antememoire capable de conserver une coherence antememoire parmi les antememoires de stockage de deux unites de traitement centrales lors d'un conflit de stockage Expired - Fee Related FR2765004B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16286097A JP3288261B2 (ja) 1997-06-19 1997-06-19 キャッシュシステム

Publications (2)

Publication Number Publication Date
FR2765004A1 true FR2765004A1 (fr) 1998-12-24
FR2765004B1 FR2765004B1 (fr) 2001-09-07

Family

ID=15762637

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9807698A Expired - Fee Related FR2765004B1 (fr) 1997-06-19 1998-06-18 Systeme d'antememoire capable de conserver une coherence antememoire parmi les antememoires de stockage de deux unites de traitement centrales lors d'un conflit de stockage

Country Status (3)

Country Link
US (1) US6173370B1 (fr)
JP (1) JP3288261B2 (fr)
FR (1) FR2765004B1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6678803B2 (en) * 1999-11-03 2004-01-13 Micron Technology, Inc. Method and device to use memory access request tags
JP2002342162A (ja) * 2001-05-14 2002-11-29 Nec Corp メモリアクセス制御方式及びホストブリッジ
US7366847B2 (en) * 2006-02-06 2008-04-29 Azul Systems, Inc. Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag
EP2696289B1 (fr) * 2011-04-07 2016-12-07 Fujitsu Limited Dispositif de traitement d'informations, système d'ordinateur parallèle et procédé de commande de dispositif de traitement informatique

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2178205A (en) * 1985-06-27 1987-02-04 Encore Computer Corp Hierarchical cache memory system and method

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0496842A (ja) 1990-08-13 1992-03-30 Fujitsu Ltd キャッシュメモリのインタセプト制御方式
JPH04140860A (ja) 1990-10-02 1992-05-14 Nippon Telegr & Teleph Corp <Ntt> マルチプロセッサにおけるバス制御方法
CA2051222C (fr) * 1990-11-30 1998-05-05 Pradeep S. Sindhu Bus de memoire coherent a commutation de paquets pour multiprocesseurs a memoire commune
JPH06110844A (ja) 1992-08-11 1994-04-22 Toshiba Corp 分散共有メモリ型マルチプロセッサシステム
US5761450A (en) * 1994-02-24 1998-06-02 Intel Corporation Bus bridge circuit flushing buffer to a bus during one acquire/relinquish cycle by providing empty address indications
US5524216A (en) 1994-05-13 1996-06-04 Hewlett-Packard Company Coherent transaction ordering in multi-tiered bus system
WO1996029653A1 (fr) * 1995-03-17 1996-09-26 Intel Corporation Protocole de traitement multiple, a coherence d'antememoire, utile sur un bus local
JP2786124B2 (ja) 1995-04-26 1998-08-13 甲府日本電気株式会社 共有メモリ型マルチプロセッサシステム
US5860108A (en) * 1995-04-26 1999-01-12 Nec Corporation Method and clustered multi-processor system for controlling a clock phase for clusters
EP0834135B1 (fr) * 1995-06-15 2003-01-02 Intel Corporation Architecture concue pour un processeur d'entree/sortie integrant une passerelle pci a pci
JP3067976B2 (ja) 1995-07-05 2000-07-24 日本電気株式会社 マルチレベルバス結合型マルチプロセッサシステム
US5768622A (en) * 1995-08-18 1998-06-16 Dell U.S.A., L.P. System for preemptive bus master termination by determining termination data for each target device and periodically terminating burst transfer to device according to termination data
US5860110A (en) * 1995-08-22 1999-01-12 Canon Kabushiki Kaisha Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition
US5761452A (en) * 1996-03-18 1998-06-02 Advanced Micro Devices, Inc. Bus arbiter method and system
US5946709A (en) * 1997-04-14 1999-08-31 International Business Machines Corporation Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2178205A (en) * 1985-06-27 1987-02-04 Encore Computer Corp Hierarchical cache memory system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CANTRELL J: "FUTUREBUS+ CACHE COHERENCE", WESCON TECHNICAL PAPERS, vol. 34, 1 November 1990 (1990-11-01), pages 90 - 94, XP000227853 *

Also Published As

Publication number Publication date
JPH1115734A (ja) 1999-01-22
JP3288261B2 (ja) 2002-06-04
FR2765004B1 (fr) 2001-09-07
US6173370B1 (en) 2001-01-09

Similar Documents

Publication Publication Date Title
FR2720531A1 (fr) Commande de verrouillage pour système de traitement de données.
FR2677472A1 (fr) Unite de controle pour memoire cache de second niveau.
FR2820850A1 (fr) Controleur de coherence pour ensemble multiprocesseur, module et ensemble multiprocesseur a architecture multimodule integrant un tel controleur
TW200821834A (en) Data processing system, cache system and method for updating an invalid coherency state in response to snooping an operation
EP0692763A1 (fr) Système informatique ouvert à serveurs multiples
EP0881579B1 (fr) Compteurs de remplacement pour machine avec mémoire à accès non uniforme.
FR2814555A1 (fr) Systeme et procede de gestion memoire de coherence de donnees et reseau multiprocesseur associe
EP0881574B1 (fr) Dispositif d&#39;instrumentation pour machine avec mémoire à accès non uniforme.
FR2927437A1 (fr) Systeme informatique multiprocesseur
EP0837396B1 (fr) Opération atomique sur mémoire distante et dispositif permettant d&#39;effectuer cette opération
FR2764097A1 (fr) Detection de points chauds dans une machine avec memoire a acces non uniforme
EP3217290A1 (fr) Systeme sur puce et procede d&#39;echange de donnees entre noeuds de calculs d&#39;un tel systeme sur puce
FR3103585A1 (fr) Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
FR2765004A1 (fr) Systeme d&#39;antememoire capable de conserver une coherence antememoire parmi les antememoires de stockage de deux unites de traitement centrales lors d&#39;un conflit de stockage
FR3103584A1 (fr) Procédé de gestion du débogage d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
FR2493562A1 (fr) Systeme d&#39;utilisation de disques en commun et d&#39;intercommunication entre disques
FR2644260A1 (fr) Dispositif de commande d&#39;acces en memoire pouvant proceder a une commande simple
EP1049018A1 (fr) Architecture d&#39;interconnexion modulaire pour machine multiprocesseur extensible, mettant en oeuvre une hiérarchie de bus virtuelle à plusieurs niveaux et la même brique de base pour tous les niveaux
FR2733067A1 (fr) Dispositif et procede de commande de verrouillage
FR2970794A1 (fr) Systeme multi-cœurs et procede de coherence de donnees dans un tel systeme
EP3629185B1 (fr) Procédé de gestion de la fourniture d&#39;informations, en particulier des instructions, à un microprocesseur et système correspondant
EP0908828B1 (fr) Procédé et système contrôle d&#39;accès partagés à une mémoire vive
FR2717921A1 (fr) Dispositif de gestion de conflit d&#39;accès entre un CPU et des mémoires.
FR2759472A1 (fr) Registre semaphore rapide a fonctionnement securise sans protocole de bus specifique
EP3765959B1 (fr) Gestion des donnees de configuration pour un serveur multimodule

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20080229