Brevet FR3006095A1 — publié le 20141128

-1- CELLULE DE MEMOIRE TCAM ET COMPOSANT INTEGRANT UNE MATRICE DE TELLES CELLULES Domaine technique L'invention se rattache au domaine de la microélectronique, et plus précisément de celui des circuits de mémoire et plus spécifiquement des mémoires de type adressable par contenu et notamment par contenu ternaire. L'invention concerne plus particulièrement des architectures de ce type de mémoire 10 permettant d'améliorer les performances en termes de vitesse de fonctionnement et/ou de consommation. Arrière plan de l'invention Les mémoires de type CAM pour « Content Addressable Memory » ou mémoire 15 adressable par contenu sont des mémoires qui permettent la comparaison entre un ensemble de données à chercher et un ensemble de données préenregistrés (ou données clés), afin de détecter une correspondance entre les données cherchées et les données préenregistrées. 20 Ce type de mémoire trouve une application toute appropriée dans les dispositifs de routage dans lesquels l'adresse d'un destinataire de paquets de données doit être identifiée parmi la liste des adresses des destinataires possibles enregistrées au sein du dispositif, afin que le paquet soit acheminé par le port du dispositif sur lequel est connecté l'équipement dont l'adresse est recherchée. 25 Pour ce faire, les mémoires de type CAM présentent un certain nombre de cellules agencées sous forme d'une matrice de lignes et de colonnes. De manière classique, chaque ligne regroupe les différents bits d'un mot de données pour laquelle la comparaison avec les données clefs s'effectue bit à bit, au niveau de chaque cellule. 30 Classiquement, chaque cellule comporte donc un point de mémoire à l'intérieur duquel est enregistré le bit correspondant du mot de données clefs, et un circuit de comparaison permettant de comparer le bit de données préenregistrées avec le bit de même poids des données à chercher. -2- Lorsque la comparaison est positive, c'est-à-dire lorsque le bit de la donnée clef correspond au bit de même poids de la donnée cherchée, alors le circuit de comparaison positionne un point de comparaison à un état donné, généralement bas, d'une ligne de concordance (également appelée « match line »), partagée entre les différents bits du même mot, c'est-à-dire d'une même ligne. Cette ligne de concordance étant partagée par l'ensemble des cellules de même ligne, son potentiel est au niveau donné, typiquement bas, lorsque l'ensemble des cellules d'une même ligne indique une concordance bit à bit. Parmi les différentes mémoires CAM existantes, un type particulier dénommé TCAM pour « Ternary Content Addressable Memory » ou « mémoire adressable par contenu ternaire » permet d'assurer des fonctions de comparaison plus évoluées. En particulier, il est possible avec ce type de mémoire de conclure à une correspondance sans tenir compte de la valeur de tout ou partie des bits d'un mot de donnée à chercher. Autrement dit, certaines cellules de la mémoire sont configurées pour envoyer un signal de concordance quel que soit le niveau de tout ou partie des bits d'un mot. Pour implémenter cette fonction de masquage de certains bits, il est possible de mettre en oeuvre une architecture particulière de cellules, dans laquelle chaque cellule comporte deux points mémoires ou circuits de stockage, de manière à comparer la valeur du bit à chercher avec la valeur du bit préenregistré et son complémentaire, qui sont stockés chacun dans leur point mémoire. Plus précisément, le circuit de comparaison vérifie que le bit de données clé est à un niveau haut en même temps que le niveau du bit du premier point mémoire, ou que le complémentaire du bit du mot de donnée clé est à un niveau également en même temps que le second point mémoire, dans laquelle est nominalement enregistré le complémentaire du bit enregistré dans le premier point mémoire. Lorsque toutefois le premier et le second point mémoire ne sont pas enregistrés avec des données complémentaires, le circuit de comparaison peut délivrer un signal de concordance quel que soit le niveau du bit d'entrée et son complémentaire. -3- En pratique, en technologie CMOS, les circuits de comparaison sont réalisés à base de transistors de type N-MOS agencés pour réaliser une fonction de « ou exclusif» entre les données provenant des deux points mémoire d'une part, et le bit d'entrée et son complémentaire, d'autre part. Or, on conçoit que l'augmentation de la capacité des mémoires CAM, c'est-à-dire la quantité de données clefs par rapport auquel il faut comparer une donnée de recherche, conduit à une augmentation de la puissance consommée par la mémoire, puisque tous les circuits de comparaison sont actifs pendant les opérations de recherche. Cette tendance à l'augmentation de la puissance consommée est encore plus sensible avec l'augmentation des fréquences de fonctionnement. En effet, pour permettre au circuit de comparaison de fonctionner à plus haute fréquence, il est nécessaire d'utiliser les transistors qui commutent rapidement, et qui possèdent un courant en sortie important. Ces transistors présentent donc une taille relativement importante, qui augmente leur capacité parasite, et donc la puissance globale consommée. Résumé de l'invention Il serait donc souhaitable de disposer d'une architecture de mémoire TCAM qui puisse fonctionner à fréquence plus élevée, et/ou avec des capacités importantes en terme 20 de taille de données clefs, et ce, sans augmenter trop fortement, et également en diminuant même la puissance consommée. Pour atteindre tout ou partie de ces objectifs, ainsi que d'autres, un mode de réalisation de la présente invention prévoit une cellule de mémoire adressable par contenu 25 ternaire, configurée pour comparer une donnée binaire d'entrée présente au niveau d'une borne d'entrée de la cellule, avec deux données binaires de référence, et délivrer un signal de concordance au niveau d'une ligne de concordance à laquelle est reliée ladite cellule, ladite cellule incluant : - un premier circuit de stockag dont un point est à un potentiel représentatif de la 30 première donnée binaire de référence ; - un second circuit de stockage dont un point est à un potentiel représentatif de la seconde donnée binaire de référence ; - un circuit de comparaison, connecté auxdits points des premier et second circuits de stockage, et à ladite borne d'entrée de la cellule, et présentant un point de -4- comparaison dont le potentiel est représentatif de la comparaison de la donnée binaire d'entrée avec les première et seconde données de référence, dans lequel ledit point de comparaison est connecté à un étage de sortie, ledit étage de sortie étant connecté à la ligne de concordance, et configuré pour délivrer sur la ligne de concordance un signal fondé sur le potentiel du point de comparaison. Dans un autre mode de réalisation, on peut prévoir une seconde borne d'entrée sur laquelle est appliquée une donnée complémentaire de ladite donnée binaire d'entrée. Dans un mode de réalisation, le circuit de comparaison comporte des transistors agencés pour que le point de comparaison soit à un potentiel bas si l'une des deux conditions suivantes est remplie : - la donnée binaire d'entrée est égale à la première donnée binaire de référence ; - le complémentaire de la donnée binaire d'entrée est égal à la seconde donnée binaire de référence. Dans un mode de réalisation, l'étage de sortie comporte un transistor de type P-MOS dont la grille est connectée audit point de comparaison, et dont le drain est connecté à la ligne de concordance. Dans un mode de réalisation, la cellule inclue également un circuit de charge commandé par un signal indiquant l'autorisation ou non de la comparaison, et configuré pour assurer la connexion du point de comparaison à une source d'alimentation lorsque le signal indiquant l'autorisation de la comparaison est à un niveau correspondant à une non- autorisation de la comparaison. Dans un mode de réalisation, le circuit de charge inclut également un transistor assurant la connexion du point bas du circuit de comparaison avec un potentiel de référence lorsque le signal indiquant l'autorisation de la comparaison est à un niveau correspondant à une 30 autorisation de la comparaison. On peut également prévoir un circuit intégré, comportant une matrice de cellules telles que prévues ci-avant, organisées en au moins une ligne de cellules destinées chacune à comparer la donnée binaire d'un bit d'un mot de données, dans lequel tout ou partie des -5- cellules d'une même ligne présentent le point de comparaison de leur circuit de comparaison connecté à un étage de sortie commun. Dans un mode de réalisation, tout ou partie des cellules d'une même ligne présentent le 5 point bas de leur circuit de comparaison connecté à un étage de masse virtuelle commun. Description sommaire des figures Certains aspects de l'invention, et en particulier ses caractéristiques et avantages 10 ressortiront de la description qui suit de modes de réalisation spécifiques donnés à titre illustratif et non limitatif, à l'appui des figures annexées dans lesquelles : La figure 1 est un schéma simplifié d'une cellule de mémoire TCAM. La figure 2 représente une partie de matrice de cellules de mémoire TCAM de la figure 1. 15 Description détaillée L'exemple illustré à la figure 1 correspondant à une cellule de mémoire TCAM de type XY, c'est-à-dire dans laquelle la donnée à chercher (et son complémentaire) sont 20 comparés à deux points mémoires. Toutefois, les principes décrits pour cette mémoire TCAM XY peuvent s'appliquer à d'autres types de mémoire CAM par transposition des mêmes principes. Comme illustré à la figure 1, la cellule 1 comporte deux points mémoire 2, 3 25 associés à un circuit de comparaison 4, lui-même relié à son point bas à un circuit de masse virtuelle 6, et au niveau de son point haut à un étage de sortie 5. Chacun des points mémoire 2, 3 présente une constitution classique, comportant deux inverseurs 21, 22 montés tête-bêche et dont les points de connexion 23, 24 sont 30 portés à un potentiel représentatif de la donnée stockée dans le point mémoire 2, également appelé « circuit de stockage ». Les points communs 23, 24 de connexion des inverseurs 21, 22 sont connectés par des transistors 25, 26 à des lignes de bits BLX et /BLX. Ces lignes de bit BLX et /BLX -6- permettent l'écriture et la lecture du point mémoire 2, lorsque les transistors 25, 26 de « pass-gate » sont rendus passants par application de la commande appropriée sur la ligne de mot WLX. Bien entendu, le point mémoire décrit ici avec une structure de type 6T, incluant six transistors peut être remplacé par d'autres types de points mémoires incluant par exemple plus de transistors. Le second point mémoire 3 de la cellule présente une constitution identique à celle du point mémoire 2. Les transistors de pass-gate 35, 36 sont respectivement connectés 10 aux lignes de bits BLY et /BLY pour permettre les opérations de lecture/écriture sur ce point mémoire, lorsque la ligne de mot WLY est à un potentiel approprié. Bien entendu, il est possible de faire en sorte que les deux points mémoires 15 dépendent de la même ligne de mots commandant la lecture/écriture, ou comme dans la forme illustrée que les lignes de mots soient dédiées à une moitié seulement des points mémoire des cellules affectées au même mot. De même, dans la forme illustrée, les lignes de bit BLX, BLY des deux points 20 mémoires 2, 3 sont distinctes et indépendantes, ce qui permet d'affecter aux deux points mémoires 2, 3 des données totalement indépendantes. Il est toutefois possible dans certaines configurations de mémoire TCAM que les deux lignes de bit soient partagées, de telle sorte que les deux points mémoires sont 25 alimentés par les mêmes données, le circuit de comparaison étant connecté à deux points complémentaires. Cependant, l'implémentation telle que décrite dans la figure 1 permet de mettre en oeuvre des comparaisons plus évoluées, et en particulier le masquage délivrant un signal de concordance pour n'importe quel niveau au niveau du bit à chercher. 30 Dans le mode de réalisation de la figure 1, le circuit de comparaison 4 est composé de quatre transistors, qui dans la forme illustrée, sont de type N-MOS. -7- Un premier transistor 41 présente sa grille 42 qui est reliée au point 23 du point mémoire 2. Ainsi, ce transistor est passant lorsque la donnée présente sur le point mémoire 2 est à 1 (ou plus généralement à niveau haut). Il est bloqué lorsque ce point mémoire est à 0 (ou réciproquement à un niveau bas). La source du transistor 41 est reliée au drain du transistor 43, dont la grille 44 est reliée à la ligne SL sur laquelle est appliquée la donnée binaire d'entrée à chercher. Ainsi, lorsque cette donnée est à 1, le transistor 44 est passant, et est bloqué lorsque cette donnée est à O. La source du transistor 44 est connectée à un point bas 45, auquel est également connecté la source du transistor 46, dont la grille 47 est reliée à la ligne /SL sur laquelle est appliquée le complémentaire de la donnée appliquée sur la ligne SL. Autrement dit, le transistor 46 est passant lorsque la donnée appliquée sur la ligne SL est à 0, et est au contraire bloqué lorsque la donnée sur SL vaut 1. Le drain du transistor 46 est connecté à un transistor 48 dont la grille 49 est reliée au point 33 du point mémoire 3.Ainsi, ce transistor est passant lorsque la donnée stockée sur le point mémoire 3 est à 1, et est bloqué lorsqu'elle est à 0. Les drains des transistors 41, 48 sont connectés à un point commun 50, également appelés point de comparaison, qui se trouve à un niveau correspondant à la comparaison de la donnée présente sur la ligne de bit de recherche SL (et son complémentaire /SL) avec des valeurs stockées dans les points mémoires 2 et 3. Ainsi, lorsque la donnée présente sur la ligne SL est à 1, et que la donnée présente sur le point mémoire 2 est également à 1, la branche formée des transistors 41 et 43 porte le point 50 au potentiel du point bas 45. Les deux transistors de l'autre branche, à savoir les transistors 48, 46 sont quant à 30 eux bloqués. De même, lorsque le point mémoire 2 stocke une valeur à 0, le transistor 41 est bloqué, tout comme le transistor 46 puisque la valeur sur la ligne /SL vaut 0. Par conséquent, le point 50 reste à un potentiel haut imposé par le circuit de charge qui sera décrit plus avant. Ce potentiel haut correspond donc à une non concordance de la -8- donnée circulant sur la ligne SL et sur le point de mémoire 2. Dans la configuration particulière où les deux points mémoires 2 et 3 stockent des valeurs 1, l'un ou l'autre des transistors 43, 46 est passant, de sorte que le point 50 se trouve relié au point bas 45, quel que soit la valeur circulant sur la ligne de recherche SL, ce qui correspond à un cas de concordance, quelle que soit la valeur du bit recherché, également appelé configuration « always hit ». A l'inverse, dans l'autre configuration particulière où les deux points mémoires 2,3 stockent des valeurs 0, les deux transistors 43,46 sont bloqués, et quel que soit l'état de la 10 ligne de recherche SL (ou de son complémentaire /SL), le point de comparaison 50 reste à un niveau chargé, ce qui correspond à un cas de non concordance, ou « always miss ». Bien entendu, le fonctionnement de la cellule en fonction des valeurs préenregistrées, c'est-à-dire la table de vérité associée dépend du point où sont prélevées 15 la valeur du point mémoire par rapport à la ligne SL. Le point de comparaison 50, dont le potentiel correspond donc à la comparaison des différentes données à comparer, est relié à un étage de sortie 5. Cet étage de sortie 20 comporte un transistor de type P-MOS, dont la grille 56 est reliée au point de comparaison 50. La source du transistor 53 est reliée à un potentiel haut de référence VDD. Le drain 54 du transistor 53 est relié à la ligne ML sur laquelle est collectée l'information de concordance de l'ensemble des cellules d'un même mot. 25 Ainsi, lorsque le point de comparaison 50 se trouve à un potentiel bas, le transistor 53 est passant et, la ligne ML se trouve à un niveau haut. Lorsque toutes les cellules d'une même ligne sont détectent une correspondance, alors tous les circuits reliés à la match line ML portent son potentiel à une valeur haute, ce qui est alors détecté au niveau d'un circuit (non représenté) de mise en forme du signal transitant sur la ligne ML. 30 A l'inverse, en cas de non correspondance, le point de comparaison 50 passe à un potentiel haut, de sorte que le transistor 53 est bloqué, la ligne ML restant à un potentiel bas. -9- L'emploi d'un transistor commun, commandé par le circuit de comparaison permet de dimensionner des transistors du circuit de comparaison de manière plus réduite, puisque ces transistors n'ont pas besoin de délivrer un courant important puisqu'ils ne commandent pas directement la « match line ». En effet, dans la mesure où ces transistors 41, 43, 46, 48 n'ont pas besoin de délivrer un courant important, il est possible d'utiliser des transistors de taille réduite, permettant d'assurer leur recharge relativement rapidement, du fait de leur faible capacité parasite. Par conséquent, seul le transistor 53 nécessite d'avoir une taille importante et suffisante pour pouvoir alimenter la ligne ML. Complémentairement, l'étage de sortie 5 présente des moyens permettant d'assurer 15 la recharge des transistors de l'étage du circuit de comparaison. Ces moyens peuvent se composer, comme illustré à la figure 1, d'un transistor 60 de type P-MOS, dont la source est connectée à un potentiel d'alimentation haut VDD, et dont le drain est relié au point 50 du point de comparaison 50 du circuit de comparaison 4. 20 La grille 61 du transistor 60 est connectée à une ligne SE (pour « Search Enable »), sur laquelle est appliquée un signal permettant d'autoriser ou non les comparaisons entre les données d'entrées et les données enregistrées. Plus précisément, ce signal SE est à 1 lorsque doivent s'opérer les opérations de recherche. Ainsi, lorsque l'on se trouve en phase de « stand-by » pendant lesquelles aucune recherche ne doit avoir lieu, le transistor 25 60 est passant puisque sa grille 61 est à un potentiel bas. Par conséquent, les différents transistors de l'étage de comparaison 4 se voient appliquer le potentiel haut VDD, et se trouvent ainsi polarisés. 30 Par la suite, lorsque le circuit passe à une phase de recherche, et que le signal SE passe à un niveau haut, le transistor 60 devient bloqué, et la grille 56 du transistor 53 est alors uniquement commandée par le potentiel du point de comparaison 50. 10 - Pour éviter tout fonctionnement anormal pendant les phases de polarisation des transistors du circuit de comparaison 4, le point bas 45 du circuit de comparaison est connecté à la masse 66 par l'intermédiaire d'un circuit 6, qui comporte principalement un transistor de type N-MOS 64 dont la grille 65 est commandée par la ligne SE. De la sorte, en phase de polarisation, lorsque le signal SE est à 0, le transistor 64 est bloqué, et la polarisation s'effectue par l'intermédiaire du transistor 60 vis-à-vis des capacités parasites. A l'inverse, lorsque les recherches sont autorisées, et que le signal SE est à un niveau haut, le point bas 45 du circuit de comparaison est connecté à la masse. Selon un autre aspect et comme illustré à la figure 2, la commande de l'étage de puissance peut être mutualisée entre les différentes cellules d'un même mot. Plus précisément, les cellules 100, 200, 300 qui possèdent chacune un point de comparaison 150, 250, 350 de leur circuit de comparaison 104, 204, 304, peuvent voir ces différents points reliés à un étage de sortie commun conçu de façon analogue à ce qui a été décrit pour la figure 1. Ainsi, le transistor 153, de type P-MOS voit sa grille 156 connectée à l'ensemble des points de comparaison 150, 250, 350 au niveau d'une connexion commune 90, au niveau duquel est réalisé en quelque sorte un « ET filaire » de l'ensemble des comparaisons effectuées par les cellules concernées. De la même manière, les moyens permettant la polarisation des différents transistors des circuits de comparaison 104, 204, 304 peuvent également être mutualisés, au niveau par exemple du transistor 160, commandé de la même manière que pour des explications liées à la figure par la ligne SE autorisant ou non les phases de comparaison. Parallèlement, l'ensemble des points bas 145, 245, 345 des différents circuits de comparaison des circuits concernés peuvent être reliés par un même circuit de masse virtuelle pendant les phases de comparaison, par exemple par l'intermédiaire du transistor 164. - Bien entendu, le nombre de cellules concernées au sein d'un même mot peut être adapté en fonction des puissances nécessaires et des valeurs de courant que peuvent fournir chacune des cellules et le transistor connecté à la « match line ». Il est ainsi possible de prévoir que l'intégralité des cellules affectées à un même mot soient connectées à un étage de sortie commun, ou bien encore que les cellules affectées à un même mot soient regroupées par sous-ensembles affectés chacun à un étage de circuit partagé par plusieurs cellules. Il ressort de ce qui précède que les modes de réalisation décrits permettent de concevoir des mémoires TCAM qui présentent une consommation particulièrement réduite par rapport aux mémoires connues à ce jour. A titre d'exemple, il est envisageable grâce au gain réalisé par les dispositions décrites ci-avant, de réduire d'un facteur trois ou quatre la puissance dynamique consommée par cellules, tout en augmentant la fréquence de fonctionnement d'un facteur 3, et en augmentant également les capacités globales de la mémoire en termes de nombre de cellules. REVENDICATIONS1/ Cellule (1) de mémoire adressable par contenu ternaire, configurée pour comparer une donnée binaire d'entrée présente au niveau d'une borne d'entrée (SL) de la cellule, avec 5 deux données binaires de référence, et délivrer un signal de concordance au niveau d'une ligne de concordance (ML) à laquelle est reliée ladite cellule, ladite cellule incluant : - un premier circuit de stockage(2) dont un point (23) est à un potentiel représentatif de la première donnée binaire de référence ; - un second circuit de stockage (3) dont un point (33) est à un potentiel représentatif 10 de la seconde donnée binaire de référence ; - un circuit de comparaison (4), connecté auxdits points (23, 33) des premier et second circuits de stockage (23), et à ladite borne d'entrée (SL) de la cellule, et présentant un point de comparaison (50) dont le potentiel est représentatif de la comparaison de la donnée binaire d'entrée avec les première et seconde données 15 de référence, dans lequel ledit point de comparaison (50) est connecté à un étage de sortie (5), ledit étage de sortie étant connecté à la ligne de concordance (ML), et configuré pour délivrer sur la ligne de concordance un signal fondé sur le potentiel du point de comparaison. 20 2/ Cellule de mémoire selon la revendication 1, dans laquelle est présente une seconde borne d'entrée (/SL) sur laquelle est appliquée une donnée complémentaire de ladite donnée binaire d'entrée. 3/ Cellule de mémoire selon la revendication 2, dans laquelle le circuit de comparaison 25 (4) comporte des transistors (41, 43) agencés pour que le point de comparaison (50) soit à un potentiel bas si l'une des deux conditions suivantes est remplie : - la donnée binaire d'entrée est égale à la première donnée binaire de référence ; - le complémentaire de la donnée binaire d'entrée est égal à la seconde donnée binaire de référence. 30 4/ Cellule de mémoire selon la revendication 1, dans laquelle l'étage de sortie (5) comporte un transistor (53) de type P-MOS dont la grille (56) est connectée audit point de comparaison (50), et dont le drain (54) est connecté à la ligne de concordance (ML).-13- 5/ Cellule de mémoire selon la revendication 1, incluant également un circuit de charge (60) commandé par un signal (SE) indiquant l'autorisation ou non de la comparaison, et configuré pour assurer la connexion du point de comparaison (50) à une source d'alimentation (VDD) lorsque le signal indiquant l'autorisation de la comparaison est à un niveau correspondant à une non-autorisation de la comparaison. 6/ Cellule de mémoire selon la revendication 1, dans laquelle le circuit de charge inclut également un transistor (64) assurant la connexion du point bas (45) du circuit de comparaison (4) avec un potentiel de référence (66) lorsque le signal (SE) indiquant l'autorisation de la comparaison est à un niveau correspondant à une autorisation de la comparaison. 7/ Circuit électrique, comportant une matrice de cellules selon l'une des revendications 1 à 6 organisées en au moins une ligne de cellules (100, 200, 300) destinées chacune à comparer la donnée binaire d'un bit d'un mot de données, dans lequel tout ou partie des cellules d'une même ligne présentent le point de comparaison de leur circuit de comparaison connecté à un étage de sortie commun (153). 8/ Circuit selon la revendication 7, dans lequel tout ou partie des cellules (100, 200, 300) d'une même ligne présentent le point bas de leur circuit de comparaison connecté à un étage (164) de masse virtuelle commun.