FR2807176A1 - Memoire cache associative - Google Patents

Memoire cache associative Download PDF

Info

Publication number
FR2807176A1
FR2807176A1 FR0103383A FR0103383A FR2807176A1 FR 2807176 A1 FR2807176 A1 FR 2807176A1 FR 0103383 A FR0103383 A FR 0103383A FR 0103383 A FR0103383 A FR 0103383A FR 2807176 A1 FR2807176 A1 FR 2807176A1
Authority
FR
France
Prior art keywords
cache memory
line
lines
channels
channel
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
FR0103383A
Other languages
English (en)
Other versions
FR2807176B1 (fr
Inventor
Choi Hoon
Kyoon Yim Myung
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of FR2807176A1 publication Critical patent/FR2807176A1/fr
Application granted granted Critical
Publication of FR2807176B1 publication Critical patent/FR2807176B1/fr
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • 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/0864Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Static Random-Access Memory (AREA)

Abstract

Une mémoire cache (500) à K voies présentant une vitesse de fonctionnement améliorée et une consommation de puissance réduite est proposée. La mémoire cache inclut M unités de mémoire cache (502 à 508) mais elle active seulement l'une des unités à un instant donné. En outre, seulement une ligne de correspondance (ML00 à ML153) est activée en correspondance avec une voie qui présente une adresse d'étiquette qui correspond à une adresse d'étiquette appliquée de façon externe.

Description

Arrière-plan de l'invention 1. Domaine technique La présente invention
concerne de façon générale des mémoires cache et de façon davantage particulière, une mémoire cache associative permettant de diminuer la consommation de puissance par l'intermédiaire de la reconfiguration d'une mémoire cache à K voies et à
N jeux selon une mémoire cache à M unités, K voies et N/M jeux.
2. Description de l'art antérieur
La majorité des microprocesseurs récents utilisent une mémoire cache interne qui présente un stockage important pour améliorer la performance d'accès aux données à l'intérieur. La mémoire cache comporte une zone d'étiquettes qui est constituée par des cellules de mémoire adressables par contenu (CAM) et une zone de données qui est constituée par des de cellules de mémoire vive (RAM). La zone d'étiquettes est accédée pour déterminer si une commande requise ou des données requises sont stockées ou non à l'intérieur de la mémoire cache courante. Cette détermination est réalisée chaque fois que le processeur recherche la commande ou lit ou écrit les données, en
comparant une adresse contenue en lui-même à une adresse d'entrée.
Si les deux adresses sont les mêmes, la mémoire cache lit la commande ou les données à partir de la zone de données ou écrit les données dans la zone de données. Du fait que ces activités en relation avec la zone d'étiquettes affectent de manière significative la performance globale de la mémoire cache, des développements intensifs concernant la zone d'étiquettes dans la mémoire cache ont été mis en oeuvre afin d'améliorer la performance du système. Cependant, dans le cas d'un système intégré ou autonome tel qu'un téléphone portable, la diminution de la consommation de puissance est également
très importante.
La figure 1 est un schéma fonctionnel qui représente un système de traitement de données général qui utilise une mémoire cache, conformément à l'art antérieur. Le système de la figure 1 est décrit dans le brevet des Etats-Unis n 5 367 653 intitulé "Reconfigurable Multi-Way
Associative Cache Memory".
Le système de traitement de données inclut une unité centrale de traitement ou CPU 100 qui commande une mémoire principale 200 et une mémoire cache associative à multiples voies ou multivoie 300. La mémoire principale 200 et la mémoire cache 300 sont habituellement respectivement constituées par une mémoire vive dynamique (DRAM) et par une mémoire vive statique (SRAM). Dans un système de traitement, la mémoire cache 300 qui est constituée par une SRAM présente une capacité de stockage plus faible et une vitesse d'accès aux données plus élevée que la mémoire principale 200 qui est constituée par une DRAM. En outre, le coût par multiplet ou octet de la mémoire cache 300 est plus important que celui de la mémoire principale 200. Comme il est connu, la CPU 100 inclut également des éléments opérationnels pour des communications de données entre une unité arithmétique et logique
(ALU), des composants de la CPU 100 et d'autres unités de circuit.
La commande de données et/ou de programme (représentée en tant que "données" ci-après) peut être stockée dans la mémoire cache 300. Les données et une étiquette associative sont stockées dans la mémoire cache 300. L'adresse de la mémoire principale 200 est stockée dans un registre d'adresse de mémoire principale 110 qui est situé dans
la CPU 100.
L'adresse de mémoire principale qui est contenue dans le registre de mémoire principale 110 est divisée selon un petit nombre de segments. C'est-à-dire que l'adresse de mémoire principale inclut des bits d'adresse de sélection d'octet ADDR 0-1 qui sont utilisés en tant que signal permettant de sélectionner un unique octet d'une pluralité d'octets de mémoire principale qui sont stockés au niveau de l'adresse de mémoire cache appliquée, et des bits d'adresse de sélection de mot ADDR 2- 3 qui sont utilisés en tant que signal permettant de sélectionner un unique mot parmi une pluralité de mots de mémoire principale qui sont stockés au niveau de l'adresse de mémoire cache appliquée. En outre, des bits d'adresse de sélection de jeu ADDR 4-9 sont utilisés en tant qu'adresse de cache pour accéder à un jeu de la mémoire cache 300. Des bits d'adresse d'étiquette ADDR 10-31 représentés en tant que TAG ou ÉTIQUETTE sont stockés dans un réseau d'étiquettes de la mémoire cache 300. Un contrôleur de mémoire cache 120 commande
une transmission de signal entre la CPU 100 et la mémoire cache 300.
La mémoire cache associative 300 est constituée respectivement par un
réseau d'étiquettes 320 et par un réseau de données 340.
La figure 2 est un schéma qui représente la mémoire cache associative 300 de la figure 1 de manière davantage détaillée, conformément à l'art antérieur. La mémoire cache associative 300 est une mémoire cache associative à quatre voies de jeux incluant la voie WAY_0 302, la voie WAY_I 304, la voie WAY_2 306 et la voie WAY_3 308. Chaque voie inclut 64 jeux. Puisque chaque voie présente la même structure de circuit, seulement la structure de la voie WAY_0 sera décrite. La voie WAY_0 302 est constituée par un registre tampon 310, par un réseau d'étiquettes 320, par une unité de sélection de jeu 330, par un réseau de données 340, par un décodeur de jeu 350 et par un
multiplexeur 360.
Le registre tampon 310 verrouille les bits d'adresse d'étiquette ADDR 1031 de l'adresse de mémoire principale, appliquée au moyen du contrôleur de mémoire cache 120. L'adresse sera constituée pour un
signal de ligne de bit du réseau d'étiquettes 320.
Le réseau d'étiquettes 320 est constitué par 64 lignes qui correspondent à SET_0 à SET_63, et chaque ligne stocke 22 bits d'étiquette, de façon respective. Des lignes identiques des quatre voies 302, 304, 306 et 308 constituent un unique "jeu". C'est-à-dire que les premières lignes des voies 302, 304, 306 et 308 sont "SET_0", les secondes lignes sont "SET_1", etc... Chaque ligne qui est agencée dans le réseau d'étiquettes selon une unique voie est appelée ci-après
un "jeu".
Des lignes de correspondance ML0 à ML63 sont respectivement connectées aux jeux SET_0 à SET_63 du réseau étiquettes 320. La ligne de correspondance qui correspond au jeu du réseau étiquettes 320 qui stocke une étiquette égale aux bits d'adresse ADDR 10-31 qui sont verrouillés dans le registre tampon 310 est établie à un niveau de tension d'alimentation; les lignes de correspondance restantes sont
établies à un niveau de tension de masse.
Le décodeur de jeu 350 génère des signaux de validation de jeu SEN0 à SEN63 en décodant les bits d'adresse de sélection de jeu
ADDR4-9.
L'unité de sélection de jeu 330 est formée par 64 transistors 330_0 à 330_63 qui sont connectés entre les lignes de correspondance ML0 à ML63 et les lignes de mot DWL0 à DWL63 du réseau de données 340. Les transistors 330_0 à 330_63 connectent de façon sélective les lignes de correspondance ML0 à ML63 aux lignes de mot DWL0 à DWL63, en réponse à des signaux de validation SEN0 à
SEN63 qui sont appliqués depuis le décodeur de jeu 350.
Le réseau de données 340 est constitué par 64 jeux tout comme le réseau d'étiquettes 320. Un jeu est constitué par quatre mots WORD0 à WORD3. Les jeux 340_0 à 340_63 du réseau de données 340 sont connectés aux jeux du réseau d'étiquettes 320, par l'intermédiaire respectivement des lignes de mot DWL0 à DWL63, des transistors 330_0 à 330_63 et des lignes de correspondance ML0 à ML63. Le réseau de données 340 applique les données qui sont stockées dans le jeu associé à la ligne de mot activée prise parmi les lignes de mot DWL0
à DWL63 sur le multiplexeur 360.
Le multiplexeur 360 émet en sortie de façon sélective un mot (pris parmi quatre mots) appliqué depuis le réseau de données 340 en
réponse aux bits d'adresse de sélection de mot ADDR 2-3.
La figure 3 est un schéma qui représente le réseau d'étiquettes 320 de la figure 2 de manière davantage détaillée, conformément à l'art antérieur. Le réseau d'étiquettes 320 est constitué par une pluralité de
cellules CAM 322 qui sont agencées selon 64 rangées et 22 colonnes.
Les lignes de mot DWL0 à DWL63 sont agencées horizontalement de
manière à croiser des paires de lignes de bit BL0/BLB0 à BL21/BLB21.
Les lignes de correspondance ML0 à ML63 sont agencées
parallèlement aux lignes de mot DWL0 à DWL63.
Les paires de lignes de bit BL0/BLB0 à BL21/BLB21 transfèrent les bits d'adresse d'étiquette ADDR 10-31 qui sont stockés dans le registre tampon 310 et la paire de bits de données constituée par des bits complémentaires jusqu'aux cellules CAM 322. Les cellules CAM 322 stockent les données à un seul bit et réalisent l'opération de
comparaison sur un seul bit (NON-OU-EXCLUSIF logique ou XNOR).
Les cellules CAM 322 émettent en sortie le résultat de l'opération de comparaison sur la ligne de correspondance connectée. Chacun des transistors de précharge 324_0 à 324_63 est constitué par un transistor métal-oxyde-semiconducteur à canal P (PMOS) et il inclut une voie de courant qui est formée entre la tension d'alimentation et une extrémité de la ligne de correspondance MLi (i = 0, 1,... ou 63), et une grille qui est commandée par un signal de précharge PRE qui est appliqué depuis
le contrôleur de mémoire cache 120.
La figure 4 est un schéma qui représente les cellules CAM 322 de la figure 4 de manière davantage détaillée, conformément à l'art antérieur. Par report à la figure 4, la cellule CAM 322 inclut un transistor métaloxyde-semiconducteur à canal N (NMOS) 402 et des transistors NMOS 410 à 416 ainsi qu'un dispositif de verrouillage 404. Pendant un mode précharge, les transistors de précharge 324_0 à 340_63 sont activés ou rendus passants en réponse au signal de précharge PRE, et la ligne de correspondance ML est préchargée au niveau haut. Pendant un mode évaluation, il est évalué si oui ou non des bits de données imprimés sur la paire de lignes de bit BL/BLB sont identiques aux bits de
données L1 et L2 qui sont stockés dans le dispositif de verrouillage 404.
Si les bits de données qui sont imprimés sur la paire de lignes de bit BL/BLB sont identiques aux bits de données L1 et L2 qui sont stockés dans le moyen de verrouillage 404, alors le transistor 416 est rendu bloqué ou désactivé de telle sorte que la ligne de correspondance ML conserve le niveau haut préchargé. A l'opposé, si les bits de données qui sont imprimés sur la paire de lignes de bit BL/BLB ne sont pas identiques aux bits de données L1 et L2 qui sont stockés dans le moyen de verrouillage 404, alors le transistor 416 est rendu passant ou activé de telle sorte que la ligne de correspondance ML est déchargée jusqu'au niveau de tension de masse. De cette manière, les bits d'adresse d'étiquette ADDR 10-31 qui sont appliqués par l'intermédiaire des paires de lignes de bit BL0/BLB0 à BL21/BLB21 sont comparés aux bits de données qui sont stockés dans les cellules CAM 322, la ligne de correspondance qui est associée au jeu identique complet maintient le niveau de tension d'alimentation et les lignes de correspondance restantes qui sont associées aux jeux non identiques sont déchargées
jusqu'au niveau de tension de masse.
La mémoire cache 300 comme décrit ci-avant réalise l'opération de comparaison dans tous les réseaux d'étiquettes 320 des quatre voies 302, 304, 306 et 308 en appliquant les bits d'adresse de mémoire principale ADDR 10-31 et ADDR 4-9 pour l'ensemble des quatre voies 302, 304, 306 et 308. En outre, dans un unique réseau d'étiquettes 320, bien qu'il y ait seulement un jeu destiné à être comparé aux bits de mémoire principale ADDR 10-31, toutes les lignes de correspondance
ML0 à ML63 de 64 jeux sont préchargées ou déchargées.
C'est-à-dire que la détermination d'un succès/échec (HIT/MISS) est possible en réalisant l'opération de comparaison dans un unique jeu
des voies correspondant aux bits d'adresse de sélection de jeu ADDR 4-
9; cependant, I'opération de comparaison est réalisée dans l'ensemble des 64 jeux. Par conséquent, au total 256 lignes de correspondance (4 voies x 64 lignes) réalisent l'opération de comparaison, ce qui provoque
une dissipation de puissance non nécessaire.
Afin de résoudre les problèmes mentionnés ci-avant, le brevet des EtatsUnis n 5 453 948 intitulé "Associative Memory" et délivré à Yoneda le 26 septembre 1995, le brevet des Etats-Unis n 5 469 378 intitulé "Content Addressable Memory Having Match Line Transistors Connected in Series and Coupled to Current Sensing Circuit" et délivré à Albon et suivants le 21 novembre 1995 et le brevet des Etats-Unis n 5 859 791 intitulé "Content Addressable Memory" délivré à Schultz et suivants le 12 janvier 1999 décrivent des transistors connectés à une ligne de correspondance, les transistors étant connectés en série et non pas en parallèle, et l'extrémité de la ligne de correspondance étant connectée à la tension de masse. En outre, le transistor est rendu passant ou activé lorsque les données qui sont stockées dans le moyen de verrouillage sont égales aux données qui sont appliquées par l'intermédiaire de la ligne de bit (succès ou HIT) tandis que le transistor est désactivé ou rendu bloqué lorsque les deux jeux de données ne sont pas égaux (échec ou MISS). Par conséquent, dans le cas o tous les transistors qui sont connectés à une ligne de correspondance sont rendus activés ou passants, I'autre extrémité de la ligne de correspondance qui est connectée au réseau de données diminue jusqu'au niveau bas. En outre, lorsque même un unique transistor est rendu bloqué ou désactivé, la ligne de correspondance maintient le niveau haut du niveau de précharge. Cependant, la façon de connecter les transistors à la ligne de correspondance en série abaisse la vitesse de fonctionnement. Afin de réduire la détérioration de la vitesse, dans le brevet de Albon et suivants, une détection de courant est utilisée en lieu et place d'une détection de tension et dans le brevet de Schultz et suivants, les transistors en série sont divisés selon plusieurs blocs et les résultats de chacun des blocs sont combinés. Cependant, la façon de connecter les transistors avec la ligne de correspondance en série présente des déficiences telles qu'une structure de circuit complexe et
qu'une limite au niveau de la vitesse de fonctionnement.
Résumé de l'invention La présente invention est orientée vers une mémoire cache qui présente une vitesse de fonctionnement améliorée et une
consommation de puissance diminuée par rapport à l'art antérieur.
Conformément à un premier aspect de l'invention, on propose une mémoire cache qui comporte K voies et N jeux. La mémoire cache inclut M (M < N) unités de mémoire cache. Un décodeur de sélection d'unité est adapté pour générer des signaux de sélection d'unité afin d'activer l'une des M unités de mémoire cache à un instant donné en réponse à une adresse de sélection d'unité. Chacune des unités de mémoire cache inclut un réseau d'étiquettes qui, à son tour, inclut N/M jeux. Chacun des N/M jeux est constitué par les K voies et comporte des lignes de correspondance qui sont respectivement connectées aux K voies. En outre, chacune des unités de mémoire cache inclut un réseau de données qui, à son tour, inclut les N/M jeux. Chacun des N/M jeux inclus dans le réseau de données est constitué par les K voies et comporte des lignes de correspondance qui sont respectivement connectées aux K voies. Par ailleurs, chacune des unités de mémoire cache inclut un décodeur de sélection de jeu qui est adapté pour générer des signaux de sélection de jeu afin de sélectionner l'un des
N/M jeux en réponse à une adresse de sélection de jeu.
Additionnellement, chacune des unités de mémoire cache inclut une pluralité de décodeurs de sélection de voie dont chacun est adapté pour être validé par un signal de sélection de jeu qui lui correspond et pour générer des signaux de sélection de voie afin de sélectionner les K voies dans l'un correspondant des N/M jeux en réponse à un signal de mode et à une adresse de sélection de voie. Le réseau d'étiquettes est en outre adapté pour comparer des adresses d'étiquette qui sont contenues dans les K voies sélectionnées au moyen d'un signal de sélection de voie à une adresse d'étiquette externe et pour seulement activer une ligne de correspondance qui est couplée à une voie parmi les K voies sélectionnées par le signal de sélection de voie à un premier niveau de tension lorsqu'une adresse d'étiquette qui est contenue dans
la voie et l'adresse d'étiquette externe sont identiques.
Conformément à un second aspect de l'invention, le réseau d'étiquettes inclut une pluralité de cellules de mémoire adressables par contenu (CAM) qui sont agencées selon une pluralité de rangées et de colonnes. Les paires d'une pluralité de paires de première et seconde lignes de bit sont chacune adaptées de manière à transférer des adresses d'étiquette externes aux cellules CAM dans l'une de la pluralité de colonnes. Des lignes de masse sont agencées en parallèle aux
lignes de correspondance.
Conformément à un troisième aspect de l'invention, chacune de la pluralité de cellules CAM inclut une unité de précharge qui est adaptée pour précharger une ligne de correspondance connectée au premier niveau de tension en réponse à un signal de commande de précharge. Une unité de décharge est adaptée pour décharger une ligne de masse connectée à un second niveau de tension en réponse à un signal de sélection de voie donné qui est appliqué depuis l'un correspondant de la pluralité de décodeurs de sélection de voie. Une unité de commutation est adaptée pour connecter de façon sélective la ligne de correspondance connectée à la ligne de masse connectée lorsqu'une adresse d'étiquette stockée n'est pas identique à une adresse d'étiquette externe donnée qui est appliquée par l'intermédiaire
de l'une de la pluralité de paires de première et seconde lignes de bit.
Conformément à un quatrième aspect de l'invention, chacune de la pluralité de cellules CAM inclut en outre une unité de verrouillage qui est adaptée pour stocker une valeur binaire en tant que différence de potentiel entre des premier et second noeuds. Des premier et second transistors comportent une voie de courant qui est formée entre l'une de la pluralité de paires de première et seconde lignes de bit, et une grille
qui est couplée aux premier et second noeuds, de façon respective.
Conformément à un cinquième aspect de l'invention, I'unité de commutation inclut un transistor métal-oxyde-semiconducteur à canal N (NMOS) qui comporte une voie de courant qui est formée entre la ligne de correspondance connectée et la ligne de masse connectée et une grille qui est couplée à un noeud de connexion des voies de courant des
premier et second transistors.
Conformément à un sixième aspect de l'invention, I'unité de précharge inclut un transistor métal-oxyde-semiconducteur à canal P (PMOS) qui comporte une voie de courant qui est formée entre une tension d'alimentation et la ligne de correspondance connectée et une
grille qui est couplée au signal de commande de précharge.
Conformément à un septième aspect de l'invention, I'unité de décharge inclut un transistor NMOS qui comporte une voie de courant qui est formée entre la ligne de masse connectée et une tension de masse et une grille qui est couplée au signal de sélection de voie donné appliqué depuis l'un correspondant de la pluralité de décodeurs de
sélection de voie.
Conformément à un huitième aspect de l'invention, le réseau de données inclut en outre des lignes de mot qui sont respectivement connectées entre les K voies du réseau de données et les lignes de
correspondance.
Conformément à un neuvième aspect de l'invention, la mémoire cache inclut en outre un circuit de pilotage de ligne de mot qui est adapté pour activer une ligne de mot qui est connectée à la ligne de correspondance qui est couplée à la voie, lorsque le signal de sélection de voie, la ligne de correspondance couplée à la voie et un signal complémentaire de retard qui correspond à un temps de retard de
fonctionnement dans le réseau d'étiquettes sont tous activés.
Conformément à un dixième aspect de l'invention, la mémoire cache inclut en outre un circuit de détection de succès de voie qui est adapté pour générer des signaux de détection de succès de voie correspondant respectivement aux K voies, les signaux de détection de
succès de voie correspondant à un état d'activation des lignes de mot.
Conformément à un onzième aspect de l'invention, le circuit de détection de succès de voie inclut des lignes de détection qui correspondent respectivement aux K voies. Les unités d'une pluralité d'unités de précharge de ligne de détection sont adaptées pour précharger les lignes de détection au premier niveau de tension. Les unités d'une pluralité d'unités de décharge de ligne de détection sont adaptées pour décharger les lignes de détection jusqu'à un second niveau de tension lorsqu'au moins une ligne de mot d'une voie connectée à une ligne de détection lui correspondant est activée. Les niveaux de tension des lignes de détection sont respectivement fournis
par les signaux de détection de succès de voie.
Conformément à un douzième aspect de l'invention, I'unité de décharge de ligne de détection inclut N/M transistors de décharge dont chacun comporte une voie de courant qui est formée entre une ligne de détection connectée et le second niveau de tension et une grille qui est commandée par une ligne de mot donnée d'une voie donnée
correspondant à la ligne de détection connectée.
Conformément à un treizième aspect de l'invention, chacun de la pluralité de décodeurs de sélection de voie est adapté pour générer un signal de sélection de voie donné pour sélectionner l'ensemble des K voies dans un jeu donné lorsque le signal de mode correspond à un mode lecture et pour sélectionner l'une des K voies dans le jeu donné sur la base d'une adresse de voie donnée lorsque le signal de mode
correspond à un mode écriture.
Conformément à un quatorzième aspect de l'invention, le réseau d'étiquettes inclut en outre une pluralité de lignes de mot d'étiquette
correspondant respectivement aux K voies dans les N/M jeux.
Conformément à un quinzième aspect de l'invention, la cellule CAM inclut en outre un quatrième transistor qui comporte une voie de courant qui est formée entre le premier noeud et une première ligne de bit de l'une de la pluralité de paires de première et seconde lignes de bit et une grille qui est couplée à l'une de la pluralité de lignes de mot d'étiquette. Un cinquième transistor comporte une voie de courant qui est formée entre le second noeud et une seconde ligne de bit de l'une de la pluralité de paires de première et seconde lignes de bit et une grille
qui est couplée à l'une de la pluralité de lignes de mot d'étiquette.
Comme il apparaît au vu de ce qui précède, conformément à la mémoire cache de l'invention, la mémoire cache permet de diminuer de façon remarquable la consommation de puissance moyennant une
vitesse de fonctionnement élevée.
Ces aspects, ces caractéristiques et ces avantages de l'invention
ainsi que d'autres apparaîtront au vu de la description détaillée qui suit
de modes de réalisation préférés qui est à lire en connexion avec les
dessins annexés.
Brève description des dessins
La figure 1 est un schéma fonctionnel qui représente un système de traitement de données général qui utilise une mémoire cache, conformément à l'art antérieur; la figure 2 est un schéma qui représente la mémoire cache associative de la figure 1 de manière davantage détaillée, conformément à l'art antérieur; la figure 3 est un schéma qui représente le réseau d'étiquettes de la figure 2 de manière davantage détaillée, conformément à l'art antérieur; la figure 4 est un schéma qui représente la cellule CAM de la figure 4 de manière davantage détaillée, conformément à l'art antérieur; la figure 5 est un schéma conceptuel qui représente de façon conceptuelle une structure de la mémoire cache conformément à un mode de réalisation préféré de la présente invention; la figure 6 est un schéma conceptuel qui représente une structure d'un registre d'adresse de mémoire principale permettant d'accéder à la mémoire cache constituée par quatre unités, quatre voies et seize jeux conformément à un mode de réalisation préféré de la présente invention; la figure 7 est un schéma fonctionnel qui représente une structure détaillée de la mémoire cache conformément à un mode de réalisation préféré de la présente invention; la figure 8 est un schéma de circuit détaillé qui représente le réseau d'étiquettes qui est représenté sur la figure 7; la figure 9 est un schéma de circuit détaillé qui représente une unité de détection de succès de voie et de pilotage de ligne de mot représentée sur la figure 7; et la figure 10 est un schéma de cadencement qui représente la mémoire cache dans un mode lecture conformément à un mode de
réalisation préféré de la présente invention.
Description détaillée des modes de réalisation préférés
Un mode de réalisation préféré de la présente invention sera
décrit ci-après par report aux dessins annexés. Dans la description
détaillée qui suit, des fonctions ou des constructions bien connues ne sont pas décrites en détail de manière à ne pas obscurcir l'invention par des détails non nécessaires. La figure 5 est un schéma qui représente la structure d'une mémoire cache 500, conformément à un mode de réalisation préféré de la présente invention. La mémoire cache 500 inclut quatre unités de mémoire cache 502 à 508. Chacune des unités de mémoire cache 502 à 508 inclut un réseau d'étiquettes 560_y (y = 0, 1, 2 ou 3) et un réseau de données 580_y (y = 0, 1, 2 ou 3). Le réseau d'étiquettes 560_y et le réseau de données 580_y sont respectivement constitués par 64 lignes qui sont formées de quatre voies et de seize jeux. C'est-à-dire qu'un unique jeu inclut quatre lignes correspondant respectivement à quatre
voies.
De façon davantage spécifique, le réseau d'étiquettes 560_0 et le réseau de données 580_0 de l'unité de mémoire cache 0 502 sont constitués par seize jeux au total, du jeu 0 au jeu 15, chacun des jeux incluant quatre voies au total, de la voie 0 à la voie 3. Chacune des lignes du réseau d'étiquettes 560_0 correspond aux lignes du réseau de données 580_0. De façon similaire à l'unité de mémoire cache 0 502, l'unité de mémoire cache 1 504, l'unité de mémoire cache 2 506 et l'unité de mémoire cache 3 508 sont également constituées chacune par seize jeux au total, l'unité 1 504 étant constituée par les jeux qui vont du jeu 16 au jeu 31, l'unité 2 506 étant constituée par les jeux qui vont du jeu 32 au jeu 47 et l'unité 3 508 étant constituée par les jeux qui vont du jeu 48 au jeu 63. En outre, chacune des unités de mémoire cache 504 à 508 inclut le réseau d'étiquettes 560_y (y = 1, 2 ou 3) et le réseau de données 580_y (y = 1, 2 ou 3) constitués par les seize jeux comme
mentionné ci-avant. La figure 6 est un schéma qui illustre un registre d'adresse de mémoire
principale 410 permettant d'accéder à une mémoire cache comportant quatre unités, quatre voies et seize jeux, conformément à un mode de réalisation préféré de la présente invention. Par comparaison avec le registre d'adresse de mémoire principale classique 110 qui est représenté sur la figure 1, les bits de sélection de jeu connus ADDR 4-9 sont divisés selon des bits de sélection de jeu ADDR 4-7 et des bits de sélection d'unité ADDR 8-9 selon le mode de réalisation préféré de la présente invention. Les quatre unités de mémoire cache 502 à 508 sont activées de façon sélective au moyen des bits de sélection d'unité
ADDR 8-9.
La figure 7 est un schéma fonctionnel qui représente la structure détaillée de la mémoire cache, conformément au mode de réalisation préféré de la présente invention. La mémoire cache 500 inclut un décodeur de sélection d'unité 510 qui génère des signaux de sélection d'unité pour sélectionner l'une des unités de mémoire cache 502 à 508 en réponse aux bits de sélection d'unité ADDR 8-9 de l'adresse de mémoire principale. Les unités de mémoire cache 502 à 508 fonctionnent lorsque le signal de sélection d'unité appliqué par l'intermédiaire d'une borne de sélection de puce CS est dans un état d'activation et ne fonctionnent pas lorsque le signal est dans un état d'inactivation. Par conséquent, seulement une unité de mémoire cache qui correspond aux bits de sélection d'unité ADDR 8-9 des quatre unités de mémoire cache 502 à 508 est dans un mode de fonctionnement tandis que les trois unités de mémoire cache restantes ne fonctionnent pas. Puisque les unités de mémoire cache 502 à 508 présentent toutes la même structure de circuit et le même fonctionnement, seulement l'unité de mémoire cache 0 502 sera décrite en détail ci-après
afin d'éviter toute description redondante de l'invention.
L'unité de mémoire cache 0 502 inclut un registre 520, des décodeurs de sélection de jeu 530, un décodeur de sélection de voie 540_0 à 540_15, un registre tampon 550, le réseau d'étiquettes 560_0, une unité de détection de succès de voie et de pilotage de ligne de mot
570, le réseau de données 580_0 et un multiplexeur 590.
Le registre 520 est constitué par 6 bits de registre pour stocker les bits d'adresse de sélection de jeu ADDR 4-7 de l'adresse de mémoire principale et par 2 bits de données de sélection de voie WAYSEL[1:0] appliqués de façon externe par rapport à la mémoire cache. Le décodeur de sélection de jeu 530 génère des signaux de sélection de jeu SO à S15 afin de sélectionner l'un des jeux en décodant
les bits d'adresse de jeu ADDR 4-7 contenus dans le registre 520.
Chacun des décodeurs de sélection de voie 540_0 à 540_15 correspond à l'un des jeux SET0 à SET15 du réseau d'étiquettes 560_0 est validé en réponse au signal de sélection de jeu lui correspondant qui est appliqué depuis le décodeur de sélection de jeu 530. Le décodeur de sélection de voie validé 540i (i = 0, 1,... ou 15) génère un signal de sélection de voie Wi0 à Wi3 (i = 0, 1,... ou 15) afin de sélectionner l'ensemble des quatre voies dans un unique jeu en réponse à un signal de mode MODE appliqué de façon externe par rapport à la mémoire cache ou afin de sélectionner une unique voie qui correspond aux données de sélection de voie WAYSEL[1:0]. Le signal de mode MODE indique un mode lecture ou un mode écriture. Dans le mode lecture, le décodeur de sélection de voie validé 540i (i = 0,1,... ou 15) génère des signaux de sélection de voie pour sélectionner l'ensemble des quatre voies dans le jeu sélectionné. Dans le mode écriture, le décodeur de sélection de voie 540i génère des signaux de sélection de voie pour sélectionner l'une des quatre voies localisées dans le jeu correspondant en réponse à l'adresse de sélection de voie. Dans le mode lecture, les quatre voies dans le jeu sélectionné doivent toutes être sélectionnées afin de déterminer si oui ou non il y a une voie qui stocke la même étiquette à l'aide des bits d'adresse d'étiquette ADDR 10-31. Dans le mode écriture, seulement une unique voie, qui correspond aux données de sélection de voie WAYSEL[1:0] appliquées de façon externe, doit être sélectionnée afin de stocker l'étiquette dans la voie. L'opération d'écriture de la mémoire cache est omise puisque son fonctionnement
peut être pleinement compris par l'homme de l'art.
Pendant le mode lecture, le réseau d'étiquettes 560_0 compare des façons de déterminer si oui ou non l'une des voies sélectionnées stocke l'étiquette qui correspond aux bits d'adresse d'étiquette ADDR -31 et active la ligne de correspondance qui est connectée à la voie à un niveau haut. Le schéma de circuit détaillé du réseau d'étiquettes
560_0 est représenté sur la figure 8.
Par report à la figure 8, le réseau d'étiquettes 560_0 inclut: un réseau de cellules de mémoire adressable par contenu (CAM) agencées selon des rangées et des colonnes; des paires de première et seconde lignes de bit BL0/BLB0 à BL21/BLB21; 64 lignes de correspondance ML00 à ML03... et ML150 à ML153 correspondant aux rangées (qui ne sont pas toutes représentées sur la figure 8); des transistors de précharge 700 à 7153 respectivement connectés à une extrémité des lignes de correspondance pour précharger la ligne de correspondance connectée à une tension d'alimentation en réponse à un signal de commande de précharge; 64 lignes de masse GL00 à GL03... et GL150 à GL153 qui sont agencées parallèlement aux lignes de correspondance; et des transistors de décharge 800 à 8153 respectivement connectés à une extrémité des lignes de masse pour décharger une ligne de masse correspondante jusqu'à une tension de
masse en réponse à un signal de sélection de voie correspondant.
Les premières lignes de bit BL0 à BL21 transfèrent les bits d'adresse d'étiquette ADDR 10-31 contenus dans le registre tampon 550 jusqu'à une extrémité des cellules CAM et les secondes lignes de bit BLB0 à BLB21 transfèrent les bits complémentaires par rapport aux bits d'adresse d'étiquette ADDR 10-31 jusqu'à l'autre extrémité des cellules CAM. Dans le contexte de l'illustration, la cellule CAM C00_0 sera maintenant décrite. La cellule CAM C000 inclut des transistors NMOS 602 et 610 à 616 ainsi qu'un moyen de verrouillage ou bascule 604. Les transistors NMOS 602 et 610 incluent des voies de courant qui sont respectivement connectées entre la première ligne de bit BL0 et un premier noeud N1 et la seconde ligne de bit BLB0 et un second noeud N2 et des grilles qui sont couplées à une ligne de mot d'étiquette TWL00. Les transistors NMOS 602 et 610 et la ligne de mot d'étiquette TWL00 sont des éléments nécessaires pour écrire les données dans le moyen de verrouillage 604. Les voies de courant des transistors NMOS 612 et 614 sont séquentiellement formées entre la première ligne de bit BL0 et la seconde ligne de bit BLB0 et leurs grilles sont respectivement couplées au second noeud N2 et au premier noeud N1. La voie de courant du transistor NMOS 616 est formée entre la ligne de correspondance ML00 et la ligne de masse GL00 et la grille afférente est couplée à un noeud de connexion N3 en relation avec les transistors NMOS 612 et 614. Du fait que les cellules CAM restantes de la figure 8 présentent la même structure et le même fonctionnement que la cellule
CAM C00Q0, une description redondante des cellules CAM restantes est
omise ici par souci de brièveté.
La figure 10 est un schéma de cadencement qui illustre la mémoire cache dans le mode lecture conformément à un mode de
réalisation préféré de la présente invention.
Par report à la figure 8 et à la figure 10, dans un mode précharge, lorsque le signal de précharge PRE est activé à un niveau bas, les lignes de correspondance ML00 à ML153 sont préchargées à la tension d'alimentation par les transistors de précharge 700 à 7153 qui sont activés ou rendu passants. En continu, I'un de seize jeux est sélectionné par les signaux de sélection de jeu SO à S15 qui sont appliqués depuis le décodeur de sélection de jeu 530 qui est représenté sur la figure 7. Le décodeur de sélection de voie 540_i (i = 0, 1,... ou ) correspondant au jeu sélectionné génère le signal de sélection de voie qui est activé au niveau haut afin de sélectionner l'ensemble des quatre voies. Dans le contexte de l'illustration, on suppose que les voies
WAY0 à WAY3 du jeu 0 sont toutes sélectionnées dans le mode lecture.
Dans ce cas, les signaux de sélection de voie W00 à W03 rendent les transistors de décharge 800 à 803 activés ou passants de telle sorte que les lignes de correspondance ML00 à ML03 sont connectées à la tension de masse au moyen de la ligne de masse correspondante GLOj (j = 0, 1, 2 ou 3) et du transistor de décharge 80k (k = 0, 1, 2 ou 3) lorsque le transistor NMOS 616 est rendu passant ou activé. Lorsque les signaux de sélection de voie Wi0 à Wi3 (i = 1, 2... et 15) de jeux non sélectionnés SET1 à SET15 sont tous inactives au niveau bas, tous les transistors de décharge correspondants 811 à 8153 maintiennent ou
conservent l'état désactivé ou bloqué.
Dans le mode évaluation, lorsque les bits d'adresse d'étiquette ADDR 1031 et les bits complémentaires sont appliqués par l'intermédiaire des première et seconde lignes de bit BL0/BLB0 à BL21/BLB21, le transistor NMOS 616 est rendu passant ou activé ou est rendu bloqué ou désactivé en fonction d'une valeur binaire qui est stockée dans le moyen de verrouillage 604. C'est-à-dire que lorsque les paires de bits d'adresse complémentaires appliquées par l'intermédiaire des première et seconde lignes de bit BL0/BLB0 à BL21/BLB21 correspondent à la valeur binaire qui est verrouillée au niveau des deux noeuds N1 et N2 du moyen de verrouillage 604, le noeud N3 diminue jusqu'au niveau bas de telle sorte que le transistor NMOS 616 est désactivé ou rendu bloqué et la ligne de correspondance ML00 maintient le niveau haut préchargé. Lorsque les paires de bits d'adresse complémentaires ne correspondent pas à la valeur binaire qui est verrouillée dans les noeuds N1 et N2, le noeud N3 passe au niveau haut
de telle sorte que le transistor NMOS 616 est rendu passant ou activé.
Lorsque le transistor NMOS 616 est rendu passant ou activé, la ligne de correspondance ML00 est déchargée jusqu'à la tension de masse au moyen du transistor NMOS 616, de la ligne de masse GL00 et du
transistor de décharge 800.
De cette manière, la ligne de correspondance ML maintient le niveau de tension d'alimentation préchargé lorsque 22 bits de valeur binaire qui sont stockés dans les cellules CAM qui sont connectées à une ligne de correspondance sont complètement identiques aux bits d'adresse d'étiquette ADDR 10-31. Cependant, même si un unique bit n'est pas identique, alors la ligne de correspondance ML est déchargée par l'intermédiaire de la ligne de masse. C'est-à-dire qu'un succès de cache (HIT) est représenté par le fait que la ligne de correspondance maintient le niveau de tension d'alimentation préchargé après le mode évaluation tandis qu'un échec de cache (MISS) est représenté par le fait que la ligne de correspondance est déchargée jusqu'au niveau de tension de masse. Comme décrit ci-avant, quatre lignes de masse qui sont respectivement connectées à quatre voies localisées dans le jeu sélectionné au moyen des bits d'adresse de sélection de jeu ADDR 6-9 sont connectées à la tension de masse au moyen des transistors de décharge. Dans le même temps, 60 lignes de masse (à l'exception des quatre lignes de masse) restent flottantes. Par conséquent, seulement les quatre lignes de correspondance qui sont connectées aux quatre lignes de masse sélectionnées sont déchargées. Par comparaison avec la mémoire cache classique dans laquelle les lignes de correspondance de quatre voies et de 64 jeux sont toutes déchargées afin de déterminer le succès/échec (HIT/MISS) de l'accès au cache, selon la présente invention, des lignes de correspondance selon des nombres remarquablement petits sont déchargées afin de déterminer le HIT/MISS. Il s'ensuit que la puissance qui est consommée lors de la détermination du HIT/MISS est significativement diminuée. En outre, si la mémoire cache de la présente invention inclut quatre unités 502 à 508, seulement celle qui correspond aux bits d'adresse de sélection d'unité ADDR 8-9 est activée de telle sorte que seulement quatre lignes
sont déchargées comme décrit ci-avant.
La figure 9 est un schéma de circuit détaillé qui représente l'unité de détection de succès de voie et de pilotage de ligne de mot 570 qui est représentée sur la figure 7. L'unité de détection de succès de voie et de pilotage de ligne de mot 570 est constituée par un circuit de pilotage
de ligne de mot 572 et par un circuit de détection de succès de voie 574.
Le circuit de pilotage de ligne de mot 572 inclut 64 portes ET 900_0 à 900_3... et 915_0 à 915_3 qui correspondent respectivement aux lignes de correspondance ML00 à ML153 du réseau d'étiquettes 560. Les portes ET 900_0 à 900_3... et 915_0 à 915_3 réalisent une opération ET en acceptant le niveau de tension de la ligne de correspondance correspondante ML00, ML01... ou ML153, le signal de sélection de voie correspondant W00, W01... ou W153 et un signal de retard DELAY ou RETARD. Le signal de retard DELAY représente un temps de retard qui est induit lorsque la cellule CAM la plus éloignée par rapport à la porte d'extrémité décharge la ligne de correspondance connectée de manière
à être en échec de correspondance avec les bits d'adresse d'étiquette.
Les bornes de sortie des portes ET 900_0 à 900_3... et 915_0 à 915_3 sont couplées aux lignes de mot DWL00 à DWL03 et DWL150 à
DWL153 du réseau de données 580.
Par report à nouveau à la figure 7, le réseau de données 580 présente une structure de quatre mots connectée à une unique ligne de mot. Le réseau de données 580 produit des données de quatre mots qui sont stockées dans les cellules de mémoire qui sont connectées à la ligne de mot qui est activée au niveau haut sur le multiplexeur 590. Le multiplexeur 590 applique de façon sélective un unique mot qui correspond aux bits d'adresse de sélection de mot ADDR 2-3 à partir de quatre mots appliqués depuis le réseau de données 580. Il est possible d'utiliser un autre multiplexeur dans la borne de sortie du multiplexeur 590 afin d'émettre en sortie de façon sélective un octet qui correspond
aux bits d'adresse de sélection d'octet ADDR 0-1.
Par report à nouveau à la figure 9, le circuit de détection de succès de voie 574 est connecté à quatre lignes de détection SL0 à SL3 qui correspondent respectivement à quatre voies, à des transistors PMOS 574_0 à 574_3 pour précharger les lignes de détection respectives à la tension de masse et aux lignes de détection, et il est constitué par des transistors NMOS MN00 à MN03, MN10 à MN13... et MN150 à MN153 qui déchargent la ligne de détection connectée à la tension de masse lorsque l'une des lignes de mot dans la voie
correspondant à la ligne de détection est activée.
On suppose que l'étiquette qui est stockée dans la voie 1 est identique aux bits d'adresse d'étiquette ADDR 10-31 dans l'état d'activation de l'ensemble des signaux de sélection de voie WOO à W03 au niveau haut, comme appliqué depuis le décodeur de sélection de voie 540_0. Dans ce cas, puisque la ligne de correspondance ML01 qui est connectée à la voie 1 maintient ou conserve le niveau de précharge, la porte ET 900_1 active la ligne de mot de données DWL01 lui correspondant au niveau haut après que le signal complémentaire de retard est activé au niveau haut. Puisque les lignes de correspondance ML00, ML02 et ML03 qui sont connectées aux autres voies sont déchargées jusqu'à la tension de masse, toutes les lignes de mot DWL00, DWL02, DWL03, DWL10 à DWL13... et DWL151 à DWL153 qui sont connectées aux bornes de sortie des portes d'extrémité 900_0, 900_2, 900_3,... 915_0 à 915_3 maintiennent l'état d'inactivation au niveau bas. Ici, le transistor NMOS MN01 qui est connecté à la ligne de mot activée DWL01 parmi les transistors NMOS construits dans le circuit de détection de succès de voie 574 est rendu passant ou activé de telle sorte que la ligne de détection SL1 est déchargée au niveau bas. Par conséquent, seulement le signal de détection de succès de voie HWB1 qui correspond à la voie 1 pris parmi les signaux de détection de succès de voie HWB0 à HWB3 est activé au niveau bas et les signaux de détection de succès de voie HWB0, HWB2 et HWB3
maintiennent l'état d'inactivation au niveau haut.
Conformément à la présente invention, comme mentionné ci-
avant, dans l'état dans lequel des unités de mémoire cache sont sélectionnées par les bits d'adresse de sélection d'unité d'activation, seulement quatre lignes de masse, respectivement connectées à quatre voies localisées dans le jeu sélectionné au moyen des bits d'adresse de sélection de jeu, sont connectées à la tension de masse au moyen des transistors de décharge. Dans le même temps, 60 lignes de masse à l'exception des quatre lignes de masse maintiennent un état flottant. Par conséquent, seulement quatre lignes de correspondance qui sont
connectées aux quatre lignes de masse sélectionnées sont déchargées.
Il s'ensuit que la consommation de puissance est de loin davantage diminuée par rapport à celle de l'art classique. En outre, la connexion en parallèle des transistors qui sont connectés à la ligne de
correspondance permet d'améliorer la vitesse de fonctionnement.
Bien que les modes de réalisation illustratifs aient été décrits ici par report aux dessins annexés, il est bien entendu que la présente invention n'est pas limitée à ces modes de réalisation précis et que diverses autres variantes et modifications peuvent être apportées par l'homme de l'art sans que l'on s'écarte ni du cadre, ni de l'esprit de l'invention. Toutes ces variantes et modifications sont destinées à être incluses à l'intérieur du cadre de l'invention telle que définie par les
revendications annexées.

