Brevet FR2857495A1 — publié le 20050114

L'invention concerne un dispositif à mémoire flash, et plus particulièrement un dispositif à mémoire flash ayant une cellule à niveaux multiples (MLC) et un procédé pour sa lecture et sa programmation. Les dispositifs à mémoire flash sont généralement classés en dispositifs à mémoire flash de type NON-ET et en dispositifs à mémoire flash de type NON-OU. Alors que les dispositifs à mémoire flash de type NON-OU comprennent des cellules de mémoire qui sont connectées de façon io indépendante à des lignes de bits et à des lignes de mots et ont un excellent temps d'accès direct, les dispositifs à mémoire flash de type NON-ET comprennent des cellules de mémoire qui sont connectées en séries en sorte qu'un seul contact par chaîne de cellules est nécessaire. Par conséquent, les dispositifs à mémoire flash de type NON-ET ont un excellent degré d'intégration. Les structures NON-ET sont donc principalement utilisées dans des dispositifs à mémoire flash à haute intégration. Un dispositif à mémoire flash NON-ET bien connu comprend une matrice de cellules de mémoire, un décodeur de lignes et un tampon de page. La matrice de cellules de mémoire comprend des lignes de mots s'allongeant suivant des rangées, des lignes de bits s'allongeant suivant des colonnes et des chaînes de cellules correspondant aux lignes de bits respectives. Les chaînes de cellules sont connectées en séries à des transistors de sélection de chaîne, des cellules de mémoire et des transistors de sélection de masse, selon cette séquence, suivant les lignes de bits. Un trajet de courant du transistor de sélection de chaîne dans la chaîne de cellules est connecté à la ligne de bits correspondante et à un trajet de courant des cellules de mémoire. Un trajet de courant du transistor de sélection de masse est connecté entre une ligne de source commune et un trajet de courant des cellules de mémoire. Une ligne de sélection de chaîne, des lignes de mots et une ligne de sources communes sont connectées aux grilles du transistor de sélection de chaîne, à des grilles de commande des transistors de cellule de mémoire et à une grille du transistor de sélection de masse, respectivement. Chacune des cellules de mémoire est pourvue d'un transistor de cellule ayant une grille de commande, une grille flottante, une source et un drain. Comme cela est bien connu, les transistors des cellules exécutent une opération de programmation en utilisant l'effet tunnel de Io FowlerNordheim (effet tunnel F-N). Par ailleurs, le décodeur de rangée bien connu, qui est connecté à la ligne de sélection de chaîne, aux lignes de mots et à la ligne de sources communes est placé sur un côté de la matrice de cellule de mémoire. De plus, le tampon de page connecté aux multiples lignes de bits est placé sur l'autre côté de la matrice de cellule de mémoire. Récemment, pour augmenter l'intégration d'un tel dispositif à mémoire flash, on a procédé activement à des développements sur une cellule à bits multiples qui est capable de stocker de multiples bits de données dans une cellule de mémoire. Une telle cellule de mémoire est habituellement appelée cellule à niveaux multiples (MLC). Par ailleurs, une cellule de mémoire à bit unique est appelée cellule à niveau unique (SLC). En général, la cellule à niveaux multiples présente deux ou plus de deux distributions de tensions de seuil, et présente deux ou plus de deux états de stockage de données correspondant aux distributions de tension. Comme montré sur la figure 11A des dessins annexés décrits ci-après, la cellule à niveaux multiples qui peut programmer des données à deux bits présente quatre états de stockage de données, désignés [Il], [10], [01] et [00]. Ces distributions correspondent aux distributions de tensions de seuil de la cellule à niveaux multiples. Par exemple, en supposant que les distributions de tensions de seuil respectives de la cellule de mémoire sont 2,7 V ou moins, 0,3 V à 0,7 V, 1,3 V à 1,7 V, et 2,3 V à 2,7 V, les états [Il], [10], [01] et [00] correspondent à une valeur de -2,7 V ou moins, à une valeur de 0,3 V à 0,5 V, à une valeur de 1,3 V à 1,7 V et à une valeur de 2,3 V à 2,7 V, respectivement. Une opération de lecture du dispositif à mémoire flash à cellules à niveaux multiples est exécutée en détectant des données d'une cellule à niveaux multiples io par une différence entre des courants de cellules circulant à travers une cellule de mémoire sélectionnée conformément à une intensité constante de courant de lignes de bits et à une tension de ligne de mots ayant une forme d'onde en gradins. En référence à la figure 11B des dessins annexés décrits ci-après, un procédé classique de lecture de données comprend les étapes qui consistent à appliquer des tensions de lignes de mots à une ligne de mots sélectionnée trois fois à intervalles réguliers, et à appliquer des tensions de lignes de mots égales à Vlecture à des lignes de mots non sélectionnées pendant l'opération de lecture. A ce moment, la tension appliquée à la ligne de mots sélectionnée est appliquée séquentiellement d'une haute tension à une basse tension. En d'autres termes, une tension Vrd3 appliquée entre les états [00] et [01] est de 2 V, une tension Vrd2 appliquée entre les états [01] et [10] est de 1 V et une tension Vrdl appliquée entre les états [10] et [11] est de 0 V. Par ailleurs, une tension (par exemple Vlecture de -6 V) capable de débloquer les cellules de mémoire non sélectionnées est appliquée aux lignes de mots non sélectionnées. Une description détaillée de l'opération de lecture est donnée dans le brevet coréen numéro de publication 10-0204803. Une opération de programmation du dispositif à mémoire flash à cellules à niveaux multiples est exécutée par l'application d'une tension de programme prédéterminée (par exemple 14 V à 19 V) à la grille de la cellule de mémoire sélectionnée en utilisant l'effet tunnel F-N, puis par l'application d'une tension de masse Vss à la ligne de bits. Une tension Vcc d'alimentation en énergie est appliquée à la ligne de bits pour empêcher la programmation. Sula tension de programme et la tension de masse Vss sont appliquées respectivement à la ligne de mots et à la ligne de bits de la cellule de mémoire sélectionnée, un champ électrique relativement élevé est appliqué entre une grille flottante et un canal de la Zo cellule de mémoire. Du fait du champ électrique, des électrons du canal passent à travers une couche d'oxyde formée entre la grille flottante et le canal, en sorte qu'un effet tunnel s'y produit. De cette manière, une tension de seuil de la cellule de mémoire programmée par i5 une accumulation des électrons dans la grille flottante est augmentée. La figure 12 des dessins annexés et décrits ci-après est un schéma qui illustre une opération de programmation selon la technique connexe. Conformément à la technique connexe, l'opération de programmation est exécutée trois fois pour atteindre l'état de stockage de données montré sur la figure 12. Par exemple, si l'état souhaité est [00], la programmation est obtenue en passant par des étapes 1, 2 et 3, et si l'état souhaité est [01], la programmation est obtenue en passant par les étapes 1 et 2 et la prévention du programme. Une description détaillée de l'opération de programmation est donnée dans le brevet coréen numéro de publication 10-0204803 précité. Les formes de réalisation de l'invention concernent des limitations de l'art antérieur. Des formes de réalisation de l'invention ont donc trait à des dispositifs à mémoire flash qui évitent substantiellement un ou plusieurs problèmes de limitations et inconvénients de la technique connexe. Les formes de réalisation de l'invention procurent des dispositifs à mémoire flash et des procédés pour leur programmation, dans lesquels l'efficacité des opérations de lecture et de programmation est améliorée et, en particulier, le temps des opérations de programmation est réduit. L'invention sera décrite plus en détail en regard des 5 dessins annexés à titre d'exemples nullement limitatifs et sur lesquels: La figure 1 est un schéma simplifié illustrant une matrice de cellules de mémoire d'un dispositif à mémoire flash de type NON-ET selon une forme de réalisation de lo l'invention. La figure 2 est schéma simplifié d'un dispositif à mémoire flash à cellules à niveaux multiples selon une forme de réalisation de l'invention. La figure 3 est un schéma d'un circuit d'un 15 dispositif à mémoire flash à cellules à niveaux multiples selon une forme de réalisation de l'invention. La figure 4 est un diagramme qui illustre des états de stockage de données d'une cellule à niveaux multiples selon une forme de réalisation de l'invention. La figure 5 est un digramme des temps qui illustre des tensions qui sont appliquées à une ligne de mots pendant une opération de lecture selon une forme de réalisation de l'invention. La figure 6 est un diagramme des temps d'une opération de lecture de bits de poids faible LSB dans un dispositif à mémoire flash selon une forme de réalisation de l'invention. La figure 7 est un diagramme des temps d'une opération de lecture de bits de poids fort MSB dans un dispositif à mémoire flash selon une forme de réalisation de l'invention. La figure 8A est un diagramme qui illustre un procédé pour une opération de programmation selon une forme de réalisation de l'invention. La figure 8B est un diagramme des temps qui illustre des tensions qui sont appliquées à une ligne de mots pendant une opération de programmation selon une forme de réalisation de l'invention. La figure 9 est un diagramme des temps d'une opération de programmation de bits de poids faible LSB d'un dispositif à mémoire flash selon une forme de réalisation de l'invention. La figure 10 est un diagramme des temps d'une opération de programmation de bits de poids fort MSB d'un dispositif à mémoire flash selon une forme de réalisation de l'invention. La figure 11A est un diagramme qui illustre des états de stockage de données d'une cellule à niveaux multiples selon une technique connexe. La figure 11B est un diagramme des temps qui illustre des tensions qui sont appliquées à une ligne de mots pendant une opération de lecture d'une cellule à niveaux multiples selon une technique connexe. La figure 12 est un diagramme qui illustre une opération de programmation selon une technique connexe. On se référera maintenant en détail aux formes préférées de réalisation de l'invention dont des exemples sont illustrés sur les dessins d'accompagnement. 1. Dispositif à mémoire flash La figure 1 est un schéma d'un circuit d'une matrice 25 de cellules de mémoire selon une forme de réalisation de l'invention. En référence à la figure 1, la matrice de cellules de mémoire comprend des lignes de mots WLO à WLm, des lignes de bits BLO à BLn, et des cellules de mémoire MO et Mm. Un décodeur 300 de rangées, qui est connecté à une ligne SSL de sélection de chaîne, aux lignes de mots WLO à WLm et à une ligne GSL de sélection de masse, est placé sur un côté de la matrice 100 de la cellule de mémoire. Le décodeur 300 de rangées sélectionne une ligne de mots par une combinaison d'un décodage qui sélectionne un bloc de mémoire correspondant et d'un décodage qui sélectionne une ligne de mots dans la chaîne sélectionnée conformément à une adresse qui lui est fournie. De plus, un tampon 200 de page connecté aux multiples lignes de bits BL0 à BLn est placé sur un autre côté de la matrice 100 de cellules de mémoire. Un dispositif 290 de commande de tampon de page destiné à fournir un signal de commande, un signal de restauration et un signal de charge au tampon 200 de page et un circuit 280 générateur de tension destiné à fournir une tension variable au tampon Io 200 de page sont placés de part et d'autre du tampon de page. La figure 2 est un schéma fonctionnel simplifié du dispositif à mémoire flash selon une forme de réalisation de l'invention. On décrira cidessous la fonction de chaque bloc en référence à la figure 2. La matrice 100 de cellules de mémoire stocke des bits de données qui sont d'au moins deux bits. Les bits de données sont classés en un bit de donnée inférieur et un bit de donnée supérieur. Ici, le bit de donnée inférieur est défini par "LSB" et le bit de donnée supérieur est défini par "MSB". Par exemple, pour des bits de données de [10], un bit de donnée supérieur "1" est le bit MSB et un bit de donnée inférieur "0" est le bit LSB. Les bits de données sont divisés conformément aux distributions de tensions de seuil de la cellule de mémoire. Dans cette description, on suppose que [11] est d'une valeur de 2,7 V ou moins, [10] est d'une valeur de 0,3 V à 0,7 V, [00] est d'une valeur de 1,3 V à 1,7 V, et [01] est d'une valeur de 2,3 V à 2,7 V par rapport aux distributions de tensions de seuil correspondant aux bits de données. Bien sûr, ces valeurs ne constituent que des exemples de plages de tension, et les formes de réalisation de l'invention sont tout aussi efficaces avec d'autres plages. Une tension VWL de ligne de mots déterminée lors des opérations de lecture et de programmation est appliquée à des lignes de mots sélectionnées ou non sélectionnées de la matrice 100 de cellules de mémoire. La tension VWL de ligne de mots est fournie depuis un circuit 270 d'alimentation en tension de ligne de mots. Les niveaux de tension de ligne de mots seront décrits en détail ci- dessous dans une section concernant les opérations de lecture et de programmation. Un circuit de précharge 250 est activé en réponse à un premier signal de charge PLOAD à une ligne de bits de précharge ou à n ud E. De plus, le circuit de précharge io 250 commande des premier et deuxième circuits à verrouillage 210 et 220 conformément à un niveau du n ud E. Le premier circuit à verrouillage 210 est commandé par des premier et second signaux de verrouillage LCH_MR et LCHMS et le second circuit à verrouillage 220 est _ commandé par un troisième signal de verrouillage LCH_S. En utilisant un circuit 240 d'alimentation en tension de ligne de bits, on programme les bits de données verrouillés dans la cellule de mémoire 100 ou on extrait les bits de données programmés. Un troisième circuit à verrouillage 230 est commandé par un second signal de charge PCLOAD, reçoit et délivre en sortie le bit de donnée stocké dans le premier circuit à verrouillage 210 ou décharge les données d'entrée vers le premier circuit à verrouillage 210. Le circuit 240 d'alimentation en tension de bit est commandé par les bits de données verrouillés dans les premier et deuxième circuits à verrouillage 210 et 220, ou par des premier et second signaux de commande VBL1 et VEL2. Le circuit 240 d'alimentation en tension de ligne de bits fournit l'une quelconque de la tension Vcc d'alimentation en énergie, de la tension Vss de masse et d'une tension variable BLPWR à la ligne de bits, réalisant ainsi la programmation de la cellule de mémoire. Le circuit générateur de tension 280 génère la tension variable BLPWR. La tension variable BLPWR est utilisée dans l'opération de programmation de MSB et a une valeur comprise entre la tension Vcc d'alimentation en énergie et la tension de masse Vss. Le dispositif 290 de commande de tampon de page fournit les signaux de commande s et analogues aux blocs respectifs du tampon de page. On décrira en détail ci-après, en référence à la figure 3, des structures de circuits internes respectives des premier à troisième circuits à verrouillage 210, 220 et 230, du circuit 240 d'alimentation en tension de ligne de bits et du circuit de précharge 250 selon une forme de réalisation de l'invention, et leurs principes de fonctionnement. La figure 3 est un schéma d'un circuit d'un exemple de tampon de page 200 selon des formes de réalisation de 1.5 l'invention. Pendant l'opération de lecture, le tampon de page 200 sert de moyen pour détecter et amplifier une information appliquée sur une ligne de bits correspondante. Pendant l'opération de programmation, le tampon de page 200 sert de moyen pour verrouiller des données extérieures et pour fournir une tension correspondant aux données verrouillées à la ligne de bits correspondante. De plus, pendant l'opération de vérification de la programmation, le tampon de page 200 sert de moyen pour vérifier si la programmation est bien exécutée ou non. En référence à la figure 3, le tampon 200 de page comprend les trois circuits à verrouillage 210, 220 et 230, qui exécutent des fonctions différentes les unes des autres, et le circuit 240 d'alimentation en tension de ligne de bits destiné à fournir une tension prédéterminée à la ligne de bits. Les circuits à verrouillage 210, 220 et 230 comprennent des bascules Ql, Q2 et Q3, respectivement, pourvues chacune de deux inverseurs montés en connexion croisée entre eux. Des moyens pour initialiser des noeuds A, D et G avant les opérations de lecture et de programmation sont prévus aux noeuds A, D et 2857495 10 G des bascules Q1, Q2 et Q3. Les grilles des transistors T2, T18 et T21 de type NMOS, sont initialisées à un niveau bas "L" si des signaux de restauration RESET M, RESET_S et RESET C prennent un niveau haut (H). Par ailleurs, des _ circuits de restauration de bascule destinés à positionner les autres noeuds B, C et F à un niveau bas (L), sont prévus aux autres noeuds B, C et F des bascules Q1, Q2 et Q3. Les circuits de restauration des bascules seront décrits ci-dessous. lo Le premier circuit à verrouillage 210 comprend la première bascule Q1 et le premier circuit de restauration de bascule. La première bascule QI est formée de deux inverseurs et le premier circuit de restauration de bascule est formé de transistors T3 à T7 de type NMOS. Un trajet de courant T5-T6-T7 ou T5-T3-T4 des transistors NMOS T3 à T7 est connecté en séries entre le noeud C de la première bascule Q1 et la masse GND. La grille du transistor NMOS T5 est connectée au noeud E. Les grilles des transistors T3 et T6 sont connectées aux noeuds B et A de la deuxième bascule Q2, respectivement, et les transistors T3 et T6 sont débloqués ou bloqués conformément à chaque noeud de la deuxième bascule Q2. Le premier signal de verrouillage LCH_MR et le deuxième signal de verrouillage LCH MS sont appliqués aux grilles des transistors NMOS T4 et T7, respectivement. Le deuxième circuit à verrouillage 220 comprend la deuxième bascule Q2 et le deuxième circuit de restauration de bascule. La deuxième bascule Q2 est formée de deux inverseurs et le deuxième circuit de restauration de bascule est formé de transistors T15 à T17 de type NMOS. Un trajet de courant T15-T16-T17 des transistors NMOS T15 à T17 est connecté en séries entre le noeud B de la deuxième bascule Q2 et la masse GND. La grille du transistor NMOS T15 est connectée au noeud E. Le troisième circuit de verrouillage LCH_S est appliqué aux grilles des transistors NMOS T16 et T17. Le troisième circuit à verrouillage 230 comprend la troisième bascule Q3 et le troisième circuit de restauration de bascule. La troisième bascule Q3 est formée de deux inverseurs et le troisième circuit de restauration de bascule est formé de transistors T19 et T20 de type NMOS. Un trajet de courant des transistors T19 et T20 est connecté en séries entre le n ud F de la troisième bascule Q3 et la masse GND. La grille du transistor NMOS T19 est connectée au n ud D du premier Io circuit à verrouillage 210 et le transistor T19 est donc débloqué ou bloqué en fonction du n ud D. Le deuxième signal de n ud PCLOAD est appliqué à la grille du transistor NMOS T20. Si le deuxième signal de charge PCLOAD est d'un niveau haut dans un état dans lequel le n ud D est à un niveau haut haut, le n ud F est positionné à un niveau bas. Le troisième circuit à verrouillage 230 supporte également une fonction d'antémémoire. La fonction d'antémémoire consiste à charger les données suivantes à programmer dans le tampon de page tandis que les données chargées précédentes sont programmées, ou à délivrer en sortie vers l'extérieur des données captées tout en captant les données. En référence à la figure 3, le circuit 240 d'alimentation en tension de la ligne de bits comprend une première ligne d'alimentation en tension destinée à empêcher l'opération de programmation en formant un trajet de courant T8-T9 entre le n ud E et la tension Vcc d'alimentation en énergie, une deuxième ligne d'alimentation en tension destinée à exécuter l'opération de programmation en formant un trajet de courant T10-T11-T12 entre le n ud E et une tension Vss de masse de référence, et une troisième ligne d'alimentation en tension destinée à exécuter l'opération de programmation en formant un trajet de courant T10-T13-T14 entre le n ud E et la tension variable BLPWR. La première ligne d'alimentation en tension est 2857495 12 formée avec deux transistors T8 et T9 de type PMOS. Le transistor PMOS T8 est commandé par le noeud C et le transistor PMOS T9 est commandé par un premier signal de commande VBL1. Si le premier signal de commande VBL1 est positionné à un niveau bas lorsque le noeud C est à niveau bas, la tension Vcc d'alimentation en énergie est appliquée à la ligne de bits afin d'empêcher la programmation sur la cellule de mémoire sélectionnée. En d'autres termes, la tension de seuil de la cellule de Io mémoire n'est pas modifiée. La deuxième ligne d'alimentation en tension est formée à l'aide de trois transistors T10, T11 et T12 de type NMOS. Les transistors T10, T11 et T12 de type NMOS sont commandés par le n ud C, le noeud B et un second i5 signal de commande VBL2, respectivement. Si le second signal de commande VBL2 est positionné à un niveau haut dans un état dans lequel les noeuds s C et B sont tous à un niveau haut, la tension Vss de référence de masse est appliquée à la ligne de bits afin que la programmation de la cellule de mémoire sélectionnée soit réalisée. En d'autres termes, la tension de seuil de la cellule de mémoire augmente. La troisième ligne d'alimentation en tension est formée à l'aide de trois transistors T10, T13 et T14 de type NMOS. Les transistors T10, T13 et T14 de type NMOS sont commandés par le niveau du noeud C, le niveau du noeud A et le second signal de commande VBL2, respectivement. Si le second signal de commande VBL2 est positionné à un niveau haut dans un état dans lequel les noeuds C et A sont 3o tous à un niveau haut, la tension variable BLPWR est appliquée à la ligne de bits de façon que la programmation de la cellule de mémoire sélectionnée soit réalisée. En d'autres termes, la tension de seuil de la cellule de mémoire augmente. Ici, la tension variable BLPWR est une tension qui est appliquée à la ligne de bits par l'intermédiaire de la troisième ligne d'alimentation en tension et une tension qui est appliquée lorsque la cellule de mémoire est programmée d'un niveau [10] à un niveau [00] pendant l'opération de programmation MSB. En référence à la figure 3, il est prévu le circuit de précharge 250 destiné à fournir la tension de précharge à la ligne de bits ou au noeud E. Le circuit de précharge 250 est pourvu d'un transistor T1 de type PMOS et est commandé par le premier signal de charge PLOAD. Si le premier signal de charge PLOAD prend un niveau bas, la tension Vcc d'alimentation en énergie est appliquée au noeud E de manière à débloquer les transistors NMOS T5 et T15 des premier et deuxième circuits de restauration des bascules. On décrira ci-après des opérations de lecture et de programmation du dispositif à mémoire flash selon les formes de réalisation de l'invention, en référence aux dessins d'accompagnement. II. Opération de lecture MLC La figure 4 est un diagramme qui illustre des états de bits de données correspondant à des distributions de tensions de seuil de la cellule de mémoire. Des bits de données respectifs sont modifiés différemment d'un bit par rapport à leurs bits de données adjacents. Par conséquent, en supposant que les bits de données correspondant à la distribution de tension de seuil la plus basse sont [I1], les bits de données deviennent [11], [10], [00] et [01]. La figure 5 est un diagramme qui illustre des niveaux de tension appliqués à la ligne de mots sélectionnée ou non sélectionnée. La tension de la ligne de mots est fournie depuis le circuit 270 d'alimentation en tension de ligne de mots (figure 2). Par exemple, la tension Vrdl de 0 V, la tension Vrd2 de 1 V et la tension Vrd3 de 2 V sont fournies à la ligne de mots sélectionnée lors de l'opération de lecture, et la tension Vlecture de 6 V est fournie à la ligne de mots non sélectionnée. On détermine si la cellule de mémoire est une cellule activée ou une cellule désactivée d'après la tension fournie à la ligne de mots sélectionnée lors de l'opération de lecture. Si la tension de la ligne de mots est supérieure à la tension de seuil, la cellule de mémoire devient la cellule désactivée, pour précharger ainsi la ligne de bits. Si la tension de la ligne de mots est inférieure à la tension de seuil, la cellule de mémoire devient la cellule activée, pour décharger ainsi la ligne de bits. En référence à la figure 5, l'opération de lecture est divisée en une opération de lecture LSB et une opération de lecture MSB. Pendant l'opération de lecture LSB, la tension Vrd3 (par exemple 2 V) est appliquée à la ligne de mots sélectionnée, puis la tension Vrdl (par exemple 0 V) est appliquée. Dans le même temps, la tension Vlecture (par exemple 6 V) est appliquée à la ligne de mots non sélectionnée. Pendant l'opération de lecture MSB, la tension Vrd2 (par exemple 1 V) est appliquée à la ligne de mots sélectionnée et la tension Vlecture (par exemple 6 V) et appliquée à la ligne de mots non sélectionnée. Les figures 6 et 7 sont des exemples de diagramme des temps de l'opération de lecture selon des formes de réalisation de l'invention. L'opération de lecture est réalisée en exécutant l'opération de lecture LSB et l'opération de lecture MSB. L'opération de lecture LSB est également réalisée en exécutant une opération de lecture LSB1 et une opération de lecture LSB2 séquentiellement et en délivrant en sortie les données LSB. Pendant l'opération de lecture LSB1, la tension Vrd3 de la ligne de mots est appliquée à la ligne de mots sélectionnée. Pendant l'opération de lecture LSB2, la tension Vrdl de ligne de mots est appliquée à la ligne de mots sélectionnée. L'opération de lecture MSB est exécutée après l'opération de lecture LSB. Pendant l'opération de lecture MSB, la tension de ligne de mots Vrd2 est 2857495 15 appliquée est les données MSB sont délivrées en sortie. Les données de sortie MSB et les données de sortie LSB sont des bits de données qui sont programmées dans la cellule de mémoire. La figure 6 est un diagramme des temps de l'opération de lecture LSB. En référence à la figure 6, tout d'abord, deux bascules Q1 et Q2 sont repositionnées. En d'autres termes, si le premier signal de repositionnement RESET_M et le io second signal de repositionnement RESET_S prennent un niveau haut pour débloquer les transistors NMOS T2 et T18, les n uds A et D sont positionnés à un niveau bas et les n uds B et C sont positionnés à un niveau haut. Etant donné que les noeuds B et C sont au niveau haut, les transistors NMOS T10 et T11 sont débloqués. A ce moment, si le second signal de commande VBL2 prend un niveau haut, le transistor NMOS T12 est débloqué, en sorte que la ligne de bits estdéchargée. Le noeud E est donc positionné à un niveau bas. Si le premier signal de charge PLOAD est positionné à un niveau bas alors que le second signal de commande VBL2 est à un niveau bas, le transistor PMOS Ti est débloqué et le transistor NMOS T12 est bloqué, en sorte que la ligne de bits est préchargée. A ce moment, le n ud E est positionné à un niveau haut. Puis, l'opération de lecture LSBI est exécutée. La tension Vdr3 (par exemple 2 V) est appliquée à la ligne de mots sélectionné et la tension Vlecture (par exemple 6 V) est appliquée à la ligne de mots non sélectionnée. Si les données de la cellule de mémoire sélectionnée sont [01], la distribution de tension de seuil du transistor de la cellule est comprise entre 2,3 V et 2,7 V, en sorte que le transistor de la cellule est bloqué. Par conséquent, le noeud E est maintenu au niveau haut et le transistor NMOS T15 et débloqué. A ce moment, si le troisième signal de verrouillage LCH_S est positionné à un 2857495 16 niveau haut, les transistors NMOS T16 et T17 sont débloqués, en sorte que les n uds B et A passent respectivement à un niveau bas et à un niveau haut. Si les données de la cellule de mémoire sélectionnée sont [00], la distribution de tension de seuil du transistor de la cellule est de 1,3 V à 1,7 V, en sorte que le transistor de la cellule est bloqué. Par conséquent, le noeud E passe à un niveau bas. A ce moment, étant donné que le transistor NMOS T15 est bloqué, les noeuds B et A sont maintenus respectivement à un niveau haut et à un niveau bas, même lorsque le troisième signal de verrouillage LCHS est positionné à un niveau haut. Les cas de la cellule de mémoire contenant [101 et [11] sont identiques au cas [00]. Conformément à l'opération de lecture LSB1, la tension Vdr3 est appliquée à la ligne de mots sélectionnée et les données sont stockées dans la deuxième bascule Q2. Lorsque les données des cellules de mémoire sélectionnées sont [il] , [10], [00] et [01], le n ud B de la deuxième bascule Q2 passe à un niveau haut, à un niveau haut, à un niveau haut et à un niveau bas, respectivement. En référence à la figure 6, le premier signal de charge PLOAD est de nouveau positionné à un niveau bas. A ce moment, le transistor PMOS Ti est débloqué de façon que la ligne de bits soit préchargée. Le noeud E est positionné à un niveau haut afin que les transistors NMOS T5 et T15 soient débloqués. Ensuite, l'opération de lecture LSB2 est exécutée. La tension Vrdl (par exemple 0 V) est appliquée à la ligne de mots sélectionnée et la tension Vlecture (par exemple 6 V) est appliquée à la ligne de mots non sélectionnée. Lorsque les données des cellules de mémoire sélectionnées sont [01], [00] et [10], les distributions des tensions de seuil du transistor de la cellule sont de 2,3 V à 2,7 V, de 1,3 V à 1,7 V et de 0,3 V à 0,7 V, respectivement, en sorte que les transistors des cellules 2857495 17 sont bloqués. Par conséquent, le noeud E est maintenu au niveau haut de manière que les transistors NMOS T5 et T15 soient débloqués. A ce moment, si le premier signal de verrouillage LCH_MR est positionné à un niveau haut, le transistor NMOS T4 est également débloqué. Entretemps, les transistors NMOS T16 et T17 sont bloqués car le troisième signal de verrouillage LCHS est à un niveau bas. Par conséquent, le n ud B est maintenu dans l'état précédent. En d'autres termes, le n ud B est à un niveau bas si les données de la cellule de mémoire sélectionnée sont [01] et le noeud B est à un niveau haut si les données de la cellule de mémoire sélectionnée sont [00] ou [10]. Si le noeud B est à un niveau bas, c'est-à-dire si les données de la cellule de mémoire sélectionnée sont [01], le transistor NMOS T3 est bloqué, de manière que le noeud C conserve l'état précédent, c'est-à-dire le niveau haut. Par contre, si le noeud B est à un niveau haut, c'est-à-dire si les données de la cellule de mémoire sélectionnée sont [00] ou [10], le transistor NMOS T3 est débloqué de façon que le noeud C passe à un niveau bas. Conformément à l'opération de lecture LSB2, la tension Vdr3 est appliquée à la ligne de mots sélectionnée et les données sont stockées dans la première bascule Q1. Lorsque les données des cellules de mémoire sélectionnées sont [Il], [10], [00] et [01], le n ud C de la première bascule Ql prend un niveau haut, un niveau bas, un niveau bas, un niveau bas et un niveau haut, respectivement. Le noeud D prend donc un niveau bas, un niveau haut, un niveau haut et un niveau bas, respectivement. En référence à la figure 6, on exécute une opération consistant à délivrer en sortie les données LSB. Premièrement, si le troisième signal de restauration RESET_C est positionné à un niveau haut pour débloquer le transistor NMOS T21, le noeud G prend un niveau bas et le noeud F passe à un niveau haut. Ensuite, si le second signal de charge PCLOAD est positionné à un niveau haut, 2857495 18 le transistor NMOS T20 est débloqué. A ce moment, lorsque le n ud D de la première bascule Ql est à un niveau haut, c'est-à-dire lorsque les données de la cellule de mémoire sélectionnée sont [10] ou [00], le transistor NMOS T19 est débloqué de manière que les noeuds F et G passent à un niveau bas et à un niveau haut, respectivement. Lorsque le noeud D de la première bascule Ql est à un niveau bas, c'est-à-dire lorsque les données de la cellule de mémoire sélectionnée sont [11] ou [01], le transistor NMOS T19 est Io bloqué, en sorte que les n uds F et G sont maintenus à un niveau haut et à un niveau bas, respectivement. Par conséquent, lorsque les données des cellules de mémoire sélectionnées sont [11], [10], [00] et [01], le noeud G de la troisième bascule Q3 prend un niveau bas, un niveau haut, un niveau haut et un niveau bas, respectivement. A ce moment, si un signal de commande d'entrée/sortie DI est positionné à un niveau haut, les données du noeud G sont délivrées en sortie par l'intermédiaire de la ligne de données IO. Un niveau haut, un niveau bas, un niveau bas ou un niveau haut, respectivement, qui sont des données inversées du noeud G, sont extraits vers l'extérieur. Ces données sont égales aux données LSB respectives des cellules de mémoire sélectionnées, c'est-à-dire 1, 0, 0, 1 (II, L, L, II). La figure 7 est un exemple d'un diagramme des temps de l'opération de lecture MSB selon une forme de réalisation de l'invention. A la différence de l'opération de lecture MSB, l'opération de lecture LSB délivre en sortie les données en utilisant uniquement la première bascule Ql. En référence à la figure 7, l'opération de lecture MSB commence avec une étape consistant à restaurer la première bascule Q1. En d'autres termes, si le premier signal de restauration RESET-M prend un niveau haut pour débloquer le transistor NMOS T2, le noeud D est positionné à un niveau bas et le noeud C est positionné à un niveau 2857495 19 haut. Etant donné que le noeud C est au niveau haut, le transistor NMOS T10 est débloqué. A ce moment, si le second signal de commande VBL2 prend un niveau haut, les transistors NMOS T12 et T14 sont débloqués. Entretemps, étant donné que les noeuds A et B de la seconde bascule Q2 sont dans un état inconnu, l'un des transistors NMOS T11 ou T13 est débloqué. La ligne de bits est donc déchargée de façon que le noeud E soit positionné à un niveau bas. Le premier signal de charge PLOAD est positionné à un lo niveau bas. A ce moment, le transistor PMOS Tl est débloqué de façon que la ligne de bits soit préchargée. Le noeud E passe à un niveau haut. Puis, l'opération de lecture MSB est exécutée. La tension Vdr2 (par exemple 1 V) est appliquée à la ligne de mots sélectionnée et la tension Vlecture (par exemple 6 V) est appliquée à la ligne de mots non sélectionnée. Si les données de la cellule de mémoire sélectionnée sont [01] ou [00], les distributions de tensions de seuil du transistor de la cellule sont de 2,3 V à 2,7 V ou de 1,3 V à 1,7 V, respectivement, de manière que le transistor de la cellule soit bloqué. Par conséquent, le noeud E est maintenu au niveau haut et le transistor NMOS T5 est débloqué. A ce moment, si le premier signal de verrouillage LCH_MR et le second signal de verrouillage LCH MS sont positionnés à un niveau haut, les transistors NMOS T4 et T7 sont débloqués. Entretemps, les noeuds A et B de la seconde bascule Q2 sont dans un état inconnu, et l'un des transistors NMOS T3 et T6 est débloqué. Les noeuds C et D sont donc amenés à passer à un niveau bas et à un niveau haut, respectivement. Si les données de la cellule de mémoire sélectionnée sont [10] ou [11], les distributions de tension de seuil du transistor de la cellule sont de 0,3 V à 0,7 ou de -2,7 V ou moins, respectivement, en sorte que le transistor de la cellule est débloqué. En conséquence, le noeud E passe à un niveau bas. A ce moment, étant donné que le transistor NMOS T5 est bloqué, les noeuds C et D sont maintenus respectivement à un niveau haut et à un niveau bas, même lorsque le premier signal de verrouillage LCH_MR et le second signal de verrouillage LCH_MS sont tous deux positionnés à un niveau haut. Conformément à l'opération de lecture MSB, la tension Vdr2 est appliquée à la ligne de mots sélectionnée et les données sont stockées dans la première bascule Q1. Lorsque les données des cellules de mémoire sélectionnées sont [11], [10], [00] et [01], le noeud C de la première bascule Q1 prend un niveau haut, un niveau haut, un niveau bas et un niveau bas, respectivement. Le n ud D prend donc un niveau bas, un niveau bas, un niveau haut et un niveau haut, respectivement. En référence à la figure 7, on exécute un exemple d'opération de sortie des données MSB. Premièrement, si le premier signal de restauration RESET_C est positionné à un niveau haut pour débloquer le transistor NMOS T21, le n ud G prend un niveau bas et le n ud F prend un niveau haut. Ensuite, si le second signal de charge PCLOAD est positionné à un niveau haut, le transistor NMOS T20 est débloqué. A ce moment, si le n ud D de la première bascule Q1 est à un niveau haut, c'est-à-dire si les données stockées sont [00] ou [01], le transistor NMOS T19 est débloqué de façon que les n uds F et G passent à un niveau bas et à un niveau haut, respectivement. Si le n ud D de la première bascule Q1 est à un niveau bas, c'est-à-dire si les données stockées sont [10] ou [11], le transistor NMOS T19 est bloqué, en sorte que les n uds F et G sont maintenus à un niveau haut et à un niveau bas, respectivement. Par conséquent, lorsque les données des cellules de mémoire sélectionnées sont [11], [10], [00] et [01], le n ud G de la troisième bascule Q3 prend un niveau bas, un niveau bas, un niveau haut et un niveau haut, respectivement. A ce moment, si un signal de commande d'entrée/sortie DI est positionné à un niveau haut, les données du noeud G sont délivrées en sortie par la ligne de données IO. Un niveau haut, un niveau haut, un niveau bas et un niveau bas, respectivement, qui sont des données inversées du noeud G, sont extraits. Ces données sont égales aux données MSB des cellules de mémoire sélectionnées, c'est-à-dire 1, 1, 0 et 0 (H, H, L et L). Par conséquent, l'opération de lecture MLC est réalisée par l'exécution séquentielle de l'opération de io lecture des données LSB (1, 0, 0, 1) et de l'opération de lecture de données MSB (1, 1, 0, 0). Les données de la cellule à niveaux multiples peuvent être détectées à partir des résultats. III. Opération de programmation MLC L'opération de programmation comprend le processus de programmation par injection d'électrons dans les grilles flottantes des transistors des cellules de mémoire sélectionnées, et un processus de vérification de programmation consistant à vérifier si les transistors des cellules de mémoire programmées atteignent des tensions de seuil souhaitées. L'opération de programmation est exécutée de façon répétée jusqu'à ce que les cellules de mémoire sélectionnées atteignent les niveaux de tension de seuil souhaités. Pour plus de commodité, on ne décrira pas l'opération répétitive de programmation, et on suppose que la cellule de mémoire sélectionnée atteint le niveau de tension de seuil souhaité par une programmation effectuée en une seule opération. Pour programmer les cellules de mémoire sélectionnées en utilisant l'effet tunnel F-N, un programme prédéterminé (par exemple 14 V à 19 V) est appliqué aux grilles des cellules de mémoire correspondantes, et une tension de masse Vss ou bien une tension prédéterminée est appliquée aux canaux des cellules de mémoire correspondantes. Par conséquent, un champ électrique élevé est formé entre les grilles flottantes et les canaux des cellules de mémoire devant être programmées. Le champ électrique produit un effet tunnel par lequel les électrons des canaux passent à travers les couches d'oxyde entre les grilles flottantes et les canaux. Les électrons s'accumulent donc aux grilles flottantes des cellules de mémoire correspondantes, et les tensions de seuil des cellules de mémoire devant être programmées augmentent du fait de l'accumulation des électrons aux grilles flottantes. Par ailleurs, la tension Vcc d'alimentation en énergie est appliquée aux canaux des io cellules de mémoire correspondantes afin d'empêcher la programmation. La figure 8A illustre graphiquement un concept du procédé de programmation selon des formes de réalisation de l'invention. Le procédé de programmation décrit est 1.5 divisé en une opération de programmation LSB et une opération de programmation MSB. Premièrement, l'opération de programmation LSB est effectuée pour modifier uniquement les bits LSB. En d'autres termes, si les données LSB devant être programmées sont "0", l'opération de programmation LSB fait passer les données stockées de [11] à [10]. Autrement, les données stockées restent à [11]. Ensuite, l'opération de programmation MSB détecte le résultat de l'opération de programmation LSB et effectue la programmation MSB en fonction du résultat détecté. Si une donnée LSB de "1" est détectée et que la donnée MSB devant être programmée est "0", l'opération de programmation MSB fait passer l'état de stockage des données de [10] à [01]. Autrement, l'état de stockage des données reste à [11]. Si une donnée LSB de "0" est détectée et que la donnée MSB devant être programmée est "0", l'opération de programmation MSB fait passer l'état de stockage de données de [10] à [00]. Autrement, l'état de stockage de données reste à [10]. Conformément à ce procédé de programmation de formes de réalisation de l'invention, tous les états de bits de données peuvent être programmés par seulement deux opérations de programmation. La figure 8B est un diagramme qui illustre les niveaux de tension qui sont appliqués aux lignes de mots sélectionnées ou non sélectionnées pendant l'opération de programmation. La tension de ligne de mots est fournie depuis le circuit 270 d'alimentation en tension de ligne de mots (figure 2). Dans l'opération de programmation, la tension appliquée à la ligne de mots lors de l'opération de programmation LSB est différente de la tension appliquée à la ligne de mots lors de l'opération de programmation MSB. Par exemple, la tension VPGM1 appliquée à la ligne de mots lors de l'opération de programmation LSB part de 14 V, et la tension VPGM2 appliquée à la ligne de mots lors de l'opération de programmation MSB part de 16 V. La tension Vpass de 10 V est appliquée à la ligne de mots non sélectionnée. Les figures 9 et 10 montrent des exemples de diagramme des temps d'une opération de programmation selon des formes de réalisation de l'invention. L'opération de programmation est divisée en la période de programmation LSB et la période de programmation MSB. L'opération de programmation LSB est réalisée en fournissant la première tension de ligne de bits (Vcc ou données LSB programmation MSB est réalisée en extrayant les données LSB programmées et en fournissant la seconde tension de ligne de bits (Vss ou BLPWR) à la ligne de bits conformément aux données LSB lues. Une caractéristique remarquable de l'opération de programmation selon les formes de réalisation de l'invention est que la tension variable BLPWR est appliquée à la ligne de bits lors de l'opération de programmation MSB et l'opération de programmation est menée à bien par une programmation LSB en une opération et une programmation MSB en une opération. L'opération de programmation LSB et l'opération de programmation MSB Vss) à la ligne de bits conformément devant être programmées. L'opération aux de 2857495 24 seront décrites ci-dessous en détail en référence aux figures 9 et 10. La figure 9 est un diagramme des temps d'un exemple d'opération de programmation LSB. L'opération de programmation LSB commence avec un processus de restauration de la troisième bascule Q3 (figure 3). Si le troisième signal de restauration RESET_C est positionné à un niveau haut pour débloquer le transistor NMOS T21, les noeuds G et F passent à un niveau bas et à un niveau haut, respectivement. Ensuite, si le signal de commande d'entrée/sortie Dl est positionné à un niveau haut pour débloquer le transistor NMOS T23, des données extérieures sont chargées dans le noeud G. Par exemple, lorsque les données devant être programmées dans les cellules de mémoire sélectionnées sont [11], [10], [00] et [01], les données chargées dans le noeud G sont [00], [01], [11] et [10], respectivement. Ici, étant donné que les données LSB sont 0, 1, 1 et 0, un niveau bas, un niveau haut, un niveau haut et un niveau bas, respectivement sont chargés sur le noeud G. Le noeud F prend donc un niveau haut, un niveau bas, un niveau bas et un niveau haut, respectivement. Ensuite, le premier signal de charge PLOAD est positionné à un niveau bas. Le transistor PMOS Tl est débloqué et la ligne de bits est donc préchargée. Le noeud E est positionné à un niveau haut pour débloquer ainsi le transistor NMOS T5. A ce moment, si le premier signal de verrouillage LCHMR et le second signal de verrouillage LCH MS sont positionnés à un niveau haut, les transistors NMOS T4 et T17 sont débloqués. Etant donné que les noeuds A et B de la seconde bascule Q2 sont dans un état inconnu, l'un des transistors NMOS T3 ou T6 est débloqué. Les noeuds C et D prennent donc un niveau bas et un niveau haut, respectivement. Une opération de vidage des données du noeud G vers le noeud C est exécutée. Si un signal de commande de vidage 2857495 25 PDUMP est positionné à un niveau haut, le transistor NMOS T25 est débloqué. Lorsque les données devant être programmées dans les cellules de mémoire sélectionnées sont [00] ou [10] , les données LSB chargées sur le n ud G sont à un niveau haut, en sorte que le transistor NMOS T24 est débloqué. Par conséquent, les n uds D et C prennent un niveau bas et un niveau haut, respectivement. Lorsque les données devant être programmées dans les cellules de mémoire sélectionnés sont [01] ou [11], les données LSB chargées sur le noeud G sont à un niveau bas, en sorte que le transistor NMOS T24 est bloqué. Les noeuds D et C sont donc maintenus à un niveau haut et à un niveau bas, respectivement. Conformément au résultat de l'opération de vidage i5 décrite ci-dessus, lorsque les données devant être programmées dans les cellules de mémoire sélectionnées sont [11], [10], [00] et [01], les données LSB vidées vers le n ud C sont 0, 1, 1 et 0, respectivement. En référence à la figure 9, on exécute un processus de programmation des données LSB. Si le premier signal de commande VBL1 et le second signal de commande VBL2 sont positionnés respectivement à un niveau bas et à un niveau haut, le transistor PMOS T19 et les transistors NMOS T12 et T14 sont débloqués. Etant donné que les noeuds A et B de la seconde bascule Q2 sont dans un état inconnu, l'un des transistors NMOS T11 ou T13 est débloqué. A ce moment, si le noeud C est à un niveau haut, le transistor NMOS T10 est débloqué pour faire passer ainsi le noeud E à un niveau bas. Cependant, si le noeud C est à un niveau bas, le transistor PMOS T8 est débloqué pour maintenir le noeud E à un niveau haut. Par conséquent, lorsque les données devant être programmées dans les cellules de mémoire sélectionnées, sont [11], [10] , [00] et [01], le noeud E prend un niveau haut, un niveau bas, un niveau bas et un niveau haut, respectivement. Etant donné que la ligne de bits est chargée à la tension d'alimentation en énergie lorsque le noeud E est à un niveau haut, la programmation de la cellule de mémoire est empêchée. Ce n'est que lorsque le n ud E est à un niveau bas, c'est-à-dire à la tension de référence de masse, que la programmation de la cellule de mémoire correspondante est exécutée. A ce moment, une tension d'environ 14 V est appliquée à la ligne de mots. La tension appliquée à la ligne de mots est élevée lo séquentiellement d'environ 0,2 V à 0,3 V conformément au résultat de la vérification des états de programmation. Par conséquent, si les données devant être programmées sont [10] ou [00], la programmation est exécutée et la tension de seuil de la cellule de mémoire est augmentée. Par exemple, les distributions de tension de seuil des cellules de mémoire prennent une valeur allant de 0,3 V à 0,7 V. Cependant, si les données devant être programmées sont [11] ou [01], la programmation est empêchée, et on maintient ainsi un état dans lequel les distributions de tension de seuil sont effacées, par exemple un état de - 2,7 V ou moins. On exécute ensuite l'opération de vérification de la programmation. L'opération de détection pour la vérification de la programmation est pratiquement similaire à l'opération de lecture décrite ci-dessus. Cependant, pour assurer une marge entre une tension de la ligne de mots sélectionnée et la tension de seuil pendant l'opération de lecture, une tension supérieure d'un niveau prédéterminé (par exemple 0,2 V à 0,3 V) à celle appliquée pendant l'opération de lecture est appliquée à la ligne de mots sélectionnée. La figure 10 est un diagramme des temps de l'opération de programmation MSB. L'opération de programmation MSB commence avec une étape de restauration de la troisième bascule Q3. Si le troisième signal de restauration RESET_C est positionné à 2857495 27 un niveau haut pour débloquer le transistor NMOS T21, les n uds G et F prennent un niveau bas et un niveau haut, respectivement. Ensuite, si le signal de commande d'entrée/sortie DI est positionné à un niveau haut et que, par conséquent, le transistor NMOS T23 est débloqué, des données extérieures sont chargées dans le noeud G. Par exemple, si les données devant être programmées dans les cellules de mémoire sélectionnées sont [11], [10], [00] et [01], les données lo chargées dans le n ud G deviennent [00], [01], [11] et [10], respectivement. Ici, étant donné que les données MSB sont 0, 0, 1 et 1, un niveau bas, un niveau bas, un niveau haut et un niveau haut, respectivement, sont chargés au noeud G. Le n ud F est donc positionné à un niveau haut, un niveau haut, un niveau bas et un niveau bas, respectivement. Puis, le premier signal de charge PLOAD prend un niveau bas. A ce moment, le transistor PMOS Tl est débloqué et la ligne de bits est préchargée. Le noeud E est positionné à un niveau haut pour débloquer le transistor NMOS T5. A ce moment, si le premier signal de verrouillage LCH_MR et le second signal de verrouillage LCH MS sont positionnés à un niveau haut, les transistors NMOS T4 et T7 sont débloqués. Etant donné que les n uds A et B de la seconde bascule Q2 sont dans un état inconnu, l'un des transistors NMOS T3 ou T6 est débloqué. Les noeuds C et D sont donc positionnés à un niveau bas et à un niveau haut, respectivement. On exécute ensuite une opération de vidage de données du noeud G vers le noeud C. Si le signal de commande de vidage PDUMP est positionné à un niveau haut, le transistor NMOS T25 est débloqué. Si les données devant être programmées dans les cellules de mémoire sélectionnées sont [01] ou [00], le transistor NMOS T24 est débloqué, car la donnée MSB chargée sur le noeud G est "1", c'est-à-dire un niveau haut. En conséquence, les 2857495 28 noeuds D et C sont amenés à passer à un niveau bas et à un niveau haut, respectivement. Par ailleurs, si les données devant être programmées dans les cellules de mémoire sélectionnées sont [10] ou [11], le transistor NMOS T24 est bloqué car toutes les données MSB chargées sur le noeud G sont "0", c'est-à-dire un niveau bas. Les noeuds D et C sont donc maintenus à un niveau haut et à un niveau bas, respectivement. Conformément au résultat de l'opération de vidage décrite ci-dessus, si les données devant être programmées dans les cellules de mémoire sélectionnées sont [11], [10], [00] et [01], les données MSB vidées sur le noeud C sont 0, 0, 1 et 1, respectivement. En référence à la figure 10, on exécute un processus de lecture des données de cellules de mémoire stockées par l'opération de programmation LSB. Les données lues sont stockées dans la seconde bascule Q2. Avant l'opération de lecture, le second signal de restauration RESET_S est positionné à un niveau haut de manière que les noeuds A et B prennent un niveau bas et un niveau haut, respectivement. Si la cellule de mémoire est dans un état programmé par l'opération de programmation LSB, le n ud E prend un état haut. Si la cellule de mémoire est dans un état effacé, le noeud E prend un niveau bas. Si le troisième signal de verrouillage LCH_S est positionné à un niveau haut, les transistors NMOS T16 et T17 sont débloqués. A ce moment, les noeuds A et B sont déterminés en fonction des états du n ud E. Si le noeud E est à un niveau haut, le transistor NMOS T15 est débloqué de manière que le noeud B passe à un niveau bas. Si le noeud E est à un niveau bas, le transistor NMOS T15 est bloqué de façon que le noeud B soit maintenu à un niveau haut. Par conséquent, si les données devant être programmées sont [11], [10], [00] et [01], le noeud B prend un niveau haut, un niveau bas, un niveau bas et un niveau haut, respectivement. On exécute ensuite l'opération de programmation MSB. Si le premier signal de commande VBL1 et le second signal de commande VBL2 sont respectivement positionnés à un niveau bas et à un niveau haut, le transistor PMOS T9 et les transistors NMOS T12 et T14 sont débloqués. Premièrement, si les données devant être programmées sont [01], le résultat de l'opération de programmation LSB est l'état effacé (par exemple un état dans lequel la distribution de tension de seuil est de 2, 7 V ou moins). Etant donné que les noeuds B et C sont à un niveau haut, les transistors NMOS T10 et T11 sont débloqués de manière que le n ud E prenne la tension de référence de masse. En conséquence, la cellule de mémoire correspondante est suffisamment programmée, en sorte que la distribution de tension de seuil prend une valeur d'environ 2,3 V à 2,7 V. En d'autres termes, le résultat de l'opération de programmation MSB est que les données stockées prennent un état [01]. Deuxièmement, si les données devant être programmées sont [00], le résultat de l'opération de programmation LSB est l'état programmé (par exemple un état dans lequel la distribution de tension de seuil est de 0, 3 V à 0,7 V). Etant donné que les n uds B et A sont respectivement à un niveau bas et à niveau haut, le transistor NMOS T13 est débloqué. Etantdonné que le n ud C est à niveau haut, le transistor NMOS T10 est débloqué de manière que le n ud E ait une tension prédéterminée BLPWR comprise entre la tension Vcc d'alimentation en énergie et la tension de masse Vss. La cellule de mémoire correspondante est donc légèrement programmée, de manière que la distribution de tension de seuil prenne une valeur allant approximativement de 1,3 V à 1,7 V. En d'autres termes, le résultat de l'opération de programmation MSB est que les données stockées prennent un état [00]. Troisièmement, si les données devant être programmées sont [10], le résultat de l'opération de programmation LSB 2857495 30 devient l'état programmé (par exemple un état dans lequel la distribution de tension de seuil va de 0,3 V à 0,7 V). Etant donné que le noeud C est à un niveau bas, le transistor PMOS T8 est débloqué et le transistor NMOS T10 est bloqué. On empêche donc la cellule de mémoire correspondante d'être programmée car le noeud E est positionné à la tension Vcc d'alimentation en énergie, et la distribution de tension de seuil est maintenue dans l'état de 0,3 V à 0,7 V. En d'autres termes, le résultat de l'opération de programmation MSB est que les données stockées prennent un état [10]. Quatrièmement, si les données devant être programmées sont [11], le résultat de l'opération de programmation LSB est l'état effacé (par exemple un état dans lequel la distribution de tension de seuil est de 2, 7 ou moins). Etant donné que le noeud C est à un niveau haut, le transistor PMOS T8 est débloqué et le transistor NMOS T10 est bloqué. Le n ud E est donc positionné à la tension d'alimentation en énergie, en sorte qu'on empêche la cellule de mémoire correspondante d'être programmée et que la distribution de tension de seuil est maintenue dans l'état de -2,7 V, tel quel. En d'autres termes, le résultat de l'opération de programmation MSB est que les données stockées prennent un état [11]. Par conséquent, la cellule à niveaux multiples peut avoir les distributions de tensions de seuil de [11] (-2,7 V ou moins), [10] (0,3 V à 0,7 V), [00] (1,3 V à 1,7 V) ou [0,1] (2,3 V à 2,7 V) de par l'opération de programmation LSB et l'opération de programmation MSB. 3o Selon une forme de réalisation de l'invention, lors de l'opération de programmation de la cellule à niveaux multiples, des données ayant quatre états peuvent être programmées par deux opérations de programmation, réduisant ainsi le temps des opérations de programmation. Comme décrit ci-dessus, l'invention peut être exécutée de nombreuses manières, et il n'est pas nécessaire que l'invention soit mise en pratique exactement comme décrit. En d'autres termes, l'invention peut être matérialisée de nombreuses manières sans s'écarter de ses aspects inventifs. On donne ci-après des exemples détaillés de formes de réalisation de l'invention présentées à titre non limitatif. Un dispositif à mémoire flash selon une forme de réalisation de l'invention programme des bits de données supérieurs et inférieurs dans des cellules de mémoire lors de première et seconde périodes de programmation. Le dispositif à mémoire flash comprend: des lignes de mots et des lignes de bits connectées aux cellules de mémoire; un circuit d'alimentation en tension de ligne de mots connecté aux lignes de mots pour fournir une première tension de ligne de mots VPGM1 aux lignes de mots pendant la première période de programmation et fournir une seconde tension de ligne de mots VPGM2 aux lignes de mots pendant la seconde période de programmation, la seconde tension de ligne de mots VPGM2 étant supérieure à la première tension de ligne de mots; et un circuit d'alimentation en tension de ligne de bits connecté aux lignes de bits, pour fournir une première tension de ligne de bits aux lignes de bits conformément à un bit de donnée inférieur devant être programmé pendant la première période de programmation afin que le bit de donnée inférieur soit programmé, extraire les bits de données inférieurs programmés avant la seconde période de programmation et fournir une seconde tension de ligne de bits aux lignes de bits conformément à un bit de donnée supérieur devant être programmé et au bit de donnée inférieur pendant la seconde période de programmation afin que le bit de donnée supérieur soit programmé. La première tension de ligne de bits est une tension Vcc d'alimentation en énergie si le bit de donnée inférieur devant être programmé est "1", et une tension de masse Vss si le bit de donnée inférieur devant être programmé est "0". La seconde tension de ligne de bits est la tension de masse Vss si le bit de donnée inférieur programmé est "1", et une tension variable BLPWR si le bit de donnée inférieur programmé est "0". s Selon une forme de réalisation de l'invention, un dispositif à mémoire flash comprend: des lignes de mots et des lignes de bits connectées aux cellules de mémoire; un circuit d'alimentation en tension de ligne de mots connecté aux lignes de mots, pour fournir une première io tension de ligne de mots VPGM1 aux lignes de mots pendant la première période de programmation et fournir une seconde tension de ligne de mots VPGM2 aux lignes de mots pendant la seconde période de programmation, la seconde tension de ligne de mots VPGM2 étant supérieure à la première tension de ligne de mots; et un tampon de page connecté aux lignes de bits. Le tampon de page comprend: un premier circuit à verrouillage destiné à verrouiller les bits de données inférieur et supérieur devant être programmés respectivement pendant les première et seconde périodes de programmation; un circuit d'alimentation en tension de ligne de bits destiné à fournir une première tension de ligne de bits aux lignes de bits conformément au bit de donnée inférieur devant être programmé lors de la première période de programmation afin que le bit de donnée inférieur soit programmé, et à fournir une seconde tension de ligne de bits aux lignes de bits conformément au bit de donnée supérieur devant être programmé et au bit de donnée inférieur lu pendant la seconde période de programmation afin que le bit de donnée supérieur soit programmé ; un second circuit à verrouillage destiné à détecter le bit de donnée inférieur programmé avant la seconde période de programmation et à verrouiller le bit de donnée inférieur; et un circuit d'alimentation en tension de ligne de bits destiné à fournir une seconde tension de ligne de bits à la ligne de bits conformément au bit de donnée supérieur devant être programmé et au bit de donnée inférieur lu pendant la seconde période de programmation afin que le bit de donnée supérieur soit programmé. Selon une forme de réalisation de l'invention, le 5 tampon de page comprend en outre un circuit de précharge pour précharger les lignes de bits. La première tension de ligne de bits est une tension Vcc d'alimentation en énergie si le bit de donnée inférieur devant être programmé est "1", et une tension de masse Vss si le bit de donnée inférieur devant être programmé est "0". La seconde tension de ligne de bits est la tension de masse Vss si le bit de donnée inférieur programmé est "1", et une tension variable BLPWR si le bit de donnée inférieur programmé est "0". Ici, la tension variable BLPWR est une tension de ligne de bits qui effectue une programmation d'un état [10] à un état [00] pendant la seconde période de programmation. Chacun des premier et second circuits à verrouillage comprend: une bascule pour verrouiller un bit de donnée; un moyen pour initialiser un noeud de la bascule avant l'opération de programmation; et un circuit de restauration pour repositionner l'autre noeud de la bascule pendant les première et seconde périodes de programmation. Selon une autre forme de réalisation de l'invention, un dispositif à mémoire flash comprend. des lignes de mots et des lignes de bits connectées aux cellules de mémoire; un circuit d'alimentation en tension de ligne de mots connecté aux lignes de mots, pour fournir une première tension de ligne de mots VPGM1 aux lignes de mots pendant une première période de programmation et fournir une seconde tension de ligne de mots VPGM2 aux lignes de mots pendant une seconde période de programmation, la seconde tension de ligne de mots VPGM2 étant supérieure à la première tension de ligne de mots; et un tampon de page connecté aux lignes de bits. Le tampon de page comprend: un circuit de précharge destiné à précharger les lignes de bits avant les première et seconde périodes de programmation; un troisième circuit à verrouillage destiné à charger les bits de données inférieur et supérieur devant être respectivement programmés avant les s première et seconde périodes de programmation; un premier circuit à verrouillage destiné à verrouiller les bits de données inférieur et supérieur devant être respectivement programmés pendant les première et seconde périodes de programmation; un circuit d'alimentation en tension de io ligne de bits destiné à fournir une première tension de ligne de bits à la ligne de bits conformément au bit de donnée inférieur devant être programmé pendant la première période de programmation afin que le bit de donnée inférieur soit programmé ; un second circuit à verrouillage destiné à détecter le bit de donnée inférieur programmé avant la seconde période de programmation et à verrouiller le bit de donnée inférieur; et un circuit d'alimentation en tension de ligne de bits destiné à fournir une seconde tension de ligne de bits aux lignes de bits conformément au bit de donnée supérieur devant être programmé et au bit de donnée inférieur lu pendant la seconde période de programmation afin que le bit de donnée supérieur soit programmé. La première tension de ligne de bits est une tension Vcc d'alimentation en énergie si le bit de donnée inférieur devant être programmé est "1", et une tension de masse Vss si le bit de donnée inférieur devant être programmé est "0". La seconde tension de ligne de bits est la tension de masse Vss si le bit de donnée inférieur programmé est "1", et une tension variable BLPWR si le bit de donnée inférieur programmé est "0". Ici, la tension variable BLPWR est une tension de ligne de bits qui effectue une programmation d'un état [10] à un état [00] pendant la seconde période de programmation. Chacun des premier, deuxième et troisième circuits à verrouillage comprend. une bascule pour verrouiller ufi bit de donnée; un élément d'initialisation destiné à initialiser un noeud de la bascule avant l'opération de programmation; et un circuit de restauration destiné à repositionner l'autre noeud de la bascule pendant les première et seconde périodes de programmation. Une autre forme de réalisation de l'invention procure un procédé pour la programmation par deux bits de bits de données supérieur et inférieur dans des cellules de mémoire pendant les première et seconde périodes de Io programmation. Le procédé comprend la fourniture d'une première tension de ligne de mots aux lignes de mots pendant la première période de programmation et la fourniture d'une première tension de ligne de bits aux lignes de bits conformément à un bit de donnée inférieur devant être programmé, afin que le bit de donnée inférieur soit programmé ; la lecture du bit de donnée inférieur programmé avant la seconde période de programmation; et la fourniture d'une seconde tension de ligne de mots aux lignes de mots pendant la seconde période de programmation et la fourniture d'une seconde tension de ligne de bits aux lignes de bits en fonction du bit de donnée supérieur devant être programmé et du bit de donnée inférieur lu, afin que le bit de donnée supérieur soit programmé. Le procédé comprend en outre les processus qui consistent à précharger les lignes de bits avant les première et seconde périodes de programmation; à charger les bits de données inférieur et supérieur devant être programmés; et à verrouiller les bits de données inférieur et supérieur devant être programmés. Une autre forme de réalisation encore de l'invention procure un procédé pour la lecture par deux bits de bits inférieur et supérieur programmés dans les cellules de mémoire. Ce procédé comprend l'application séquentielle d'une troisième tension de ligne de mots Vrd3 et d'une première tension de ligne de mots Vrdl à une ligne de mots sélectionnée afin de lire le bit de donnée inférieur; l'application d'une deuxième tension de ligne de mots Vrd2 à la ligne de mots sélectionnée pour lire le bit de donnée supérieur; et la combinaison des bits de données inférieur et supérieur lus pour délivrer en sortie à l'extérieur les bits de données programmés. La lecture du bit de donnée inférieur comprend l'application de la troisième tension de ligne de mots Vrd3 à la ligne de mots sélectionnée pour détecter une information sur le bit de donnée inférieur, et la lecture du bit de donnée inférieur déterminé par l'information détectée et par une information se trouvant sur le bit de donnée inférieur, l'information se trouvant sur le bit de donnée inférieur étant détectée par l'application de la première tension de ligne de mots Vrdl à la ligne de mots sélectionnée. Il va de soi que de nombreuses modifications peuvent être apportées au dispositif et au procédé décrits et représentés sans sortir du cadre de l'invention. REVENDICATIONS 1. Dispositif à mémoire flash, dans lequel des bits de données inférieurs et supérieurs sont programmés dans des cellules de mémoire (MO à Mm) lors de première et seconde périodes de programmation, le dispositif étant caractérisé en ce qu'il comporte des lignes de mots (WLO à WLm) et des lignes de bits (BLO à BLn) connectées aux cellules de mémoire; un circuit (270) d'alimentation en tension de ligne io de mots connecté aux lignes de mots et structuré de façon à fournir une première tension de ligne de mots aux lignes de mots pendant la première période de programmation et une seconde tension de ligne de mots aux lignes de mots pendant la seconde période de programmation, la seconde tension de ligne de mots étant supérieure à la première tension de ligne de mots; et un circuit (240) d'alimentation en tension de ligne de bits connecté aux lignes de bits et structuré de façon à fournir, dans la première période de programmation, une première tension de ligne de bits aux lignes de bits conformément à un bit de donnée inférieur devant être programmé, structuré pour extraire le bit de donnée inférieur programmé avant la seconde période de programmation, et structuré pour fournir, dans la seconde période de programmation, une seconde tension de ligne de bits aux lignes de bits conformément à un bit de donnée supérieur devant être programmé et conformément au bit de donnée inférieur lu. 2. Dispositif à mémoire flash selon la revendication 1, caractérisé en ce que la première tension de ligne de bits est une tension Vcc d'alimentation en énergie si le bit de donnée inférieur devant être programmé à "1", et une tension de référence de masse Vss si le bit de donnée inférieur devant être programmé est "0", et la seconde tension de ligne de bits est la tension de référence de masse Vss si le bit de donnée inférieur programmé est "1", et une tension variable BLPWR si le bit de donnée inférieur programmé est "0". 3. Dispositif à mémoire flash selon la revendication 2, caractérisé en ce que la tension variable BLPWR est une tension qui effectue une programmation d'un état [10] à un état [00] dans la seconde période de programmation. 4. Dispositif à mémoire flash, dans lequel des bits io de données inférieurs et supérieurs sont respectivement programmés dans des cellules de mémoire (MO à Mm) pendant des première et seconde périodes de programmation, le dispositif à mémoire flash étant caractérisé en ce qu'il comporte: des lignes de mots (WLO à WLm) et des lignes de bits (BLO à BLn) connectées aux cellules de mémoire; un circuit (270) d'alimentation en tension de ligne de mots connecté aux lignes de mots, pour fournir une première tension de ligne de mots aux lignes de mots pendant la première période de programmation et fournir une seconde tension de ligne de mots aux lignes de mots pendant la seconde période de programmation, la seconde tension de ligne de mots étant supérieure à la première tension de ligne de mots; et un tampon de page (200) connecté aux lignes de bits, le tampon de page comprenant: un premier circuit à verrouillage (210) destiné à verrouiller les bits de données inférieur et supérieur devant être respectivement programmés pendant les première et seconde périodes de programmation, un circuit (240) d'alimentation en tension de ligne de bits destiné à fournir une première tension de ligne de bits aux lignes de bits conformément au bit de donnée inférieur devant être programmé lors de la première période de programmation afin que le bit de donnée inférieur soit programmé, et à fournir une seconde tension de ligne de bits aux lignes de bits conformément à un bit de donnée supérieur devant être programmé et au bit de donnée inférieur lu pendant la seconde période de programmation afin que le bit de donnée supérieur soit programmé, un second circuit à verrouillage (220) destiné à détecter le bit de donnée inférieur programmé avant la seconde période de programmation et à verrouiller le bit de donnée inférieur, et lo un circuit d'alimentation en tension de ligne de bits destiné à fournir une seconde tension de ligne de bits à la ligne de bits conformément au bit de donnée supérieur devant être programmé et au bit de donnée inférieur lu pendant la seconde période de programmation afin que le bit de donnée supérieur soit programmé. 5. Dispositif à mémoire flash selon la revendication 4, caractérisé en ce que le tampon de page comporte en outre un circuit de précharge (250) destiné à précharger les lignes de bits. 6. Dispositif à mémoire flash selon la revendication 4, caractérisé en ce que la première tension de ligne de bits est une tension (Vcc) d'alimentation en énergie si le bit de donnée inférieur devant être programmé est "1", et une tension de masse (Vss) si le bit de donnée inférieur devant être programmé est "0", et la seconde tension de ligne de bits est la tension de masse Vss si le bit de donnée inférieur programmé est "1", et une tension variable (BLPWR) si le bit de donnée inférieur programmé est "0". 7. Dispositif à mémoire flash selon la revendication 6, caractérisé en ce que la tension variable (BLPWR) est une tension qui effectue une programmation d'un état [10] à un état [00] pendant la seconde période de programmation. 8. Dispositif à mémoire flash selon la revendication 4, caractérisé en ce que chacun des premier et second circuits à verrouillage comporte: une bascule pour verrouiller un bit de donnée; un circuit pour initialiser un premier noeud de la bascule avant l'opération de programmation; et un circuit de restauration destiné à repositionner un second noeud de la bascule pendant les première et seconde périodes de programmation. 9. Dispositif à mémoire flash dans lequel des bits de données inférieur et supérieur sont respectivement programmés dans des cellules de mémoire (MO à Mm) pendant des première et secondes périodes de programmation, le dispositif à mémoire flash comportant: des lignes de mots (WLO à WLm) et les lignes de bits (BLO à BLn) connectées aux cellules de mémoire; un circuit (270) d'alimentation en tension de ligne de mots connecté aux lignes de mots, pour fournir une première tension de ligne de mots aux lignes de mots pendant la première période de programmation et fournir une seconde tension de ligne de mots aux lignes de mots pendant la seconde période de programmation, la seconde tension de ligne de mots étant supérieure à la première tension de ligne de mots; et un tampon (200) de page connecté aux lignes de bits, le tampon de page comprenant: un circuit de précharge (250) destiné à précharger les lignes de bits avant les première et seconde périodes de programmation, un premier circuit à verrouillage (210) destiné à verrouiller les bits de données inférieur et supérieur devant être respectivement programmés pendant les première et seconde périodes de programmation, un deuxième circuit à verrouillage (220) destiné à détecter un bit de donnée inférieur programmé avant la seconde période de programmation et à verrouiller le bit de donnée inférieur programmé, un troisième circuit à verrouillage (230) destiné à charger les bits de données inférieur et supérieur devant être respectivement programmés avant les première et s seconde périodes de programmation, et un circuit (240) d'alimentation en tension de ligne de bits destiné à fournir une première tension de ligne de bits à la ligne de bits conformément au bit de donnée inférieur devant être programmé pendant la première période de programmation afin que le bit de donnée inférieur soit programmé, et à fournir une seconde tension de ligne de bits aux lignes de bits conformément au bit de donnée supérieur devant être programmé et au bit de donnée inférieur lu pendant la seconde période de programmation i5 afin que le bit de donnée supérieur soit programmé. 10. Dispositif à mémoire flash selon la revendication 9, caractérisé en ce que la première tension de ligne de bits est une tension (Vcc) d'alimentation en énergie si le bit de donnée inférieur devant être programmé est "1", et une tension de masse (Vss) si le bit de donnée inférieur devant être programmé est "0", et la seconde tension de ligne de bits est la tension de masse Vss si le bit de donnée inférieur programmé est "1", et une tension variable (BLPWR) si le bit de donnée inférieur programmé est "0". 11. Dispositif à mémoire flash selon la revendication 10, caractérisé en ce que la tension variable BLPWR est une tension qui effectue une programmation d'un état [10] à un état [00] pendant la seconde période de programmation. 12. Dispositif à mémoire flash selon la revendication 9, caractérisé en ce que chacun des premier, deuxième et troisième circuits à verrouillage comporte: une bascule pour le verrouillage d'un bit de donnée; un circuit pour initialiser un premier noeud de la bascule avant l'opération de programmation; et un circuit de restauration pour repositionner un second noeud de la bascule pendant les première et seconde périodes de programmation. 13. Procédé pour programmer par 2 bits des bits de données inférieur et supérieur dans des cellules de mémoire (MO à Mm) pendant des première et seconde périodes de programmation, le procédé étant caractérisé en ce qu'il consiste: à fournir une première tension de ligne de mots à des io lignes de mots (WLO à WLm) pendant la première période de programmation et à fournir une première tension de ligne de bits à des lignes de bits (BLO à BLn) conformément au bit de donnée inférieur devant être programmé, afin de programmer le bit de donnée inférieur; i5 à lire le bit de donnée inférieur programmé avant la seconde période de programmation; et à fournir une seconde tension de ligne de mots aux lignes de mots pendant la seconde période de programmation; et à fournir une seconde tension de ligne de bits aux lignes de bits en fonction du bit de donnée supérieur devant être programmé et en fonction du bit de donnée inférieur programmé, afin de programmer le bit de donnée supérieur. 14. Procédé selon la revendication 13, caractérisé 25 en ce qu'il consiste en outre: à précharger les lignes de bits avant les première et seconde périodes de programmation; à charger les bits de données inférieur et supérieur devant être programmés; et à verrouiller les bits de données inférieur et supérieur devant être programmés. 15. Procédé pour la lecture par 2 bits de bits de données inférieur et supérieur programmés dans des cellules de mémoire, caractérisé en ce qu'il consiste: à appliquer séquentiellement une tension de ligne de mots Vrd3 et une tension de ligne de mots Vrdl à une ligne de mots sélectionnée pour extraire le bit de donnée inférieur; à appliquer une tension de ligne de mots Vrd2 à la ligne de mots sélectionnée pour lire le bit de donnée 5 supérieur; et à combiner les bits de données inférieur et supérieur lus afin de délivrer en sortie les bits de données programmés. 16. Procédé selon la revendication 15, caractérisé lo en ce que la lecture du bit de donnée inférieur comprend: l'application de la tension Vrd3 de ligne de mots à la ligne de mots sélectionnée pour détecter une première information sur le bit de donnée inférieur; l'application de la tension de ligne de mots Vrdl à 15 la ligne de mots sélectionnée pour détecter une seconde information sur le bit de donnée inférieur; et la lecture du bit de donnée inférieur déterminé par la première information et la seconde information.