FR 2655177 A1 19910531 FR 8915508 A 19891124 L'invention concerne les mémoires réalisées en circuit intégré Elle concerne aussi bien les mémoires vives (RAM), que les mémoires mortes (ROM, EPROM, EEPROM) Elle est cependant tout particulièrement intéressante dans le cas des mémoires "flash EPROM" qui sont programmables électriquement et effaçables électriquement par blocs. Lrinvention concerne plus précisément les systèmes de redondance associés à ces mémoires. Dans le brevet FR 87/02372 déposé le 24 février 1987, on a décrit un système de redondance qui a pour but d'optimiser les possibilités de réparation de colonnes défectueuses à l'aide d'un nombre limité de colonnes de redondance, dans le cas o la mémoire est organisée en lignes et colonnes avec un nombre de colonnes multiple du nombre de plots de sortie de données de la mémoire Autrement dit, la mémoire est destinée à fournir des mots de k bits (par exemple k= 8) et il y a k fois p colonnes (par exemple p= 64) La mémoire comprend k groupes de p colonnes et la sélection d'un mot dans la mémoire se fait par sélection simultanée d'une seule colonne dans chaque groupe On se référera au texte de ce brevet pour plus de précision. Le système de redondance de ce brevet repose sur l'idée qu'on va limiter le nombre de colonnes de redondance en mémorisant non seulement l'adresse d'une colonne défectueuse ( 1 parmi p) destinée à être remplacée par une colonne de redondance, mais aussi une position du plot correspondant à la colonne défectueuse. La position du plot n'est pas nécessairement le rang 1 parmi k du plot Dans ce brevet antérieur, c'est une position un peu fictive choisie de la manière suivante: on range les k plots en m ensembles de r plots, et à chaque ensemble est associé une colonne redondante ou un groupe de colonnes redondantes La "position de plot" est une position 1 parmi r du plot à l'intérieur de l'ensemble auquel il appartient Pour donner un exemple chiffré, s'il y a huit plots (k= 8) arrangés en quatre ensembles (m= 4) de deux plots (r= 2), il y a deux positions de plot possibles dans chaque ensemble, qu'on pourrait appeler position O et position 1 Lorsqu'une colonne défectueuse est détectée et doit être remplacée par une colonne redondante, on effectue non seulement un remplacement de cette colonne défectueuse par une colonne redondante, mais aussi un remplacement simultané de toutes les colonnes (non défectueuses) correspondant à la même position de plot dans les autres ensembles et sélectionnées par la même adresse de colonne Ainsi, dans l'exemple numérique donné ci-dessus, si une colonne défectueuse correspondant à une position de plot 1 est repérée, la mise en service de la redondance va consister à remplacer par une colonne redondante respective les quatre colonnes de position 1 qui sont sélectionnées par une adresse de colonne défectueuse Mais on ne remplace pas les colonnes de même adresse et de position de plot 0. Ce système de redondance repose donc sur la mise en mémoire permanente de plusieurs informations relatives aux colonnes défectueuses. Tout d'abord on met en mémoire des adresses de colonnes défectueuses, dans une mémoire d'adresses de colonne défectueuse; chaque adresse permet de désigner une colonne défectueuse parmi p dans un groupe de p colonnes sans distinction entre les k groupes Un comparateur surveille en permanence les adresses appliquées à la mémoire, en lecture comme en écriture; si une adresse de colonne défectueuse se présente, le comparateur réagit pour signaler que la redondance doit être mise en service; il signale aussi quel numéro de réparation doit être déclenché dans le cas général ou plusieurs possibilités de réparation sont prévues et repérées par des numéros. Ensuite, pour chaque numéro de réparation, on mémorise la position de plot correspondant à la colonne effectivement défectueuse, sans distinction entre les ensembles Cette information est enregistrée dans des éléments de mémorisation de position de plot Lorsqu'une adresse défectueuse se présente à l'entrée de la mémoire, elle est repérée par le comparateur; celui-ci détermine quel est le numéro de réparation à mettre en service et fournit une information correspondante permettant de sélectionner les éléments de mémorisation de position de plot qui correspondent à ce numéro Les éléments sélectionnés définissent une position de plot; tous les groupes de colonnes qui correspondent à cette position subiront un remplacement de colonne (défectueuse ou non) par une colonne redondante. En pratique, dans le brevet antérieur FR 87/02372 les éléments de mémorisation de position de plot sont des fusibles: s'il y a seulement deux positions de plot, un fusible seulement suffira à définir cette position S'il y en a quatre il faudra deux fusibles, etc Pour chaque numéro de réparation il faudra ces fusibles. Lorsqu'il n'y a qu'une position de plot à définir parmi deux, la réalisation pratique est assez simple, il suffit de circuits logiques simples pour: ç; ç recevoir du comparateur une information de numéro de réparation; sélectionner en fonction de cette information l'élément de mémorisation (le fusible) qui correspond à ce numéro, et examiner l'état du fusible correspondant pour établir une instruction de sélection des plots dont la position de plot est celle qu'indique le fusible. Bien que cette situation soit assez simple, il faut cependant signaler qu'elle doit prendre ne compte la nécessité d'inscrire l'information de position de plot. Dans une solution avec fusible, on peut imaginer que les fusibles sont grillés par laser, auquel cas il n'y a pas besoin de circuiterie pour l'inscription C'est la solution qui a été adoptée dans la demande de brevet 87/02372 déjà citée Mais aujourd'hui, pour des raisons d'automatisation, on préfère effectuer une inscription électrique Cela permet d'effectuer l'inscription immédiatement au moment o on détecte l'existence de colonnes défectueuses Pour une inscription électrique, il faut de la circuiterie correspondante Cela est vrai pour une mémorisation par un fusible, mais c'est vrai aussi si l'élément de mémorisation est un transistor à grille flottante qu'on utilise de plus en plus comme élément de mémorisation d'information permanente. Là o la situation se complique beaucoup, c'est lorsque le nombre de positions de plots à mémoriser augmente ainsi que le nombre de possibilités de réparation En effet, dans ce cas, il faut un décodage très vite complexe pour: d'une part sélectionner un groupe de fusibles parmi N s'il y a N numéros de réparation possibles; d'autre part désigner les positions de plot correspondant à l'état des différents fusibles ou transistors pour un numéro de réparation donné; et enfin inscrire l'état des éléments de mémorisation de position de plots, au moment du test de la mémoire. Par exemple, s'il y a six réparations possibles et huit positions de plot, il faut six groupes de trois fusibles ou transistors, et un décodage complexe pour établir les connexions qui conviennent pour choisir un groupe parmi six et pour sélectionner les colonnes de redondance de même position, cette position étant définie par l'état d'un groupe de trois fusibles, inscrire électriquement l'état des fusibles à partir du résultat du test montrant qu'il y a une colonne défectueuse. En pratique l'information de position de plot à inscrire électriquement doit venir de quelque part On s'arrangera pour qu'elle vienne du plot sur lequel on a repéré un défaut Cela suppose donc qu'on relie d'une manière ou d'une autre les éléments de mémorisation de position de plot aux plots correspondants en vue de l'inscription. Toutes les connexions, décodeurs, et aiguillages nécessaires rendent ce principe de redondance avec mémorisation de position de plot assez difficile à mettre en oeuvre. La difficulté n'existe d'ailleurs pas seulement dans un circuit o les k plots sont rangés en m ensembles de r plots avec une position de plot 1 parmi r définie simultanément pour tous les ensembles Elle existe aussi dans le cas limite o m=l, c'est-à-dire dans le cas o la position de plot est une position 1 parmi k dans un ensemble unique de k plots. L'invention propose de résoudre cette difficulté en augmentant le nombre d'éléments de mémorisation de position de plot par rapport à ce qui est strictement nécessaire, et en organisant ces éléments en forme de matrice de cellules de mémoire électriquement programmables (transistors à grille flottante). L'accès de la matrice se fait en ligne par des conducteurs issus du comparateur (comparant les adresses de mémoire reçues aux adresses de colonne défectueuses), chaque conducteur correspondant à un numéro de réparation et à une ligne respective de la matrice; la sortie se fait en colonne vers des circuits de lecture/écriture associés à chaque colonne Chaque circuit de lecture/écriture correspond à une position de plot et reçoit, pendant la phase d'inscription de position de plot, une information issue d'un plot correspondant à cette position. Chaque colonne de la mémoire correspond à une position de plot respective; l'apparition d'un bit déterminé sur cette colonne correspond à la sélection d'une position de plot déterminée C'est ainsi que sur N lignes on peut mémoriser N positions de plot différentes qui sont les positions correspondant à N colonnes défectueuses différentes. Dans un exemple avec six possibilités de réparation et huit positions de plots, on aura 48 transistors à grille flottante organisés en matrice, alors que la réalisation normale impliquait seulement 18 transistors à grille flottante Mais on gagne énormément sur la circuiterie de décodage correspondante, sans d'ailleurs compliquer la programmation: la programmation se fera ligne par ligne (six lignes), directement à partir d'une information issue d'un plot. L'invention peut se définir de la manière suivante: Une mémoire intégrée avec k plots de sortie, comportant un circuit de redondance, ce circuit comportant des éléments de mémorisation d'une position de plot de sortie correspondant à une colonne défectueuse, caractérisée en ce que les éléments de mémorisation de position de plot sont des cellules de mémoire électriquement programmables en nombre égal au nombre N de réparations possible multiplié par le nombre r de positions de plot possible, organisées en une mémoire auxiliaire de N lignes et r colonnes (chaque colonne correspondant en principe à une position de plot déterminée). L'invention est tout particulièrement intéressante dans le cas des mémoires électriquement effaçables (EEPROM, flash EPROM) ou pas du tout effaçables (ROM, UPROM), par opposition aux mémoires effaçables par ultraviolet En effet, pour ces dernières, qui comportent une fenêtre transparente aux ultraviolets, il faudrait prévoir un masquage spécial anti UV au dessus de la matrice de mémorisation de position de plot Il est nécessaire en effet de ne pas effacer les informations de redondance Ce masquage est encombrant car il comporte nécessairement des labyrinthes anti lumière Cela réduit l'intérêt de l'invention. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence au dessins annexés dans lesquels: la figure 1 représente un schéma global de réalisation de l'invention. la figure 2 représente plus précisément la constitution du bloc de mémorisation de positions de plot. La réalisation qui va être décrite en détail pour mieux expliquer l'invention correspond à un exemple inspiré du brevet FR 87/02372 (avec des modifications numériques) Il sera facile d'en déduire les modifications qui s'imposent pour d'autres exemples, et en particulier pour un exemple plus simple dans lequel par exemple les mots de huit bits sortent sur huit plots repérés chacun par une position parmi huit. L'exemple décrit ci-après est construit à partir d'un exemple pratique simplifié dans lequel on a une mémoire de k= 8 plots de sortie DO à D 7 pour extraire des mots de huit bits La mémoire est organisée en huit groupes de colonnes, chaque groupe GO à G 7 comportant p colonnes (par exemple p= 64) et correspondant à un plot respectif DO à D 7. Les plots sont répartis en m= 2 ensembles de r= 4 plots, et dans chaque ensemble on définit une position de plot respective ( 1 parmi r) pour chaque plot Les positions sont appelées p O, pl, p 2, p 3 Les plots DO et D 4 ont la position p O chacun dans son ensemble, les plots Dl et D 5 la position pl, etc. Les groupes sont répartis en deux ensembles Ea et Eb exactement comme les plots, puisqu'à chaque groupe correspond un plot. A chaque ensemble Ea et Eb est associé un groupe de colonnes de redondance respectif, C Ra pour l'ensemble Ea, C Rb pour l'ensemble Eb. A partir de là on peut signaler que l'invention est applicable quel que soit le nombre m d'ensembles, y compris m= 1, auquel cas la position de chaque plot est comprise entre 1 et k et il n'y a qu'un plot ayant une position déterminée. La mémoire comporte un décodeur de colonne DC (présent indépendamment de la redondance) pour sélectionner, lorsqu'une adresse de colonne AC est appliquée à la mémoire, une colonne parmi p dans chacun des groupes simultanément, ce qui permet l'application d'un mot de huit bits sur les sorties DO à D 7. Dans ce qui suit on parlera essentiellement de lecture même si la mémoire est inscriptible Pour l'écriture, le mot de huit bits est appliqué aux plots DO à D 7 qui servent alors d'entrées de données et non de sorties de données. L'adresse AC permet donc de sélectionner une colonne utile parmi p en sortie de chaque groupe. Simultanément, cette adresse AC est appliquée à un circuit de redondance qui comporte d'abord un bloc CR 1 destiné à vérifier la nécessité d'une opération de réparation de colonne et à sélectionner partiellement les colonnes de redondance servant à cette réparation. Le bloc CR 1 comprend d'une part des adresses de colonnes défectueuses mémorisées et d'autre part des moyens de comparaison entre les adresses reçues par la mémoire et les adresses mémorisées. Si on suppose qu'il y a N possibilités de réparation simultanée de colonnes défectueuses, il y a N adresses AC en mémoire L'adresse est l'adresse d'une colonne parmi p, c'est-à-dire qu'elle ne prend pas en compte le groupe dans lequel se situe la colonne défectueuse S'il y a 64 colonnes, les adresses AC sont des adresses de 6 bits, et le circuit CR 1 comporte N groupes de 6 éléments de mémorisation qui peuvent être des transistors à grille flottante (EPROM non effaçables ou UPROM) ou des fusibles. Le bloc CR 1 reçoit les adresses AC, les compare aux N adresses défectueuses mémorisées, et fournit sur un bus de N lignes (ou 2 N si on compte les signaux et leurs compléments logiques) une commande de sélection d'une colonne de redondance parmi N dans chacun des ensembles Ea, Eb, c'est-à-dire dans chacun des groupes C Ra, C Rb. Lorsqu'une adresse défectueuse est détectée, une colonne de redondance parmi N est sélectionnée en sortie de chaque groupe C Ra, C Rb, de même qu'une colonne normale est sélectionnée en sortie de chaque groupe GO à G 7. En sortie des colonnes ainsi sélectionnées, que ce soient des colonnes normales ou des colonnes de redondance, il y a un multiplexeur destiné à choisir si l'information transmise aux plots doit émaner d'une colonne normale adressée par le décodeur AC ou d'une colonne de redondance adressée par le circuit C Ri, et cela individuellement pour chacun des groupes de colonnes normales et pour chacun des groupes de colonnes de redondance. Ce multiplexeur est commandé par des signaux p O, pl, p 2, p 3 (et leurs compléments logiques) qui correspondent aux positions de plots des colonnes défectueuses repérées au moment du test. Le multiplexage est le suivant: si aucune position de plot n'est sélectionnée (aucune nécessité de réparation), p O à P 3 sont tous nuls; toute transmission des colonnes de redondance aux plots ou réciproquement est interdite La transmission entre les colonnes normales sélectionnées et les plots correspondants sont autorisées. Si une réparation est nécessaire et qu'elle correspond à la position de plot p O (p O= 1, pl, p 2, p 3 nuls), alors la transmission entre les groupes de colonnes normales de position p O (GO et G 4) vers les plots de position p O (DO et D 4) est interdite et remplacée par une transmission vers ces mêmes plots respectivement de la colonne de redondance sélectionnée par C Ri dans chacun des groupes C Ra et C Rb Pour les il autres positions de plot, la transmission entre les colonnes normales et les plots reste autorisée et la transmission entre les colonnes de redondance et les plots reste interdite. De même pour chacune des autres positions de plot, l'échange entre une colonne normale et une colonne de redondance ne se fait que pour la position de plot repérée par un signal logique non nul. Les signaux p O à p 3 représentant les positions de plot sont issus du bloc MPP de mémorisation de position de plot qui comprend N groupes d'éléments de mémorisation sélectionnables par le bloc CR 1. Enfin, les colonnes normales ou de redondance sélectionnées par le multiplexeur sont reliées aux plots respectifs non pas directement mais par l'intermédiaire d'un circuit de lecture/écriture respectif associé à chaque plot Les circuits de lecture/écriture sont désignés par WO/RO pour le premier plot, Wl/Rl pour le deuxième, etc. Le bloc MPP de mémorisation de position de plot est représenté en détail à la figure 2 Il est constitué sous forme d'une mémoire auxiliaire matricielle, avec des circuits de lecture et d'écriture des données stockées dans cette mémoire auxiliaire. La mémoire auxiliare MA comporte N lignes de cellules de mémoire électriquement programmables et r colonnes, N étant, on le rappelle, le nombre de réparations possibles et r étant le nombre de positions de plot possibles dans chacun des m ensembles m peut être égal à 1, auquel cas r est égal au nombre total k de plots) Chaque cellule est de préférence un transistor à grille flottante de type EPROM ou UPROM; ces cellules sont inscriptibles électriquement et non effaçables. Le nombre total de cellules est largement supérieur à ce qui est strictement nécessaire, et cela d'autant plus que r est plus élevé Pour r= 4, le nombre de cellules est le double de ce qui est strictement nécessaire ( 4 N au lieu de 2 N); pour r= 8, le rapport est encore supérieur ( 8 N au lieu de 3 N). Mais grâce à cela on évite complètement des circuits de décodage encombrants. L'adressage de cette mémoire MA du bloc MPP se fait par N conducteurs de ligne, chaque ligne de cellule comprenant un conducteur de ligne reliant les grilles de commande des transistors à grille flottante de cette ligne Les N lignes de commande proviennent d'un bus de N conducteurs issu du bloc CR 1 Ce bus est disponible en sortie du circuit CR 1 puisque, comme on l'a expliqué, le circuit CR 1 a pour fonction de sélectionner une colonne parmi N dans les groupes de colonnes de redondance. Par conséquent, chaque fois que l'on sélectionne une colonne de redondance déterminée parmi N (correspondant à un numéro de réparation déterminé) on sélectionne en même temps une ligne de la mémoire du bloc MPP. Sur les colonnes de la mémoire on lit alors un mot de r bits Mais la programmation de la mémoire du bloc MPP est faite de telle sorte que les mots de r bits de cette mémoire ne comprennent en fait qu'un seul bit différent des autres (par exemple un bit 1 parmi r-1 bits zéro) Cela est possible du fait que la mémoire comporte r colonnes et qu'on cherche à stocker dans cette mémoire justement une position de plot parmi r. Par conséquent, on va lire sur un conducteur de colonne de la mémoire MPP un bit 1, ce conducteur définissant alors la position de plot correspondant à une colonne défectueuse: à chaque conducteur de colonne de la mémoire correspond une position de plot déterminée unique et réciproquement. La lecture de la mémoire (et d'ailleurs son écriture) se font d'une manière très classique pour des mémoires EPROM, à travers un circuit de lecture/écriture respectif pour chaque colonne Les circuits de lecture/écriture sont désignés par LEO à LE 3 pour les colonnes représentant p O à p 3 respectivement. On peut si on le désire, comme on fait couramment dans certaines mémoires EPROM, prévoir que les circuits de lecture/écriture fonctionnent par comparaison avec une colonne de référence comportant N transistors tous programmés de la même manière (c'est-à-dire tous programmés ou tous vierges), ces transistors étant commandés par les N conducteurs de ligne de la mémoire. Les sorties des colonnes du bloc de mémoire de position de plot définissent les r signaux po, pl, p 2, p 3 (avec leurs compléments logiques) qui sont nécessaires pour la commande du multiplexeur de la mémoire principale Aucun décodage n'est nécessaire entre les sortie des la mémoire et les entrées de commande du multiplexeur. Pour l'écriture des bits de cette mémoire (écriture d'un bit parmi r dans chaque ligne), on prévoit que le circuit de lecture/écriture LEO est relié aux plot de position O (DO et D 4), le circuit L El est relié aux plots de position 1 (Dl et D 5), etc Ainsi, la programmation d'une position de plot se fait directement, sans décodage au moment du test de la mémoire, on détecte une information erronée sur n'importe quel plot, par exemple D 6 Un bit est alors placé sur ce plot pour être inscrit dans la mémoire du bloc MPP par l'intermédiaire du circuit de lecture/écriture LE 2 qui est relié à ce bit La position de plot p 2 est ainsi mémorisée. Dans le cas o le circuit de mémoire intégrée selon l'invention est une mémoire non effaçable par ultraviolets, par exemple lorsque c'est une mémoire flash EPROM effaçable électriquement par blocs, la mémoire de position de plot du bloc MPP peut être une mémoire EPROM; elle n'a pas besoin d'être protégée contre des ultraviolets auxquels elle serait exposée si la mémoire principale était une mémoire EPROM à fenêtre d'effacement UV Par conséquent, la mémoire du bloc MPP n'a pas besoin d'être protégée par des masques d'aluminium et surtout par des labyrinthes de protection Ces labyrinthes sont nécessaires pour éviter une pénétration latérale de lumière ultraviolette lors de l'effacement de la mémoire EPROM, car cette pénétration effacerait les données de redondance qui doivent être conservées La mémoire MPP serait beaucoup plus volumineuse si elle devait être munie de ces labyrinthes de protection L'absence de fenêtre UV pour les mémoires flash EPROM permet donc de minimiser la surface de la mémoire de positions de plot, ce qui est particulièrement avantageux. L'invention s'applique tout particulièrement dans le cas o les positions de plot possibles sont au nombre de k, c'est-à-dire en nombre égal au nombre de plots. Pour des mémoires fournissant des mots de huit ou seize bits, on aurait donc huit ou seize positions de plot (r= 8 ou r= 16) et c'est pour ces mémoires que l'invention est la plus avantageuse car elle limite considérablement l'encombrement des circuits de décodage de position de plot qui étaient auparavant nécessaires. REVENDICATIONS 1 Mémoire intégrée avec k plots d'entrée/sortie (DO à D 7), comportant un circuit de redondance, ce circuit comportant des éléments (MPP) de mémorisation d'une position de plot d'entrée/sortie correspondant à une colonne défectueuse, caractérisée en ce que les éléments de mémorisation de position de plot sont des cellules de mémoire électriquement programmables en nombre égal au nombre N de réparations possibles multiplié par le nombre r de positions de plot possibles, organisées en une mémoire auxiliaire de N lignes et r colonnes, chaque colonne de cette mémoire correspondant à une position de plot déterminée. 2 Mémoire intégrée selon la revendication 1, caractérisée en ce que l'information inscrite dans chaque ligne de la mémoire auxiliaire comprend un bit différent des r-l autres bits de la même ligne, ce bit étant placé sur la colonne correspondant à une position de plot associée à une colonne défectueuse de la mémoire intégrée. 3 Mémoire selon l'une des revendications 1 et 2, caractérisée en ce que chaque colonne de la mémoire auxiliaire comprend un conducteur de colonne relié à un circuit de lecture/écriture, les sorties de lecture de ce circuit constituant les sorties de la mémoire auxiliare, et les plots d'entrée-sortie d'une position donnée étant reliés à des entrées d'écriture du circuit de lecture/écriture de la colonne de mémoire auxiliaire correspondant à cette position de plot. 4 Mémoire selon l'une des revendications 1 à 3, caractérisée en ce qu'elle comporte k groupes de p colonnesde mémoire principale, chaque groupe correspondant à un plot, répartis en m ensembles (Ea, Eb) de r groupes, avec un groupe de colonnes de redondance (C Ra, C Rb) associé à chaque ensemble, et un multiplexeur directement commandé par les sorties de la mémoire auxiliaire pour définir si l'information transmise aux plots doit provenir d'une colonne normale ou d'une colonne de redondance de la mémoire principale. Mémoire selon la revendication 4, caractérisée en ce que le multiplexeur établit les connexions suivantes à partir des conducteurs de colonne de la mémoire auxiliaire, ces conducteurs fournissant des signaux correspondant à des positions de plot (p O à p 3): si les signaux issus des colonnes sont tous nuls (aucune nécessité de réparation), toute transmission des colonnes de redondance aux plots de la mémoire ou réciproquement est interdite; les transmissions entre les colonnes de mémoire principale sélectionnées et les plots correspondants sont autorisées. si une réparation est nécessaire et qu'elle correspond à une position de plot donnée, par exemple p O (p O= 1, pl, p 2, p 3 nuls), alors la transmission entre les groupes de colonnes normales de position p O (GO et G 4) vers les plots de position p O (DO et D 4) est interdite et la transmission entre les colonnes de redondance et ces plots est autorisée; la transmission entre les autres plots et les colonnes normales est autorisée et la transmission entre les autres plots et les colonnes de redondance est interdite. 6 Mémoire selon l'une des revendications 1 à 5, caractérisée en ce qu'elle comporte un circuit de sélection de colonne de redondance, apte à sélectionner 1 2655177 une colonne de redondance parmi N colonnes d'un groupe de colonnes de redondance, et en ce que les sorties de ce circuit commandent directement les lignes de la matrice de mémoire auxiliaire.