Brevet FR3067481A1 — publié le 20181214

B15500 - DD17323ST 1 ARCHITECTURE DE NEMOIRE ASSOCIATIVE Domaine de l'invention La présente description concerne le domaine des mémoires associatives. Exposé de l'art antérieur Une mémoire associative correspond à une mémoire ayant la capacité de reconnaître et de se souvenir d'une relation entre des éléments. La mise en oeuvre d'une mémoire associative en utilisant des circuits électriques permet de mettre en oeuvre des fonctions telles que la reconnaissance de modèles et l'informatique approximative, l'informatique d'inspiration neuronale et l'informatique neuromorphique. Des exemples de reconnaissance de modèles comprennent la détection automatique de langue, la reconnaissance vocale et la détection de visages. Quelques mises en oeuvre de mémoires associatives basées sur des algorithmes logiciels et sur l'utilisation de réseau neuronaux ont été proposées. Toutefois, les solutions existantes ont tendance à être inappropriées. En particulier, un inconvénient des mises en oeuvre logicielles est qu'elles sont très coûteuses en calcul, et ne peuvent pas être utilisées dans du matériel spécifique à ces applications vu la grande surface de puce et la forte consommation B15500 - DD17323ST 2 d'énergie d'une mise en oeuvre de logicielle. Dans le cas de réseaux neuronaux, la mise en oeuvre implique en général l'utilisation de mémoires non volatiles qui manquent de compatibilité avec la technologie CMOS en ce qui concerne les tensions de fonctionnement 5 et la vitesse. Il existe donc un besoin dans la technique d'une architecture de mémoire associative mise en oeuvre par un circuit compatible CMOS, et qui permette d'obtenir une surface de puce et une consommation d'énergie relativement faibles. 10 Résumé Un objet de modes de réalisation de la présente description est de répondre à un ou plusieurs besoins de l'art antérieur. 15 Selon un aspect, on prévoit une mémoire associative comprenant : une pluralité de groupes de cellules de mémoire adressable par contenu, chaque groupe de cellules CAM recevant un mot de données d'entrée pour comparaison avec un mot de données mémorisé par le groupe, les cellules CAM de chaque groupe étant 20 couplées à une piste de concordance correspondante du groupe, chaque piste de concordance étant couplée à un premier rail de tension d'alimentation, et chaque cellule CAM de chaque groupe étant agencée pour coupler la piste de concordance correspondante du groupe à un deuxième rail de tension d'alimentation sur la base d'une concordance ou d'une non concordance entre un bit mémorisé dans la cellule CAM et un bit correspondant du mot de données d'entrée ; et un circuit de détection couplé à la piste de concordance de chaque groupe et agencé pour générer, sur la base d'un niveau de tension sur chaque piste de concordance, des signaux de sortie indiquant un groupe de cellules CAM ayant le plus de bits en concordance avec le mot d'entrée. Selon un mode de réalisation, le circuit de détection est agencé pour convertir les niveaux de tension sur les pistes de concordance en des courants correspondants sur des pistes B15500 - DD17323ST 3 d'entrée correspondantes, et pour générer les signaux de sortie sur la base desdits courants. Selon un mode de réalisation, le circuit de détection comprend un circuit de génération de courant couplé à chaque piste 5 de concordance, chaque circuit de génération de courant comprenant un transistor couplant la piste de concordance au premier rail de tension d'alimentation et un miroir de courant adapté à générer ledit courant sur la piste d'entrée correspondante. Selon un mode de réalisation, le circuit de détection 10 comprend, pour chaque piste de concordance, un transistor ayant son noeud de commande couplé à la piste de concordance et ses noeuds de conduction principaux couplés au premier rail de tension d'alimentation et à la piste d'entrée correspondante. Selon un mode de réalisation, le circuit de détection 15 comprend un sous-circuit de détection associé à chaque piste de concordance, chaque sous-circuit de détection comprenant une paire de transistors couplés en parallèle par l'intermédiaire de leurs noeuds de conduction principaux entre la piste d'entrée correspondante et le deuxième rail de tension d'alimentation, et 20 un autre transistor ayant son noeud de commande couplé à la piste d'entrée correspondante, un premier de ses noeuds de conduction principaux couplé à une première source de courant, et un deuxième de ses noeuds de conduction principaux couplé à une piste de sortie du sous-circuit de détection, les pistes de sortie de chaque sous- 25 circuit de détection étant couplées à une deuxième source de courant. Selon un mode de réalisation, chaque cellule CAM comprend : des premier et deuxième inverseurs couplés de façon croisée entre des premier et deuxième noeuds de mémorisation ; un 30 premier transistor couplant le premier noeud de mémorisation à la piste de concordance de la cellule CAM, 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 piste de concordance de la cellule CAM, le deuxième transistor étant contrôlé par un deuxième signal de commande ; et un circuit de B15500 - DD17323ST 4 commande adapté à réaliser une opération de lecture de CAM en pré-chargeant la piste de concordance à un premier niveau de tension, puis en activant sélectivement l'un ou l'autre des premier et deuxième transistors sur la base d'un bit de données d'entrée . 5 Selon un mode de réalisation, chaque cellule CAM comprend une paire d'éléments résistifs programmables. Selon un mode de réalisation, chaque cellule CAM comprend : un premier transistor à effet de champ tunnel d'un premier type de conductivité couplé entre une piste de concordance 10 de la cellule CAM et une première piste d'entrée de données correspondante ; un deuxième transistor à effet de champ tunnel d'un deuxième type de conductivité couplé entre la piste de concordance de la cellule CAM et une deuxième piste d'entrée de données complémentaire de la première piste d'entrée de données ; 15 et un noeud de mémorisation correspondant couplé à des noeuds de commande des premier et deuxième transistors à effet de champ tunnel. Selon un mode de réalisation, la mémoire associative comprend en outre un amplificateur de lecture couplé à une piste 20 de sortie de chacun des signaux de sortie et adapté à amplifier le signal de sortie pour générer un bit de sortie. Selon un autre aspect, on prévoit un procédé pour comparer, en utilisant une mémoire associative, un mot de données d'entrée à une pluralité de mots de données, le procédé 25 comprenant : mémoriser la pluralité de mots de données dans une pluralité de groupes de cellules de mémoire adressable par contenu ; recevoir, par chaque groupe de cellules CAM, le mot de données d'entrée pour comparaison avec le mot de données mémorisé par le groupe, les cellules CAM de chaque groupe étant couplées à 30 une piste de concordance correspondante du groupe, chaque piste de concordance étant couplée à un premier rail de tension d'alimentation ; coupler, par chaque cellule CAM de chaque groupe, la piste de concordance correspondante du groupe à un deuxième rail de tension d'alimentation sur la base d'une concordance ou 35 d'une non concordance entre un bit mémorisé dans la cellule CAM B15500 - DD17323ST 5 et un bit correspondant du mot de données d'entrée ; et générer, par un circuit de détection couplé à la piste de concordance de chaque groupe et sur piste de concordance, 5 de cellules CAM ayant d'entrée. Brève description des Ces objets, la base d'un niveau de tension sur chaque des signaux de sortie indiquant un groupe le plus de bits en concordance avec le mot caractéristiques et avantages, ainsi que dessins d'autres seront exposés en détail dans la description suivante de 10 modes de réalisation particuliers faite à titre illustratif et non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 illustre schématiquement une mise en OEuvre de mémoire associative selon un exemple de réalisation de la 15 présente description ; la figure 2 illustre schématiquement une mémoire adressable par contenu de la mémoire associative de la figure 1 plus en détail ; la figure 3 illustre schématiquement un circuit WTA (de 20 l'anglais "winner takes all" - le gagnant prend tout) de la mémoire associative de la figure 1 plus en détail ; la figure 4 est un chronogramme illustrant un exemple de signaux dans le circuit WTA de la figure 3 ; les figures 5A et 5B illustrent schématiquement des 25 circuits de génération de courant de concordance du circuit WTA de la figure 3 selon des variantes de réalisation ; la figure 6 illustre schématiquement une cellule CAM (de l'anglais "content addressable memory" - mémoire adressable par contenu) de la mémoire associative de la figure 1 plus en détail 30 selon un exemple de réalisation ; la figure 7 illustre schématiquement une cellule CAM de la mémoire associative de la figure 1 plus en détail selon un autre exemple de réalisation ; B15500 - DD17323ST 6 la figure 8 illustre schématiquement une cellule CAM de la mémoire associative de la figure 1 plus en détail selon encore un autre exemple de réalisation ; et la figure 9 illustre schématiquement un mot CAM de la 5 mémoire associative de la figure 1 plus en détail selon un exemple de réalisation. Description détaillée Le terme "connecté" est utilisé ici pour désigner une connexion électrique directe entre deux composants, alors que le 10 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 COUEle des résistances, des condensateurs ou des transistors. Le terme "environ" est utilisé pour désigner une tolérance de +/- 10 % sur la valeur en question. 15 La figure 1 illustre schématiquement une mémoire associative 100 selon un exemple de réalisation. La mémoire comprend par exemple une mémoire adressable par contenu (CAM) 102 comprenant N groupes 104 de cellules CAM, où N est par exemple égal à deux ou plus. Chaque groupe 104 mémorise un mot de données 20 correspondant W1 à WN. Les mots de données ont une longueur de J bits, J étant par exemple compris entre 8 et 128, bien que d'autres longueurs de mot de données soit possibles. Chaque groupe 104 de cellules CAM reçoit aussi un mot de données d'entrée DL, par exemple de J bits. Chaque groupe 104 de cellules CAM est 25 couplé à une piste de concordance correspondante ML [1] à ML[N]. Les pistes de concordance sont à leur tour couplées à un circuit du type "le gagnant prend tout" (WTA) 106, qui à son tour fournit des signaux de données de sortie DOUT[1] à DOUT[N]. Dans certains modes de réalisation, chacun des signaux 30 de sortie DOUT[1] à DOUT[N] est fourni à un amplificateur de lecture (SA) 108 correspondant, les amplificateurs de lecture amplifiant les signaux de sortie DOUT[1] à DOUT[N] pour générer des signaux de sortie SA[1] à SA[N] correspondants. En fonctionnement, un mot de données d'entrée DL est par 35 exemple comparé, bit à bit dans la CAM 102, au mot de données B15500 - DD17323ST 7 mémorisé dans chacun des groupes 104 correspondants. Les pistes de concordance ML[1] à ML[N] sont par exemple couplées à une première tension d'alimentation, comme VDD, pendant l'opération de comparaison. Dans chaque groupe 104 de cellules CAM, chaque 5 bit concordant avec le bit correspondant du mot de données d'entrée DL provoque par exemple le couplage de la piste de concordance correspondante à un deuxième niveau de tension, couine la masse. Le niveau de tension sur chaque piste de concordance ML[1] à ML[N] va ainsi dépendre de la quantité de similarité entre 10 le mot de données d'entrée DL et le mot de données Wl à WN mémorisé correspondant. Le circuit WTA 106 identifie par exemple, sur la base du niveau de tension sur chaque piste de concordance ML[1] à ML[N], le mot de données mémorisé qui est le plus proche du mot de données d'entrée, en d'autres termes celui qui a le plus grand 15 nombre de bits concordants, et génère les signaux de sortie DOUT[1] à DOUT[N] indiquant ce résultat. Dans certains modes de réalisation, l'un des groupes de cellules CAM 104 de la CAM est mis en oeuvre par une cellule factice qui fournit un niveau de tension sur sa piste de concordance 20 correspondant à un nombre donné de bits concordants, par exemple 5 bits. De cette manière, cette piste de concordance va être identifiée comme étant la concordance la plus proche à moins que l'un des autres mots ait plus de 5 bits de similarité avec le mot d'entrée. 25 La figure 2 illustre schématiquement la CAM 102 de la mémoire associative 100 de la figure 1 plus en détail selon un exemple de réalisation. La CAM 102 comprend par exemple une matrice de cellules CAM 202, les cellules CAM de chaque mot Wl à WN étant couplées à la piste de concordance ML[1] à ML[N] 30 correspondante. Chaque cellule CAM 202 est par exemple en outre couplée à un rail de masse GND, et reçoit l'inverse d'un bit correspondant du mot de données d'entrée DL. Par exemple, la rangée supérieure de cellules CAM 202 en figure 2 reçoit un premier bit inversé DL[1] du mot de données d'entrée, la deuxième rangée 35 de cellules CAM 202 reçoit un deuxième bit inversé DL[2] du mot B15500 - DD17323ST 8 de données d'entrée, et ainsi de suite en descendant jusqu'à une rangée J, qui reçoit le J-ème bit inversé in[J] du mot de données d'entrée. Chaque piste de concordance ML[1] à ML[N] est aussi couplée, par l'intermédiaire d'un transistor 204 correspondant, à 5 un rail de tension d'alimentation VDD. Les transistors 204 sont par exemple des transistors NOS à canal P (PMOS) et sont par exemple contrôlés par un signal de coitu[tande PRE_ML. Chaque cellule CAM 202 compare par exemple son bit d'entrée inversé du mot de données DL à son bit de données mémorisé. Dans le cas d'une 10 concordance CAM, en d'autres termes dans le cas où le bit de données d'entrée concorde avec le bit de données mémorisé et le bit de données d'entrée inversé est complémentaire du bit de données mémorisé, la cellule CAM 202 couple la piste de concordance correspondante au rail de masse. Dans certains cas, 15 chaque cellule CAM 202 est en outre couplée au rail de tension d'alimentation VDD, et dans le cas d'un échec CAM, en d'autres termes dans le cas où le bit de données d'entrée est complémentaire du bit de données mémorisé et le bit de données d'entrée inversé est le même que le bit de données mémorisé, chaque cellule CAM 20 202 couple par exemple la piste de concordance correspondante au rail d'alimentation VDD. Par conséquent, la piste de concordance ML ayant le courant de décharge maximum vers la masse par l'intermédiaire des cellules CAM 202 va être celle qui correspond au groupe de cellules CAM 104 ayant le plus grand nombre de 25 concordances avec le mot de données d'entrée, en d'autres termes un nombre maximum de bits non concordants avec le mot de données d'entrée inversé. La figure 3 illustre schématiquement le circuit WTA 106 de la mémoire associative 100 de la figure 1 plus en détail selon 30 un exemple de réalisation. Le circuit WTA 106 comprend par exemple des sous-circuits 302-1 à 302-N couplés aux pistes de concordance ML[1] à ML[N] respectivement. Dans chaque sous-circuit 302-1 à 302-N, la piste de concordance ML[1] à ML[N] correspondante est par exemple couplée par l'intermédiaire d'un circuit de génération 35 de courant correspondant 303, à un noeud 304, qui est à son tour 315500 - DD17323ST 9 couplé au rail de masse par l'intermédiaire de la connexion en parallèle d'une paire de transistors 306, 308. Les circuits de génération de courant 303 des sous-circuits 302-1 à 302-N génèrent par exemple des courants I à IwN respectivement en fonction du 5 niveau de tension sur la piste de concordance ML[1] à ML[N] correspondante. Le noeud 304 est en outre couplé au noeud de commande d'un transistor 310, qui est couplé par l'intermédiaire de ses noeuds de conduction principaux entre d'autres noeuds 312 et 313. Le noeud 10 312 est par exemple couplé au rail de tension d'alimentation VDD par l'intermédiaire de la connexion en parallèle d'une paire de transistors 314 et 316, et fournit des données de sortie DOUT pour le sous-circuit. Les transistors 314 et 316 sont par exemple des transistors PMOS, le transistor 314 recevant sur sa grille 15 l'inverse PRE_WTA d'un signal PRE_WTA, et le transistor 316 ayant sa grille couplée au noeud 312. Les transistors 306, 308 et 310 sont par exemple des transistors NMOS, le transistor 308 recevant sur sa grille le signal PRE_WTA, le transistor 310 ayant sa grille couplée au noeud 304, et le transistor 306 ayant sa grille couplée 20 au noeud 313. Les noeuds 313 de chacun des sous-circuits 302-1 à 302-N sont par exemple couplés à un noeud commun 318, qui est à son tour couplé à la masse par l'intermédiaire d'une source de courant 320. On va maintenant décrire plus en détail le fonction-25 nement du circuit WTA de la figure 3 en faisant référence à la figure 4. La figure 4 est un chronogramme illustrant des exemples des signaux sur les pistes de concordance ML[1], ML[2] et ML[3], des signaux PRE_WTA, DOUT[1], DOUT[2] et DOUT[3], et des signaux 30 d'amplificateur de lecture SA[1], SA[2] et SA[3]. Une opération de comparaison est par exemple déclenchée par le signal PRE_WTA montant et le signal PRE_WTA (non illustré) descendant. Avant cela, les pistes de concordance sont toutes par exemple à la tension d'alimentation VDD, qui est de 1 V dans l'exemple de la 35 figure 4. Les tensions des pistes de concordance descendent B15500 - DD17323ST 10 ensuite à des niveaux basés sur le nombre de bits concordants. Dans l'exemple de la figure 4, le mot de données W1 est celui ayant le plus de bits concordants, et ainsi le niveau de tension sur la piste de concordance ML[1] descend plus bas que sur les 5 autres pistes en raison du courant plus élevé résultant du nombre plus élevé de cellules CAM, parmi les mots, qui couplent cette piste de concordance à la masse. En faisant référence à la figure 3, cela provoque par exemple un courant Iwl relativement élevé dans le sous-circuit 302-1 comparé à 1w2 à IwN, et contrôle ainsi 10 la tension sur le noeud 313. Cela provoque le passage d'un courant dans le chemin défini par les transistors 316 et 310 et la source de courant 320. La tension DOUT[1] va ainsi chuter. La source de courant 320 limite toutefois le courant total à une faible valeur dans, ou à proximité de la plage du courant Iwi, ce qui a pour 15 résultat que pratiquement aucun courant ne passe dans les autres sous-circuits 302-2 à 302-N. Ainsi, les signaux de sortie DOUT[2] à DOUT[N] correspondants vont rester hauts. Ce comportement est connu dans la technique sous le nom de "le gagnant prend tout", puisque le sous-circuit ayant le courant maximum consomme tout le 20 courant du circuit. Dans certains modes de réalisation, chacun des signaux DOUT[1] à DOUT[N] est fourni à un amplificateur de lecture correspondant. Le signal PRE_WTA est par exemple amené à l'état bas, et peu de temps après, les amplificateurs de lecture sont 25 par exemple activés afin d'amplifier les niveaux de tension des signaux DOUT[1] à DOUT[N], seul le signal SA[1] passant à l'état bas alors que les autres signaux SA[2] à SA[N] passent à l'état haut. La figure 5A illustre schématiquement le circuit de 30 génération de courant 303 du sous-circuit 302-1 de la figure 3 plus en détail selon un exemple de réalisation dans lequel il comprend un transistor 502, qui est par exemple un transistor PMOS, ayant sa grille couplée à la piste de concordance ML [1] correspondante. De cette manière, le courant Iwi est inversement 35 proportionnel au niveau de tension sur la piste de concordance B15500 - DD17323ST 11 ML[1]. Les circuits de génération de courant 303 des autres sous-circuits 302-2 à 302-N sont par exemple mis en oeuvre de manière similaire, mais la piste de concordance ML[1] est remplacée par la piste de concordance ML[2] à ML[N] correspondante. 5 La figure 5B illustre schématiquement le transistor 204 de la CAM et le circuit de génération de courant 303 du sous-circuit 302-1 de la figure 3 plus en détail selon un exemple de variante par rapport à la figure 5A. Dans l'exemple de la figure 5B, le circuit de génération de courant 303 comprend un transistor 10 504 couplé par ses noeuds de conduction principaux entre le rail de tension d'alimentation VDD et un noeud intermédiaire 506. Un autre transistor 508 est par exemple couplé entre le noeud 506 et la piste de concordance ML[1] par ses noeuds de conduction principaux. Un autre transistor 510 a l'un de ses noeuds de 15 conduction couplé au noeud 506, son autre noeud de conduction fournissant le courant Iwi. Chacune des grilles des transistors 508 et 510 est par exemple couplée à la piste de concordance ML[1], et la grille du transistor 504 reçoit par exemple un signal PRE WTA. Les transistors 504, 508 et 510 sont par exemple des 20 transistors PMOS, et le signal PRE_WTA est par exemple amené à l'état bas afin d'activer la génération de courant. Les transistors 508 et 510 forment alors un miroir de courant de sorte que le courant Iwl suit le courant dans la piste de concordance ML[1]. Les circuits de génération de courant 303 des autres sous- 25 circuits 302-2 à 302-N sont par exemple mis en oeuvre de manière similaire, mais la piste de concordance ML[1] est remplacée par la piste de concordance ML[2] à ML[N] correspondante. Dans le mode de réalisation de la figure 5B, les transistors 504 et 508 servent à contrebalancer les réseaux de 30 tirage vers le bas formés par les cellules CAM dans lesquelles il y a un état de 'concordance' tirant vers le bas la piste de concordance. Cela empêche par exemple une décharge complète d'une piste de concordance et évite ainsi un "état de compétition" dans lequel toutes les pistes de concordance se déchargent à la masse 35 ce qui rend très difficile de détecter la différence de décharge B15500 - DD17323ST 12 entre les pistes de concordance. Avec les dispositifs de tirage vers le haut de la figure 5B, les valeurs sur les pistes de concordance à la suite de l'activation de la recherche CAM seront uniques pour chaque configuration de bits concordants. 5 Alors que les figures 5A et 5B illustrent des exemples particuliers de la mise en oeuvre des circuits de génération de courant 303, d'autres mises en oeuvre seraient possibles. Les figures 6 à 8 illustrent des exemples de mise en oeuvre de la cellule CAM 202 de la figure 2. 10 En référence à la figure 6, selon un mode de réalisation, la cellule CAM 202 comprend par exemple une portion de mémorisation formée par des inverseurs couplés de façon croisée 602, 604 qui forment une structure du type bascule. Les inverseurs 602, 604 sont couplés de façon croisée entre des noeuds de 15 mémorisation Q, QR de la cellule CAM. Par exemple, l'inverseur 602 comprend des transistors 606 et 608 couplés par leurs noeuds de conduction principaux entre un rail de tension d'alimentation VDD et un rail de tension d'alimentation VSS, qui est à la masse GND dans la figure. Un noeud intermédiaire entre les transistors 20 606, 608 constitue le noeud de mémorisation Q, et les noeuds de commande des transistors 606, 608 sont couplés au noeud de mémorisation QR. L'inverseur 604 comprend par exemple des transistors 610 et 612 couplés par leurs noeuds de conduction principaux entre les rails de tension d'alimentation VDD et VSS, 25 ce dernier rail étant à la masse GND dans la figure. Un noeud intermédiaire entre les transistors 610, 612 forme le noeud de mémorisation QR, et les noeuds de commande des transistors 610, 612 sont couplés au noeud de mémorisation Q. Le noeud de mémorisation QR est couplé à une piste de 30 concordance ML correspondante de la cellule CAM par l'intermédiaire des noeuds de conduction principaux d'un transistor 614. De façon similaire, le noeud de mémorisation Q est couplé à la piste de concordance ML par l'intermédiaire des noeuds de conduction principaux d'un transistor 616. Le transistor 614 est 35 contrôlé au niveau de son noeud de commande par un signal de B15500 - DD17323ST 13 commande WL1, et le transistor 616 est contrôlé au niveau de son noeud de commande par un signal de commande WL2, les signaux de commande WL1, WL2 étant des signaux de commande pour introduire le mot de données DL dans la CAM. Les transistors 606 à 616 sont 5 par exemple des transistors MOS, les transistors 614 et 616 étant par exemple des transistors NOS à canal N (NMOS) ayant leurs sources connectées aux noeuds QR et Q respectivement. Les signaux de commande WL1 et WL2 sont par exemple générés par un circuit de commande (CTRL) 618, qui par exemple 10 reçoit une valeur de données d'entrée DL[j] du mot de données DL. Comme cela a été expliqué précédemment, dans le cas où une décharge maximum de la piste de concordance se produit pour la concordance la plus proche, si la valeur de données d'entrée DL[j] est à un niveau logique 1, le signal WL2 est par exemple activé à l'état 15 haut et le signal WL1 reste bas, alors que si la valeur de données d'entrée DL[j] est au niveau logique 0, le signal WL1 est par exemple activé à l'état haut et le signal WL2 reste bas. La figure 7 illustre schématiquement une variante de réalisation de la cellule CAM 202. La cellule comprend par exemple 20 une paire d'inverseurs 702, 704 couplés de façon croisée entre des noeuds de mémorisation Q et QR. Le noeud Q est couplé à une piste de bit BL par l'intermédiaire d'un transistor d'accès 706, et le noeud QR est couplé à une piste de bit BLB par l'intermédiaire d'un transistor d'accès 708. Les transistors 706 et 708 reçoivent 25 sur leurs noeuds de commande un signal de piste de mot WL. La cellule 202 de la figure 7 comprend en outre une paire de portes ET, dont une première est formée par la connexion en série d'une paire de transistors 710 et 712 couplés entre la piste de concordance ML et un noeud intermédiaire 714, et dont la 30 deuxième est formée par la connexion en série d'une paire de transistors 716 et 718 couplés entre la piste de concordance ML et le noeud intermédiaire 714. Le transistor 710 a son noeud de commande couplé au noeud de mémorisation QR, le transistor 712 a son noeud de commande couplé à la piste de bit BL, le transistor 35 716 a son noeud de commande couplé au noeud de mémorisation Q, et B15500 - DD17323ST 14 le transistor 718 a son noeud de comiitande couplé à la piste de bit BLB. Bien que le noeud 714 puisse être couplé au rail de masse directement, dans certains modes de réalisation il est couplé au rail de masse par l'intermédiaire d'un autre transistor 720, comme 5 cela est illustré en figure 7. Ce transistor 720 est par exemple contrôlé par un signal de validation de recherche C2-\M. En fonctionnement, la valeur inversée du bit de données d'entrée à comparer par la cellule CAM est introduite par l'intermédiaire des pistes de bit BL et BLB. Par exemple, si le 10 bit d'entrée est à un niveau logique 1, la piste de bit BL est à un niveau logique 0 et la piste de bit BLB est à un niveau logique 1, et si le bit d'entrée est à un niveau logique 0, la piste de bit BL est à un niveau logique 1 et la piste de bit BLB est à un niveau logique 0. Les portes ET formées par les transistors 710 à 15 718 comparent le bit d'entrée au bit mémorisé par la cellule CAM et couplent la piste de concordance ML à la masse s'il y a concordance. La figure 8 illustre schématiquement encore un autre mode de réalisation de la cellule CAM 202, basé sur une cellule 20 de mémoire non volatile. La cellule comprend par exemple une paire d'éléments résistifs de mémorisation non volatile 802, 804 qui peuvent par exemple être programmés chacun pour avoir un niveau de résistance haut ou bas. L'élément 802 est par exemple couplé entre un noeud intermédiaire 806 et un rail de commande VL. 25 L'élément 804 est par exemple couplé entre un noeud intermédiaire 808 et le rail de commande VL. Le noeud 806 est en outre couplé à une piste de données d'écriture DW par l'intermédiaire d'un transistor d'accès 810, et de façon similaire le noeud 808 est couplé à une piste de données d'écriture complémentaire DVV par 30 l'intermédiaire d'un transistor d'accès 812. Les transistors 810, 812 ont leurs noeuds de commande couplés à une piste de sélection WS. La cellule 202 de la figure 8 comprend en outre une paire de transistors 814, 816 couplés en série entre des pistes 35 d'entrée de données DL et DL. Le noeud de commande du transistor B15500 - DD17323ST 15 814 est couplé au noeud 806, et le noeud de commande du transistor 816 est couplé au noeud 808. Un noeud intermédiaire 818 entre les transistors 814, 816 est par exemple couplé au noeud de cominande d'un autre transistor 820 qui couple la piste de concordance ML 5 au rail de masse. En fonctionnement, les transistors 810 et 812 sont utilisés pour programmer les états résistifs des éléments résistifs 802 et 804 pour leur donner des valeurs de résistance opposées. Le bit d'entrée de la cellule CAM est introduit par 10 l'intermédiaire des pistes de données DL et DL, la piste DL étant à un niveau logique 1 si le bit d'entrée est à un niveau logique 1, et la piste DL étant à un niveau logique 1 si le bit d'entrée est à un niveau logique 0. En variante, en fonction de l'orientation de l'élément résistif, les valeurs opposées à 15 celles-ci pourraient être appliquées aux pistes de données. Le bit d'entrée est comparé au bit mémorisé par les éléments résistifs 802, 804 en activant les transistors d'accès 810, 812 en utilisant le signal WS, et en appliquant une tension haute aux pistes DW et DVV. La valeur mémorisée est ensuite comparée aux 20 données d'entrée sur les pistes DL et DL. En particulier, la tension sur le noeud 818 va devenir haute s'il y a concordance puisque la piste de données DL est à un niveau logique 1 et l'élément résistif 802 est programmé avec une résistance haute de sorte que le transistor 814 est activé. La tension sur le noeud 25 818 va aussi devenir haute s'il y a concordance puisque la piste de données DL est à un niveau logique 1 et l'élément résistif 804 est programmé avec une résistance haute de sorte que le transistor 816 est activé. Si la tension sur le noeud 818 passe à l'état haut, le transistor 820 est activé ce qui provoque un tirage à la masse 30 de la piste de concordance ML. La figure 9 illustre schématiquement un groupe de cellules 104 de la CAM 102 de la figure 1 selon un exemple de réalisation. Un tel circuit est par exemple décrit plus en détail dans la demande de brevet français tR16/59649 intitulée "CAM 35 MEMORY CELL" et déposée le 6 octobre 2016. B15500 - DD17323ST 16 Le groupe de cellules CAM 104 comprend par exemple une connexion en série de transistors TFET (transistor à effet de champ tunnel) 902_1 à 902_N entre VD et VS. Parmi ces transistors, les transistors 902_1 à 902 m+1 sont par exemple des Tt-ET à canal 5 N, et les transistors 902 m+2 à 902_N sont des TFET à canal P. Des tensions sont mémorisées au niveau des noeuds intermédiaires L[1] à L[N] entre les transistors TFET. Par exemple, dans un mode de réalisation, les tensions sont mémorisées au niveau des noeuds intermédiaires L[1] à L[N] en 10 prévoyant, pour chaque noeud intermédiaire, un TFET à canal P et un TFET à canal N (non illustrés) ayant leurs drains couplés au noeud intermédiaire et leurs sources couplées à la piste de données d'entrée. Ainsi l'un de ces transistors va servir à écrire un niveau logique 1, et l'autre à écrire un niveau logique 0. La 15 grille du transistor nTFET est par exemple contrôlée par un signal de validation d'écriture, et la grille du pTFET par l'inverse du signal de validation d'écriture. En variante, les tensions sont mémorisées au niveau des noeuds intermédiaires L[1] à L[N] en prévoyant, pour chaque noeud 20 intermédiaire, un transistor MOS couplé par ses noeuds de source/drain entre la piste de données d'entrée et le noeud intermédiaire. Le transistor MOS pourrait être un dispositif à canal N activé par un signal de validation d'écriture, ou un dispositif à canal P activé par l'inverse du signal de validation 25 d'écriture. Chacun des noeuds intermédiaires est en outre couplé aux grilles d'une paire correspondante de TFET 904, 906. Les TFET 904 sont couplés respectivement entre des pistes de données DL[1] à DL[N] et la piste de concordance ML, et les TET 906 sont couplés 30 respectivement entre des pistes de données DLB[1] à DLB[N] et la piste de concordance ML. En fonctionnement, les bits du mot d'entrée sont appliqués aux pistes de données DLB, et l'inverse aux pistes de données DL, et ces bits sont comparés par les transistors 904, B15500 - DD17323ST 17 906 aux bits mémorisés correspondants. S'il y a une concordance, la piste de concordance est couplée au niveau logique 0. Un avantage des modes de réalisation décrits ici est qu'une mémoire associative peut être mise en oeuvre d'une manière 5 simple et compacte sur la base d'une CAM. Avec la description ainsi faite d'au moins un mode de réalisation illustratif, diverses altérations, modifications et améliorations apparaîtront facilement à l'homme de l'art. Par exemple, il apparaîtra clairement à l'homme de l'art 10 que bien qu'on ait décrit des circuits dans lesquels les transistors sont des transistors NOS ou TFET, on pourrait utiliser d'autres technologies de transistors. En outre, il apparaîtra clairement à l'homme de l'art que les valeurs particulières des tensions d'alimentation 15 mentionnées ici sont données simplement à titre d'exemple, et que d'autres niveaux de tension pourraient être utilisés, REVENDICATIONS1. Mémoire associative comprenant : une pluralité de groupes (104) de cellules de mémoire adressable par contenu (CAM) (202), chaque groupe de cellules CAM recevant un mot de données d'entrée pour comparaison avec un mot 5 de données mémorisé par le groupe, les cellules CAM (202) de chaque groupe étant couplées à une piste de concordance correspondante (ML[0] à ML[N]) du groupe, chaque piste de concordance étant couplée à un premier rail de tension d'alimentation (VDD), et chaque cellule CAM (202) de chaque groupe étant agencée pour 10 coupler la piste de concordance correspondante du groupe à un deuxième rail de tension d'alimentation (GND) sur la base d'une concordance ou d'une non concordance entre un bit mémorisé dans la cellule CAM et un bit correspondant du mot de données d'entrée ; et 15 un circuit de détection (106) couplé à la piste de concordance de chaque groupe et agencé pour générer, sur la base d'un niveau de tension sur chaque piste de concordance, des signaux de sortie indiquant un groupe (104) de cellules CAM ayant le plus de bits en concordance avec le mot d'entrée. 20 2. Mémoire associative selon la revendication 1, dans laquelle le circuit de détection (106) est agencé pour convertir les niveaux de tension sur les pistes de concordance en des courants correspondants (Iwi à IwN) sur des pistes d'entrée correspondantes, et pour générer les signaux de sortie sur la base 25 desdits courants. 3. Mémoire associative selon la revendication 2, dans laquelle le circuit de détection (106) comprend un circuit de génération de courant (303) couplé à chaque piste de concordance, chaque circuit de génération de courant (303) comprenant : 30 un transistor (204) couplant la piste de concordance au premier rail de tension d'alimentation (VDD) ; et un miroir de courant (508, 510) adapté à générer ledit courant sur la piste d'entrée correspondante. B15500 - DD17323ST 19 4. Mémoire associative selon la revendication 2, dans laquelle le circuit de détection (106) comprend, pour chaque piste de concordance, un transistor (502) ayant son noeud de commande couplé à la piste de concordance et ses noeuds de conduction principaux couplés au premier rail de tension d'alimentation (VDD) et à la piste d'entrée correspondante. 5. Mémoire associative selon l'une quelconque des revendications 2 à 4, dans laquelle le circuit de détection (106) comprend un sous-circuit de détection (302-1 à 302-N) associé à chaque piste de concordance, chaque sous-circuit de détection comprenant : une paire de transistors (306, 308) couplés en parallèle par l'intermédiaire de leurs noeuds de conduction principaux entre la piste d'entrée correspondante et le deuxième rail de tension 15 d'alimentation (GND) ; et un autre transistor (310) ayant son noeud de commande couplé à la piste d'entrée correspondante, un premier de ses noeuds de conduction principaux couplé à une première source de courant (316), et un deuxième de ses noeuds de conduction principaux couplé 20 à une piste de sortie (313) du sous-circuit de détection, les pistes de sortie de chaque sous-circuit de détection étant couplées à une deuxième source de courant (320). 6. Mémoire associative selon l'une quelconque des revendications 1 à 5, dans laquelle chaque cellule CAM comprend : 25 des premier et deuxième inverseurs (602, 604) couplés de façon croisée entre des premier et deuxième noeuds de mémorisation (QR, Q) ; un premier transistor (614) couplant le premier noeud de mémorisation (QR) à la piste de concordance de la cellule CAM, le 30 premier transistor (614) étant contrôlé par un premier signal de commande (WL1) ; un deuxième transistor (616) couplant le deuxième noeud de mémorisation (Q) à la piste de concordance de la cellule CAM, le deuxième transistor (616) étant contrôlé par un deuxième signal 35 de commande (WL2) ; et B15500 - DD17323ST 20 un circuit de commande (618) adapté à réaliser une opération de lecture de CAM en pré-chargeant la piste de concordance à un premier niveau de tension, puis en activant sélectivement l'un ou l'autre des premier et deuxième transistors 5 sur la base d'un bit de données d'entrée (DL). 7. Mémoire associative selon l'une quelconque des revendications 1 à 5, dans laquelle chaque cellule CAM comprend une paire d'éléments résistifs programmables (802, 804). 8. Mémoire associative selon l'une quelconque des 10 revendications 1 à 5, dans laquelle chaque cellule CAM comprend : un premier transistor à effet de champ tunnel (904) d'un premier type de conductivité couplé entre une piste de concordance de la cellule CAM et une première piste d'entrée de données (DL[1] à DL[N]) correspondante ; un deuxième transistor à effet de champ tunnel (906) d'un deuxième type de conductivité couplé entre la piste de concordance de la cellule CAM et une deuxième piste d'entrée de données (DLB[1] à DLB[N]) complémentaire de la première piste d'entrée de données ; et un noeud de mémorisation correspondant (L[1] à L[N]) couplé à des noeuds de commande des premier et deuxième transistors à effet de champ tunnel. 9. Mémoire associative selon l'une quelconque des revendications 1 à 8, comprenant en outre un amplificateur de lecture (108) couplé à une piste de sortie de chacun des signaux de sortie et adapté à amplifier le signal de sortie pour générer un bit de sortie. 10. Procédé pour comparer, en utilisant une mémoire associative, un mot de données d'entrée à une pluralité de mots 30 de données, le procédé comprenant : mémoriser la pluralité de mots de données dans une pluralité de groupes (104) de cellules de mémoire adressable par contenu (CAM) (202) ; recevoir, par chaque groupe de cellules CAM, le mot de 35 données d'entrée pour comparaison avec le mot de données mémorisé B15500 - DD17323ST 21 par le groupe, les cellules CAM (202) de chaque groupe étant couplées à une piste de concordance (ML[0] à ML[N]) correspondante du groupe, chaque piste de concordance étant couplée à un premier rail de tension d'alimentation (VDD) ; 5 coupler, par chaque cellule CAM (202) de chaque groupe, la piste de concordance correspondante du groupe à un deuxième rail de tension d'alimentation (GND) sur la base d'une concordance ou d'une non concordance entre un bit mémorisé dans la cellule CAM et un bit correspondant du mot de données d'entrée ; et 10 générer, par un circuit de détection (106) couplé à la piste de concordance de chaque groupe et sur la base d'un niveau de tension sur chaque piste de concordance, des signaux de sortie indiquant un groupe (104) de cellules CAM ayant le plus de bits en concordance avec le mot d'entrée.