Brevet FR2964483A1 — publié le 20120309

B10-1578FR 1 Procédé de traitement d'erreurs dans une mémoire non volatile, en particulier une mémoire du type EEPROM, et dispositif de mémoire correspondant L'invention concerne les mémoires, notamment les mémoires non volatiles, telles que par exemple les mémoires mortes du type électriquement programmables et effaçables (mémoires du type EEPROM) et plus particulièrement le traitement des défaillances de ces mémoires. Les mémoires non volatiles, notamment de type EEPROM, sont sujettes à des corruptions de données dues à des emplacements mémoires ou cellules mémoires défectueux communément désignés par l'homme du métier sous la dénomination anglosaxonne de « single bit fails ». Ces défauts peuvent être présents initialement sur des mémoires « neuves » ou bien être absents initialement mais générés au cours du temps durant la vie de la pièce. Ces défauts peuvent être dus par exemple à des défectivités dans le procédé de fabrication, à des claquages d'oxydes, à des apparitions de pertes en rétention sur des cellules-mémoires isolées. Ces emplacements mémoires défectueux conduisent, lors de la lecture des bits contenus dans ces emplacements, à des valeurs logiques erronées. Une solution classique consiste à utiliser un code correcteur d'erreurs ou Ecc (« Error code correction ») pour corriger la valeur logique erronée d'un bit. Plus précisément, avec un code correcteur d'erreurs, si l'on ajoute s bits de contrôle à b bits de données on peut corriger r erreurs parmi les b+s bits. Généralement les codes correcteurs d'erreurs utilisés dans le domaine des mémoires permettent de corriger une seule erreur (r=l) dans le mot de b+s bits. Deux erreurs dans une mémoire peuvent être corrigées à condition que les deux emplacements défectueux correspondent à deux bits non situés dans le même groupe de (b+s) bits. Des codes correcteurs d'erreurs capables de corriger deux erreurs (r=2) nécessitent un nombre beaucoup plus important de bits de contrôle et une logique de plus grande complexité. Selon un mode de mise en oeuvre et de réalisation il est proposé de pouvoir corriger au moins deux erreurs dans un mot de n bits en utilisant un code correcteur d'erreurs ne permettant que de corriger une erreur par mot de n bits. Selon un aspect il est proposé un procédé de traitement d'erreurs dans une mémoire non volatile, ladite mémoire stockant des mots, le procédé comprenant : - lors d'un adressage de la mémoire pour écrire un deuxième mot à l'adresse d'un premier mot contenant un bit ayant une valeur logique erronée correspondant à un emplacement mémoire défectueux, a) une lecture du premier mot, b) une détection par un code de correction d'erreur de la présence dans la mémoire de ce bit ayant une valeur logique erronée, c) une écriture d'au moins une partie dudit deuxième mot dans ladite mémoire non volatile à ladite adresse et, d) une écriture dans des moyens de mémoire auxiliaires d'une information contenant au moins ladite adresse et d'un bit relocalisé situé dans un emplacement mémoire auxiliaire de ces moyens de mémoire auxiliaires et affecté de la valeur logique souhaitée du bit du deuxième mot situé audit emplacement mémoire défectueux, et - lors d'un adressage ultérieur de ladite mémoire pour lire le deuxième mot, e) une lecture des bits non erronés du deuxième mot comprenant une lecture dans les moyens de mémoire auxiliaires d'au moins ledit bit relocalisé ayant ladite valeur logique souhaitée. I1 est ainsi proposé de coupler un code correcteur d'erreur avec une réallocation dynamique. Plus précisément, lorsque par exemple un bit situé à un emplacement défectueux est détecté en erreur par le code correcteur d'erreur lors de la lecture d'un premier mot de n bits, ce bit est corrigé à la volée de façon classique. Lorsqu'on souhaite réécrire un deuxième mot à l'adresse du premier mot, on programme dans une zone de redondance la valeur logique souhaitée du bit en erreur. Et tout accès ultérieur à ce deuxième mot substituera au bit en erreur le bit reprogrammé (ou bit relocalisé) dans la zone de redondance. On remplace donc un groupe de n bits du plan mémoire EEPROM contenant un bit en erreur par un groupe de n -1 bits du plan mémoire contenant zéro erreur associé à un bit de redondance relocalisé et valide. On a donc recréé un groupe composite de n bits contenant zéro erreur. En cas de génération d'une nouvelle erreur, la présence de cette erreur dans ce groupe composite de n bits peut être de nouveau corrigée par le code correcteur d'erreur, que cette erreur apparaisse dans les n-1 bits du plan mémoire ou dans le bit relocalisé. On permet donc bien ici la correction de deux erreurs dans un mot de n bits en utilisant un code correcteur d'erreur ne permettant que de corriger une erreur par groupe de n bits. En fait lors de l'écriture du deuxième mot à la place du premier mot, la valeur du bit qui va être écrit dans l'emplacement défectueux de la mémoire n'a aucune importance, puisque de toutes façons la lecture ultérieure dans l'emplacement défectueux sera déroutée vers la lecture du bit relocalisé situé dans la zone de redondance. Ainsi même si en pratique on réécrit une valeur logique dans l'emplacement défectueux, que ce soit la valeur logique du bit en erreur ou bien la valeur logique souhaitée de ce bit, on pourrait même en théorie s'abstenir de réécrire quoi que ce soit dans cet emplacement. A titre d'exemple, si le bit défectueux se situe dans un premier octet du mot que l'on veut remplacer par un autre premier octet lors de la réécriture du mot, les autres octets étant inchangés, il n'est pas nécessaire de corriger la valeur erronée du bit défectueux du premier mot lors de sa lecture, puisque le premier octet va être modifié. Seule la position du bit défectueux dans ce premier octet est nécessaire. La valeur logique souhaitée pour ce bit défectueux est alors la valeur logique du bit correspondant dans le deuxième mot. Cette valeur logique souhaitée ainsi que la position du bit défectueux seront stockées dans les moyens de mémoire auxiliaires. Cette valeur logique souhaitée pourra également être écrite dans l'emplacement défectueux de la mémoire. Si le bit défectueux se situe dans le premier octet du mot, et que l'on veut remplacer le deuxième octet du mot par autre deuxième octet, les autres octets devant être réécrits à l'identique, il est non seulement nécessaire de déterminer lors de la lecture du premier mot, la position du bit défectueux dans le premier octet mais aussi de corriger cette valeur. C'est cette valeur corrigée qui sera alors ladite valeur souhaitée et qui sera stockée avec la position du bit défectueux dans les moyens de mémoire auxiliaires. Lors de l'écriture du deuxième mot, la valeur erronée du bit défectueux ou bien la valeur souhaitée pourra être écrite dans l'emplacement mémoire défectueux de la mémoire. Selon un mode de mise en oeuvre, lequel l'étape b) comprend une détermination de la position dudit emplacement défectueux, on écrit dans les moyens de mémoire auxiliaires ladite information contenant ladite adresse et ladite position, et lors dudit adressage ultérieur de ladite mémoire pour lire le deuxième mot, la lecture des bits non erronés du deuxième mot comprend une lecture du bit relocalisé ayant ladite valeur logique souhaitée dans les moyens de mémoire auxiliaires et une lecture des valeurs des autres bits du deuxième mot dans ladite mémoire. En d'autres termes selon ce mode de mise en oeuvre, on n'écrit dans les moyens de mémoire auxiliaires que le bit relocalisé (ou de redondance) avec ladite valeur logique souhaitée. Selon un autre mode de mise en oeuvre, on écrit dans plusieurs emplacements mémoire auxiliaires des moyens de mémoire auxiliaires, plusieurs bits relocalisés ayant respectivement ladite valeur souhaitée et les valeurs des autres bits du deuxième mot situés à des emplacements mémoire non défectueux, et lors dudit adressage ultérieur de ladite mémoire pour lire le deuxième mot, la lecture des bits non erronés du deuxième mot comprend une lecture des valeurs de tous les bits relocalisés contenus dans lesdits moyens de mémoire auxiliaires. Autrement dit, dans cet autre mode de mise en oeuvre, on relocalise non pas seulement le bit défaillant du mot, mais tous les bits du mot. Ceci peut permettre d'accroître l'endurance de zones précises de la mémoire. Ainsi, par exemple, chaque fois qu'un mot souvent cyclé présente un bit défectueux, on le remplace par un mot neuf relocalisé. Selon un mode de mise en oeuvre, un adressage de la mémoire pour la lecture d'un mot contenant un bit ayant une valeur logique erronée correspondant à un emplacement mémoire défectueux, comprend une lecture du mot, une détection par un code de correction d'erreur de la présence dans la mémoire de ce bit ayant une valeur logique erronée et une correction par le code de correction d'erreur de la valeur erronée de ce bit. En effet comme indiqué ci-avant, lorsque par exemple un bit situé à un emplacement défectueux est détecté en erreur par le code correcteur d'erreur lors de la lecture d'un premier mot de n bits, ce bit est corrigé à la volée de façon classique. En conséquence si lors d'un adressage ultérieur en lecture de la mémoire pour lire le deuxième mot, on détecte un bit erroné dans le deuxième mot correspondant à un emplacement mémoire défectueux, que cet emplacement mémoire défectueux soit dans la mémoire ou dans la zone de redondance des moyens de mémoire auxiliaires, on corrige la valeur de ce bit par le code de correction d'erreur. Ainsi comme indiqué ci-avant ceci permet de corriger deux erreurs en utilisant un code de correction d'erreur ne permettant que de corriger une erreur par mot. Lors d'un adressage ultérieur de la mémoire pour écrire à l'adresse dudit deuxième mot un troisième mot, on applique avantageusement les étapes a) à e) dans lesquelles le premier mot est le deuxième mot et le deuxième mot est le troisième mot. En d'autres termes on peut obtenir répéter plusieurs fois ce principe de relocalisation, ce nombre étant limité par les contraintes de la zone de relocalisation (notamment taille et nombre de bits d'adresse à comparer). Ceci permet de corriger plus de deux erreurs avec un code Ecc ne permettant de ne corriger qu'une seule erreur. Selon un mode de mise en oeuvre, un adressage en lecture de la mémoire avec une adresse comprend une comparaison de cette adresse avec l'ensemble des adresses contenues dans les moyens de mémoire auxiliaires. Selon un mode de mise en oeuvre, ladite information contient un champ additionnel, et l'écriture de ladite information dans les moyens de mémoire auxiliaires comporte l'écriture dans ledit champ additionnel d'une indication représentative de la présence d'un bit de relocalisation ayant une valeur logique souhaitée. Ainsi un adressage en lecture de la mémoire avec une adresse comprend en outre avantageusement, en cas de concordance avec l'une des adresses contenues dans les moyens de mémoire auxiliaires, une vérification de la présence de ladite indication. Ceci permet de s'assurer dans certains cas qu'une adresse correspond effectivement à une adresse associée à un bit relocalisé. La présence de cette indication est particulièrement avantageuse en cas de détection d'une valeur logique erronée d'un bit relocalisé correspondant à un emplacement mémoire auxiliaire défectueux; en effet dans ce cas on supprime ladite indication dans le champ additionnel de l'information correspondante. La mémoire non volatile est par exemple une mémoire du type EEPROM et chaque emplacement mémoire auxiliaire est également avantageusement non volatile, par exemple situé dans une zone de mémoire de redondance du type EEPROM. Selon un autre aspect il est proposé un dispositif de mémoire non volatile, comprenant une mémoire non volatile stockant des mots, des premiers moyens de lecture/écriture de ladite mémoire, des moyens de mémoire auxiliaires comportant une zone mémoire contenant au moins un emplacement mémoire auxiliaire, des deuxièmes moyens de lecture/écriture des moyens de mémoire auxiliaires, des moyens formant code de correction d'erreur, et des moyens de commande configurés pour -lors d'un adressage de la mémoire pour écrire un deuxième mot à l'adresse d'un premier mot contenant un bit ayant une valeur logique erronée correspondant à un emplacement mémoire défectueux, a) activer les premiers moyens de lecture/écriture pour lire le premier mot, b) activer les moyens formant code de correction d'erreur pour détecter la présence dans la mémoire de ce bit ayant une valeur logique erronée, c) activer les premiers moyens de lecture/écriture pour écrire au moins une partie dudit deuxième mot dans ladite mémoire non volatile à ladite adresse et d) activer les deuxièmes moyens de lecture/écriture pour écrire dans les moyens de mémoire auxiliaires une information contenant au moins ladite adresse et un bit relocalisé situé dans un emplacement mémoire auxiliaire de ces moyens de mémoire auxiliaires et affecté de la valeur logique souhaitée du bit du deuxième mot situé audit emplacement mémoire défectueux, et -lors d'un adressage ultérieur de ladite mémoire pour lire les bits non erronés du deuxième mot, e) activer au moins les deuxièmes moyens de lecture/écriture pour lire dans les moyens de mémoire auxiliaires au moins ledit bit relocalisé ayant ladite valeur logique souhaitée. Selon un mode de réalisation, dans l'étape b) les moyens formant code correcteur d'erreur sont configurés pour effectuer une correction de la valeur logique erronée dudit bit du premier mot par le code de correction d'erreur, et aux étapes d) et e) ladite valeur logique souhaitée est ladite valeur corrigée. Selon un mode de réalisation dans l'étape b) les moyens formant code de correction d'erreur sont configurés pour déterminer la position dudit emplacement défectueux, et les deuxièmes moyens de lecture/écriture sont configurés pour écrire dans les moyens de mémoire auxiliaires ladite information contenant ladite adresse et ladite position, et lors dudit adressage ultérieur de ladite mémoire pour lire les bits non erronés du deuxième mot, les moyens de commande sont configurés pour activer les deuxièmes moyens de lecture/écriture pour effectuer une lecture du bit relocalisé ayant ladite valeur logique souhaitée dans les moyens de mémoire auxiliaires et les premiers moyens de lecture/écriture pour effectuer une lecture des valeurs des autres bits du deuxième mot dans ladite mémoire. Selon un mode de réalisation, les moyens de commande sont configurés pour activer les deuxièmes moyens de lecture/écriture de façon à écrire dans plusieurs emplacements mémoire auxiliaires des moyens de mémoire auxiliaires, plusieurs bits relocalisés ayant respectivement ladite valeur souhaitée et les valeurs des autres bits du deuxième mot situés à des emplacement mémoire non défectueux, et lors dudit adressage ultérieur de ladite mémoire pour lire les bits non erronés du deuxième mot les moyens de commande sont configurés pour activer les deuxièmes moyens de lecture/écriture de façon à effectuer une lecture des valeurs de tous les bits relocalisés contenus dans lesdits moyens de mémoire auxiliaires. Selon un mode de réalisation, lors d'un adressage de la mémoire pour la lecture d'un mot contenant un bit ayant une valeur logique erronée correspondant à un emplacement mémoire défectueux, les moyens de lecture/écriture sont configurés pour effectuer une lecture du mot, et les moyens formant code de correction d'erreur sont configurés pour effectuer une détection de la présence dans la mémoire de ce bit ayant une valeur logique erronée et une correction de la valeur erronée de ce bit. Selon un mode de réalisation, les moyens formant code de correction d'erreur sont configurés pour, lors d'un adressage ultérieur en lecture de la mémoire pour lire le deuxième mot, détecter un bit erroné dans le deuxième mot correspondant à un emplacement mémoire défectueux, et corriger la valeur de ce bit. Selon un mode de réalisation, les moyens de commande sont configurés pour, lors d'un adressage ultérieur de la mémoire pour écrire à l'adresse dudit deuxième mot un troisième mot, activer les différents moyens mis en oeuvre dans les étapes a) à e), le premier mot étant le deuxième mot et le deuxième mot étant le troisième mot. Selon un mode de réalisation, les moyens de commande comprennent un comparateur configuré pour effectuer une comparaison d'une adresse reçue avec l'ensemble des adresses contenues dans les moyens de mémoire auxiliaires. Selon un mode de réalisation, ladite information contient un champ additionnel, et les deuxièmes moyens de lecture/écriture sont en outre configurés pour écrire dans ledit champ additionnel une indication représentative de la présence d'un bit relocalisé ayant une valeur logique souhaitée. Selon un mode de réalisation, les moyens de commande sont en outre configurés pour, en cas de concordance d'une adresse reçue avec l'une des adresses contenues dans les moyens de mémoire auxiliaires, effectuer une vérification de la présence de ladite indication. Selon un mode de réalisation, en cas de détection d'une valeur logique erronée d'un bit relocalisé correspondant à un emplacement mémoire auxiliaire défectueux, les moyens de commande sont en outre configurés pour supprimer ladite indication dans le champ additionnel de l'information correspondante. D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de mise en oeuvre et de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : - les figures 1 à 7 illustrent schématiquement des exemples de mise en oeuvre et de réalisation de l'invention. Dans la suite, on suppose, à titre d'exemple non limitatif, que la mémoire MM de type EEPROM est une mémoire de 256 kbits comportant 8192 mots de 38 bits. Chaque mot comporte b bits de donnée répartis sur 4 octets et s bits de contrôle (b=32 et s=6). La mémoire comporte donc 311 296 cellules ou emplacements mémoire. Comme illustré sur la figure 1, lors d'une opération de reprogrammation de la mémoire MM, on veut réécrire à l'adresse d'un premier mot Ml un deuxième mot M2 dont l'octet OCT20 doit remplacer l'octet OCT2 du mot Ml. Les autres octets OCT1, OCT3, OCT4 sont destinés à être réécrits sans modification. La référence S désigne les bits de contrôle « s » et, dans cet exemple, on suppose que l'emplacement ou cellule mémoire contenant le bit de donnée bi de l'octet OCT3 est défectueux. En d'autres termes, le bit bi est alors un bit défectueux dont la valeur logique lue est erronnée. Pour écrire le mot M2 à la place du mot Ml, on procède tout d'abord, comme illustré sur la figure 2, à la lecture du mot M1 dans la mémoire MM (étape 20). Des moyens formant correcteur d'erreur et référencés Ecc, déterminent alors dans l'étape 21 un syndrome à partir des bits de données b et de l'ensemble S des bits de contrôle. On rappelle ici qu'un syndrome est le résultat de calculs intermédiaires effectués lors de la correction d'erreur, permettant de détecter et de localiser l'erreur. Compte tenu qu'un bit bi est défectueux, conduisant à la lecture d'une valeur logique erronée pour ce bit, les moyens Ecc détectent effectivement ce bit défectueux et procèdent à sa correction. La position Pi de ce bit défectueux ainsi que la valeur logique corrigée bj sont alors stockées dans les registres volatils des moyens Ecc (étape 22). Les moyens Ecc sont des moyens classiques et connus de l'homme du métier. I1 en est de même pour l'étape 21. Avant d'écrire le mot M2 à l'adresse du mot M1 dans la mémoire MM, les moyens Ecc calculent (étape 30, figure 4) le nouvel ensemble S' des nouveaux bits de contrôle correspondants aux nouveaux octets de donnée OCT1, OCT20, OCT3 et OCT4. A cet égard, l'ensemble S' est calculé avec la valeur corrigée bj du bit défectueux de l'octet OCT3. Puis, on écrit (étape 31) le mot M2 composé des octets OCT1, OCT20, OCT3, OCT4 et des bits de contrôle S', dans la mémoire MM, à l'adresse du mot Ml. A cet égard, en ce qui concerne la valeur logique qui sera écrite dans l'emplacement défectueux du bit bi de la mémoire MM, on peut écrire soit la valeur logique erronée, soit la nouvelle valeur logique corrigée. De toute façon, cela n'a pas d'importance car, comme on le verra plus en détail ci-après, lors d'un accès ultérieur en lecture du mot M2, ce n'est pas la valeur logique du bit erroné qui sera lue. En effet, comme illustré dans l'étape 32, on écrit, dans des moyens de mémoire auxiliaires MMAX, la position Pi du bit erroné bi, c'est-à-dire la position Pi de l'emplacement mémoire défectueux, ainsi que la valeur logique corrigée bj. En variante, comme illustré par l'étape 33, il serait possible d'écrire dans les moyens de mémoire auxiliaires MMAX, non seulement la valeur logique corrigée bj, mais également tous les autres bits du mot M2. L'adresse de ce mot M2 serait également stockée dans les moyens de mémoire auxiliaires MMAX. Dans un mode préféré de réalisation, l'information INF qui est stockée dans les moyens de mémoire auxiliaires comporte, outre la position P du bit défectueux (figure 4), un bit additionnel formant une indication Ind de la présence ou non d'un bit relocalisé associé à l'adresse contenue dans l'information Inf. Par exemple, si le bit Ind est à 1, cela signifie qu'il y a effectivement un bit relocalisé à cette adresse. La position P du bit contenu dans l'information Inf comporte ici dans cet exemple, treize bits d'adresse contenus dans les champs CH1 et CH2, à savoir neuf bits pour désigner la rangée et quatre bits pour désigner la colonne, ainsi que six bits contenus dans le champ CH3 permettant la localisation du bit défectueux parmi les 38 bits du mot. Lors d'une lecture ultérieure du mot M2 (figure 5), on effectue un adressage (étape 50) de la mémoire MM avec l'adresse Adr du mot. On compare cette adresse Adr avec la ou les adresses contenues dans les moyens de mémoire auxiliaires MMAX, et si cette adresse est bien dans les moyens de mémoire auxiliaires MMAX, on vérifie que l'indication Ind est égale à « 1 » (étape 51). Dans ce cas, on lit la valeur corrigée bj du bit défectueux dans les moyens de mémoire auxiliaires MMAX (étape 52) tandis que l'on lit les autres bits du mot M2 dans la mémoire MM (étape 53). En variante, si lors de l'écriture du mot M2, on a stocké l'ensemble de ce mot dans les moyens de mémoire auxiliaires MMAX (étape 33, figure 4), on lit alors ce mot M2 dans les moyens de mémoire MMAX (étape 54). Bien entendu, comme illustré sur la figure 6, si, lors d'une lecture 60 du mot M2, il y a de nouveau détection d'un bit bk défectueux (étape 61), que ce bit bk soit lui-même le bit relocalisé ou bien un autre bit du mot M2, celui-ci est corrigé, et la nouvelle valeur corrigée br est stockée de nouveau temporairement dans les registres volatils des moyens Ecc (étape 62), au même titre que la position Pk de ce bit. Lors d'une écriture ultérieure d'un mot remplaçant le mot M2, la valeur logique corrigée br sera stockée dans les moyens de mémoire auxiliaires dans une autre zone de relocalisation des moyens de mémoire MMAX. La figure 7 illustre un mode de réalisation d'un dispositif de mémoire DIS permettant un exemple de mise en oeuvre du procédé selon l'invention. Plus précisément, le dispositif DIS comporte la mémoire MM ainsi que des premiers moyens classiques d'écriture/lecture dans cette mémoire MM comportant notamment des moyens HV permettant d'appliquer une tension élevée de programmation, des décodeurs lignes et colonnes DECX et DECY ainsi qu'un amplificateur de lecture AMPL relié à un registre de données RDD. Le dispositif comporte également des moyens Ecc. Les moyens de mémoire auxiliaires MMAX comportent, en ce qui concerne la zone mémoire de relocalisation stockant les bits relocalisés, une mémoire MMA, également de type EEPROM et, en ce qui concerne le stockage des informations INF, une table de stockage TBL qui peut être également un moyen de mémoire non volatil. Là encore, le dispositif comporte des deuxièmes moyens d'écriture/lecture, de structure classique et connue en soi, configurés pour écrire/lire dans la mémoire MMA et comportant notamment des décodeurs ligne et colonnes DECXA, DECYA. Le dispositif comporte également des moyens de commande comprenant un bloc logique de commande BC de structure classique capable d'activer les différents moyens de lecture/écriture, ainsi qu'ici un comparateur CMP bit à bit, permettant de comparer une adresse présente dans un registre d'adresses RAD avec des adresses présentes dans des mémoires verrous MTAL. En fait, dans ce mode de réalisation, préalablement à toute opération de lecture ou d'écriture, on lit toutes les adresses relocalisées présentes dans la table TBL pour les stocker dans ces mémoires verrous MTAL. Ceci peut se faire lors de la mise sous tension du dispositif ou lors des premiers coups d'horloge d'accès à la mémoire MM, consécutifs à une mise sous tension. La sortie du comparateur commande un multiplexeur MUX qui fait également partie des moyens de commande. Ainsi, pour chaque adresse présentée à la mémoire MM, on compare les bits de cette adresse aux bits des adresses contenues dans les mémoires verrous MTAL et on vérifie si, en cas de concordance, l'indication Ind est à 1 ou non. Dans le cas où le bit Ind est à 1, on localise l'emplacement défectueux parmi les 38 bits du mot avec les 6 bits restants contenus dans le champ CH3 et on détourne, au niveau des bus de lecture et d'écriture, par l'intermédiaire du multiplexeur MUX, le bit erroné vers le bit relocalisé correspondant. Un mot de 38 bits du plan mémoire MM peut être réparé plusieurs fois. I1 peut par exemple comporter un premier bit erroné réalloué dans une première zone de réallocation de la mémoire MMA et un second bit défectueux réalloué dans une seconde zone de réallocation de la mémoire MMA. Au cas, fortement improbable, où les moyens Ecc détecteraient un bit défectueux précisément au niveau du bit réparé, l'action serait alors de désactiver la réparation par remise à zéro de l'indication Ind et de l'activer dans la seconde zone de réallocation. I1 est bien sûr possible d'avoir plus de deux zones de réallocation. Et, plus le nombre de zones de réallocation est important, plus le gain statistique est intéressant. Bien entendu, si deux bits erronés sont découverts dans un même mot de 38 bits entre deux reprogrammations, les moyens formant Ecc seront incapables de les corriger. Mais, il est très improbable que deux bits erronés soient découverts entre deux reprogrammations. En effet, la cause majeure d'apparition de bits erronés au cours de la vie du circuit de mémoire est en particulier le claquage d'oxyde ou l'usure de l'oxyde tunnel, lesquels mécanismes de défaillance sont activés par les programmations. Et, si un premier bit défectueux est présent dans un mot de 38 bits, il faudra des reprogrammations ultérieures de ce mot pour faire apparaître un second bit erroné. Ces reprogrammations auront permis de réallouer ce premier bit erroné. Dans ce cas, l'apparition d'un second bit erroné sera alors corrigeable par les moyens formant Ecc, qui en fait ne verront qu'un seul bit erroné, à savoir le second. REVENDICATIONS1. Procédé de traitement d'erreurs dans une mémoire non volatile, ladite mémoire (MM) stockant des mots, le procédé comprenant - lors d'un adressage de la mémoire pour écrire un deuxième (M2) mot à l'adresse d'un premier mot (Ml) contenant un bit (bi) ayant une valeur logique erronée correspondant à un emplacement mémoire défectueux, a) une lecture (20) du premier mot, b) une détection (22) par un code de correction d'erreur de la présence dans la mémoire de ce bit (bi) ayant une valeur logique erronée, c) une écriture (31) d'au moins une partie dudit deuxième mot dans ladite mémoire non volatile à ladite adresse et d) une écriture (32) dans des moyens de mémoire auxiliaires (MMAX) d'une information (INF) contenant au moins ladite adresse et d'un bit relocalisé (bj) situé dans un emplacement mémoire auxiliaire de ces moyens de mémoire auxiliaires et affecté de la valeur logique souhaitée du bit du deuxième mot situé audit emplacement mémoire défectueux, et - lors d'un adressage ultérieur (50) de ladite mémoire pour lire le deuxième mot, e) une lecture des bits non erronés du deuxième mot comprenant une lecture (52) dans les moyens de mémoire auxiliaires d'au moins ledit bit relocalisé (bj) ayant ladite valeur logique souhaitée. 2. Procédé selon la revendication 1, dans lequel l'étape b) comprend en outre une correction (23) de la valeur logique erronée dudit bit du premier mot par le code de correction d'erreur, et aux étapes d) et e) ladite valeur logique souhaitée est ladite valeur corrigée. 3. Procédé selon la revendication 1 ou 2, dans lequel l'étape b) comprend une détermination de la position dudit emplacement défectueux, et on écrit dans les moyens de mémoire auxiliaires ladite information (INF) contenant ladite adresse et ladite position, et lors dudit adressage ultérieur de ladite mémoire pour lire le deuxième mot, la lecture des bits non erronés du deuxième mot comprend une lecturedu bit relocalisé (bj) ayant ladite valeur logique souhaitée dans les moyens de mémoire auxiliaires (MMAX) et une lecture des valeurs des autres bits du deuxième mot dans ladite mémoire (MM). 4. Procédé selon la revendication 1 ou 2, dans lequel on écrit (33) dans plusieurs emplacements mémoire auxiliaires des moyens de mémoire auxiliaires, plusieurs bits relocalisés ayant respectivement ladite valeur souhaitée et les valeurs des autres bits du deuxième mot situés à des emplacement mémoire non défectueux, et lors dudit adressage ultérieur de ladite mémoire pour lire le deuxième mot, la lecture des bits non erronés du deuxième mot comprend une lecture (54) des valeurs de tous les bits relocalisés contenus dans lesdits moyens de mémoire auxiliaires. 5. Procédé selon l'une des revendications précédentes, dans lequel un adressage de la mémoire pour la lecture d'un mot contenant un bit ayant une valeur logique erronée correspondant à un emplacement mémoire défectueux, comprend une lecture du mot, une détection par un code de correction d'erreur (Ecc) de la présence dans la mémoire de ce bit ayant une valeur logique erronée et une correction par le code de correction d'erreur de la valeur erronée de ce bit. 6. Procédé selon l'une des revendications précédentes, dans lequel si lors d'un adressage ultérieur en lecture de la mémoire pour lire le deuxième mot, on détecte un bit erroné (bk) dans le deuxième mot correspondant à un emplacement mémoire défectueux, on corrige la valeur de ce bit par le code de correction d'erreur. 7. Procédé selon la revendication 6, dans lequel lors d'un adressage ultérieur de la mémoire pour écrire à l'adresse dudit deuxième mot un troisième mot, on applique les étapes a) à e) dans lesquelles le premier mot est le deuxième mot et le deuxième mot est le troisième mot. 8. Procédé selon l'une des revendications précédentes, dans lequel un adressage en lecture de la mémoire avec une adresse comprend une comparaison (CMP) de cette adresse avec l'ensemble des adresses contenues dans les moyens de mémoire auxiliaires. 9. Procédé selon l'une des revendications précédentes, dans lequel ladite information (INF) contient un champ additionnel (Ind), et l'écriture de ladite information dans les moyens de mémoire auxiliaires comporte l'écriture dans ledit champ additionnel d'une indication représentative de la présence d'un bit relocalisé ayant une valeur logique souhaitée. 10. Procédé selon les revendications 8 et 9, dans lequel un adressage en lecture de la mémoire avec une adresse comprend en outre, en cas de concordance avec l'une des adresses contenues dans les moyens de mémoire auxiliaires, une vérification de la présence de ladite indication (Ind). 11. Procédé selon la revendication 9 ou 10, dans lequel en cas de détection d'une valeur logique erronée d'un bit relocalisé correspondant à un emplacement mémoire auxiliaire défectueux, on supprime ladite indication (Ind=0) dans le champ additionnel de l'information correspondante. 12. Procédé selon l'une des revendications précédentes, dans lequel la mémoire non volatile (MM) est une mémoire du type EEPROM. 13. Procédé selon l'une des revendications précédentes dans lequel chaque emplacement mémoire auxiliaire est non volatile. 14. Dispositif de mémoire non volatile, comprenant une mémoire non volatile (MM) stockant des mots, des premiers moyens de lecture/écriture de ladite mémoire, des moyens de mémoire auxiliaires (MMAX) comportant une zone mémoire contenant au moins un emplacement mémoire auxiliaire, des deuxièmes moyens de lecture/écriture des moyens de mémoire auxiliaires, des moyens formant code de correction d'erreur, et des moyens de commande configurés pour -lors d'un adressage de la mémoire pour écrire un deuxième mot à l'adresse d'un premier mot contenant un bit ayant une valeur logique erronée correspondant à un emplacement mémoire défectueux, a) activer les premiers moyens de lecture/écriture pour lire le premier mot, b) activer les moyens formant code de correction d'erreur pourdétecter la présence dans la mémoire de ce bit ayant une valeur logique erronée, c) activer les premiers moyens de lecture/écriture pour écrire au moins une partie dudit deuxième mot dans ladite mémoire non volatile à ladite adresse et d) activer les deuxièmes moyens de lecture/écriture pour écrire dans les moyens de mémoire auxiliaires une information contenant au moins ladite adresse et un bit relocalisé situé dans un emplacement mémoire auxiliaire de ces moyens de mémoire auxiliaires et affecté de la valeur logique souhaitée du bit du deuxième mot situé audit emplacement mémoire défectueux, et - lors d'un adressage ultérieur de ladite mémoire pour lire les bits non erronés du deuxième mot, e) activer au moins les deuxièmes moyens de lecture/écriture pour lire dans les moyens de mémoire auxiliaires au moins ledit bit relocalisé ayant ladite valeur logique souhaitée. 15. Dispositif selon la revendication 14, dans lequel l'étape b) les moyens formant code correcteur d'erreur (Ecc) sont configurés pour effectuer une correction de la valeur logique erronée dudit bit du premier mot par le code de correction d'erreur, et aux étapes d) et e) ladite valeur logique souhaitée est ladite valeur corrigée. 16. Dispositif selon la revendication 14 ou 15, dans lequel l'étape b) les moyens formant code de correction d'erreur (Ecc) sont configurés pour déterminer la position dudit emplacement défectueux, et les deuxièmes moyens de lecture/écriture sont configurés pour écrire dans les moyens de mémoire auxiliaires ladite information contenant ladite adresse et ladite position, et lors dudit adressage ultérieur de ladite mémoire pour lire les bits non erronés du deuxième mot, les moyens de commande sont configurés pour activer les deuxièmes moyens de lecture/écriture pour effectuer une lecture du bit relocalisé ayant ladite valeur logique souhaitée dans les moyens de mémoire auxiliaires et les premiers moyens de lecture/écriture pour effectuer une lecture des valeurs des autres bits du deuxième mot dans ladite mémoire. 17. Dispositif selon la revendication 14 ou 15, dans lequel les moyens de commande sont configurés pour activer les deuxièmes moyens de lecture/écriture de façon à écrire dans plusieurs emplacements mémoire auxiliaires des moyens de mémoire auxiliaires, plusieurs bits relocalisés ayant respectivement ladite valeur souhaitée et les valeurs des autres bits du deuxième mot situés à des emplacement mémoire non défectueux, et lors dudit adressage ultérieur de ladite mémoire pour lire les bits non erronés du deuxième mot les moyens de commande sont configurés pour activer les deuxièmes moyens de lecture/écriture de façon à effectuer une lecture des valeurs de tous les bits relocalisés contenus dans lesdits moyens de mémoire auxiliaires. 18. Dispositif selon l'une des revendications précédentesl4 à 17, dans lequel lors d'un adressage de la mémoire pour la lecture d'un mot contenant un bit ayant une valeur logique erronée correspondant à un emplacement mémoire défectueux, les moyens de lecture/écriture sont configurés pour effectuer une lecture du mot, et les moyens formant code de correction d'erreur (Ecc) sont configurés pour effectuer une détection de la présence dans la mémoire de ce bit ayant une valeur logique erronée et une correction de la valeur erronée de ce bit. 19. Dispositif selon l'une des revendications 14 à 18, dans lequel les moyens formant code de correction d'erreur (Ecc) sont configurés pour, lors d'un adressage ultérieur en lecture de la mémoire pour lire le deuxième mot, détecter un bit erroné dans le deuxième mot correspondant à un emplacement mémoire défectueux, et corriger la valeur de ce bit. 20. Dispositif selon la revendication 19, dans lequel les moyens de commande sont configurés pour, lors d'un adressage ultérieur de la mémoire pour écrire à l'adresse dudit deuxième mot un troisième mot, activer les différents moyens mis en oeuvre dans les étapes a) à e), le premier mot étant le deuxième mot et le deuxième mot étant le troisième mot. 21. Dispositif selon l'une des revendications 14 à 20, dans lequel les moyens de commande comprennent un comparateur (CMP) configuré pour effectuer une comparaison d'une adresse reçue avec l'ensemble des adresses contenues dans les moyens de mémoire auxiliaires. 22. Dispositif selon l'une des revendications 14 à 21, dans lequel ladite information (INF) contient un champ additionnel (Ind), et les deuxièmes moyens de lecture/écriture sont en outre configurés pour écrire dans ledit champ additionnel une indication représentative de la présence d'un bit de relocalisation ayant une valeur logique souhaitée. 23. Dispositif selon les revendications 21 et 22, dans lequel les moyens de commande sont en outre configurés pour, en cas de concordance d'une adresse reçue avec l'une des adresses contenues dans les moyens de mémoire auxiliaires, effectuer une vérification de la présence de ladite indication. 24. Dispositif selon la revendication 22 ou 23, dans lequel en cas de détection d'une valeur logique erronée d'un bit relocalisé correspondant à un emplacement mémoire auxiliaire défectueux, les moyens de commande sont en outre configurés pour supprimer ladite indication (Ind=0) dans le champ additionnel de l'information correspondante. 25. Dispositif selon l'une des revendications 14 à 24, dans lequel la mémoire non volatile est une mémoire du type EEPROM. 26. Dispositif selon l'une des revendications 14 à 25, dans lequel chaque emplacement mémoire auxiliaire est non volatile.