Brevet FR3006096A1 — publié le 20141128

-1- COMPOSANT ELECTRONIQUE INTEGRANT UNE MATRICE DE CELLULES TCAM 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 d'une même ligne, son potentiel est à un 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 un composant électronique incluant une 25 mémoire adressable par contenu ternaire, configurée pour comparer les données d'entrée avec un ensemble de mots de données de référence préenregistrés, ladite mémoire comportant une matrice de cellules élémentaires disposée en lignes et colonnes, chaque ligne comportant des cellules dans chacune desquelles est enregistré un bit d'un des mots de données de référence, les cellules d'une même colonne étant dédiées à la comparaison 30 de même bit du mot de données d'entrée, chaque cellule comportant : - deux points mémoire dans lesquels sont stockés des données représentatives du bit de données de référence ; -4- - un circuit de comparaison connecté auxdits points mémoires et présentant un point de comparaison dont le potentiel est représentatif de la comparaison du bit de la donnée d'entrée et des données stockées dans lesdits points mémoires, et comportant également un circuit commun de comparaison auquel sont connectés les 5 circuits de comparaison de tout ou partie des cellules d'une même colonne, ledit circuit de comparaison comportant des bornes sur lesquelles sont appliquées le bit du mot de données d'entrée et son complémentaire. Dans un mode de réalisation, le circuit de comparaison de chaque cellule comporte deux 10 transistors dont les grilles sont connectées chacune à un point mémoire et dont les drains sont connectés au point de comparaison. Dans un mode de réalisation, le circuit commun de comparaison comporte deux transistors, à savoir : 15 - un premier transistor dont : la grille est connectée à la borne sur laquelle est appliqué le bit du haut de l'entrée ; - le drain est connecté à la source d'un des transistors du circuit de comparaison des cellules connectées au circuit commun de comparaison ; 20 la source est connectée à un point commun bas, - et un second transistor dont la grille est connectée à la borne sur laquelle est appliqué le complémentaire du bit de mot de données d'entrée ; le drain est connecté à la source de l'autre transistor du circuit de comparaison des 25 cellules qui sont connectées au circuit commun de comparaison ; la source est connectée audit point bas commun. Description sommaire des figures Certains aspects de l'invention, et en particulier ses caractéristiques et avantages 30 ressortiront de la description qui suit de modes de réalisation spécifiques donnés à titre illustratif et non limitatif, à l'appui de la figure annexée qui est un schéma simplifié d'une partie de matrice de cellules de mémoire TCAM. -5- Description détaillée L'exemple illustré à la figure décrit un ensemble de quatre cellules de mémoire TCAM de type XY, c'est-à-dire dans laquelle la donnée à chercher et son complémentaire sont comparés à deux points mémoires. La figure 1 illustre donc quatre cellules identiques 100, 200, 300, 400 dont une seule sera donc décrite en détail. Ainsi, la cellule 100 comporte deux points mémoires 102, 103 associés à un circuit de comparaison 104, lui-même relié au niveau de son point haut à une ligne de concordance ML1, et au niveau de ses points bas à un circuit commun de comparaison 50, qui sera décrit en détail plus avant. Chacun des points mémoires 102, 103 présente une constitution classique, comportant deux inverseurs 121, 122 montés tête bêche, et dont les points de connexion 123, 124 sont portés à un potentiel représentatif de la donnée stockée dans le point mémoire 102, également appelé « circuit de stockage ». Les points communs 123, 124 de connexion des inverseurs 121, 122 sont connectés par des transistors 125, 126, à des lignes de bit BLX et /BLX. Ces lignes de bit BLX et /BLX permettent l'écriture et la lecture du point mémoire 102 lorsque les transistors 125, 126 de « pass-gate » sont rendus passant par l'application de la commande appropriée sur la ligne de mots WLX1. 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 103 de la cellule 100 présente une constitution identique à celle du point mémoire 102. Les transistors de « pass-gate » 135, 136 sont respectivement connectés aux lignes de bit BLY et /BLY pour permettre des opérations de lecture/écriture sur ce point mémoire 103 lorsque la ligne de mots WLY1 est à un potentiel approprié. Bien entendu, il est possible de faire en sorte que les deux points mémoires dépendent de la même ligne de mot commandant la lecture/écriture, ou comme dans la -6- forme illustrée que les lignes de mot soient dédiées à une moitié seulement des points mémoires 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 5 mémoires 102, 103 sont distinctes et indépendantes, ce qui permet d'affecter aux deux points mémoires 102, 103 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 alimentés par les mêmes données, le circuit de comparaison étant connecté à deux points de valeurs 10 complémentaires. Cependant, l'implémentation telle que décrite à la figure permet de mettre en oeuvre des comparaisons plus évoluées, et en particulier délivrant un signal de concordance pour n'importe quel niveau du bit à chercher. Dans le mode de réalisation de la figure, le circuit de comparaison 104 est composé 15 de deux transistors, qui dans la forme illustrée, sont de type N-MOS. Un premier transistor 141 présente sa grille 142, qui est reliée au point 123 du point mémoire 102. Ainsi, ce transistor est passant lorsque la donnée présente sur le point mémoire 102 est à 1 (ou plus généralement à un niveau haut). Il est bloqué lorsque ce 20 point mémoire est à 0 (ou réciproquement à un niveau bas). Le drain du transistor 141 est connecté à un point commun 150, également appelé point de comparaison qui se trouve à un potentiel dépendant de l'état des transistors 141, 148 du circuit de comparaison 104, et du circuit commun de comparaison 50. 25 Plus précisément, le circuit commun 50 de comparaison comporte un premier 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. Le drain du transistor 43 est relié à la source du transistor 141 du circuit de comparaison 104 de la cellule 100. Symétriquement, le circuit commun de 30 comparaison 50 comporte un second transistor 46, dont la grille 47 est reliée à la grille sur laquelle est appliqué le complémentaire /SL de la donnée appliquée sur la ligne SL. La source du transistor 47 est également reliée au point commun bas 45, et le drain du transistor 47 est relié à la source du transistor 148 du circuit de comparaison 104 de la -7- cellule 100. Ainsi, lorsque la donnée à chercher SL est à 1, le transistor 44 est passant, et il est bloqué lorsque cette donnée est à 0, et symétriquement, le transistor 46 est passant lorsque la donnée appliquée sur la ligne SL est à 0 puisque la donnée SL bar est à 1, et est au contraire bloquée lorsque la donnée SL vaut 1. Ainsi, lorsque la donnée présente sur la ligne SL vaut 1 et que la donnée présente sur le point mémoire 102 est également à 1, la branche formée des transistors 141 et 43 porte le point 150 au potentiel du point bas 45. Les transistors de l'autre branche, à savoir les transistors 148 et 46 sont quant à eux bloqués. De même, lorsque le point mémoire 102 stocke une valeur à 0, le transistor 141 est bloqué, tout comme le transistor 46, puisque la valeur sur la ligne /SL vaut 0. Par conséquent, le point 150 reste à un potentiel haut imposé par un circuit de charge conventionnel, qui ne sera pas décrit en détail. Ce potentiel haut correspond donc à une non-concordance de la donnée circulant sur la ligne SL, et sur le point mémoire 102. Dans la configuration particulière où les deux points mémoires 102 et 103 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, quelle que soit la valeur circulant sur la ligne de recherche SL. Cela correspond à un cas de concordance, quelle que soit la valeur du bit recherché, cas également appelé « always miss». Complémentairement, lorsque les valeurs stockées dans les deux points mémoires 102, 103 sont toutes les deux à 0, les deux transistors 141, 142 du circuit de comparaison restent bloqués de sorte que le point de comparaison 150, et donc la « match-line » ML1 reste à un potentiel haut, quel que soit la valeur circulant sur la ligne SL. Il s'agit donc d'un cas où la concordance ne pourra jamais être atteinte, qui est également appelé « always hit ». Bien entendu, la table de vérité correspondante aux différents cas de figures, en particulier pour le fonctionnement ternaire, dépend du point où les grilles des transistors du circuit de comparaison 104 sont connectées sur les points mémoires, vis-à-vis des 30 lignes de bit BLX, /BLX. Selon le mode de réalisation illustré à la figure, les autres cellules 200, 300, 400 d'une même colonne voient leur circuit de comparaison 204, 304, 404 également reliés aux circuits commun de comparaison 50, et ce de la même manière que le circuit 104. -8- Ainsi, les cellules 100, 200, 300, 400 partagent l'accès aux données du bit à chercher SL, de sorte que la surface occupée par le circuit de comparaison globale, combinant la partie dédiée à chaque cellule, et la portion commune reliée aux données d'entrée, est moindre que pour une cellule de mémoire TCAM traditionnelle. En effet, dans une architecture classique de mémoire TCAM, chaque cellule inclut un circuit de comparaison effectuant une fonction XOR. Chaque cellule reçoit en entrée la donnée du bit à chercher SL. Par conséquent, par cette architecture partiellement mutualisée, la surface et la consommation globale de la cellule est diminuée, dans la mesure où l'un des deux transistors du circuit commun de comparaison 50 est systématiquement passant pendant les phases de recherche. Bien entendu, cette mutualisation du circuit commun de comparaison sur laquelle est appliquée le bit à chercher peut se réaliser pour toute ou partie des cellules d'une même colonne. Il est ainsi possible de regrouper certaines cellules d'une même colonne en sous-ensembles affectés à un circuit commun de comparaison. Le nombre de cellules de ces sous-ensembles étant déterminé par des considérations liées à la puissance consommée par les transistors du circuit commun de comparaison, et à la longueur des connexions nécessaires pour relier les circuits de comparaison de chaque cellule avec le circuit commun de comparaison. 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 réduite par rapport aux mémoires connues à ce jour, autorisant donc leur fonctionnement à des fréquences supérieures, et avec des capacités globales en termes de nombre de cellules également augmentées. REVENDICATIONS1/ Composant électronique incluant une mémoire adressable par contenu ternaire, configurée pour comparer les données d'entrée avec un ensemble de mots de données de référence préenregistrés, ladite mémoire comportant une matrice de cellules élémentaires (100, 200, 300, 400) disposée en lignes et colonnes, chaque ligne comportant des cellules dans chacune desquelles est enregistré un bit d'un des mots de données de référence, les cellules d'une même colonne étant dédiées à la comparaison de même bit du mot de données d'entrée, chaque cellule comportant : - deux points mémoire (102, 103) dans lesquels sont stockés des données représentatives du bit de données de référence ; - un circuit de comparaison (104, 204, 304, 404) connecté auxdits points mémoires et présentant un point de comparaison (150) dont le potentiel est représentatif de la comparaison du bit de la donnée d'entrée et des données stockées dans lesdits points mémoires, et comportant également un circuit commun de comparaison (50) auquel sont connectés les circuits de comparaison (104, 204, 304, 404) de tout ou partie des cellules d'une même colonne, ledit circuit de comparaison comportant des bornes (44, 47) sur lesquelles sont appliquées le bit du mot de données d'entrée (SL) et son complémentaire (/SL). 2/ Composant selon la revendication 1 dans lequel le circuit de comparaison (104, 204, 304, 404) de chaque cellule (100, 200, 300, 400) comporte deux transistors (141, 148) dont les grilles (142, 149) sont connectées chacune à un point mémoire (102, 103) et dont les drains sont connectés au point de comparaison (150). 3/ Composant selon la revendication 2 dans lequel le circuit commun de comparaison comporte deux transistors, à savoir : - un premier transistor (43) dont : la grille (44) est connectée à la borne (SL) sur laquelle est appliqué le bit du haut de l'entrée ; le drain est connecté à la source d'un des transistors (141) du circuit de comparaison (104) des cellules connectées au circuit commun de comparaison ; la source est connectée à un point commun bas (45),-10- - et un second transistor (46) dont la grille (47) est connectée à la borne (SL) sur laquelle est appliqué le complémentaire du bit de mot de données d'entrée ; le drain est connecté à la source de l'autre transistor (148) du circuit de comparaison (104) des cellules qui sont connectées au circuit commun de comparaison ; la source est connectée audit point bas commun (45).