Brevet FR2549998A1 — publié le 19850201

CELLULE DE MEMOIRE ASSOCIATIVE La présente invention concerne les mémoires associatives, appelées encore mémoires adressables par les données. Ces mémoires fonctionnent à la manière d'un dictionnaire :connaissant le mot qu'on doit trouver, on regarde s'il est dans la mémoire, et, s'il y est, à quelle position de mémoire il est. Ces mémoires peuvent être utilisées seules ou en coar binai son avec une mémoire normale, auquel cas on peut prévoir que la position de mémoire associative à laquelle on a repéré le mot cherché, sert à désigner une position de la mémoire normale contenant une autre information : à chaque donnée on associe ainsi une autre donnée un exemple d'application consiste en la réalisation de tables de conversion d'adresses dans un calculateur. Les cellules de mémoires associatives proposées actuellement sont essentiellement constituées comme à la figure 1, avec une bascule bistable 10 alimentée entre une source de tension Vcc et une masse M, cette bascule ayant deux sorties complémentaires R et S reliées chacune par un transistor respectif T1, T2 à une ligne de bit respective B, B*. Les lignes de bit B et B* fournissent ou amènent des signaux logiques complémentaires. Les transistors T1 et T2 sont commandés simultanément par une ligne de mot LM. La lecture se fait par détectlon de la cotncidence ou non cotncidence entre un bit de donnée et 11état de la cellule. Pour cela, les sorties R et S sont comparées aux lignes de bit B et B* dans une sorte de porte OU-exclusif à deux transistors T3 et T4, cette porte étant reliée aux sorties R et S et aux lignes de bit B et B* et fournissant sur sa sortie U un niveau logique haut lorsqu'il n'y a pas cotucidence de niveaux logiques entre R et B (ou S et B*), T1 et T2 étant bloqués, et fournissant un niveau logique bas lorsquil y a colncidence.Cette sortie U commande un transistor T5 connecté entre la masse M et une ligne de sortie LS fournissant l'information sur la coïncidence. Comme on le voit, cette cellule élémentaire de mémoire associative comporte 9 transistors si la bascule bistable en comporte quatre. La présente invention propose une cellule ayant un encombrement moindre puisqu'elle ne comporte que six transistors, ce qui est tres important étant donné que les cellules de mémoire sont souvent destinées à etre associées en grand nombre pour fournir une grande capacité de mémoire. Dans ces conditions, tout gain de surface, meme minime, sur une cellule élémentaire se traduit par un gain important lorsqu'il y a un grand nombre de cellules. De plus, la présente invention propose une cellule dont l'encombrement est réduit comme on le verra non seulement par le nombre de transistors mais aussi par le nombre de lignes aboutissant à la cellule (lignes de masse, d'alimentation, de mot, de bit, d'information de sortie). La cellule de mémoire associative selon l'invention comporte une bascule bistable alimentée entre une ligne de mot et une ligne de sortie fournissant une information sur l'état de la bascule (coïncidence ou non coïncidence avec une information fournie par deux lignes de bit complémentaires) ; elle comporte aussi deux transistors connectés chacun entre l'une des sorties complémentaires de la bascule et la ligne de sortie, les transistors étant commandés par les lignes de bit complémentaires. Cette cellule est facile à mettre en oeuvre dans un plan mémoire associatif et elle consomme peu en phase d'écriture. D'autres caractéristiques et avantages de l'invention apparattront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexes dans lesquels - la figure 1 déja décrire représente une cellule de l'art antérieur - la figure 2 représente en détail une cellule selon l'invention Sur la figure 2, on retrouve une bascule bistable classique à quatre transistors Q1, Q2, Q3, Q4 comme à la figure 1, mais elle est alimentée ici entre la ligne de mots LM et la ligne de sortie LS. Il n'y a pas de ligne d'alimentation à Vcc autre que la ligne de mot et il n'y a pas de ligne de masse autre que la ligne de sortie, ce qui économise une place importante dans un réseau de plusieurs lignes de mots de mémoire. La bascule à quatre transistors Q1, Q2, Q3, Q4 est par exemple constituée par un couple de transistors MOS complémentaires Ql (canal n) et Q2 (canal p) en série entre la ligne de sortie LS et la ligne de mot LM, leur point de jonction constituant une sortie R de la bascule, et un autre couple de transistors 4OS complémentaires Q3 (canal n) et Q4 (canal p) en série entre la ligne de sortie LS et la ligne de mot LM, leur point de jonction constituant une autre sortie S complémentaire de la sortie R. Les grilles des transistors Q1 et Q2 sont réunies et reliées à la sortie S et de même les grilles des transistors Q3 et Q4 sont réunies et reliées à la sortie R. Un transistor Q5 est connecté entre la sortie R et la ligne de sortie LS, c'est à dire en parallèle sur le transistor Q1 ; il est commandé par une ligne de bit B. Un transistor Q6 est connecté entre la sortie S et la ligne de sortie LS, c'est à dire en parallèle sur le transistor Q3 ; il est commandé par la ligne de bit B* complémentaire de la ligne B. Les transistors Q5 et Q6 sont, dans le mode de réalisation décrit, des transistors MOS à canal n. Le fonctionnement détaillé de la cellule est décrit cidessous ; on doit garder en mémoire le fait qu'il s'agit d'une cellule de mémoire associative dans laquelle - - l'état mémorisé par la cellule est l'état de la bascule, donc par exemple le niveau logique haut ou bas de la sortie S. - lors de la recherche associative, on applique un bit déterminé sur la ligne de bit B (et le complément de ce bit sur la ligne B*), et la cellule délivre une information sur la coïncidence ou non coïncidence entre l'état de la cellule et le bit applique. 10/ Mémorisation au repos On impose en permanence un niveau logique bas sur les lignes B et B*, bloquant les transistors Q5 et Q6 ; la ligne de mot LM est maintenue à une tension d'alimentation Vcc de quelques volts tandis que la ligne de sortie LS est mise à la masse l'état de la bascule donc de la cellule reste parfaitement déterminé et stable tant que ces conditions se perpétuent. 2 / Ecriture de la cellule On veut forcer la bascule dans un état choisi qu'elle gardera ensuite. On impose l'état à écrire par les lignes de bit B et B* qui maintenant reçoivent des niveaux logiques complémentaires. Par exemple, B = 1 B* = O Le niveau 1 sur B est fixé à un niveau qui est environ Vcc - Vtn ou un peu moins, òù Vtn est la tension de seuil des transistors à canal n de la cellule. L'écriture s'effectue en faisant passer à zéro volt la différence de potentiel entre la ligne de mot L! et la ligne de sortie LS et en augmentant ensuite cette différence jusqu'à Vcc. En pratique, la ligne LS est maintenue à la masse et on fait descendre a zéro puis remonter à Vcc la tension sur la ligne de mot. Le déséquilibre des transistors Q5 et Q6, dont l'un est rendu plus conducteur que l'autre lors de la montée en tension, suffit à faire basculer la bascule dans un état préférentiel (ici sortie S à un niveau haut si B est à un niveau haut). Cet état subsiste lorsque la ligne LM est à Vcc, la ligne LS à la masse et lorsque l'on met au niveau bas les deux lignes de bit B et B*. Il faut noter qu'on pourrait aussi laisser la ligne LS en l'air (haute impédance) pendant le passage de la ligne LM à zéro, et mettre simultanément ensuite LM à Vcc et LS à zéro. Résumé de l'écriture - au repos LM = 5 volts tS = 0 volt B = B* = 0 volt - positionnement de B ou B* à environ Vcc - Vtn et de B* ou B à 0 volt - descente de LM à zéro - retour de LM à 5 volts - retour à l'état de repos ; l'état stocké dans la cellule correspond à un niveau logique sur S identique à celui que l'on a mis sur la ligne B. 3 / détection de coincidence LM est à 5 volts et la ligne de sortie LS à la masse. On porte les lignes B et B* à l'état que l'on recherche dans la cellule de mémoire, à savoir B = Vcc - Vtn, B* = O volt ou le contraire. On met la ligne LS en haute impédance en la connectant à l'entrée d'un amplificateur différentiel. Deux cas sont possibles a) il y a coïncidence entre le niveau logique appliqué en B et celui qui existe en S (et bien sûr entre le niveau appliqué en B* et celui qui existe en R). Par exemple le niveau logique sur S et B est haut. Il faut considérer que la ligne de sortie LS, losqu'on la déconnecte de la masse et qu'elle devient connectée uniquement à l'entrée d'un amplificateur différentiel, se comporte comme l'armature d'une capacité (capacité d'entrée de l'amplificateur différentiel) dont l'autre armature est à la masse. Dans la phase préliminaire oh la ligne LS est encore à la masse, cette capacité est complètement déchargée. Lors de la mise en haute impédance, elle peut se charger en fonction des courants qui lui sont appliqués à travers des impédances plus ou moins élevées. S'il y a coincidence entre les niveaux logiques existant sur S et B (niveau haut), on aura mis en conduction les transistors Ql, Q5 et Q4 mais non les transistors Q2, Q3 et Q6, ou le contraire ; de toutes façons les deux branches du bistable sont bloquées et la capacité équivalente de la ligne LS ne peut pratiquement pas se charger ; le potentiel de la ligne LS reste à zéro. b) si au contraire il n'y a pas coïncidence entre les niveaux sur S et B, on aura par exemple, dans le cas ou S = O et B = 1, à la fois conduction du transistor Q2 et du transistor Q5, de sorte que lorsque la ligne LS est mise en haute impédance, sa capacité équivalente peut se charger rapidement jusqu a une tension d'environ Vcc - 2 Vtn (si la tension sur la ligne B est Vcc - Vtn), après quoi la branche Q2, Q5 cesse de conduire. Cette montée en tension de la ligne LS peut facilement être détectée par l'amplificateur différentiel en bout de ligne. Une des raisons pour lesquelles le niveau logique haut sur les lignes de bit B et B* est limite à une valeur de tension inférieure à Vcc - Vtn est la nécessité de ne pas effectuer une lecture destructrice d'information, ce qui risquerait d'arriver si le potentiel de la ligne LS pouvait monter à une valeur trop proche de Vcc. Ici, ce potentiel ne peut monter au dessus de Vcc - 2Vtn. Pour la réalisation d'un plan de mémoire associative, les cellules individuelles de la figure 2 seront agencées en lignes et colonnes de la manière suivante : - une ligne comprend plusieurs cellules raccordées à la meme ligne de mot LML et à la meme ligne de sortie LS mais commandées en écriture par des couples de lignes de bit B, B* différentes ; - une colonne comprend plusieurs cellules commandées par le meme couple de lignes de bit B et B* mais raccordées à des lignes de mot LM et à des lignes de sortie LS différentes. Par conséquent, en phase d'écriture, on écrira un mot sur une ligne déterminée sélectionnée par une ligne de mot LM à qui on fera subir un passage à zéro volt puis une remontée à Vcc. En phase de lecture, ou détection de colncidence, on examinera un mot sur une ligne de cellules sélectionnée par la mise en haute impédance d'une ligne de sortie LS correspondante. S'il y a coincidence du mot entier appliqué sur les lignes B et B* avec l'état de toutes les cellules du mot correspondant, la ligne LS reste à zéro ; il suffit d'une différence sur un bit pour faire monter la tension sur la ligne LS et détecter ainsi la non coïncidence entre le mot appliqué et le mot mémorisé. REVENDICATIONS 1. Cellule de mémoire associative statique constituée à partir d'une bascule bistable (Q1, Q2 > Q3, Q4), caractérisée en ce que la bascule est alimentée entre une ligne de mot (LM) et une ligne de sortie (LS) fournissant une information sur l'état de la bascule, et en ce qu'il est prévu deux transistors (Q5, Q6) connectés chacun entre l'une des sorties complémentaires (R, S) de la bascule et la ligne de sortie (LS), chaque transistor étant commande par l'une de deux lignes de bit (B, B*). 2. Cellule de mémoire selon la revendication 1, caractérisée en ce que les niveaux logiques hauts appliqués sur les lignes de bit correspondent à une tension inférieure à la tension d'alimentation appliquée normalement à la ligne de mot. 3. Mémoire comportant des cellules selon l'une des revendications 1 et 2, agencées en lignes et colonnes, les cellules d'une meme ligne étant raccordées à une ligne de mot commune et à une ligne de sortie commune, et les cellules d'une meme colonne étant raccordées à deux lignes de bit communes.