FR2851074A1 - Memoire flash sectorisee comprenant des moyens de controle et de rafraichissement de cellules memoire - Google Patents
Memoire flash sectorisee comprenant des moyens de controle et de rafraichissement de cellules memoire Download PDFInfo
- Publication number
- FR2851074A1 FR2851074A1 FR0301558A FR0301558A FR2851074A1 FR 2851074 A1 FR2851074 A1 FR 2851074A1 FR 0301558 A FR0301558 A FR 0301558A FR 0301558 A FR0301558 A FR 0301558A FR 2851074 A1 FR2851074 A1 FR 2851074A1
- Authority
- FR
- France
- Prior art keywords
- counter
- memory
- sector
- memory cells
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 194
- 238000000034 method Methods 0.000 claims abstract description 35
- NFACJZMKEDPNKN-UHFFFAOYSA-N trichlorfon Chemical compound COP(=O)(OC)C(O)C(Cl)(Cl)Cl NFACJZMKEDPNKN-UHFFFAOYSA-N 0.000 claims description 9
- 238000007726 management method Methods 0.000 claims description 5
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 claims description 2
- QHLFJSMAWAWVRU-UHFFFAOYSA-N n-(5-chloro-4-methyl-1,3-thiazol-2-yl)propanamide Chemical compound CCC(=O)NC1=NC(C)=C(Cl)S1 QHLFJSMAWAWVRU-UHFFFAOYSA-N 0.000 description 9
- 101100524516 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RFA2 gene Proteins 0.000 description 6
- 230000008672 reprogramming Effects 0.000 description 5
- XJCLWVXTCRQIDI-UHFFFAOYSA-N Sulfallate Chemical compound CCN(CC)C(=S)SCC(Cl)=C XJCLWVXTCRQIDI-UHFFFAOYSA-N 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000007257 malfunction Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 101100033865 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RFA1 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
Landscapes
- Read Only Memory (AREA)
Abstract
La présente invention concerne un procédé de contrôle et de rafraîchissement de cellules mémoire dans une mémoire (MEM1) effaçable et programmable électriquement comprenant un plan mémoire organisé en secteurs (ST1-ST8), chaque secteur comprenant des cellules mémoire reliées à des lignes de bit (BLj) et à des lignes de mot (WLi). Le procédé comprend le contrôle et le rafraîchissement de cellules mémoire de pages du plan mémoire dont l'adresse est indiquée par un compteur de contrôle et de rafraîchissement comprenant des données formant des jetons utilisables une fois. Selon l'invention, un compteur (CMPTk, CMPT1-CMPT8) de contrôle et de rafraîchissement est intégré dans chaque secteur de la mémoire et comprend des cellules mémoire (FGT) reliées aux lignes de bit (BLj) du secteur. Un compteur d'un secteur est effacé après avoir atteint une valeur maximale de comptage qui est choisie de manière que, lorsque cette valeur maximale de comptage est atteinte, des cellules mémoire du compteur ont subi un nombre de cycles de stress électrique qui est au maximum égal à un nombre déterminé (CMAX). Application aux mémoire Flash.
Description
MEMOIRE FLASH SECTORISEE COMPRENANT DES MOYENS DE
CONTROLE ET DE RAFRAICHISSEMENT DE CELLULES MEMOIRE
La présente invention concerne les mémoires Flash comprenant un plan mémoire organisé en secteurs.
La présente invention concerne plus particulièrement une mémoire Flash effaçable par page du 5 type décrit par la demande internationale WO 02/41322, comprenant un compteur non volatile dédié au contrôle et au rafraîchissement des pages du plan mémoire.
Comme exposé dans la demande internationale précitée, une mémoire Flash programmable par page ayant 10 une grande capacité de stockage doit comprendre des moyens de contrôle et de rafraîchissement (reprogrammation) de ses cellules mémoire, si l'on souhaite que chaque page de la mémoire puisse être effacée et programmé un grand nombre de fois.
En effet, une opération de programmation d'une cellule mémoire comprend l'application, sur une ligne de bit à laquelle la cellule mémoire est reliée, d'une tension de programmation Vpp de forte valeur. Or, dans une mémoire Flash, les cellules mémoire comprennent des 20 transistors à grille flottante qui sont connectés directement aux lignes de bit du plan mémoire, sans l'intermédiaire d'un transistor d'accès (comme cela est le cas dans les mémoires EEPROM) . De ce fait, toutes les cellules mémoire reliées à la ligne de bit d'une cellule 25 mémoire en cours de programmation reçoivent la tension Vpp. Ceci entraîne un phénomène de stress électrique appelé également stress de programmation ou stress de drain, qui peut provoquer, à la longue, un effacement parasite des cellules mémoire se trouvant dans l'état programmé.
Ainsi, si l'on offre à l'utilisateur la possibilité de reprogrammer Z fois la même page dans un secteur de 5 mémoire Flash comprenant Xl lignes de mots (ou pages), le nombre maximal CMAX1 de cycles de stress électrique supporté par les cellules mémoire est égal à (1) CMAX1 = (Xl-l)*Z quand chacune des Xl-1 autres pages du secteur est programmée Z fois.
Dans ces conditions, le temps maximal TMAX1 de stress électrique supporté par les cellules mémoire d'une 15 page est égal à : (2) TMAX1 = (Xl-l)*Z*Tp Tp étant le temps de programmation d'une cellule mémoire, 20 pendant lequel les cellules mémoire appartenant à d'autres pages que celle en cours de programmation mais connectées à la même ligne de bit, subissent la tension de programmation Vpp. Pour un secteur de 512 Kbits comprenant 256 lignes de mots et 256 colonnes de huit 25 bits chacune (soit 256 mots ou 2048 bits par page), et pour un nombre Z de reprogrammations autorisé égal à 105 et un temps Tp de programmation de 5 gs, le temps maximal de stress électrique que peut subir une cellule mémoire est de l'ordre de 128 secondes, soit un stress électrique 30 considérable.
Dans la demande internationale précitée, on propose de contrôler, après R cycles de programmation des pages d'une mémoire, les cellules mémoire de K pages du plan mémoire. Cette opération de contrôle comprend une double 35 lecture des octets de la page, avec des tensions de lecture différentes, visant à déterminer si la tension de seuil Vth des transistors à grille flottante se trouve ou non dans une fourchette de valeurs considérée comme normale. Si les résultats des deux lectures ne sont pas 5 identiques, cela signifie que des cellules mémoire sont altérées. Les cellules mémoire défectueuses sont alors rafraîchies, c'est- à-dire reprogrammées.
Grâce à ce procédé, le nombre maximal de cycles de stress électrique CMAX2 et le temps maximal TMAX2 de 10 stress électrique que peut subir une cellule mémoire sont ramenés aux valeurs suivantes (3) CMAX2 = X1*R/K (4) TMAX2 = Xl*R/K*Tp Quand R et K sont égaux à 1 (mode de réalisation préféré), une page est contrôlée après chaque programmation d'une page, soit 20 (5) CMAX2 = Xl (6) TMAX2 = Xl*Tp Pour mettre en oeuvre ce procédé, on propose également, dans la demande internationale précitée, de gérer les adresses des pages à contrôler au moyen d'un compteur non volatile qui est incrémenté après chaque contrôle d'une page. Un tel compteur permet de contrôler 30 cycliquement toutes les pages du plan mémoire en revenant à la première page grâce à un effacement du compteur, après avoir atteint la dernière adresse de page. On notera ici que dans les formules (3) à (6) , le terme Xl doit être remplacé par le terme "Xl - 1" si le 35 rafraîchissement d'une page désignée par le compteur intervient avant la programmation d'une page, au lieu d'intervenir après la programmation d'une page.
La prévision d'un tel compteur pose le problème de la durée de vie des cellules mémoire du compteur lui5 même. En effet, on autorise que des cellules mémoire soient effacées et reprogrammées Z fois, par exemple 100000 fois. Or, si le compteur est effacé et reprogrammé avec une valeur incrémentée après chaque contrôle d'une page, et si une page désignée par le compteur est 10 contrôlée après chaque programmation d'une page, le nombre de cycles d'effacement ou programmation des cellules mémoire du compteur est égal à Xl*Z, soit un nombre de cycles excédant largement la limite autorisée.
Pour résoudre ce problème, la demande internationale précitée propose une méthode de gestion du compteur selon laquelle une cellule mémoire dans l'état programmé correspond à un jeton utilisé qui ne peut être réutilisé tant que le compteur n'a pas été effacé.
L'adresse de la page à contrôler est ainsi déterminée par 20 le rang dans le compteur du premier jeton utilisable (cellule effacée) qui l'on rencontre en lisant le compteur selon un sens de lecture déterminé. Lorsque tous les jetons du compteur sont utilisés (cellules programmées), le compteur est effacé et le comptage 25 recommence à partir du premier jeton.
Une autre contrainte liée à la prévision d'un tel compteur est liée au stress électrique important que les cellules mémoire du compteur peuvent subir en raison des cycles de programmation des autres pages du plan mémoire. 30 Pour pallier cet inconvénient, la demande internationale précitée prévoit d'agencer le compteur dans un secteur indépendant des autres secteurs de la mémoire. En d'autres termes, les transistors à grille flottante des cellules mémoire du compteur ne sont pas connectés aux lignes de bit du plan mémoire et ne reçoivent pas les tensions de programmation appliquées à ces lignes de bit.
Or il est apparu aux auteurs de la présente invention, dans le cadre de la conception d'une nouvelle 5 génération de mémoires Flash, que la séparation des cellules mémoire du compteur vis-à-vis du reste du plan mémoire complexifie l'architecture de la mémoire, et la complexifie même de façon rédhibitoire lorsque l'on souhaite prévoir un compteur par secteur.
Ainsi, l'objectif de la présente invention est de simplifier l'architecture d'une mémoire sectorisée comprenant pour chaque secteur un compteur de contrôle et de rafraîchissement des pages du secteur.
Pour atteindre cet objectif, la présente invention 15 se base sur la constatation simple mais non moins inventive selon laquelle l'intégration d'un compteur dans chaque secteur d'un plan mémoire est possible à la condition de respecter une règle d'effacement du compteur qui sera comprise à la lumière du raisonnement suivant: 20 lorsqu'un compteur selon l'invention est intégré dans un secteur d'un plan mémoire, les cellules mémoire du compteur subissent le même stress électrique que les cellules mémoire des autres pages du plan mémoire car elles sont connectées aux lignes de bit du secteur. Or, 25 les pages du secteur sont contrôlées à intervalles réguliers grâce au compteur, tandis que le compteur ne l'est pas. Toutefois, l'effacement du compteur lorsque la valeur maximale de comptage est atteinte, est l'équivalent d'une opération de rafraîchissement du 30 compteur puisque toutes les cellules mémoire du compteur sont effacées.
Ainsi, l'idée de la présente invention est, d'une part, d'intégrer un compteur dans chaque secteur d'une mémoire et, d'autre part, de prévoir un mode de gestion 35 du compteur garantissant son effacement au terme d'un nombre de cycles de stress électrique qui est au maximum égal au nombre maximal CMAX2 de cycles de stress électrique que peuvent subir les autres pages du secteur.
En d'autres termes, le comptage effectué doit être tel 5 que la valeur de comptage maximale de comptage précédant l'effacement du compteur soit au maximum égale à la valeur CMAX2 définie plus haut par la relation générale (3) ou la relation particulière (5).
Une autre idée de la présente invention, permettant 10 de s'affranchir d'éventuels dysfonctionnements de cellules mémoire du compteur, est d'attribuer à chaque jeton une valeur définie par un ensemble de cellules mémoire, et de procéder à une évaluation de la valeur d'un jeton par détermination de la valeur majoritaire des 15 bits formant le jeton.
Ainsi, la présente invention prévoit une mémoire effaçable et programmable électriquement, comprenant un plan mémoire organisé en secteurs, chaque secteur comprenant des cellules mémoire reliées à des lignes de 20 bit et à des lignes de mot, les cellules mémoire reliées à une même ligne de mot formant une page du plan mémoire, les cellules mémoire reliées à une même ligne de bit étant soumises à un cycle de stress électrique à chaque programmation d'une autre cellule mémoire reliée à la 25 même ligne de bit, au moins un compteur de contrôle et de rafraîchissement de pages du plan mémoire, comprenant des données formant des jetons utilisables une fois avant effacement du compteur, chaque jeton correspondant par son rang dans le compteur à au moins une adresse d'une 30 page à contrôler, et des moyens de contrôle et de rafraîchissement assurant la gestion du compteur et agencés pour contrôler et, si nécessaire, rafraîchir des pages désignées par le compteur, dans laquelle chaque secteur comprend un compteur de contrôle et de 35 rafraîchissement qui est intégré dans le secteur et qui comprend ainsi des cellules mémoire reliées aux lignes de bit du secteur, et les moyens de contrôle et de rafraîchissement sont agencés pour effacer un compteur après avoir atteint une valeur maximale de comptage qui 5 est choisie de manière que, lorsque cette valeur maximale de comptage est atteinte, des cellules mémoire du compteur ont subi un nombre de cycles de stress électrique qui est au maximum égal à un nombre déterminé.
Selon un mode de réalisation, le nombre déterminé 10 est le nombre maximal de cycles de stress électrique que peuvent subir, entre deux contrôles, les pages du secteur correspondant.
Selon un mode de réalisation, la valeur maximale de comptage d'un compteur est choisie de manière que toutes 15 les pages du secteur correspondant soient contrôlées au moins une fois entre deux effacements du compteur.
Selon un mode de réalisation, un jeton désigne un nombre de pages déterminé, et la valeur maximale de comptage d'un compteur est égale au nombre maximal de 20 cycles de stress électrique que peuvent subir, entre deux contrôles, les pages du secteur correspondant, divisé par le nombre de pages que désigne un jeton.
Selon un mode de réalisation, les moyens de contrôle et de rafraîchissement sont agencés pour, avant 25 ou après chaque cycle de programmation d'une page d'un secteur, contrôler une page et une seule du même secteur.
Selon un mode de réalisation, la mémoire comprend des moyens pour attribuer à un jeton d'un compteur une valeur logique qui est égale à la valeur logique 30 majoritaire d'un groupe de bits enregistrés dans un groupe de cellules mémoire du compteur, l'état utilisé ou non utilisé du jeton étant fonction de la valeur logique majoritaire.
Selon un mode de réalisation, la valeur maximale de 35 comptage couvre toute l'étendue de stockage de données offerte par le compteur, de sorte que chaque cellule mémoire d'un compteur reçoit un bit formant une partie de jeton.
Selon un mode de réalisation, le nombre de cellules 5 mémoires que comprend un groupe de cellules mémoire correspondant à un jeton est égal au rapport du nombre de cellules mémoire du compteur au nombre de pages que comprend le secteur dans lequel se trouve le compteur.
Selon un mode de réalisation, les moyens de 10 contrôle et de rafraîchissement sont agencés pour effacer un compteur pendant l'effacement d'une page du secteur dans lequel se trouve le compteur.
Selon un mode de réalisation, la mémoire comprend un convertisseur d'adresse pour convertir le rang d'un 15 jeton non utilisé en adresse d'une page à contrôler.
La présente invention concerne également un procédé de contrôle et de rafraîchissement de cellules mémoire dans une mémoire effaçable et programmable électriquement comprenant un plan mémoire organisé en secteurs, chaque 20 secteur comprenant des cellules mémoire reliées à des lignes de bit et à des lignes de mot, les cellules mémoire reliées à une même ligne de mot formant une page du plan mémoire, les cellules mémoire reliées à une même ligne de bit étant soumises à un cycle de stress 25 électrique à chaque programmation d'une autre cellule mémoire reliée à la même ligne de bit, le procédé comprenant le contrôle et si nécessaire le rafraîchissement de cellules mémoire de pages du plan mémoire dontl'adresse est indiquée par un compteur de 30 contrôle et de rafraîchissement comprenant des données formant des jetons utilisables une fois avant effacement du compteur, chaque jeton correspondant, par son rang dans le compteur, à au moins une adresse d'une page à contrôler, procédé dans lequel un compteur de contrôle et 35 de rafraîchissement est intégré dans chaque secteur de la mémoire et comprend des cellules mémoire reliées aux lignes de bit du secteur, et un compteur d'un secteur est effacé après avoir atteint une valeur maximale de comptage qui est choisie de manière que, lorsque cette 5 valeur maximale de comptage est atteinte, des cellules mémoire du compteur ont subi un nombre de cycles de stress électrique qui est au maximum égal à un nombre déterminé.
Selon un mode de réalisation, le nombre déterminé 10 est le nombre maximal de cycles de stress électrique que peuvent subir, entre deux contrôles, les pages du secteur correspondant.
Selon un mode de réalisation, la valeur maxi male de comptage d'un compteur est choisie de manière que toutes 15 les pages du secteur correspondant soient contrôlées au moins une fois entre deux effacements du compteur.
Selon un mode de réalisation, un jeton désigne un nombre de pages déterminé, et la valeur maximale de comptage d'un compteur est égale au nombre maximal de 20 cycles de stress électrique que peuvent subir, entre deux contrôles, les pages du secteur correspondant, divisé par le nombre de pages que désigne un jeton.
Selon un mode de réalisation, une page d'un secteur est contrôlée avant ou après chaque programmation d'une 25 page du même secteur.
Selon un mode de réalisation, l'état utilisé ou non utilisé d'un jeton d'un compteur est déterminé par la valeur logique majoritaire d'un groupe de bits enregistrés dans un groupe de cellules mémoire du 30 compteur.
Selon un mode de réalisation, la 'valeur maximale de comptage d'un compteur couvre toutes les cellules mémoire du compteur, de sorte que des jetons sont enregistrés dans toutes les cellules mémoire du compteur.
Selon un mode de réalisation, un compteur est effacé pendant l'effacement d'une page du secteur dans lequel se trouve le compteur.
Ces objets, caractéristiques et avantages ainsi que 5 d'autres de la présente invention seront exposés plus en détail dans la description suivante de divers exemples de mise en oeuvre du procédé selon l'invention dans deux mémoires ayant des architectures différentes, faite à titre non limitatif en relation avec les figures jointes 10 parmi lesquelles - la figure 1 représente sous forme de bloc une mémoire Flash à 8 bits de données comprenant des moyens de mise en òuvre du procédé selon l'invention, - la figure 2 est une vue partielle d'un secteur de la 15 mémoire de la figure 1, - la figure 3 est le schéma logique d'un élément représenté sous forme de bloc en figure 1, et - la figure 4 représente sous forme de bloc une mémoire Flash à 16 bits de données comprenant des moyens de mise 20 en oeuvre du procédé selon l'invention.
La figure 1 représente sous forme de blocs une mémoire MEMl dans laquelle est mis en oeuvre un procédé de contrôle et de rafraîchissement de cellules mémoire selon l'invention. La mémoire MEMl comprend un plan mémoire MA 25 de type Flash découpé en secteurs STk (k étant un indice), ici huit secteurs ST1, ST2... ST8 isolés les uns des autres par la technique du triple caisson. Chaque secteur STk compte 256 lignes de mots WLi comportant chacune 256 mots de huit bits, ou octets, soit 2048 30 lignes de bit BLj (256x8) . En sus de ces 256 lignes de mot, chaque secteur comprend une ligne de mot spéciale WLx formant un compteur CMPTk selon l'invention, soit au total huit lignes de mot WLx correspondant aux compteurs CMPT1, CMPT2,...CMPT8. La mémoire compte ainsi au total 2048 pages (compteurs exclus) réparties dans les huit secteurs et offre une capacité de stockage de 4 Mbits.
La figure 2 est une vue partielle d'un secteur STk.
Les cellules mémoire du compteur CMPTk intégré dans ce 5 secteur sont formées par des transistors à grille flottante FGT qui sont d'une part reliés par leurs grilles à la ligne de mot spéciale WLx, et sont d'autre part reliés par leurs drains aux lignes de bit BLj du secteur. On distingue, sous la ligne de mot WLx, une 10 ligne de mot normale WLi du secteur, à laquelle sont reliées les grilles des transistors à grille flottante d'une page du secteur. Ainsi, chaque cellule mémoire du compteur est reliée à une ligne de bit BLj et subit un cycle de même stress électrique lorsqu'une cellule 15 mémoire reliée à cette ligne de bit BLj est programmée, puisqu'elle reçoit une tension de programmation appliquée à la ligne de bit.
Chaque compteur CMPTk comporte ainsi ici 2048 bits, soit 256 colonnes de huit bits chacune, et est dédié à la 20 gestion des adresses de lignes de mot à contrôler conformément au procédé décrit dans la demande WO 02/41322. Le temps maximal de stress électrique TMAX2 que peut subir une cellule mémoire est donné par la relation (4) décrite plus haut. Dans ce qui suit, les paramètres R 25 et K sont choisis égaux à 1, de sorte qu'une page est contrôlée dans un secteur après chaque programmation d'une page de ce secteur. Le temps maximal de stress électrique TMAX2 que peut subir une cellule mémoire est dans ce cas donné par la relation (6).
Selon l'invention, chaque compteur est géré de manière à être effacé après avoir subit un nombre de cycles de stress électrique qui est au maximum égal au nombre maximal de cycles de stress électrique CMAX2 que peut subir une cellule mémoire du secteur, tel que 35 définit par les relations (3) et (5). Dans ces conditions, le stress électrique que subissent les cellules mémoire reste dans les limites admises, l'effacement du compteur valant rafraîchissement du compteur.
De plus, les jetons sont formés par des groupes de bits et non pas par des bits individuels. Le nombre de bit formant un jeton est déterminé ici de manière que toutes les cellules mémoire du compteur soient utilisées lors d'un comptage allant de la première à la dernière 10 ligne de mot d'un secteur. Un secteur comprenant ici 256 lignes de mot et le compteur comprenant 2048 cellules mémoire, le nombre de cellules mémoire pour former un jeton, tout en utilisant l'ensemble des cellules mémoire du compteur, est égal ici à 2048:256 soit 8 cellules 15 mémoire pour former un jeton, soit encore 256 jetons dans chaque compteur affectés chacun à la désignation d'une page. De façon générale, si un secteur comporte N lignes de mot, et si les lignes de mot du secteur comportent M cellules mémoire, le nombre de cellules mémoire formant 20 un jeton du compteur est égal à M/N bits, si l'on souhaite exploiter la pleine capacité du compteur. Ce nombre de jetons correspond au contrôle de toutes les lignes de mot du secteur, après quoi le compteur est effacé.
En appliquant les règles susmentionnées, le remplissage d'un compteur CMPTk s'effectue de la façon décrite par le tableau 1 ci-après. Dans ce tableau, les données sont exprimées en notation hexadécimale (un caractère de 0 à F représentant 4 bits), la lecture d'une 30 cellule mémoire dans l'état programmé correspondant à la lecture d'un bit à 0, et la lecture d'une cellule mémoire effacée correspondant à la lecture d'un bit à 1.
Tableau 1
Etat du compteur Ligne de mot WLi à contrôler FFFFFFFFFFFFFFF... FFFFFFFFFFF WL0 00FFFFFFFFFFFF...FFFFFFFFFFF WL1 000OFFFFFFFFF... FFFFFFFFFFF WL2 OO000000FFFFFFF...FFFFFFFFFFF WL3.0000000000000.. OOOOOOOOOFF WL255 0000000000000...000000000FF WL255 Le compteur est programmé octet par octet, à 5 commencer par les octets de poids faible, un octet représentant un jeton et l'adresse de l'octet dans le compteur représentant l'adresse d'une ligne de mot à contrôler. Lorsque le dernier octet à FF est trouvé dans le compteur, cet octet est mis à 0 avant l'effacement du 10 compteur. Le compteur présente donc, avant d'être effacé, un état temporaire o tous les octets sont à zéro.
On décrira maintenant les moyens prévus dans la mémoire MEM1 pour mettre en oeuvre le procédé selon l'invention.
La mémoire MEM1 telle que représentée en figure 1 comprend un décodeur de ligne de mots XDEC pour piloter les lignes de mots WLi de chaque secteur, et un décodeur spécifique CDEC pour piloter la ligne de mot spéciale WLx de chaque compteur CMPTk (CMPT1 à CMPT8). L'activation du 20 décodeur CDEC est faite par un signal de sélection SELC qui inhibe automatiquement le décodeur XDEC.
La mémoire MEM1 comprend également un décodeur de colonne YDEC, un registre de programmation LT, un circuit de lecture SA, un compteur d'adresse de ligne RAC, un 25 compteur d'adresse de colonne CAC, un bus d'adresse ADB recevant une adresse de seize bits a[15:0] et un bus de données DTB véhiculant seize bits de données d[15:0], soit deux octets en parallèle.
Le décodeur de colonne YDEC comprend ici 2048 entrées/sorties (256x8) connectées aux 2048 lignes de bit du plan mémoire MA et seize entrées/sorties connectées au registre de programmation LT et au circuit de lecture SA. 5 Le registre LT comprend seize verrous haute tension ("latches") (non représentés) permettant la programmation simultanée de deux octets dans le plan mémoire. Les verrous sont connectés en sortie aux seize entrées/sorties du décodeur de colonne YDEC et sont 10 connectés en entrée au bus de données DTB, pour recevoir les bits de données d[15:0]. Le registre LT enregistre les bits de données présents sur le bus DTB sur réception d'un signal DLOAD, et fournit une tension de programmation V,, sur ses sorties (selon les valeurs des 15 bits des deux octets chargés) sur réception d'un signal de programmation PROG, pour la programmation de cellules mémoire.
Le circuit de lecture SA, activé par un signal READ, comprend ici seize amplificateurs de lecture 20 ("sense amplifiers") (non représentés) connectés aux seize entrées/sorties du décodeur de colonne YDEC, et est connecté en sortie au bus de données DTB.
Le compteur RAC ("Row Address Counter") reçoit sur des entrées in[15:8] huit bits d'adresse de poids fort 25 a[15:8] présents sur le bus d'adresse ADB, formant une adresse de ligne de mot ADWL, et les applique au décodeur de colonne XDEC. Le compteur RAC est piloté par un signal LOAD1 de chargement des bits d'adresse, peut être incrémenté par un signal INCl et fournit un signal OVF1 30 en cas de débordement d'adresse. Les bits d'adresse a[15:8] sont appliqués au compteur RAC par l'intermédiaire d'un multiplexeur MUX1 piloté par un signal MODE, ayant une entrée connectée au bus d'adresse.
Le compteur CAC ("Column Address Counter") comporte 35 des entrées in[7:1] connectées au bus d'adresse ADB, pour recevoir sept bits d'adresse de poids faible a[7:1] formant une adresse de colonne ADCOL. La sortie du compteur CAC applique l'adresse de colonne ADCOL sur l'entrée d'adresse du décodeur YDEC. Le compteur CAC est 5 piloté par un signal de chargement LOAD2, par un signal d'incrémentation INC2, et fournit un signal OVF2 égal à 1 lorsqu'il atteint la dernière adresse de colonne.
Le bit adresse de plus faible poids a[0] présent sur le bus d'adresse ADB, est appliqué sur une entrée de 10 sélection d'un multiplexeur MUX2 recevant sur une première entrée le premier octet d[7:0] présent sur le bus de données et sur une deuxième entrée le deuxième octet d[15:8] présent sur le bus de données. La sortie du multiplexeur MUX2 fournit l'octet d[7:0] ou l'octet 15 d[15:8] selon la valeur du bit d'adresse a[0] .
La mémoire MEM1 comprend également un convertisseur d'adresse ACONV, un convertisseur d'adresse réciproque RACONV, un registre à décalage SREG de 16 bits à entrée/sortie parallèle, un détecteur logique DETF, un 20 tampon BUF1, un comparateur logique COMP et un séquenceur SEQ.
Le registre SREG a une entrée parallèle connectée au bus de données DTB et une sortie parallèle connectée sur une entrée du convertisseur ACONV ainsi qu'au bus de 25 données DTB. Le registre SREG est piloté par un signal de décalage SHIFT et fournit un signal Z égal à 1 lorsqu'il ne contient que des bits à 0.
Le détecteur DETF est un circuit à logique câblée connecté en entrée au bus de données DTB et recevant les 30 bits de données d[15:0] formant deux octets; Il fournit un signal DTF égal à 1 lorsque au moins un octet parmi les deux est égal à FF (soit "1111111").
Avantageusement, le détecteur DETF est agencé pour mettre le signal DTF à 1 lorsque le nombre de bits à 1 35 est majoritaire dans un octet analysé. Pour chaque octet, la détermination de la valeur majoritaire est par exemple faite sur deux groupes GP1, GP2 de quatre bits chacun, selon les équations logiques suivantes: GP1 = (dO.dl + d2).(d3 + dO.dl.d2).(dO+dl) GP2 = (d4.d5 + d6).(d7 + d4.d5.d6).(d4+d5) Un octet est considéré comme égal à FF si chacun des groupes GP1, GP2 est égal à F, ce qui signifie que 10 l'on tolère deux cellules mémoire défaillantes sur huit cellules mémoire formant un jeton, si les deux cellules mémoire défaillantes appartiennent à des groupes différents.
Le signal DETF passe ainsi à 1 si au moins l'un des 15 deux octets est égal à FF, soit: DETF = (GP1.GP2) [octetl] + (GP1.GP2) [octet2] Cette détection de bit majoritaire permet 20 d'immuniser la valeur des jetons contre des défauts ou des dysfonctionnements affectant des cellules mémoire du compteur, dysfonctionnements dont la probabilité est plus forte avec la présente invention que dans le mode de réalisation décrit par la demande W0 02/41322, puisque 25 les cellules mémoire de chaque compteur subissent le même stress électrique qu'une cellule mémoire quelconque du plan mémoire.
Le tampon BUF1 a une entrée connectée au bus DTB et une sortie reliée à une entrée du comparateur COMP, dont 30 l'autre entrée est reliée au bus DTB. Le tampon BUF1 enregistre un mot de seize bits W1 (double octet) sur réception d!un signal de chargement BLOAD, et le comparateur COMP fournit un signal DOK ("Data OK") lorsqu'un mot W2 présent sur le bus de données DTB est 35 identique au mot W1 présent à la sortie du tampon BUF1.
Le convertisseur d'adresse ACONV reçoit sur une première entrée les bitsde données d[15:01 présents sur le bus DTB, et sur une deuxième entrée les bits d'adresse a[7:1] présents à la sortie du compteur CAC, formant une 5 adresse de colonne ADCOL. Le convertisseur d'adresse ACONV fournit des bits d'adresse a[15:8] formant une adresse de ligne de mot ADWL, qui est fournie au compteur RAC par l'intermédiaire d'une deuxième entrée du multiplexeur MUX1.
Enfin, le séquenceur SEQ, à logique câblée ou à microprocesseur, fournit l'ensemble des signaux de commande décrits ci-dessus et reçoit l'ensemble des signaux émis par les éléments décrits ci-dessus.
La mémoire MEMi fonctionne de façon classique 15 pendant des opérations de lecture, d'écriture ou d'effacement de pages du plan mémoire, les opérations à effectuer étant communiquées au séquenceur sous forme de codes opération CODE[OP]. Le signal MODE est à 1 et le multiplexeur MUX1 connecte le bus d'adresse ADB sur les 20 entrées in[15:8] du compteur RAC. Lorsqu'une page doit être programmée dans un secteur STk, l'adresse de la page est appliquée au compteur RAC via le bus d'adresse. La programmation de la page est précédée d'un effacement de la page. Les données à programmer sont ensuite 25 enregistrées par paires d'octets dans le registre LT. Le compteur de colonne CAC est incrémenté après chaque programmation d'une paire d'octets, jusqu'à ce que tous les cellules mémoire de la page soient programmées (seules étant programmées les cellules mémoire devant 30 recevoir un 0).
Lorsqu'une page a été programmée dans un secteur STk, le séquenceur SEQ déclenche une procédure de lecture du compteur CMPTk de ce secteur visant à déterminer l'adresse de la page devant être contrôlée.
Le séquenceur met le signal MODE à 0, active le décodeur CDEC au moyen du signal SELC, met à zéro le compteur CAC et active le circuit de lecture SA (signal READ) . Les deux premiers octets du compteur CMPT sont 5 fournis sur le bus de données DTB par le circuit de lecture SA. Si le signal DTF à la sortie du circuit de détection DETF reste à 0, cela signifie que les deux premiers octets lus dans le compteur CMPT sont nuls. Le séquenceur incrémente donc le compteur CAC d'une unité, 10 ce qui correspond ici à un saut de deux octets puisqu'une colonne électrique comprend seize lignes de bits. Le séquenceur lit les deux octets suivants du compteur sur le bus de données, toujours au moyen du circuit de lecture, ainsi de suite jusqu'à ce que le signal DTF 15 passe à 1. Lorsque le signal DTF passe à 1, le séquenceur sait que parmi les deux octets lus, au moins un octet est égal à FF. Il s'agit du premier octet non nul du compteur CMPT correspondant à un jeton non utilisé.
Les bits d[7:1] de l'adresse de colonne ADCOL 20 comprenant les deux octets parmi lesquels au moins un octet est égal à FF, sont alors chargés dans le registre SREG et se retrouvent à l'entrée du circuit de conversion ACONV. Ce dernier convertit l'adresse de colonne ADCOL en adresse de ligne de mot ADWL (bits a[15:81). Cette 25 adresse de ligne de mot ADWL est appliquée sur les entrées in[15:81 du compteur RAC, par l'intermédiaire du multiplexeur MUX1 dont la deuxième entrée a été sélectionnée par le passage à 0 du signal MODE.
La conversion d'une adresse de colonne ADCOL en 30 adresse de ligne de mot ADWL est assurée par le convertisseur d'adresse conformément à l'algorithme suivant si d[15:0] = FFFF alors ADWL = 2*ADCOL, 35 si d[15:0] = OOFF alors ADWL = 2*ADCOL+l La figure 3 représente un mode de réalisation du convertisseur d'adresse ACONV. Un multiplieur MLTP reçoit l'adresse ADCOL et multiplie cette adresse par deux. 5 L'adresse "2*ADCOL" est appliquée sur une entrée d'un additionneur ADT dont la sortie fournit l'adresse de ligne de mot ADWL. Une autre entrée de l'additionneur est reliée à la sortie d'un comparateur logique LCOMP, qui reçoit sur une entrée une consigne égale à COFF et sur 10 l'autre entrée les bits de données d[15:0] issus du registre SREG. Lorsque ces bits de données sont égaux à COFF la sortie du comparateur passe à 1, sinon la sortie du comparateur reste à 0. L'adresse ADWL fournie par l'additionneur est ainsi conforme à l'algorithme décrit 15 ci-dessus.
L'adresse ADWL est ensuite chargée dans le compteur RAC et le processus de contrôle de la page désignée par cette adresse est engagé. Après remise à zéro du compteur CAC, les octets de la page à contrôler sont lus deux par 20 deux. Plus particulièrement, chaque paire d'octets est lue au moyen de deux tensions de lecture différentes, la première étant une tension de lecture VREAD conventionnelle et la deuxième une tension de vérification VVRFY supérieure à VREAD. La comparaison des 25 octets lus au moyen des deux tensions VREAD, VVRFY permet de détecter l'existence d'au moins un transistor à grille flottante programmé dont la tension de seuil est devenue plus faible que la tension VVRFYLa comparaison des deux octets est assurée par le 30 comparateur COMP. La paire d'octets Wl lue au moyen de la tension VVRY est stockée dans le tampon BUF1 et se retrouve ainsi sur la première entrée du comparateur. La paire d'octets W2 lue avec la tension VREAD est laissée sur le bus de données DTB et se retrouve ainsi sur la 35 deuxième entrée du comparateur. Si le signal DOK à la sortie du comparateur passe à 0, le séquenceur sait que des cellules mémoire dans l'état programmé ont perdu des charges électriques. Dans ce cas, la paire d'octets W2 (qui est la paire d'octets de référence car elle a été 5 lue avec la tension VRAI) est chargée dans le registre de programmation LT, puis le séquenceur déclenche un cycle de programmation pour rafraîchir les cellules endommagées.
Lorsque tous les octets de la page ont été 10 contrôlés et que les cellules mémoire endommagées, le cas échéant, ont été reprogrammées, le séquenceur incrémente le compter CMPT d'une unité. Cette incrémentation consiste à mettre à 0 le premier octet non nul qui avait été trouvé à l'étape de recherche de l'adresse de la page 15 à contrôler. A cet effet, le convertisseur d'adresse réciproque RACONV transforme l'adresse de ligne de mot a[15:8] présente à la sortie du compteur RAC en une adresse colonne a[7:1], en exécutant un algoritme inverse de celui décrit plus haut.
Lorsque l'adresse de colonne est récupérée par le compteur CAC, le double octet comprenant au moins un octet non nul est encore présent dans le registre SREG.
Ce double octet est décrémenté par décalage à droite (signal SHIFT) et insertion de 0 par la gauche, soit FFFF devient OOFF OOFF devient 0000 Ainsi, dans chacun de ces deux cas, un octet égal à 30 FF correspondant à un jeton non utilisé est transformé en un octet égal à 0 correspondant à un jeton utilisé (soit "00" en notation hexadécimale).
La valeur incrémentée du double octet est ensuite chargée dans le registre LT via le bus de données DTB, et 35 est enregistrée dans le compteur. Seules sont programmées les cellules mémoire du compteur comprenant un bit à 1 et dans lesquelles un bit à 0 doit être enregistré, grâce à un circuit de contrôle de programmation qui est en soi classique et n'est pas représenté en figure 1. Ainsi, au 5 cours du processus d'incrémentation du compteur et jusqu'à son effacement, chaque cellule mémoire n'est programmée qu'une fois.
D'autre part, si le signal Z fournit par le registre SREG passe à 1 après insertion de l'octet nul, 10 cela signifie que le registre SREG contient deux octets égaux à 0. Aussi, après avoir enregistré l'octet égal à 0 dans le compteur CMPT, le séquenceur vérifie la valeur du signal OVF2. Si ce signal est à 1, cela signifie que l'octet mis à 0 dans le compteur était le dernier octet 15 du compteur CMPT. Dans ce cas, le séquenceur sait qu'il doit effacer le compteur CMPT avant le prochain cycle de contrôle d'une page. Avantageusement, l'effacement du compteur est réalisé simultanément à l'effacement de la page suivante à programmer, puisqu'une page à programmer 20 est préalablement effacée. De ce fait, l'effacement du compteur est une opération transparente pour l'utilisateur et n'entraîne aucun retard dans une succession d'étapes de programmation de pages.
On a décrit dans ce qui précède un mode de 25 réalisation du procédé de l'invention dans lequel, dans chaque secteur, l'incrémentation du compteur intervient après le contrôle et le rafraîchissement d'une page, et dans lequel le contrôle et le rafraîchissement d'une page intervient après la programmation d'une page du secteur. 30 Dans une variante de ce procédé, l'incrémentation du compteur intervient avant le contrôle et le rafraîchissement d'une page et le contrôle et rafraîchissement d'une page intervient avant la programmation d'une page. Le procédé comprend dans ce cas la plupart des étapes déjà décrites, dans l'ordre suivant: El) lecture du compteur jusqu'à trouver la première paire d'octets comprenant un octet égal à FF, E2) chargement du double octet dans le registre SREG, E3) conversion, en adresse de ligne de mot, de l'adresse colonne présente à la sortie du compteur CAC, au moyen du convertisseur d'adresse ACONV, et chargement de l'adresse de ligne de mot dans le compteur RAC, E4) incrémentation du double octet dans le registre SREG, E5) chargement du double octet incrémenté dans le circuit LT et programmation du compteur pour incrémentation du compteur, E6) contrôle et, si nécessaire, rafraîchissement de la 15 page désignée par l'adresse chargée dans le compteur RAC à l'étape E3, E7) application de l'adresse de la page à programmer sur le bus d'adresse, E8-1) effacement de la page à programmer et effacement 20 simultané du compteur si le signal OVF2 fournit par le compteur CAC est passé à 1 à l'étape E4, ou E8-2) effacement de la page à programmer sans effacement du compteur si le signal OVF2 est passé à 1 à l'étape E4, 25 E9) programmation de la page à programmer, par paires d'octets, comme décrit plus haut.
Dans ce mode de réalisation, le convertisseur d'adresse réciproque RACONV n'est plus nécessaire puisque l'incrémentation du compteur intervient avant le contrôle 30 et le rafraîchissement d'une page.
Dans encore une autre variante, l'incrémentation du compteur intervient avant la programmation d'une page mais le contrôle et le rafraîchissement d'une page intervient après la programmation d'une page. On prévoit 35 dans ce cas un tampon pour mémoriser l'adresse de colonne correspondant à la première paire d'octet non nulle trouvée dans le compteur, pour la convertir ensuite en adresse de la page à contrôler.
Il apparaîtra clairement à l'homme de l'art que le 5 procédé selon l'invention est susceptible de diverses autres variantes de réalisation, notamment en fonction de l'architecture de la mémoire dans laquelle il est mis en oeuvre.
A titre d'exemple, la figure 4 représente une 10 mémoire MEM2 se distinguant de la mémoire MEMl par un bus de données DTB comprenant huit bits de données d[7:0] au lieu de seize.
La mémoire MEM2 comprend un plan mémoire MA à huit secteurs ST2, identique à celui de la mémoire MEM1, 15 chaque secteur comportant une ligne de mot spéciale WLx formant un compteur CMPTk (CMPT1 à CMPT8). On y retrouve également le séquenceur SEQ, le compteur d'adresse de ligne de mot RAC, le compteur d'adresse de colonne CAC, le multiplexeur MUX1, le décodeur de colonne YDEC, le 20 registre de programmation LT, le circuit de lecteur SA, le détecteur DETF, le comparateur COMP et le tampon BUFI.
Le bus de données DTB ne comporte ici que huit bits de données d[7:0], le circuit de lecture SA ne comprend que huit amplificateurs de lecture, le registre de 25 programmation LT ne comprend que huit verrous haute tension. Egalement, le décodeur de colonne YDEC ne comprend que huit entrées/sorties connectées au registre de programmation LT et au circuit de lecture SA. Enfin, le détecteur DETF ainsi que le comparateur COMP et le 30 tampon BUF1 sont des circuits 8 bits.
Les colonnes électriques ne comprenant ici que huit lignes de bit, le compteur CAC applique au décodeur de colonne YDEC des adresses de colonnes comportant huit bits d'adresse de poids faible a[7:0]. A cet effet, le 35 compteur CAC comprend ici huit entrées in[7:0] au lieu de sept, qui sont connectées au bus d'adresse ADB pour recevoir les bits d'adresse a[7:0].
Ainsi, lors de la lecture d'un compteur CMPTk, l'adresse de colonne ADCOL fournie par le compteur CAC 5 représente ici l'adresse d'un octet et d'un seul. Cette adresse de colonne correspond ici à la position d'un jeton dans le compteur (un jeton correspondant toujours ici à huit bits de données) . De ce fait, il n'est plus nécessaire de convertir une adresse colonne en adresse de 10 ligne de mot, puisqu'il existe une correspondance exacte entre les adresses colonne et les adresses de ligne de mot (chaque secteur comprenant 256 lignes de mots comportant chacune 256 octets, soit 256 colonnes électriques de huit lignes de bit chacune).
Le convertisseur d'adresse ACONV et le convertisseur d'adresse réciproque RACONV sont ainsi supprimés, et l'adresse de colonne ADCOL présente à la sortie du compteur CAC est appliquée directement sur la deuxième entrée du multiplexeur MUX1.
Lorsqu'une page a été effacée dans un secteur STk, la procédure de contrôle de page conduite par le séquenceur SEQ est effectuée ici comme suit. Le séquenceur active le décodeur CDEC, met à zéro le compteur CAC et active le circuit de lecture SA. Le compteur CMPT est lu octet par octet jusqu'à ce que le signal DTF passe à 1, ce qui signifie qu'un octet égal à FF a été trouvé.
Les bits d[7:0] de l'adresse de colonne ADCOL de cet octet sont alors appliqués en tant qu'adresse de 30 ligne de mot ADWL sur les entrées in[15:8] du compteur RAC, par l'intermédiaire du multiplexeur MUX1 et le processus de contrôle de la page désigné par cette adresse page est déclenché.
Le compteur CAC est ensuite remis à zéro et les 35 octets de la page sont lus un par un pour être contrôlés et, si nécessaire, rafraîchis de la manière décrite plus haut. Lorsque tous les octets de la page ont été contrôlés et que les cellules mémoire endommagées ont été reprogrammées, le séquenceur incrémente le compter CMPT. 5 Cette incrémentation consiste ici aussi à mettre à 0 le premier octet égal à FF qui avait été trouvé à l'étape de recherche de l'adresse de la page à contrôler. A cet effet, l'adresse de ligne de mot a[15:8] présente à la sortie du compteur RAC est appliquée en entrée du 10 compteur CAC en tant qu'adresse de colonne a[7:0], par l'intermédiaire d'un circuit tampon BUF2. Lorsque l'adresse de colonne est récupérée par le compteur CAC, l'octet non nul encore présent dans le registre SREG est mis à zéro, est chargé dans le registre LT via le bus de 15 données DTB puis est enregistré dans le compteur.
Les variantes de réalisation du procédé selon l'invention décrites plus haut sont bien entendu applicables à la mémoire MEM2, l'incrémentation du compteur pouvant intervenir avant le contrôle d'une page, 20 et le contrôle d'une page pouvant intervenir avant ou après la programmation d'une page.
Diverses autres variantes peuvent bien entendu être prévues par l'homme de l'art.
De façon générale, la valeur maximale de comptage 25 d'un compteur selon l'invention peut être supérieure au nombre de lignes de mot dans un secteur. Si l'on considère, pour fixer les idées, l'exemple simplifié d'un secteur de 8 pages (X1=8) dans lequel deux pages à la fois (K=2) sont contrôlées tous les quatre cycles (R=4) 30 de programmation de pages du secteur, il vient CMAX2 = X1*R/K=16 Ainsi, un tel compteur peut compter jusqu'à 16 35 (soit 16 jetons utilisables) si un jeton correspond à une page et une seule, sans supporter un nombre de cycles de stress électrique supérieur à celui que peuvent supporter les autres pages du secteur. Si par contre un jeton est utilisé pour désigner simultanément P pages à contrôler, 5 par exemple deux pages (P=2), en faisant intervenir une table de correspondance ou un convertisseur d'adresse, alors la valeur maximale de comptage ne doit pas être supérieure à CMAX2/P soit 8 si P=2.
Enfin, selon l'architecture de la mémoire, on peut 10 également prévoir une gestion de compteur telle que, lorsque la valeur de comptage maximale est atteinte et que le compteur est effacé, le nombre maximal de cycles de stress électriques que subis par les cellules mémoire d'un compteur soit inférieur au nombre maximal de cycles 15 de stress que peuvent subir les autres cellules mémoire d'un secteur.
Le procédé de contrôle et de reprogrammation de cellules mémoire qui vient d'être décrit est particulièrement simple à mettre en oeuvre et nécessite 20 peu de moyens matériels. Il est en outre quasiment transparent pour l'utilisateur car le temps de contrôle et de reprogrammation éventuelle d'une page est de l'ordre de 200 bts, à comparer avec le temps nécessaire à l'effacement préalable d'une page, de l'ordre de 5 ms, 25 auquel s'ajoute un temps de l'ordre de 1 300 Ets (256x5pis) pour la programmation des 256 octets d'une page.
Claims (18)
1. Mémoire (MEM1, MEM2) effaçable et programmable électriquement comprenant: - un plan mémoire organisé en secteurs (STl-ST8), chaque secteur comprenant des cellules mémoire reliées à des 5 lignes de bit (BLj) et à des lignes de mot (WLi), les cellules mémoire reliées à une même ligne de mot (WLi) formant une page du plan mémoire, les cellules mémoire reliées à une même ligne de bit (BLj) étant soumises à un cycle de stress électrique à chaque programmation d'une 10 autre cellule mémoire reliée à la même ligne de bit, - au moins un compteur de contrôle et de rafraîchissement de pages du plan mémoire, comprenant des données formant des jetons utilisables une fois avant effacement du compteur, chaque jeton correspondant par son rang dans le 15 compteur à au moins une adresse d'une page à contrôler, et - des moyens de contrôle et de rafraîchissement (SEQ, CAC, RAC, SA, ACONV, RACONV) assurant la gestion du compteur et agencés pour contrôler et, si nécessaire, 20 rafraîchir des pages désignées par le compteur, caractérisée en ce que: - chaque secteur comprend un compteur (CMPTk, CMPT1CMPT8) de contrôle et de rafraîchissement qui est intégré dans le secteur et qui comprend ainsi des cellules 25 mémoire (FGT) reliées aux lignes de bit (BLj) du secteur, et les moyens de contrôle et de rafraîchissement sont agencés pour effacer un compteur après avoir atteint une valeur maximale de comptage qui est choisie de manière 30 que, lorsque cette valeur maximale de comptage est atteinte, des cellules mémoire du compteur ont subi un nombre de cycles de stress électrique qui est au maximum égal à un nombre déterminé (CMAX).
2. Mémoire selon la revendication 1, dans laquelle le nombre déterminé est le nombre maximal (CMAX2) de cycles de stress électrique que peuvent subir, entre deux contrôles, les pages du secteur correspondant.
3. Mémoire selon l'une des revendications 1 et 2,
dans laquelle la valeur maximale de comptage d'un compteur est choisie de manière que toutes les pages du 10 secteur correspondant soient contrôlées au moins une fois entre deux effacements du compteur.
4. Mémoire selon l'une des revendications 1 à 3,
dans laquelle un jeton désigne un nombre (P) de pages 15 déterminé, et dans laquelle la valeur maximale de comptage d'un compteur est égale au nombre maximal (CMAX2) de cycles de stress électrique que peuvent subir, entre deux contrôles, les pages du secteur correspondant, divisé par le nombre de pages (P) que désigne un jeton. 20
5. Mémoire selon l'une des revendications - 1 à 4,
dans laquelle les moyens de contrôle et de rafraîchissement sont agencés pour, avant ou après chaque cycle de programmation d'une page d'un secteur, contrôler 25 une page et une seule du même secteur.
6. Mémoire selon l'une des revendications 1 à 5,
comprenant des moyens (DETF) pour attribuer à un jeton d'un compteur une valeur logique qui est égale à la 30 valeur logique majoritaire d'un groupe de bits enregistrés dans un groupe de cellules mémoire du compteur, l'état utilisé ou non utilisé du jeton étant fonction de la valeur logique majoritaire.
7. Mémoire selon la revendication 6, dans laquelle la valeur maximale de comptage couvre toute l'étendue de stockage de données offerte par le compteur, de sorte que chaque cellule mémoire d'un compteur reçoit un bit formant une partie de jeton.
8. Mémoire selon l'une des revendications 6 et 7,
dans laquelle un groupe de cellules mémoire correspondant à un jeton comprend un nombre de cellules mémoire égal au 10 rapport (N/M) du nombre de cellules mémoire (N) du compteur au nombre de pages (M) que comprend le secteur dans lequel se trouve le compteur.
9. Mémoire selon l'une des revendications 1 à 8, 15 dans laquelle les moyens de contrôle et de rafraîchissement sont agencés pour effacer un compteur pendant l'effacement d'une page du secteur dans lequel se trouve le compteur.
10. Mémoire selon l'une des revendications 1 à 9,
comprenant un convertisseur d'adresse (ACONV) pour convertir le rang (ADCOL) d'un jeton non utilisé en adresse (ADWL) d'une page à contrôler.
11. Procédé de contrôle et de rafraîchissement de cellules mémoire dans une mémoire (MEM1, MEM2) effaçable et programmable électriquement comprenant un plan mémoire organisé en secteurs (STl-ST8), chaque secteur comprenant des cellules mémoire reliées à des lignes de bit (BLj) et 30 à des lignes de mot (WLi), les cellules mémoire reliées à une même ligne de mot (WLi) formant une page du plan mémoire, les cellules mémoire reliées à une même ligne de bit (BLj) étant soumises à un cycle de stress électrique à chaque programmation d'une autre cellule mémoire reliée 35 à la même ligne de bit, procédé comprenant le contrôle et si nécessaire le rafraîchissement de cellules mémoire de pages du plan mémoire dont l'adresse est indiquée par un compteur de contrôle et de rafraîchissement comprenant des données 5 formant des jetons utilisables une fois avant effacement du compteur, chaque jeton correspondant, par son rang dans le compteur, à au moins une adresse d'une page à contrôler, procédé caractérisé en ce que - un compteur (CMPTk, CMPTl-CMPT8) de contrôle et de rafraîchissement est intégré dans chaque secteur de la mémoire et comprend des cellules mémoire (FGT) reliées aux lignes de bit (BLj) du secteur, et - un compteur d'un secteur est effacé après avoir atteint 15 une valeur maximale de comptage qui est choisie de manière que, lorsque cette valeur maximale de comptage est atteinte, des cellules mémoire du compteur ont subi un nombre de cycles de stress électrique qui est au maximum égal à un nombre déterminé (CMAX). 20
12. Procédé selon la revendication 11, dans lequel le nombre déterminé est le nombre maximal (CMAX2) de cycles de stress électrique que peuvent subir, entre deux contrôles, les pages du secteur correspondant. 25
13. Procédé selon l'une des revendications 11 et
12, dans lequel la valeur maximale de comptage d'un compteur est choisie de manière que toutes les pages du secteur correspondant soient contrôlées au moins une fois 30 entre deux effacements du compteur.
14. Procédé selon l'une des revendications 11 à 13, dans lequel un jeton désigne un nombre (P) de pages déterminé, et dans lequel la valeur maximale de comptage 35 d'un compteur est égale au nombre maximal (CMAX2) de cycles de stress électrique que peuvent subir, entre deux contrôles, les pages du secteur correspondant, divisé par le nombre de pages (P) que désigne un jeton.
15. Procédé selon l'une des revendications 11 à 14, dans lequel une page d'un secteur est contrôlée avant ou après chaque programmation d'une page du même secteur.
16. Procédé selon l'une des revendications 11 à 15, 10 dans lequel l'état utilisé ou non utilisé d'un jeton d'un compteur est déterminé par la valeur logique majoritaire d'un groupe de bits enregistrés dans un groupe de cellules mémoire du compteur.
17. Procédé selon l'une des revendications 11 à 16, la valeur maximale de comptage d'un compteur couvre toutes les cellules mémoire du compteur, de sorte que des jetons sont enregistrés dans toutes les cellules mémoire du compteur.
18. Procédé selon l'une des revendications 11 à 17, dans lequel un compteur est effacé pendant l'effacement d'une page du secteur dans lequel se trouve le compteur.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0301558A FR2851074B1 (fr) | 2003-02-10 | 2003-02-10 | Memoire flash sectorisee comprenant des moyens de controle et de rafraichissement de cellules memoire |
US10/775,032 US6965526B2 (en) | 2003-02-10 | 2004-02-09 | Sectored flash memory comprising means for controlling and for refreshing memory cells |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0301558A FR2851074B1 (fr) | 2003-02-10 | 2003-02-10 | Memoire flash sectorisee comprenant des moyens de controle et de rafraichissement de cellules memoire |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2851074A1 true FR2851074A1 (fr) | 2004-08-13 |
FR2851074B1 FR2851074B1 (fr) | 2005-04-22 |
Family
ID=32731915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0301558A Expired - Fee Related FR2851074B1 (fr) | 2003-02-10 | 2003-02-10 | Memoire flash sectorisee comprenant des moyens de controle et de rafraichissement de cellules memoire |
Country Status (2)
Country | Link |
---|---|
US (1) | US6965526B2 (fr) |
FR (1) | FR2851074B1 (fr) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4335659B2 (ja) * | 2003-12-19 | 2009-09-30 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
US7254692B1 (en) * | 2004-03-02 | 2007-08-07 | Advanced Micro Devices, Inc. | Testing for operating life of a memory device with address cycling using a gray code sequence |
JP2007012173A (ja) * | 2005-06-30 | 2007-01-18 | Toshiba Corp | 半導体記憶装置 |
JP2007157296A (ja) * | 2005-12-08 | 2007-06-21 | Toshiba Corp | 半導体記憶装置 |
US7447096B2 (en) * | 2006-05-05 | 2008-11-04 | Honeywell International Inc. | Method for refreshing a non-volatile memory |
US7512015B1 (en) | 2006-07-17 | 2009-03-31 | Lattice Semiconductor Corporation | Negative voltage blocking for embedded memories |
US7636259B1 (en) | 2006-07-17 | 2009-12-22 | Lallice Semiconductor Corporation | Flash memory array with independently erasable sectors |
EP1884955A1 (fr) * | 2006-07-28 | 2008-02-06 | STMicroelectronics S.r.l. | Compteur d'adresses pour dispositif de mémoire non-volatile |
CN101425337B (zh) * | 2007-10-29 | 2011-11-30 | 芯邦科技(深圳)有限公司 | 一种闪存数据存储方法和装置 |
US9141475B2 (en) * | 2008-11-23 | 2015-09-22 | Sandisk Technologies | Methods for tag-grouping of blocks in storage devices |
US7859932B2 (en) * | 2008-12-18 | 2010-12-28 | Sandisk Corporation | Data refresh for non-volatile storage |
TWI405208B (zh) * | 2009-08-06 | 2013-08-11 | Novatek Microelectronics Corp | 快閃記憶體及其存取方法 |
US8255642B2 (en) * | 2009-12-03 | 2012-08-28 | International Business Machines Corporation | Automatic detection of stress condition |
US11152050B2 (en) | 2018-06-19 | 2021-10-19 | Micron Technology, Inc. | Apparatuses and methods for multiple row hammer refresh address sequences |
EP3627308A1 (fr) | 2018-09-20 | 2020-03-25 | STMicroelectronics Srl | Procédé de gestion de mémoires, circuit, dispositif et produit-programme d'ordinateur correspondants |
US11043254B2 (en) | 2019-03-19 | 2021-06-22 | Micron Technology, Inc. | Semiconductor device having cam that stores address signals |
US11264096B2 (en) | 2019-05-14 | 2022-03-01 | Micron Technology, Inc. | Apparatuses, systems, and methods for a content addressable memory cell with latch and comparator circuits |
US11158364B2 (en) | 2019-05-31 | 2021-10-26 | Micron Technology, Inc. | Apparatuses and methods for tracking victim rows |
US11158373B2 (en) | 2019-06-11 | 2021-10-26 | Micron Technology, Inc. | Apparatuses, systems, and methods for determining extremum numerical values |
US10832792B1 (en) | 2019-07-01 | 2020-11-10 | Micron Technology, Inc. | Apparatuses and methods for adjusting victim data |
US11139015B2 (en) | 2019-07-01 | 2021-10-05 | Micron Technology, Inc. | Apparatuses and methods for monitoring word line accesses |
US10964378B2 (en) | 2019-08-22 | 2021-03-30 | Micron Technology, Inc. | Apparatus and method including analog accumulator for determining row access rate and target row address used for refresh operation |
US11462291B2 (en) * | 2020-11-23 | 2022-10-04 | Micron Technology, Inc. | Apparatuses and methods for tracking word line accesses |
US11482275B2 (en) | 2021-01-20 | 2022-10-25 | Micron Technology, Inc. | Apparatuses and methods for dynamically allocated aggressor detection |
US11600314B2 (en) | 2021-03-15 | 2023-03-07 | Micron Technology, Inc. | Apparatuses and methods for sketch circuits for refresh binning |
US11579797B2 (en) * | 2021-04-29 | 2023-02-14 | Micron Technology, Inc. | Memory sub-system refresh |
US11664063B2 (en) | 2021-08-12 | 2023-05-30 | Micron Technology, Inc. | Apparatuses and methods for countering memory attacks |
US11688451B2 (en) | 2021-11-29 | 2023-06-27 | Micron Technology, Inc. | Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386533A (en) * | 1990-11-21 | 1995-01-31 | Texas Instruments Incorporated | Method and apparatus for maintaining variable data in a non-volatile electronic memory device |
FR2810152A1 (fr) * | 2000-06-13 | 2001-12-14 | St Microelectronics Sa | Memoire eeprom securisee comprenant un circuit de correction d'erreur |
US6345001B1 (en) * | 2000-09-14 | 2002-02-05 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
FR2816751A1 (fr) * | 2000-11-15 | 2002-05-17 | St Microelectronics Sa | Memoire flash effacable par page |
EP1233421A1 (fr) * | 2001-02-19 | 2002-08-21 | STMicroelectronics S.r.l. | Procédé de rafraíchissement de données emmagasinées dans une mémoire non volatile effaçable et programmable électriquement |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6005810A (en) * | 1998-08-10 | 1999-12-21 | Integrated Silicon Solution, Inc. | Byte-programmable flash memory having counters and secondary storage for disturb control during program and erase operations |
-
2003
- 2003-02-10 FR FR0301558A patent/FR2851074B1/fr not_active Expired - Fee Related
-
2004
- 2004-02-09 US US10/775,032 patent/US6965526B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386533A (en) * | 1990-11-21 | 1995-01-31 | Texas Instruments Incorporated | Method and apparatus for maintaining variable data in a non-volatile electronic memory device |
FR2810152A1 (fr) * | 2000-06-13 | 2001-12-14 | St Microelectronics Sa | Memoire eeprom securisee comprenant un circuit de correction d'erreur |
US6345001B1 (en) * | 2000-09-14 | 2002-02-05 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
FR2816751A1 (fr) * | 2000-11-15 | 2002-05-17 | St Microelectronics Sa | Memoire flash effacable par page |
EP1233421A1 (fr) * | 2001-02-19 | 2002-08-21 | STMicroelectronics S.r.l. | Procédé de rafraíchissement de données emmagasinées dans une mémoire non volatile effaçable et programmable électriquement |
Also Published As
Publication number | Publication date |
---|---|
FR2851074B1 (fr) | 2005-04-22 |
US6965526B2 (en) | 2005-11-15 |
US20040213035A1 (en) | 2004-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2851074A1 (fr) | Memoire flash sectorisee comprenant des moyens de controle et de rafraichissement de cellules memoire | |
EP1342244B1 (fr) | Memoire flash effacable par page | |
EP0674264B1 (fr) | Circuit de sélection d'éléments de mémoire redondants et mémoire "FLASH EEPROM" comportant ledit circuit | |
US8320183B2 (en) | Controlling a memory device responsive to degradation | |
EP0300885B1 (fr) | Circuit intégré à mémoire comportant un dispositif anti-fraude | |
FR2857495A1 (fr) | Dispositif a memoire flash et procedes pour programmer des bits de donnees et pour les lire | |
EP1727152B1 (fr) | Architecture de mémoire EEPROM | |
FR2798218A1 (fr) | Dispositif de memoire flash du type nor haute densite et son procede de programmation | |
EP1111621A1 (fr) | Mémoire flash programmable page par page | |
FR2800503A1 (fr) | Dispositif de memorisation a semiconducteur remanent permettant de maintenir une marge entre les distributions de tensions de seuil | |
FR2857497A1 (fr) | Dispositif a memoire a circuit integre | |
EP1233422B1 (fr) | Procédé et dispositif de rafraîchissement de cellules de référence | |
FR2816750A1 (fr) | Memoire flash comprenant des moyens de controle de la tension de seuil de cellules memoire | |
FR3039922A1 (fr) | Procede d'ecriture dans une memoire du type eeprom et dispositif de memoire correspondant | |
EP0676769B1 (fr) | Mémoire non volatile modifiable électriquement incorporant des fonctions de test | |
EP1248268A1 (fr) | Mémoire EEPROM programmable par mot comprenant des verrous de sélection de colonne à double fonction | |
EP1486987B1 (fr) | Memoire flash comprenant des moyens de contrôle et de rafraîchissement de cellules mémoire dans l'état effacé | |
FR3006491A1 (fr) | Procede d’ecriture dans une memoire de type eeprom incluant un rafraichissement de cellules memoire | |
FR2802734A1 (fr) | Procede de correction d'un bit dans une chaine de bits | |
FR3044460A1 (fr) | Amplificateur de lecture pour memoire, en particulier une memoire eeprom | |
EP1158408B1 (fr) | Mémoire EEPROM comprenant un système de correction d'erreur | |
FR3044818A1 (fr) | Procede de gestion d'une ligne defectueuse du plan memoire d'une memoire non volatile et dispositif de memoire correspondant | |
EP1256961B1 (fr) | Architecture de mémoire non volatile et circuit intégré comportant une mémoire correspondante | |
WO2014060096A1 (fr) | Procédé de gestion d'une mémoire flash | |
EP4345821A1 (fr) | Circuit de traitement logique de donnees integre dans un circuit de stockage de donnees |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20101029 |