FR3043488A1 - - Google Patents

Download PDF

Info

Publication number
FR3043488A1
FR3043488A1 FR1560605A FR1560605A FR3043488A1 FR 3043488 A1 FR3043488 A1 FR 3043488A1 FR 1560605 A FR1560605 A FR 1560605A FR 1560605 A FR1560605 A FR 1560605A FR 3043488 A1 FR3043488 A1 FR 3043488A1
Authority
FR
France
Prior art keywords
cam
transistor
bit line
bll
coupled
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
FR1560605A
Other languages
English (en)
Other versions
FR3043488B1 (fr
Inventor
Navneet Gupta
Adam Makosiej
Costin Anghel
Amara Amara
Olivier Thomas
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.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
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 Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Priority to FR1560605A priority Critical patent/FR3043488B1/fr
Priority to EP16196060.4A priority patent/EP3166110B1/fr
Priority to US15/342,433 priority patent/US9679649B2/en
Publication of FR3043488A1 publication Critical patent/FR3043488A1/fr
Application granted granted Critical
Publication of FR3043488B1 publication Critical patent/FR3043488B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/412Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Static Random-Access Memory (AREA)

Abstract

L'invention concerne une mémoire adressable par contenu (CAM) comprenant au moins une cellule CAM (100) comprenant : des premier et deuxième inverseurs (102, 104) couplés de façon croisée entre des premier et deuxième noeuds de mémorisation (V1, V2) ; un premier transistor (114) couplant le premier noeud de mémorisation (V1) à une ligne de bit (BLL), le premier transistor (114) étant contrôlé par un premier signal de commande (WL1) ; un deuxième transistor (116) couplant le deuxième noeud de mémorisation (V2) à la ligne de bit (BLL), le deuxième transistor (116) étant contrôlé par un deuxième signal de commande (WL2) ; et un circuit de commande (118) adapté à réaliser une opération de lecture CAM en pré-chargeant la ligne de bit (BLL) à un premier niveau de tension, puis en activant sélectivement le premier ou le deuxième transistor sur la base d'un bit de données d'entrée (DIN).

Description

CSM RECONFIGURABIiE
Domaine
La présente description concerne le domaine des mémoires adressables par contenu (CAM) et un procédé pour réaliser une opération de lecture CAM.
Exposé de 11 art antérieur
Une mémoire adressable par contenu (CAM) est un dispositif capable de comparer un mot de données d'entrée à des mots de données mémorisés dans sa matrice mémoire, et de renvoyer une information d'échec à chaque fois qu' un mot dans la mémoire ne concorde pas avec le mot de données d'entrée, et une information de succès à chaque fois qu' un mot dans la mémoire concorde avec le mot de données d'entrée.
Il est en général souhaitable que les dispositifs CAM soient capables d'opérations rapides, puisque pour chaque opération de lecture CAM tous les mots se trouvant dans la matrice mémoire sont en général accédés pour générer une valeup de succès ou d'échec pour chaque mot de la matrice. Pour permettre un fonctionnement rapide, la comparaison des bits d'un mot d'entrée avec les bits mémorisés dans la CAM est réalisée dans chaque cellule mémoire de la CAM. Cela entraîne que les cellules mémoires d'une CAM sont plus complexes et plus grosses que celles d'une cellule SRAM (mémoire statique à accès aléatoire) classique.
Dans certaines applications, la fonction CAM n'est pas toujours nécessaire, et il existe donc un besoin dans la technique pour une CAM qui puisse être entièrement ou partiellement utilisée comme SRAM pendant des périodes où la fonction CAM n'est pas requise. En outre, il existe un besoin dans la technique pour une cellule CAM relativement compacte. Résumé
Un objet de modes de réalisation de la présente description est de résoudre au moins partiellement un ou plusieurs besoins de l'art antérieur.
Selon un aspect, on prévoit une mémoire adressable par contenu (CAM) comprenant au moins une cellule CAM comprenant : des premier et deuxième inverseurs couplés de façon croisée entre des premier et deuxième noeuds de mémorisation ; un premier transistor couplant le premier noeud de mémorisation à une ligne de bit, le premier transistor étant contrôlé par un premier signal de commande ; un deuxième transistor couplant le deuxième noeud de mémorisation à la ligne de bit, le deuxième transistor étant contrôlé par un deuxième signal de commande ; et un circuit de commande adapté à réaliser une opération de lecture CAM en pré-chargeant la ligne de bit à un premier niveau de tension, puis en activant sélectivement le premier ou le deuxième transistor sur la base d'un bit de données d'entrée.
Selon un mode de réalisation, la CAM comprend en outre un circuit de détection adapté à détecter un succès ou un échec de CAM en fonction du niveau de tension sur la ligne de bit, ou sur un premier rail de tension d'alimentation des premier et deuxième inverseurs, suite à l'activation du premier ou du deuxième transistor.
Selon un mode de réalisation, le circuit de détection est couplé à la ligne de bit.
Selon un mode de réalisation, le circuit de détection est couplé au premier rail de tension d'alimentation des premier et deuxième inverseurs.
Selon un mode de réalisation, la CAM comprend en outre une pluralité desdites cellules CAM couplée à la ligne de bit, la pluralité de cellules CAM formant un mot CAM, et les bits de données d'entrée de la pluralité de cellules CAM forment un mot, et le circuit de détection est adapté à détecter un succès ou un échec de mot en fonction du niveau de tension sur la ligne de bit, ou sur le premier rail de tension d'alimentation, suite à l'activation du premier ou du deuxième transistor.
Selon un mode de réalisation, le circuit de détection est adapté à détecter un succès en détectant un changement de tension inférieur à un premier seuil, et à détecter un échec en détectant un changement de tension supérieur au premier seuil.
Selon un mode de réalisation, le circuit de commande est en outre adapté à réaliser une opération de lecture SRAM d'une valeur de données mémorisée sur les premier et deuxième noeuds de mémorisation en pré-chargeant la ligne de bit au premier niveau de tension ou à un autre de niveau de tension, et en activant le premier transistor.
Selon un mode de réalisation, le circuit de commande est en outre adapté à réaliser une opération d'écriture sur les premier et deuxième noeuds de mémorisation de ladite au moins une cellule CAM en couplant la ligne de bit au premier niveau de tension ou à un autre niveau de tension tout en activant sélectivement le premier ou le deuxième transistor sur la base d'un bit de données à écrire dans la cellule CAM.
Selon un mode de réalisation, la ligne de bit comprend des première et deuxième portions, le premier transistor étant couplé à la première portion et le deuxième transistor étant couplé à la deuxième portion, les première et deuxième portions étant couplées entre elles par un autre transistor, le circuit de commande étant adapté à réaliser une opération d'écriture dans ladite au moins une cellule mémoire en désactivant l'autre’ transistor et en appliquant des tensions indépendantes aux première et deuxième portions.
Selon un mode de réalisation, les premier et deuxième inverseurs de ladite au moins une cellule CAM sont couplés entre un premier rail de tension d'alimentation au premier niveau de tension et un deuxième rail de tension d'alimentation à un deuxième niveau de tension supérieur à la masse et inférieur au premier niveau de tension, et, pendant une opération d'écriture dans ladite au moins une cellule CAM, l'un des premier et deuxième transistors est activé par une tension inférieure à la première tension d'alimentation.
Selon un mode de réalisation, ladite au moins une cellule CAM comprend en outre : un troisième transistor couplé entre le deuxième noeud de mémorisation et une autre ligne de bit, le troisième transistor étant contrôlé par le deuxième signal de commande ; et un quatrième transistor couplé entre le premier noeud de mémorisation et l'autre ligne de bit, le quatrième transistor étant contrôlé par le premier signal de commande, les premier, deuxième, troisième et quatrième transistors étant des TFET (transistors à effet de champ à effet tunnel).
Selon un mode de réalisation, ladite au moins une cellule CAM comprend en outre un cinquième transistor couplé entre l'autre ligne de bit et une ligne de sortie de lecture, un noeud de commande du cinquième transistor étant couplé au deuxième noeud de mémorisation.
Selon un mode de réalisation, la CAM comprend au moins une autre cellule CAM couplée à la ligne de bit par un premier transistor contrôlé par un premier signal de commande et par un deuxième transistor contrôlé par un deuxième signal de commande, le circuit de commande étant adapté à masquer ladite au moins une autre cellule CAM pendant 1'opération de lecture CAM en désactivant à la fois les premier et deuxième transistors de ladite au moins une autre cellule CAM pendant l'opération de lecture CAM.
Selon un autre aspect, on prévoit un procédé pour réaliser une opération de CAM (mémoire adressable par contenu) dans au moins une cellule CAM, comprenant : des -premier et deuxième inverseurs couplés de façon croisée entre des premier et deuxième noeuds de mémorisation ; un premier transistor couplant le premier de noeud de mémorisation à une ligne de bit, le premier transistor étant contrôlé par un premier signal de commande ; et un deuxième transistor couplant le deuxième noeud de mémorisation à la ligne de bit, le deuxième transistor étant contrôlé par un deuxième signal de commande, le procédé comprenant : précharger, par un circuit de commande, la ligne de bit à un premier niveau de tension ; et activer sélectivement, par le circuit de commande, soit le premier soit le deuxième transistor sur la base d'un bit de données d'entrée.
Selon un mode de réalisation, le procédé comprend en outre : détecter par un circuit de détection, un succès ou un échec en fonction du niveau de tension sur la ligne de bit, ou sur un rail d'alimentation des premier et deuxième inverseurs, suite à l'activation du premier ou du deuxième transistor.
Selon un autre aspect, on prévoit une mémoire comprenant une pluralité de cellules mémoires couplées à une ligne de bit, chaque cellule mémoire comprenant : des premier et deuxième inverseurs couplés de façon croisée entre des premier et deuxième noeuds de mémorisation ; et un premier transistor couplant le premier noeud de mémorisation à la ligne de bit, la mémoire comprenant en outre un circuit de détection adapté à lire des bits de données mémorisés par les cellules mémoires, le circuit de détection étant couplé à un premier rail de tension d'alimentation des premier et deuxième inverseurs de chaque cellule mémoire. Par exemple, le circuit de détection est adapté à détecter la présence ou l'absence d'une montée de tension ou d'une chute de tension sur le premier rail de tension d'alimentation.
Brève description des dessins
Les caractéristiques et avantages susmentionnés, et d'autres, apparaîtront à la lecture de la description détaillée suivante de modes de réalisation, donnés à titre i.l lüstràtif et non limitatif, en faisant référence aux dessins joints dans lesquels : la figure 1 illustre schématiquement une cellule CAM selon un exemple de réalisation ; la figure 2A est chronogramme illustrant des exemples de signaux dans la cellule CAM de la figure 1 pendant des opérations d'écriture en mode CAM selon un exemple de réalisation ; la figure 2B est chronogramme illustrant des exemples de signaux dans la cellule CAM de la figure 1 pendant des opérations de lecture en mode CAM selon un exemple de réalisation ; la figure 3A illustre schématiquement une cellule CAM selon un autre exemple de réalisation ; la figure 3B illustre schématiquement une cellule CAM selon encore un autre exemple de réalisation ; la figure 4Ά illustre schématiquement un pilote de ligne de commande d'un circuit de commande des figures 1 à 3A plus en détail selon un exemple de réalisation ; la figure 4B illustre schématiquement plus en détail un pilote de ligne de bit du circuit de commande de la figure 1 selon un exemple de réalisation ; la figure 5A illustre schématiquement une matrice CAM/SRAM reconfigurable comprenant des cellules CAM de la figure 3A selon un exemple de réalisation ; la figure 5B illustre schématiquement la matrice CAM/SRAM reconfigurable de la figure 5A plus en détail selon un exemple de réalisation ; la figure 6 illustre schématiquement une cellule CAM selon encore un autre exemple de réalisation ; la figure 7 illustre schématiquement une matrice CAM/SRAM reconfigurable comprenant des cellules CAM de la figure 6 selon un exemple de réalisation ; la figure 8 illustre schématiquement une matrice CAM/SRAM reconfigurable comprenant des cellules CAM de la figure 6 selon un autre exemple de réalisation ; la figure 9A illustre schématiquement une colonne de cellules CAM selon un exemple de réalisation ; et la 'figure 9B est un chronogramme illustrant des exemples de signaux dans le circuit de la figure 9A.
Description détaillée
Bien que dans la description qui suit on décrive des cellules CAM et des matrices CAM qui peuvent être utilisées comme dispositifs SRAM standards, il sera clair pour l'homme de l'art que pour certaines applications ces matrices peuvent être configurées pour fonctionner exclusivement comme CAM.
Le terme "connecté" est utilisé ici pour désigner une connexion électrique directe entre deux composants, tandis que le terme "couplé" est utilisé pour désigner une connexion qui peut être directe ou qui peut se faire par l'intermédiaire d'un ou plusieurs autres composants comme des résistances, des condensateurs ou des transistors. Le terme "autour de" est utilisé pour désigner une tolérance de +/- 10% autour de la valeur en question.
La figure 1 illustre schématiquement une cellule CAM 100 selon un exemple de réalisation. La cellule comprend par exemple une portion de mémorisation formée par des inverseurs couplés de façon croisée 102, 104 qui forment une structure de type bascule. Les inverseurs 102, 104 sont couplés de façon croisée entre des noeuds de mémorisation VI, V2. Par exemple, l'inverseur 102 comprend des transistors 106 et 108 couplés par leurs noeuds de conduction principaux entre un rail de tension d'alimentation VDD et un rail de tension d'alimentation VSS. Un noeud intermédiaire entre les transistors 106, 108 forme le noeud de mémorisation VI, et les noeuds de commande des transistors 106, 108 sont couplés au noeud de mémorisation V2. L'inverseur 104 comprend par exemple des transistors 110 et 112 couplés par leurs noeuds de conduction principaux entre les rails de tension d'alimentation VDD et VSS. Un noeud intermédiaire entre les transistors 110, 112 forme le noeud de mémorisation V2, et les noeuds de commande des transistors 110, 112 sont couplés au noeud de mémorisation VI.
Le noeud de mémorisation VI est couplé à une ligne de bit BLL par l'intermédiaire des noeuds de conduction principaux d'un transistor 114. De façon similaire, le noeud de mémorisation V2 est couplé à la ligne de bit BLL par l'intermédiaire des noeuds de conduction principaux d'un transistor 116. Le transistor 114 est contrôlé au niveau de son noeud de commande par un signal de commande WL1, et le transistor 116 est contrôlé au niveau de son noeud de commande par un signal de commande WL2, les signaux de commande WL1, WL2 étant par exemple des signaux de commande de ligne de mot pour contrôler des mots de SRAM, comme on va le décrire plus en détail ci-après. Les transistors 106 à 116 sont par exemple des transistors MOS, les transistors 114 et 116 étant par exemple des transistors MOS à canal N (NMOS) ayant leurs grilles connectées aux signaux WL1 et WL2 respectivement. Un noeud de source/drain du transistor 114 est par exemple connecté au noeud VI et un noeud de source/drain du transistor 116 est par exemple connecté au noeud V2.
Les signaux de commande WLl et WL2 sont par exemple générés par un circuit de commande (CTRL) 118, qui reçoit par exemple une valeur de données d'entrée et des signaux d'autorisation de lecture et d'écriture RE et WE. Le circuit de commande 118 applique aussi par exemple des tensions à la ligne de bit BLL, pour précharger la ligne de bit, et coupler la ligne de bit à une tension d'alimentation, comme on va la décrire plus en détail ci-après.
La ligne de bit BLL est par exemple couplée à un circuit de détection (SA+MATCH) 120 réalisant les fonctions d'un amplificateur de détection et d'un circuit de détection de concordance. Le circuit de détection 120 génère par exemple, sur la base d'un niveau de tension détecté sur la ligne de bit BLL, un signal de données de sortie Dqut pendant une opération -de lecture SRAM standard, ou un signal de succès/échec de CAM, MOUT' pendant une opération de lecture en mode CAM.
La cellule CAM 100 peut par exemple être reconfigurée soit pour fonctionner comme . une cellule CAM, impliquant des opérations de lecture et d'écriture en mode CAM, soit pour fonctionner comme cellule SRAM, impliquant des opérations de lecture et d'écriture SRAM.
Le rail de tension d'alimentation VDD de la cellule CAM 100 est par exemple à une tension comprise entre 0,6 V et 1,4 V, et par exemple à environ 1,2 V. Le rail de tension d'alimentation VSS est par exemple à une tension comprise entre -0,6 V et 0,6 V, et par exemple à environ 0,6 V, et la différence de tension entre les rails de tension d'alimentation VDD et VSS est par exemple égale à au moins 0,6 V, et par exemple égale à environ 0,8 V.
Pendant un mode de rétention de la cellule CAM 100, les signaux de commande WLl et WL2 sont par exemple au niveau de tension VSS et la ligne de bit BLL est par exemple au niveau de tension VSS ou VDD ou à tout niveau entre les deux, de sorte qu'il y a un faible courant de fuite de la cellule vers la ligne de bit.
Pendant des opérations d'écriture en mode CAM et SRAM décrites plus en détail ci-après, la ligne de bit BLL est par exemple amenée à la masse ou à une tension inférieure, et l'un des signaux de commande WLl, WL2 est activé par une tension égale par exemple à un niveau compris entre la masse et VDD comme VSS, qui est par exemple égal à environ VDD/2. Le terme "activé" en relation avec un signal de commande est utilisé ici pour désigner un état du signal de commande qui rend conducteurs un ou plusieurs transistors auxquels il est couplé. L'autre signal de commande est par exemple désactivé en l'amenant à la masse.
Pendant des opérations de lecture en mode CAM ou SRAM, la ligne de bit BLL est par exemple amenée au niveau de tension VDD, et l'un des signaux de commande WL1, WL2 est activé en l'amenant au niveau de tension VDD. L'autre signal de commande est par exemple désactivé en l'amenant au niveau de tension VSS.
Le fonctionnement de la cellule CAM 100 de la figure 1 va maintenant être décrit plus en détail en faisant référence aux figures 2A et 2B.
La figure 2A est un chronogramme illustrant un exemple du signal de données d'entrée Dj^, de la tension sur la ligne de bit BLL, et des signaux de commande WLl et WL2, pendant une opération d'écriture en mode CAM dans la cellule CAM 100. On supposera dans cet exemple que la cellule CAM 100 est couplée à une seule ligne de bit BLL.
On supposera que pendant l'opération d'écriture en mode CAM, le signal d'autorisation d'écriture WE est activé. Dans un premier exemple, une valeur "1" est écrite dans la cellule CAM, et ainsi le signal de donnée Dj^ est haut pendant l'opération d'écriture.
Pendant l'opération d'écriture en mode CAM, le circuit de commande 118 applique par exemple une tension V^bl à la ligne de bit BLL, V^bl étant par exemple inférieure à VSS et égale à la masse ou à une tension comprise entre 0 V et le niveau de tension VSS. En variante, la ligne de bit BLL pourrait être amenée à un niveau négatif, par exemple en utilisant une technique d'assistance à l'écriture SRAM connue dans la technique sous le nom d'assistance négative à l'écriture de ligne de bit (NBL-WA). En outre, pendant l'opération d'écriture, la tension d'alimentation VDD peut être réduite, par exemple d'environ 0,1 V, correspondant à une technique d'assistance à l'écriture SRAM à réduction d'alimentation (Vddud-WA). Bien que la ligne de bit BLL soit à un niveau réduit, le circuit de commande 118 active le signal de commande WLl ou WL2 sur la base du signal de données à mémoriser dans la cellule. Le signal de commande WLl ou WL2 est par exemple activé en l'amenant au niveau VSS.
Comme cela est représenté sur la gauche en figure 2A, dans le cas où le signal de donnée a une valeur "1", le signal de commande WL2 est par exemple activé afin de tirer la tension sur le noeud V2 à un niveau bas, et d'amener la bascule formée par les inverseurs 102, 104 à basculer vers un état dans lequel VI est haut et V2 est bas. Par exemple, pour mémoriser une donnée d'écriture de "1", une tension d'environ 0,6 V est appliquée à la ligne de commande WL2, et une tension d'environ 0 V est appliquée à la ligne de commande WLl. Dans le cas où les transistors 114, 116 sont des transistors NMOS, ils sont par exemple activés par des niveaux hauts sur les signaux de commande WLl, WL2. Par contre, si ces transistors étaient des transistors PMOS, ils seraient activés par un niveau bas des signaux de commande WLl, WL2.
La figure 2A illustre aussi sur la droite, un exemple d'écriture d'une valeur "0" dans la cellule CAM, qui par exemple implique l'activation du signal de commande WLl pendant l'opération d'écriture, pour tirer la tension sur le noeud VI à un niveau bas. Par exemple, pour mémoriser une donnée d'écriture de "0", une tension d'environ 0,6 V est appliquée à la ligne de commande WLl, et une tension d'environ 0 V est appliquée à la ligne de commande WL2.
Dans des variantes de réalisation, il serait possible d'écrire dans la cellule CAM 100 en appliquant à la ligne de bit BLL une tension surélevée supérieure à VDD, et en activant le signal de commande WLl ou WL2 pour amener le noeud VI ou V2 à un niveau haut. Dans un tel cas, les transistors 114 et 116 sont par exemple mis en oeuvre par des transistors PMOS.
La cellule CAM 100 fait par exemple partie d'une matrice, avec une pluralité de cellules agencée selon une colonne et couplée à une ligne de bit commune, et une pluralité de colonnes. Chaque colonne de cellules forme par exemple un mot CAM. Les cellules de chaque rangée des colonnes partagent des lignes de commande communes WL1 et WL2. Pendant une opération d'écriture, un mot CAM de cellules mémoires est par exemple écrit en un seul coup, et les autres colonnes de cellules CAM sont par exemple à moitié sélectionnées pour éviter d'écrire dans celles-ci. Pour sélectionner à moitié les cellules CAM d'une colonne, la ligne de bit de la colonne est par exemple amenée à une tension d'environ le niveau de VSS.
La figure 2B est un chronogramme illustrant un exemple du signal de données d'entrée Dj^, de la tension sur la ligne de bit BLL, des signaux de commande WLl et WL2, et du signal de sortie Mqut pendant une opération de lecture en mode CAM dans la cellule CAM 100. On suppose dans cet exemple que la cellule CAM 100 est couplée à une seule ligne de bit BLL.
Dans un premier exemple représenté sur la gauche en figure 2B, le bit de données mémorisé dans la cellule CAM 100 doit être comparé à une valeur "1". Ainsi le signal de données d'entrée Dj^ est par exemple haut pendant l'opération de lecture CAM. Au début de l'opération de lecture CAM, la ligne de bit BLL est par exemple préchargée au niveau VDD, par exemple à un niveau d'environ 1,2 V. L'un des signaux de commande WLl, WL2 est ensuite activé sur la base du bit de données d'entrée Dj^ à comparer. Par exemple, le signal de commande WLl ou WL2 est activé en l'amenant du niveau de tension VSS au niveau de tension VDD. En variante, une technique d'assistance à la lecture SRAM comme une assistance à la lecture de ligne de mot à sous-alimentation (WLud-RA) peut être utilisée, auquel cas la ligne de commande activée WLl ou WL2 est par exemple amenée à un niveau d'environ 0,2 V en dessous de VDD, par exemple à un niveau d'environ 1 V. L'autre signal de commande est par exemple désactivé en l'amenant au niveau de tension VSS.
Comme cela est représenté sur la gauche en figure 2B, pour une opération de lecture en mode CAM sur la base d'une valeur "1" des données d'entrée, le signal de commande WLl est par exemple activé de façon à coupler le noeud VI à la ligne de bit BLL. Dans l'exemple de la figure 1, le noeud de mémorisation VI est à un état haut, et ainsi la tension sur la ligne bit BLL reste par exemple haute. En général, une opération de lecture CAM va impliquer la comparaison d'une pluralité de bits sur un mot de données d'entrée à un mot mémorisé dans une pluralité correspondante de cellules CAM d'une colonne de la matrice CAM. Ainsi de façon générale, si la tension sur la ligne de bit reste haute cela va indiquer un succès de mot.
Comme cela est représenté sur la droite en figure 2B, pour une opération de lecture en mode CAM sur la base d'une valeur "0" de la donnée d'entrée, le signal de commande WL2 est par exemple activé afin de coupler le noeud V2 à la ligne de bit BLL. Dans ce cas, on suppose de nouveau que le noeud VI est à un état haut, et ainsi le noeud V2 est à un état bas. Ainsi, peu de temps après que le signal de commande WL2 a été activé, la tension sur la ligne de bit BLL commence par exemple à descendre, et la chute de tension, qui peut être une chute de seulement 100 mV, est par exemple détectée par un amplificateur de détection du circuit de détection 120. Ainsi, le signal Mqut reste par exemple bas, indiquant un échec de CAM.
Une opération de lecture SRAM implique la fourniture de la valeur de donnée mémorisée par la cellule CAM 100 pour fournir une valeur de données de sortie Dqut· Cette opération n'est pas représentée dans les figures, et par exemple implique de précharger la ligne de bit BLL à VDD, puis d'activer le signal de commande WL1 pour coupler le noeud VI à la ligne de bit BLL, et de détecter par le circuit de détection 120 si la tension sur la ligne de bit BLL reste au niveau ou à proximité de VDD, ou si elle descend. Un mot horizontal de la matrice est par exemple lu en une seule opération.
Lorsque la cellule CAM 100 fait partie d'une matrice comme cela a été décrit précédemment, les cellules CAM de chaque mot de CAM vont partager des lignes de commande communes WLl, WL2 avec les cellules correspondantes des autres colonnes, et ainsi une recherche CAM peut être réalisée en une seule opération sur la totalité de la matrice.
Dans certains modes de réalisation, un masquage global peut être réalisé pendant la réalisation de l'opération de lecture CAM. En particulier, une recherche CAM peut être réalisée sur la base de seulement certains bits d'un mot, un ou plusieurs autres bits du mot étant mis à un état "ne pas tenir compte" en maintenant désactivés les deux signaux WLl et WL2 associés à ces bits. En outre, dans certains modes de réalisation, des bits de masque pour permettre une comparaison partielle peuvent être mémorisés dans une SRAM séparée de la mémoire CAM, de façon similaire à ce qui a été décrit dans le brevet US N°6 839 256, dont le contenu est inclus ici en tant que référence dans les limites autorisées par la loi.
Dans certains modes de réalisation, chaque colonne de la mémoire CAM peut mémoriser une pluralité de mots, et pendant chaque recherche CAM, un seul des mots de chaque colonne est par exemple recherché à la fois, les autres mots étant masqués en désactivant les signaux WLl et WL2 correspondants.
La figure 3A illustre une cellule CAM 300 selon une variante de réalisation par rapport à la figure 1. De nombreux éléments de la figure 3A sont les mêmes que des éléments de la figure 1, et ces éléments portent les mêmes références et ne seront pas décrits de nouveau en détail.
Dans le circuit de la figure 3A, la ligne de bit BLL est séparées en deux portions BLL-A et BLL-B. Le transistor 114 est couplé entre le noeud de mémorisation VI et la portion de ligne de bit BLL-A, le transistor 116 est couplé entre le noeud de mémorisation V2 et la portion de ligne de bit BLL-B. Les portions de ligne de bit BLL-A et BLL-B sont par exemple couplées entre elles par un transistor 302, qui est par exemple un transistor MOS. Le transistor 302 est par exemple commun à une colonne entière. Le transistor 302 est par exemple contrôlé au niveau de son noeud de commande de telle sorte qu' il soit activé au moins pendant les opérations de lecture CAM. Dans certains modes de réalisation, comme cela est représenté en figure 3A, le transistor 302 est contrôlé par 1'inverse du signal d'autorisation d'écriture WE, de sorte que les portions de ligne de bit BLL-A et BLL-B sont couplées entre elles excepté pendant des opérations d'écriture. Le circuit de détection 120 est par exemple couplé à seulement l'une des portions de ligne de bit BLL-A, BLL-B, et dans l'exemple de la figure 3A il est couplé à la portion de ligne bit BLL-A. Des opérations de lecture CAM et SRAM sont par exemple réalisés de la même manière que ce qui a été décrit précédemment en relation avec la figure 1, avec le transistor 302 activé.
Les opérations d'écriture dans la cellule CAM de la figure 3A sont par exemple réalisées de façon similaire à une opération d'écriture SRAM standard en utilisant les portions de ligne de bit BLL-A et BLL-B. Pendant des opérations d'écriture, le transistor 302 est par exemple désactivé de telle sorte que les portions de ligne bit BLL-A et BLL-B peuvent être pilotées indépendamment. Pendant une opération d'écriture, le circuit de commande 118 est par exemple adapté à coupler l'une des portions de ligne de bit BLL-A, BLL-B à la tension d'alimentation VDD sur la base de la donnée à écrire dans la cellule, et à coupler l'autre portion de ligne de bit à la tension de masse, tout en activant les deux signaux de commande WLl, WL2. De cette manière, pendant les opérations d'écriture, une rangée de la matrice peut être écrite en une seule opération.
La figure 3B illustre une cellule CAM 310 selon une variante de réalisation par rapport aux figures 1 et 3A. La cellule CAM de la figure 3B est très similaire au circuit de la figure 1, et comprend les transistors 114 et 116, chacun étant couplé à la ligne de bit BLL. Le mode de réalisation de la figure 3B comprend aussi une autre ligne de bit BLR, et un transistor 312 couplant le noeud de mémorisation V2 à la ligne de bit BLR, et un transistor 314 couplant le noeud mémorisation VI à la ligne de bit BLR. Le transistor 312 est contrôlé par le signal de commande WLl, et le transistor 314 est contrôlé par le signal de commande WL2. Le circuit de commande 118 en figure 3B applique par exemple des tensions aux deux lignes de bit BLL et BLR.
Dans la cellule CAM 310, tous les transistors sont des dispositifs TFET (transistor à effet de champ à effet tunnel). De tels dispositifs présentent l'avantage d'une très faible fuite de courant. Les dispositifs TFET conduisent dans une seule direction, indiquée en figure 3B par une flèche associée à chaque dispositif. Les transistors 114 et 116 sont par exemple agencés de façon à conduire à partir de la ligne de bit BLL vers les noeuds de mémorisation VI et V2 respectivement. Les transistors 106, 108, 110 et 112 sont agencés pour conduire à partir du rail de tension d'alimentation VDD, vers le rail d'alimentation de masse GND. Les transistors 312 et 314 sont agencés de façon à conduire à partir des noeuds de mémorisation VI et V2 respectivement, vers la ligne de bit BLR.
Le fonctionnement de la cellule CAM 310 est similaire à celui de la cellule CAM 100 de la figure 1. Toutefois, pendant une opération d'écriture en mode CAM, la ligne de bit BLL est par exemple amenée au niveau de tension d'alimentation VDD, par exemple égal à 1 V, et la ligne de bit BLR est amenée à la masse. La ligne de commande WL1 ou WL2 est ensuite activée par une tension d'environ VDD, sur la base du bit de donnée à mémoriser dans la cellule CAM. Les cellules CAM d'autres colonnes de la matrice sont par exemple à moitié sélectionnées par un niveau intermédiaire appliqué à leurs lignes de bit BLR, par exemple de 0,6 V. En outre, pendant une opération de lecture en mode CAM, la ligne de bit BLR est par exemple au niveau intermédiaire, par exemple de 0,6 V. Pendant une écriture SRAM, l'opération d'écriture est par exemple réalisée en deux phases, une phase pour l'écriture d'une valeur "0" dans les cellules CAM d'une rangée de la matrice à écrire, et une phase pour écrire une valeur "1" dans les cellules CAM de la rangée.
Par exemple, dans une première phase, les cellules de la rangée où il faut écrire un "1" sont sélectionnées en couplant leur ligne de bit BLL à la tension VDD, et leur ligne de bit BLR à la tension de masse. Les autres cellules mémoires de la rangée sont par exemple à moitié sélectionnées en couplant leurs lignes de bit BLR à un niveau intermédiaire, par exemple égal à environ 0,6 V. Le signal WL1 est ensuite activé mais pas le signal WL2, afin d'écrire une valeur "1" dans les cellules mémoires sélectionnées.
Dans une deuxième phase, les cellules de la rangée où il faut écrire un "0" sont sélectionnées en couplant leur ligne de bit BLL à la tension VDD et leur ligne de bit BLR à la tension de masse. Les autres cellules mémoires de la rangée sont par exemple à moitié sélectionnées en couplant leurs lignes de bit BLR à un niveau intermédiaire, par exemple égal à environ 0,6 V. Le signal WL2 est ensuite activé mais pas le signal WL1, afin d'écrire une valeur "0" dans les cellules mémoires sélectionnées.
Pendant une opération de lecture SRAM, les lignes de bit BLL sont pré-chargées à VDD et les lignes de bit BLR sont amenées à un niveau intermédiaire, par exemple à 0,6 V. Le signal WL1 est ensuite par exemple activé pour la rangée à lire, et les tensions sur les lignes de bit BLL vont indiquer les données lues.
La figure 4A illustre schématiquement un exemple de réalisation d'une certaine partie 400 du circuit de commande 118 des figures 1 et 3A pour générer les signaux de commande WL1, WL2. Le circuit 400 est par exemple commun pour toutes les cellules CAM d'une rangée d'une matrice, et un circuit similaire est par exemple fourni pour chaque autre rangée.
La ligne WL1 est par exemple couplée à la masse (GND) par l'intermédiaire d'un transistor 402, et à un noeud intermédiaire 404 par l'intermédiaire d'un transistor 406. Le noeud intermédiaire a une tension Vdlnt, et est couplé au rail d'alimentation VDD par l'intermédiaire d'un transistor 408, et à un rail d'alimentation VDDH par l'intermédiaire d'un transistor 410. Le rail d'alimentation VDDH est par exemple à un niveau de tension inférieur à VDD et supérieur à la masse, de sorte que 0<VDDH<VDD. Par exemple, dans un mode de réalisation, VDDH est à environ la moitié de VDD. Le transistor 408 est contrôlé par le signal d'autorisation d'écriture WE, et le transistor 410 est contrôlé par l'inverse WEb du signal d'autorisation d'écriture WE.
Les transistors 402, 406 ont leurs noeuds de commande couplés à un noeud 412, qui est à son tour couplé au rail d'alimentation VDD par l'intermédiaire d'un transistor 414, à un noeud 416 par l'intermédiaire d'un transistor 418, et à un noeud 420 par l'intermédiaire d'un transistor 422. Le transistor 414 est par exemple contrôlé par un signal de pré-charge PreChg, le transistor 418 est contrôlé par le signal d'autorisation de lecture RE, et le transistor 422 est contrôlé par le signal d'autorisation d'écriture WE.
La ligne WL2 est par exemple couplée au rail de masse GND par l'intermédiaire d'un transistor 424, et à la tension Vdlnt sur le noeud 404 par l'intermédiaire d'un transistor 426. Les transistors 424, 426 ont leurs noeuds de commande couplés à un noeud 428, qui est par exemple à son tour couplé au rail d'alimentation VDD par l'intermédiaire d'un transistor 430, au noeud 416 par l'intermédiaire d'un transistor 432 et au noeud 420 par l'intermédiaire d'un transistor 434. Le transistor 430 est contrôlé par le signal de précharge PreChg, le transistor 432 est contrôlé par le signal d'autorisation d'écriture WE, et le transistor 434 est contrôlé par le signal d'autorisation de lecture RE.
Le noeud 416 est couplé au rail de masse GND par l'intermédiaire d'un transistor 436 contrôlé par la valeur de données Dj^, et le noeud 420 est couplé au rail de masse GND par l'intermédiaire d'un transistor 438 contrôlé par l'inverse DbjN de la valeur de données Dj^.
Les transistors 402, 418, 422, 424, 432, 434, 436 et 438 sont par exemple des transistors NMOS, et les transistors 406, 408, 410, 414, 426 et 430 sont par exemple des transistors PMOS.
En fonctionnement, pendant une opération d'écriture, d'abord le signal de pré-charge PreChg est activé à un niveau bas pour amener les noeuds 412 et 428 à VDD. Les signaux WE et PreChg sont ensuite par exemple amenés à ion niveau haut, et les signaux WEb et RE sont par exemple amenés à un niveau bas. Ainsi, si la valeur de données est à une valeur "1”, la ligne WL2 est couplée à la tension Vdlnt, qui est à VDDH, et la ligne WL1 est couplée à la masse. En variante, si la valeur de données Dj^ est une valeur "0", la ligne WLl est couplée à la tension Vdlnt, qui est à VDDH, et la ligne WL2 est couplée à la masse.
Lorsqu'une opération de lecture en mode CAM doit être réalisée, le signal PreChg est d'abord activé à un niveau bas pour amener les noeuds 412 et 428 à VDD. Ensuite, le signal PreChg est amené de nouveau à l'état haut, et le signal RE est amené à l'état haut, pendant que le signal WE est bas. Ainsi, la ligne WLl va être couplée à VDD si la valeur de données d'entrée Djn est à "1", et à la masse si la valeur de données d'entrée Djn est à "0". Inversement, la ligne WL2 va être couplée à VDD si la valeur de données d'entrée Dj^ est à "0", et à la masse si la valeur de données d'entrée Djjj est à "1".
Le circuit 400 peut par exemple être adapté pour mettre en oeuvre une certaine partie du circuit de commande 118 de la cellule CAM 310 de la figure 3B en retirant les transistors 408 et 410, et en couplant le noeud 404 directement à VDD.
La figure 4B illustre schématiquement un exemple de mise en oeuvre d'une certaine partie 450 du circuit de commande 118 de la figure 1 pour contrôler la tension sur les lignes de bit BLL [ 0 ] et BLL[1] de colonnes adjacentes 0 et 1 de la matrice.
La ligne de bit BLL [0] est par exemple couplée au rail de tension V]\jbl par l'intermédiaire d'un transistor 452[0] associé à la colonne 0 et qui est contrôlé par un signal WWO, et la ligne de bit BLL[1] est couplée au rail de tension Vjjbl par l'intermédiaire d'un transistor 452 fl] associé à la colonne 1 contrôlé par un signal WW1. Les signaux WWO et WW1 sont des signaux de données basés sur les données à écrire dans les cellules CAM sélectionnées des colonnes 0 et 1 correspondantes. Le rail de tension V^gg est par exemple à la masse, ou à un niveau de tension négatif.
La ligne de bit BLLfO] est aussi couplée à un noeud 454 par l'intermédiaire d'un transistor 456[0] associé à la colonne 0, et la ligne de bit BLLfl] est aussi couplée au noeud 454 par l'intermédiaire d'un transistor 456[1] associé à la colonne 1. Le noeud 454 a une tension Vdlnt, qui est la même tension que sur le noeud 404 de la figure 4A, et est par exemple générée par le même circuit comprenant les transistors 408, 410, qui ne seront pas décrits de nouveau en détail. Les transistors 456 [0], 456 [1] sont contrôlés par ion signal de pré-charge PrechgBL. Ainsi, lorsque les lignes de bit BLLfO], BLLfl] doivent être préchargées à VDD pendant un mode CAM ou une opération de lecture SRAM, le signal PrechgBL est activé à un niveau bas pour rendre les transistors 456[0] et 456[1] conducteurs, et le signal d'autorisation d'écriture WE est bas, de sorte que le noeud 454 est couplé au rail d'alimentation VDD. Une paire de transistors 452[p], 456[p] est par exemple prévue pour chaque colonne p de la matrice.
Comme avec le circuit 400, le circuit 450 peut par exemple être adapté pour mettre en oeuvre une certaine partie du circuit de commande 118 de la cellule CAM 310 de la figure 3B en retirant les transistors 408 et 410, et en couplant le noeud 454 directement à VDD. Un circuit similaire peut être prévu pour coupler la ligne de bit BLR soit à la masse soit à 0,6 V.
Dans le cas de la cellule CAM 300 de la figure 3A, le circuit 450 comprend par exemple un transistor 452[p] pour chacune des portions de ligne de bit BLL-A, BLL-B de chaque colonne p, de sorte que les portions de ligne de bit peuvent être contrôlées indépendamment pendant une opération écriture.
La figure 5A illustre schématiquement une matrice CAM 500 comprenant une matrice de cellules CAM, qui sont par exemple les cellules CAM 300 de la figure 3A couplées aux portions de ligne de bit séparées BLL-A et BLL-B. Cependant, une configuration similaire à celle de la figure 5A pourrait être adaptée à la cellule mémoire de la figure 1. La matrice 500 comprend par exemple une pluralité de P+l colonnes, chaque colonne mémorisant un mot CAM, et chaque colonne par exemple comprenant une pluralité de N+l cellules mémoires formant le mot CAM. En outre, chaque rangée de P+l cellules CAM forme par exemple un mot SRAM. P et N sont tous deux par exemple égaux à 1 ou plus, et typiquement il y a par exemple 16, 32 ou 64 colonnes, et 16, 32 ou 64 rangées. Dans certains modes de réalisation, le nombre de rangées est égal au nombre de colonnes, de sorte qu'un mot de CAM est égal en longueur à un mot de SRAM. Toutefois, dans des variantes de réalisation, il pourrait y avoir un nombre différent de rangées par rapport . au nombre de colonnes.
Les portions de ligne de bit séparées BLL-A, BLL-B de chaque colonne 0 à P sont par exemple couplées entre elles par des transistors correspondants 302-0 à 302-P contrôlés par exemple par l'inverse du signal d'autorisation d'écriture WE. En effet, comme cela a été expliqué précédemment en relation avec la figure 3A, ces transistors sont par exemple désactivés au moins pendant les opérations d'écriture dans les cellules mémoires de sorte que les cellules peuvent être écrites d'une manière SRAM standard.
La figure 5B illustre schématiquement la matrice de la figure 5A plus en détail selon un exemple de réalisation, et illustre un exemple de circuit de commande pour contrôler les cellules CAM de la matrice.
Un circuit de pilotage WL (WL DRIVERS + WL LOGIC) 504 comprend par exemple des circuits de pilotage et de logique pour piloter les lignes de mot WL10, WL20 à WL1N, WL2N de la matrice.
Un circuit de pilotage de ligne de bit (BL DRIVERS) 506 comprend par exemple des dispositifs de pilotage pour piloter les portions de ligne de bit BLL-A, BLL-B des colonnes 0 à P de la matrice.
Pendant des opérations de lecture et d'écriture SRAM à réaliser dans une rangée de la matrice, un décodeur de rangée (ROW DECODER (SRAM, READ &amp; WRITE)) 508 reçoit par exemple l'adresse ADDR de l'opération, et fournit une sélection appropriée de l'une des lignes de mot au circuit de pilotage WL 504. Dans le cas d'une opération d'écriture SRAM, une logique de sélection de ligne de bit (BL SELECTION LOGIC (SRAM, WRITE)) 510 reçoit par exemple aussi les données DATA à écrire, et fournit des signaux de commande appropriés au circuit de pilotage de ligne de bit 506 pour piloter en conséquence les lignes de bit et pour désactiver les transistors 302-0 à 302-P.
Pendant des opérations de lecture et d'écriture CAM à réaliser dans une colonne de la matrice, une logique de sélection WL (WL SELECTION LOGIC (CAM)) 512 reçoit par exemple les données DATA à écrire ou à utiliser pour la lecture CAM, et fournit les signaux appropriés pour piloter les lignes de mot WL10, WL20 à WL1N, WL2N sur la base de ces données. Par exemple, la logique de sélection WL 512 est mise en oeuvre par le circuit de la figure 4A. Pendant des opérations d'écriture CAM, un décodeur de colonne (COLUMN DECODER (CAM, WRITE)) 514 reçoit par exemple l'adresse ADDR de l'opération d'écriture, et fournit les signaux de commande appropriés au circuit de pilotage de ligne bit 506 pour piloter en conséquence les lignes de bit correspondantes. Le décodeur de colonne 514 est par exemple mis en oeuvre par le circuit de la figure 4B.
Un circuit de sortie (Mqut or Dqut) 516 fournit par exemple, pendant une opération de lecture CAM, le signal de succès ou d'échec Mqut à partir de chaque colonne de la matrice, et pendant une opération de lecture SRAM, le signal de données Dqut à partir de chaque colonne de la matrice.
Dans certains modes de réalisation, un multiplexeur de (COLUMN MUX (SRAM, READ) ) 518 est prévu pour les opérations de lecture SRAM.
La figure 6 illustre schématiquement une cellule CAM 600 selon un autre exemple de réalisation. Le circuit de la figure 6 est similaire à celui de la cellule CAM 310 de la figure 3B, et les mêmes éléments portent les mêmes références et ne seront pas décrits de nouveau en détail. La cellule CAM 600 comprend en plus un transistor TFET 602, qui est par exemple un transistor NTFET, couplé par ses noeuds de courant principaux entre la ligne de bit BLR et une ligne de rangée RBL. Le transistor 602 a par exemple son noeud de commande couplé au noeud de mémorisation V2 de la cellule. L'ajout du transistor 602 permet par exemple de lire une colonne de cellules pendant une opération de lecture SRAM. Ainsi, des mots CAM et des mots SRAM peuvent tous être orientés de la même façon dans la matrice, dans la direction de colonne. Le circuit comprend par exemple un autre circuit de détection (SRAM READ SA) 604 pour détecter la tension sur la ligne de rangée RBL, et fournir une donnée de sortie Dqut sur -*-a base du niveau de tension détecté. Le circuit de détection 120 en figure 6 fournit par exemple seulement le signal de concordance Mqut·
En fonctionnement, pendant une opération de lecture SRAM, la ligne de rangée RBL est par exemple préchargée à VDD, et la ligne de bit BLR est par exemple couplée à la masse. Le transistor 602 va être rendu conducteur ou non conducteur en fonction de la tension sur le noeud de mémorisation V2, et lorsqu'il est conducteur, il va décharger la tension sur la ligne de rangée RBL. Ainsi, une valeur "1" sur le noeud de mémorisation VI peut être détectée, par le circuit de détection 604, en détectant quand l'état de tension sur la ligne de rangée RBL reste proche de VDD, et une valeur "0" sur le noeud de mémorisation VI peut être détectée en détectant quand l'état de tension sur la ligne de rangée RBL descend, par exemple d'une valeur comprise 100 et 200 mV pour une alimentation de 1 V.
La figure 7 illustre schématiquement une matrice CAM 700 comprenant les cellules CAM 600 de la figure 6 agencées en N+l rangées et P+l colonnes. Comme cela est illustré, chaque ligne de bit BLL0 à BLLP est couplée à un circuit de détection 120 correspondant fournissant le signal de concordance Mqut et chaque ligne de rangée RBL0 à RBLN est couplée à un circuit de détection 604 correspondant pour fournir le signal de lecture SRAM Dqut· Un bloc de circuit de commande WL (WL DRIVERS + WL LOGIC) 704 contrôle par exemple les lignes de commande WL10, WL20 à WL1N, WL2N, et un bloc de circuit de commande de ligne de bit (ROW DECODER + BL DRIVING LOGIC (CAM &amp; SRAM) ) 706 pilote par exemple les lignes de bit BLL0, BLR0 à BLLP, BLRP, et les lignes de rangée RBL0 à RBLN. Un décodeur de colonne (COLUMN DECODER (SRAM)) 708 est aussi par exemple prévu pour sélectionner la colonne à écrire ou lire pendant une opération d'écriture ou de lecture SRAM.
On notera que la matrice 700 permet à la fois aux mots CAM et aux mots SRAM de la matrice d'être mémorisés verticalement en colonnes, mais qu'elle comprend un nombre de circuits de détection supérieur par rapport à la matrice de la figure 5B.
La figure 8 illustre schématiquement une matrice 800 comprenant les cellules CAM 600 de la figure 6 selon un exemple de variante de réalisation dans lequel le nombre de circuits de détection est réduit par rapport à la matrice 700 de la figure 7. La matrice 800 est similaire à la matrice 700, mais ne comprend plus les circuits de détection 604, et à la place comprend des multiplexeurs à deux entrées 802-0 à 802-p associés aux rangées 0 à P, et ayant chacun une entrée couplée à une ligne de bit BLL0 à BLLP correspondante, et une autre entrée couplée à une ligne de rangée RBL0 à RBLN correspondante. Dans cet exemple, P et N sont égaux, bien que dans des variantes de réalisation toute valeur de P et N serait possible. Les sorties des multiplexeurs sont respectivement couplées aux circuits de détection (SA + MATCHO à SA + MATCHP) 120, qui fournissent à la fois les signaux de sortie de concordance MouT et les signaux de sortie de données Dqut· Le décodeur de colonne 708 de la figure 7 est par exemple utilisé seulement pour des opérations d'accès SRAM, tandis que le décodeur 708 de la figure 8 est par exemple utilisé pour des opérations SRAM et CAM.
La figure 9A illustre schématiquement une colonne 900 de cellules mémoires 100 selon un autre exemple de réalisation. Dans des variantes de réalisation, la colonne 900 pourrait être adaptée pour comprendre les cellules mémoires 300 de la figure 3A.
La colonne 900 fait par exemple partie d'une matrice comportant une pluralité de telles colonnes. Le circuit de détection 120 de la figure 1 couplé à la ligne de bit BLL est remplacé en figure 9A par un circuit de détection (SA + MATCH) 902 couplé à un rail de tension d'alimentation 904 de chaque cellule mémoire de la colonne. Par exemple, le circuit de détection 902 est couplé au rail de tension d'alimentation VSS 904, et le rail VSS 904 est par exemple couplé, au niveau du pied 906 de la colonne, à la tension d'alimentation VSS par l'intermédiaire d'un transistor monté en diode 908, de sorte que la tension sur le rail 904 peut être autorisée à augmenter au-dessus de VSS pendant une opération de lecture. Par exemple, le transistor 908 est un transistor NMOS ayant sa grille couplée à son drain. Le rail VSS 904 est aussi par exemple couplé à la tension d'alimentation VSS par l'intermédiaire d'un transistor 910, qui est par exemple un transistor NMOS contrôlé par l'inverse du signal d'autorisation de lecture RE. Ainsi, le rail d'alimentation VSS 904 est couplé à la tension d'alimentation VSS excepté pendant des opérations de lecture.
On va maintenant décrire le fonctionnement de la cellule CAM 900 de la figure 9A plus en détail en faisant référence à la figure 9B.
La figure 9B est un chronogramme illustrant des exemples du signal de ligne de mot WLl ou WL2, de la tension de ligne de bit, et de la tension SI sur le rail d'alimentation VSS 904 pendant une opération de lecture CAM. La tension sur l'une ou l'autre de la ligne WLl et de la ligne WL2 est amenée à la tension d'alimentation VDD, en fonction de la donnée d'entrée pendant l'opération de lecture CAM. La ligne de bit BLL est par exemple couplée à une tension haute comme la tension d'alimentation VDD. Dans le cas d'un succès CAM, le noeud de mémorisation à la tension haute, qui est couplé à la tension d'alimentation VDD, va être couplé à la ligne de bit BLL, et ainsi il n'y aura pas de changement dans l'état de tension sur le rail d'alimentation VSS. Toutefois, dans le cas d'un échec CAM, le noeud de mémorisation mémorisant une tension basse, qui est couplé au rail de tension d'alimentation VSS, va être chargé par la tension sur la ligne de bit BLL. La figure 9B illustre le cas d'un échec CAM, et comme cela est illustré, la montée de la tension sur le noeud de mémorisation va amener la tension sur le rail d'alimentation VSS à commencer à monter, par exemple d'environ 100 mV ou de quelques centaines de mV. Cette montée de tension est détectée par le circuit de détection 902, et le signal de sortie Mqut Par exemple reste bas pour indiquer un échec de CAM.
Bien que la figure 9B illustre le cas d'une opération de lecture CAM, le circuit de détection 902 peut aussi être utilisé pour des opérations de lecture SRAM. Pendant une opération de lecture SRAM, la ligne de bit BLL est par exemple couplée à la tension d'alimentation VDD, et seul le signal WLl est par exemple activé. La donnée peut ainsi être lue en utilisant le circuit de détection 902, la tension sur le rail d'alimentation VSS restant basse si le noeud VI de la cellule mémoire est à une tension haute, et la tension sur le rail d'alimentation VSS montant si le noeud VI de la cellule mémoire est à une tension basse.
Un avantage du mode de réalisation de la figure 9Ά est que les opérations de lecture CAM et SRAM peuvent être réalisées à une vitesse relativement élevée sans problèmes de stabilité. En effet, une opération de lecture rapide réalisée par l'intermédiaire de la ligne de bit BLL en permettant à la ligne de bit BLL de se décharger en dessous de VDD, en utilisant une cellule mémoire d'une taille SRAM standard et avec le signal WL1 ou WL2 à VDD et le rail VSS à la masse, peut conduire à des problèmes de stabilité car cela peut provoquer une opération d'écriture dans la cellule. En réalisant l'opération de lecture par l'intermédiaire du rail d'alimentation VSS, les transistors dé la cellule mémoire peuvent être dimensionnés de façon à permettre un.fonctionnement rapide sans provoquer de problèmes de stabilité dans la cellule.
Bien sûr, bien que dans l'exemple de la figure 9A le circuit de détection 902 soit couplé au rail d'alimentation VSS, dans des variantes de réalisation, il pourrait être couplé au rail d'alimentation VDD et à la tension d'alimentation VDD, et la ligne de bit pourrait être couplée à la tension d'alimentation VSS pendant des opérations de lecture CAM et SRAM. Dans un tel cas, l'écriture dans la cellule mémoire est aussi par exemple réalisée avec la ligne de bit BLL au niveau ou environ au niveau de la tension d'alimentation VDD.
Un avantage des modes de réalisation décrits ici est qu'on peut obtenir une cellule CAM compacte, qui peut fonctionner à la fois dans un mode CAM et dans un mode SRAM. En outre, la cellule CAM peut avantageusement être lue pendant une opération de lecture CAM en utilisant une seule ligne de bit couplée de façon indépendante aux deux noeuds de mémorisation de la cellule CAM, et en utilisant un seul amplificateur de détection couplé à la ligne de bit.
Avec la description ainsi faite d'au moins un mode de réalisation illustratif, diverses altérations, modifications, et améliorations apparaîtront à l'homme de l'art.
Par exemple, il sera clair pour l'homme de l'art que bien qu'on ait décrit des circuits dans lesquels les transistors sont des transistors MOS ou TFET, on pourrait utiliser d'autres technologies de transistors.
En outre, il sera clair pour l'homme de l'art que les valeurs particulières des tensions d'alimentation mentionnées ici le· sont simplement à titre d'exemple, et qu'on pourrait utiliser d'autres niveaux de tension, en fonction par exemple de la technologie des transistors.

