Brevet FR2716732A1 — publié le 19950901

SYSTEME D'ADRESSAGE DE MEMOIRE DE REDONDANCE L'invention concerne un système d'adressage de mémoire de redondance de mémoire principale applicable notamment aux mémoires réalisées en circuits intégrés. Les mémoires à accès direct du type mémoires à circuits intégrés sont organisées en lignes et colonnes avec un point mémoire à l'intersection de chaque ligne et de chaque colonne. L'enregistrement d'un élément d'information (élément binaire) sur un point mémoire se fait par adressage d'une ligne et d'une colonne. La mémoire est organisée de façon qu'une rangée telle qu'une colonne fournisse une information significative selon les valeurs (bits) enregistrées sur les différents points mémoires de cette colonne. Pour lire cette information, on interroge donc cette colonne et on lit, sur les fils de lignes, les différents bits constituant cette colonne. Pour inscrire et pour lire des informations sur les colonnes de la mémoire, il convient donc d'adresser ces colonnes. Cela se fait à l'aide d'un décodeur qui reçoit une adresse en numérotation binaire sur des entrées et qui fournit un signal d'adressage sur un fil et un seul vers un fil de colonne. Cependant, un ou plusieurs points mémoires d'une colonne peuvent être en défaut. I1 est alors connu dans la technique d'adressage des mémoires de pouvoir substituer à une partie (colonne) d'une mémoire principale, lorsqu'elle s'avère défectueuse, une mémoire de secours ou mémoire de redondance. Par exemple, si une colonne de la mémoire principale est défectueuse, on la remplace par une colonne de redondance de la manière suivante: l'adresse de la colonne défectueuse est mise en mémoire dans une mémoire d'adresse défectueuse ; cette mémoire d'adresse défectueuse est une mémoire de type adressable par son contenu appelée ci-après mémoire CAM (Content Adressable Memory) ; chaque fois qu'une adresse est appliquée à la mémoire principale, cette adresse est également appliquée à la mémoire CAM. Si l'adresse appliquée est identique à l'adresse mémorisée, un circuit de redondance est mis en service et agit pour déconnecter la colonne défectueuse et connecter à sa place une colonne de redondance, d'une manière invisible pour l'utilisateur. En pratique, selon l'organisation de la mémoire principale, si une colonne est défectueuse, on remplacera plutôt un groupe de colonnes contenant cette colonne défectueuse par un groupe de colonnes de redondance : en général, si un groupe de colonnes est défini par un bit d'adresse de la mémoire de grande capacité, c'est ce groupe de colonnes qu'on remplacera dans son ensemble. Dans la suite, pour simplifier, on se contentera de parler du remplacement d'une colonne plutôt que du remplacement d'un groupe de colonnes. Pour une mémoire principale de plusieurs mégabits, on prévoit la possibilité de réparer plusieurs défauts; il y a donc autant de colonnes de redondance que de colonnes ou de lignes en défaut qu'on veut pouvoir réparer. A chaque colonne de redondance est associée une mémoire CAM respective qui contient l'adresse d'une colonne défectueuse. Si on veut réparer N colonnes en défauts, il faut N colonnes de redondance et N mémoires CAM. Typiquement N=36 pour une mémoire de 4 ou 16 mégabits. Si une colonne de la mémoire principale est désignée par une adresse de M bits (par exemple M=5), chaque mémoire CAM contient au moins M+1 bit : M bits pour définir l'adresse d'une colonne défectueuse et un bit de validation pour indiquer que le circuit de redondance correspondant à cette mémoire CAM doit effectivement être activé lorsque l'adresse défectueuse est appliquée à la mémoire CAM. Lors du test d'une mémoire principale et de la détection de défauts, on doit donc enregistrer convenablement des mémoires CAM pour que lors de tentatives d'utilisations ultérieures des parties défectueuses de la mémoire principale, ces mémoires CAM substituent automatiquement la mémoire de redondance aux parties défectueuses de la mémoire principale. Lorsqu'une colonne est trouvée défectueuse, on doit donc enregistrer dans une mémoire CAM, l'adresse de cette colonne. Une mémoire CAM comporte autant de cellules qu'il y a de bits pour caractériser une adresse défectueuse mémoire, plus éventuellement, une cellule destinée à enregistrer un bit de validation indiquant que la CAM considérée contient une adresse défectueuse. Selon les techniques connues, chaque cellule est commandée pour prendre un état 0 ou 1 correspondant à la valeur d'un bit de l'adresse défectueuse. Cet adressage se fait cellule par cellule et nécessite donc un décodage de l'information d'adresse de la cellule. L'invention a pour objet principal d'éviter de prévoir un circuit de décodage particulier à l'adressage des cellules des CAM. Elle permet donc d'économiser sur les circuits de décodage et sur le câblage. C'est pourquoi l'invention concerne un système d'adressage de mémoire de redondance applicable à une mémoire principale organisée en lignes et colonnes comportant au moins un circuit de décodage d'adresses de colonnes (ou de lignes) mémoire. Ce système comprend des zones de mémoires de redondance adressables par des mémoires d'adresses défectueuses destinées chacune à recevoir une adresse mémoire correspondant à une zone défectueuse de la mémoire principale. Chaque mémoire d'adresse défectueuse comporte un nombre déterminé de cellules correspondant à un nombre d'éléments binaires nécessaires pour désigner une zone défectueuse de la mémoire principale. Dans ce système, chaque cellule d'une mémoire d'adresse défectueuse est connectable à un fil de colonne (ou de ligne) pour l'enregistrement dans cette cellule d'un élément d'adresse de colonne (ou de ligne) mémoire. De cette façon, en enregistrement, les mémoires d'adresses défectueuses sont adressables à l'aide du circuit de décodage d'adresses de colonnes (ou de ligne) mémoires. Selon ce système, chaque cellule est déconnectable du fil de colonne (ou de ligne) mémoire lors de la lecture de la mémoire. En lecture, les cellules des mémoires d'adresses défectueuses reçoivent les adresses mémoires et comparent chaque adresse qu'elles reçoivent avec l'adresse défectueuse qu'elles contiennent. Les différents objets et caractéristiques de l'invention apparaîtront plus clairement dans la description qui va suivre et dans les figures annexées qui représentent - La figure 1, un diagramme général de réalisation du système selon l'invention - La figure 2, un exemple de diagramme plus détaillé d'une cellule de mémoire d'adresse défectueuse selon l'invention - La figure 3, un exemple d'une mémoire d'adresse défectueuse du système selon l'invention. - La figure 4, un diagramme général de commande des colonnes de redondance - La figure 5, un autre exemple de réalisation d'une cellule d'une mémoire d'adresse défectueuse. En se reportant à la figure 1, on va tout d'abord décrire un exemple de réalisation général du système selon l'invention. Sur la figure 1, on trouve donc une mémoire ME comportant un arrangement de fils de colonnes BL1 à BLm et de fils de lignes LL1 à LLp. Un décodeur d'adresse DEC reçoit sur une entrée ADD une adresse codée et fournit en échange un signal sur un fil de colonne BL1 à BLn. La mémoire ME réagit alors en fournissant, en raison des points mémoires situés sur la colonne adressée, des signaux de lecture LEC sur les fils de lignes LL1 à LLp. Selon l'invention, on prévoit de connecter en sortie du décodeur DEC, les cellules de mémoires d'adresses défectueuses qui vont être utilisées pour adresser des mémoires de redondance. Par exemple, on connecte aux extrémités des fils de colonnes BL1 à BLn, des cellules des mémoires CAM1 à CAMk. C'est ainsi que les cellules CELl à CELm de la mémoire CAM1 ont été connectées aux fils BL1 à BLm. Si la mémoire comporte 128 adresses de colonnes, une adresse ADD exprimée en numérotation binaire comporte 7 bits. Une mémoire CAM comporte alors 7 cellules plus éventuellement 1 cellule pour le bit de validation, soient 8 cellules pour une mémoire CAM. Les 128 fils de colonnes permettent alors de connecter 16 mémoires CAM. On dispose alors de 16 mémoires de redondance possibles. Lors d'un test de la mémoire ME, lorsqu'on détecte un défaut sur une colonne, on enregistre son adresse dans une mémoire CAM1 à CAMk. Cet enregistrement se fait en adressant individuellement chaque cellule d'une mémoire CAM. Pour cela, le décodeur DEC reçoit pour chaque adressage et enregistrement d'une cellule, qu'on appellera "programmation" dans ce qui va suivre, une adresse désignant un fil de colonne, c'est-à-dire une mémoire CAM et une cellule dans cette mémoire CAM. L'adressage du fil désigné se fait en appliquant un potentiel par le décodeur DEC. Ce potentiel a pour effet de mettre la cellule connectée à ce fil dans un état particulier et donc de la programmer. En utilisation normale de mémoire ME, les cellules des mémoires CAM1 à CAMk sont déconnectées des fils de colonnes par des commutateurs tels que CI1. Lorsqu'une adresse ADD est fournie au décodeur DEC, elle est également fournie aux différentes mémoires d'adresses défectueuses CAM1 à CAMk. Selon l'exemple précédent, une adresse ADD comporte 7 bits (pour adresser 128 colonnes) . Une mémoire CAM comporte 7 bits d'adresse défectueuse et un bit de validation de la cellule. Dans chaque mémoire d'adresse défectueuse, les 7 bits de l'adresse ADD sont comparés aux 7 bits d'adresse défectueuse. Si dans une mémoire d'adresse défectueuse déterminée, CAM1 par exemple, 1'adresse ADD est identique à l'adresse contenue dans la mémoire d'adresse défectueuse CAM1, et si le bit de validation à une valeur indiquant que la mémoire d'adresse défectueuse CAM1 peut être utilisée, la mémoire CAM1 fournit d'une part, un signal au décodeur DEC pour interdire ou annuler l'adressage d'une colonne de mémoire et, d'autre part, un signal pour adresser une colonne de redondance tel que RL1. La figure 2 représente un exemple de réalisation simplifiée d'une cellule CEL1 d'une mémoire d'adresse défectueuse. La cellule est connectée à un fil de colonne BL1 par un transistor de commutation CI1. En mode de programmation de la cellule, le transistor CI1 est passant. Le drain d'un transistor à grille flottante TGF1 est connecté au fil de colonne BL1. La grille du transistor TGF1 est reliée à un potentiel VGF dépendant du fonctionnement (par exemple 3 volts en lecture et 12 volts en programmation). La source du transistor TGF1 est reliée à un potentiel VS qui peut être un potentiel de masse. il est à noter que les potentiels VGF et VS peuvent être communs à toutes les cellules de toutes les mémoires d'adresses défectueuses. A l'origine, le transistor TGF1 est dans un état déterminé, l'état 1 par exemple. Lorsqu'un signal de commande est appliqué sur le drain du transistor TGF1, celui-ci change d'état et passe à l'état 0. Si ce signal de commande n'est pas appliqué, la cellule reste à l'état 1 et est programmée dans cet état. Toutes les cellules de toutes les mémoires d'adresses défectueuses ayant été programmées, elles peuvent être utilisées en mode normal de lecture de la mémoire ME. Le transistor CI1 est alors commuté et isole la cellule CEL1 du fil BL1. A chaque réception d'un bit AO d'une adresse ADD dans la cellule CEL1, ce bit AO est appliqué à une entrée d'un comparateur COMP qui reçoit sur une autre entrée un signal de lecture de l'état du transistor TGF1 et est fourni par un circuit de lecture LEC. Si la valeur du bit AO correspond à l'état du transistor TGF1, le comparateur COMP délivre un signal d'identité de valeur 1 par exemple. La figure 3 représente plusieurs cellules d'une même mémoire d'adresse défectueuse CAM1. Toutes les sorties des comparateurs COMP des différentes cellules sont connectées aux entrées d'une porte ET. Si elles sont toutes à l'état 1, cela signifie qu'il y a identité entre une adresse ADD et une adresse contenue dans la mémoire d'adresse défectueuse CAM1. Si, de plus, la cellule contenant le bit de validation est à 1, la porte ET fournit un signal de coïncidence de valeur 1 (par exemple) sur sa sortie. Ce signal de coïncidence commande un transistor d'accès de colonne de redondance tel que TR1 (voir figure 4). La colonne de redondance RL1 est commandée à la place de la colonne de mémoire ME qui est en défaut. Parallèlement, le signal de coïncidence fourni par la porte ET commande l'inhibition de l'adressage de la colonne en défaut. Cette inhibition se fait, par exemple, au niveau du décodeur DEC. Un circuit OU commande cette inhibition s'il reçoit un signal de coïncidence d'une mémoire d'adresse défectueuse. La figure 5 représente un exemple de réalisation détaillé d'une cellule dans lequel cette cellule est conçue sous la forme d'un bistable programmable non volatile. On retrouve, sur cette figure, le transistor TGF1 de la figure 1. Cette cellule comprend deux branches identiques en parallèle entre une borne d'alimentation A (potentiel Vcc de l'ordre de 3 volts) et une borne B la borne B est à un potentiel VS nul en mode de lecture ou de programmation et peut aussi être portée à un potentiel VS élevé (12 volts) en mode d'effacement si un mode d'effacement est prévu (flash EPROM) ; en série dans chaque branche, on trouve un transistor à canal P (T1, T2), un transistor à canal N (T3, T4), et un transistor à grille flottante (TGF1, TGF2). La grille du transistor à canal P (T1, T2) de l'une des branches est reliée au drain du transistor à canal P (T2, T1) de l'autre branche. Les grilles des transistors à canal N (T3, T4) sont reliées ensemble à un potentiel commun VB dont la valeur dépend du mode de fonctionnement (environ 1,8 volt en lecture ; zéro volt en programmation ou effacement pour avoir 1 volt sur le drain des cellules en lecture). Les transistors T3 et T4 sont des transistors d'isolation pour empêcher la transmission aux transistors T1 et T2 des tensions relativement élevées appliquées aux transistors à grille flottante en mode de programmation ou effacement. Les grilles des transistors à grille flottante TGF1, TGF2, sont reliées à un potentiel commun VGF dépendant du fonctionnement (3 volts environ en lecture, 12 volts environ en programmation). La source de ces transistors est reliée au noeud B (potentiel VS). Le potentiel de drain du transistor TGF1 est contrôlé par le transistor TI1 respectivement, permettant soit de relier le drain à un potentiel de programmation venant d'une colonne LB1 (transistor TI1 conducteur) soit de laisser le drain en haute impédance (transistor TI1 bloqué). En mode de programmation, la grille du transistor TI1 est contrôlée par un signal de programmation venant d'une colonne BL1. En mode de lecture, le drain du transistor TI1 reste en haute impédance, la tension VPRG n'étant pas appliquée à ces drains. De plus, un transistor T8, de préférence à canal P, est inséré entre le drain du transistor T2 (noeud D sur la figure 5) et le drain du transistor T4. La grille de ce transistor T8 est reliée à la sortie OUT de la cellule, de sorte que le transistor T8 est conducteur si OUT est au niveau logique 0 et T8 est bloqué si OUT est au niveau 1. Par ailleurs, on prévoit de préférence aussi un transistor T9 supplémentaire, de préférence à canal N, connecté en parallèle entre l'entrée de l'inverseur INV2 et la masse ; il permet de mettre à zéro cette entrée. Ce transistor est commandé par la sortie OUT, de sorte que le passage de OUT à 1 entraîne la mise à zéro de l'entrée de INV2, confirmant ainsi la sortie OUT à 1 (et la sortie NOUT à 0). Le transistor T9 sert donc à maintenir la sortie OUT à 1 si elle tend à y passer comme c'est effectivement le cas à la mise sous tension de la bascule. La cellule est appelée "bistable" car elle possède un état stable parmi deux possibles, l'état stable qu'elle prend dépend de la commande du transistor TGFl. L'état de la cellule est lu sur le drain d'un des transistors à canal P (T2 par exemple). Ce drain est relié à l'entrée d'un premier inverseur INV1 suivi d'un deuxième inverseur 25 INV2. La sortie de INV2 est la sortie OUT de la cellule. La sortie INV1 sert de sortie complémentaire NOUT si on en a besoin. Enfin, un transistor supplémentaire T7 peut permettre, uniquement en mode de test, pour éviter les noeuds flottants quand T3 et T4 sont bloqués, de mettre à la masse temporairement (pour une initialisation de l'état de la cellule à chaque remise sous tension) l'entrée de l'inverseur INV1 ; la grille de ce transistor est commandée par un créneau d'initialisation INIT produit par un circuit classique de remise sous tension ("Power On Reset") non représenté. Il est à noter qu'on peut prévoir un transistor T6 commandé par un signal complémentaire du signal du fil de colonne. Ainsi, on peut mettre dans un état O le bistable si le signal reçu sur le fil BL1 est 0, ou bien confirmer à 1 l'état du bistable si le signal sur le fil BL1 est 1. Dans ce qui précède, on n'a pas considéré le mode de décodage du décodeur DEC. L'invention est applicable également à un mode de décodage à deux étages (voir figure 4). Par exemple, dans le cas d'une mémoire à 128 colonnes, nécessitant des adresses à 7 bits, on peut prévoir de décoder les cinq premiers bits. Cela fournit 32 fils décodés. Ces 32 fils sont présentés quatre fois sur la mémoire ME et le décodage des deux derniers bits permet d'accéder à l'un des quatre groupes de 32 fils à l'aide des transistors TD1 à TD4. On peut aussi faire un premier décodage sur les trois premiers bits complété par un décodage sur les quatre derniers bits. Dans ce cas, on peut prévoir que le premier décodage permet d'accéder, en programmation des cellules des mémoires défectueuses, aux différentes cellules. Le deuxième décodage des quatre derniers bits permet de choisir l'une des seize mémoires d'adresses défectueuses. Il est à noter qu'en mode de programmation des mémoires d'adresses défectueuses, on peut prévoir d'inhiber la sélection des fils de lignes pour éviter de programmer la mémoire ME. Cela peut se faire par exemple en mettant toutes les lignes à zéro. REVENDICATIONS 1. Système d'adressage de mémoire de redondance applicable à une mémoire principale (ME) organisée en lignes et colonnes comportant au moins un circuit de décodage (DEC) d'adresses de colonnes (ou de ligne) mémoire. Ce système comprenant des zones de mémoires de redondance (RL1, RL2) adressables par des mémoires d'adresses défectueuses (CAM1, ... CAMk) destinées chacune à recevoir une adresse mémoire correspondant à une zone défectueuse de la mémoire principale, chaque mémoire d'adresse défectueuse comportant un nombre déterminé de cellules (CEL1) correspondant à un nombre d'éléments binaires nécessaires pour désigner une zone défectueuse de la mémoire principale, caractérisé en ce que, chaque cellule (CEL1) d'une mémoire d'adresse défectueuse est connectable à un fil de colonne (ou de ligne) (BL1) pour l'enregistrement dans cette cellule d'un élément d'adresse de colonne (ou de ligne) mémoire de cette façon, en enregistrement, les mémoires d'adresses défectueuses sont adressables à l'aide du circuit de décodage d'adresses de colonnes (ou de ligne) mémoires. 2. Système, selon la revendication 1, caractérisé en ce que chaque cellule est déconnectable du fil de colonne (ou de ligne) mémoire lors de la lecture de la mémoire par un commutateur d'isolation (Cil). 3. Système, selon la revendication 1, caractérisé en ce qu'en lecture, les cellules des mémoires d'adresses défectueuses reçoivent les adresses mémoires (ADD) et comparent chaque élément d'adresse qu'elles reçoivent avec les éléments d'adresse défectueuse qu'elles contiennent. 4. Système, selon la revendication 3, caractérisé en ce qu'il comporte un circuit à coïncidence de type ET fournissant un signal de coïncidence associé à chaque mémoire d'adresse défectueuse recevant des signaux de comparaison des éléments d'adresse mémoire avec des éléments d'adresse défectueuse et fournissant un signal de commande d'une mémoire de redondance en cas d'identité entre les deux adresses. 5. Système, selon la revendication 4, caractérisé en ce qu'il comporte un circuit logique de type OU recevant sur ces entrées les signaux de commande des différentes mémoires d'adresses défectueuses et fournissant un signal d'inhibition de l'adressage de la mémoire principale (ME) en cas de présence d'au moins un signal de commande fournit par un circuit à coïncidence.