FR 2602353 A1 19880205 FR 8710620 A 19870727 R-ERE>C:E ET CON'RCE DE CACEE La présente invention concerne des systèmes de traitement de données et, plus particulièrement, un répertoire pour commander un cache qui assure une mémorisation locale pour des emplacements de mémoire auxquels on accède fréquemment. Un cache est une mémoire locale de petite capacité et relativement rapide qui est utilisée pour assurer une mémorisation locale pour des emplacements mémoire auxquels on accède fréquemment d'une mémoire principale plus grande, relativement lente. En mémorisant les informations ou une copie des informations de façon 10 locale, le cache peut intercepter des références de mémoire et les traiter directement sans transférer la requête à la mémoire principale sur le bus du système. Le résultat en est un encombrement moindre du bus mémoire et une durée d'attente réduite sur le bug local vers le processeur requérant. Dans un système à multitrai15 tements, l'utilisation d'un cache augmente également les performances possibles du système en réduisant les exigences de chaque processeur en ce qui concerne la largeur de bande du bus du système, permettant ainsi à plus de processeurs d'être utilisés dans le système. Il est avantageux de prévoir un cache unique et un répertoire de cache partagé par plusieurs processeurs. Dans des systèmes à très haute intégration (VLSI), il est également avantageux de pouvoir donner au cache une configuration telle qu'il puisse traiter un, deux ou plusieurs processeurs, selon la confi25 guration du système. En conséquence, un objet de la présente invention est de prévoir un répertoire et une commande de cache qui puissent être partagés en deux répertoires logiques ou plus pour contrôler des requêtes en provenance de deux processeurs ou plus. Un autre objet de la présente invention est de prévoir un tampon de prérecherche et un système de commande pour le tampon de prérecherche qui permette au tampon d'être partagé en deux canaux logiques ou plus pour traiter des prérecherches de cache associées à des requêtes en provenance de deux processeurs ou 35 plus. 2602353' En bref, les objets ci-dessus sont atteints selon l'invention en prévoyant un répertoire de cache capable d'être conformé selon plusieurs voies, chaque voie comprenant une mémorisation d'étiquettes et de bits valides pour effectuer une recber5 che associative dans le répertoire des adresses en réseaux de données du cache. Un registre de configuration de cache partage le répertoire de cache en deux ou plusieurs répertoires logiques qui peuvent contrôler les requêtes en provenance de deux processeurs ou plus. Un tampon de prérecherche est muni d'un registre de commande de prérecherche qui partage le tampon de prérecherche en deux canaux logiques ou plus. Les canaux logiques traitent des prérecherches de cache associées à des requêtes en provenance de deux processeurs ou plus. L'invention présente l'avantage qu'un répertoire et une commande de cache unique peuvent être partagés par deux ou plusieurs processeurs et peuvent prendre une configuration adaptée au nombre de processeurs disponibles dans le système. La présente invention sera plus claire à la lecture de 20 la description suivante de modes de réalisation particuliers faite en relation avec les dessins joints parmi lesquels: la figure 1 est un schéma sous forme de blocs d'un système de multitraitements à double bus de système dans lequel la présente invention peut être mise en oeuvre; la figure 2 est un schéma sous forme de blocs d'un module extenseur de bus (BXU) dans lequel la présente invention est mise en oeuvre; la figure 3 est un schéma sous forme de blocs du répertoire de cache de la figure 2; la figure 4 est un schéma sous forme de blocs plus détaillé de la logique de prérecherche d'entrée/sortie (I/O) représentée en figure 2; et la figure 5 est un diagramme temporel d'une opération de remplissage de cache. La figure 1 représente un schéma sous forme de blocs d'un système de multitraitements à double bus de système. Des modules extenseurs de bus 10, 12, 30, 32 sont reliés à des bus doubles de système 20, 22 et à des bus locaux 18, 38. Les bus locaux assurent une interface vers des processeurs de canaux 14, 16 et des processeurs de données généralisés 34, 36. Le bus local est commandé du côté du module extenseur de bus (BXU) par une logi5 que de commande de bus local. Cette logique inclut des systèmes de reconnaissance d'adresse pour traiter des gammes d'adresse multiples en mémoire. Elles assurent également une coopération entre les modules multiples d'extenseur de bus pour assurer un fonctionnement efficace avec les bus multiples 20, 22. La figure 2 représente un schéma sous forme de blocs du module extenseur'de bus 10 représenté en figure 1. Le module extenseur de bus 10 est relié à un bus de système 20 par l'intermédiaire d'une logique de commande de bus de système 60 et à un bus local 18 par l'intermédiaire d'une logique de commande de bus 15 local 68. Le bus de système 20 est plus complètement décrit dans les brevets des Etats-Unis d'Amérique No 4 315 308, 4 480 307 et 4 473 880. La logique de commande du bus de système 60 comprend des moyens logiques d'arbitrage, de surveillance de fonctionnement pipe-line, de reconnaissance d'adresse et de signalisation de bus 20 comme cela est indiqué dans les brevets susmentionnés. La logique de commande de bus de système 60 assure une mémorisation temporaire pour maintenir les requêtes et les réponses tandis qu'elles se déplacent entre le bus et la logique interne du BXU. La logique de bus de système 60 comprend six mémoires intermédiaires dont 25 chacune peut mémoriser un paquet de bus complet. Trois tampons ou mémoires intermédiaires sont alloués à des requêtes venant de l'extérieur et trois à des requêtes venant de l'intérieur. Dexcanaux de prérecherche sont prévus pour traiter des flux de transfert d'entrée/sortie. Chaque canal comprend deux tampons de 30 16 multiplets. Quand le processeur de canal requiert des données à partir des tampons, le BXU prérecherche automatiquement le bloc de données suivant. Ceci assure une augmentation notable des performances d'entrée/sortie, car les requêtes des processeurs de canaux en ce qui concerne des données sont traitées immédiatement à 35 partir des tampons de prérecherche. Processeurs de canaux Les processeurs de canaux 14, 16 de la figure 1 assurent le contrôle du transfert de données à partir et vers les dispositifs liés aux bus d'entrée/sortie 46, 48. Modules de commande de mémoire Les modules de commande de mémoire 50, 52 assurent la commande des transferts de données en direction et à partir des réseaux de mémoire 53, 55 associés aux bus mémoire 54, 56. Logique de commande et de répertoire de cache Le répertoire de cache 62 et la commande 64 dans le BXU de la figure 2, représentés plus en détail en figure 3, commandent un cache 24 qui peut être externe au BXU ou qui peut être situé sur la même puce que le BXU. L'avantage d'un cache externe est que des mémoires de cache plus grandes peuvent être traitées. La logique de répertoire et de commande associée au cache comprend un algorithme de cohérence de cache qui assure que des requêtes de processeurs sont toujours correctement traitées même s'il existe plusieurs processeurs munis chacun de son propre cache, partageant les mêmes structures de données. Comme le représente la figure 3, la fonction du répertoire 62 est de mémoriser des adresses qui correspondent aux données qui sont mémorisées dans la mémoire de cache 24. Le répertoire peut être conformé selon une ou plusieurs voies. En figure 3, le répertoire a une configuration en quatre voies (0, 1, 2, 3). 25 Une ligne est le bloc de base des données transférées entre le cache et la mémoire principale. Elle comprend 16 multiplets de données. Une ligne est également appelée bloc de transfert. Si les données corrrespondant à une adresse particulière sont mémorisées dans le cache, le cache peut fournir les données, évitant ainsi un 30 accès en mémoire principale. Ceci est appelé un "touché de cache". La décision "touché" ou "raté" est déterminée ligne par ligne. Un bloc d'adresse constitue l'unité de base de l'adressage du cache. Chaque bloc d'adresse décrit une adresse physique de huit ou de quatre lignes contiguës du cache. Il existe un bit valide associé à chaque ligne dans un bloc d'adresse. Si la ligne est présente dans le cache, alors le bit valide est mis à un. L'information d'adresse mémorisée dans le répertoire de cache est appelée une étiquette. Puisque de nombreuses adresse est s'adaptent à un bloc d'adresse unique, l'information d'étiquette est utilisée pour identifier les emplacements de mémoire exacts qui sont présentement associés à un bloc 5 d'adresse. Un "touché" prend place quand l'étiquette d'un bloc d'adresse s'adapte à l'adresse du bus et que le bit valide de ligne désirée est à un. Chaque voie assure une mémorisation pour l'étiquette et les bits valides. Dans le cas de voies multiples, comme cela est 10 représenté en figure 3, des comparaisons simultanées multiples sont effectuées dans les circuits de comparaison 70 - 76 entre l'adresse du bus et les champs d'étiquettes dans les voies pour déterminer si les données se trouvent dans le réseau de données de cache. Un ensemble est un groupement de blocs d'adresse consistant 15 en un bloc d'adresse de chaque voie. Tous les blocs d'adresse dans cet ensemble sont simultanément choisis quand une partie de l'adresse du bus local est décodée en une adresse d'ensemble par le décodeur 69. Le répertoire de la figure 3 comprend 64 ensembles. Quand un nouveau bloc de données doit être introduit dans le cache, il peut être nécessaire de supprimer un bloc de données ancien qui se trouve déjà dans le cache pour laisser de la place pour les nouvelles données. Il existe une séquence aléatoire pour déterminer quelle voie sera remplacée quand une nouvelle 25 adresse est nécessaire dans un bloc d'adresse. Quand une transaction d'écriture sur le bus local implique une adresse qui n'est pas dans le cache (un raté ae cache) aucun essai n'est effectué pour mémoriser les données correspondantes dans le cache. Toutefois, quand une transaction 30 d'écriture sur le bus local implique une adresse qui se trouve dans le cache (un touché de cache), le répertoire utilise un mode d'écriture. Ceci signifie que des écritures de bus local qui entraînent un touché de cache sont écrites dans le cache ainsi que dans la mémoire principale. Ceci assure que la mémoire principale 35 mémorise toujours une copie valide des emplacements de données. Regisire de C ofviuratirr de Cache Le registre de configuration de cache qui est situé dans la logique de configuration et de commande de cache 64 de la figure 2 est représenté ci-dessous. REGISTRE DE CONFIGURATION DE CACHE 12 11 10 9 8 7 6 5 1 0 IT E I TT I RR I D I WWWWW L I 0 0 00 00 0 00000 0 -- Défauts & l'initialiI I I I I I I sation 1 I I I.. CONFIGURATION DE LIGNE I-I I --I I CONFIGURATION DE VOIE I I I ------------------ MODE DE REMPLACEMENT I I I I DIAG I I i àà----------------------- COMMANDE DE REMPLACE15 1 MENT I I ------------------------------ OPTIONS DE SYNCHRO I- ------------------------------------- VALIDATION DE CACHE ----------------------------------------- TEST DE VALIDATION Le registre de configuration de cache contient les bits 20 qui déterminent le nombre de lignes par bloc d'adresse, le nombre de voies dans le répertoire de cache, les bits de diagnostic, les bits de synchronisation, et un bit de validation de cache qui valide le cache pour qu'il fonctionne. Si un processeur de données généralisé (GDP) utilise 25 des BXU multiples comme cela est représenté en figure 1, ces BXU peuvent avoir une configuration propre à fonctionner en coopération pour fournir un plus grand répertoire et adresser une plus grande mémoire de données. Les BXU fonctionnent ensemble en tant que modules logiques uniques. Essentiellement, ce répertoire plus 30 important présente un nombre accru d'ensembles. Ainsi, un cache géré par deux BXU peut avoir un répertoire comprenant 128 ensembles au lieu de 64. Pour que des BXU multiples fonctionnent ensemble, le cache doit être prévu pour un entrelacement. Le nombre de BXU doit être identique au facteur d'entrelacement. S'il n'y a pas 35 d'entrelacement, le cache doit être commandé par un BXU unique. 2602353' L'entrelacement est établi par les bits de commande d'entrelacement dans le registre d'accord dans la logique de commande de bus de système 60 représentée ci-dessous. REGISTRES DE MASOUE ET D'ACCORD DE BUS SYSTEME (AP) 31 18 17 6 5 4 3 1 0 _IMM_____ M I xxxxxxxxxxxxx I NN I xxx I x I MASQUE I BBBBBBBBBBBBB I xxxxxxxxxxxxx | II I xxx I E I ACCORD ____________________________________________0000000000000 00 0 Défauts à l'initiaI I I lisation I ----- VALIDATION I ---------------- COMMANDE I D'ENTRELACEMENT ------------------------------------------- RECONNAISSANCE Reconnaissance d'adresse mémoire La logique de commande du bus système 60 contient un système de reconnaissance d'adresse. Son but est de partitionner l'espace d'adresse en un espace d'adresse de bus local et un espace d'adresse de bus système. La logique ne modifie pas l'adresse d'une référence qu'elle transmet au bus local. Le système de 20 reconnaissance d'adresse est utililisé pour accorder l'adresse à tous les paquets de requête qui tombent à l'intérieur des 16 mégamultiplets supérieurs de l'espace d'adresse. Le système de reconnaissance d'adresse comprend deux registres, le registre d'accord et le registre de masque décrits 25 ci-dessus. Ensemble, ils définisent une mémoire à cartographie de fenêtre d'un bus à l'autre. Le registre d'accord définit o commence l'espace d'adresse de bus local dans l'espace d'adresse total sur le bus du système (la "Base"), et le registre de masque définit combien d'espaces d'adresse disponibles sur le bus de 30 système cartographié pour le bus local (la "dimension"). Le registre de masque est utilisé pour masquer les bits d'adresse qui choisissent un emplacement dans l'espace d'adresse de bus local. La dimension de l'espace d'adresse cartographié vers le bus opposé détermine le nombre de zéros d'ordre inférieur dans le registre de masque. Ainsi, pour reconnaître deux multiplets NO à transférer vers le bus opposé, les N bits d'ordre inférieur du registre de masque doivent être remplis de zéros. Les bits supérieuis de N à 31 doivent être remplis de uns. La dimension de la 5 fenêtre de cartographie va de 256 Kmultiplets à l'espace d'adresse complet (4 Gmultiplets). Le registre d'accord est utilisé pour choisir o dans l'espace d'adresse de bus AP, est situé l'espace d'adresse du bus local. Les N bits d'ordre inférieur du registre d'accord sont 10 ignorés, puisqu'ils sont masqués par le registre de masque. Ceci signifie que l'espace d'adresse de bus opposé doit être aligné sur des multiples entiers de la gamme reconnue. Entrelacement de bus La logique de commande de bus système 60 assure 15 l'entrelacement pour des références mémoire internes. Ceci est appelé l'entrelacement de modules. L'entrelacement consiste à propager des requêtes sur des frontières non contiguës à 16 multiplets avec un espacement intermédiaire de 16 multiplets. L'entrelacement peut être d'une voie (pas d'entrelacement), de deux voies, 20 ou de quatre voies. Un entrelacement d'une voie signifie que chaque requête reconnue par le système de reconnaissance d'adresse mémoire de la logique de contrôle de bus de système 60 est traitée par le BXU. Avec un entrelacement de deux voies, l'espace d'adresse du bus système est effectivement divisé en deux partitions, les 25 adresses 0-15, 32-47,... étant assignées à la première partition et les adresses 16-31, 48-63,... étant assignées à la seconde partition. Un BXU peut répondre seulement quand une adresse est reconnue par le système de reconnaissance de bus local et tombe dans sa partition assignée. Un entrelacement à quatre voies fonc30 tionne comme un entrelacement à deux voies, mais quatre partitions existent, la première comprenant 0-15, 64-77, etc. En tout cas, le BXU ne modifie pas l'adresse avant qu'elle ne soit transmise au bus local. Les fonctions d'entrelacement sont commandées par les bits de commande d'entrelacement 35 dans les registres d'accord et de masque. Système de reconnaissance d'adresse L'ensemble réel système de reconnaissance d'adresse/ registre comprend une paire de registres accord/masque. L'adresse du registre d'accord et du bus AP sont masquées par le registre 5 de masque, et les résultats sont comparés pour déterminer si l'accès est reconnu. En général, les champs de reconnaissance de masque des registres de masque et d'accord déterminent l'emiplacement des fenêtres de cartographie. Ces champs sont ce que l'on désigne couramment quand on traite des systèmes de reconnaissance 10 d'adresse. Définition des champs de registres accord/masque Reconnaissance: Dans le registre masque, chaque bit dans le champ de reconnaissance qui est mis à un amènera le bit d'adresse de bus AP correspondant à être comparé au bit du registre d'accord corres15 pondant. Si un bit est effacé, alors cette position de bit est une position "indifférente" pendant une reconnaissance d'adresse. Dans le registre d'accord, chaque bit dans le champ de reconnaissance sera comparé aux bits correspondants dans les cycles d'adresse du bus AP. Ainsi, ces bits fournissent une 20 adresse de partition de mémoire qui est reconnue par ce système de reconnaissance d'adresse. ommande d'entrelapement: Ces deux champs déterminent le facteur d'entrelacement et l'accord pour le système de reconnaissance de la logique de commande de bus système 60. Le tableau ci-après 25 représente l'impact des diverses configurations de ces bits. Bits de masque Bits d'accord AD5, AD4 requis pour l'accord 00 xx xx pas d'entrelacement 01 x0 x0 (2 voies) 01 xl xl 10 ILLÉGAL xx xx 11 00 00 (4 voies) 11 01 01 11 10 10 11 11 11i VALIDATION 1 = L'ensemble de registres de masque et d'accord est validé. 0 = Ce système de reconnaissance est invalidé. Logique de commande de bus local La logique de commande de bus local 68 comprend quatre systèmes de reconnaissance d'adresse mémoire et les registres de contrôle suivants. REGISTRE DE CONTROLE DE BUS LOCAL 7 6 5 4 3 2 10 ______________________________10 E IO I D D I II I NN I 0 0 0 P 00 00 --- Défauts à l'initialisation I I I I I------ MASQUE D'ENTRELACEMENT I I I I -------------- ACCORD D'ENTRELACEMENT I I I -------------------- MODE BXU 15.--------------- ------INVALIDER RAM INIT i -------------------------------- ARBITRAGE PROPRIETAIRE ----------------------------------- ARBITRAGE VALIDATION ENTRELACEMENT MASOUE/ACCORD Ces deux champs déterminent le facteur d'entrelacement 20 et l'accord pour la logique de commande de cache 64, et les systèmes de reconnaissance d'adresse dans la logique de commande de bus local qui sont validés en entrelacement. MODE BXU 0 = mode mémoire 1 - mode processeur INVALIDATION RAM INIT 0 = Le système de reconnaissance de mémoire RAM INIT est coupé 1 = Le système de reconnaissance de mémoire RAM INIT est en route. ARBITRAGE PROPRIETAIRE 30 1 = propriétaire 0 = locataire ARBITRAGE VALIDATION 1 = Le BXU commandera et surveillera les lignes d'arbitrage en tant que propriétaire ou que locataire. il 0 = Le BXU ignorera les lignes d'arbitrage. REGISTRES DE MASOUE ET D'ACCORD DE BUS LOCAUX 31 18 17 5 4 3 2 1 0 I MMMMMMMMMMMM 1 xxxxxxxxxxxxx I xilxJxjxlxI MASQUE 5 IBBBBBBBBBBBBB I xxxxxxxxxxxxx I xlClSIFF ACCORD 0000000000000 0 0 00 Défauts à l'initiaI I I lisation I I I --- FONCTION I ----- SEQUENCE 1 ------- INHIBITION CACHE ------------------------------------ RECONNAISSANCE FONCTION 00 = Cet ensemble de registres est invalidé. 01 = Cet ensemble de registres est tel que la récupération de bus 15 est validée et qu'on utilise les bits de configuration d'entrelacement dans le registre de commande de bus local pour rendre possible l'opération de cache. L'entrelacement est commandé par le registre de commande de bus local. RECONNAISSANCE Dans le registre MASQUE chaque bit dans ce champ qui est mis à un amènera un bit d'adresse de bus local correspondant à être comparé au bit de registre d'accord correspondant. Dans le registre ACCORD chaque bit de ce champ sera comparé au bit d'adresse de bus local correspondant. Ces bits 25 fournissent une adresse de base pour la partition de la mémoire qui est reconnue par ce système de reconnaissance d'adresse. INHIBITION DE CACHE 1 - Des requêtes qui satisfont à ce système de reconnaissance ne seront pas mises en cache. 0 = Des requêtes qui satisfont à ce système de reconnaissance seront mises en cache pourvu que d'autres bits de commande soient convenablement établis. 2602353' rére-herche de cazhe Un algorithme de prérecherche de cache est utilisépar le BXU pour accroître les performances du processeur sans augmenter de façon notable l'utilisation du bus par le processeur. Une 5 prérecherche est déclenchée si la requête en cours est une lecture susceptible d'être introduite dans le cache à quatre mots. La ligne séquentielle suivante ne se trouve dans le cache, et la ligne séquentielle suivante se trouve dans le même bloc d'adresse que la ligne de requête en cours. Dans le mode de réalisation 10 décrit de l'invention, les recherches d'instruction du processeur et des opérations en chaîne utilisent toutes deux des accès en lecture à quatre mots. Un accès en lecture à quatre mots est le seul type d'accès qui présente une forte probabilité d'être suivi d'un accès vers l'emplacement suivant de la mémoire principale. 15 Bien sûr, l'invention peut être mise en oeuvre dans des systèmes utilisant des accès autres qu'a quatre mots, c'est-à- dire des accès à N mots, pour autant que le type d'accès à N mots présente une forte probabilité d'être suivi d'un accès vers l'emplacement suivant dans la mémoire principale. La ligne qui est prérecherchée est la ligne séquentielle suivante. Si les BXU sont entrelacés, la requête en cours sera traitée par un premier BXU tandis que la prérecherche sera effectuée par un autre BXU. Quand des données sont prérecherchées, quatre mots sont introduits dans le BXU. Ces données sont mémo25 risées de façon interne et-ne sont pas écrites vers le cache. Si une requête suivante est produite pour cet emplacement, elle sera traitée en tant que manqué de cache, mais aucune requête de bus ne sera produite. Le cache sera rempli immédiatement à partir du tampon interne du BXU plutôt que d'effectuer une requête dans la 30 mémoire principale. Il existe deux canaux de prérecherche dans le BXU. Si les deux canaux sont validés, à chacun sera assigné un processeur spécifique. Ces deux canaux sont totalement indépendants. L'état, ou les données dans un canal de prérecherche n'est jamais modifié 35 par les actions de l'autre processeur ou canal de prérecherche. La logique de répertoire et de contrâle garantit que les données de cache et les données de prérecherche de cache seront cohérentes avec la dernière version des données dans la mémoire principale, même en présence de caches multiples. Ceci est 5 réalisé par l'opération de mise à jour qui nécessite que, quand des données sont écrites dans le cache, elles sont également écrites vers la mémoire principale. Deuxièmement, le bus de système 20 est surveillé en ce qui concerne des changements d'emplacements de mémoire qui sont en cours dans le cache. La procédure de mise à jour d'écriture assure que la mémoire principale contiendra toujours la copie la plus récente de toutes les données. Ainsi, un cache de BXU ne mémorisera jamais la seule copie valide des données. Tout accès qui est autorisé à s'écouler vers la mémoire principale est toujours garanti comme 15 ayant obtenu la dernière copie d'un élément de données. Une mise à jour vers le cache ne peut être effectuée sans envoyer une requête d'écriture sur le bus AP pour mettre ainsi à jour la mémoire principale. Le mécanisme de cohérence surveille toutes les requêtes 20 de bus. Quand il détecte une requête d'écriture en provenance d'un autre BXU, ou une requête d'écriture non mettable en cache d'ellemême, l'adresse de cette requête est fournie au répertoire de cache. Si un touché de cache prend place, alors la ligne correspondant au touché est notée comme invalide. Ce mécanisme de cohérence 25 peut s'appliquer au répertoire de cache et au répertoire de prérecherche. Séquence de remplissage de cache Quand le processeur fournit une requête de lecture. mettable dans le cache qui entraIne un raté de cache, le BXU doit 30 d'abord rechercher la ligne de cache manquante à partir de la mémoire et renvoyer alors la requête de données vers le processeur. Le schéma de temporisation de la figure 5 représente la séquence de signaux pour réaliser cette opération de remplissage. A la suite de la détection du raté, le BXU produira la 35 requête à 16 multiplets convenable sur le bus AP. Cette requête sera toujours alignée sur une frontière de 16 multiplets. Quand les données sont renvoyées à partir du bus de systè-e, le BXU écrit les données dans le cache en commençant par l'adresse de mot zéro. Prérecherche La figure 4 représente un schéma sous forme de blocs de la logique de prérecherche d'entrée/sortie 63 de la figure 2 qui comprend le registre de contrôle de prérecherche d'entrée/sortie et les tampons de prérecherche d'entrée/sortie 82, 84, 86, 88. Deux canaux de prérecherche d'entrée/sortie, le canal 0 10 (CH 0) et le canal 1 (CH 1) sont prévus. Chaque canal, comprend deux tampons d'entrée (T0 et Tl) constitués de quatre mots (16 multiplets). Chaque mot de mémorisation comprend également un bit d'étiquette de sorte que l'information d'étiquette est convenablement mémorisée. Tandis que les données sont requises à partir 15 des tampons, le bloc de données suivant est automatiquement prérecherché et chargé dans le tampon vide. Le circuit tire avantage du pipe-line de bus de système à trois profondeurs décrit dans les brevets susmentionnés pour remplir rapidement les tampons s'il leur arrive d'être en retard en raison de pointes momentanées 20 de trafic dans le bus de système. La broche de prérecherche (PR) est utilisée au niveau des commandes d'interface 90 en relation avec le signal de mise en cache (CT) et le signal de lecture/écriture (WR) pour définir le type de requête fourni. La table ci-dessous définit tous les diffé25 rents types de requêtes: Pr# CT WR ==> valeurs pendant le cycle Ta 0 0 0 = Lecture utilisant le canal de prérecherche 00 0 1 = Commande de départ (START) pour le canal de prérecherche 0 0 1 0 = Lecture utilisant le canal de prérecherche 1 0 1 1 = Commande de départ (START) pour le canal de prérecherche 1 1 0 0 = Lecture non mettable en cache 1 0 1 = Ecriture non mettable en cache 1 1 0 = Lecture mettable en cache 1 1 1 = Ecriture mettable en cache Quand labroche de prérecherche PR est à haut niveau (1), le cycle en cours est un cycle de bus local normal. Quand la broche de prérecherche est à bas niveau (0), le cycle en cours est un cycle de prérecherche I/O pendant lequel la broche de mise en 5 cache CT est utilisée pour sélectionner l'un des deux canaux de prérecherche I/O. Les commandes d'interface 90 répondent à deux ordres particuliers, l'ordre de début de canal 0 (START CH 0, CM 0 et l'ordre de canal 1 (START CH 1 CM 0). Le format du registre de 10 commande de prérecherche 80 est représenté ci-dessous. REGISTRE DE COMMANDE DE PRERECHERCHE 3 2 1 0 I CC I Al 1 I A0 I 00 0 0 ---- Défauts à l'initialisation I, I I ------- CANAL I/O 0 ACTIF I -------------- CANAL I/O 1 ACTIF -------------------- CONFIGURATION Les quatres bits du registre de contrôle de prérecherche sont décodés par les systèmes de contrôle de configuration 92 de la façon suivante. Le bit de canal 0 actif I/0 est automatiquement mis à un par l'intermédiaire de la mise à un de la ligne actif 91. Chaque fois qu'un ordre de prérecherche I/O de canal 0 25 est réalisé et que les bits de configuration 93 sont mis à un pour placer le système de prérecherche dans le mode I/O (bits de confguration = 01). Le bit de canal 0 actif I/O est toujours mis à un si les'bits de configuration sont mis à un pour placer le système de prérecherche dans le mode cache (bits de configuration = 10 ou 30 11). Si le bit de canal 0 actif I/O est mis à un, le canal 0 sera actif pourvu que les bits de configuration soit placés dans le mode I/O (bits de configuration = 01). Le canal 0 surveillera de façon active le trafic dans le bus local pour rechercher des accords d'adresse et effectuera les opérations de prérecherche 35 associées. Le bit de canal 1 actif I/O est similaire au bit de canal 0 actif I/O en ce qu'il est automatiquement mis à un par l'intermédiaire de la mise à un de la ligne actif 91 chaque fois qu'une commande de prérecherche I/O de début de canal 1 est réali5 sée et que les bits de configuration sont mis dans le mode I/O (bits de configuration = 01). Les bits de configuration 93 sont décodés de la façon suivante. S'ils sont mis à 00, le système de prérecherche est coupé. S'ils sont mis à 01, une opération de prérecherche sera 10 réalisée et les deux canaux 0 et 1 de prérecherche sont disponibles pour être utilisés pour le transfert de flux de données I/O séquentiel. Si les bits de configuration sont mis à 10, une opération de prérecherche de cache est mise en oeuvre pour un premier 15 canal. Le canal 0 est disponible pour être utilisé avec le cache et le canal 1 est invalidé. Si les bits de configuration sont mis à 11, une opération de prérecherche de cache est mis en oeuvre pour les deux canaux. Le canal 0 et le canal 1 sont disponibles pour être uti20 lisés avec le cache. Le canal 0 sera toujours utilisé pour traiter des prérecherches de cache associées à des requêtes en provenance du processeur 0, et le canal 1 sera utilisé pour traiter des prérecherches de cache associées aux requêtes en provenance du processeur 1. Le processeur qui possède la requête est déterminé par sur25 veillance des lignes d'arbitrage de bus local. Commande de départ (START) Avant qu'un canal de prérecherche puisse être utilise, on doit envoyer un ordre de départ. Un ordre de départ est défini comme une écriture d'un mot ou moins vers l'un des canaux de pré30 recherche. L'adresse dans la requête d'écriture est la requête de départ pour le canal de prérecherche. En réponse à la commande de départ, la logique de commande de prérecherche réalise les actions suivantes. D'abord, elle marque les deux canaux de prérecherche 35 dans le canal spécifié comme étant vides, par l'intermédiaire de la ligne de marque 96 ou de la ligne de marque 94. Elle calcule alors "mon adresse de départ". Si ce BXU doit être impliqué dans 2602353' le transfert de données, alors le bit actif de canal +/O approprié est mis à un dans le registre de commande de prérecherche 80. Si ce BXU est impliqué dans le transfert de données, la logique de commande 90 du BXU fournira deux requêtes de prérecherche 98 sur 5 le bus AP. Cette requête sera utilisée pour remplir les 32 octets de données se mémorisant dans le canal associé. Le BXU répondra à l'ordre de départ quand les actions énumérées ci-dessus ont toutes été achevées dans tous les autres BXU. La ligne SS occupée (SS BUSY) est surveillée pour une communication de BXU à BXU. Quand la 10 ligne SS BUSY est vérifiée, la requête de prérecherche dans tous les BXU aura été initialisée. La combinaison de l'ordre de départ et de la broche de prérecherche PR élimine toutes les données périmées. L'ordre de départ efface toute donnée périmée éventuelle qui peut avoir été 15 prérecherchée pendant la séquence de prérecherche I/O précédente. Le signal de prérecherche PR assure que seul le logiciel en cours d'utilisation du canal de prérecherche recevra des données à partir des tampons de prérecherche. Même si une requête se fait vers un emplacement déjà dans le tampon de prérecherche I/O, le 20 BXU passera à la mémoire en ce qui concerne les données à moins que le signal de prérecherche PR ne soit confirmé. Opération de prérecherche I/O typique Avant qu'une opération de prérecherche I/O puisse commencer, les bits de configuration (bits 2 et 3) dans le registre 25 de commande de prérecherche 80 doivent être mis à 01. Démarrage Si les canaux du système de prérecherche ne sont pas assignés de façon statique, alors le logiciel ou microcode doit allouer un canal à un transfert de données particulier. Alors, un 30 ordre de départ est fourni à ce canal de prérecherche I/O. Ceci implique une requête d'écriture WR, la broche de prérecherche PR étant fixée en utilisant l'adresse du premier octet à prérechercher. Transfert de données Pour qu'une requête de transfert de données soit une requête valide recevant une réponse du système de prérecherche, elle doit satisfaire aux critères suivants. Ce doit être une requête de lecture classique. La longueur de la requête de données doit être d'un multiplet, d'un double multiplet, d'un mot, ou de plusieurs mots et l'adresse doit être reconnue dans l'un des systèmes de reconnaissance d'adresse de bus locai. La requête doit 5 également amener le signal de prérecherche PR à bas niveau et être telle que le signal CT pointe le canal de prérecherche correct. Normalement, les données requises seront toujours présentes dans le tampon de données de canal de prérecherche I/O, auquel cas le système de prérecherche renverra les données de 10 façon immédiate. Si les données ne se trouvent pas dans le tampon, alors la requête sera mémorisée jusqu'à ce que la requête de bus AP 98, fournie précédemment quand le tampon a d'abord été vidé, remplisse le tampon. Quand une requête de tampon de données est reçue, la 15 logique de commande 90 utilise les lignes d'adresse de mots et de dimensions et les lignes de validation de multiplets (non représentées} pour déterminer quels multiplets dans le tampon de prérecherche en cours doivent être utilisés. Quand le dernier multiplet d'un tampon est lu, le sys20 tème de prérecherche 63 calcule l'adresse pour que le bloc suivant de 16 multiplets soit prérecherché et fournit une lecture de bus AP 98. L'adresse envoyée avec la requête de prérecherche de processeur est utilisée pour ce calcul en même temps que le facteur d'entrelacement en cours spécifié par l'interface de bus local au 25 niveau de la logique de commande de bus local 68 pour cette gamme d'adresse. L'adresse envoyée sur le bus AP est garantie comme se trouvant dans la fenêtre de reconnaissance de mémoire LBI paree que le système d'incrémentation d'adresse passe seulement par le bits LAD 17 et que les systèmes de reconnaissance de mémoire consi30 dèrent seulement les bits 18 à 31. Alors que l'invention a été représentée et décrite de façon spécifique en relation avec un mode de réalisation particulier, l'homme de l'art notera qu'elle est susceptible de diverses variantes et modifications. RE-s'^.TICNS 1. Système de contrôle de cache destiné à être utilisé dans un module extenseur de bus (10) faisant partie d'un système de traitement de données dans lequel un premier processeur (14) et un second processeur (16) communiquent par un bus local (18) avec 5 une pluralité d'agents connectés à un ou plusieurs bus de système (20, 22), ledit module extenseur de bus (10) assurant une interface entre le bus local (18) et le bus de système (20), le module extenseur de bus comprenant une logique de commande de bus local (68) pour commander des accès au bus local (18), le module exten10 seur de bus comprenant unelogique de commande de bus de système (60) pour contrôler l'accès au bus de système (20), et un cache (24) étant connecté au module extenseur de bus (10) et au bus local (18), caractérisé en ce qu'il comprend une logique de commande dans le 15 module extenseur de bus pour commander les références au cache; en ce que la logique de commande comprend un répertoire de cache (62) pour mémoriser des adresses de réseaux de données, en ce que le répertoire peut avoir une configuration à plusieurs voies (0, 1, 2, 3), chaque voie comprenant une mémoire 20 d'étiquette et de bits valides pour faciliter la recherche associative du répertoire en ce qui concerne les adresses du réseau de données; et en ce qu'il comprend en outre des premiers moyens (64) comprenant des premiers moyens de configuration (bits de registre 25 de configuration de cache 1 à 5) connectés au répertoire de cache (62) pour partager le répertoire de cache en deux répertoires logiques, un répertoire pour contrôler les requêtes en provenance du premier processeur et l'autre répertoire pour contrôler les requêtes en provenance du second processeur. 2. Système de contrôle selon la revendication 1, caractérisé en ce qu'il comprend en outre: un tampon de prérecherche (63) connecté à la logique de commande de bus local (68); et en ce que lesdits premiers moyens (64) comprennent des premiers moyens de commande de prérecherche (bits de registre de commande de prérecherche 2 et 3) connectés au tampon de prérecherche pour partager le tampon de prérecherche en deux canaux logi5 ques, un premier canal pour traiter des prérecherches associées aux requêtes en provenance du premier processeur et un second canal pour traiter des prérecherches associées à des requêtes en provenance du second processeur. 3. Système de commande selon la revendication 2, carac10 térisé en ce que lesdits premiers moyens (64) comprennent des seconds moyens de contrôle de prérecherche agissant à la condition que les premiers moyens de contrôle de prérecherche (bits de registre de contrôle de prérecherche 2 et 3) soient établis pour autoriser des prérecherches, de façon à déclencher une prérecherche 15 par suite des conditions supplémentaires suivantes: une requête de mémoire en cours est une lecture mettable en cache à n mots dans laquelle les recherches d'instructions de processeur et les opérations de chaîne utilisent toutes deux des accès de lecture à n mots, la ligne séquentielle suivante qui doit être prérecherchée à partir de l'emplacement mémoire particulier ne se trouve pas dans le cache, et la ligne séquentielle suivante qui doit être prérecherchée est au même bloc d'adresse que la ligne requise en cours. 4. Système de commande selon la revendication 1, caractérisé en ce que lesdits premiers moyens (64) comprennent des seconds moyens de configuration de cache (bits de registre de configuration de cache 0) connectés au répertoire de cache (62) pour déterminer le nombre de lignes par bloc d'adresse, et des 30 troisièmes moyens de configuration de cache (bits de registre de configuration de cache 11) connectés au répertoire de cache (62) qui valident le fonctionnement du cache. 5. Système de commande selon la revendication 1, caractérisé en ce qu'il comprend en outre: un tampon de prérecherche (63) connecté à la logique de commande de bus local (68); et en ce que les premiers moyens de recherche (64) cor.prennent des premiers moyens de contrôle de prérecherche (bits de registre de contrôle de prérecherche 2 et 3) connectés au tampon de prérechercle dont l'état indique que le système de prérecherche 5 est coupé, validé pour un transfert séquentiel des flux de données d'entrée/sortie, ou fonctionnant avec ledit cache. 6. Système de contrôle selon la revendication 4, caractérisé en ce que les premiers moyens (64) comprennent des seconds moyens de contrôle de prérecherche agissant à la condition que les 10 troisièmes moyens de contrôle de prérecherche (bit de registre de contrôle de prérecherche 11) soient établis pour permettre les prérecherches de cache, de façon à déclencher une prérecherche aux conditions supplémentaires suivantes: une requête de mémoire en cours est une lecture metta15 ble en cache de n mots dans laquelle les recherches d'instruction de processeurs et les opérations de chaîne utilisent toutes deux des accès en lecture à n mots, la ligne séquentielle suivante qui doit être prérecherchée à partir de l'emplacement mémoire particulier ne se trouve 20 pas dans le cache, et la ligne séquentielle suivante qui doit être prérecherchée se trouve dans le même bloc d'adresse que la ligne de requête en cours. 7. Système de commande selon la revendication 4, carac25 térisé en ce que les seconds moyens de configuration de cache (bits de registre de configuration de cache 0), connectés au répertoire de cache (62) pour déterminer le nombre de lignes par bldc d'adresse, comprennent: des moyens pour autoriser des processeurs de données 30 généralisés (34, 36) utilisant les BXU multiples à prendre une configuration propre à fonctionner en coopération pour fournir un plus grand répertoire et adresser une mémoire de données plus grande, dans lequel le répertoire plus grand comprend un nombre accru d'ensembles, de sorte qu'un cache géré par n BXU comprendra 35 un répertoire consistant en n fois autant d'ensembles qu'un répertoire ayant une configuration propre à fonctionner avec un BXU unique; et des moyens pour donner au cache une configuration d'entrelacement, dans lesquels le facteur d'entrelacement est choisi égal à n de sorte que, quand n voies sont entrelacées, l'espace d'adresse de bus du système est effectivement divisé en n 5 partitions, une première plage d'adresse étant assignée à la première partition, une seconde plage d'adresse étant assignée à la seconde partition... et une n-ième plage d'adresse étant assignée à la n-ième partition; et des moyens de reconnaissance d'adresse pour autoriser 10 la logique de commande de bus local à répondre seulement quand un accès est reconnu par le système de reconnaissance d'adresse de bus local et tombe dans sa partition attribuée.