Claims (15)

  1. REVENDICATIONS
    1. Mémoire adressable par contenu (CAM) comprenant au moins une cellule CAM (100, 300, 310, 600) comprenant : des premier et deuxième inverseurs (102, 104) couplés de façon croisée entre des premier et deuxième noeuds de mémorisation (VI, V2) ; un premier transistor (114) couplant le premier noeud de mémorisation (VI) à une ligne de bit (BLL) , le premier transistor (114) étant contrôlé par un premier signal de commande (WL1) ; un deuxième transistor (116) couplant le deuxième noeud de mémorisation (V2) à la ligne de bit (BLL) , le deuxième transistor (116) étant contrôlé par un deuxième signal de commande (WL2) ; et un circuit de commande (118) adapté à réaliser une opération de lecture CAM en pré-chargeant la ligne de bit (BLL) à un premier niveau de tension, puis en activant sélectivement le premier ou le deuxième transistor sur la base d'un bit de données d'entrée (Dj^).
  2. 2. CAM selon la revendication 1, comprenant en outre un circuit de détection (120, 902) adapté à détecter un succès ou un échec de CAM en fonction du niveau de tension sur la ligne de bit (BLL), ou sur un premier rail de tension d'alimentation (VSS) des premier et deuxième inverseurs, suite à l'activation du premier ou du deuxième transistor (114, 116) .
  3. 3. CAM selon la revendication 2, dans laquelle le circuit de détection (120, 902) est couplé à la ligne de bit (BLL).
  4. 4. CAM selon la revendication 2, dans laquelle le circuit de détection (120, 902) est couplé au premier rail de tension d'alimentation (VSS) des premier et deuxième inverseurs.
  5. 5. CAM selon l'une quelconque des revendications 2 à 4, comprenant une pluralité desdites cellules CAM couplée à la ligne de bit (BLL), la pluralité de cellules CAM formant un mot CAM, et dans laquelle les bits de données d'entrée de la pluralité de cellules CAM forment un mot, et le circuit de détection (120) est adapté à détecter un succès ou un échec de mot en fonction du niveau de tension sur la ligne de bit, ou sur le premier rail de tension d'alimentation (VSS), suite à l'activation du premier ou du deuxième transistor (114, 116).
  6. 6. CAM selon l'une quelconque des revendications 1 à 5, dans laquelle le circuit de détection (120) est adapté à détecter un succès en détectant un changement de tension inférieur à un premier seuil, et à détecter un échec en détectant un changement de tension supérieur au premier seuil.
  7. 7. C.AM selon l'une quelconque des revendications 1 à 6, dans laquelle le circuit de commande (118) est en outre adapté à réaliser une opération de lecture SRAM d'une valeur de données mémorisée sur les premier et deuxième noeuds de mémorisation (VI, V2) en pré-chargeant la ligne de bit (BLL) au premier niveau de tension ou à un autre de niveau de tension, et en activant le premier transistor (114) .
  8. 8. CAM selon l'une quelconque des revendications 1 à 7, dans laquelle le circuit de commande (120) est en outre adapté à réaliser une opération d'écriture sur les premier et deuxième noeuds de mémorisation (VI, V2) de ladite au moins une cellule CAM en couplant la ligne de bit (BLL) au premier niveau de tension ou à un autre niveau de tension tout en activant sélectivement le premier ou le deuxième transistor sur la base d'un bit de données à écrire dans la cellule CAM.
  9. 9. CAM selon l'une quelconque des revendications 1 à 7, dans laquelle la ligne de bit (BLL) comprend des première et deuxième portions (BLL-A, BLL-B), le premier transistor (114) étant couplé à la première portion (BLL-A) et le deuxième transistor (116) étant couplé à la deuxième portion (BLL-B), les première et deuxième portions étant couplées entre elles par un autre transistor (302), le circuit de commande étant adapté à réaliser une opération d'écriture dans ladite au moins une cellule mémoire en désactivant l'autre transistor (302) et en appliquant des tensions indépendantes aux première et deuxième portions.
  10. 10. CAM selon l'une quelconque des revendications 1 à 9, dans laquelle les premier et deuxième inverseurs de ladite au moins une cellule CAM sont couplés entre un premier rail de tension d'alimentation (VDD) au premier niveau de tension et un deuxième rail de tension d'alimentation (VSS) à un deuxième niveau de tension supérieur à la masse et inférieur au premier niveau de tension, et dans laquelle pendant une opération d'écriture dans ladite au moins une cellule CAM, l'un des premier et deuxième transistors est activé par une tension inférieure à la première tension d'alimentation (VDD).
  11. 11. CAM selon l'une quelconque des revendications 1 à 10, dans laquelle ladite au moins une cellule CAM comprend en outre : un troisième transistor (312) couplé entre le deuxième noeud de mémorisation (V2) et une autre ligne de bit (BLR), le troisième transistor étant contrôlé par le deuxième signal de commande (WL2) ; et un quatrième transistor (314) couplé entre le premier noeud de mémorisation (VI) et l'autre ligne de bit (BLR), le quatrième transistor étant contrôlé par le premier signal de commande (WL1), dans laquelle les premier, deuxième, troisième et quatrième transistors (114, 116, 312, 314) sont des TFET (transistors à effet de champ à effet tunnel).
  12. 12. CAM selon la revendication 11, dans laquelle ladite au moins une cellule CAM comprend en outre un cinquième transistor (602) couplé entre l'autre ligne de bit (BLR) et une ligne de sortie de lecture (RBL), un noeud de commande du cinquième transistor étant couplé au deuxième noeud de mémorisation (V2).
  13. 13. CAM selon l'une quelconque des revendications 1 à 12, comprenant : au moins une autre cellule CAM (100, 300, 310, 600) couplée à la ligne de bit (BLL) par un premier transistor (114) contrôlé par un premier signal de commande (WLl) et par un deuxième transistor (116) contrôlé par un deuxième signal de commande (WL2), le circuit de commande (118) étant adapté à masquer ladite au moins une autre cellule CAM pendant l'opération de lecture CAM en désactivant à la fois les premier et deuxième transistors de ladite au moins une autre cellule CAM pendant l'opération de lecture CAM.
  14. 14. Procédé pour réaliser une opération de CAM (mémoire adressable par contenu) dans au moins une cellule CAM comprenant : des premier et deuxième inverseurs (102, 104) couplés de façon croisée entre des premier et deuxième noeuds de mémorisation (VI, V2) ; un premier transistor (114) couplant le premier de noeud de mémorisation à une ligne de bit (BLL), le premier transistor étant contrôlé par un premier signal de commande (WLl) ; et un deuxième transistor (116) couplant le deuxième noeud de mémorisation (V2) à la ligne de bit (BLL), le deuxième transistor (116) étant contrôlé par un deuxième signal de commande (WL2), le procédé comprenant : précharger, par un circuit de commande (118), la ligne de bit (BLL) à un premier niveau de tension ; et activer sélectivement, par le circuit de commande (118), soit le premier soit le deuxième transistor (114, 116) sur la base d'un bit de données d'entrée (Dj^).
  15. 15. Procédé selon la revendication 14, comprenant en outre : détecter par un circuit de détection (120), un succès ou un échec en fonction du niveau de tension sur la ligne de bit (BLL), ou sur un rail d'alimentation (VSS) des premier et deuxième inverseurs, suite à l'activation du premier ou du deuxième transistor.
