FR3072494A1 - Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables - Google Patents

Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables Download PDF

Info

Publication number
FR3072494A1
FR3072494A1 FR1759765A FR1759765A FR3072494A1 FR 3072494 A1 FR3072494 A1 FR 3072494A1 FR 1759765 A FR1759765 A FR 1759765A FR 1759765 A FR1759765 A FR 1759765A FR 3072494 A1 FR3072494 A1 FR 3072494A1
Authority
FR
France
Prior art keywords
retention
errors
page
age
remaining
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
Application number
FR1759765A
Other languages
English (en)
Other versions
FR3072494B1 (fr
Inventor
Valentin Gherman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Priority to FR1759765A priority Critical patent/FR3072494B1/fr
Priority to EP18782028.7A priority patent/EP3698364A1/fr
Priority to PCT/EP2018/076565 priority patent/WO2019076613A1/fr
Priority to US16/756,837 priority patent/US10990477B2/en
Publication of FR3072494A1 publication Critical patent/FR3072494A1/fr
Application granted granted Critical
Publication of FR3072494B1 publication Critical patent/FR3072494B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50016Marginal testing, e.g. race, voltage or current testing of retention

Abstract

L'invention porte sur un procédé pour contrÎler le rafraichissement de données dans des mémoires non-volatiles reprogrammables, ayant pluralité de pages mémoire pour stocker des données. Le procédé opÚre selon les étapes consistant à : - calculer le nombre d'erreurs de rétention et d'erreurs de non-rétention dans au moins une page mémoire; - calculer l'âge de rétention de ladite au moins une page mémoire ; - estimer le temps de rétention restant pour ladite page en fonction des paramÚtres précédemment calculés ; et - déterminer si la page doit être rafraichie ou non en fonction de la valeur estimée du temps de rétention restant.

Description

DISPOSITIF ET PROCEDE DE CONTROLE DES CYCLES DE
RAFRAICHISSEMENT DE DONNEES DANS DES MEMOIRES NONVOLATILES REPROGRAMMABLES
Domaine de l’invention
L’invention concerne le domaine des mémoires non-volatiles et s’intéresse en particulier au temps de rétention et aux cycles de rafraîchissement des données stockées dans des mémoires non-volatiles reprogrammables.
Etat de la Technique
Les mémoires non-volatiles (MNVs) ont la capacité de pouvoir garder leurs données après une mise hors tension. Les mémoires nonvolatiles reprogrammables ont la capacité de pouvoir garder leurs données après une mise hors tension, tout en permettant la reprogrammation des données par l’utilisateur. Un exemple est la mémoire flash dont les utilisations sont nombreuses, e.g. dans les appareils photo numériques, les téléphones cellulaires, les imprimantes, les assistants personnels (PDA), ou dispositifs de lecture et d'enregistrement sonore comme les baladeurs numériques, les clés USB. Les mémoires flash forment l’infrastructure de stockage dans les disques électroniques connus sous le nom de disques (SSD) de l’anglais « SolidState Drive », destinés à remplacer les disques durs traditionnels connus sous le nom de disques (HDD) de l’anglais « Hard-Disk Drive ».
Un SSD peut contenir des dizaines de mémoires flash. Une mémoire flash est divisée en milliers de blocs. Chaque bloc peut contenir une centaine de pages chacune ayant des milliers ou dizaines de milliers de bits. Certains SSDs utilisent des mémoires flash de type (MLC) de l’anglais « Multi Level Cell » permettant de stocker 2 bits par cellule mémoire ou de type (TLC) de l’anglais « Triple Level Cell >> permettant de stocker 3 bits par cellule mémoire au lieu de 1 bit par cellule mémoire comme dans les mémoires flash de type (SLC) de l’anglais « Single Level Cell ». En dehors de l’augmentation de la finesse de gravure, le fait de loger plusieurs bits par cellule permet d’augmenter la densité de stockage d’information et de réduire la différence de prix par gigaoctet (GB) entre les SSDs et les disques durs HDDs.
Cependant, l’amélioration de la densité de stockage affecte le temps de rétention des données stockées dans les cellules mémoire, i.e. le temps correspondant à la période de temps garantie pour la conservation de données, et affecte l’endurance des mémoires flash qui est généralement mesurée en nombre de cycles de programmation/effacement (P/E) garantis. Par exemple, l’endurance d’une mémoire flash est réduite d’une décade en moyenne pour chaque bit supplémentaire stocké dans les cellules mémoires. La rétention limitée des données est due à l’apparition des erreurs de rétention dont le nombre augmente avec l’âge de rétention, i.e. le temps écoulé depuis la programmation des données.
Il est possible d’utiliser des codes correcteurs d’erreurs (ECC) plus puissants avec plus de bits de vérification et plus de capacité de correction pour agir sur le temps de rétention des données.
Le rafraîchissement périodique des données permet aussi d’estomper les effets de la réduction d’endurance et du temps de rétention. Ce rafraîchissement peut être exécuté sans changer le lieu où les données sont stockées, en injectant juste la quantité de charge qui manque sur la grille flottante des cellules flash. Alternativement, le rafraîchissement peut être fait par réécriture en reprogrammant les données à une autre location physique.
Cependant, un inconvénient de telles approches connues est qu’elles sont adaptées pour des situations « pire cas >> sans tenir compte des variations du taux d’erreurs qui peuvent se manifester d’une mémoire à une autre, d’un bloc à un autre à l’intérieur d’une même mémoire, ou d’une page à une autre à l’intérieur d’un même bloc. Ainsi, par exemple, une étude à grande échelle concernant les SSDs d’un centre de données, a montré qu’un nombre relativement restreint des SSDs contribue à la dégradation du taux d’erreurs total (J. Meza et al., “A large-scale study of flash memory failures in the field,” ACM SIGMETRICS International Conférence on Measurement and Modeling of Computer System, pp. 177-190, 2015). Ces SSDs qui constituent la situation «pire cas» imposent une fréquence de rafraîchissement fixe adaptée au taux d’erreurs de ces SSDs pire cas. Cependant, cette fréquence de rafraîchissement est trop pessimiste pour les autres SSDs.
Aussi, il existe le besoin d’une solution pour agir sur le temps de rétention des données et sur l’endurance des mémoires, qui contourne l’utilisation de codes correcteurs plus puissants. Il existe le besoin d’une solution pour agir sur le temps de rétention des données et sur l’endurance des mémoires qui adapte les cycles de rafraîchissement des données au taux d’erreur de chaque SSD, mémoire, bloc mémoire ou page mémoire, et non des cycles adaptés au pire cas pour toute une population de mémoires non-volatiles MNVs ou de disques électroniques SSDs pouvant contenir des unités sujettes à plus d’erreurs que les autres.
La présente invention répond à ce besoin.
Résumé de l’invention
Un objet de la présente invention est de proposer un procédé et un dispositif associé, permettant de contrôler la fréquence de rafraîchissement de données.
Le procède permet d’estimer un temps de rétention restant pour chaque page d’une mémoire non-volatile, en fonction du nombre d’erreurs de rétention et de l’âge de rétention de la page.
Avantageusement, une page mémoire ayant des données valides n’est rafraîchie que si le temps de rétention restant est plus petit que la durée restante jusqu’au prochain accès à cette page mémoire.
Pour obtenir les résultats recherchés, des procédés tels que revendiqués sont proposés. En particulier, un procédé pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables, lesdites mémoires comprenant une pluralité de pages mémoire pour stocker des données, comprend les étapes suivantes :
- calculer le nombre d’erreurs de rétention et d’erreurs de nonrétention dans au moins une page mémoire;
- calculer l’âge de rétention de ladite au moins une page mémoire ;
- estimer le temps de rétention restant pour ladite page en fonction des paramètres précédemment calculés ; et
- déterminer si la page doit être rafraîchie ou non en fonction de la valeur estimée du temps de rétention restant.
Selon des modes de réalisation :
- l’étape de détermination du rafraîchissement de la page consiste à comparer la valeur estimée du temps de rétention restant à une valeur prédéfinie, ladite valeur prédéfinie correspondant à un intervalle de temps maximum jusqu’au prochain accès à ladite page, et à rafraîchir la page si le temps de rétention restant est plus petit que la valeur prédéfinie ;
- l’étape d’estimation du temps de rétention restant comprend au moins une étape consistant à utiliser une loi statistique avec les paramètres de nombre d’erreurs de rétention, de nombre d’erreurs de non-rétention et d’âge de rétention;
- la loi statistique utilisée est la loi du khi-carré ;
- l’étape d’estimation du temps de rétention restant comprend au moins une étape consistant à obtenir une valeur d’un nombre d’erreurs de rétention maximum toléré pour ladite page, et l’étape de détermination du rafraîchissement comprend au moins une étape consistant à comparer le nombre d’erreurs de rétention maximum toléré au nombre d’erreurs de rétention calculé et à rafraîchir la page si le nombre d’erreurs de rétention est supérieur au nombre d’erreurs de rétention maximum toléré;
- le nombre d’erreurs de rétention maximum toléré correspond à la plus grande valeur du nombre d’erreurs de rétention pour laquelle le temps de rétention restant est plus grand que ladite valeur prédéfinie ;
- l’étape d’estimation du temps de rétention restant comprend au moins une étape consistant à obtenir une valeur d’un âge de rétention minimum toléré pour ladite page, et l’étape de détermination du rafraîchissement comprend au moins une étape consistant à comparer l’âge de rétention minimum toléré à l’âge de rétention calculé et à rafraîchir la page si l’âge de rétention calculé est inférieur à l’âge de rétention minimum toléré ;
- l’âge de rétention minimum toléré correspond au plus petit âge de rétention pour lequel le temps de rétention restant est plus grand que ladite valeur prédéfinie ;
- l’étape d’estimation du temps de rétention restant comprend au moins une étape consistant à lire une table de valeurs précalculées pour des combinaisons de paramètres de nombre d’erreurs de rétention, de nombre d’erreurs de non-rétention et d’âge de rétention, et consistant à sélectionner une valeur stockée pour le nombre d’erreurs de rétention, le nombre d’erreurs de non-rétention et l’âge de rétention calculés pour ladite page ;
- la valeur sélectionnée est un temps de rétention restant ;
- la valeur sélectionnée est un nombre d’erreur de rétention maximum toléré ;
- la valeur sélectionnée est un âge de rétention minimum toléré ;
- la table de valeurs précalculées contient des valeurs binaires représentatives de résultats de la comparaison de temps de rétention restant avec ladite valeur prédéfinie, ou de résultats de la comparaison de nombre d’erreurs de rétention avec le nombre d’erreurs de rétention maximum toléré, ou de résultats de la comparaison d’âge de rétention avec l’âge de rétention minimum toléré ;
- l’étape de calculer l’âge de rétention de ladite au moins une page mémoire consiste à lire une étiquette de temps associée à ladite page et à faire la différence entre l’état d’un compteur ayant fourni des étiquettes de temps aux pages mémoire et l’étiquette de temps lue;
- l’étape de calculer le nombre d’erreurs de rétention et le nombre d’erreurs de non-rétention comprend au moins des étapes consistant à détecter les erreurs dans ladite page, corriger les erreurs selon la capacité d’un code correcteur d’erreur et à déterminer les erreurs de nonrétention en comparant les valeurs lues et les valeurs corrigées.
L’invention couvre aussi un dispositif pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables, lesdites mémoires comprenant une pluralité de pages mémoire pour stocker des données, le dispositif comprenant des moyens pour mettre en oeuvre le procédé revendiqué dans ses différents modes de réalisation. En particulier, le dispositif comprend:
- un circuit apte à calculer le nombre d’erreurs de rétention et d’erreurs de non-rétention dans au moins une page mémoire;
- un circuit apte à calculer l’âge de rétention de ladite au moins une page mémoire ;
- un circuit apte à estimer le temps de rétention restant pour ladite page en fonction des paramètres précédemment calculés ; et
- un circuit apte à déterminer si la page doit être rafraîchie ou non en fonction de la valeur estimée du temps de rétention restant.
Dans un mode de réalisation, le dispositif comprend de plus un circuit apte à rafraîchir ladite page.
L’invention porte aussi sur un système de stockage de données comprenant au moins une mémoire non-volatile reprogrammable ayant une pluralité de pages mémoire pour stocker des données, et au moins un dispositif tel que revendiqué pour contrôler le rafraîchissement de données dans ladite au moins une mémoire non-volatile reprogrammable.
Dans un mode de réalisation, le dispositif revendiqué est intégré à un contrôleur apte à gérer des opérations de lecture et écriture d’une pluralité de pages mémoire.
L’invention porte aussi sur un programme d'ordinateur qui comporte des instructions de code pour l'exécution du procédé pour contrôler le rafraîchissement de données dans des mémoires nonvolatiles reprogrammables tel que revendiqué. L’invention peut être disponible sur un support d'enregistrement lisible par un processeur sur lequel est enregistré un programme comportant des instructions pour l'exécution du procédé revendiqué.
Description des figures
Différents aspects et avantages de l’invention vont apparaître en appui de la description des modes préférés d’implémentation de l’invention mais non limitatifs, avec référence aux figures ci-dessous :
• La figure 1 montre un schéma bloc d’un hôte et d’une carte mémoire ou un disque SSD permettant d’implémenter le dispositif de l’invention ;
• La figure 2 montre la structure interne d’une mémoire non-volatile dans un mode de réalisation ;
• La figure 3 montre un schéma bloc du dispositif de l’invention selon un mode de réalisation ;
• La figure 4 illustre un enchaînement d’étapes du procédé de l’invention selon un mode de réalisation ;
• La figure 5 illustre un enchaînement d’étapes du procédé de l’invention selon une variante de réalisation ; et • La figure 6 illustre un enchaînement d’étapes du procédé de l’invention selon une autre variante de réalisation.
Description détaillée de l’invention
La figure 1 montre de manière schématique un hôte 120 couplé à un système de stockage 110 permettant d’implémenter le dispositif de l’invention. Le système de stockage 110 peut être par exemple un disque SSD ou une carte mémoire. Dans l’exemple décrit, le système de stockage 110 est représenté comme comprenant une pluralité de mémoires non volatiles MNVs 112. Dans une variante d’implémentation, le système de stockage comprend une seule MNV. Le système de stockage 110 comprend aussi des interfaces de connexion 105 pour se connecter avec l’hôte. De manière bien connue de l’homme du métier, de telles interfaces peuvent être des connecteurs de type USB de l’anglais « Universal System Bus » ou encore de type SATA de l’anglais « Serial Advanced Technology Attachment >>. Le système de stockage 110 peut ainsi se connecter via le connecteur à l’interface correspondante de l’hôte 120 pour échanger des données selon différents protocoles, tels que les protocoles USB, SATA ou d’autres protocoles plus spécifiques de l’hôte.
Dans une variante de réalisation, le système de stockage 110 peut être une carte embarquée d’un système hôte, l’hôte pouvant par ailleurs accueillir une ou plusieurs cartes mémoires. Selon un autre mode d’implémentation, l’hôte 120 et le système de stockage 110 sont en communication sans fil et échangent selon des protocoles Wi-Fi de l’anglais « Wireless Fidelity ».
L’hôte peut être tout système qui peut contenir des cartes mémoire ou disques SSD ou échanger des données avec des cartes mémoire ou des disques SSD. Ainsi, sans constituer une limitation, l’hôte 120 peut être un ordinateur personnel, fixe ou portable, incluant les tablettes, les téléphones portables, les Smartphones ou autres assistants personnels. L’hôte peut aussi être un serveur et comprendre des réceptacles pour accueillir une ou plusieurs cartes mémoire ou disques SSD. L’hôte peut aussi être un microcontrôleur ou un processeur intégré sur la même puce avec le système de stockage 110.
Le système de stockage 110 comprend un circuit de contrôle 111 comprenant des composants bien connus de l’homme du métier permettant de gérer des échanges de données et instructions entre les mémoires MNVs 112 et l’hôte 120 via des interfaces de communication hôte/mémoires, de gérer des opérations de lecture/écriture, de correction d’erreurs dans les mémoires via des codes de correction d’erreurs. Le circuit de contrôle 111 peut être un contrôleur SSD ou un contrôleur carte mémoire. Dans un mode de réalisation, le contrôleur 111 peut être implémenté comme un microcontrôleur. Dans un autre mode de réalisation, l’ensemble des composants du circuit de contrôle peut être implémenté comme un module dédié tel qu’un ASIC de l’anglais « Application Spécifie Integrated Circuit ».
Dans un mode de réalisation, les mémoires non volatiles 112 peuvent être des mémoires de type flash. Dans une variante, les MNVs peuvent être des mémoires résistives émergeantes comme les mémoires PCRAM, de l’anglais « Phase-Change Random-Access Memory (RAM) », CBRAM de l’anglais « Conductive-Bridging RAM », ou MRAM de l’anglais « Magnetic RAM ».
Les MNVs 112 du système de stockage peuvent être implémentées sur des puces distinctes ou être intégrées avec le contrôleur 111 sur une même puce. Des circuits de correction d’erreurs (ECC) 114 peuvent être associés aux MNVs afin de corriger les erreurs apparues lors du stockage de données.
Le contrôleur 111 est couplé aux mémoires MNVs 112 via des bus ou canaux de communication 113. Selon des modes de réalisation, un bus peut être connecté à plusieurs MNVs.
La figure 2 montre la structure interne d’une mémoire non volatile permettant d’opérer le procédé de l’invention. Une MNV 210 peut contenir un ou plusieurs blocs mémoire 211-i, chaque bloc mémoire 211-i ayant une ou plusieurs pages mémoire 212-ij. Il est courant qu’un bloc mémoire contienne des centaines de pages. Les pages d’un bloc mémoire sont écrites l’une après l’autre.
Une page mémoire contient des bits d’information relatifs à des données accessibles à l’utilisateur et des bits d’information redondante qui peuvent être utilisés pour la correction d’erreurs ou pour la gestion des données effectuée par le contrôleur.
Les bits d’une page mémoire sont programmés et lus simultanément. Dans le cas d’une MNV de type flash, tous les bits d’un bloc mémoire sont effacés en même temps afin de permettre leur reprogrammation. Une opération d’écriture peut correspondre à une opération de programmation ou à une opération d’effacement suivie d’une opération de programmation.
Le principe général de l’invention repose sur une estimation du temps de rétention restant pour chaque page d’une mémoire non-volatile, en fonction du nombre d’erreurs dans la page et de son âge de rétention. Le procédé de l’invention permettant de contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables ayant une pluralité de pages mémoire pour stocker des données, va consister à calculer le nombre d’erreurs de rétention et d’erreurs de non-rétention dans au moins une page mémoire; à calculer l’âge de rétention de ladite au moins une page mémoire ; à estimer le temps de rétention restant pour ladite page en fonction des paramètres précédemment calculés ; et à déterminer si la page doit être rafraîchie ou non en fonction de la valeur estimée du temps de rétention restant.
En particulier, une page mémoire avec des données valides ne sera rafraîchie que si le temps de rétention restant est plus petit que la durée jusqu’au prochain accès à cette page mémoire, un intervalle de temps maximum entre deux opérations de lecture successives d’une page mémoire étant prédéfini.
Ainsi, la fréquence de rafraîchissement des pages dépend du taux d’erreurs effectif qui affecte ces pages, et n’est pas forcément corrélée à la fréquence de lecture de ces pages mémoire. Avantageusement, comme une opération de lecture peut être beaucoup plus rapide qu’une opération de rafraîchissement, l’impact sur la performance d’un système de stockage peut être sensiblement réduit.
Par ailleurs, la probabilité de rafraîchissement d’une page devient négligeable quand les erreurs peuvent être gérées avec le code correcteur disponible même pour les plus longs temps de rétention garantis.
La figure 3 montre un schéma bloc du dispositif 300 de l’invention selon un mode de réalisation. Le dispositif peut être implémenté dans le contrôleur 111 ou sur du matériel dédié, tel que par exemple un microcontrôleur ou un ASIC ajouté ou couplé au système de stockage
110. Le dispositif comprend un module de lecture/écriture 302 pour accéder aux pages mémoires, qui peut être celui du contrôleur 111.
Un compteur 304 permet d’assigner une étiquette de temps à chaque bloc mémoire lors de la première opération de programmation (après une opération d’effacement ou de réinitialisation du bloc). L’étiquette de temps TS (« timestamp » selon l’anglicisme connu) associée à chaque bloc mémoire est prise en compte pour l’évaluation de l’âge de rétention tage des bits stockés. Dans un mode de réalisation alternatif, une étiquette de temps peut être assignée à chaque page.
Le dispositif comprend un module de calcul 306 permettant de calculer l’âge de rétention tage de l’ensemble des bits stockés dans un bloc mémoire. Avantageusement, en assignant une étiquette de temps au niveau d’un bloc mémoire pour éviter un surcoût de stockage, le procédé de l’invention permet de déterminer le rafraîchissement de données au niveau de chaque page mémoire du bloc mémoire. En effet, le procédé prend en compte le nombre d’erreurs au niveau de chaque page pour décider du rafraîchissement ou non de la page.
Le dispositif comprend un circuit de correction d’erreurs 310 (ECC) qui permet de corriger à l’aide d’un code correcteur, des erreurs apparues lors du stockage de données dans une page. Le circuit ECC a une capacité de correction d’erreur prédéfinie.
Le dispositif comprend un module de comptage d’erreurs ou décodeur d’erreurs 308 qui permet de compter les erreurs existantes sur une page, et de différencier les erreurs de rétention sr des autres types d’erreurs, comme les erreurs de programmation ou de lecture, ces autres types d’erreurs étant par la suite, appelées erreurs de non-rétention snr.
Dans un mode de réalisation, le décodeur d’erreurs et le correcteur d’erreurs sont un seul et même circuit.
Le dispositif comprend de plus un module d’estimation du temps de rétention restant 312 qui permet de calculer ou d’obtenir un temps de rétention restant Tret à partir des paramètres de nombre d’erreurs de rétention, de nombre d’erreurs de non-rétention et d’âge de rétention.
Dans un mode de réalisation, le module d’estimation comprend des moyens de calcul permettant de calculer en ligne une estimation du temps restant. Dans un autre mode de réalisation, le module d’estimation du temps de rétention consiste en une table comprenant des valeurs de temps de rétention restant précalculées. Les valeurs stockées sont calculées hors ligne pour différentes combinaisons des paramètres « nombre d’erreurs de rétention / nombre d’erreurs de non-rétention / âge de rétention ».
Dans une autre variante de réalisation, le module d’estimation du temps de rétention restant permet d’obtenir ou stocker des valeurs de nombre d’erreurs de rétention maximum toléré sr max pour différentes combinaisons des paramètres « nombre d’erreurs de non-rétention / âge de rétention ».
Dans une autre variante de réalisation, le module d’estimation du temps de rétention restant permet d’obtenir ou stocker des valeurs d’âge de rétention minimum toléré tage_min pour différentes combinaisons des paramètres « nombre d’erreurs de rétention / nombre d’erreurs de nonrétention ».
Un module de décision 314 permet de déterminer si un rafraîchissement d’une page doit être opéré, en fonction du résultat produit par le module d’estimation 312.
La figure 4 illustre un enchaînement d’étapes du procédé 400 permettant de déterminer si un rafraîchissement des données stockées dans une page d’une mémoire non volatile doit être effectué. Le procédé 400 débute par une opération de lecture 402 d’une page dans une MNV. L’opération de lecture peut être déclenchée sur une requête reçue de l’hôte 120 ou sur une opération initiée par le contrôleur 111, par exemple lors du management des données stockées à l’intérieur du système de stockage.
Pendant la lecture de la page, les erreurs qui étaient apparues lors du stockage préalable des données dans la page sont détectées et corrigées à l’aide d’un code correcteur (étape 404).
L’étape suivante 406 consiste à compter parmi les erreurs détectées, le nombre d’erreurs de rétention sr et d’erreurs de nonrétention snr. Dans un mode de réalisation, les étapes de comptage d’erreurs et de correction d’erreurs peuvent être réalisées simultanément. Dans le cas où la mémoire non volatile est une mémoire flash de type SLC, la différentiation des erreurs est faite en comparant les valeurs lues et les valeurs corrigées. Dans une telle mémoire, un bit est affecté par une erreur de rétention si la valeur lue est 1 et la valeur corrigée est 0. Dans le cas où la valeur lue est 0 et la valeur corrigée est 1, il s’agit d’une erreur de non-rétention. Dans le cas d’une mémoire PCRAM de type SLC, un bit est affecté par une erreur de rétention si la valeur lue est 0 et la valeur corrigée est 1. L’étape 406 permet d’obtenir le nombre d’erreurs de rétention sr et le nombre d’erreurs de non-rétention snr qui affectent la page lue.
Le procédé continue par une étape 408 de détermination de l'âge de rétention tage de la page lue. Dans un mode de réalisation, l’âge de rétention est obtenu en effectuant la différence entre l’état du compteur ayant fourni une étiquette au bloc mémoire hébergeant la page lue et l’étiquette de temps courante associée à la page lue.
Dans une étape suivante 410, le procédé permet de déterminer le temps de rétention restant TRET en fonction des paramètres obtenus aux étapes précédentes qui sont l’âge de rétention tage, le nombre d’erreurs de rétention eR et le nombre d’erreurs de non-rétention snr. Dans un mode de réalisation, des valeurs de temps de rétention restant TRET sont précalculées hors ligne pour une pluralité de combinaisons des paramètres « âge de rétention tage, nombre d’erreurs de rétention eR, nombre d’erreurs de non-rétention snr». Les valeurs sont stockées comme des métadonnées dans une table dédiée du système de stockage (table d’estimation), qui est accédée en ligne lors de la lecture d’une page. II est à noter que les paramètres de nombre d’erreurs eR et snr sont discrets, tandis que le paramètre d’âge de rétention tage est continu et peut par conséquent prendre une infinité de valeurs. Aussi, afin de diminuer le coût de stockage de la table des valeurs précalculées du temps de rétention restant TRET, une variante de réalisation consiste à ne considérer que des valeurs discrètes de l’âge de rétention tage en prenant un pas tage_step égal à TREt ou à une fraction du TREt, e.g., 1/2, 1/3 etc. La valeur du temps de rétention restant TRET qui correspondra à une valeur donnée de l’âge de rétention tage est alors recherchée dans la table à l’aide d’un index correspondant à la partie entière du rapport tage/îage_step·
Avantageusement, le calcul de l’estimation du temps de rétention restant TREt est fait en utilisant une loi statistique. Dans un mode de réalisation, le calcul consiste à utiliser la loi du khi-carré « χ2 >> qui est connue pour calculer le temps moyen entre les pannes d’un produit quelconque, sur les paramètres de nombre d’erreurs de rétention et d’âge de rétention. L’homme du métier peut considérer utiliser tout calcul de type « temps moyen entre pannes >> (« mean time to failure >> en anglais), d’un produit en fonction du temps de test, du nombre d’échantillons testé et du nombre d’échantillons n’ayant pas passé le test.
Pour estimer le temps de rétention, la loi statistique qui donne l’évolution du nombre des erreurs de rétention avec l’âge de rétention peut être connue, sans nécessairement connaître tous les paramètres qui gouvernent cette loi.
Dans un mode de réalisation, les erreurs de non-rétention dont le nombre peut augmenter avec l’âge de rétention du bloc mémoire, telles les erreurs dues à des lectures répétées dans un bloc mémoire complètement programmé, sont négligées par rapport aux erreurs de rétention.
A l’étape suivante 412, le procédé permet de comparer le temps de rétention restant TRET (qui a été calculé en ligne ou récupéré dans la table de valeurs précalculées) à une valeur prédéfinie TREAd_next correspondant à un intervalle de temps maximal entre deux opérations successives de lecture d’une page mémoire. La valeur TREAd_next peut être définie en fonction de la taille du système de stockage, de la capacité de calcul, des temps morts, et de l’application considérée. Une telle valeur peut être dans une plage allant de quelques semaines à quelques mois par exemple.
Un temps de rétention restant TRET plus petit que Tread_NEXt, signifie que le nombre des erreurs qui vont s’accumuler jusqu’à la prochaine opération de lecture risque de devenir non-corrigeable, compte-tenu de la capacité de l’ECC. Le procédé permet alors (branche oui) de lancer un rafraîchissement de la page (étape 414). Après l’opération de rafraîchissement, le procédé retourne au début.
Un temps de rétention restant TREt plus grand que TREAd_next, signifie qu’il n’y a pas besoin d’un rafraîchissement des données, et le procédé retourne au début (branche non).
Dans un mode de réalisation, afin de réduire le coût du stockage de la table, chaque entrée de la table peut contenir directement le résultat de la comparaison d’un temps de rétention restant TREt avec TREAd_next,
i.e. la table peut contenir un seul bit par entrée, au lieu de contenir les valeurs de TRET, nécessitant plusieurs bits par entrée.
Dans une autre variante de réalisation, le coût du stockage de la table, peut être encore réduit, en tenant compte du fait que le temps de rétention restant TREt est une fonction décroissante selon la variable eR pour toute combinaison des variables tage et enR. Il est alors possible de stocker dans la table, pour chaque combinaison de paramètres tage et enR, un paramètre er_max correspondant au nombre d’erreurs de rétention maximum qui peut être encore toléré jusqu’à la prochaine lecture de la page mémoire sans épuiser la capacité de correction de l’ECC. Pour chaque combinaison de paramètres d’âge de rétention tage et de nombre d’erreurs de non-rétention enR, la valeur du nombre d’erreurs de rétention maximum toléré er_max correspond alors à la plus grande valeur du paramètre de nombre d’erreurs de rétention eR pour laquelle le temps de rétention restant TRET est plus grand que la valeur prédéfinie pour T READ_NEXTCette variante permet de stocker une table en 2 dimensions indexées selon les valeurs des paramètres tage et enR, par rapport à la variante où la table stockée est en 3 dimensions indexées selon les valeurs de paramètres tage, eR et enR.
La figure 5 illustre un enchaînement d’étapes 500 du procédé de l’invention dans une variante de réalisation de l’utilisation du paramètre d’erreurs de rétention maximum toléré er_max- Le procédé débute selon des étapes 502 à 508 identiques aux étapes 402 à 408 du procédé de la figure 4. Elles ne sont pas de nouveau décrites.
A l’étape suivante 510, le procédé permet d’obtenir un nombre d’erreurs de rétention maximum toléré er_max pour une page. La valeur de eR_MAx peut être calculée en ligne ou de manière préférentielle être récupérée dans la table d’estimation du nombre d’erreurs de rétention maximum toléré. La valeur sélectionnée est celle correspondant à une valeur stockée pour les paramètres d’âge de rétention tage et de nombre d’erreurs de non-rétention enr que ceux calculés, avec un temps de rétention restant correspondant à celui calculé, qui est supérieur à l’intervalle de temps maximal (TRET > TREAd_next).
A l’étape suivante 512, le procédé permet de comparer le nombre d’erreurs de rétention er qui a été obtenu suite au décodage par l’ECC de la page, au nombre d’erreurs de rétention maximum toléré er_max·
Un nombre d’erreurs de rétention er plus grand que le nombre d’erreurs de rétention maximum toléré er_max, signifie que le nombre des erreurs qui peuvent être accumulées jusqu’à la prochaine opération de lecture de la page risque de devenir non-corrigeable. Le procédé permet alors que la page soit rafraîchie (étape 514). Après l’opération de rafraîchissement, le procédé retourne au début.
Un nombre d’erreurs de rétention er plus petit ou égal au nombre d’erreurs de rétention maximum toléré er_max, signifie qu’il n’y a pas besoin d’un rafraîchissement des données, et le procédé retourne au début (branche oui).
Dans une autre variante de réalisation, le coût du stockage de la table, peut aussi être réduit, en tenant compte du fait que le temps de rétention restant TREt est une fonction croissante relativement à la variable d’âge de rétention tage, pour toute combinaison des variables er et enR. Il est alors possible de stocker dans la table, pour chaque combinaison de paramètres er et enr, un paramètre tage_min correspondant à l’âge de rétention minimum pour lequel un nombre d’erreurs de rétention er et un nombre d’erreurs de non-rétention enr peuvent être tolérés. Ainsi, pour chaque combinaison de paramètres er et enr, la valeur de l’âge de rétention minimum toléré tage_min correspond au plus petit âge de rétention tage pour lequel le temps de rétention restant Tret est plus grand que la valeur prédéfinie pour Tread_nextCette variante permet de stocker une table en 2 dimensions indexées selon les valeurs des paramètres er et enr, par rapport à la variante où la table stockée est en 3 dimensions indexées selon les valeurs de paramètres tage, er et enr.
La figure 6 illustre un enchaînement d’étapes 600 du procédé de l’invention dans la variante de réalisation avec utilisation du paramètre d’âge de rétention minimum toléré tage_min- Le procédé débute selon des étapes 602 à 608 identiques aux étapes 402 à 408 du procédé de la figure 4. Elles ne sont pas de nouveau décrites.
A l’étape suivante 610, le procédé permet d’obtenir un âge de rétention minimum toléré tage_min pour une page. La valeur du paramètre tage_min peut être calculée en ligne ou de manière préférentielle être récupérée dans la table d’estimation de l’âge de rétention minimum toléré.
A l’étape suivante 612, le procédé permet de comparer l’âge de rétention tage calculé à l’étape 608 à l’âge de rétention minimum toléré ÎAGE_MINUn âge de rétention tage plus petit que l’âge de rétention minimum toléré tage_min, signifie que le nombre des erreurs qui peuvent être accumulées jusqu’à la prochaine opération de lecture de la page risque de devenir non-corrigeable. Le procédé permet alors que la page soit rafraîchie (étape 614). Après l’opération de rafraîchissement, le procédé retourne au début.
Un âge de rétention tage plus grand ou égal à l’âge de rétention minimum toléré tage_min, signifie qu’il n’y a pas besoin d’un rafraîchissement des données, et le procédé retourne au début (branche oui).Ainsi, la présente description illustre une implémentation préférentielle de l’invention, mais n’est pas limitative. Des exemples sont choisis pour permettre une bonne compréhension des principes de l’invention et une application concrète, mais ne sont en rien exhaustifs et doivent permettre à l’homme du métier d’apporter des modifications et 5 des variantes d’implémentation en conservant les mêmes principes.
L’invention peut s’implémenter à partir d’éléments matériel et/ou logiciel. Elle peut être disponible en tant que produit programme d’ordinateur exécuté par un processeur dédié ou par un contrôleur mémoire d’un système de stockage, et qui comprend des instructions 10 pour exécuter les étapes des procédés dans leurs différents modes de réalisation.

Claims (22)

  1. Revendications
    1. Procédé pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables, lesdites mémoires comprenant une pluralité de pages mémoire pour stocker des données, le procédé comprenant les étapes suivantes :
    - calculer le nombre d’erreurs de rétention et d’erreurs de non-rétention dans au moins une page mémoire;
    - calculer l’âge de rétention de ladite au moins une page mémoire ;
    - estimer le temps de rétention restant pour ladite page en fonction des paramètres précédemment calculés ; et
    - déterminer si la page doit être rafraîchie ou non en fonction de la valeur estimée du temps de rétention restant.
  2. 2. Le procédé selon la revendication 1 dans lequel l’étape de détermination du rafraîchissement de la page consiste à comparer la valeur estimée du temps de rétention restant à une valeur prédéfinie, ladite valeur prédéfinie correspondant à un intervalle de temps maximum jusqu’au prochain accès à ladite page, et à rafraîchir la page si le temps de rétention restant est plus petit que la valeur prédéfinie.
  3. 3. Le procédé selon la revendication 1 ou 2 dans lequel l’étape d’estimation du temps de rétention restant comprend au moins une étape consistant à utiliser une loi statistique avec les paramètres de nombre d’erreurs de rétention, de nombre d’erreurs de non-rétention et d’âge de rétention.
  4. 4. Le procédé selon la revendication 3 dans lequel la loi statistique est la loi du khi-carré χ2.
  5. 5. Le procédé selon l’une quelconque des revendications 1 à 4 dans lequel l’étape d’estimation du temps de rétention restant comprend au moins une étape consistant à obtenir une valeur d’un nombre d’erreurs de rétention maximum toléré pour ladite page, et l’étape de détermination du rafraîchissement comprend au moins une étape consistant à comparer le nombre d’erreurs de rétention maximum toléré au nombre d’erreurs de rétention calculé et à rafraîchir la page si le nombre d’erreurs de rétention calculé est supérieur au nombre d’erreurs de rétention maximum toléré.
  6. 6. Le procédé selon la revendication 5 dans lequel le nombre d’erreurs de rétention maximum toléré correspond à la plus grande valeur du nombre d’erreurs de rétention pour laquelle le temps de rétention restant est plus grand que ladite valeur prédéfinie.
  7. 7. Le procédé selon l’une quelconque des revendications 1 à 4 dans lequel l’étape d’estimation du temps de rétention restant comprend au moins une étape consistant à obtenir une valeur d’un âge de rétention minimum toléré pour ladite page, et l’étape de détermination du rafraîchissement comprend au moins une étape consistant à comparer l’âge de rétention minimum toléré à l’âge de rétention calculé et à rafraîchir la page si l’âge de rétention calculé est inférieur à l’âge de rétention minimum toléré.
  8. 8. Le procédé selon la revendication 7 dans lequel l’âge de rétention minimum toléré correspond au plus petit âge de rétention pour lequel le temps de rétention restant est plus grand que ladite valeur prédéfinie.
  9. 9. Le procédé selon l’une quelconque des revendications 1 à 8 dans lequel l’étape d’estimation du temps de rétention restant comprend au moins une étape consistant à lire une table de valeurs précalculées pour des combinaisons de paramètres de nombre d’erreurs de rétention, de nombre d’erreurs de nonrétention et d’âge de rétention, et consistant à sélectionner une valeur stockée pour le nombre d’erreurs de rétention, le nombre d’erreurs de non-rétention et l’âge de rétention calculés pour ladite page.
  10. 10. Le procédé selon la revendication 9 dans lequel la valeur sélectionnée est un temps de rétention restant.
  11. 11. Le procédé selon la revendication 9 dans lequel la valeur sélectionnée est un nombre d’erreur de rétention maximum toléré.
  12. 12. Le procédé selon la revendication 9 dans lequel la valeur sélectionnée est un âge de rétention minimum toléré.
  13. 13. Le procédé selon la revendication 9 dans lequel la table de valeurs précalculées contient des valeurs binaires représentatives de résultats de la comparaison de temps de rétention restant avec ladite valeur prédéfinie, ou de résultats de la comparaison de nombre d’erreurs de rétention avec le nombre d’erreurs de rétention maximum toléré, ou de résultats de la comparaison d’âge de rétention avec l’âge de rétention minimum toléré.
  14. 14. Le procédé selon l’une quelconque des revendications 1 à 13 dans lequel l’étape de calculer l’âge de rétention de ladite au moins une page mémoire consiste à lire une étiquette de temps associée à ladite page et à faire la différence entre l’état d’un compteur ayant fourni des étiquettes de temps aux pages mémoire et l’étiquette de temps lue.
  15. 15. Le procédé selon l’une quelconque des revendications 1 à 14 dans lequel l’étape de calculer le nombre d’erreurs de rétention et le nombre d’erreurs de non-rétention comprend au moins des étapes consistant à détecter les erreurs dans ladite page, corriger les erreurs selon la capacité d’un code correcteur d’erreur et à déterminer les erreurs de non-rétention en comparant les valeurs lues et les valeurs corrigées.
  16. 16. Un dispositif pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables, lesdites mémoires comprenant une pluralité de pages mémoire pour stocker des données, le dispositif comprenant :
    - un circuit apte à calculer le nombre d’erreurs de rétention et d’erreurs de non-rétention dans au moins une page mémoire;
    - un circuit apte à calculer l’âge de rétention de ladite au moins une page mémoire ;
    - un circuit apte à estimer le temps de rétention restant pour ladite page en fonction des paramètres précédemment calculés ; et
    - un circuit apte à déterminer si la page doit être rafraîchie ou non en fonction de la valeur estimée du temps de rétention restant.
  17. 17. Le dispositif selon la revendication 16 comprenant de plus un circuit apte à rafraîchir ladite page.
  18. 18. Le dispositif selon la revendication 16 ou 17 comprenant des moyens pour mettre en oeuvre le procédé selon l’une quelconque des revendications 2 à 15.
  19. 19. Un système de stockage de données comprenant au moins une mémoire non-volatile reprogrammable ayant une pluralité de pages mémoire pour stocker des données, et au moins un dispositif pour contrôler le rafraîchissement de données dans ladite au moins une mémoire non-volatile reprogrammable, ledit au moins un dispositif comprenant des moyens pour mettre en œuvre les étapes du procédé selon l’une quelconque des revendications 1 à 15.
  20. 20. Le système stockage de données selon la revendication 16 dans lequel ledit au moins un dispositif comprenant des moyens pour mettre en œuvre les étapes du procédé selon l’une quelconque des revendications 1 à 15 est intégré à un contrôleur apte à gérer les opérations de lecture et écriture de la pluralité des pages.
  21. 21. Programme d'ordinateur comportant des instructions pour l'exécution du procédé pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables selon l’une quelconque des revendications 1 à 15, lorsque le programme est exécuté par un processeur.
  22. 22. Support d'enregistrement lisible par un processeur sur lequel est enregistré un programme comportant des instructions pour l'exécution du procédé pour contrôler le rafraîchissement de données dans des mémoires non-volatiles reprogrammables selon l’une quelconque des revendications 1 à 15, lorsque le programme est exécuté par le processeur.
FR1759765A 2017-10-18 2017-10-18 Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables Expired - Fee Related FR3072494B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1759765A FR3072494B1 (fr) 2017-10-18 2017-10-18 Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables
EP18782028.7A EP3698364A1 (fr) 2017-10-18 2018-10-01 Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables
PCT/EP2018/076565 WO2019076613A1 (fr) 2017-10-18 2018-10-01 Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables
US16/756,837 US10990477B2 (en) 2017-10-18 2018-10-01 Device and method for controlling the data refresh cycles in reprogrammable non-volatile memories

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1759765A FR3072494B1 (fr) 2017-10-18 2017-10-18 Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables
FR1759765 2017-10-18

Publications (2)

Publication Number Publication Date
FR3072494A1 true FR3072494A1 (fr) 2019-04-19
FR3072494B1 FR3072494B1 (fr) 2020-06-19

Family

ID=61599273

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1759765A Expired - Fee Related FR3072494B1 (fr) 2017-10-18 2017-10-18 Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables

Country Status (4)

Country Link
US (1) US10990477B2 (fr)
EP (1) EP3698364A1 (fr)
FR (1) FR3072494B1 (fr)
WO (1) WO2019076613A1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110689914B (zh) * 2019-09-06 2021-08-10 苏州浪潮智能科技有限公司 一种固态硬盘的读纠错方法、装置、设备及存储介质
US11157379B2 (en) 2019-10-30 2021-10-26 International Business Machines Corporation Managing blocks of memory based on block health using hybrid controllers
TWI764856B (zh) * 2021-12-13 2022-05-11 慧榮科技股份有限公司 記憶體控制器與資料處理方法
CN116469442B (zh) * 2022-03-23 2024-05-03 武汉置富半导体技术有限公司 芯片数据保持时间的预测方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130132652A1 (en) * 2010-01-27 2013-05-23 Fusion-Io, Inc. Managing non-volatile media
US20160110125A1 (en) * 2014-10-20 2016-04-21 Fusion-Io, Inc. Storage error management
US20160118137A1 (en) * 2013-08-30 2016-04-28 Empire Technology Development, Llc Reduction of power consumption in flash memory
US9330767B1 (en) * 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US20160179406A1 (en) * 2014-12-22 2016-06-23 Sandisk Technologies Inc. Dynamic programming adjustments based on memory wear, health, and endurance

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938655B2 (en) * 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330767B1 (en) * 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US20130132652A1 (en) * 2010-01-27 2013-05-23 Fusion-Io, Inc. Managing non-volatile media
US20160118137A1 (en) * 2013-08-30 2016-04-28 Empire Technology Development, Llc Reduction of power consumption in flash memory
US20160110125A1 (en) * 2014-10-20 2016-04-21 Fusion-Io, Inc. Storage error management
US20160179406A1 (en) * 2014-12-22 2016-06-23 Sandisk Technologies Inc. Dynamic programming adjustments based on memory wear, health, and endurance

Also Published As

Publication number Publication date
WO2019076613A1 (fr) 2019-04-25
US10990477B2 (en) 2021-04-27
FR3072494B1 (fr) 2020-06-19
US20200264952A1 (en) 2020-08-20
EP3698364A1 (fr) 2020-08-26

Similar Documents

Publication Publication Date Title
EP3698364A1 (fr) Dispositif et procede de controle des cycles de rafraichissement de donnees dans des memoires non-volatiles reprogrammables
FR3033927B1 (fr) Groupement des niveaux de lecture pour des performances de memoire flash accrues
US9535777B2 (en) Defect management policies for NAND flash memory
TWI533314B (zh) Non-volatile semiconductor memory inspection methods and storage of inspection procedures recorded in the media
US10339048B2 (en) Endurance enhancement scheme using memory re-evaluation
US10048863B1 (en) Open block refresh management
US10592134B1 (en) Open block stability scanning
US10552063B2 (en) Background mitigation reads in a non-volatile memory system
US20200257621A1 (en) Garbage collection in non-volatile memory that fully programs dependent layers in a target block
US10089170B1 (en) Open block management
US10324648B1 (en) Wear-based access optimization
CN113076218B (zh) Nvm芯片读数据错误快速处理方法及其控制器
EP2724237B1 (fr) Procédé de gestion de l'endurance de mémoires non volatiles
US11409441B2 (en) Operation method of a storage controller configured to control a nonvolatile memory device
US11016693B2 (en) Block health estimation for wear leveling in non-volatile memories
EP3507809B1 (fr) Dispositif et procede de controle des cycles de rafraichissement des memoires non-volatiles
US10656847B2 (en) Mitigating asymmetric transient errors in non-volatile memory by proactive data relocation
FR3100369A1 (fr) Procédé d’inversion sélective de mots à écrire dans une mémoire et dispositif pour sa mise en œuvre
US20210193250A1 (en) Intelligent memory device test rack
US20210397505A1 (en) Stressed Epwr To Reduce Product Level DPPM/UBER
US11152077B2 (en) Transmitting data and power to a memory sub-system for memory device testing
CN114974338A (zh) 非易失性存储器装置、存储器控制器和存储装置的读方法
US11734110B1 (en) Storage device reclassification system
US11983424B2 (en) Read disturb information isolation system
US20230229327A1 (en) Read disturb information isolation system

Legal Events

Date Code Title Description
PLSC Publication of the preliminary search report

Effective date: 20190419

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

ST Notification of lapse

Effective date: 20230606