FR2602353A1 - Repertoire et controle de cache - Google Patents

Repertoire et controle de cache Download PDF

Info

Publication number
FR2602353A1
FR2602353A1 FR8710620A FR8710620A FR2602353A1 FR 2602353 A1 FR2602353 A1 FR 2602353A1 FR 8710620 A FR8710620 A FR 8710620A FR 8710620 A FR8710620 A FR 8710620A FR 2602353 A1 FR2602353 A1 FR 2602353A1
Authority
FR
France
Prior art keywords
cache
search
address
bus
directory
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
FR8710620A
Other languages
English (en)
Other versions
FR2602353B1 (fr
Inventor
David Bedford Johnson
Ronald James Ebersole
Joel C Huang
Manfred Neugebauer
Steven Ray Page
Keith Self
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of FR2602353A1 publication Critical patent/FR2602353A1/fr
Application granted granted Critical
Publication of FR2602353B1 publication Critical patent/FR2602353B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Landscapes

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

Abstract

LA PRESENTE INVENTION CONCERNE UNE LOGIQUE DE COMMANDE POUR CONTROLER DES REFERENCES A UN CACHE 24 COMPRENANT UN REPERTOIRE DE CACHE 62 CAPABLE D'ETRE CONFORMES SELON PLUSIEURS VOIES, CHAQUE VOIE COMPRENANT UNE MEMORISATION D'ETIQUETTE ET DE BITS VALIDES POUR RECHERCHER DE FACON ASSOCIATIVE DANS LE REPERTOIRE 62 DES ADRESSES DE RESEAUX DE DONNEES DE CACHE. UNE LOGIQUE DE REGISTRE ET DE CONTROLE DE CONFIGURATION DE CACHE 64 PARTAGE LE REPERTOIRE DE CACHE 62 EN DEUX REPERTOIRES LOGIQUES, UN REPERTOIRE POUR CONTROLER DES REQUETES EN PROVENANCE D'UN PREMIER PROCESSEUR ET L'AUTRE REPERTOIRE POUR CONTROLER DES REQUETES EN PROVENANCE D'UN SECOND PROCESSEUR. UN TAMPON DE PRERECHERCHE 63 EST PREVU EN MEME TEMPS QU'UN REGISTRE DE CONTROLE DE PRERECHERCHE POUR PARTAGER LE TAMPON DE PRERECHERCHE EN DEUX CANAUX LOGIQUES, UN PREMIER CANAL POUR TRAITER DES PRERECHERCHES ASSOCIEES A DES REQUETES EN PROVENANCE DU PREMIER PROCESSEUR ET UN SECOND CANAL POUR TRAITER DES PRERECHERCHES ASSOCIEES A DES REQUETES EN PROVENANCE DU SECOND PROCESSEUR.

Description

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.
FR878710620A 1986-07-29 1987-07-27 Repertoire et controle de cache Expired - Fee Related FR2602353B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/890,859 US4853846A (en) 1986-07-29 1986-07-29 Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors

Publications (2)

Publication Number Publication Date
FR2602353A1 true FR2602353A1 (fr) 1988-02-05
FR2602353B1 FR2602353B1 (fr) 1994-03-04

Family

ID=25397234

Family Applications (1)

Application Number Title Priority Date Filing Date
FR878710620A Expired - Fee Related FR2602353B1 (fr) 1986-07-29 1987-07-27 Repertoire et controle de cache

Country Status (7)

Country Link
US (1) US4853846A (fr)
JP (1) JPS6336466A (fr)
KR (1) KR950010528B1 (fr)
CN (1) CN87105300A (fr)
DE (1) DE3724730A1 (fr)
FR (1) FR2602353B1 (fr)
GB (1) GB2193356B (fr)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307494A (en) * 1987-08-05 1994-04-26 Fuji Xerox Co., Ltd. File name length augmentation method
ATE109910T1 (de) * 1988-01-20 1994-08-15 Advanced Micro Devices Inc Organisation eines integrierten cachespeichers zur flexiblen anwendung zur unterstützung von multiprozessor-operationen.
US5553262B1 (en) * 1988-01-21 1999-07-06 Mitsubishi Electric Corp Memory apparatus and method capable of setting attribute of information to be cached
JPH0727492B2 (ja) * 1988-01-21 1995-03-29 三菱電機株式会社 緩衝記憶装置
US5125084A (en) * 1988-05-26 1992-06-23 Ibm Corporation Control of pipelined operation in a microcomputer system employing dynamic bus sizing with 80386 processor and 82385 cache controller
US5327545A (en) * 1988-05-26 1994-07-05 International Business Machines Corporation Data processing apparatus for selectively posting write cycles using the 82385 cache controller
US5045998A (en) * 1988-05-26 1991-09-03 International Business Machines Corporation Method and apparatus for selectively posting write cycles using the 82385 cache controller
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
US5111423A (en) * 1988-07-21 1992-05-05 Altera Corporation Programmable interface for computer system peripheral circuit card
US5032985A (en) * 1988-07-21 1991-07-16 International Business Machines Corporation Multiprocessor system with memory fetch buffer invoked during cross-interrogation
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system
US5253358A (en) * 1989-05-19 1993-10-12 Compaq Computer Corporation Cache memory expansion and transparent interconnection
US5170476A (en) * 1990-01-22 1992-12-08 Motorola, Inc. Data processor having a deferred cache load
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
EP0449540B1 (fr) * 1990-03-27 2000-05-17 Digital Equipment Corporation Procédé et dispositif de mémoire avec tampon de préextraction
US5317718A (en) * 1990-03-27 1994-05-31 Digital Equipment Corporation Data processing system and method with prefetch buffers
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
US5450564A (en) * 1990-05-04 1995-09-12 Unisys Corporation Method and apparatus for cache memory access with separate fetch and store queues
US5452463A (en) * 1990-05-25 1995-09-19 Dell Usa, L.P. Processor and cache controller interface lock jumper
JPH05108484A (ja) * 1990-06-07 1993-04-30 Intel Corp キヤツシユメモリ
DE69224084T2 (de) * 1991-01-15 1998-07-23 Koninkl Philips Electronics Nv Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür
JP2703418B2 (ja) * 1991-04-24 1998-01-26 株式会社東芝 中央演算処理装置
US5546587A (en) * 1991-05-30 1996-08-13 Tandem Computers Incorporated Decentralized bus arbitration system which continues to assert bus request signal to preclude other from asserting bus request signal until information transfer on the bus has been completed
US5371863A (en) * 1991-05-30 1994-12-06 Tandem Computers Incorporated High speed processor bus extension
JP3599334B2 (ja) * 1991-08-16 2004-12-08 マルティチップ テクノロジー, インコーポレイテッド 高性能ダイナミックメモリシステム
US5708784A (en) * 1991-11-27 1998-01-13 Emc Corporation Dual bus computer architecture utilizing distributed arbitrators and method of using same
US5367653A (en) * 1991-12-26 1994-11-22 International Business Machines Corporation Reconfigurable multi-way associative cache memory
US5263139A (en) * 1992-05-19 1993-11-16 Sun Microsystems, Inc. Multiple bus architecture for flexible communication among processor modules and memory subsystems and specialized subsystems
US5381539A (en) * 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
US5337414A (en) * 1992-09-22 1994-08-09 Unisys Corporation Mass data storage and retrieval system
US5898894A (en) 1992-09-29 1999-04-27 Intel Corporation CPU reads data from slow bus if I/O devices connected to fast bus do not acknowledge to a read request after a predetermined time interval
US6487626B2 (en) 1992-09-29 2002-11-26 Intel Corporaiton Method and apparatus of bus interface for a processor
US6098113A (en) * 1992-10-22 2000-08-01 Ncr Corporation Apparatus and method for address translation and allocation for a plurality of input/output (I/O) buses to a system bus
US5442754A (en) * 1992-12-04 1995-08-15 Unisys Corporation Receiving control logic system for dual bus network
US5640530A (en) * 1992-12-17 1997-06-17 International Business Machines Corporation Use of configuration registers to control access to multiple caches and nonvolatile stores
US5502828A (en) * 1992-12-18 1996-03-26 Advanced Micro Devices, Inc. Reducing memory access in a multi-cache multiprocessing environment with each cache mapped into different areas of main memory to avoid contention
EP0795820B1 (fr) * 1993-01-21 2000-03-01 Advanced Micro Devices Inc. Système de mémoire combinant un tampon de préextraction et une antémémoire d'instructions et méthode, fournissant des instructions à une unité centrale, qui utilise ce système.
US5551000A (en) * 1993-03-18 1996-08-27 Sun Microsystems, Inc. I/O cache with dual tag arrays
TW228580B (en) * 1993-10-01 1994-08-21 Ibm Information processing system and method of operation
US5524216A (en) * 1994-05-13 1996-06-04 Hewlett-Packard Company Coherent transaction ordering in multi-tiered bus system
JP3132749B2 (ja) * 1994-12-05 2001-02-05 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチプロセッサ・データ処理システム
US5678018A (en) * 1994-12-16 1997-10-14 International Business Machines Corporation Cache address modification control
US6223255B1 (en) * 1995-02-03 2001-04-24 Lucent Technologies Microprocessor with an instruction level reconfigurable n-way cache
US6289408B1 (en) * 1995-05-08 2001-09-11 Apple Computer, Inc. Bus interface with address mask register for transferring selected data from one bus to another
US5835970A (en) * 1995-12-21 1998-11-10 Cypress Semiconductor Corp. Burst address generator having two modes of operation employing a linear/nonlinear counter using decoded addresses
US5845308A (en) * 1995-12-27 1998-12-01 Vlsi Technology, Inc. Wrapped-line cache for microprocessor system
US5724613A (en) * 1996-05-06 1998-03-03 Vlsi Technology, Inc. System and method for automatically enabling and disabling a prefetching capability
US5829010A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Apparatus and method to efficiently abort and restart a primary memory access
JPH1173370A (ja) * 1997-08-29 1999-03-16 Fujitsu Ltd 情報処理装置
US6434671B2 (en) * 1997-09-30 2002-08-13 Intel Corporation Software-controlled cache memory compartmentalization
US6778444B1 (en) * 2000-08-18 2004-08-17 Intel Corporation Buffer for a split cache line access
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US6851007B1 (en) * 2001-05-30 2005-02-01 Lsi Logic Corporation Multi-channel interface controller for enabling a host to interface with one or more host devices
EP1367493A1 (fr) 2002-05-30 2003-12-03 STMicroelectronics Limited Tampon de préextraction
JP2005221731A (ja) * 2004-02-05 2005-08-18 Konica Minolta Photo Imaging Inc 撮像装置
US7266651B1 (en) 2004-09-07 2007-09-04 Sun Microsystems, Inc. Method for in-place memory interleaving and de-interleaving
US8886895B2 (en) * 2004-09-14 2014-11-11 Freescale Semiconductor, Inc. System and method for fetching information in response to hazard indication information
US7434009B2 (en) * 2004-09-30 2008-10-07 Freescale Semiconductor, Inc. Apparatus and method for providing information to a cache module using fetch bursts
US7318114B1 (en) 2004-10-29 2008-01-08 Sun Microsystems, Inc. System and method for dynamic memory interleaving and de-interleaving
US8117400B2 (en) * 2006-10-20 2012-02-14 Freescale Semiconductor, Inc. System and method for fetching an information unit
EP2261805B1 (fr) * 2009-06-12 2013-07-31 Siemens Aktiengesellschaft Méthode de stockage de valeurs temps réel
JP2013008094A (ja) * 2011-06-22 2013-01-10 Sony Corp メモリ管理装置、メモリ管理方法、制御プログラム、および、記録媒体
US10482017B2 (en) * 2017-09-29 2019-11-19 Intel Corporation Processor, method, and system for cache partitioning and control for accurate performance monitoring and optimization
US10635590B2 (en) * 2017-09-29 2020-04-28 Intel Corporation Software-transparent hardware predictor for core-to-core data transfer optimization
TWI716167B (zh) * 2019-10-29 2021-01-11 新唐科技股份有限公司 儲存裝置及其映射方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0039412A2 (fr) * 1980-05-05 1981-11-11 International Business Machines Corporation Système de mémoire à grande densité
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
EP0114944A2 (fr) * 1982-12-28 1984-08-08 International Business Machines Corporation Méthode et dispositif de commande d'une unique antémémoire physique pour fournir des antémémoires virtuelles multiples

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2547488C2 (de) * 1975-10-23 1982-04-15 Ibm Deutschland Gmbh, 7000 Stuttgart Mikroprogrammierte Datenverarbeitungsanlage
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4533995A (en) * 1981-08-03 1985-08-06 International Business Machines Corporation Method and system for handling sequential data in a hierarchical store
US4484267A (en) * 1981-12-30 1984-11-20 International Business Machines Corporation Cache sharing control in a multiprocessor
US4622631B1 (en) * 1983-12-30 1996-04-09 Recognition Int Inc Data processing system having a data coherence solution
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
EP0039412A2 (fr) * 1980-05-05 1981-11-11 International Business Machines Corporation Système de mémoire à grande densité
EP0114944A2 (fr) * 1982-12-28 1984-08-08 International Business Machines Corporation Méthode et dispositif de commande d'une unique antémémoire physique pour fournir des antémémoires virtuelles multiples

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WESCON CONFERENCE RECORD. vol. 30, 1986, LOS ANGELES US,SECTION 8/3 pages 1 - 6; BRUNNER: 'High performance cache memory' *

Also Published As

Publication number Publication date
CN87105300A (zh) 1988-02-10
US4853846A (en) 1989-08-01
FR2602353B1 (fr) 1994-03-04
GB2193356A (en) 1988-02-03
KR880002080A (ko) 1988-04-29
KR950010528B1 (en) 1995-09-19
GB8712513D0 (en) 1987-07-01
DE3724730A1 (de) 1988-02-11
GB2193356B (en) 1991-04-17
JPS6336466A (ja) 1988-02-17

Similar Documents

Publication Publication Date Title
FR2602353A1 (fr) Repertoire et controle de cache
US6343346B1 (en) Cache coherent network adapter for scalable shared memory processing systems
US6823429B1 (en) Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US7093079B2 (en) Snoop filter bypass
JPH11513834A (ja) メモリに書込みイネーブル情報を供給する方法および装置
EP1710703A1 (fr) Cohérence de cache dans un système multiprocesseurs à mémoire partagée
FR2489578A1 (fr) Structure d'organisation pour memoire tampon
FR2913785A1 (fr) Gestion de memoire tampon circulaire
FR3023030A1 (fr)
JP2005157815A (ja) ストレージシステム及同システムにおけるデータキャッシング方法
FR2472232A1 (fr) Dispositif et procede d'effacement d'antememoire
US5956488A (en) Multimedia server with efficient multimedia data access scheme
EP0636988B1 (fr) Procédé de gestion cohérente des échanges entre des niveaux d'une hiérarchie de mémoires à au moins trois niveaux
FR2749682A1 (fr) Circuit pour transborder des donnees entre memoires distantes et calculateur comprenant un tel circuit
EP0837396B1 (fr) Opération atomique sur mémoire distante et dispositif permettant d'effectuer cette opération
US20080307169A1 (en) Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory
EP1607878A1 (fr) Procédé et programme d'ordinateur de traitement d'une adresse virtuelle pour la programmation d'un contrôleur de DMA et système sur puce associé
EP1081598A1 (fr) Dispositif à plusieurs processeurs partageant une mémoire collective
KR930008622A (ko) 중앙처리장치(cpu)에 대해 데이타를 페치하여 cpu유휴시간을 더욱 감소기키기 위한 방법 및 캐쉬 메모리 제어기
JPH10501914A (ja) 共用キャッシュ・メモリ装置
US20030196024A1 (en) Apparatus and method for a skip-list based cache
EP1049018A1 (fr) Architecture d'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
US9026731B2 (en) Memory scheduling for RAM caches based on tag caching
US6119202A (en) Method and apparatus to interleave level 1 data cache line fill data between system bus and level 2 data cache for improved processor performance
EP0813154A1 (fr) Circuit pour transborder des données entre mémoires distantes et calculateur comprenant un tel circuit

Legal Events

Date Code Title Description
ST Notification of lapse