FR1560605A 2015-11-05 2015-11-05 Cam reconfigurable Expired - Fee Related FR3043488B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR1560605A FR3043488B1 (fr) 2015-11-05 2015-11-05 Cam reconfigurable
EP16196060.4A EP3166110B1 (fr) 2015-11-05 2016-10-27 Cam reconfigurable
US15/342,433 US9679649B2 (en) 2015-11-05 2016-11-03 Reconfigurable cam

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1560605A FR3043488B1 (fr) 2015-11-05 2015-11-05 Cam reconfigurable
FR1560605 2015-11-05

Publications (2)

Publication Number Publication Date
FR3043488A1 true FR3043488A1 (fr) 2017-05-12
FR3043488B1 FR3043488B1 (fr) 2018-04-27

Family

ID=55646684

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1560605A Expired - Fee Related FR3043488B1 (fr) 2015-11-05 2015-11-05 Cam reconfigurable

Country Status (3)

Country Link
US (1) US9679649B2 (fr)
EP (1) EP3166110B1 (fr)
FR (1) FR3043488B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10839906B2 (en) 2018-10-01 2020-11-17 Commissariat A L'energie Atomique Et Aux Energies Alternatives In memory computing (IMC) memory circuit having 6T cells

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10714181B2 (en) * 2016-11-30 2020-07-14 Taiwan Semiconductor Manufacturing Co., Ltd. Memory cell
FR3067481B1 (fr) * 2017-06-09 2019-07-26 Commissariat A L'energie Atomique Et Aux Energies Alternatives Architecture de memoire associative
US10878892B2 (en) * 2018-04-23 2020-12-29 Arm Limited Integrated circuit using discharging circuitries for bit lines
US20230037696A1 (en) * 2021-08-06 2023-02-09 Taiwan Semiconductor Manufacturing Company, Ltd. High-density & high-voltage-tolerable pure core memory cell

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030142524A1 (en) * 2002-01-07 2003-07-31 Uniram Technology, Inc. Methods for saving power and area for content addressable memory devices

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6373738B1 (en) * 2000-11-20 2002-04-16 International Business Machines Corporation Low power CAM match line circuit
US20030090921A1 (en) * 2001-11-15 2003-05-15 Afghahi Morteza Cyrus Content addressable memory match line sensing techniques
US6839256B1 (en) 2002-03-15 2005-01-04 Integrated Device Technology, Inc. Content addressable memory (CAM) devices having dedicated mask cell sub-arrays therein and methods of operating same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030142524A1 (en) * 2002-01-07 2003-07-31 Uniram Technology, Inc. Methods for saving power and area for content addressable memory devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANDREI VLADIMIRESCU ET AL: "Sub-picowatt retention mode TFET memory for CMOS sensor processing nodes", 2015 6TH INTERNATIONAL WORKSHOP ON ADVANCES IN SENSORS AND INTERFACES (IWASI), 19 June 2015 (2015-06-19), pages 266 - 270, XP055283177, ISBN: 978-1-4799-8981-2, DOI: 10.1109/IWASI.2015.7184974 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10839906B2 (en) 2018-10-01 2020-11-17 Commissariat A L'energie Atomique Et Aux Energies Alternatives In memory computing (IMC) memory circuit having 6T cells

