FR 2689295 A1 19931001 FR 9214328 A 19921127 i "Mémoire morte programmable effaçable électriquement munie d'un circuit de contrôle et de correction d'er- reur" La présente invention concerne un dispositif de mémoire à semi-conducteurs non-volatile et, plus particulièrement, une mémoire morte programmable effa- çable électriquement (EEPROM) munie d'un circuit de contrôle et de correction d'erreur, comprenant un ré- seau de mémoires incluant un certain nombre de lignes10 de bits, un certain nombre de cellules de mémoire branchées respectivement aux lignes de bits et à des cellules de parité, et une porte de colonne branchée aux différentes lignes de bits pour charger des don- nées d'entrée dans des mémoires tampons de page res-15 pectives et traiter les données de mémoire dans un élément à octets multiples des données d'entrée, de manière à générer des données de parité constituées d'un certain nombre de bits écrits aléatoirement dans les mémoires tampons de page.20 Le circuit de contrôle et de correction d'erreur (CCE) est généralement utilisé sur des dispo- sitifs de mémoires pour améliorer la fiabilité d'un dispositif de mémoire en contrôlant et en corrigeant les défauts des cellules de mémoire Lorsque le dispo-25 sitif de mémoire utilise le circuit de CCE muni d'un élément à un seul octet, on doit utiliser des cellules de parité dont le nombre est égal à 50 % des cellules de mémoire du dispositif, de sorte que la taille de la puce augmente avec la complexité du dispositif de mé- moire Pour diminuer le nombre des cellules de parité, on a proposé d'utiliser un circuit de CCE muni d'un élément à octets multiples tel qu'un élément à 4 oc- tets, un élément à 8 octets, etc (voir la Publication de Brevet Coréenne No 90-4831 déposée par Hitach Co, Ltd) Si ce circuit effectue une correction d'erreur par un élément à 4 octets, les données de parité doi- vent être de 6 bits ce qui nécessite que le nombre de cellules de parité soit égal à 18,8 % de 32 bits ( 4 octets). Par suite, le circuit de contrôle et de cor- rection d'erreur (CCE) muni d'un élément à octets mul- tiples diminue le nombre des cellules de parité néces- saires en évitant ainsi l'augmentation de la taille de la puce Cependant, la diminution du nombre des cellu- les de parité provoque une chute du rendement de cor- rection La raison en est que le circuit de CCE muni d'un élément à un seul octet peut corriger 1 bit pour 12 bits ( 8 bits de données + 4 bits de parité), tandis qu'un circuit de CCE muni d'un élément à 4 octets peut corriger 1 bit pour 38 bits ( 32 bits de données + 6 bits de parité) En particulier, dans la publication ci-dessus, comme le réseau de mémoire et le réseau de parité sont constitués de cellules de mémoire morte non-volatile, la correction d'erreur est effectuée sans se préoccuper de savoir si les données sont stoc- kées aléatoirement ou simultanément. Cependant, si la EEPROM utilise un circuit de CCE muni d'un élément à octets multiples, les oc- tets multiples doivent être écrits simultanément et les données doivent être introduites dans le bon ordre pour générer les bits de parité corrects, de sorte que les données ne peuvent être écrites aléatoirement. Dans la Demande de Brevet Coréenne No 91- 18832 déposée le 25 Octobre 1991 et dont le demandeur est le même que celui de la présente demande, on pro- pose un dispositif permettant simultanément de générer les données de parité à partir de données introduites aléatoirement, et d'écrire les données de parité dans les cellules en même temps que les données d'entrée. En se référant à la figure 1, les données d'entrée introduites par la mémoire tampon d'entrée de données 280 sont sélectionnées par le sélecteur de données d'entrée 270 par 1 octet, puis finalement chargées par le décodeur de première colonne 160 dans la mémoire tampon de page 110 conformément aux adres- ses d'entrée Ainsi, en réponse aux 128 transitions d'adresses, les données d'entrée des 128 octets sont chargées aléatoirement dans les mémoires tampons de page respectives (une donnée d'entrée à 1 octet est reçue à chaque transition d'adresse) Si les données d'entrée, c'est à dire les 120 octets couvrant une page sont toutes chargées dans les mémoires tampons de page, on commence la période de génération de parité (Tpg) dans laquelle le circuit de génération de colon- ne interne 170 génère automatiquement l'adresse de co- lonne interne correspondant aux 32 ensembles d'une pa- ge En réponse à l'adresse de colonne interne, le dé- codeur de première colonne 160 est déclenché pour ame- ner l'amplificateur de détection de page 500 à lire les données d'un ensemble ( 4 octets) par la porte de colonne 120 Les données de mémoire lues dans l'ampli- ficateur de détection de page 500 sont appliquées à l'entrée du générateur de parité 200 pour générer les données de parité d'écriture de 6 bits qui correspon- dent aux données de mémoire d'entrée d'un ensemble. Les données de parité d'écriture de 6 bits sont char- gées dans la mémoire tampon de page de parité du ré- seau de cellules de parité conformément aux adresses respectives. Ainsi, le processus de lecture d'un ensemble de données chargé dans la mémoire tampon de page 110 du réseau de cellules de mémoire, et de chargement des données de parité dans la mémoire tampon de page de parité, est répété 32 fois pour terminer la période de génération de parité d'une page avec une capacité de stockage de données de 32 ensembles de 128 octets Par suite, les données d'entrée et les données de parité correspondantes sont momentanément stockées dans les mémoires tampons de page Ensuite, dans une période de programmation, les données d'entrée et les données de parité stockées dans la mémoire tampon de page sont simultanément écrites dans des cellules de mémoire respectivement sélectionnées du réseau de cellules de mémoire et du réseau de cellules de parité. Dans une opération de lecture, le décodeur de première colonne 160 répond à une adresse sélec- tionnée amenant l'amplificateur de détection 210 et l'amplificateur de détection de parité 400 à lire res- pectivement les données de mémoire d'un ensemble ( 4 octets = 32 bits) et les données de parité de 6 bits, ces données étant appliquées à l'entrée du générateur de parité 200 pour générer les données de parité de 6 bits qui correspondent aux données de mémoire de l'en- semble Les données de parité sont fournies au déco- deur de correction d'erreur 230 Le signal de sortie du décodeur de correction d'erreur 230 est comparé aux données de mémoire dans la porte OU exclusive du cor- recteur 220, de façon que, si un bit arbitraire des données de mémoire est une erreur, cette erreur soit corrigée par les données de parité de lecture Ensui- te, le signal de sortie du correcteur est décodé par le décodeur d'amplificateur de détection 240 commandé par les signaux de sortie Y 51-Y 54 du décodeur de se- conde colonne 290 Le signal de sortie du décodeur d'amplificateur de détection 240 est finalement sélec- tionné par la mémoire tampon de sortie de données 250 pour produire les données d'un octet. Dans une telle EEPROM classique munie du circuit de CCE ci-dessus, les données introduites de l'extérieur sont transférées par les lignes de bits à la mémoire tampon de page 110 Si les lignes de bits présentent un défaut tel qu'une fuite, les données in- troduites initialement peuvent être chargées avec des distorsions dans la mémoire tampon de page 110 De plus, même s'il n'y a pas d'erreur de données lorsqu'on effectue le chargement dans la mémoire tam- pon de page 110, comme les données momentanément stoc- kées dans la mémoire tampon de page 110 sont lues par l'intermédiaire des lignes de bits pour générer des données de parité, si les lignes de bits destinées à transférer les données ou les cellules de mémoire branchées à celles-ci présentent un défaut, les don- nées transférées de la mémoire tampon de page 110 sont introduites avec des distorsions dans le générateur de parité 200 Par suite, on produit des données de pari- té erronées qui ne concernent pas les données réelles, ce qui empêche le correcteur 220 d'effectuer des cor- rections d'erreur précises. On applique aux drains et aux grilles des cellules de mémoire utilisées dans la EEPROM, une hau- te tension d'environ 20 V ce qui soumet ces drains et ces grilles à des contraintes élevées, de sorte que les oxydes tunnel entre les grilles et les drains ou les oxydes de grille entre les grilles et les drains, peuvent être détruits De plus, les lignes de bits peuvent provoquer une fuite de courant du fait des jonctions faibles ou des particules de polysilicium résiduelles résultant du processus de fabrication. Bien que ces facteurs puissent ne pas affecter défavo- rablement le fonctionnement du circuit de CCE dans la EEPROM utilisant les données de parité fournies de l'extérieur à la puce, ces facteurs peuvent contribuer au résultat erratique du fonctionnement du circuit de CCE dans la EEPROM utilisant le circuit de CCE récem- ment monté sur la puce, dans laquelle les données de parité sont obtenues en lisant les données dans les cellules de mémoire de la puce. La présente invention a pour but de créer un dispositif de mémoire à semi-conducteurs non-volatile comportant un circuit de CCE plus fiable. Un autre but de la présente invention est de créer une EEPROM comportant un circuit de CCE plus fiable. Un autre but encore de la présente invention est de créer une EEPROM munie d'un circuit de CCE per- mettant d'écrire aléatoirement les données dans un élément à octets multiples. Un autre but encore de la présente invention est de créer une EEPROM munie d'un circuit de CCE per- mettant d'écrire aléatoirement les données dans un élément à octets multiples pour produire des données de parité en utilisant les données de mémoire lues dans des mémoires tampons de page. Selon la présente invention, une mémoire morte programmable effaçable électriquement (EEPROM) comprend un réseau de mémoires incluant un certain nombre de lignes de bits, un certain nombre de cellu- les de mémoire branchées respectivement aux lignes de bits et à des cellules de parité, et un circuit de contrôle et de correction d'erreur, avec une porte de colonne branchée aux différentes lignes de bits pour charger des données d'entrée dans des mémoires tampons de page respectives et traiter les données de mémoire dans un élément à octets multiples des données d'en- trée, de manière à générer des données de parité cons- tituées d'un certain nombre de bits écrits aléatoire- ment dans les mémoires tampons de page, EEPROM carac- térisée en ce que les mémoires tampons de page sont branchées entre les différentes lignes de bits et la porte de colonne. Selon une autre caractéristique de l'inven- tion, on utilise de préférence des moyens de sépara- tion pour contrôler le branchement entre les mémoires tampons de page et les différentes lignes de bits si- tuées entre elles. Pour mieux faire comprendre l'invention et montrer comment celle-ci peut être mise en oeuvre, on se référera maintenant, à titre d'exemple, aux dessins schématiques ci-joints dans lesquels: la figure 1 est un schéma par blocs desti- né à représenter schématiquement la structure d'une EEPROM classique munie d'un circuit de contrôle et de correction d'erreur (CCE); la figure 2 est un schéma par blocs desti- né à représenter schématiquement la structure d'une EEPROM munie d'un circuit de contrôle et de correction d'erreur (CCE) selon la présente invention; la figure 3 est un schéma par blocs desti- né à représenter schématiquement un réseau de mémoires mettant en oeuvre la présente invention; la figure 4 est un schéma destiné à repré- senter la procédure d'écriture des données selon la présente invention; la figure 5 est un diagramme des temps re- latif à l'opération d'écriture des données de la figu- re 4 la figure 6 est un schéma destiné à repré- senter l'opération de lecture selon la présente inven- tion; et la figure 7 est un circuit détaillé du gé- nérateur de parité de la figure 2. En se référant à la figure 2, la mémoire tampon de page 900 est branchée entre le réseau de mé- moires 100 et la porte de colonne 120, ce qui est dif- férent du branchement classique de la figure 1 dans lequel la mémoire tampon de page est branchée à la porte de colonne 120 par l'intermédiaire des lignes de bits On utilise de préférence des moyens de sépara- tion 600 constitués par des transistors NMOS pour con- trôler le branchement entre les mémoires tampons de page et les différentes lignes de bits situées entre elles Les autres branchements de structure sont tels que ceux représentés à la figure 1 décrite en détails dans la description de la Demande de Brevet Coréenne No 91-18832. Dans le réseau de cellules de mémoire et le réseau de cellules de parité tels que représentés à la figure 3 selon une forme de réalisation de la présente invention, la correction d'erreur est effectuée dans un élément à 4 octets Les blocs de page de mémoire 101-104, 107-111 sont classés en deux groupes corres- pondant à l'entrée et à la sortie Comme un élément d'entrée est un élément à 8 bits, les données de mé- moire sont constituées de 32 bits ( 4 octets) qui se combinent aux données de parité respectives de 6 bits pour former un ensemble de 38 bits Une page est cons- tituée de 128 octets constituant 32 ensembles Chaque page présente une capacité de 1 K bit ( 1024 bits) Par suite, dans ce réseau de cellules de mémoire, les don- nées de parité nécessaires pour une page ( 128 octets, 32 ensembles) sont de 32 x 6 = 192 bits, de sorte qu'on obtient deux pages de parité constituées chacune de 96 bits 105 et 106 disposées respectivement à gau- che et à droite Les pages de mémoire 101-104, 107-111 ne sont différentes des pages de parité 105, 106 que par le nombre de bits, et les mémoires tampons de page utilisées dans celles-ci présentent la même structure. Pour plus de facilité, les mémoires tampons de page utilisées dans les pages de mémoire sont appelées "mé- moire tampon de page de mémoire" et celles utilisées dans les pages de parité sont appelées "mémoire tampon de page de parité" On remarquera en particulier que, dans la structure de réseau ci-dessus, la mémoire tam- pon de page 900 est interposée entre les pages 101-111 et la porte de colonne La période de génération des données de parité de 6 bits est répétée 32 fois pour effectuer la correction d'erreur d'une page, du fait qu'une page de mémoire est constituée de 32 ensembles ( 128 octets = 4 octets x 32). On décrira maintenant la procédure d'écritu- re des données selon la présente invention en se réfé- rant à la figure 4 qui représente schématiquement un circuit destiné à mettre en oeuvre la mémoire tampon de page 900, les décodeurs de première colonne 160 a- 160 d, la porte de colonne 120, le sélecteur de page 300, l'amplificateur de détection de parité 400, l'am- plificateur de détection de page 500, le sélecteur de données d'entrée 270, la mémoire tampon de données d'entrée 280, le générateur de parité 200 et le cir- cuit de séparation 600 Les sorties Si, 52, 53, 54, , 56 représentent les données de parité de 6 bits. On a représenté 32 ( 4 octets) lignes de données DL 1- DL 32 pour charger les données de mémoire, et 6 lignes de parité PL 1-PL 6 pour charger les données de parité. Les cellules de mémoire ou les cellules de parité sont sélectionnées par les lignes de mots WL et les lignes de sélection de série SL, tandis que la ligne de bits sélectionnée est branchée à la mémoire tampon de page 900 conformément à un signal de sélection de ligne de bits SBL Dans le décodeurs de colonne 160 a, d, le signal YD active les signaux d'adresse de co- lonne Pi, Qi et Ri Les signaux de commande LD, LC Hfa, YWI, LC Hfd qui sont classiques sont produits par le circuit de commande 180 de la figure 3 On remarquera que la mémoire tampon de page 900 est branchée direc- tement à la porte de colonne 120 sans passage par les lignes de bits Le branchement entre la mémoire tampon de page 900 et les lignes de bits est commandé par le circuit de séparation branché au signal de séparation de lignes de bits YSL. En se référant à la figure 5, la procédure d'écriture pour la correction d'erreur consiste en une période de chargement de données Tdl lorsque les don- nées de 128 octets introduites de l'extérieur et cou- vrant une page sont momentanément stockées dans les mémoires tampons de page respectives 900 par l'inter- médiaire de la porte de colonne 120 (et non par l'in- termédiaire des lignes de bits) conformément à la sé- lection d'adresse, en une période de génération de pa- rité Tpg lorsque le générateur de parité 200 reçoit les données de mémoire des mémoires tampons de page 900 pour générer les données de parité 51-56 de 6 bits appartenant à chaque ensemble ( 4 octets, 32 bits) qui sont momentanément stockées dans la mémoire tampon de page de parité du réseau de cellules de parité 105 par l'intermédiaire de la porte de colonne 120, et en une période de programmation Tpgm pour écrire dans les cellules de mémoire les données stockées dans la mé- moire tampon de page On remarquera que, dans la pé- riode de chargement de données Tdl et dans la période il de génération de parité Tpg, les données sont transfé- rées par la porte de colonne 120 directement aux mé- moires tampons de page (mémoires tampons de page de mémoire et mémoires tampons de page de parité). En se référant à la figure 6 destinée à re- présenter schématiquement la procédure de lecture ef- fectuée dans le mode de correction d'erreur, on repré- sente les structures internes du décodeur de correc- tion d'erreur 230, du correcteur 220, du décodeur d'amplificateur de détection 240, et de la mémoire tampon de sortie de données 250 La figure 7 représen- te la structure interne du générateur de parité 200 dans laquelle les signaux d'entrée des circuits de combinaison logique 201,, 206 comprenant des por- tes OU exclusives destinées à générer des bits de pa- rité respectifs Si, 52, 53, 54, 55, 56, sont consti- tués par les données de parité de 6 bits lues dans le réseau de cellules de parité 105, et par les données de mémoire de 32 bits ( 4 octets) lues dans la page de mémoire 101 arbitrairement sélectionnée dans le réseau de cellules de mémoire 100 Les données de parité de 6 bits sont fournies au sélecteur de parité 300 et au décodeur de correction d'erreur 230, comme indiqué aux figures 5 et 6. On décrira ci-après, en se référant à la fi- gure 5, la procédure d'écriture aléatoire dans la cor- rection d'erreur, c'est à dire la manière selon la- quelle les données d'un élément à octets multiples tel que par exemple un élément à 4 octets, sont simultané- ment lues et écrites pour effectuer la correction d'erreur. Dans la période de chargement de données Tdl, les données introduites par la mémoire tampon d'entrée de données 280 sont sélectionnées par un oc- tet par le sélecteur de données d'entrée 270, et fina- lement chargées par le décodeur de première colonne dans la mémoire tampon de page correspondant à l'adresse d'entrée Dans ce cas, le signal de sépara- tion de lignes de bits YSL passe dans l'état logique "bas" pour séparer électriquement les lignes de bits de la mémoire tampon de page 900 Ainsi, les données d'entrée de 128 octets sont chargées aléatoirement dans les mémoires tampons de page de mémoire respecti- ves en réponse aux 128 transitions d'adresses (une donnée d'entrée à 1 octet est reçue dans une trans- ition d'adresse) Les données d'entrée sont transfé- rées par la porte de colonne 120 directement dans la mémoire tampon de page de mémoire 900 Lorsque les données d'entrée des 128 octets couvrant une page sont toutes chargées dans la mémoire tampon de page de mé- moire, on commence alors la période de génération de parité Tpg. La période de génération de parité commence lorsque le signal de déclenchement de parité LD appli- qué à l'inverseur du sélecteur de parité 300 fait pas- ser une transition dans l'état logique "bas" Dans cette période, le circuit de génération de colonne in- terne 170 génère automatiquement l'adresse de colonne interne appartenant aux 32 ensembles d'une page et, en réponse à cette opération, le signal YD destiné à dé- clencher le décodeur de première colonne 160 passe dans l'état logique "haut", de sorte que les données d'un ensemble ( 4 octets) sont lues par l'amplificateur de détection de page 500 par l'intermédiaire de la porte de colonne 120 Pour que les données stockées dans la mémoire tampon de page 110 soient lues par l'amplificateur de détection de page 500, on remarque- ra que le signal de sélection de ligne de bits SBL et le signal de décharge de ligne de bits DCB doivent se trouver respectivement dans l'état logique "haut" et dans l'état logique "bas", comme indiqué à la figure Dans ce cas, les lignes de mots n'ont aucune in- fluence sur l'opération de lecture des données Le gé- nérateur de parité 200 reçoit les données de mémoire d'un ensemble ( 4 octets) lues par l'amplificateur de détection de page 500 pour générer les données de pa- rité d'écriture de 6 bits qui correspondent aux don- nées de mémoire d'entrée Ces données de parité sont chargées dans la mémoire tampon de page de parité 900 de la page de parité 105, conformément à l'adresse correspondante Ainsi, le processus de lecture des données d'un ensemble chargé dans la mémoire tampon de page de mémoire 900 du réseau de cellules de mémoire, et de chargement des données de parité dans la mémoire tampon de page de parité, est répété 32 fois pour ter- miner la période de génération de parité de la page 1, avec une capacité de données de 32 ensembles 128 oc- tets Par suite, les données d'entrée et les données de parité correspondantes sont respectivement stockées simultanément dans les mémoires tampons de page de mé- moire et dans les mémoires tampons de page de parité. Enfin, dans la période de programmation Tpgm, le si- gnal de séparation des lignes de bits YSL passe dans l'état logique "haut" en reliant les lignes de bits aux mémoires tampons de page 900, de sorte que les données d'entrée et les données de parité momentané- ment stockées dans les mémoires tampons de page sont respectivement écrites simultanément dans les pages de mémoire et de parité Ainsi, les données d'entrée de 1 K bit et les données de parité de 192 bits sont si- multanément écrites dans une page. Comme décrit ci-dessus, le circuit selon l'invention amène les données de mémoire et les données de parité à être directement transférées à partir des mémoires tampons de page ou vers ces mémoires tampons lorsqu'on charge les données d'entrée ou lorsqu'on écrit aléa- toirement les données de parité générées en utilisant les données de mémoire chargées, de sorte que le fonc- tionnement du circuit de CCE est protégé contre les données erronées produites par les défauts des lignes de bits et des cellules de mémoire branchées à celles- ci Par suite, on améliore ainsi la fiabilité du cir- cuit de CCE. * Bien que l'invention ait été plus particulièrement re- présentée et décrite en se référant à une forme de ré- alisation particulière préférée de celle-ci, il appa- raitra aux spécialistes de la question qu'on peut lui apporter des modifications de forme et de détails sans sortir de l'esprit et du cadre de la présente inven- tion. R E V E N D I C A T IO N S ) Mémoire morte programmable effaçable électriquement (EEPROM) munie d'un circuit de contrôle et de correction d'erreur, comprenant un réseau de mé- moires ( 100) incluant un certain nombre de lignes de bits, un certain nombre de cellules de mémoire bran- chées respectivement aux lignes de bits et à des cel- lules de parité, et une porte de colonne ( 120) bran- chée aux différentes lignes de bits pour charger des données d'entrée dans des mémoires tampons de page ( 110) respectives et traiter les données de mémoire dans un élément à octets multiples des données d'en- trée, de manière à générer des données de parité cons- tituées d'un certain nombre de bits écrits aléatoire- ment dans les mémoires tampons de page ( 110), EEPROM caractérisée en ce que les mémoires tampons de page sont branchées entre les différentes lignes de bits et la porte de colonne. ) EEPROM selon la revendication 1, carac- térisée en ce qu'on utilise des moyens de séparation pour contrôler le branchement entre les mémoires tam- pons de page ( 110) et les différentes lignes de bits.