Brevet FR2682503A1 — publié le 19930416

i La présente invention concerne un procédé de réparation de cellules sur-effacées dans des mémoires flash Plus particulièrement, la présente invention concerne un procédé de réparation de cellules de mémoire flash sur-effacées en utilisant une programmation du type canal-électrons chauds. Un type de mémoire semiconductrice non volatile de l'art antérieur est constitué par la mémoire morte programmable et effaçable électriquement de type flash ("mémoire flash") Une mémoire flash peut être programmée par un utilisateur et une fois qu'elle est programmée, la mémoire flash conserve ses données jusqu'à ce qu'elles soient effacées. Les cellules de mémoire flash sont typiquement programmées en utilisant une injection d'électrons chauds dans le canal et elles sont effacées par application d'une tension élevée à la jonction de source des cellules Les algorithmes d'effacement appliquent typiquement des impulsions d'effacement à la totalité du réseau jusqu'à ce que la cellule à effacer la plus lente s'efface au-dessous de la tension de seuil maximum acceptable Les cellules effacées au-dessous d'un seuil acceptable minimum sont classiquement appelées cellules sur- effacées Les cellules sur-effacées peuvent induire un courant de fuite sur leurs lignes de bit associées, ce qui provoque des erreurs lors de la lecture d'autres cellules situées sur la même ligne de bit. Les fabricants de mémoires flash ont tenté de réduire l'incidence d'un sur-effacement de cellule en utilisant une certaine variété de techniques Une optimisation du processus de fabrication de circuit intégré et un contrôle de la qualité de fabrication sont typiquement utilisés L'élimination complète du sur-effacement en utilisant ces procédés est cependant peu probable. La sensibilité d'une mémoire flash à un sur-effacement peut être minimisée en optimisant des schémas de détection de lecture Les schémas de détection de lecture optimisés souffrent de deux inconvénients Tout d'abord, ils ne peuvent pas éliminer un sur-effacement En second lieu, ils nécessitent des compromis en termes de vitesse et de performance. Les fabricants de mémoires flash ont également tenté d'éliminer le sureffacement en testant les mémoires et soit en remplaçant les cellules défectueuses par des éléments redondants soit en mettant simplement au rebut la mémoire. Le test fabricant présente cependant un certain nombre d'inconvénients Tout d'abord, la fabrication d'éléments redondants augmente le coût, la complexité et les retards de vitesse de lecture pour les mémoires flash En second lieu, les mémoires flash qui contiennent plus de cellules défectueuses que d'éléments redondants doivent être mises au rebut Pour finir, le test fabricant ne garantit pas que des cellules qui s'effacent normalement pendant le test ne deviendront pas défectueuses après des cycles d'effacement-programmation répétés. Des codes de correction d'erreur, tels que des schémas de code Hamming, sont également utilisés pour éliminer des erreurs provoquées par un sur-effacement Malheureusement, l'utilisation de codes de correction d'erreur nécessite typiquement l'ajout de cellules de mémoire supplémentaires à la mémoire flash, ce qui augmente son coût. Un objet de la présente invention consiste à réparer un sur-effacement dans des mémoires flash. Un autre objet de la présente invention consiste à proposer un procédé de réparation de sur-effacement qui soit optimisé du point de vue de la vitesse et de la consommation d'énergie. Un autre objet de la présente invention consiste à proposer un procédé de réparation de cellules sur-effacées qui évite la mise au rebut de mémoires défectueuses. Un autre objet de la présente invention consiste à proposer un procédé de réparation de cellules sur-effacées qui n'utilise pas d'éléments redondants. Encore un autre objet du procédé de la présente invention consiste à réparer un sur-effacement dans des mémoires flash sans augmenter la surface allouée aux cellules de code d'erreur. Un procédé de réparation de cellules sur-effacées dans un réseau de mémoire flash est décrit Un réseau flash inclut au moins une colonne comportant au moins deux cellules La réparation du réseau commence par la détermination de si oui ou non la première cellule est sur- effacée et par l'application d'une unique impulsion de programmation s'il en est ainsi Puis la seconde cellule est examinée pour identifier si oui ou non elle est sur-effacée Une impulsion de programmation est appliquée à la seconde cellule si elle est sur-effacée Ensuite, le niveau de tension de programmation est augmenté d'une première valeur si l'une ou l'autre des cellules a été identifiée comme étant sur- effacée Ces étapes sont répétées jusqu'à ce qu'aucune cellule ne soit identifiée comme étant sur-effacée. Encore un autre objet de la présente invention consiste à proposer un procédé de réparation de cellules sur-effacées qui soit efficace même après que le test fabricant a été terminé. D'autres objets, caractéristiques et avantages de la présente invention apparaîtront à la lumière de la description détaillée qui suit que l'on lira en relation avec les dessins annexés. La présente invention est illustrée au moyen d'exemples représentés sur les figures des dessins annexés dans lesquels des index de référence identiques indiquent des éléments similaires, ces exemples ne constituant en aucun cas une limitation de l'invention, et parmi ces dessins: la figure 1 est un schéma fonctionnel d'une mémoire flash, la figure 2 est une représentation schématique d'une partie d'un réseau de mémoire; la figure 3 est un schéma fonctionnel d'un circuit destiné à une réparation de sur-effacement; la figure 4 est un organigramme d'un algorithme de réparation de sur-effacement; la figure 5 est un schéma fonctionnel d'un circuit de vérification de sur-effacement; la figure 6 est un graphique d'un taux de programmation de cellules de mémoire en fonction d'une tension de commande; la figure 7 est un schéma fonctionnel d'une mémoire flash qui incorpore une machine d'état d'écriture; la figure 8 est un schéma fonctionnel d'une machine d'état d'écriture; et la figure 9 est un organigramme d'un algorithme de réparation de sur-effacement qui utilise une machine d'état d'écriture. Une partie 20 d'une mémoire flash est représentée sur la figure 1 La partie 20 inclut un réseau 90, un décodeur X 78, un décodeur Y 94 ainsi que des amplificateurs de détection et des décodeurs de sortie 96 Des données sont stockées dans le réseau 90 Le réseau 90 est accédé via le décodeur X 78 et le décodeur Y 94. Comme décrit de façon plus détaillée ci-après, un procédé itératif est utilisé pour réparer des cellules sur-effacées du réseau 90 Des cellules situées sur une colonne sont tout d'abord examinées pour déterminer si oui ou non elles sont sur-effacées. Les cellules sur-effacées reçoivent une unique impulsion de programmation de niveau de tension bas Des cellules situées sur la colonne sont examinées de façon répétée et elles se voient appliquer une unique impulsion de programmation jusqu'à ce qu'il n'y ait plus de cellules qui soient identifiées comme étant sur- effacées et jusqu'à ce que toutes les cellules soient réparées. Vpp 36 est l'alimentation d'effacement/programmation pour la mémoire flash 20 En l'absence d'un niveau de tension haut sur Vpp, la mémoire flash se comporte comme une mémoire morte Les données stockées au niveau d'une adresse indiquée par des lignes d'adresse 57 et 82 sont rendues accessibles via des lignes de données 59. Le réseau 90 peut être effacé ou programmé en augmentant Vpp 36 jusqu'à 12 volts en conjonction avec la séquence de commande appropriée. Les données souhaitées contenues dans le réseau 90 sont sélectionnées en utilisant des signaux d'adresse AX 57 et AY 82. Le décodeur X 78 sélectionne la rangée appropriée dans le réseau en réponse à AX 57 Pour cette raison, le décodeur X 78 est appelé également décodeur de rangée 78 Le décodeur X 78 active la rangée indiquée du réseau 90 via un bus 83 De façon similaire, en réponse à AY 82, le décodeur Y 94 sélectionne la colonne appropriée dans le réseau 90 Du fait de sa fonction, le décodeur Y 94 est également appelé décodeur de colonne 94 Le décodeur Y 94 sélectionne la colonne indiquée en utilisant un bus 97. Des données lues dans le réseau 90 sont émises en sortie sur le décodeur Y 94 via le bus 97 Le décodeur Y 94 passe les données du bus 97 à des amplificateurs de détection 100-107. Les amplificateurs de détection 100-107 déterminent si oui ou non une cellule est chargée de façon négative Les amplificateurs de détection 100-107 émettent en sortie des données via un bus 59. Une partie 200 du réseau 90 est représentée sur la figure 2 La partie 200 inclut des cellules de mémoire 150-185 dont chacune est un transistor à effet de champ Les cellules 150- sont formées au niveau des intersections de lignes de mot I-206 et de lignes de bit 111-116, comme il est de pratique courante. Les lignes de mot 201-206 sont également appelées lignes X ou lignes de rangée Chacune des lignes de mot 201-206 est couplée aux grilles des cellules de mémoire d'une rangée particulière Par exemple, la ligne de mot 201 est couplée aux grilles des cellules de mémoire 150-155. Les lignes de bit 111-116 sont également appelées lignes de colonne ou lignes Y Chacune des lignes de bit 111-116 est couplée à une colonne de cellules de mémoire Par exemple, la ligne de bit 11 est couplée aux drains des cellules de mémoire 150, 156, 162, 168, 174 et 180 Les lignes de bit 111-116 sont également couplées au décodeur Y 94. Une ligne de source commune 141 est couplée à un commutateur de source qui régule la valeur de la tension appliquée aux sources des cellules de mémoire 150-185 La ligne de source commune 141 est également couplée à des premières lignes de source locales 121-126 et à des secondes lignes de source locales 131-135 Chaque première ligne de source locale 121-126 est couplée à une rangée particulière du réseau 90 De façon similaire, chaque seconde ligne de source locale 131-135 est couplée à une colonne particulière Les lignes de source 121- 126, 131-135 et 141 constituent ensemble une voie d'application de tensions aux sources des cellules 105-185. Comme il est de pratique courante, les cellules de mémoire 150-185 sont programmées en appliquant un potentiel d'approximativement 12 volts aux lignes de mot 201-206, un potentiel d'approximativement 7 volts aux lignes de bit 111-116 et en reliant la ligne de source commune 141 à la masse. Les cellules de mémoire 150-185 sont effacées en appliquant un potentiel d'approximativement 12 volts à la ligne de source commune 141, en reliant les lignes de mot 201-206 et en permettant aux lignes de bit 111- 116 de flotter Des cellules de mémoire correctement effacées présentent une tension de seuil positive qui se situe quelque part entre O volt et 3 volts. L'effacement de la cellule 90 est réalisé en utilisant un algorithme commandé par un dispositif logique agencé sur puce ou par un microprocesseur agencé hors puce Ces algorithmes appliquent typiquement de façon répétée des impulsions d'effacement au réseau 90 jusqu'à ce que la cellule d'effacement la plus lente du réseau 90 s'efface au-dessous de la tension de seuil maximum acceptable. Le réseau 90 peut contenir un certain nombre de cellules de mémoire défectueuses qui s'effacent beaucoup plus rapidement que les autres cellules de mémoire Ces cellules de mémoire défectueuses peuvent être effacées à des tensions de seuil inférieures à la tension d'effacement acceptable minimum, typiquement zéro volt, dans le temps nécessaire pour abaisser la tension de seuil des cellules d'effacement les plus lentes jusqu'à un niveau acceptable, c'est-à-dire jusqu'à approximativement 3 volts Ces cellules de mémoire défectueuses peuvent alors induire un courant de fuite sur leurs lignes de bit associées 111-116, même avec leurs grilles reliées à la masse Il résulte de cela que pendant une vérification de sur-effacement de cellules effacées correctement, le courant détecté par les amplificateurs de détection 100- 107 est la somme du courant de cellules effacées correctement et du courant de fuite de ligne de bit De ce fait, des cellules effacées correctement peuvent être identifiées à tort comme étant sur-effacées En d'autres termes, en tant que résultat d'un courant de fuite de ligne de bit, la tension de seuil de cellules effacées correctement est identifiée comme étant inférieure à zéro volt. Une identification à tort de cellules effacées correctement comme étant sur-effacées a pour danger que la cellule sera sur-réparée du fait de l'augmentation de sa tension de seuil lors d'une tentative de mise en oeuvre d'une passe de vérification sur la cellule Une sur-réparation se produit lorsqu'une tension de seuil de cellule est augmentée au- dessus de la limite supérieure acceptable pour l'effacement. La figure 3 représente un circuit 300 destiné à réparer des mémoires flash sur-effacées Le circuit 300 inclut un testeur 310 et une mémoire flash 320 qui doit être réparée, laquelle inclut une partie 20 Le testeur 310 est de préférence commandé par calculateur Un équipement moins sophistiqué peut également être cependant utilisé La fonction du testeur 310 peut également être réalisée en utilisant une machine d'état d'écriture, comme discuté ci-après. Le testeur 310 génère toutes les entrées nécessaires pour la mémoire flash 320 et il lit les données émises en sortie au niveau de la mémoire 320 Des signaux d'adresse en provenance du testeur 310 sont appliqués aux bus 57 et 82 Le testeur 310 génère également et commande une tension de programmation/effacement, soit Vpp 36 Le testeur 310 fait varier le niveau de tension de Vpp 36 selon les besoins pour réparer des cellules sur-effacées Sur le bus 59, le testeur 310 lit des données émises en sortie par la mémoire flash 320 Le testeur 310 répare les cellules sur-effacées en utilisant l'algorithme de la figure 4. Pour résumer, le procédé de réparation de cellules sur- effacées est un processus itératif qui utilise une vérification de sur-effacement et une programmation de niveau de tension bas. La réparation commence par la sélection d'une colonne et par l'examen de chaque cellule de cette colonne afin de déterminer si oui ou non une quelconque cellule est sur-effacée Cette procédure est classiquement appelée vérification de sur- effacement Une cellule est identifiée comme étant sur-effacée lorsqu'elle laisse passer un courant supérieur au courant attendu pour la tension de seuil acceptable la plus faible La réparation s'effectue en appliquant une unique impulsion de programmation de niveau bas à la cellule sur-effacée Le niveau de l'impulsion de programmation est suffisamment bas pour assurer que la cellule n'est par sur-réparée indépendamment des autres conditions de fonctionnement Les cellules restantes de la colonne sont examinées de la même façon Si une quelconque cellule de la colonne sélectionnée est identifiée comme étant sur-effacée, chaque cellule de la colonne est vérifiée quant à son état de sur-effacement une seconde fois Les cellules identifiées comme étant sur-effacées sont à nouveau programmées au moyen d'une unique impulsion de niveau bas Le niveau de tension de l'impulsion de programmation pour la passe de réparation courante est augmenté cependant par comparaison avec la passe de réparation précédente Ces étapes sont répétées jusqu'à ce qu'aucune des cellules de la colonne ne soit identifiée comme étant sur-effacée. Le présent procédé de réparation peut tolérer un courant de fuite de ligne de bit maximum de plusieurs centaines de micro-ampères Cette robustesse est due en partie au choix approprié du niveau de tension de programmation initial et à la différence de comportement entre des cellules défectueuses et des cellules normales Supposons qu'une colonne inclut une cellule sévèrement sur-effacée avec une tension de seuil VT d'approximativement 5 volts La cellule sévèrement sur-effacée tire un courant suffisant pour provoquer l'échec du test de vérification de sur- effacement pour toutes les autres cellules de la même colonne Selon le présent procédé de réparation, chaque cellule de la colonne est programmée une fois à un niveau de tension très bas La tension de l'impulsion de programmation initiale est choisie pour être suffisamment basse pour garantir qu'aucune des cellules de la colonne n'est sur- réparée En général, une programmation à canal-électrons chauds dépend de façon exponentielle de la tension de commande (VG VT) O' VG est la tension de grille utilisée lors de la programmation et VT est la tension de seuil de la cellule qui est programmée Avec VG égal à 5 volts, une cellule effacée correctement avec une tension VT de 2 volts se programme très lentement A l'opposé, la cellule sévèrement sur- effacée se programme très rapidement Ainsi, l'impulsion de programmation de niveau bas initiale a peu d'effet sur des cellules correctement effacées mais un effet considérable sur la cellule sévèrement sur-effacée En tant que conséquence de la passe initiale de programmation/réparation, le courant de fuite de ligne de bit pendant la passe de programmation/réparation suivante est réduit Le procédé de réparation par passes multiples contribue à éliminer les erreurs provoquées par un courant de fuite et il contribue à réduire le risque de sur-réparation. Le fait de commencer une réparation à un niveau de tension de grille faible est avantageux pour une autre raison. Aucune tension spécifique n'est optimale pour réparer chaque mémoire flash ou éventuellement la même mémoire flash pendant toute sa durée de vie du fait que la caractéristique de programmation à canal-électrons chauds varie avec la température, avec les conditions de fabrication et avec le taux d'utilisation Ainsi, en commençant à un niveau de tension bas, le présent procédé de réparation de sur-effacement s'accommode d'un large spectre de tensions optimum spécifiques. Le présent procédé de réparation offre d'autres avantages. Au moyen de l'utilisation du présent procédé, des mémoires défectueuses peuvent être réparées au lieu d'être mises au rebut. Le présent procédé de réparation ne nécessite pas l'utilisation d'éléments redondants coûteux du fait que les cellules défectueuses sont réparées plutôt qu'être dérivées En outre, le présent procédé de réparation permet la réparation de cellules sur-effacées après le test fabricant. La figure 4 représente le présent procédé de réparation en détail La réparation commence au niveau d'une étape 400 o le testeur 310 établit un signal d'adresse Ay 82 à la première colonne du réseau 90 La première colonne du réseau 90 est choisie seulement par souci de commodité. Après établissement du signal d'adresse Ay 82, le testeur 310 passe à une étape 402 Au niveau de l'étape 402, un compteur appelé COUNT est initialisé à zéro Le testeur 310 utilise COUNT pour garder une trace du nombre de passes de programmation/réparation qui ont été réalisées pour la colonne présentement adressée. Depuis l'étape 402, le testeur 310 passe à une étape 404. Lors de l'étape 404, le testeur 310 établit un indicateur, soit BADCOLUMN, à faux BADCOLUMN indique si oui ou non l'une quelconque des cellules de la colonne présentement adressée a été identifiée comme étant sur-effacée Sur la base de BADCOLUMN, le testeur 310 décide ultérieurement si oui ou non une autre passe de programmation/réparation de la colonne présentement adressée doit être effectuée. Le testeur 310 passe à une étape 406 depuis l'étape 404. Au niveau de l'étape 406, le testeur 310 établit un signal d'adresse Ax 57 à la première cellule de la colonne sélectionnée. A nouveau, la première cellule est choisie seulement par souci de commodité. Depuis l'étape 406, le testeur 310 parvient à une étape 408 Au niveau de l'étape 408, le testeur 310 examine la tension de seuil de la cellule présentement adressée pour déterminer si oui ou non cette cellule est sur-effacée Une cellule est considérée comme étant sur- effacée si sa tension de seuil est inférieure à zéro volt. Le testeur 310 détermine si oui ou non une cellule est sur-effacée en utilisant la commande OVERERASE-VERIFY (VERIFICATION DE SUR-EFFACEMENT) en conjonction avec une cellule de référence spéciale La commande OVERERASE-VERIFY permet aux utilisateurs d'une mémoire flash de déterminer si oui ou non une opération d'effacement a été effectuée avec succès. Une cellule de référence qui peut être réglée finement permet au testeur 310 de déterminer si oui ou non une cellule est sur- effacée en utilisant la commande OVERERASE-VERIFY. Un circuit de vérification de sur-effacement 500 qui utilise la commande OVERERASE-VERIFY est constitué comme représenté sur la figure 5 Une cellule de réseau 502 est sélectionnée par des signaux d'adresse Ay 82 et Ax 57 La cellule 502 est couplée à une entrée d'un amplificateur de détection 504 L'autre entrée de l'amplificateur de détection 504 est reliée à une cellule de référence qui peut être réglée finement 506 Avant de commencer une vérification de sur-effacement, habituellement pendant la fabrication, la tension de seuil de la cellule de référence 506 est réglée finement à une tension qui représente la tension la plus basse acceptable pour des cellules effacées De préférence, la tension de seuil de la cellule de référence 506 est réglée à 0,5 volt. Pendant une vérification de sur-effacement, le même niveau de tension, soit approximativement 5 volts, est appliqué aux grilles à la fois de la cellule de réseau 502 et de la cellule de référence 506 Si la cellule 502 présente une tension de seuil inférieure à celle de la cellule de référence 506, alors l'amplificateur de détection 504 émet en sortie un " 1 " logique qui indique au testeur 310 que la cellule 502 est sur- effacée De façon analogue, un " O " logique en provenance de l'amplificateur de détection 504 indique au testeur 310 que la cellule 502 n'est pas sur-effacée. Selon une variante, une vérification de sur-effacement peut être effectuée en utilisant des commandes ERASE-VERIFY (VERIFICATION D'EFFACEMENT) et PROGRAM-VERIFY (VERIFICATION DE PROGRAMMATION) Toutes les commandes de vérification couplent une cellule de référence spéciale à chaque amplificateur de détection; la seule différence entre ces commandes est constituée par la tension VT de la cellule de référence spéciale Tant que la cellule de référence spéciale associée à une commande particulière est réglée finement à une tension VR d'approximativement 0,5 V, une vérification de sur- effacement peut être effectuée en utilisant cette commande particulière. Le schéma de vérification de sur-effacement de la figure identifie correctement toutes les cellules sur-effacées Un courant de fuite de ligne de bit peut cependant amener le circuit 500 à identifier à tort une cellule effacée correctement comme étant sur-effacée Le danger d'une identification à tort est que la cellule identifiée à tort sera sur-réparée Le niveau de tension de programmation initial est par conséquent choisi pour empêcher une sur-réparation. Si une cellule est identifiée comme étant sur-effacée au niveau de l'étape 408, le testeur 310 passe à une étape 410 Le testeur 310 tente de réparer la cellule sur-effacée au niveau de l'étape 410 en appliquant une unique impulsion de programmation La première passe abaisse la colonne adressée, le testeur 310 augmente Vpp 36 jusqu'à un niveau de tension initial, soit VSTART, et il délivre une commande PROGRAM. VSTART doit être suffisamment faible de telle sorte qu'une unique impulsion appliquée à une grille de cellule ne puisse pas provoquer une sur-réparation indépendamment des conditions de fonctionnement VSTART doit être également suffisamment haut pour assurer que la tension au niveau du drain de la cellule est suffisamment élevée pour permettre une programmation La tension minimum acceptable au niveau du drain de la cellule pendant la programmation est d'approximativement 4 volts, ceci sans commande indépendante des tensions de gain et de drain et étant entendu que des tensions de drain valent typiquement Vpp/2 et que VSTART la plus basse possible vaut approximativement 8 volts Dans des circuits qui permettent une commande indépendante des tensions de grille et de drain, une réparation peut s'effectuer avec des tensions de grille aussi faibles que 3 volts Une programmation à canal- électrons chauds s'effectue de préférence avec une tension VSTART de 5 volts. Après application d'une unique impulsion de programmation à la cellule sur-effacée, le testeur 310 passe à une étape 412 Au niveau de l'étape 412, le testeur 310 établit BADCOLUMN à vrai, ce qui indique qu'au moins une cellule de la colonne présentement adressée a été identifiée comme étant sur-effacée. Le testeur 310 passe à une étape 414 depuis l'étape 412. Au niveau de l'étape 414, le testeur 310 détermine si oui ou non, il a vérifié du point de vue du sur-effacement chaque cellule de la colonne présentement adressée Le testeur 310 effectue cette détermination sur la base du signal d'adresse de rangée Ax 57. Si toutes les cellules n'ont pas été examinées, le testeur 310 passe à une étape 416 L'adresse de rangée Ax 57 est incrémentée au niveau de l'étape 416, ce qui prépare le testeur 310 à l'examen de la cellule suivante de la colonne. Le testeur 310 repasse à l'étape 408 depuis l'étape 416 afin de vérifier du point de vue du sur-effacement la cellule présentement adressée Si la cellule est sur-effacée, le testeur 310 déroule les étapes 410, 412, 416 et 414, comme précédemment décrit Par ailleurs, si la cellule présentement adressée n'est pas sur-effacée, le testeur 310 se branche directement à l'étape 414 depuis l'étape 408. Le testeur 310 passe de l'étape 414 à une étape 418 lorsque chaque cellule de la colonne présentement adressée a été vérifiée du point de vue du sur-effacement Au niveau de l'étape 418, le testeur 310 examine BADCOLUMN Si aucune cellule n'a été identifiée comme étant sur-effacée pendant la dernière passe de réparation par programmation, le testeur 310 passe à une étape 420 pour commencer une autre passe de programmation/réparation. Le testeur 310 incrémente le compteur COUNT d'une unité au niveau d'une étape 420 Le testeur 310 passe directement de l'étape 420 à une étape 422. Au niveau de l'étape 422, le testeur 310 détermine si oui ou non le nombre maximum de passes de programmation/réparation pour la colonne présentement adressée est dépassé Le nombre maximum de passes de réparation par programmation est établi à 750 par colonne Selon un autre mode de réalisationle nombre maximum peut être établi à un quelconque nombre arbitraire Le nombre maximum de passes de programmation/réparation par colonne peut également être modifié pour compenser des impulsions deprogrammation de durées différentes. Le testeur 310 passe de l'étape 422 à une étape 424 lorsque le nombre maximum de passes de programmation/réparation est atteint Au niveau de l'étape 424, le testeur 310 indique que le schéma de réparation est un échec. Le testeur 310 passe de l'étape 424 à une étape 425 et la réparation se termine. Par ailleurs, si le nombre maximum de passes de programmation/réparation n'est pas atteint, le testeur 310 passe de l'étape 422 à l'étape 404 Au niveau de l'étape 404, le testeur 310 établit BADCOLUMN à vrai en préparation de la passe de programmation/réparation suivante. Le testeur 310 passe de l'étape 404 à l'étape 406 Au niveau de cette étape, l'adresse de cellule Ax 57 est ré- initialisée à la première cellule de la colonne présentement adressée. Le testeur 310 passe de l'étape 406 à l'étape 408 Au niveau de cette étape, le testeur 310 ré-examine la première cellule pour déterminer si oui ou non elle est sur-effacée Si la cellule présentement adressée est sur-effacée, le testeur 310 passe à l'étape 410. Le testeur 310 applique une unique impulsion de programmation à la cellule sur-effacée au niveau de l'étape 401. Lors des passes de programmation/réparation qui suivent la première passe, Vpp 36 est augmenté par pas depuis VSTART La valeur de pas qui a la préférence, soit VSTEP, est de 0,5 volts. Selon d'autres modes de réalisation, d'autres valeurs de pas peuvent être utilisées. Vpp est établi conformément à l'équation ( 1) ( 1) VPP = VSTART + COUNT*VSTEP Si Vpp Vpp = 7 volts sinon. Le niveau de tension de programmation maximum est de 7 volts. Une tension de grille maximum de 7 volts a la préférence pour éviter toute sur-réparation de cellules effacées correctement Le choix de 7 volts est issu de la caractéristique de taux de programmation de la cellule de mémoire flash, cette caractéristique étant représentée sur la figure 6 Le taux de programmation d'une cellule de mémoire flash augmente lorsque la tension de commande VG-VT augmente jusqu'à ce qu'elle atteigne Vmax, soit une tension de commande maximum, qui vaut approximativement 12 volts Au-delà de Vmax, le taux de programmation diminue lorsque la tension de commande augmente Du fait que chaque cellule d'une colonne peut présenter une tension VT différent, la caractéristique de programmation de la figure 6 constitue un facteur de hasard pour la mécanique du présent procédé de sur-effacement Considérons la réparation d'une colonne qui inclut une cellule sévèrement sur-effacée présentant une tension VT de -5 V et plusieurs cellules correctement effacées présentant une tension VTS de 1 V Le fait d'utiliser une tension VG de 8 volts pour réparer la colonne signifie que la tension de commande de la cellule sévèrement sur- effacée excède Vmax tandis que les tensions de commande des cellules correctement effacées sont inférieures à Vmax Il résulte de cela que le taux de programmation de la cellule sévèrement effacée diminue tandis que le taux de programmation des cellules correctement effacées augmente Il est par conséquent possible d'augmenter VG pour sur-réparer les cellules correctement effacées Le présent procédé évite une sur- réparation en limitant Va à un maximum de 7 volts Selon d'autres modes de réalisation, une tension VG qui excède 7 volts peut être utilisée Ces procédés de réparation sont tout simplement moins efficaces que le procédé qui a la préférence en termes d'empêchement de sur-réparation. Après application d'une impulsion de programmation à la cellule sureffacée, le testeur 310 passe à l'étape 412 Au niveau de l'étape 412, le testeur 310 établit BADCOLUMN à vrai, ce qui indique qu'au moins une cellule de la colonne présentement adressée est sur-effacée. Le testeur 310 passe de l'étape 412 à l'étape 414 S'il reste sur la colonne présentement adressée des cellules qui n'ont pas été vérifiées du point de vue du sur-effacement pendant la passe courante, alors le testeur déroule les étapes 416, 408, 410 et 412 comme précédemment décrit Une fois que chaque cellule située sur la colonne présentement adressée a été vérifiée du point de vue du sur-effacement, alors le testeur 310 déroule les étapes 418, 420, 422, 404 et 406 comme précédemment décrit. Si le schéma de réparation s'effectue avec succès, alors il y aura une passe de programmation/réparation d'une colonne pendant laquelle aucune cellule ne sera identifiée comme étant sur-effacée En d'autres termes, il existe une passe pour laquelle le testeur 310 atteint l'étape 418 et pour laquelle BADCOLUMN est faux Lorsque BADCOLUMN est faux, toutes les cellules situées sur la colonne présentement adressée ont été réparées et le testeur 310 passe à une étape 426. Au niveau de l'étape 426, le testeur 310 détermine si oui ou non chaque colonne du réseau 90 a été réparée Si chaque colonne n'a pas été réparée, le testeur 310 passe à une étape 428. Le testeur 310 incrémente l'adresse de colonne Ay 82 en préparation de la réparation de la colonne suivante du réseau 90. Le testeur 310 passe de l'étape 428 à l'étape 402 et il effectue un cycle en déroulant les étapes 402, 404, 406, 408, 410, 412, 414, 416, 418, 420 et 422 comme précédemment décrit. Une fois que chaque colonne du réseau 90 a été réparée, le testeur 310 termine la réparation par passage à l'étape 425 depuis l'étape 426. La réparation des cellules sur-effacées peut être réalisée en utilisant d'autres algorithmes Le procédé de la figure 4 répare des cellules par incrémentation de niveau de tension de programmation tandis que la durée d'une impulsion de programmation reste constante Selon un autre mode de réalisation, il est également possible au niveau de l'étape 410 d'utiliser un niveau de tension de programmation constant et d'incrémenter la durée des impulsions de programmation. L'étape 410 peut être également modifiée pour permettre l'application de multiples impulsions de programmation, par opposition à une unique impulsion, aux cellules sur-effacées De fait, les impulsions de programmation peuvent être appliquées de façon répétée jusqu'à ce que la cellule sur-effacée soit réparée Ces alternatives sont plus simples que le mode de réalisation qui a la préférence bien qu'elles soient moins efficaces. Selon une variante, toutes les cellules contenues dans un réseau peuvent être réparées au lieu de réparer seulement les cellules sur-effacées En d'autres termes, l'étape 408 peut être éliminée Cette alternative est moins efficace que le mode de réalisation qui a la préférence en ce que les cellules risquent davantage d'être sur-réparées. D'autres procédés destinés à effectuer la vérification de sur-effacement de l'étape 408 peuvent également être utilisés. Par exemple, plutôt qu'appliquer la même tension aux grilles à la fois de la cellule de référence et de la cellule du réseau, des niveaux de tension différents peuvent être utilisés de telle sorte que la tension de seuil des cellules de référence n'ait pas à être réglée finement à la limite acceptable plus basse pour des cellules effacées Par ailleurs, n'importe quelle autre source de courant tels qu'un transistor ou qu'une résistance peut être substituée à la cellule de référence 506. Selon encore un autre mode de réalisation, les colonnes défectueuses ou multiplets (ou octets) défectueux peuvent être identifiés au lieu d'identifier les cellules sur-effacées Toutes les cellules correspondant à l'octet défectueux ou à la colonne défectueuse peuvent être programmées jusqu'à ce que l'octet pris dans sa globalité ou la colonne prise dans sa globalité soit vérifiée du point de vue du sur-effacement. La figure 7 représente sous la forme d'un schéma fonctionnel un autre circuit de réparation de cellules de mémoire flash sur-effacées qui incorpore une machine d'état d'écriture appelée WSM 32 La machine d'état d'écriture 32 commande la programmation, l'effacement et la réparation du sur-effacement du réseau de mémoire flash 20. La machine d'état d'écriture 32 réalise ces fonctions en conjonction avec un autre circuit également fabriqué sur le même substrat que le réseau 20 Un commutateur de tension de drain 44 distribue des tensions continues sur les drains de la totalité de la mémoire flash 20 La machine d'état de commande décode des signaux de commande OEB 24, CEB 22 et WEB 26 et donne instruction à la machine d'état d'écriture 32 d'effectuer l'opération sélectionnée. Les entrées continues appliquées sur la mémoire flash 20 incluent Vpp 36, soit la tension d'alimentation d'effacement/programmation Vcc 16 est l'alimentation du dispositif et Vss 18 est la masse Selon un mode de réalisation particulier, Vpp 36 vaut 12,0 volts et Vcc 16 vaut approximativement 5 volts. En l'absence d'une tension élevée sur Vpp 36, la mémoire flash 20 se comporte comme une mémoire morte Les données stockées à l'emplacement adressé sont lues dans le réseau de mémoire 20 et sont rendues disponibles via des lignes de données 26 pour un circuit externe. La mémoire flash 20 reçoit trois signaux de commande: le code validation de puce ("CEB") 22, le code validation d'écriture ("WEB") 26 et le code validation de sortie ("OEB") 24 L'entrée CEB 22 sélectionne une mémoire flash et est activée à un niveau bas L'entrée OEB 24 est la commande de sortie pour la mémoire flash et elle doit être utilisée pour soumettre à une logique de porte des données en provenance des broches de données issues de la mémoire flash L'entrée OEB 24 est activée à un niveau bas. Les deux fonctions de commande CEB 22 et OEB 24 doivent être actives logiquement pour obtenir des données au niveau des lignes de données de la mémoire flash Le signal de code de validation d'écriture WEB 26 permet l'écriture dans un réseau de mémoire tandis que CEB 22 est à un niveau bas WEB 26 est activée à un niveau bas. La mémoire flash peut se voir effectuer une écriture en amenant WEB 26 à un niveau logique haut tandis que CEB 22 est bas Des adresses et des données sont verrouillées sur le front montant de WEB 26 Des cadencements de microprocesseur standard sont utilisés. Des opérations de dispositif sont sélectionnées en écrivant des motifs de données spécifiques via les lignes d'entrée/sortie de données Un effacement est initialisé au moyen d'une séquence de commande à deux cycles La fin de l'événement effacement peut être détectée après une commande d'état de lecture Une programmation est également exécutée au moyen d'une séquence à deux commandes Un balayage du registre des états à l'aide de la commande registre des états de lecture détermine lorsque la séquence de programmation est terminée. La figure 8 représente sous forme de schéma fonctionnel le circuit de la machine d'état d'écriture 32 La machine d'état d'écriture 32 inclut un oscillateur et un générateur 70, un contrôleur d'état suivant 72, un compteur d'événements 74, un compteur de périodes 76, un compteur d'adresses 78 et un bloqueur et comparateur de données ("DLC") 80. Une commande RESET ou de remise à l'état initial 52 est appliquée à pratiquement tous les circuits contenus dans la machine d'état d'écriture 32 et cette commande force des noeuds critiques contenus dans la machine d'état d'écriture 32 à des états connus Par exemple, RESET 52 force à zéro logique les signaux de comptage terminaux 88, 90 et 92. Peu de temps après réception d'un signal RESET inactif 52, l'oscillateur/générateur de phase 70 commence à générer deux horloges dont les phases ne se chevauchent pas, soit une phase 1 PH 1 82 et une phase 2 PH 2 84, qui sont aiguillées sur pratiquement tout le circuit WSM. Le contrôleur d'état suivant 72 commande et coordonne les activités de la machine d'état d'écriture 32 et détermine l'état suivant de WSM Le contrôleur d'état suivant 72 génère les cinq sorties SBUS l 0: 4 l 54 qui indiquent l'état courant de WSM 32. Chaque circuit qui reçoit SBUS l 0: 4 l 54 en provenance du contrôleur d'état suivant 72 effectue son propre décodage de SBUS lO: 4 l 54 pour déterminer sa tâche suivante Cette conception permet la réalisation en parallèle de bon nombre de tâches, ce qui minimise le temps nécessaire pour effectuer des fonctions d'effacement et de programmation. Le compteur de périodes 76 détermine et cadence les périodes d'impulsions pour des tensions du réseau pendant des opérations de réparation de sur-effacement, de programmation et d'effacement En devenant activé à un niveau haut, le signal de comptage terminal PCTRTC 88 du compteur de périodes 76 informe le contrôleur d'état suivant 72 que la période temporelle sélectionnée s'est écoulée Le compteur de périodes 76 décode SBUS l 0: 4 l 54 pour sélectionner la période d'impulsion souhaitée. Le compteur d'événements 74 détermine lorsque le nombre maximum d'opérations de réparation de sur-effacement, de programmation ou d'effacement par octet a été atteint Lorsque le nombre maximum d'opérations par octet a été atteint, le compteur d'événements 74 en informe le contrôleur d'état suivant 72 en amenant le signal de comptage terminal d'événements ECTRTC 90 à un niveau logique haut Le compteur d'événements 74 détermine le nombre maximum d'opérations en décodant les sorties SBUS l 0: 4 l 54 Selon le mode de réalisation qui a la préférence, le nombre maximum d'opérations de réparation de sur-effacement par bit est de 750; cependant, n'importe quel nombre maximum peut être choisi. Dans la WSM 32, le compteur d'adresses 78 fonctionne à la fois en tant que tampon d'entrée et que compteur Lorsque le signal READY (ou PRET) 50 est à un niveau haut, l'adresse située au niveau des lignes d'adresse A l 0: 16 l est émise en sortie en tant que signaux AY l 0: 6 l 55 et AX l 0: 9 l 57 Les signaux AY 55 et AX 57 pointent l'emplacement de l'octet contenu dans le réseau de mémoire 22 qui doit être réparé du point de vue du sur-effacement, programmé ou effacé. Après que l'adresse a été entrée dans les tampons d'entrée, l'adresse en provenance des tampons d'entrée est chargée dans le circuit de comptage d'adresses sous la commande de CSM 28 via un signal de validation de verrouillage d'adresse ALE 49 Le compteur d'adresses 78 effectue alors son comptage sur toutes les adresses du réseau de mémoire 20. Le compteur d'adresses 78 incorpore deux compteurs, soit un compteur de colonnes appelé également compteur Y et un compteur de rangées appelé également compteur X Chaque compteur produit un signal de comptage terminal de niveau logique haut actif pour le contrôleur d'état suivant 72 Le compteur de colonnes émet en sortie un signal de comptage terminal de colonne AYTC et le compteur de rangées émet en sortie un signal de comptage terminal de rangée AXTC. Le bloqueur et comparateur de données (DLC) 80 constitue l'interface entre la WSM 32 et la machine d'état de commande 28 ainsi qu'entre le réseau de mémoire 22 et les lignes de données 26 Une entrée de données de logique transistor-transistor (TTL) sur les lignes de données 26 est tamponnée par le DLC 80 et est passée à la machine d'état de commande 28 en tant que signaux DATAIN l O 7 l 27. Si le signal reçu sur les lignes DATAIN l 0: 7 l 27 représente une commande de programmation, la machine d'état de commande 28 donne instruction au DLC 80 de stocker l'information au niveau des lignes de données 26 en établissant le signal de validation de bascule de données DLE 47 à un niveau logique de un Pendant les opérations d'effacement de programmation et de vérification de sur-effacement, le DLC 80 compare les données stockées dans ses bascules pour détecter des signaux d'amplification SOUT l 0: 7 l 59 et il indique une correspondance en établissant MATCH 94 à un niveau logique haut. Le DLC 80 compare les signaux de sortie d'amplificateur de détection, soit SOUT l 0: 7 l 59, qui sont indicatifs des contenus des cellules de mémoire, à un niveau logique de référence pendant des procédures de vérification de sur- effacement et il indique un effacement effectué avec succès au contrôleur d'état suivant en établissant MATCH 94 à un niveau logique haut. Le registre d'états 34 reporte l'état de la machine d'état d'écriture 32 via des signaux d'état STAT l 3: 7 l 56 qui sont multiplexés sur des lignes d'entrée/sortie de données 26. Des mémoires à contenu adressable (CAM) (non représentées) qui sont résidentes dans le réseau 90 émettent en sortie un signal TWOROW actif pour le contrôleur d'état suivant 72 chaque fois que le compteur d'adresses 78 émet en sortie une adresse qui inclut une rangée mise en court-circuit La signification de TWOROW fait l'objet d'une discussion détaillée ci-après. Sur la figure 9, un autre algorithme de réparation d'un sur-effacement en utilisant la machine d'état d'écriture 32 est représenté Sur la figure 9, chaque bloc représente un -état de la machine d'état d'écriture 32 Le nom de chaque état est indiqué au niveau de la ligne supérieure de chaque bloc La combinaison de signaux qui provoquent le branchement du contrôleur d'état suivant 62 sur un autre état est de façon générale indiquée dans le texte à côté de chaque branchement, à l'aide de signaux inactifs précédés par un point d'exclamation "l" Il est bien entendu que le contrôleur d'état suivant 72 se débranche d'un état sur un autre état indépendamment des entrées qui arrivent au contrôleur d'état suivant 72 lorsqu'aucune combinaison de signaux n'est indiquée à la suite d'un branchement Par ailleurs, l'algorithme de la figure 9 effectue une réparation de sur- effacement sur huit colonnes simultanément Ceci est dû à l'agencement du réseau 20 qui applique le même signal d'adresse à huit blocs différents simultanément afin d'accéder à un octet. Par souci de simplification, la discussion de la figure 9 commence avec la vérification de sur-effacement d'une mémoire flash qui n'inclut aucune rangée mise en court-circuit et dans laquelle aucune cellule n'est sur-effacée En d'autres termes, on suppose que le signal TWOROW est inactif et que le signal MATCH est actif. Avant de commencer la vérification de sur-effacement, le compteur d'adresses 78 est remis à l'état initial, au début de sa valeur de comptage, ce qui assure que toutes les colonnes contenues dans le réseau seront vérifiées du point de vue du sur- effacement La vérification du sur-effacement commence au niveau d'une étape 500 par remise à l'état initial du bit de colonne mauvaise, soit BADCOLUMN Simultanément, la première cellule des huit premières colonnes est vérifiée du point de vue de l'effacement En d'autres termes, la sortie de chaque cellule du réseau est appliquée à un amplificateur de détection pour être comparée à une cellule de référence spéciale. Selon un mode de réalisation qui a la préférence, les niveaux de tension utilisés dans le circuit de vérification de sur-effacement varient par rapport à ceux qui ont fait précédemment l'objet d'une discussion Le circuit de base de la figure 5 est cependant non modifié Cette différence résulte de la difficulté du réglage fin de cellules de référence spéciales à 0,5 volt En lieu et place, des cellules de référence spéciales sont réglées à 3 volts, soit un niveau qui est plus facile à obtenir Pour obtenir un courant représentatif d'une différence de 2 volts entre VT et VG, 5 volts sont appliqués à la grille de chaque cellule de référence spéciale A l'opposé, des cellules de réseau effacées correctement présentent une tension VT de 0,5 volt à 1, 1 volts et la tension appliquée à la grille des cellules de réseau est de 2,5 volts. Après réalisation d'une vérification de sur-effacement sur l'octet indiqué, le contrôleur d'état suivant 72 se branche de l'étape 500 à une étape 502 dans laquelle on vérifie que le compteur de colonnes n'a pas atteint sa valeur de comptage terminale Au niveau de l'étape 502, la machine d'état d'écriture 32 détermine si oui ou non les cellules présentement adressées ont subi une vérification de sur-effacement La machine d'état d'écriture 32 se prépare également à une réparation de sur- effacement éventuelle en générant des signaux de sélection pour un commutateur de tension de drain 44 Lorsqu'il est validé, le commutateur de tension de drain 44 amène les drains des cellules sélectionnées jusqu'à 7 volts, ce qui permet leur réparation Les drains de cellules non sélectionnées, c'est-à-dire de cellules correctement effacées, sont mis à la masse lorsque le commutateur de tension de drain 44 est validé, ce qui empêche la réparation de cellules non sélectionnées. Le bloqueur et comparateur de données 80 génère les signaux de sélection en comparant des sorties d'amplificateur de détection SOUT l 0: 7 l à des valeurs attendues Pour des cellules sur-effacées, la sortie de l'amplificateur de détection ne correspond pas à la valeur attendue Le bloqueur et comparateur de données 80 répond à une non correspondance en amenant un signal sélectionné associé aux cellules à un niveau haut actif. Pour des cellules correctement effacées, l'amplificateur de détection émet en sortie des valeurs attendues et le bloqueur et comparateur de données 80 répond à ces valeurs en forçant les signaux de sélection associés aux cellules à l'état inactif. Si le bloqueur et comparateur de données 80 indique que tous les huit bits ont subi une vérification de sur-effacement en forçant MATCH à l'état actif, alors la machine d'état d'écriture 32 passe de l'étape 502 à une étape 504. La machine d'état d'écriture 32 incrémente l'adresse de rangée au niveau de l'étape 504 La machine d'état d'écriture 32 passe alors de l'étape 504 à une étape 506. * Au niveau de l'étape 506, la cellule suivante de chacune des huit colonnes adressées est vérifiée du point de vue du sur- effacement La vérification de sur-effacement des colonnes présentement adressées se poursuit si AXTC est inactif La machine d'état d'écriture 32 répond au AXTC inactif par passage de l'étape 506 à l'étape 502. Au niveau de l'étape 502, la machine d'état d'écriture 32 détermine si oui ou non l'une quelconque des cellules présentement adressées doit être réparée du point de vue du sur- effacement. Si l'on suppose qu'aucune des cellules du réseau 20 n'est sur-effacée, la machine d'état d'écriture déroule les étapes 502, 504 et 605 jusqu'à ce que le compteur de rangées atteigne sa valeur de comptage terminale Suite à la réception d'un signal AXTC actif en provenance du compteur de rangées, la machine d'état d'écriture, 32 passe de l'étape 506 à une étape 508 Au niveau de l'étape 508, le compteur de colonnes incrémente sa valeur de comptage, ce qui sélectionne un autre jeu de huit colonnes pour une vérification de sur-effacement et pour une réparation. La machine d'état d'écriture 32 passe de l'étape 508 à l'étape 500 La machine d'état d'écriture 32 déroule alors les étapes 500, 502, 504, 506 et 508 jusqu'à ce que le compteur de colonnes atteigne sa valeur de comptage terminale Une fois que le contrôleur d'état suivant 72 reçoit un signal de comptage terminal actif AYTC, la machine d'état d'écriture 32 sort de l'algorithme au niveau d'une étape 530. Considérons le fonctionnement de la machine d'état d'écriture 32 lorsqu'une cellule est en échec quant à une vérification de sureffacement On suppose par souci de simplification que le réseau 20 n'inclut pas de rangée mise en court-circuit et que le compteur d'événements n'est pas encore en dépassement En d'autres termes, la machine d'état d'écriture 32 est au niveau de l'étape 502 et les signaux MATCH, ECTRTC et TWOROW sont inactifs. Dans cet état, les cellules présentement adressées sont préparées en vue d'une application d'une vérification de sur- effacement à la grille de chaque cellule qui est en échec Lorsque le compteur de périodes est en dépassement, la machine d'état d'écriture 32 passe à une étape 512 dans laquelle le compteur de périodes est remis à l'état initial. La machine d'état d'écriture 32 passe de l'étape 512 à une étape 514 o le commutateur de tension de drain 44 est validé. D'o l'application de 7 volts aux drains des cellules qui sont en échec quant à la vérification de sur-effacement, ces cellules ayant été sélectionnées au niveau de l'étape 502 Les drains de toutes les autres cellules sont reliés à la masse A nouveau, la tension est maintenue jusqu'à ce que le compteur de périodes atteigne sa valeur de comptage terminale Puis la machine d'état d'écriture 32 passe à une étape 516 afin de vérifier les cellules réparées quant au sur-effacement. La machine d'état d'écriture 32 passe de l'étape 516 à une étape 518 Au niveau de cette étape, le succès de l'opération de réparation est analysé en évaluant MATCH Si MATCH est à un niveau logique haut, la réparation a été effectuée avec succès et la machine d'état d'écriture passe à l'étape 504. Par ailleurs, si la cellule est en échec quant à sa vérification de sureffacement, la machine d'état d'écriture passe de l'étape 518 à une étape 520 Au niveau de cette étape, BADCOLUMN est établi, ce qui garantit qu'au moins une passe de vérification supplémentaire des colonnes présentement adressées sera effectuée Il est à noter que BADCOLUMN est établi seulement si une cellule est en échec suite à une passe de vérification de sur-effacement après l'application d'une première impulsion de réparation Ainsi, une unique impulsion de conditionnement peut être appliquée sans provoquer la vérification à nouveau de chaque cellule située sur la même colonne Pendant la fabrication, ceci peut permettre d'économiser jusqu'à 32 millisecondes. La machine d'état d'écriture 32 revient de l'étape 520 à l'étape 504 o le compteur d'adresses 78 incrémente l'adresse de rangée Puis la machine d'état d'écriture 32 passe à l'étape 506 o l'octet suivant est vérifié du point de vue du sur-effacement. Si l'on suppose qu'aucune des autres cellules situées sur les colonnes présentement adressées n'est en échec quant à une vérification de sureffacement, la machine d'état d'écriture 32 déroule directement les étapes 502, 504 et 506 jusqu'à ce que la fin de la colonne soit atteinte, comme indiqué par un niveau actif de AXTC La machine d'état d'écriture 32 passe ensuite de l'état 506 à un état 524 du fait que BADCOLUMN est actif. Au niveau de l'étape 524, le niveau de tension de réparation est incrémenté en préparation à une autre passe de réparation de sureffacement des colonnes présentement adressées De préférence, le niveau de tension de programmation est augmenté en incrémentant un signal numérique qui est entré sur un convertisseur numérique/analogique De préférence, le convertisseur numérique/analogique produit une tension de sortie minimum de 5 volts et une tension de sortie maximum de 7 volts selon des pas de 0,5 volt D'autres plages de tension peuvent cependant être utilisées, comme dicté par le réseau de mémoire particulier qui est réparé. La machine d'état d'écriture 32 passe de l'étape 524 à l'étape 500 Du fait que le compteur de colonnes n'est pas incrémenté, une vérification de sur-effacement commence à nouveau avec la première cellule située sur les colonnes présentement adressées. La vérification de sur-effacement est ensuite effectuée sur les cellules présentement adressées Si l'on suppose que chaque colonne du réseau 20 n'a pas été examinée, la machine d'état d'écriture 32 passe de l'étape 500 à l'étape 502 La machine d'état d'écriture 32 déroule ensuite les étapes 502, 510, 512, 514, 516, 518, 520, 504, 506, 524 et 508 comme précédemment décrit jusqu'à ce que chaque cellule sur-effacée du réseau de mémoire 20 ait été réparée ou jusqu'à ce qu'une quelconque cellule ne puisse pas être réparée avant que le compteur d'événements n'atteigne sa valeur de comptage terminale Le compteur d'événements permet la réalisation de jsqu'à 750 tentatives de réparation de sur- effacement pour chaque colonne Après 750 tentatives de réparation d'effacement, le compteur d'événements force ECTRTC à un niveau haut actif En réponse, la machine d'état d'écriture 32 passe de l'étape 502 à une étape 532 et est en échec de réparation de sur-effacement. L'algorithme de la figure 9 correspond à une mémoire flash qui présente une redondance de rangée Le terme redondance de rangée signifie que deux rangées qui sont mises en court-circuit ensemble sont remplacées par d'autres rangées situées en un quelconque endroit du réseau 20 Même si des rangées remplacées par des éléments redondants ne contiennent pas une information empreinte de sens, elles affectent toujours la réparation d'autres cellules contenues dans le réseau 20 Les cellules sur-effacées contenues dans des rangées mises en court-circuit contribuent à des courants de fuite de colonne et elles doivent par conséquent être réparées pour empêcher toute sur-réparation de cellule non défectueuse de la même colonne. Pendant une opération de réparation dans des conditions normales, 5 volts sont appliqués aux grilles des cellules du réseau qui sont réparées tandis que les autres grilles du réseau sont maintenues à la masse Suite à cette procédure, les rangées mises en court-circuit sont mises à la masse à la tension d'alimentation de 5 volts et la mémoire flash est détériorée Par conséquent, la réparation de rangées mises en court-circuit nécessite que toutes les rangées aient leurs grilles connectées au même niveau de tension (Ceci est vrai pour toutes les opérations qui mettent en jeu des rangées mises en court- circuit) La sortie de courant des cellules mises en court-circuit excède celle d'une cellule correctement effacée du fait que les deux cellules mises en court-circuit contribuent à la circulation du courant dans l'amplificateur de détection Une identification erronée d'une cellule mise en court-circuit sur une autre rangée comme étant sur- effacée est dangereuse du fait qu'elle peut conduire à la sur-réparation de cellules correctement effacées situées sur la même colonne L'algorithme présent tente d'éviter une sur-réparation des colonnes qui incluent une rangée mise en court-circuit en sur-réparant des cellules contenues dans les rangées mises en court-circuit Une sur- réparation des cellules contenues dans des rangées mises en court- circuit est tentée en appliquant 10 volts à la grille pendant des réparations de sur- effacement. L'algorithme de la figure 9 correspond seulement à des redondances de rangée pour des paires de rangées mises en court-circuit La première rangée mise en court-circuit rencontrée par la machine d'état d'écriture 32 est appelée rangée inférieure et la seconde rangée rencontrée est appelée rangée supérieure Du fait que le compteur d'adresses 78 effectue un comptage d'une façon linéaire, la rangée inférieure est adressée en premier Etant donné que les grilles des deux rangées supérieure et inférieure sont excitées à 10 volts pendant la réparation de la rangée inférieure, les deux rangées sont réparées simultanément Par conséquent, lorsque le compteur d'adresses 78 est incrémenté jusqu'à l'adresse de la rangée supérieure, il n'est pas nécessaire de réparer la rangée supérieure L'algorithme de la figure 9 empêche par conséquent la réparation de la rangée supérieure suite à la réparation de la rangée inférieure. Afin d'illustrer la manière selon laquelle la figure 9 correspond à une redondance de rangée, supposons que le compteur d'adresses 78 indique la première rangée d'une paire mise en court-circuit et qu'une vérification de sur-effacement a échoué En d'autres termes, MATCH est inactif et TWOROW est actif Si l'on suppose que le compteur d'événements n'a pas atteint sa valeur de comptage terminale, alors la machine d'état d'écriture 32 passe de l'étape 502 à une étape 522 Au niveau de l'étape 522, 10 volts sont appliqués aux grilles des rangées supérieure et inférieure de cellules mises en court-circuit. Après que PCTRTC devient actif, la machine d'état d'écriture 32 déroule depuis l'étape 522 les étapes 512, 514, 516, 518 et 520, comme discuté précédemment Au niveau de l'étape 504, le fonctionnement de la machine d'état d'écriture 32 varie légèrement pour s'adapter au signal TWOROW actif Lorsque l'adresse de rangée est incrémentée d'une unité, le compteur d'adresses 78 indique la rangée supérieure en maintenant TWOROW à un niveau actif Si l'on suppose que TWOROW est actif, alors le compteur d'adresses de rangée incrémente sa valeur de comptage jusqu'à ce que TWOROW devienne actif La machine d'état d'écriture passe à l'étape 506 en réponse à cet état. On peut se demander comment une rangée mise en court- circuit est toujours réparée étant donné que la machine d'état d'écriture 32 ne se débranche pas de l'étape 504 tant que le signal TWOROW est inactif La conception en pipeline de la machine d'état d'écriture 32 garantit que TWOROW ne devient pas actif immédiatement suite à l'adressage de la rangée inférieure d'une paire mise en court- circuit Ceci permet à la machine d'état d'écriture 32 de passer de l'étape 504 à l'étape 506 suite à l'adressage de la rangée inférieure Cependant, TWOROW est actif au moment o la machine d'état d'écriture 32 passe à l'étape 502 La machine d'état d'écriture 32 exécute, à partir de l'étape 502, l'algorithme de la manière discutée précédemment. Ainsi, un procédé d'identification et de réparation de cellules de mémoire flash sur-effacées en utilisant une programmation à canal- électrons chauds à niveau de tension bas a été décrit Un procédé de réparation de cellules de mémoire flash sur-effacées en utilisant une machine d'état d'écriture a également été décrit. Dans la description qui précède, l'invention a été décrite par report à des modes de réalisation spécifiques présentés à titre d'exemple Il est cependant évident que diverses modifications et changements peuvent être apportées à ces exemples sans que l'on s'éloigne du cadre et de l'esprit de l'invention prise dans son sens le plus large La description et les dessins doivent être par conséquent considérés à titre d'illustration et non pas dans un sens restrictif. REVENDICATIONS 1 Procédé de réparation de cellules sur-effacées contenues dans un réseau de mémoire flash comportant une colonne, la colonne comportant une première cellule et une seconde cellule, le procédé étant caractérisé en ce qu'il comprend les étapes de: a) application d'une impulsion de programmation à la première cellule si la colonne inclut une cellule sur-effacée, l'impulsion de programmation présentant un niveau de tension de programmation; b) application d'une impulsion de programmation à la seconde cellule si la colonne inclut une cellule sur-effacée; c) incrémentation du niveau de tension de programmation d'une première valeur si la colonne inclut une cellule sur-effacée; et d) répétition des étapes a) à c) jusqu'à ce que la colonne soit réparée. 2 Procédé selon la revendication 1, caractérisé en ce que le niveau de tension de programmation est suffisamment bas pour empêcher toute surréparation des première et seconde cellules. 3 Procédé selon la revendication 1, caractérisé en ce que la colonne est identifiée comme incluant des cellules sur- effacées par comparaison d'une tension de seuil associée aux première et seconde cellules à une tension de référence. 4 Procédé selon la revendication 1, caractérisé en ce que la colonne est identifiée comme incluant des cellules sur- effacées par mesure d'un courant de fuite de la colonne. Procédé selon la revendication 1, caractérisé en ce qu'un niveau de tension de programmation initial s'inscrit dans une plage qui va de 3 volts à 5 volts. 6 Procédé selon la revendication 1, caractérisé en ce que la première valeur vaut approximativement 0,5 volt. 7 Procédé selon la revendication 1, caractérisé en ce que le niveau de tension de programmation est incrémenté jusqu'à ce qu'un niveau de tension de programmation maximum s'inscrive dans une plage qui va de 7 volts à 12 volts. 8 Procédé de réparation de cellules sur-effacées contenues dans un réseau de mémoire flash comportant une colonne, la colonne comportant une première cellule et une seconde cellule, le procédé étant caractérisé en ce qu'il comprend les étapes de: a) application d'une impulsion de programmation à la première cellule si la première cellule est sur-effacée, l'impulsion de programmation présentant un niveau de tension de programmation; b) application d'une impulsion de programmation à la seconde cellule si la seconde cellule est sur- effacée; c) incrémentation du niveau de tension de programmation d'une première valeur si l'une des première et seconde cellules a été identifiée comme étant sur-effacée; et d) répétition des étapes a) à c) jusqu'à ce que la première cellule et la seconde cellules soient toutes deux réparées. 9 Procédé selon la revendication 8, caractérisé en ce que la colonne est identifiée comme incluant des cellules sur- effacées par comparaison d'une tension de seuil associée aux première et seconde cellules à une tension de référence. Procédé selon la revendication 8, caractérisé en ce que les cellules sont identifiées comme étant sur-effacées par comparaison d'une tension de seuil à une tension de référence. 11 Procédé selon la revendication 8, caractérisé en ce qu'un niveau de tension de programmation initial s'inscrit dans une plage qui va de 3 volts à 5 volts. 12 Procédé selon la revendication 8, caractérisé en ce que la première valeur vaut approximativement 0,5 volt. 13 Procédé selon la revendication 8, caractérisé en ce que le niveau de tension de programmation est incrémenté jusqu'à ce qu'un niveau de tension de programmation maximum s'inscrive dans une plage qui va de 7 volts à 12 volts. 14 Procédé de réparation de cellules sur-effacées contenues dans un réseau de mémoire flash comportant une colonne, la colonne comportant une première cellule et une seconde cellule, le procédé étant caractérisé en ce qu'il comprend les étapes de: a) identification de si oui ou non la première cellule est sur-effacée; b) application d'une impulsion de programmation à la première cellule si la première cellule est sur-effacée, l'impulsion de programmation présentant un niveau de tension de programmation; c) identification de si oui ou non la seconde cellule est sur-effacée; d) application d'une impulsion de programmation à la seconde cellule si la seconde cellule est sur-effacée; e) incrémentation du niveau de tension de programmation d'une première valeur si l'une des première et seconde cellules a été identifiée comme étant sur-effacée; et f) répétition des étapes a) à e) jusqu'à ce que ni la première cellule, ni la seconde cellule ne soit identifiée comme étant sur-effacée. Procédé selon la revendication 14, caractérisé en ce que le niveau de tension de programmation est suffisamment bas pour empêcher toute surréparation des première et seconde cellules. 16 Procédé selon la revendication 14, caractérisé en ce que les première et seconde cellules sont identifiées comme étant sur-effacées par comparaison d'une tension de seuil à une tension de référence. 17 Procédé selon la revendication 14, caractérisé en ce qu'un niveau de tension de programmation initial s'inscrit dans une plage qui va de 3 volts à 5 volts. 18 Procédé selon la revendication 14, caractérisé en ce que la première valeur vaut approximativement 0,5 volt 19 Procédé selon la revendication 14, caractérisé en ce que le niveau de tension de programmation est incrémenté jusqu'à ce qu'un niveau de tension de programmation maximum s'inscrive dans une plage qui va de 5 volts à 12 volts. Procédé de réparation de cellules sur-effacées contenues dans un réseau de mémoire flash comportant une colonne, la colonne comportant une première cellule et une seconde cellule, le procédé étant caractérisé en ce qu'il comprend les étapes de: a) identification de si oui ou non la première cellule est sur-effacée; b) application d'une impulsion de programmation à la première cellule si la première cellule est sur- effacée, l'impulsion de programmation présentant un niveau de tension de programmation initial suffisamment bas pour empêcher la sur- réparation de la cellule sur-effacée; c) identification de si oui ou non la seconde cellule est sur-effacée; d) application d'une impulsion de programmation à la seconde cellule si la seconde cellule est sur-effacée, e) incrémentation du niveau de tension de programmation d'une première valeur si l'une des première et seconde cellules a été identifiée comme étant sur-effacée; et f) répétition des étapes a) à e) jusqu'à ce que ni la première cellule, ni la seconde cellule ne soit identifiée comme étant sur-effacée. 21 Procédé selon la revendication 20, caractérisé en ce que les cellules sont identifiées comme étant sur-effacées par comparaison d'une tension de seuil à une tension de référence. 22 Procédé selon la revendication 20, caractérisé en ce qu'un niveau de tension de programmation initial s'inscrit dans une plage qui va de 3 volts à 5 volts. 23 Procédé selon la revendication 20, caractérisé en ce que la première valeur vaut approximativement 0,5 volt. 24 Procédé selon la revendication 20, caractérisé en ce que le niveau de tension de programmation est incrémenté jusqu'à un niveau de tension de programmation maximum égal à 7 volts. Procédé de réparation de cellules sur-effacées contenues dans un réseau de mémoire flash comportant une colonne, la colonne comportant une première cellule et une seconde cellule, chacune des première et seconde cellules présentant une tension de seuil, le procédé caractérisé en ce qu'il comprend les étapes de: a) identification de si oui ou non la première cellule est sur-effacée par comparaison de la tension de seuil de la seconde cellule à une tension de référence; b) application d'une impulsion de programmation à la première cellule si la première cellule est sur-effacée, l'impulsion de programmation présentant un niveau de tension de programmation initial suffisamment bas pour empêcher la sur- réparation de la cellule sur-effacée; c) identification de si oui ou non la seconde cellule est sur-effacée par comparaison de la tension de seuil de la seconde cellule à la tension de référence; d) application d'une impulsion de programmation à la seconde cellule si la seconde cellule est sur-effacée; e) incrémentation du niveau de tension de programmation d'une première valeur si l'une des première et seconde cellules a été identifiée comme étant sur-effacée; et f) répétition des étapes a) à e) jusqu'à ce que ni la première cellule, ni la seconde cellule ne soit identifiée comme étant sur-effacée. 26 Procédé selon la revendication 25, caractérisé en ce que la première valeur vaut approximativement 0,5 volt. 27 Procédé selon la revendication 25, caractérisé en ce que le niveau de tension de programmation est incrémenté jusqu'à un niveau de tension de programmation maximum égal à 7 volts. 28 Procédé de réparation de cellules sur-effacées contenues dans un réseau semiconducteur non volatile comportant une colonne, la colonne comportant une première cellule et une seconde cellule, chacune des cellules présentant une tension de seuil, le procédé étant caractérisé en ce qu'il comprend les étapes de: a) initialisation d'un compteur b) identification de si oui ou non la première cellule est sur-effacée par comparaison de la tension de seuil de la première cellule à une tension de référence; c) application d'une impulsion de programmation à la première cellule si la première cellule est sur-effacée, l'impulsion de programmation présentant un niveau de tension de programmation initial suffisamment bas pour empêcher la sur- réparation de la cellule sur-effacée; d) identification de si oui ou non la seconde cellule est sur-effacée par comparaison de la tension de seuil de la seconde cellule à la tension de référence; e) application d'une impulsion de programmation à la seconde cellule si la seconde cellule est sur-effacée; f) incrémentation du niveau de tension de programmation d'une première valeur si l'une des première et seconde cellules a été identifiée comme étant sur-effacée g) incrémentation du compteur; et h) répétition des étapes a) à g) jusqu'à ce que ni la première cellule, ni la seconde cellule ne soit identifiée comme étant sur-effacée ou jusqu'à ce que le compteur soit égal à une valeur de comptage maximum. 29 Procédé selon la revendication 28, caractérisé en ce que la première valeur vaut approximativement 0,5 volt. Procédé selon la revendication 28, caractérisé en ce que le niveau de tension de programmation est incrémenté jusqu'à un niveau de tension de programmation maximum égal à 7 vo Its. 31 Procédé selon la revendication 28, caractérisé en ce que le niveau de tension initial s'inscrit dans une plage qui va de 4 volts à 5 volts. 32 Procédé de réparation de cellules sur-effacées contenues dans un réseau de mémoire flash comportant une colonne, la colonne comportant une première cellule et une seconde cellule, le procédé étant caractérisé en ce qu'il comprend les étapes de: a) mise à zéro d'un indicateur b) application d'une impulsion de programmation à la première cellule si la première cellule est sur-effacée, l'impulsion de programmation présentant un niveau de tension de programmation initial suffisamment bas pour empêcher la sur- réparation de la cellule sur-effacée; c) établissement de l'indicateur si la première cellule reste sur-effacée; d) application d'une impulsion de programmation à la seconde cellule si la seconde cellule est sur- effacée; e) établissement de l'indicateur si la seconde cellule reste sur-effacée; f) incrémentation du niveau de tension de programmation d'une première valeur si l'indicateur est établi et g) répétition des étapes a) à g) si l'indicateur est établi. 33 Procédé selon la revendication 32, caractérisé en ce que la première valeur vaut approximativement 0,5 volt. 34 Procédé selon la revendication 32, caractérisé en ce que le niveau de tension de programmation est incrémenté jusqu'à un niveau de tension de programmation maximum égal à 7 volts. Procédé de réparation de cellules sur-effacées contenues dans un réseau de mémoire flash comportant une colonne, la colonne comportant une première rangée et une seconde rangée, le procédé étant caractérisé en ce qu'il comprend les étapes de: a) mise à zéro d'un indicateur b) si la première cellule est sur-effacée et n'est pas en court-circuit sur la seconde cellule, application d'une impulsion de programmation présentant un niveau de tension de programmation initial suffisamment bas pour empêcher toute sur-réparation de la cellule sur-effacée; c) si la première cellule est sur-effacée et est en court-circuit sur la seconde cellule, application d'une impulsion de programmation à la fois à la première cellule et à la seconde cellule; d) établissement de l'indicateur si la première cellule reste sur-effacée; e) si la seconde cellule est sur-effacée et n'est pas en court-circuit sur la première cellule, application d'une impulsion de programmation présentant le niveau de tension de programmation initial à la seconde cellule; f) établissement de l'indicateur si la seconde cellule reste sur-effacée; g) incrémentation du niveau de tension de programmation d'une première valeur si l'indicateur est établi; h) répétition des étapes a) à g) si l'indicateur est établi. 36 Procédé selon la revendication 35, caractérisé en ce que l'impulsion de programmation présente un niveau de tension suffisamment haut pour sur-réparer des cellules sur-effacées lorsque la première cellule est en court-circuit sur la seconde cellule. 37 Procédé de réparation de cellules sur-effacées contenues dans un réseau de mémoire flash comportant une colonne, la colonne comportant une première cellule et une seconde cellule, le procédé étant caractérisé en ce qu'il comprend les étapes de: a) application d'une impulsion de programmation à la première cellule si la colonne inclut une cellule sur-effacée, l'impulsion de programmation présentant une durée temporelle de programmation; b) application d'une impulsion de programmation à la seconde cellule si la colonne inclut une cellule sur-effacée; c) incrémentation de la durée temporelle de programmation d'une première valeur si la colonne inclut une cellule sur-effacée; et d) répétition des étapes a) à c) jusqu'à ce que la colonne soit réparée. 38 Procédé selon la revendication 37, caractérisé en ce que la durée temporelle de programmation est suffisamment courte pour empêcher toute sur-réparation des première et seconde cellules.