Also Published As

Publication number Publication date
US20170133092A1 (en) 2017-05-11
EP3166110B1 (fr) 2019-09-18
EP3166110A1 (fr) 2017-05-10
US9679649B2 (en) 2017-06-13
FR3043488B1 (fr) 2018-04-27

Similar Documents

Publication Publication Date Title
KR101622922B1 (ko) 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치
EP2842229B1 (fr) Dispositif logique reprogrammable resistant aux rayonnements
FR3043488A1 (fr)
FR2774209A1 (fr) Procede de controle du circuit de lecture d&#39;un plan memoire et dispositif de memoire correspondant
FR2974666A1 (fr) Amplificateur de detection differentiel sans transistor de precharge dedie
FR2974667A1 (fr) Amplificateur de detection differentiel sans transistor de commutation
FR2974656A1 (fr) Amplificateur de detection differentiel sans transistor a grille de passage dedie
FR2799874A1 (fr) Dispositif de memoire a semiconducteur
FR2957449A1 (fr) Micro-amplificateur de lecture pour memoire
EP3092646A1 (fr) Procédé et circuit pour programmer des cellules de mémoire non volatile d&#39;une matrice mémoire volatile/non volatile
EP3633677A1 (fr) Circuit memoire imc a cellules 6t
EP1727147A1 (fr) Amplificateur de lecture pour mémoire dynamique
FR2650694A1 (fr) Memoire vive pour machine de traitement de donnees
TWI483250B (zh) 階層式動態隨機存取記憶體(dram)感測
US7995411B2 (en) Sensing and latching circuit for memory arrays
EP0601922A1 (fr) Mémoire EEPROM organisée en mots de plusieurs bits
US20150049565A1 (en) Apparatuses and methods for reducing current leakage in a memory
EP4020479A1 (fr) Lecture différentielle de mémoire rram à faible consommation
FR2810150A1 (fr) Dispositif de memoire vive dynamique et procede de commande d&#39;un acces en lecture d&#39;une telle memoire
FR2976114A1 (fr) Memoire double port permettant une lecture-ecriture simultanee
FR2903524A1 (fr) Dispositif de memoire avec commande programmable de l&#39;activation des amplificateurs de lecture.
FR2801410A1 (fr) Dispositif de memoire vive dynamique, et procede de lecture correspondant
FR3067481B1 (fr) Architecture de memoire associative
FR2965662A1 (fr) Circuit d&#39;aide a la lecture pour un dispositif memoire
FR2910168A1 (fr) Dispositif de memoire de type sram

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20170512

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 5

ST Notification of lapse

Effective date: 20210705