FR2809841A1 - Procede et appareil pour reduire la puissance dans des memoires cache et systeme de traitement de donnees comportant des memoires chaches - Google Patents
Procede et appareil pour reduire la puissance dans des memoires cache et systeme de traitement de donnees comportant des memoires chaches Download PDFInfo
- Publication number
- FR2809841A1 FR2809841A1 FR0101628A FR0101628A FR2809841A1 FR 2809841 A1 FR2809841 A1 FR 2809841A1 FR 0101628 A FR0101628 A FR 0101628A FR 0101628 A FR0101628 A FR 0101628A FR 2809841 A1 FR2809841 A1 FR 2809841A1
- Authority
- FR
- France
- Prior art keywords
- access
- label
- cache
- signal
- ram
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Un système de traitement de données numériques inclut un processeur de données numériques (104), une mémoire cache comportant des RAM d'étiquettes (108a ou 110a) et de données (108b ou 110b) et un contrôleur (124, 128) pour des accès en mémoire cache. Le contrôleur stocke une information d'état concernant le type d'accès, le mode de fonctionnement et le succès/ l'échec de cache associés à l'accès le plus récent à la RAM d'étiquettes et commande un accès courant à celle-ci juste après l'accès précédent sur la base de l'information d'état et d'une partie d'une zone de jeu d'une adresse de mémoire principale pour le second accès. Le contrôleur détermine si l'accès courant est appliqué à la même ligne de cache que celle accédée lors du premier accès sur la base de l'information d'état et d'une partie d'une zone de jeu de l'adresse de mémoire principale pour le second accès et si oui, permet de sauter l'accès courant.
Description
Arrière-plan de l'invention Domaine de l'invention La présente invention
concerne des systèmes de traitement de données numériques tels que des systèmes d'ordinateur. De façon davantage particulière, la présente invention concerne des mémoires cache dans des systèmes de traitement de données numériques ainsi
que des procédés permettant de faire fonctionner les mémoires cache.
Description de l'art antérieur
Un système d'ordinateur comprend de façon générale une unité centrale de traitement (CPU), un bus système, un sous-système de mémoire et d'autres périphériques. La CPU exécute des instructions qui sont stockées dans le sous-système de mémoire et le bus joue le rôle de voie de communication entre la CPU et d'autres dispositifs dans le système d'ordinateur. Le sous-système de mémoire inclut typiquement une mémoire primaire ou "principale" lente et peu coûteuse telle qu'une mémoire vive dynamique (DRAM) et des mémoires cache rapides et
coûteuses telles que des mémoires vives statiques (SRAM).
Les sous-systèmes de cache d'un système d'ordinateur sont le résultat d'une discordance en termes de capacité en vitesse et de prix entre les SRAM et les DRAM. Cette discordance conduit a une séparation architecturale de la mémoire principale selon une hiérarchie dans laquelle un cache SRAM de petite dimension mais relativement rapide est inséré dans le système d'ordinateur entre une CPU et une mémoire principale DRAM relativement lente et de capacité plus
importante mais moins coûteuse.
Une mémoire cache contient des instructions et des données qui présentent une probabilité élevée d'être souhaitées en vue d'un traitement imminent par la CPU. En maintenant les instructions et les données les plus fréquemment accédées dans la mémoire cache haute vitesse, le temps d'accès mémoire moyen s'approche du temps d'accès au cache. Par conséquent, I'utilisation de caches peut améliorer de
façon significative la performance des systèmes d'ordinateur.
Les instructions de programme actives et les données actives peuvent être maintenues dans un cache en utilisant un phénomène connu en tant que "localisation de référence". Le phénomène de localisation de référence reconnaît que la plus grande part du traitement des instructions de programme d'ordinateur se déroule d'une façon séquentielle moyennant de multiples boucles et à l'aide d'une CPU qui se reporte de façon répétée à un jeu d'instructions dans une zone localisée particulière d'une mémoire. Par conséquent, des boucles et des sous-programmes tendent à localiser les références en mémoire pour une recherche d'instructions. De façon similaire, des références en mémoire pour des données tendent également à être localisées du fait
que des sous-programmes de consultation de table ou d'autres sous-
programmes itératifs se réfèrent de façon répétée à une partie
relativement petite d'une mémoire.
Dans un système d'ordinateur, une CPU examine un cache avant une mémoire principale lorsqu'une instruction d'accès en mémoire est traitée. Si un mot souhaité (des données ou une instruction de programme) est trouvé dans le cache, la CPU lit le mot souhaité à partir du cache. Si le mot n'est pas trouvé dans le cache, la mémoire principale est accédée afin de lire ce mot et un bloc de mots contenant ce mot est transféré depuis la mémoire principale jusqu'au cache au moyen d'un algorithme de relocalisation approprié. Si un cache comporte le mot qui est souhaité par la CPU, I'action correspondante est appelée un "succès"; dans le cas contraire, I'action correspondante est
appelée un "échec".
Une ligne d'une mémoire cache simple est constituée habituellement par une adresse et par un ou plusieurs mots de données correspondant à cette adresse. Une ligne est également une unité minimum d'information qui peut être déplacée entre une mémoire
principale et une mémoire cache.
Des données en provenance d'un emplacement dans une mémoire principale sont stockées sur une ligne dans un cache. Les emplacements d'un cache doivent être identifiés. Ceci est réalisé en considérant une partie d'une adresse de mémoire principale. Par ailleurs, du fait qu'il y a moins de lignes de cache que de blocs de mémoire principale, un algorithme est nécessaire pour déterminer quels blocs de mémoire principale sont lus pour être mis dans des lignes de cache. Diverses techniques sont connues pour cartographier des blocs d'une mémoire principale selon une mémoire cache. Des formes typiques de cartographie incluent une cartographie directe, une cartographie pleinement associative et une cartographie associative par jeux. La technique de cartographie directe cartographie chaque bloc d'une mémoire principale selon seulement une seule ligne de cache possible. Cette technique est simple et peu coûteuse à mettre en ceuvre mais son inconvénient essentiel réside dans le fait qu'il y a un emplacement fixe pour un quelconque bloc donné. Par conséquent, si un programme en vient à se reporter de façon répétée à deux blocs différents qui sont cartographiés selon la même ligne, alors les blocs sont soumis en continu à un accès en va-et-vient dans le cache et leur
taux de succès est faible.
Une cartographie pleinement associative surmonte les inconvénients de la cartographie directe en permettant le chargement de chaque bloc de mémoire principale dans une quelconque ligne d'un cache. Moyennant cette technique, on dispose d'une certaine flexibilité en ce qui concerne quel bloc il convient de relocaliser lorsqu'un nouveau bloc est lu dans un cache. Un inconvénient principal de cette technique est constitué par le circuit complexe pour examiner des étiquettes de
toutes les lignes de cache en parallèle.
Une cartographie associative par jeux (habituellement appelée "cartographie associative par jeux de mode N") est un compromis qui présente les caractéristiques avantageuses à la fois de l'approche directe et de l'approche pleinement associative. Selon cette technique, un cache est divisé selon plusieurs jeux dont chacun est constitué par plusieurs lignes. Cette technique cartographie un bloc d'une mémoire principale selon n'importe lesquelles des lignes de jeu et permet le stockage de deux mots de données ou plus dans une mémoire cache à la même adresse de jeu (c'est-à-dire dans une ligne de cache). Selon cette approche, une logique de commande de cache interprète une adresse de mémoire principale simplement en tant que trois zones: un jeu, une étiquette et un mot. A l'aide de la cartographie associative par jeux, une étiquette dans une adresse de mémoire principale est relativement petite et elle est seulement comparée avec des étiquettes à l'intérieur de l'unique jeu à la différence de la cartographie pleinement associative selon laquelle l'étiquette dans une adresse de mémoire principale est relativement importante et elle doit être comparée à
l'étiquette de chaque ligne dans un cache.
La performance des mémoires cache est fréquemment mesurée en termes de "taux de succès". Lorsqu'une CPU se reporte à une mémoire cache et trouve une instruction souhaitée ou un mot de données souhaité dans le cache, la CPU produit un succès. Si le mot n'est pas trouvé dans le cache, alors le mot est dans une mémoire principale et l'accès au cache compte en tant qu'échec. Le rapport du nombre de succès divisé par le total des reports à la mémoire réalisés par la CPU (c'est-à-dire les succès plus les échecs) est le taux de succès. Afin de maximiser le taux de succès, bon nombre d'organisations et d'architectures de systèmes d'ordinateur permettent une commande système sur l'utilisation des caches. Par exemple, un cache peut être utilisé pour stocker des instructions seulement, des données seulement ou à la fois des instructions et des données. La construction et les principes de fonctionnement des mémoires cache sont décrits en détail dans plusieurs ouvrages dont par exemple ceux intitulés "Advanced Microprocessors" de Daniel Tabak, Mc Graw-Hill Book Co., Seconde Edition (1995), chapitre 4, pages 43 à 65; "Computer Organization And Architecture" de William Stalling, Prentice-Hall, Inc., Cinquième Edition (1996), chapitre 4, pages 117 à 151; et "High Performance Memories" de Betty Prince, John Wiley & Sons, Inc., (1996), chapitre 4, pages 65 à
94, qui sont ici incorporés à titre de référence.
Afin d'identifier si un succès de cache ou un échec de cache se produit, c'est-à-dire afin de savoir si un mot souhaité est trouvé dans un cache, il est toujours nécessaire d'accéder à une étiquette qui est stockée dans le cache. Du fait des tendances courantes vers l'augmentation de la dimension des caches pour satisfaire des exigences de performance élevée (il est connu que le taux de succès d'un cache simple tend à augmenter lorsque la dimension du cache augmente), le nombre d'accès répétitifs à des étiquettes dans des cycles de référence en mémoire augmente. Ceci conduit à une consommation de puissance plus importante dans les caches et entrave
I'application de tels caches à des applications faible puissance.
Résumé de l'invention Un objet de la présente invention consiste par conséquent à proposer des procédés et des appareils permettant de réduire la consommation de puissance et permettant d'améliorer la performance
de dispositifs de mémoire en circuit intégré de cache.
Afin d'atteindre l'objet, la présente invention reconnaît qu'un succès de cache se produit toujours lorsqu'un accès courant est appliqué sur des instructions et/ou des données sur la même ligne de cache que celle qui a été accédée et qui a fait l'objet d'un succès lors de I'accès le plus récent et que si un échec se produit pendant l'accès précédent, un succès/échec de l'accès courant au niveau de la même ligne dépend de si oui ou non un "remplissage de ligne de cache" (selon lequel une ligne de cache complète est lue à partir de la mémoire
principale dans des mémoires cache) pour la même ligne a été réalisé.
Conformément à un aspect de la présente invention, on propose un système de traitement de données numériques qui inclut un processeur de données numériques, une mémoire cache qui comporte une RAM d'étiquettes et une RAM de données et un contrôleur pour commander des accès à la mémoire cache. Le contrôleur stocke une information d'état concernant le type d'accès, le mode de fonctionnement et le succès/l'échec de cache associé à un premier accès à la RAM d'étiquettes et commande un second accès à la RAM d'étiquette juste après le premier accès, sur la base de l'information d'état et d'une partie d'une zone de jeu d'une adresse de mémoire principale pour le second accès. En particulier, le contrôleur détermine si oui ou non le second accès est appliqué à la même ligne de cache que celle qui a été accédée lors du premier accès, sur la base de I'information d'état et d'une partie d'une zone de jeu de l'adresse de mémoire principale pour le second accès et permet de sauter le second accès lorsque le second accès est appliqué à la même ligne de cache
que celle qui a été accédée lors du premier accès.
La mémoire cache peut comprendre un cache de niveau 1 (L) ou un cache de niveau 2 (L2). Selon certains modes de réalisation, le contrôleur peut être intégré sur la même puce que le processeur en association avec un cache L1. Selon d'autres mises en oeuvre, le contrôleur peut être intégré sur une puce autonome, une puce de
contrôleur de mémoire ou chaque puce de mémoire cache.
Conformément à un aspect préféré de la présente invention, le contrôleur détermine si oui ou non les premier et second accès sont réalisés d'une façon séquentielle en utilisant la partie de la zone de jeu de l'adresse de mémoire principale pour le second accès. La partie de la
zone de jeu inclut un bit de poids le plus faible de la zone de jeu.
Conformément à un autre aspect de la présente invention, un dispositif de mémoire en circuit intégré de cache couplé entre un processeur et une mémoire principale dans un système de traitement de données numériques est proposé, lequel dispositif comprend un circuit de RAM de données, un circuit de RAM d'étiquettes, un générateur d'indicateur de saut, une première logique de commande d'accès en RAM, un discriminateur de succès et une seconde logique de
commande d'accès en RAM.
Le circuit de RAM de données est sensible à une partie d'une adresse de mémoire principale en provenance du processeur et il stocke temporairement les instructions et les données qui sont traitées par le processeur. Le circuit de RAM d'étiquettes stocke des étiquettes pour des accès au circuit de RAM de données et génère une pluralité de signaux de succès d'étiquette en comparant une zone d'étiquette de l'adresse de mémoire principale aux étiquettes stockées. Le générateur d'indicateur de saut génère un signal d'étiquette de saut en réponse à un signal de type d'accès et à un signal d'adresse en provenance du processeur. La première logique de commande d'accès en RAM commande des accès au circuit de RAM d'étiquettes en réponse au signal d'indicateur de saut. Le discriminateur de succès génère une pluralité de signaux de succès de données en réponse à un signal de mode de fonctionnement en provenance du processeur, au signal d'indicateur de saut et aux signaux de succès d'étiquette. La seconde logique de commande d'accès en RAM commande des accès au circuit de RAM de données en réponse aux signaux de succès de données. Le générateur d'indicateur de saut inclut un circuit pour déterminer si oui ou non un accès courant au circuit de RAM d'étiquettes est appliqué à la même ligne de cache que celle qui a été accédée lors d'un accès précédent au circuit de RAM d'étiquettes en vérifiant le signal de type d'accès et le signal d'adresse en provenance du processeur et il active le signal d'indicateur de saut si l'accès courant est appliqué à la même ligne de cache que celle qui a été accédée lors de l'accès précédent. En particulier, la première logique de commande d'accès en RAM coupe l'application d'un signal d'horloge sur le circuit de RAM d'étiquettes lorsque le signal d'indicateur de saut est activé de manière à permettre de sauter l'accès courant au circuit de RAM d'étiquettes. Par ailleurs, la seconde logique de commande d'accès en RAM, tandis que le signal d'indicateur de saut est actif, transfère un signal d'horloge au circuit de RAM de données de manière à permettre l'accès au circuit de RAM de données. Conformément à un autre aspect de la présente invention, un procédé permettant de faire fonctionner une mémoire cache est proposé, lequel comprend la détermination de si oui ou non un accès courant à un circuit de RAM d'étiquettes est appliqué à la même ligne de cache que celle qui a été accédée lors d'un accès précédent et la possibilité de sauter l'accès courant à la RAM d'étiquettes lorsque l'accès courant est appliqué à la même ligne de cache que celle qui a
été accédée lors de l'accès précédent.
Selon un mode de réalisation, I'étape de détermination inclut la génération d'un signal d'accès séquentiel et d'une première adresse de mémoire principale pour un accès courant à la mémoire cache, le signal d'accès séquentiel étant indicatif d'un accès séquentiel depuis un accès précédent jusqu'à l'accès courant, la détection de l'activation du signal séquentiel et la détermination de si oui ou non un signal d'adresse d'un bit lors de l'accès courant est identique à celui lors de l'accès précédent et l'activation d'un signal d'indicateur de saut lorsque le signal séquentiel est activé et que le signal d'adresse d'un bit lors de l'accès courant est identique à celui lors de l'accès précédent. L'étape de possibilité de saut inclut la coupure de l'application d'un signal d'horloge sur le circuit de
RAM d'étiquettes lorsque le signal d'indicateur de saut est activé.
Brève description des dessins
Une appréciation davantage complète de la présente invention et de bon nombre de ses avantages connexes apparaîtra davantage aisément au fil de la compréhension de celle-ci, par report à la
description détaillée qui suit que l'on considérera en conjonction avec
les dessins annexés sur lesquels des index de référence identiques indiquent les mêmes composants ou des composants similaires, dessins parmi lesquels: la figure 1 est un schéma fonctionnel d'un système d'ordinateur selon la présente invention; la figure 2 est un schéma d'états permettant d'illustrer les cas de possibilité de sauter un accès à une étiquette lors d'un cycle de référence en mémoire; la figure 3 représente un exemple d'un format d'une adresse de mémoire principale conformément à la présente invention; la figure 4 représente un exemple d'accès séquentiels qui utilisent de multiples adresses présentant le format d'adresse de la figure 3; la figure 5 est un schéma fonctionnel détaillé qui représente un mode de réalisation préféré du contrôleur de saut d'étiquette de la figure 1 convenant pour une utilisation dans un système qui présente le format d'adresse de la figure 3; et la figure 6 est un schéma de circuit détaillé du contrôleur de saut
d'étiquette de la figure 5.
Description détaillée des modes de réalisation préférés
Un procédé et un appareil permettant de réduire la consommation de puissance dans des mémoires cache telles que des SRAM ou des
DRAM haute performance sont décrits. Dans la description qui suit, de
nombreux détails spécifiques sont mis en exergue tels que les types des mémoires cache et les configurations de mémoire etc... afin d'assurer une compréhension complète de la présente invention. Il apparaîtra cependant à l'homme de l'art que la présente invention peut être mise
en oeuvre sans ces détails spécifiques.
Par report tout d'abord à la figure 1, une vue globale d'un système d'ordinateur 100 de la présente invention est représentée sous forme de schéma fonctionnel. Il sera compris que bien que la figure 1 soit utile
pour assurer une description globale du système d'ordinateur 100, un
certain nombre de détails du système 100 ne sont pas représentés afin
de ne pas obscurcir la présente invention.
Comme représenté sur la figure 1, le système d'ordinateur 100 comprend un bus système 102 pour communiquer l'information, un microprocesseur ou unité centrale de traitement (CPU) 104 couplée au bus 102 pour traiter des instructions et une mémoire principale 106 couplée au bus 102 pour stocker des instructions et des données pour le processeur 104. Une mémoire cache de niveau 1 (L1) sur puce 108 qui est habituellement intégrée sur la même puce que le processeur 104 est représentée comme étant couplée au bus 102 pour stocker temporairement des instructions et des données accédées fréquemment pour le processeur 104. Une information est retrouvée à partir de la mémoire principale 106 pour le processeur 104 et est stockée dans la mémoire cache L1 108. Une mémoire cache de niveau 2 (L2) 110 est représentée comme étant couplée au bus 102. Le cache L2 110 contient également des copies d'instructions et de données demandées en requête fréquemment par le processeur 104 mais le cache L2 110 est typiquement intégré sur une puce individuelle qui est différente de la puce de processeur 104. Le contrôleur de mémoire 112 est également représenté comme étant couplé au bus 102 pour commander des accès
à la mémoire principale 106 et au cache L2 hors puce 110.
Chacun des caches L1 et L2 108 et 110 peut comprendre un
unique cache pour stocker à la fois des instructions et des données.
Selon une variante, chacun des caches 108 et 110 peut être séparé selon deux sous-caches, soit l'un pour les instructions et l'autre pour les données. Par comparaison avec le cache L2 hors puce 110 qui peut être atteint via le bus externe 102, le cache L1 sur puce 108 réduit l'activité de bus externe du processeur et par conséquent accélère les temps d'exécution et augmente la performance système. Lorsqu'une instruction ou un élément de données demandé en requête est trouvé dans le cache L1 108, il n'est pas nécessaire d'accéder au bus externe 102 de
telle sorte que le bus 102 peut supporter d'autres transferts.
La cache L2 110 manipule les requêtes en mémoire davantage aléatoires pour lesquelles le cache L1 108 tend à être en échec. Afin de simplifier la manipulation des requêtes qui peuvent constituer un échec pour le cache L1 108, le cache L2 110 est pratiquement toujours plus grand que le cache L1 108 afin d'améliorer les chances de disposer des
instructions ou des données dans le cache L2 110.
Lorsqu'un échec de cache se produit, une opération de remplissage de ligne de cache selon laquelle une ligne de cache complète est lue à partir de la mémoire principale 106 dans les
mémoires cache 108 et 110 est réalisée.
En continuant à se reporter à la figure 1, le système d'ordinateur inclut également un contrôleur de saut d'étiquette 114 pour commander des accès aux étiquettes dans les mémoires cache 108 et 110. En vérifiant un signal de type d'accès (accès séquentiel ou accès non séquentiel), un signal de mode de fonctionnement (mode lecture ou mode écriture) et une partie d'adresse de mémoire principale, le contrôleur de saut d'étiquette 114 détermine si oui ou non un accès en cache courant est appliqué à la même ligne de cache que celle qui a été accédée lors de l'accès le plus récent et commande les accès aux
étiquettes dans les caches L1 et L2 108 et 110.
Dans certaines mises en oeuvre, le contrôleur de saut d'étiquette 114 peut être intégré sur la même puce que le processeur 104 en association avec la mémoire cache L1 108. Selon d'autres mises en oeuvre, le contrôleur de saut d'étiquette 114 peut être intégré sur une puce individuelle telle qu'une puce autonome, une puce de contrôleur de
mémoire ou chaque puce de mémoire cache.
Le système d'ordinateur comprend en outre un dispositif d'affichage 116 tel qu'un tube à rayons cathodiques (CRT) ou qu'un moniteur d'affichage à cristaux liquides (LCD), lequel dispositif d'affichage est couplé au bus 102 pour afficher une information pour un utilisateur de l'ordinateur, à un dispositif d'entrée alphanumérique 118 tel qu'un clavier qui inclut des touches alphanumériques et d'autres touches qui sont couplées au bus 102 pour communiquer une information et des sélections de commande au processeur 104, et à un dispositif de commande de curseur 120 tel qu'une boule roulante ou qu'un stylet, lequel dispositif de commande de curseur est couplé au bus 102 pour
un déplacement de curseur.
Certaines mises en oeuvre et certaines utilisations du système d'ordinateur 100 de la présente invention peuvent ne pas nécessiter ou ne pas inclure tous les composants mentionnés ci-avant. Par exemple, selon certaines mises en oeuvre, le dispositif d'entrée alphanumérique et le dispositif de commande de curseur peuvent ne pas être requis et selon d'autres mises en oeuvre, il peut ne pas être requis de prévoir un
dispositif d'affichage.
Afin de réduire la consommation de puissance générée par des accès fréquents aux étiquettes dans les mémoires cache, la présente invention utilise les caractéristiques d'une mémoire cache consistant en ce qu'un succès ou un échec de cache pour plusieurs instructions et pour plusieurs éléments de données sur une ligne de cache est déterminé par seulement une seule entrée d'étiquette qui correspond à la ligne de cache. De façon davantage spécifique, la présente invention reconnaît qu'un succès de cache se produit toujours lorsqu'un accès courant est appliqué à des instructions et/ou à des données sur la même ligne de cache que celle qui a été accédée et qui a débouché sur un succès lors de l'accès le plus récent et que, si un échec s'est produit pendant l'accès précédent, alors un succès ou un échec de l'accès courant sur la même ligne dépend de si oui ou non un remplissage de ligne de cache pour la même ligne a été réalisé lors de l'accès précédent. Lors des accès en cache mentionnés ciavant, il est possible de s'attendre à ce qu'un succès ou un échec se produise pendant un accès courant sans réaliser un accès d'étiquette. Par conséquent, si un accès d'étiquette est sauté dans un tel cas, la consommation de
puissance des mémoires cache est réduite de façon considérable.
La figure 2 est un schéma d'états permettant d'expliquer les cas possibles pour sauter l'accès d'étiquette sur un cache lors d'un cycle de référence en mémoire. Sur la figure 2, des symboles de référence PS1 à PS6 représentent des états dans un premier cycle d'accès en cache et des symboles de référence CS1 à CS3 représentent des états pour un
second cycle d'accès en cache qui suit juste le premier cycle d'accès.
Cependant, il doit être noté que tous les états PS1 à PS6 et CS1 à CS3
sont trouvés dans un unique accès en cache.
Dans le premier cycle d'accès (ci-après appelé accès précédent), un état PS1 représente un état de repos selon lequel aucun cycle de référence en mémoire (c'est-à-dire ni un cycle de lecture, ni un cycle d'écriture) n'est réalisé. Lorsqu'un cycle de lecture ou un cycle d'écriture est piloté par le processeur 104, une machine d'état (qui n'est pas représentée), qui est contenue dans le contrôleur de mémoire 112, réalise une transition depuis l'état de repos PS1 jusqu'à soit un état de
lecture PS2, soit un état d'écriture PS3.
Dans l'état PS2 ou PS3, lorsqu'un succès en cache se produit en relation avec une opération de lecture ou avec une opération d'écriture, la machine d'état réalise une transition jusqu'à l'état PS5 du fait qu'un cache dispose d'une instruction requise ou d'un élément de données requis. Dans l'état PS5, I'accès en cache pour une opération de lecture ou pour une opération d'écriture est mené à terme. Mais si un échec de cache se produit dans l'état PS2, alors la machine d'état réalise une transition dans l'état PS4, état dans lequel un processus de manipulation d'échec de lecture est réalisé et ensuite, la machine d'état réalise une transition dans l'état PS5. De façon similaire, dans l'état PS3, si un échec d'écriture se produit, la machine d'état réalise une transition dans l'état PS6, ce qui indique que le cache ne dispose pas d'une instruction requise ou d'un élément de données requis. Dans l'état
PS6, I'accès en cache pour une opération d'écriture est mené à terme.
Lors du second cycle d'accès (ci-après appelé accès courant), s'il est requis d'accéder à la même ligne de cache que celle qui a été accédée et qui a conduit à un succès lors de l'accès en lecture ou en écriture précédent, la machine d'état réalise une transition depuis l'état PS5 jusqu'à l'état CS1. Par ailleurs, s'il est requis d'accéder à la même ligne de cache que celle qui a été accédée et qui a conduit à un échec lors de l'accès précédent en écriture, la machine d'état réalise une transition depuis l'état PS6 jusqu'à l'état CS2. En outre, lorsqu'il est nécessaire d'accéder à une ligne de cache qui est différente de la ligne de cache accédée lors de l'accès précédent en lecture/écriture, la machine d'état réalise une transition depuis l'état PS5/PS6 jusqu'à l'état CS3 lorsqu'un stockage d'étiquettes d'une mémoire cache doit être accédé. Sil'on considère les états lors de l'accès précédent, il peut être apprécié qu'il y a trois cas selon lesquels un accès à une étiquette pour un accès courant n'est pas nécessaire lorsqu'un accès courant est appliqué à la même ligne de cache que celle qui a été accédée lors de l'accès précédent. Tout d'abord, un succès en lecture ou un succès en écriture lors de l'accès précédent (PS5) signifie qu'une ligne de cache demandée en requête pour un accès courant a déjà été stockée en cache. Dans ce cas, un accès courant à une instruction ou à un élément de données sur la ligne correspondante conduira toujours à un succès (CS1) de telle sorte qu'il est possible de sauter un accès à une étiquette pour l'accès courant. En second lieu, un échec en lecture au niveau de I'accès précédent (PS4) démontre que le cache ne dispose pas de la ligne demandée en requête. Dans ce cas cependant, puisqu'une manipulation d'échec de lecture pour transférer la ligne demandée en requête depuis la mémoire principale jusqu'au cache est réalisée, un accès courant pour la ligne demandée en requête sera nécessairement un succès (CS1). Par conséquent, un accès à une étiquette pour un accès courant peut être sauté. En troisième lieu, un échec en écriture lors de l'accès précédent (PS6) démontre que le cache ne dispose pas de la ligne demandée en requête. Dans ce cas, un accès courant pour la ligne demandée en requête sera toujours un échec (CS2) si le cache
ne supporte pas une stratégie "chargement suite à échec en écriture".
Par conséquent, dans ce cas, le saut de l'accès à une étiquette est autorisé. La plupart des accès en cache sont réalisés d'une façon séquentielle. Des exemples d'accès séquentiels incluent des recherches d'instruction, des remplissages de ligne de cache, des recherches de données en réseau (par exemple des recherches matricielles, vectorielles et en tables numériques). Par conséquent, I'attention est
focalisée sur les accès séquentiels.
Bon nombre des microprocesseurs récents incluent une broche de signal pour indiquer des accès séquentiels lors des cycles de référence en mémoire. Par exemple, des coeurs de processeurs ARM, de Advanced RISC Machine Ltd procurent un signal de type d'accès SEQ (ISEQ pour un cache d'instructions ou DSEQ pour un cache de données), lequel signal est originellement destiné à fournir aux concepteurs des blocs de mémoire externe une marge de cadencement aussi importante que possible. Par conséquent, lorsqu'un cache est utilisé avec de tels processeurs, il est possible de connaître si oui ou non un accès en cache courant est inclus dans des accès séquentiels en surveillant le signal SEQ en provenance des processeurs. En outre, si un accès courant est un accès séquentiel, il peut être déterminé si oui ou non un accès courant est appliqué à la même ligne de cache que l'accès précédent en vérifiant seulement un bit d'adresse pour l'accès courant. Ceci sera maintenant décrit en utilisant des exemples spécifiques. La figure 3 représente un format d'adresse de mémoire principale conformément à la présente invention. Comme représenté sur la figure 3, I'adresse inclut une zone d'octet de 2 bits A0-A1, une zone de mot de 2 bits A2-A3, une zone de jeu de 6 bits A4-A9 et une zone d'étiquette de
22 bits A10-A31.
La zone d'octet A0-A1 désigne des positions d'octets dans un mot et révèle qu'un mot est constitué par 4 octets. De façon similaire, la zone de mot A2-A3 désigne des positions de mots de données dans une ligne de cache et révèle qu'une ligne de cache est constituée par 4 mots de données. Les largeurs de la zone de mot et de la zone de jeu peuvent être modifiées en fonction du nombre de mots de données par ligne de cache. Par exemple, si 8 mots de données correspondent à une ligne de cache pour la même longueur d'adresse, la zone de mot et la zone de jeu comporteront respectivement 3 bits (par exemple A2-A4) et 5 bits
(par exemple A5-A9).
La figure 4 représente un exemple d'accès séquentiels au moyen de multiples adresses moyennant le format de la figure 3. Dans le cas d'accès séquentiels, les bits d'adresse A2-A3 modifient leurs états selon l'ordre donné par exemple par 00, 01, 10 et 11, comme représenté sur la figure 4. Par conséquent, un décalage séquentiel depuis une ligne de cache jusqu'à une autre ligne de cache peut être reconnu en surveillant le bit d'adresse A4. Une modification au niveau des valeurs de A4 pendant un accès en cache courant signifie qu'un décalage dans des lignes de cache est rencontré. Si le bit d'adresse A4 ne varie pas lors d'un accès courant, I'accès courant est appliqué à la même ligne que I'accès précédent. Par conséquent, le contrôleur de saut d'étiquette 114 détermine si oui ou non un accès courant est appliqué à la même ligne de cache que celle qui a été accédée lors de l'accès précédent en vérifiant le signal de type d'accès SEQ et le bit de poids le plus faible de la zone de jeu (par exemple A4 pour 4 mots par ligne de cache ou A5 pour 8 mots par ligne
de cache) en provenance du processeur 104.
La figure 5 est un schéma fonctionnel détaillé qui représente un mode de réalisation du contrôleur de saut d'étiquette 114 qui convient pour une utilisation dans un système d'ordinateur qui présente le format d'adresse de la figure 3. Par report à la figure 5, le contrôleur de saut d'étiquette 114 comprend un générateur d'indicateur de saut 122 qui est couplé au processeur 104, une logique de commande d'accès en RAM d'étiquettes 124 qui est couplée entre le générateur d'indicateur de saut 122 et un circuit de RAM d'étiquettes 108a (pour le cache L1 108) ou 110a (pour le cache L2 110), un discriminateur de succès 126 qui est couplé au processeur 104, au circuit de RAM d'étiquettes 108a (ou a) et au générateur d'indicateur de saut 122 et une logique de commande d'accès en RAM de données 128 qui est couplée entre le discriminateur de succès 126 et un circuit de RAM de données 108b (pour le cache 108) ou 110 Ob (pour le cache 110). Le contrôleur de saut d'étiquette 114 reçoit en application deux signaux d'horloge de processeur complémentaires CLK et /CLK (dans ce texte, le symbole "/
signifie la condition "barrée" ou "complémentaire").
La RAM de données 108b (ou 110b) stocke une information qui est souhaitée par le processeur 104 et la RAM d'étiquettes 108a (ou a) est prévue pour stocker des adresses d'étiquette pour le circuit de RAM de données 108b (ou 1 1 Ob). Si une étiquette qui est produite par le processeur 104 correspond à l'une des étiquettes qui sont stockées
dans la RAM d'étiquettes 108a, alors il y a un succès.
La RAM de données 108b peut comprendre un cache unifié ou un cache partagé. Un cache unifié stocke à la fois des instructions et des données. Un cache partagé est divisé selon deux sous-caches, soit un cache pour les instructions et un cache pour les données. Les deux types de cache peuvent présenter une structure différente afin
d'optimiser leurs fonctions.
Le générateur d'indicateur de saut 122 reçoit un signal de type d'accès SEQ et un signal d'adresse d'un bit A4 en provenance du processeur 104 et génère un signal d'indicateur de saut /SKP. Le générateur d'indicateur de saut 122 détermine si oui ou non un accès en cache courant est appliqué à la même ligne de cache que celle qui a été accédée lors de l'accès précédent. S'il en est ainsi, le générateur d'indicateur de saut 122 active le signal d'indicateur de saut /SKP mais si ce n'est pas le cas, il désactive le signal /SKP. Le signal d'adresse A4 est le bit de poids le plus faible de la zone de jeu de l'adresse de mémoire principale seulement pour une utilisation dans une structure de lignes de cache avec 4 mots de données par ligne. Le signal d'adresse est remplacé par un autre signal d'adresse en fonction de la structure de lignes de cache. Par exemple, dans une structure de lignes de cache qui contient 8 mots par ligne, le processeur 104 applique le signal d'adresse
A5 sur le générateur d'indicateur de saut 122.
La logique de commande d'accès en RAM d'étiquettes 124 reçoit le signal d'indicateur de saut /SKP et le signal d'horloge CLK. Lorsque le signal d'indicateur de saut /SKP est inactif (il présente une valeur logique de "1" ou un état haut), la logique de commande 124 transfère le signal d'horloge CLK sur la RAM d'étiquettes 108a de telle sorte que la RAM d'étiquettes 108a soit accédée. Si une correspondance d'étiquettes (c'està-dire un succès de cache) se produit, I'un des signaux de succès d'étiquette Hit_TO à Hit_Tn devient actif. Si une non correspondance d'étiquettes (c'est-à-dire un échec de cache) se produit, tous les signaux de succès d'étiquette HitTO à Hit_Tn sont désactivés. Lorsque le signal /SKP devient actif (il prend une valeur logique de "0" ou un état bas), la logique de commande 124 coupe l'application du signal d'horloge CLK sur la RAM d'étiquettes 108a. Ceci conduit au saut d'un accès à la RAM d'étiquettes 108a, ce qui réduit la consommation de puissance de la mémoire cache. Le discriminateur de succès 126 reçoit en application un signal de mode de fonctionnement (ou un signal de lecture/écriture) /RW en provenance du processeur 104, un signal d'indicateur de saut /SKP en provenance du générateur d'indicateur de saut 122 et des signaux de succès d'étiquette Hit_TO à Hit_Tn en provenance de la RAM d'étiquettes 108a. Le signal de mode de fonctionnement /RW devient actif (il prend un état logique de 0) pendant un cycle de lecture tandis qu'il devient inactif (il prend un état logique de 1) pendant un cycle d'écriture. Le discriminateur de succès 126 génère des signaux de succès de données Hit_DO à HitDn pour commander des accès à la RAM de données 108b en réponse aux signaux de succès d'étiquette HitTO à Hit=Tn, au signal d'indicateur de saut /SKP et au signal de mode de fonctionnement /RW. De façon davantage spécifique, lorsque le signal d'indicateur de saut /SKP est actif, les états (c'est-à-dire l'activation et la désactivation) des signaux de succès de données HitDO à HitDn sont déterminés sur la base de l'état final et du type d'accès (un accès séquentiel ou un accès non séquentiel) lors de l'accès précédent mais si le signal d'indicateur de saut /SKP devient inactif, alors les états des signaux respectifs Hit_DO à Hit_Dn sont déterminés par seulement les signaux de succès d'étiquette HitTO à Hit_Tn. L'activation des signaux Hit_DO à HitDn est une indication d'un
accès à la RAM de données 108b.
Dans le même temps, si le système de cache de la présente invention présente un schéma "chargement suite à un,chec en écriture", le discriminateur de succès 126 peut mettre en oeuvre les fonctions mentionnées ci-avant indépendamment du signal de mode de fonctionnement /RW. De façon davantage spécifique, le discriminateur de succès 126 émet en sortie les signaux de succès de données HitDO à HitDn de l'accès précédent en tant que nouveaux signaux de succès de données de l'accès courant sans accéder à la RAM d'étiquettes lorsque le signal d'indicateur de saut /SKP qui dispose d'une information concernant l'accès séquentiel est actif (c'est-à-dire lorsque l'accès courant est appliqué à la même ligne de cache que celle qui a été accédée lors de l'accès précédent) mais émet en sortie les signaux de succès d'étiquette Hit_TO à HitTn de l'accès courant en tant que nouveaux signaux de succès de données de l'accès courant lorsque le signal d'indicateur de saut /SKP est inactif (c'est-à-dire lorsque l'accès courant est appliqué à une ligne de cache qui est différente de celle
accédée lors de l'accès précédent).
Sauf si le système de cache de la présente invention est muni d'une fonction "chargement suite à un échec en écriture", il sera
nécessaire d'inspecter le signal de mode de fonctionnement /RW.
La logique de commande d'accès en RAM de données 128 reçoit des signaux de succès de données Hit_DO à Hit_Dn et le signal d'horloge /CLK. Lorsque l'un des signaux de succès de données HitDO à HitDn est actif (il présente un état logique égal à l'unité), la logique de commande 128 transfère le signal d'horloge /CLK sur la RAM de données 108b. Ceci permet un accès à la RAM de données 108b. Par ailleurs, si les signaux HitDO à HitDn deviennent tous inactifs (ils prennent un état logique égal à 0), c'est-à-dire lorsqu'un échec de cache se produit, la logique de commande 128 coupe l'application du signal d'horloge /CLK sur la RAM de données 108b de telle sorte qu'un accès
à la RAM de données 108b est bloqué.
La figure 6 est un schéma de circuit détaillé d'un mode de réalisation du contrôleur de saut d'étiquette 114 qui est représenté sur la figure 5. Par report à la figure 6, le générateur d'indicateur de saut 122 inclut une bascule bistable D (de données) déclenchée par front 202,
une porte logique OU-exclusif 204 et une porte logique OU 206.
L'horloge de processeur CLK est appliquée sur une entrée d'horloge de la bascule bistable D 202 qui comporte une entrée de données D qui est couplée à un bit d'adresse A4 du processeur 104 et une sortie Q qui est couplée à une entrée de la porte logique OU-exclusif 204. Le bit d'adresse A4 est également appliqué sur une autre entrée de la porte logique OU-exclusif 204. La porte logique OU 206 inclut une entrée pour recevoir un signal inversé du signal de type d'accès SEQ en provenance du processeur 104 et une autre entrée qui est couplée à une sortie de la porte logique OU-exclusif 204. La porte OU 206 applique le signal
d'indicateur de saut /SKP par l'intermédiaire de sa sortie.
La logique de commande d'accès à une étiquette 124 inclut une porte logique ET 208 qui comporte une entrée pour recevoir le signal d'indicateur de saut /SKP et une autre entrée pour recevoir le signal
d'horloge CLK.
Selon ce mode de réalisation, une organisation de cache associative par jeux à quatre voies est représentée par souci de simplification. La RAM d'étiquettes 108a (ou 110a) comporte quatre voies WayO à Way3 ou quatre groupes 210 à 216, des entrées d'horloge étant liées à une sortie de la porte logique ET 208. La RAM de données
i108b (ou 110 Ob) est également divisée selon quatre groupes 258 à 264.
Les groupes 210 à 216 et 258 à 264 peuvent être accédés lors d'un
front croissant du signal d'horloge d'entrée.
Bien que ceci ne soit pas représenté sur la figure 6, chacun des groupes d'étiquettes 210 à 216 est couplé à un bus d'une largeur de 22 bits (non représenté) pour transférer des bits d'étiquette d'une adresse de mémoire qui est générée par le processeur 104 et chaque groupe présente une largeur de 22 bits. De façon similaire, chacun des groupes de données 258 à 264 est couplé à un bus d'une largeur de 32 bits (non représenté) pour délivrer des instructions ou des données et il présente une largeur de 32 x 4 bits. En outre, chacun des groupes d'étiquettes 210 à 216 inclut un comparateur (non représenté) qui compare les bits d'étiquette de la nouvelle adresse aux étiquettes qui sont stockées dans tous les emplacements de. la RAM d'étiquettes 108a. La comparaison d'étiquettes pour tous les groupes 210 à 216 est réalisée simultanément et si l'étiquette correspond à l'un des groupes, alors il y a un succès de cache. Lors d'un accès séquentiel, un signal de type d'accès SEQ est piloté à une valeur logique égale à l'unité (ou niveau haut) par le processeur 104 tandis qu'il est piloté à un état logique de 0 (ou niveau
bas) dans un mode d'accès non séquentiel ou aléatoire.
La bascule bistable D 202 stocke une valeur du signal d'adresse A4 lors de l'accès précédent. La porte logique OU-exclusif 204 détermine si la valeur A4 qui est stockée dans la bascule bistable D 202 est identique ou non à une valeur A4 en provenance du processeur 104 lors de l'accès courant. Si la valeur A4 de l'accès précédent diffère de celle de l'accès courant, la porte logique OU-exclusif 204 produit une sortie d'un état logique égal à l'unité, ce qui signifie qu'un accès courant sera appliqué à une ligne de cache qui est certainement différente de celle lors de l'accès précédent. Par ailleurs, si les deux valeurs A4 sont les mêmes, alors la porte logique OU-exclusif 204 produit une sortie d'un état logique de 0, ce qui signifie qu'il est possible qu'un accès courant soit appliqué à la même ligne que celle qui a été accédée lors
de l'accès précédent.
La porte logique OU 206 détermine pour finir si oui ou non l'accès courant sera appliqué à la même ligne de cache que celle accédée lors de l'accès précédent. S'il en est ainsi, la porte logique OU 206 émet en sortie un signal d'indicateur de saut /SKP qui présente un état logique égal à 0 mais si ce n'est pas le cas, elle émet en sortie un signal
d'indicateur de saut /SKP qui présente un état logique égal à l'unité.
Lorsque le signal d'indicateur de saut /SKP est dans un état logique égal à l'unité, la porte logique ET 208 dans la logique de commande d'accès à la RAM d'étiquettes 124 applique le signal d'horloge CLK sur les groupes d'étiquettes 210 à 216. Lorsque le signal d'indicateur de saut /SKP est dans un état logique de 0, la porte logique ET 208 coupe l'application du signal d'horloge CLK sur les groupes
d'étiquettes 210 à 216.
Une adresse d'étiquette de 22 bits A10 à A31 qui est généree par le processeur 104 est appliquée sur tous les groupes d'étiquettes 210 à 216 et est comparée à des étiquettes qui sont stockées dans tous les emplacements des groupes d'étiquettes 210 à 216. La comparaison d'étiquettes pour tous les groupes d'étiquettes 210 à 216 est réalisée simultanément. Si une correspondance d'étiquettes (c'est-à-dire un succès de cache) se produit, un signal de succès d'étiquette pris parmi les signaux de succès d'étiquette Hit_TO à HitT3 devient actif (prend un
état logique égal à l'unité).
Le discriminateur de succès 126 inclut des bascules bistables D déclenchées par front 218 et 222, des portes logiques OU 220 et 226, un registre de 4 bits 228 mis en oeuvre avec 4 bascules bistables D déclenchées par front 230, 232, 234 et 236, des portes logiques ET 224,
238, 240, 242, 244 et 246 et un multiplexeur 2 x 1 248.
La bascule bistable D 218 est synchronisée avec le signal d'horloge CLK et elle comporte une entrée D pour recevoir le signal de mode de fonctionnement /RW en provenance du processeur 104 et une sortie Q qui est couplée à une entrée de la porte logique ET 224. La porte logique OU 220 inclut 4 entrées pour recevoir les signaux de succès de données Hit DO à HitD3. Une bascule bistable D 222 est également synchronisée avec le signal d'horloge CLK et elle comporte une entrée D qui est couplée à une sortie de porte logique OU 220 et une sortie Q qui est couplée à une autre entrée de la porte logique ET 224. La porte logique OU 226 comporte une entrée pour recevoir un signal inversé de la sortie Q de la bascule bistable D 218 et une autre
entrée qui est couplée à une sortie de la porte logique ET 224.
Les bascules bistables D 230 à 236 sont synchronisées avec le signal d'horloge CLK et elles comportent trois entrées D pour recevoir
respectivement les signaux de succès de données Hit_DO à Hit_D3.
La porte logique ET 238 comporte une entrée pour recevoir un signal inversé du signal d'indicateur de saut /SKP et une autre entrée qui est couplée à une sortie de la porte logique OU 226. Une sortie de la porte logique ET 238 est appliquée de façon commune sur des premières entrées de portes logiques ET 240 à 246. Des sorties Q des bascules bistables 230 à 236 sont respectivement couplées à des
secondes entrées des portes logiques ET 240 à 246.
Un multiplexeur 248 comporte une première entrée pour recevoir les signaux de succès d'étiquette Hit_TO à HitT3 en provenance de la RAM d'étiquettes 108a, une seconde entrée pour recevoir des signaux de prédiction de succès HP0, HP1, HP2 et HP3 en provenance des portes logiques ET 240 à 246 et une sortie pour appliquer des signaux
de succès de données HitDO à HitD3.
La bascule bistable D 218 stocke une information de lecture/écriture de l'accès précédent. Lorsqu'une opération de lecture a été réalisée lors de l'accès précédent, une sortie Q de la bascule
bistable D 218 lors de l'accès courant est dans un état logique de 0.
Dans le cas contraire, si une opération d'écriture a été réalisée lors de l'accès précédent, alors la sortie Q de la bascule bistable D 218 lors de
l'accès courant reste à un état logique égal à l'unité.
La porte logique OU 220 applique une sortie d'un état logique égal à l'unité lorsqu'un succès de cache s'est produit lors de l'accès précédent tandis que la porte logique OU 220 applique une sortie d'un état logique de 0 si un échec de cache est survenu lors de l'accès précédent. La bascule bistable D 222 stocke une information de succès/échec de cache en provenance de la porte logique OU 220. Si un succès de cache s'est produit lors de l'accès précédent, la sortie Q
de la bascule bistable D 222 reste dans un état logique égal à l'unité.
Par ailleurs, si un échec de cache s'est produit lors de l'accès précédent, la sortie Q de la bascule bistable D 222 reste dans un état
logique égal à 0.
La porte logique ET 224 applique une sortie d'un état logique égal à l'unité lorsqu'une opération d'écriture a été réalisée et qu'un succès de cache s'est produit lors de l'accès précédent et sinon, la porte logique
ET 224 applique une sortie d'un état logique de 0.
La porte logique OU 226 applique une sortie d'un état logique égal à l'unité soit lorsqu'une opération de lecture a été mise en oeuvre lors de l'accès précédent, soit lorsqu'une opération d'écriture a été réalisée et
qu'un succès de cache s'est produit lors de l'accès précédent. C'est-à-
dire qu'une porte logique OU 226 émet en sortie un signal d'un état logique égal à l'unité lorsque l'accès précédent a été terminé dans l'état PS5 qui est représenté sur la figure 2. Dans les autres cas, la porte
logique OU 226 applique un signal de sortie d'un état logique égal à 0.
Un registre 228 stocke les signaux de succès de données Hit_DO à HitD3 en provenance du multiplexeur 248 pour une utilisation lors de l'accès suivant. En d'autres termes, le registre 228 stocke une information concernant celle des voies WayO à Way3 qui a rencontré un
succès lors de l'accès précédent.
Une porte logique ET 238 applique une sortie d'un état logique égal à l'unité lorsque les deux sorties des portes logiques OU 206 et 226 restent de façon respective dans un état logique de O et dans un état logique égal à l'unité, ce qui signifie qu'un accès courant correspond à l'état CS1 représenté sur la figure 2 et est appliqué à la même ligne de cache que celle accédée lors de l'accès précédent (c'est-à-dire qu'une ligne de cache demandée en requête pour un accès courant a déjà été stockée dans la mémoire cache). La porte logique ET 238 émet en sortie un signal de valeur logique de O soit lorsqu'un échec de cache s'est produit lors de l'accès en écriture précédent (tel que CS2 sur la figure 2 si la même ligne de cache est accédée), soit lorsqu'un accès courant est appliqué à une ligne de cache qui est différente de la ligne accédée lors de l'accès précédent en lecture/écriture (c'est-à-dire CS3
sur la figure 2).
Les portes logiques ET 240 à 246 appliquent des signaux de prédiction de succès HPO-HP3 en combinant respectivement des sorties Q des bascules bistables D 230 à 236 avec une sortie de la porte
logique ET 238.
Le multiplexeur 248 est commandé par le signal d'indicateur de
saut /SKP en provenance du générateur d'indicateur de saut 122.
Lorsque le signal d'indicateur de saut /SKP est dans un état logique égal à l'unité, le multiplexeur 248 sélectionne les signaux de succès d'étiquette Hit_TO à HitT3 à provenance de la RAM d'étiquettes 108a en tant que signaux de succès de données Hit_DO à Hit_D3. Lorsque le signal d'indicateur de saut /SKP est dans un état logique de 0, le multiplexeur 248 sélectionne les signaux de prédiction de succès HP0 à HP3 en provenance des portes logiques ET 240 à 246 en tant que
signaux de succès de données Hit_DO à Hit_D3.
La logique de commande d'accès en RAM de données 128 inclut des portes logiques ET 250, 252, 254 et 256. Les portes logiques 250 à 256 comportent des premières entrées qui reçoivent de façon commune en application le signal d'horloge /CLK et des secondes entrées pour recevoir respectivement des signaux de succès de données Hit_DO à HitD3. Lorsque l'un des signaux de succès de données HitDO à Hit_D3 est actif (c'est-à-dire qu'il présente un état logique égal à l'unité), c'est-à- dire lorsqu'un succès de cache se produit, I'une des portes logiques 250 à 256 transfère le signal d'horloge /CLK jusqu'à l'un correspondant des groupes de données 258 à 264 de telle sorte qu'il soit accédé. Lorsque les signaux Hit_DO à Hit_D3 deviennent tous inactifs (c'est-à-dire qu'ils prennent un état logique égal à 0), c'est-à-dire lorsqu'un échec de cache se produit, les portes logiques ET 250 à 256 coupent l'application du signal d'horloge /CLK sur les groupes de données 258 à 264 de telle sorte qu'un accès à tous les groupes 258 à
264 est intercepté.
Comme décrit ci-avant, le discriminateur de succès 126 peut réaliser ses fonctions indépendamment du signal de mode de fonctionnement /RW si le système de cache de la présente invention dispose d'une fonction de chargement suite à un échec en écriture de telle sorte que tous les accès de cache sur le système de cache de I'invention puissent toujours être des succès. Dans ce cas, l'enlèvement des portes logiques OU 220 et 226, de la porte logique ET 224 et des bascules bistables D 218 et 222 du circuit de la figure 6 est autorisé en remplaçant la porte logique ET 238 par une porte logique d'inverseur qui reçoit le signal d'indicateur de saut /SKP. Dans ce cas, le discriminateur de succès 126 émet en sortie les signaux de succès de données Hit-DO à Hit_Dn de l'accès précédent en tant que nouveaux signaux de succès de données de l'accès courant sans accéder à la RAM d'étiquettes lorsque le signal d'indicateur de saut /SKP qui dispose de l'information concernant l'accès séquentiel est actif (c'est-à-dire lorsque l'accès courant est appliqué à la même ligne de cache que celle qui a été accédée lors de l'accès précédent), mais il émet en sortie des signaux de succès d'étiquette Hit_TO à Hit_Tn de l'accès courant en tant que nouveaux signaux de succès de données de l'accès courant lorsque le signal d'indicateur de saut /SKP est inactif (c'est-à-dire lorsque l'accès courant est appliqué à une ligne de cache qui est différente de celle
accédée lors de l'accès précédent).
Bien que l'invention ait été décrite par référence à plusieurs modes de réalisation, il sera bien compris que les modes de réalisation
sont illustratifs et que le cadre de l'invention n'est pas limité à ceuxci.
De nombreux variantes, modifications, ajouts et améliorations des modes de réalisation sont possibles. Par exemple, bien que des mémoires cache associatives par jeux quatre voies soient prévues dans le mode de réalisation qui est représenté sur la figure 6, les mémoires cache peuventchacune présenter une configuration dont le nombre de voies est inférieur ou supérieur. En outre, n'importe quelle stratégie ou police de mise en cache appropriée peut être étiquetée de cette manière. Plus particulièrement, bien que les modes de réalisation de la présente invention aient été décrits en relation avec un système d'ordinateur, le principe de l'invention peut être appliqué à d'autres
systèmes qui utilisent des blocs de mémoire pour la comparaison (c'est-
à-dire des RAM d'étiquettes) tels que des tampons de consultation en
transposition (TBL), des aiguilleurs ou routeurs et des commutateurs.
Claims (12)
1. Système de traitement de données numériques caractérisé en ce qu'il comprend: un processeur de données numériques (104); une mémoire principale (106), sensible à une adresse de mémoire principale en provenance dudit processeur (104), pour stocker des instructions et des données destinées à être traitées par ledit processeur, ladite adresse de mémoire principale incluant une zone de jeu et une zone d'étiquettes; une mémoire cache incluant une RAM de données (108b ou 110Ob) et une RAM d'étiquettes (108a ou 110Oa), ladite RAM de données stockant une partie accédée fréquemment des instructions et des données qui sont stockées dans ladite mémoire principale (106), ladite RAM d'étiquettes stockant des étiquettes pour des accès à ladite RAM de données et générant des signaux de succès/échec de cache en comparant la zone d'étiquettes aux étiquettes qui sont stockées dans ladite RAM d'étiquettes; et un contrôleur (124, 128) qui stocke une information d'état concernant un type d'accès, un mode de fonctionnement et un succès/échec de cache associés à un premier accès à ladite RAM d'étiquettes (108a ou 110 a) et qui commande un second accès à ladite RAM d'étiquettes à la suite du premier accès, sur la base de l'information d'état et d'une partie d'une adresse de mémoire principale
pour le second accès.
2. Système selon la revendication 1, caractérisé en ce que ledit contrôleur (124, 128) détermine si le second accès est appliqué à la même ligne de cache que celle qui a été accédée lors du premier accès sur la base de l'information d'état et de la partie de l'adresse de mémoire
principale pour le second accès.
3. Système selon la revendication 2, caractérisé en ce que ledit contrôleur (124, 128) permet de sauter le second accès à ladite RAM d'étiquettes (108a ou 110a) lorsque le second accès est appliqué à la même ligne de cache que celle qui a été accédée lors du premier accès.
4. Système selon la revendication 1, caractérisé en ce que ledit contrôleur (124, 128) détermine si oui ou non les premier et second accès sont réalisés de façon séquentielle en utilisant la partie de
l'adresse de mémoire principale.
5. Système selon la revendication 4, caractérisé en ce que ladite partie de l'adresse de mémoire principale inclut un bit de poids le
plus faible de la zone de jeu.
6. Dispositif de mémoire en circuit intégré de cache couplé entre un processeur (104) et une mémoire principale (106) dans un système de traitement de données numériques, caractérisé en ce qu'il comprend: un circuit de RAM de données (108b ou 110Ob), sensible à une partie d'une adresse de mémoire principale en provenance dudit processeur (104), pour stocker temporairement des instructions et des données qui sont traitées par ledit processeur; un circuit de RAM d'étiquettes (108a ou 110a) pour stoker des étiquettes pour des accès audit circuit de RAM de données et pour générer une pluralité de signaux de succès d'étiquette en comparant une zone d'étiquettes de l'adresse de mémoire principale aux étiquettes stockées; un générateur d'indicateur de saut (122) pour générer un signal d'indicateur de saut en réponse à un signal de type d'accès et à un signal d'adresse de zone de jeu de l'adresse de mémoire principale en provenance dudit processeur (104); une première logique de commande d'accès en RAM (124) pour commander des accès audit circuit de RAM d'étiquettes en réponse au signal d'indicateur de saut; un discriminateur de succès (126) pour générer une pluralité de signaux de succès de données en réponse à un signal de mode de fonctionnement en provenance dudit processeur (104), au signal d'indicateur de saut et aux signaux de succès d'étiquette; et une seconde logique de commande d'accès en RAM (128) pour commander des accès audit circuit de RAM de données en réponse aux
signaux de succès de données.
7. Dispositif de mémoire selon la revendication 6, caractérisé en ce que ledit générateur d'indicateur de saut (122) inclut un moyen pour déterminer si oui ou non un accès courant audit circuit de RAM d'étiquettes (108a ou 110 a) est appliqué à la même ligne de cache que celle qui a été accédée lors d'un accès précédent audit circuit de RAM d'étiquettes en inspectant le signal de type d'accès et le signal d'adresse de zone de jeu en provenance dudit processeur, et pour activer le signal d'indicateur de saut lors de l'accès courant appliqué à la même ligne de
cache que celle qui a été accédée lors de l'accès précédent.
8. Dispositif de mémoire selon la revendication 7, caractérisé en ce que ladite première logique de commande d'accès en RAM (124), lorsque le signal d'indicateur de saut est actif, coupe l'application d'un signal d'horloge sur ledit circuit de RAM d'étiquettes (108a ou 110 a) de manière à permettre le saut de l'accès courant audit circuit de RAM d'étiquettes.
9. Dispositif de mémoire selon la revendication 7, caractérisé en ce que ladite seconde logique de commande d'accès en RAM (128) transfère un signal d'horloge audit circuit de RAM de données (108b ou Ob) en réponse aux signaux de succès de données tandis que le signal d'indicateur de saut est actif de manière à permettre l'accès audit
circuit de RAM de données.
10. Dans un système de traitement de données numériques incluant un processeur de données numériques (104), une mémoire principale (106) et une mémoire cache incluant un circuit de RAM d'étiquettes (108a ou 110 a), procédé pour faire fonctionner la mémoire cache, caractérisé en ce qu'il comprend: la détermination de si oui ou non un accès courant audit circuit de RAM d'étiquettes est appliqué à la même ligne de cache que celle qui a été accédée lors d'un accès précédent; et la possibilité de sauter l'accès courant à ladite RAM d'étiquettes lorsque l'accès courant est appliqué à la même ligne de cache que celle
qui a été accédée lors de l'accès précédent.
11. Procédé selon la revendication 10, caractérisé en ce que ladite détermination inclut: la génération d'un signal d'accès séquentiel et d'une première adresse de mémoire principale pour un accès courant à ladite mémoire cache, ledit signal d'accès séquentiel étant indicatif d'un accès séquentiel depuis un accès précédent jusqu'à l'accès courant; la détection de l'activation du signal d'accès séquentiel et la détermination de si oui ou non un signal d'adresse d'un bit lors de I'accès courant est identique à celui lors de l'accès précédent; et l'activation d'un signal d'indicateur de saut lorsque le signal d'accès séquentiel est activé et que le signal d'adresse d'un bit lors de
l'accès courant est identique à celui lors de l'accès précédent.
12. Procédé selon la revendication 11, caractérisé en ce que ladite possibilité de saut inclut: la production d'un signal d'horloge; et l'inactivation du signal d'horloge sur ledit circuit de RAM d'étiquettes (108a ou 110a) lorsque le signal d'indicateur de saut est activé.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000030879A KR100351504B1 (ko) | 2000-06-05 | 2000-06-05 | 캐쉬 메모리, 그의 전력 소비 절감 방법 그리고 캐쉬메모리를 구비하는 데이터 처리 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2809841A1 true FR2809841A1 (fr) | 2001-12-07 |
FR2809841B1 FR2809841B1 (fr) | 2005-08-19 |
Family
ID=19671251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0101628A Expired - Fee Related FR2809841B1 (fr) | 2000-06-05 | 2001-02-07 | Procede et appareil pour reduire la puissance dans des memoires cache et systeme de traitement de donnees comportant des memoires chaches |
Country Status (7)
Country | Link |
---|---|
US (1) | US6560679B2 (fr) |
JP (1) | JP2002007210A (fr) |
KR (1) | KR100351504B1 (fr) |
DE (1) | DE10112216A1 (fr) |
FR (1) | FR2809841B1 (fr) |
GB (1) | GB2365594B (fr) |
TW (1) | TW502164B (fr) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001077836A1 (fr) * | 2000-04-12 | 2001-10-18 | Koninklijke Philips Electronics N.V. | Circuit de traitement de donnees comprenant une antememoire et appareil comportant un tel circuit |
KR100416858B1 (ko) * | 2001-02-15 | 2004-02-05 | 정창우 | 명령어 처리장치 |
KR100395756B1 (ko) * | 2001-06-16 | 2003-08-21 | 삼성전자주식회사 | 캐쉬 메모리 및 이를 이용하는 마이크로 프로세서 |
EP1361518B1 (fr) | 2002-05-10 | 2013-08-07 | Texas Instruments Incorporated | Diminution des accès à une mémoire TAG-RAM et accélération du fonctionnement d'une antémémoire en cas de râtage |
US6976126B2 (en) * | 2003-03-11 | 2005-12-13 | Arm Limited | Accessing data values in a cache |
US7143243B2 (en) * | 2003-05-29 | 2006-11-28 | Via-Cyrix, Inc. | Tag array access reduction in a cache memory |
US7117290B2 (en) * | 2003-09-03 | 2006-10-03 | Advanced Micro Devices, Inc. | MicroTLB and micro tag for reducing power in a processor |
WO2006101113A1 (fr) * | 2005-03-22 | 2006-09-28 | Matsushita Electric Industrial Co., Ltd. | Procede et dispositif de controle de memoire cache |
US20060236036A1 (en) * | 2005-04-13 | 2006-10-19 | Gschwind Michael K | Method and apparatus for predictive scheduling of memory accesses based on reference locality |
US20070005912A1 (en) * | 2005-07-01 | 2007-01-04 | Ming-Chung Kao | Apparatus and method for reducing tag ram access |
KR20090039411A (ko) * | 2007-10-18 | 2009-04-22 | 삼성전자주식회사 | 솔더 볼과 칩 패드가 접합된 구조를 갖는 반도체 패키지,모듈, 시스템 및 그 제조방법 |
US8145874B2 (en) * | 2008-02-26 | 2012-03-27 | Qualcomm Incorporated | System and method of data forwarding within an execution unit |
JP2011028736A (ja) * | 2009-07-02 | 2011-02-10 | Fujitsu Ltd | キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 |
JP5625329B2 (ja) * | 2009-11-16 | 2014-11-19 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
KR101645003B1 (ko) | 2010-02-12 | 2016-08-03 | 삼성전자주식회사 | 메모리 제어기 및 그 메모리 제어기가 탑재된 컴퓨팅 장치 |
US8914580B2 (en) | 2010-08-23 | 2014-12-16 | Apple Inc. | Reducing cache power consumption for sequential accesses |
US9513837B2 (en) * | 2011-10-12 | 2016-12-06 | Hewlett Packard Enterprise Development Lp | Performance assist storage volumes |
CN103049398A (zh) * | 2012-12-31 | 2013-04-17 | 北京北大众志微***科技有限责任公司 | 一种无用预取过滤方法 |
KR20170075396A (ko) * | 2015-12-23 | 2017-07-03 | 고려대학교 산학협력단 | 메모리 시스템 |
US9898296B2 (en) | 2016-01-08 | 2018-02-20 | International Business Machines Corporation | Selective suppression of instruction translation lookaside buffer (ITLB) access |
US9354885B1 (en) | 2016-01-08 | 2016-05-31 | International Business Machines Corporation | Selective suppression of instruction cache-related directory access |
US10877889B2 (en) * | 2019-05-16 | 2020-12-29 | Micron Technology, Inc. | Processor-side transaction context memory interface systems and methods |
US11379376B2 (en) | 2020-05-20 | 2022-07-05 | Micron Technologies, Inc. | Embedding data in address streams |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724548A (en) * | 1990-09-18 | 1998-03-03 | Fujitsu Limited | System including processor and cache memory and method of controlling the cache memory |
EP0921471A1 (fr) * | 1997-12-05 | 1999-06-09 | Texas Instruments France | Architecture d'antémémoire |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
US5586283A (en) * | 1993-10-07 | 1996-12-17 | Sun Microsystems, Inc. | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer |
US5537570A (en) * | 1993-10-12 | 1996-07-16 | Texas Instruments Incorporated | Cache with a tag duplicate fault avoidance system and method |
US5528592A (en) * | 1994-01-27 | 1996-06-18 | Dsc Communications Corporation | Method and apparatus for route processing asynchronous transfer mode cells |
JP2634147B2 (ja) * | 1994-09-16 | 1997-07-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータシステム、キャッシュヒットの判定方法 |
JP3277730B2 (ja) * | 1994-11-30 | 2002-04-22 | 株式会社日立製作所 | 半導体メモリ装置、及び、それを用いた情報処理装置 |
JPH08263370A (ja) * | 1995-03-27 | 1996-10-11 | Toshiba Microelectron Corp | キャッシュメモリシステム |
US5809537A (en) * | 1995-12-08 | 1998-09-15 | International Business Machines Corp. | Method and system for simultaneous processing of snoop and cache operations |
US5860113A (en) * | 1996-06-03 | 1999-01-12 | Opti Inc. | System for using a dirty bit with a cache memory |
JPH11184752A (ja) | 1997-12-19 | 1999-07-09 | Hitachi Ltd | データ処理装置及びデータ処理システム |
KR100301791B1 (ko) * | 1998-05-30 | 2001-09-06 | 김진찬 | 선택적제어가가능한직/병렬캐시구조를갖는캐시시스템 |
-
2000
- 2000-06-05 KR KR1020000030879A patent/KR100351504B1/ko not_active IP Right Cessation
- 2000-12-20 US US09/742,030 patent/US6560679B2/en not_active Expired - Fee Related
-
2001
- 2001-01-30 TW TW090101749A patent/TW502164B/zh not_active IP Right Cessation
- 2001-02-07 FR FR0101628A patent/FR2809841B1/fr not_active Expired - Fee Related
- 2001-02-23 GB GB0104523A patent/GB2365594B/en not_active Expired - Fee Related
- 2001-03-12 DE DE10112216A patent/DE10112216A1/de not_active Ceased
- 2001-03-19 JP JP2001079072A patent/JP2002007210A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724548A (en) * | 1990-09-18 | 1998-03-03 | Fujitsu Limited | System including processor and cache memory and method of controlling the cache memory |
EP0921471A1 (fr) * | 1997-12-05 | 1999-06-09 | Texas Instruments France | Architecture d'antémémoire |
Non-Patent Citations (1)
Title |
---|
HOON CHOI ET AL: "Low-power 4-way associative cache for embedded SOC design", PROCEEDINGS 13TH ANNUAL IEEE INTERNATIONAL ASIC-SOC CONFERENCE, 13 September 2000 (2000-09-13), PISCATAWAY, NJ, USA, IEEE, USA, pages 231 - 235, XP010520213 * |
Also Published As
Publication number | Publication date |
---|---|
JP2002007210A (ja) | 2002-01-11 |
KR100351504B1 (ko) | 2002-09-05 |
TW502164B (en) | 2002-09-11 |
US20010049772A1 (en) | 2001-12-06 |
DE10112216A1 (de) | 2001-12-13 |
GB2365594B (en) | 2002-11-06 |
FR2809841B1 (fr) | 2005-08-19 |
US6560679B2 (en) | 2003-05-06 |
KR20010110005A (ko) | 2001-12-12 |
GB2365594A (en) | 2002-02-20 |
GB0104523D0 (en) | 2001-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2809841A1 (fr) | Procede et appareil pour reduire la puissance dans des memoires cache et systeme de traitement de donnees comportant des memoires chaches | |
FR2804770A1 (fr) | Procede et systeme d'acces precoce, en parallele, aux etiquettes des antememoires de niveaux inferieurs et a l'antemoire de premier niveau | |
CN109983536B (zh) | 响应标签匹配命令的存储电路 | |
FR2624994A1 (fr) | Systeme de commande de registre intermediaire de traduction | |
FR2834809A1 (fr) | Dispositif pour moteur de compression de memoire cache pour la compression de donnees sur des memoires cache integrees pour augmenter la taille de memoire cache effective | |
EP0935781A1 (fr) | Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur | |
US8677072B2 (en) | System and method for reduced latency caching | |
FR2681707A1 (fr) | Systeme de fichiers pour redistribuer selectivement des fichiers et procede pour affecter un espace de memoire dans un systeme informatique comportant de multiples dispositifs de stockage de donnees. | |
FR2613505A1 (fr) | Methode d'ouverture rapide de fichiers a disques identifies par la denomination de chemins | |
EP1532531A1 (fr) | Procede et appareil pour memoire cache a filetage multiple permettant une mise en place simplifiee de la politique de remplacement de la memoire cache | |
EP3259674B1 (fr) | Circuit dram muni d'un processeur integre | |
US20050138282A1 (en) | Maintaining disk cache coherency in multiple operating system environment | |
FR3045183A1 (fr) | Procede de prediction d'une donnee a precharger dans une memoire cache | |
JPH08235060A (ja) | 複数のハッシュ関数を用いるキャッシュ・メモリ管理方法及びシステム | |
WO2017055732A1 (fr) | Dispositif informatique muni de traitement en memoire et de ports d'acces etroits | |
FR2805368A1 (fr) | Systeme et procede utilisant l'acces speculatif a l'antememoire pour des performances ameliorees | |
EP0251861B1 (fr) | Unité de gestion de mémoire | |
EP3080812A1 (fr) | Systeme d'ecriture de donnees dans une mémoire | |
EP2802992A1 (fr) | Systeme et procede de gestion de correspondance entre une memoire cache et une memoire principale | |
EP3611623B1 (fr) | Contrôleur mémoire comprenant deux buffers et un selecteur d'un mode de remplissage desdits buffers | |
EP0306357A1 (fr) | Unité de gestion d'accès en mémoire, à identifiants logiques invariants, notamment pour la gestion de bases de données | |
US9720834B2 (en) | Power saving for reverse directory | |
US9165088B2 (en) | Apparatus and method for multi-mode storage | |
WO2010010163A1 (fr) | Circuit processeur à mémoire partagée et système tampon | |
US8527696B1 (en) | System and method for out-of-band cache coherency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20151030 |