Claims (20)

REVENDICATIONS
1. Mémoire cache comportant K voies et N jeux, la mémoire cache étant caractérisée en ce qu'elle comprend: M (M< N) unités de mémoire cache (502, 504, 506, 508); et un décodeur de sélection d'unité (510) adapté pour générer des signaux de sélection d'unité afin d'activer l'une des M unités de mémoire cache à un instant donné en réponse à une adresse de sélection d'unité, dans laquelle chacune des unités de mémoire cache comprend: un réseau d'étiquettes (560_y) incluant N/M jeux, chacun des N/M jeux étant constitué par les K voies et comportant des lignes de correspondance (ML00 à ML153) respectivement connectées aux K voies; un réseau de données (580_y) incluant les N/M jeux, chacun des N/M jeux inclus dans le réseau de données étant constitué par les K voies et comportant des lignes de correspondance (ML00 à ML153) respectivement connectées aux K voies; un décodeur de sélection de jeu (530) adapté pour générer des signaux de sélection de jeu afin de sélectionner l'un des N/M jeux en réponse à une adresse de sélection de jeu; et une pluralité de décodeurs de sélection de voie (540_0 à 540_15) dont chacun est adapté pour être validé par un signal de sélection de jeu lui correspondant et pour générer des signaux de sélection de voie afin de sélectionner les K voies dans l'un correspondant des N/M jeux en réponse à un signal de mode et à une adresse de sélection de voie, dans laquelle le réseau d'étiquettes (560_y) est en outre adapté pour comparer des adresses d'étiquette contenues dans les K voies sélectionnées par un signal de sélection de voie à une adresse d'étiquette externe et pour activer seulement une ligne de correspondance qui est couplée à une voie parmi les K voies sélectionnées par le signal de sélection de voie à un premier niveau de tension lorsqu'une adresse d'étiquette contenue dans la voie et l'adresse
d'étiquette externe sont identiques.
2. Mémoire cache selon la revendication 1, caractérisée en ce que le réseau d'étiquettes (560_y) comprend: une pluralité de cellules de mémoire adressable par contenu (CAM) (C00_0 à C15_21) agencées selon une pluralité de rangées et de colonnes; une pluralité de paires de première et seconde lignes de bit (BL0/BLB0 à BL21/BLB21), chacune de la pluralité de paires étant adaptée pour transférer des adresses d'étiquette externes aux cellules CAM dans l'une de la pluralité de colonnes; et des lignes de masse (GL00 à GL153) agencées en parallèle aux
lignes de correspondance (ML00 à ML153).
3. Mémoire cache selon la revendication 2, caractérisée en ce que chacune de la pluralité de cellules CAM (C00_0 à C15_21) comprend: une unité de précharge (700 à 7153) adaptée pour précharger une ligne de correspondance connectée au premier niveau de tension en réponse à un signal de commande de précharge; une unité de décharge (800 à 8153) adaptée pour décharger une ligne de masse connectée à un second niveau de tension en réponse à un signal de sélection de voie donné produit depuis l'un correspondant de la pluralité de décodeurs de sélection de voie (540_0 à 540_15); une unité de commutation (602 à 616) adaptée pour connecter de façon sélective la ligne de correspondance connectée avec la ligne de masse connectée lorsqu'une adresse d'étiquette stockée n'est pas identique à une adresse d'étiquette externe donnée produite par I'intermédiaire de l'une de la pluralité de paires de première et seconde
lignes de bits (BL0/BLB0 à BL21/BLB21).
4. Mémoire cache selon la revendication 3, caractérisée en ce que chacune de la pluralité de cellules CAM (C00_0 à C15_21) comprend en outre: une unité de verrouillage (604) adaptée pour stocker une valeur binaire en tant que différence de potentiel entre des premier et second noeuds (N1, N2); et des premier et second transistors (612, 614) comportant une voie de courant qui est formée entre l'une de la pluralité de paires de première et seconde lignes de bit, et une grille couplée aux premier et
second noeuds (N1, N2), de façon respective.
5. Mémoire cache selon la revendication 4, caractérisée en ce
que l'unité de commutation comprend un transistor métal-oxyde-
semiconducteur à canal N (NMOS) (616) comportant une voie de courant qui est formée entre la ligne de correspondance connectée et la ligne de masse connectée, et une grille qui est couplée à un noeud de connexion (N3) des voies de courant des premier et second transistors
(612, 614).
6. Mémoire cache selon la revendication 3, caractérisée en ce
que l'unité de précharge (700 à 7153) comprend un transistor métal-
oxyde-semiconducteur à canal P (PMOS) comportant une voie de courant qui est formée entre une tension d'alimentation et la ligne de correspondance connectée, et une grille qui est couplée au signal de
commande de précharge.
7. Mémoire cache selon la revendication 3, caractérisée en ce que l'unité de décharge (800 à 8153) comprend un transistor NMOS qui comporte une voie de courant qui est formée entre la ligne de masse connectée et une tension de masse, et une grille qui est couplée au signal de sélection de voie donné produit à partir de l'un correspondant
de la pluralité de décodeurs de sélection de voie (540_0 à 540_15).
8. Mémoire cache selon la revendication 1, caractérisée en ce que le réseau de données (580_y) comprend en outre des lignes de mot (DWL0 à DWL63) qui sont respectivement connectées entre les K voies du réseau de données et les lignes de correspondance (ML00 à
ML1 53).
9. Mémoire cache selon la revendication 8, caractérisée en ce que la mémoire cache (500) comprend en outre un circuit de pilotage de ligne de mot (572) qui est adapté pour activer une ligne de mot qui est connectée à la ligne de correspondance qui est couplée à la voie lorsque le signal de sélection de voie, la ligne de correspondance couplée à la voie et un signal complémentaire de retard correspondant à un temps de retard de fonctionnement dans le réseau d'étiquettes
(560_y) sont tous activés.
10. Mémoire cache selon la revendication 8, caractérisée en ce que la mémoire cache (500) comprend en outre un circuit de détection de succès de voie (574) adapté pour générer des signaux de détection de succès de voie correspondant respectivement aux K voies, les signaux de détection de succès de voie correspondant à un état
d'activation des lignes de mot (DWL0 à DWL63).
11. Mémoire cache selon la revendication 10, caractérisée en ce que le circuit de détection de succès de voie (574) comprend: des lignes de détection qui correspondent respectivement aux K voies; une pluralité d'unités de précharge de ligne de détection (574_0 à 574_3) qui sont adaptées pour précharger les lignes de détection au premier niveau de tension; et une pluralité d'unités de décharge de ligne de détection (MN00 à MN153) qui sont adaptées pour décharger les lignes de détection jusqu'à un second niveau de tension lorsqu'au moins une ligne de mot connectée à une ligne de détection lui correspondant est activée, dans laquelle les niveaux de tension des lignes de détection sont respectivement constitués par les signaux de détection de succès de
voie.
12. Mémoire cache selon la revendication 11, caractérisée en ce que l'unité de décharge de ligne de détection comprend N/M transistors de décharge (MN00 à MN153) dont chacun comporte une voie de courant qui est formée entre une ligne de détection connectée et le second niveau de tension, et une grille qui est commandée par une ligne de mot donnée d'une voie donnée correspondant à la ligne de
détection connectée.
13. Mémoire cache selon la revendication 1, caractérisée en ce que chacun de la pluralité de décodeurs de sélection de voie (540_0 à 540_15) est adapté pour générer un signal de sélection de voie donné afin de sélectionner toutes les K voies dans un jeu donné lorsque le signal de mode correspond à un mode lecture et afin de sélectionner I'une des K voies dans le jeu donné sur la base d'une adresse de sélection de voie donnée lorsque le signal de mode correspond à un
mode écriture.
14. Mémoire cache selon la revendication 3, caractérisée en ce que le réseau d'étiquettes (560_y) comprend en outre une pluralité de lignes de mot d'étiquette (TWL00 à TWL153) qui correspondent
respectivement aux K voies dans les N/M jeux.
15. Mémoire cache selon la revendication 4, caractérisée en ce que la cellule CAM comprend en outre: un quatrième transistor (602) qui comporte une voie de courant qui est formée entre le premier noeud (N1) et une première ligne de bit (BL0) de l'une de la pluralité de paires de première et seconde lignes de bit, et une grille qui est couplée à l'une de la pluralité de lignes de mot d'étiquette (TWL00 à TWL153); et un cinquième transistor (610) qui comporte une voie de courant qui est formée entre le second noeud (N2) et une seconde ligne de bit (BLB0) de l'une de la pluralité de paires de première et seconde lignes de bit, et une grille qui est couplée à l'une de la pluralité de lignes de
mot d'étiquette (TWL00 à TWL153).
16. Mémoire cache comportant K voies et N jeux, la mémoire cache étant caractérisée en ce qu'elle comprend: M (M< N) unités de mémoire cache (502, 504, 506, 508); et un décodeur de sélection d'unité (510) adapté pour activer l'une des M unités de mémoire cache à un instant donné en réponse à une adresse de sélection d'unité, dans laquelle chacune des unités de mémoire cache comprend un réseau d'étiquettes (560 y) incluant N/M jeux, chacun des N/M jeux étant constitué par les K voies; un réseau de données (580_y) incluant les N/M jeux, chacun des N/M jeux du réseau de données étant constitué par les K voies; des lignes de correspondance (ML00 à ML153) respectivement couplées aux K voies du réseau d'étiquettes (560_y) et du réseau de données (580_y); un décodeur de sélection de jeu (530) adapté pour sélectionner l'un des N/M jeux en réponse à une adresse de sélection de jeu; et une pluralité de décodeurs de sélection de voie (540_0 à 540_15) dont chacun est adapté pour sélectionner les K voies dans l'un des N/M jeux sélectionné par le décodeur de sélecteur de jeu, dans laquelle le réseau d'étiquettes (560_y) est en outre adapté pour comparer des adresses d'étiquette contenues dans les K voies sélectionnées par le décodeur de sélection de jeu à une adresse d'étiquette externe et pour activer seulement une ligne de correspondance qui est couplée à une voie parmi les K voies sélectionnées par le décodeur de sélection de jeu à un premier niveau de tension lorsqu'une adresse d'étiquette contenue dans la voie et
l'adresse d'étiquette externe sont identiques.
17. Mémoire cache selon la revendication 16, caractérisée en ce que le réseau d'étiquettes (560_y) comprend: une pluralité de cellules de mémoire adressable par contenu (CAM) (C00_0 à C15_21) agencées selon une pluralité de rangées et de colonnes; une pluralité de paires de première et seconde lignes de bit (BL0/BLB0 à BL21/BLB21), chacune de la pluralité de paires étant adaptée pour transférer des adresses d'étiquette externes aux cellules CAM dans l'une de la pluralité de colonnes; et des lignes de masse (GL00 à GL153) agencées en parallèle aux
lignes de correspondance (ML00 à ML153).
18. Mémoire cache selon la revendication 17, caractérisée en ce que chacun de la pluralité de décodeurs de sélection de voie (540_0 à 540_15) est en outre adapté pour générer des signaux de sélection de voie afin de sélectionner les K voies dans les N/M jeux et chacune de la pluralité de cellules CAM comprend: une unité de précharge (700 à 7153) adaptée pour précharger une ligne de correspondance connectée au premier niveau de tension en réponse à un signal de commande de précharge; une unité de décharge (800 à 8153) adaptée pour décharger une ligne de masse connectée à un second niveau de tension en réponse à un signal de sélection de voie produit depuis l'un correspondant de la pluralité de décodeurs de sélection de voie (540_0 à 540 _15); une unité de commutation (602 à 616) adaptée pour connecter de façon sélective la ligne de correspondance connectée avec la ligne de masse connectée lorsqu'une adresse d'étiquette stockée n'est pas identique à une adresse d'étiquette externe donnée produite par l'intermédiaire de l'une de la pluralité de paires de première et seconde
lignes de bits (BL0/BLB0 à BL21/BLB21).
19. Mémoire cache selon la revendication 18, caractérisée en ce que chacune de la pluralité de cellules CAM (C00_0 à C15_21) comprend en outre: une unité de verrouillage (604) adaptée pour stocker une valeur binaire en tant que différence de potentiel entre des premier et second noeuds (N1, N2); et des premier et second transistors (612, 614) comportant une voie de courant qui est formée entre l'une de la pluralité de paires de première et seconde lignes de bit, et une grille couplée aux premier et
second noeuds (N1, N2), de façon respective.
20. Mémoire cache selon la revendication 19, caractérisée en
ce que l'unité de commutation comprend un transistor métal-oxyde-
semiconducteur à canal N (NMOS) (616) comportant une voie de courant qui est formée entre la ligne de correspondance connectée et la ligne de masse connectée, et une grille qui est couplée à un noeud de connexion (N3) des voies de courant des premier et second transistors
(612, 614).
FR0103383A 2000-03-13 2001-03-13 Memoire cache associative Expired - Lifetime FR2807176B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0012473A KR100373849B1 (ko) 2000-03-13 2000-03-13 어소시어티브 캐시 메모리

Publications (2)

Publication Number Publication Date
FR2807176A1 true FR2807176A1 (fr) 2001-10-05
FR2807176B1 FR2807176B1 (fr) 2005-08-19

Family

ID=19654576

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0103383A Expired - Lifetime FR2807176B1 (fr) 2000-03-13 2001-03-13 Memoire cache associative

Country Status (6)

Country Link
US (1) US6317351B2 (fr)
JP (1) JP3850669B2 (fr)
KR (1) KR100373849B1 (fr)
FR (1) FR2807176B1 (fr)
GB (1) GB2366046B (fr)
TW (1) TW510990B (fr)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7064971B2 (en) * 2002-01-25 2006-06-20 Jeng-Jye Shau Methods for saving power and area for content addressable memory devices
KR100455392B1 (ko) * 2002-08-10 2004-11-06 삼성전자주식회사 동작속도를 향상시키고 칩 면적을 감소시킬 수 있는워드라인 드라이버 회로를 구비하는 캐쉬 메모리장치 및이의 워드라인 구동방법
US20040199723A1 (en) * 2003-04-03 2004-10-07 Shelor Charles F. Low-power cache and method for operating same
US7177981B2 (en) * 2003-05-09 2007-02-13 Via-Cyrix, Inc. Method and system for cache power reduction
US7200060B2 (en) * 2003-07-15 2007-04-03 Intel Corporation Memory driver architecture and associated methods
JP4036206B2 (ja) * 2004-03-31 2008-01-23 日本電気株式会社 セットアソシアティブキャッシュシステム及びキャッシュメモリの制御方法
US7996619B2 (en) * 2004-04-22 2011-08-09 Intel Corporation K-way direct mapped cache
US7054184B2 (en) * 2004-05-12 2006-05-30 International Business Machines Corporation Cache late select circuit
US7479289B2 (en) * 2004-07-02 2009-01-20 Medicis Pharmaceutical Corporation Stable cleanser compositions containing sulfur
US20080201528A1 (en) * 2005-04-06 2008-08-21 Mediatek Inc. Memory access systems for configuring ways as cache or directly addressable memory
US7376791B2 (en) * 2005-04-06 2008-05-20 Mediatek Inc. Memory access systems and methods for configuring ways as cache or directly addressable memory
US7620778B2 (en) 2005-05-25 2009-11-17 Qualcomm Incorporated Low power microprocessor cache memory and method of operation
US7536510B1 (en) * 2005-10-03 2009-05-19 Advanced Micro Devices, Inc. Hierarchical MRU policy for data cache
US7467280B2 (en) * 2006-07-05 2008-12-16 International Business Machines Corporation Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache
US7996620B2 (en) * 2007-09-05 2011-08-09 International Business Machines Corporation High performance pseudo dynamic 36 bit compare
US8200999B2 (en) * 2008-08-11 2012-06-12 International Business Machines Corporation Selective power reduction of memory hardware
WO2011049051A1 (fr) * 2009-10-20 2011-04-28 国立大学法人電気通信大学 Mémoire-cache et son procédé de commande
US9396117B2 (en) * 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
US9547358B2 (en) 2012-04-27 2017-01-17 Nvidia Corporation Branch prediction power reduction
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
JP6130758B2 (ja) * 2013-09-06 2017-05-17 株式会社東芝 メモリ制御回路およびキャッシュメモリ
US9600179B2 (en) 2014-07-30 2017-03-21 Arm Limited Access suppression in a memory device
US10282296B2 (en) 2016-12-12 2019-05-07 Intel Corporation Zeroing a cache line
WO2018111228A1 (fr) * 2016-12-12 2018-06-21 Intel Corporation Appareils et procédés d'une architecture de processeur
US11360704B2 (en) 2018-12-21 2022-06-14 Micron Technology, Inc. Multiplexed signal development in a memory device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446685A (en) * 1993-02-23 1995-08-29 Intergraph Corporation Pulsed ground circuit for CAM and PAL memories
US5485418A (en) * 1990-01-16 1996-01-16 Mitsubishi Denki Kabushiki Kaisha Associative memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367653A (en) * 1991-12-26 1994-11-22 International Business Machines Corporation Reconfigurable multi-way associative cache memory
GB9308778D0 (en) * 1993-04-28 1993-06-09 Plessey Semiconductors Ltd Contents addressable memory
US5453958A (en) * 1993-06-11 1995-09-26 Phillips Petroleum Company Method for locating hydrocarbon reservoirs
JP3573782B2 (ja) * 1993-08-31 2004-10-06 川崎マイクロエレクトロニクス株式会社 連想メモリ
US5548742A (en) * 1994-08-11 1996-08-20 Intel Corporation Method and apparatus for combining a direct-mapped cache and a multiple-way cache in a cache memory
US5859791A (en) * 1997-01-09 1999-01-12 Northern Telecom Limited Content addressable memory
US5956746A (en) * 1997-08-13 1999-09-21 Intel Corporation Computer system having tag information in a processor and cache memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485418A (en) * 1990-01-16 1996-01-16 Mitsubishi Denki Kabushiki Kaisha Associative memory
US5446685A (en) * 1993-02-23 1995-08-29 Intergraph Corporation Pulsed ground circuit for CAM and PAL memories

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KO U ET AL: "ENERGY OPTIMIZATION OF MULTILEVEL CACHE ARCHITECTURES FOR RISC AND CISC PROCESSORS", IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, IEEE INC. NEW YORK, US, vol. 6, no. 2, 1 June 1998 (1998-06-01), pages 299 - 308, XP000754163, ISSN: 1063-8210 *

Also Published As

Publication number Publication date
GB2366046A (en) 2002-02-27
KR20010091109A (ko) 2001-10-23
JP3850669B2 (ja) 2006-11-29
US20010026465A1 (en) 2001-10-04
KR100373849B1 (ko) 2003-02-26
TW510990B (en) 2002-11-21
GB0106189D0 (en) 2001-05-02
US6317351B2 (en) 2001-11-13
GB2366046B (en) 2002-10-02
JP2001273193A (ja) 2001-10-05
GB2366046A8 (en) 2002-03-20
FR2807176B1 (fr) 2005-08-19

Similar Documents

Publication Publication Date Title
FR2807176A1 (fr) Memoire cache associative
US6061262A (en) Large-capacity content addressable memory
US6999371B2 (en) Semiconductor memory device capable of reducing power consumption during reading and standby
US6195278B1 (en) Content addressable memory cells and words
US4888772A (en) Testing circuit for random access memory device
US6747885B2 (en) Ternary content addressable memory device
GB2508221A (en) Low power SRAM memory cells
US20130121053A1 (en) Methods and circuits for limiting bit line leakage current in a content addressable memory (cam) device
WO2008144227A1 (fr) Cellule de mémoire vive dynamique à jonction à effet de champ et cellule de mémoire adressable par contenu
FR2650694A1 (fr) Memoire vive pour machine de traitement de donnees
US20070139991A1 (en) Cache hit logic of cache memory and processor chip having the same
US11599306B2 (en) Memory device
KR100470971B1 (ko) 리드 전용 메모리 셀, 이 셀의 프로그램 방법, 이 셀의레이아웃 방법, 및 이 셀을 구비한 리드 전용 메모리 장치
US7206212B1 (en) Content addressable memory (CAM) device with entries having ternary match and range compare functions
WO2015086845A1 (fr) Systeme d&#39;ecriture de donnees dans une mémoire
FR2830973A1 (fr) Dispositif de memoire a contenu adressable
US8520421B2 (en) Semiconductor associative memory device
FR2828758A1 (fr) Procede d&#39;ecriture dans une memoire ram comportant un systeme d&#39;effacement de colonnes
US11398274B2 (en) Pseudo-triple-port SRAM
EP0355917B1 (fr) Unité de mémoire adressable à circuit de sélection d&#39;unité amélioré
JP2640184B2 (ja) 読出専用半導体記憶装置
CN112885392B (zh) 一种存储单元、三值内容寻址存储器以及电子设备
JP2611873B2 (ja) 半導体記憶装置
FR2732133A1 (fr) Detecteur de coherence d&#39;informations contenues dans un circuit integre
US6141235A (en) Stacked cache memory system and method

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 16

PLFP Fee payment

Year of fee payment: 17

PLFP Fee payment

Year of fee payment: 18

PLFP Fee payment

Year of fee payment: 20