Brevet FR3055462A1 — publié le 20180302

DISPOSITIF ET PROCEDE DE CONTROLE DES CYCLES DE RAFRAICHISSEMENT DES MEMOIRES NON-VOLATILES Domaine de l'invention L'invention concerne le domaine des mémoires et s'intéresse en particulier au temps de rétention et au cycle de rafraichissement des données stockées dans les mémoires non-volatiles. Etat de la Technique Les mémoires flash sont des mémoires non-volatiles (MNV) réinscriptibles, dont les données stockées ne disparaissent pas lors d'une mise hors tension. La vitesse élevée, la durée de vie et la faible consommation de ce type de mémoire la rendent attrayante pour de nombreuses utilisations par exemple dans les appareils photo numériques, les téléphones cellulaires, les imprimantes, les assistants personnels (PDA), les ordinateurs portables ou dispositifs de lecture et d'enregistrement sonore comme les baladeurs numériques, les clés USB. Les disques électroniques connus sous le nom de disques (SSD) de l'anglais « Solid-State Drive », destinés à remplacer les disques durs traditionnels connus sous le nom de disques (HDD) de l'anglais « Hard- Disk Drive » sont des unités de stockage statiques. 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 ». L'augmentation du nombre de bits par cellule est un des moyens de réduction de la différence de prix par gigaoctet (GB) entre les SSDs et les disques durs HDDs, permettant de tirer profit des avantages des SSDs par rapport aux 2 3055462 HDDs en termes de performance, consommation et de résistance aux chocs. Cependant, un point de faiblesse des mémoires flash est que le temps de rétention des données stockées dans les cellules mémoire, 5 temps correspondant à la plus longue période de conservation de données, est impacté par la température régnant dans la mémoire. Ce phénomène est renforcé dans le cas où plus d'un bit est stocké par cellule. Certaines mémoires MLC peuvent avoir un temps de rétention garanti en fin de vie de deux mois à 40°C. Ce temps, par application de la 10 loi d'Arrhenius, qui prédit une augmentation exponentielle du temps de rétention avec la température, équivaut à un temps de rétention de deux jours à 70°C. Or, un SSD avec une charge de travail importante peut raisonnablement atteindre une telle température, même dans un environnement de température contrôlé comme un centre de données 15 (datacenter). Pour estomper les effets de la réduction du temps de rétention, il est connu de faire un rafraîchissement périodique des données. 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 20 grille flottante des cellules mémoires et on parle alors de rafraichissement sur place, ou alternativement le rafraichissement peut être fait par réécriture en reprogrammant les données à une adresse différente. Le rafraîchissement sur place se traduit par un impact plus réduit sur la consommation d'énergie et la vitesse de réponse, et il n'a, virtuellement, 25 pas d'impact sur l'endurance aux cycles de P/E. L'endurance d'une mémoire flash qui est généralement mesurée en nombre de cycles de Programmation/Effacement (P/E) garantis, est réduite d'une décade en moyenne pour chaque bit supplémentaire stocké dans les cellules mémoires. Cet impact peut être mitigé en relaxant la 3 3055462 limité supérieure du nombre de cycles de P/E garantis, mais cela vient au détriment du temps de rétention garanti. Du fait de cette interdépendance mutuelle entre l'endurance et le temps de rétention des mémoires flash, les solutions de rafraîchissement 5 périodique des données peuvent être aussi utilisées pour améliorer l'endurance des mémoires. Ceci peut être mis en oeuvre en augmentant le nombre maximal des cycles de P/E permis sur une mémoire flash tout en mitigeant l'impact de cette augmentation par des rafraîchissements périodiques. 10 L'inconvénient reste qu'en présence de variations de température qui peuvent être dues à un changement des conditions environnementales et/ou dues à la charge de travail de la mémoire, un rafraîchissement à fréquence fixe peut entraîner des pénalités importantes en termes de latence de réponse, de consommation 15 d'énergie et de nombre disponible de cycles de P/E. Aussi, il existe le besoin d'une solution qui palie aux inconvénients des approches connues. La présente invention répond à ce besoin. Résumé de l'invention Un objet de la présente invention est de proposer un dispositif 20 permettant de suivre l'évolution de l'impact de la température sur le temps de rétention des mémoires non-volatiles. Un autre objet de l'invention est de proposer un dispositif permettant d'adapter la fréquence de rafraichissement des mémoires non-volatiles selon l'évolution de l'impact de la température sur le temps 25 de rétention. Le dispositif de l'invention est d'une manière générale constitué d'un capteur de température apte à mesurer la température, d'une ou plusieurs mémoires non-volatiles et d'un module de contrôle apte à faire 4 3055462 un suivi de l'impact de l'évolution de la température mesurée sur le temps de rétention des données. Dans un mode de réalisation, le dispositif de l'invention comprend des moyens permettant de générer une alerte lors de la détection de 5 l'imminence d'une perte de données. Le dispositif de l'invention permet de déclencher un rafraichissement des données de manière appropriée, lié à l'imminence d'une perte de données, et non de manière systématique et périodique. Le nombre de cycles de rafraichissement des mémoires non-volatiles est 10 ainsi diminué significativement. La présente invention trouvera une application avantageuse dans tous les environnements utilisant de manière intensive des mémoires non-volatiles soumises à des hautes températures, tel que par exemple les SSDs utilisés dans les centres de données. 15 Pour obtenir les résultats recherchés, un dispositif et un procédé tels que revendiqués sont proposés. En particulier, un dispositif pour contrôler les cycles de rafraichissement de données stockées en mémoire non-volatile, comprend : - un capteur de température apte à mesurer la température d'au 20 moins une mémoire non-volatile et à délivrer une information représentative de la température mesurée ; et - un module de contrôle couplé au capteur de température, apte à utiliser l'information de température avec une modélisation de l'impact de la température sur le temps de rétention des données pour déterminer si 25 une perte imminente de données est imminente et générer un signal d'alerte. Dans un mode de réalisation, le module de contrôle comprend : 5 3055462 - un encodeur apte à transformer l'information de température délivrée par le capteur de température en une valeur proportionnelle à l'impact de la température mesurée sur le temps de rétention dans ladite au moins une mémoire non-volatile ; et 5 - un additionneur couplé à l'encodeur et à un registre de statut, l'additionneur recevant en entrée la valeur en sortie de l'encodeur et la valeur d'état du registre de statut, le registre de statut étant apte à générer un signal d'alerte chaque fois que la valeur stockée dans le registre de statut est augmentée d'un montant qui dépasse un seuil 10 prédéfini. Dans une variante de réalisation, le module de contrôle comprend : - un banc de registres apte à stocker des valeurs représentatives d'une modélisation de l'évolution du temps de rétention des données en fonction de la température ; 15 - un multiplexeur couplé au banc de registres, apte à sélectionner en fonction de l'information de température délivrée par le capteur de température un registre dans le banc de registres et délivrer la valeur stockée dans ledit registre ; et - un additionneur couplé au multiplexeur et à un registre de statut, 20 l'additionneur recevant en entrée la valeur en sortie du multiplexeur et la valeur d'état du registre de statut, le registre de statut étant apte à générer un signal d'alerte chaque fois que la valeur stockée dans le registre de statut est augmentée d'un montant qui dépasse un seuil prédéfini. 25 Avantageusement, le module de contrôle est couplé à un microcontrôleur pour recevoir le signal d'alerte et déterminer si un cycle de rafraichissement des données dans chaque bloc d'une ou plusieurs 6 3055462 mémoires flash doit être effectué en fonction du temps de rétention restant pour chaque bloc. Le temps de rétention restant est calculé en fonction du nombre de cycles de programmation/effacement effectués pour ledit bloc. 5 Dans un mode opératoire, la modélisation de l'évolution du temps de rétention des données en fonction de la température est basée sur la loi d'Arrhenius. Selon une variante de réalisation, le capteur de température est couplé à un convertisseur analogique-numérique, et l'information de 10 température est une valeur numérique délivrée par le convertisseur analogique-numérique. Dans une variante avantageuse, le convertisseur analogique-numérique est un convertisseur apte à délivrer des valeurs numériques sous la forme d'un code « thermomètre ». 15 Le module de contrôle peut comprendre un générateur d'horloge. Selon une implémentation, le générateur d'horloge est couplé au registre de statut pour cadencer les mises-à-jour de la valeur stockée dans le registre de statut. Le dispositif peut avantageusement être implémenté sur un disque 20 SSD ou une carte mémoire qui comprend un microcontrôleur et une pluralité de mémoires non-volatiles. Le disque SSD ou la carte mémoire peuvent comprendre au moins un dispositif pour contrôler le cycle de rafraichissement des données de la pluralité des mémoires non-volatiles. Dans une réalisation, la ou les mémoires non-volatiles sont des 25 mémoires flash. 7 3055462 L'invention couvre aussi un procédé pour contrôler les cycles de rafraichissement de données stockées en mémoire non-volatile, qui comprend les étapes de : - mesurer la température d'au moins une mémoire non-volatile et 5 délivrer une information représentative de la température mesurée ; - utiliser l'information de température avec une modélisation de l'impact de la température sur le temps de rétention des données pour déterminer si une perte de données est imminente ; et - si oui générer un signal d'alerte. 10 Dans un mode opératoire, le procédé comprend de plus les étapes de : - évaluer le temps de rétention restant dans ladite au moins une mémoire non-volatile ; et - opérer un rafraichissement des données de ladite au moins une 15 mémoire non-volatile si le temps de rétention restant est en-dessous d'un seuil prédéfini. L'invention peut opérer sous la forme d'un produit programme qui comprend des instructions de code permettant d'effectuer les étapes du procédé revendiqué lorsque le programme est exécuté sur un micro-20 processeur. Description des figures Différents aspects et avantages de l'invention vont apparaitre en appui de la description d'un mode préféré d'implémentation de l'invention 25 mais non limitatif, avec référence aux figures ci-dessous : 8 3055462 La figure 1 est un schéma bloc d'un système de communication hôte-disque SSD ou carte mémoire permettant d'implémenter le dispositif de l'invention; La figure 2 illustre un premier mode de réalisation du dispositif de 5 l'invention ; La figure 3 illustre une variante de réalisation du dispositif de l'invention; La figure 4 montre un enchainement d'étapes pour générer une alerte selon un mode opératoire du dispositif de l'invention. 10 Description détaillée de l'invention Référence est faite à la figure 1 qui montre de manière schématique un système de communication entre un hôte 100 et un disque SSD ou une carte mémoire 110. Dans l'exemple décrit, le disque SSD 110 est représenté comme comprenant une pluralité de mémoires 15 flash 112. Dans une variante d'implémentation, une seule mémoire flash est connectée à un hôte. La carte 110 comprend des interfaces de connexion pour se connecter avec l'hôte. De manière bien connue de l'homme du métier, de telles interfaces pour des cartes externes peuvent être des connecteurs de type (USB) de l'anglais « Universal System 20 Bus » ou encore de type (SATA) de l'anglais « Serial Advanced Technology Attachment » (non montrées). La carte mémoire 110 peut ainsi se connecter via le connecteur à l'interface correspondante de l'hôte 100 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. 25 Dans une variante, la carte mémoire 110 peut être une carte embarquée d'un système hôte, l'hôte pouvant accueillir une ou plusieurs cartes mémoires. Selon un autre mode d'implémentation, l'hôte 100 et la carte 9 3055462 mémoire 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 utiliser une carte mémoire, un disque SSD ou échanger des données avec une mémoire flash. Ainsi, 5 sans constituer une limitation, l'hôte 100 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. 10 Le disque SSD 110 comprend un circuit de contrôle 114 comprenant des composants bien connus de l'homme du métier permettant de gérer les échanges de données et instructions entre les mémoires flash 112 et l'hôte 100 via les interfaces de communication hôte/mémoires, de gérer les opérations de lecture/écriture et de 15 rafraichissement des données dans les mémoires flash. Le contrôleur 114 est couplé aux mémoires flash 112 via des bus ou canaux de communication 113, un bus pouvant être connecté à plusieurs mémoires flash. Les mémoires flash 112 peuvent être des mémoires de type SLC et/ou MLC et/ou TLC. 20 Dans un mode de réalisation, l'ensemble des composants du circuit de contrôle 114 peut être implémenté comme un module dédié tel qu'un (ASIC) de l'anglais « Application Specific Integrated Circuit ». Selon l'invention, le disque SSD 110 comprend au moins un dispositif 116, désigné par la suite « A-Timer », permettant de suivre 25 l'impact de la température du disque SSD 110 sur le temps de rétention dans les mémoires flash. Dans l'exemple décrit en figure 1, un dispositif A-Timer 116 est associé à chaque mémoire flash. Dans une variante d'implémentation, un seul dispositif A-Timer 116 peut être associé à un ensemble de mémoires flash qui sont couplées par 10 3055462 un même bus de communication et qui présentent une répartition homogène de leur température interne. Selon une autre variante, quand la température est homogène à travers toutes les mémoires flash, le disque SSD 110 peut comprendre un 5 seul dispositif A-Timer 116. Selon un mode d'implémentation, si le disque SSD 110 présente des régions où la température est différente, un dispositif A-Timer 116 est assigné au groupe de mémoires flash situées dans chaque région. Le découpage des régions sur un disque SSD peut se faire sur la 10 base de mesures de température préliminaires réalisées sur le disque ou être repris d'un découpage appliqué sur des versions précédentes du disque 110. Chaque dispositif A-Timer 116 communique avec le circuit de contrôle 114 via un bus de communication 115. Le circuit de contrôle 114 15 est responsable de la gestion des dispositifs A-Timer et des échanges avec la ou les mémoires flash respectivement associées. La figure 2 montre un premier mode de réalisation du dispositif ATimer de l'invention. Le dispositif A-Timer comprend : - un capteur de température 210 permettant de mesurer la 20 température d'une ou plusieurs mémoires flash ; - un convertisseur analogique-numérique (CAN) 212 permettant de transformer le signal fourni par le capteur de température en une valeur numérique; - un encodeur 214 permettant d'encoder la valeur numérique 25 fournie par le CAN dans une valeur numérique qui est proportionnelle à l'impact de la température instantanée sur le temps de rétention des mémoires contrôlées ; 11 3055462 - un additionneur 216 permettant d'ajouter la valeur numérique générée par l'encodeur à une valeur stockée dans un registre de statut 218; - un registre de statut 218 permettant via l'additionneur 5 d'accumuler dans le temps les valeurs générées par l'encodeur 214 et apte à générer un signal d'alerte 220 quand la valeur stockée dans le registre de statut est augmentée d'un montant qui dépasse un seuil prédéfini ; et - un générateur de signal d'horloge 222 permettant de cadencer les 10 mises-à-jour de la valeur stockée dans le registre de statut. Dans une variante d'implémentation, un amplificateur (non montré) est connecté à la sortie du capteur de température pour amplifier le signal envoyé au convertisseur analogique-numérique (CAN) 212. Le capteur de température 210 permet de mesurer la température 15 d'une mémoire flash ou d'un groupe de mémoires flash à laquelle/auquel il est assigné et générer un signal électrique proportionnel à la température mesurée. Selon une variante, le capteur de température intègre un convertisseur analogique-numérique 212 et fournit en sortie une valeur numérique représentative de la température mesurée, qui peut 20 être utilisée directement par l'additionneur 216 ou l'encodeur 214. L'encodeur 214 permet d'encoder la valeur numérique fournie par le CAN 212 pour qu'elle devienne proportionnelle à l'impact de la température sur le temps de rétention des mémoires surveillées par le dispositif. 25 Dans une autre variante d'implémentation, le convertisseur analogique-numérique (CAN) 212 fournit directement l'entrée de l'additionneur 216. Dans ce cas, c'est le CAN 212 qui transforme la température en la valeur numérique proportionnelle à l'impact de la température sur le temps de rétention. 12 3055462 Selon une implémentation, le CAN 212 est un convertisseur flash ou parallèle, et délivre des valeurs numériques sous la forme d'un code dit « thermomètre ou unaire » selon l'enchainement suivant : « 000...0 », « 100...0 », « 110...0 », « 111...0 », ..., « 111...1 ». 5 Avantageusement, selon une implémentation, l'encodeur 214 est adapté pour modifier le code thermomètre de manière à délivrer des valeurs qui augmentent d'une façon exponentielle de manière similaire à l'impact de la température sur le temps de rétention des mémoires flash, tel que cela est décrit par le modèle représentant la loi d'Arrhenius. 10 De manière préférentielle, l'encodeur permet un encodage dit « one-hot » selon l'anglicisme consacré, qui consiste à représenter des états en utilisant pour chaque état une valeur dont la représentation binaire n'a qu'un seul chiffre 1. Ainsi la sortie du CAN flash est encodée selon une 15 correspondance donnée à titre d'exemple dans la table ci-dessous, où le nombre de bits en sortie du CAN dépend du nombre de fois que le temps de rétention est divisé par deux dans un intervalle de température correspondant à l'application : CAN 212 Encodeur 214 000 ... 0 100 ... 00 100 ... 0 010 ... 00 110 ... 0 001 ... 00 111 ... 0 000 ... 10 ... ... 111 ... 1 000 ... 01 20 Dans cette implémentation, les valeurs en sortie de l'encodeur 214 illustrées dans le tableau ci-dessus sont obtenues en additionnant la 13 3055462 valeur « 1 » à la sortie correspondante du CAN 212. Dans cet exemple, la sortie de l'encodeur 214 contient un bit de plus que son entrée. La sortie de l'encodeur devient une des entrées de l'additionneur 216 qui reçoit aussi en entrée la dernière valeur d'état stockée dans le 5 registre de statut 218. Avantageusement, comme les valeurs additionnées périodiquement à la valeur stockée dans le registre de statut sont proportionnelles à l'impact de la température instantanée sur le temps de rétention des mémoires flash, l'état du registre de statut est proportionnel 10 à l'impact global de l'évolution de la température sur le temps de rétention. L'état du registre de statut peut-être lu et utilisé comme une étiquette de temps ou « timestamp » selon l'anglicisme connu, associée à chaque bloc ou à chaque page d'une mémoire flash, et correspondant à 15 la dernière opération de programmation/effacement (P/E). L'étiquette d'un bloc mémoire est stockée lors de la première programmation après une opération d'effacement du bloc. Le registre de statut 218 est adapté pour générer un signal d'alerte 220 chaque fois que la valeur stockée dans le registre de statut est 20 augmentée d'un montant qui dépasse un seuil prédéfini. Ce seuil correspond au temps de rétention minimal des blocs mémoire ou à une fraction de ce temps, par exemple la moitié ou le tiers. Ainsi, l'émission d'un signal d'alerte 220 par le registre de statut 218 est indicative de l'imminence d'une perte de données dans une 25 mémoire flash qui est surveillée par le capteur de température. Le signal d'alerte est communiqué au microcontrôleur 114 du disque SSD 110 qui va déterminer pour chaque bloc mémoire si un cycle de rafraichissement des données doit être effectué, en fonction de l'étiquette de temps correspondante. 14 3055462 Dans un mode de réalisation, le stockage dans le registre de statut 218 peut être implémenté avec deux technologies mémoires simultanément : une première mémoire volatile, de type DRAM ou SRAM, et une seconde mémoire non-volatile, de type EEPROM, ou 5 Flash. La mémoire volatile du registre de statut 218 est mise à jour de manière périodique pendant le fonctionnement de l'A-Timer. A chaque arrêt du système, la valeur stockée dans la mémoire volatile du registre de statut 218 est transférée vers la mémoire non-volatile et à chaque 10 démarrage du système, la valeur stockée en mémoire non-volatile est transférée vers la mémoire volatile. Les mises à jour de la valeur stockée dans le registre de statut 218 sont cadencées par un générateur d'horloge 222. Dans un mode de réalisation, le générateur d'horloge 222 est un générateur basse 15 fréquence, implémenté comme un diviseur de fréquence dont l'entrée est pilotée par un signal d'horloge système. Dans une variante d'implémentation, le générateur basse fréquence est implémenté comme un oscillateur basse-fréquence, tel que par exemple un circuit de type NE555. 20 La figure 3 illustre une variante d'implémentation du dispositif de l'invention décrit en figure 2, dans lequel l'encodeur 214 est remplacé par un banc de registres 314 couplé à un multiplexeur 315. Ainsi, le dispositif de la figure 3 comprend un capteur de température 310 couplé à un convertisseur analogique-numérique CAN 312, un additionneur 316, un 25 registre de statut 318 et un générateur d'horloge 322. La sortie du CAN pilote le multiplexeur 315, qui reçoit en entrée les sorties des registres du banc de registres 314. Selon la valeur délivrée par le CAN, le multiplexeur sélectionne un registre parmi l'ensemble des registres du banc de registres 314. La valeur du registre sélectionné est 15 3055462 transférée en entrée de l'additionneur 316. L'additionneur reçoit aussi en entrée la valeur stockée dans le registre de statut. Chaque registre du banc de registres 314 contient une valeur qui peut être transférée à l'additionneur en fonction de la sortie du CAN. La 5 variante de la figure 3 rend programmable le dispositif de l'invention en permettant de changer les valeurs des registres du banc de registre. Ainsi, avantageusement, à travers le choix des valeurs dans le banc de registres 314, le dispositif de l'invention peut être facilement adapté à d'autres modèles pour décrire l'évolution de la température et l'impact sur 10 le temps de rétention des mémoires flash, comme par exemple un modèle construit par la superposition de plusieurs courbes d'Arrhenius,. Avantageusement, le dispositif de l'invention peut être adapté pour surveiller d'autres types des mémoires, telles des mémoires résistives ou des mémoires DRAM. Toujours avantageusement, le dispositif de 15 l'invention peut opérer pour des mémoires flash MLC ou TLC de type NAND. Selon un mode de réalisation, le banc de registres 314 peut être implémenté avec deux technologies de mémoire simultanément: une technologie de mémoire volatile, de type DRAM ou SRAM, et une 20 technologie de mémoire non-volatile, de type ROM, EEPROM ou Flash. En mode opératoire, à chaque démarrage du système, les valeurs adaptées au fonctionnement du dispositif A-Timer selon l'application souhaitée, sont transférées de la zone mémoire non-volatile vers la zone mémoire volatile du banc de registres, où elles peuvent être ensuite 25 sélectionnées selon la valeur délivrée par le CAN 312 pour être envoyées à l'additionneur 316. Dans une autre variante programmable du dispositif A-Timer, l'ensemble des fonctions de - lecture du CAN, sélection d'une valeur d'incrémentation, ajout à la valeur du registre de statut - est réalisé par un 30 micro-processeur ou un microcontrôleur. Le micro-processeur est adapté 16 3055462 pour lire périodiquement la sortie du CAN (ou la sortie du capteur de température dans le cas où il délivre directement une valeur numérique), pour choisir une valeur d'incrémentation en fonction de la valeur en sortie du CAN et pour ajouter cette valeur d'incrémentation à la valeur stockée 5 dans le registre de statut. La figure 4 montre un enchainement d'étapes 400 permettant de générer une alerte selon un mode opératoire du dispositif de l'invention. Le procédé 400 débute par une étape 402 de mesure de la température d'une ou plusieurs mémoires. Dans une implémentation préférentielle, la 10 ou les mémoires sont de type mémoire flash et la mesure de température est prise par un capteur de température assigné à la ou aux mémoires flash d'un disque SSD ou d'une carte mémoire 110. Dans une étape suivante 404, le procédé permet de détecter si une perte de données est imminente et si oui de générer 406 une alerte sinon de reboucler au 15 début. L'étape de détermination de la perte imminente de données peut être effectuée selon l'une des implémentations du dispositif de l'invention précédemment décrites, où la valeur de la température mesurée est transformée en une valeur proportionnelle à l'impact de la température 20 instantanée sur le temps de rétention des mémoires, valeur additionnée à la dernière valeur stockée dans un registre de statut. L'augmentation de la valeur résultante, correspondant à l'augmentation depuis la dernière alerte générée, donne l'indication de l'imminence ou non de la perte de données. 25 Après l'émission du signal d'alerte, le procédé permet d'évaluer le temps de rétention restant pour chaque bloc mémoire dans la ou les mémoires concernées. Selon un mode de réalisation, l'évaluation du temps de rétention restant est faite par un microcontrôleur, tel le microcontrôleur 114 de la carte mémoire 110. Le signal d'alerte généré par le registre de statut d'un A-timer donné est envoyé au microcontrôleur 17 3055462 qui évalue le temps de rétention restant pour chaque bloc ou page mémoire de la ou des mémoires ayant des données valides. Dans un mode de réalisation, le microcontrôleur compare l'état courant du registre de statut de l'A-timer qui a généré l'alerte à l'étiquette 5 de chaque bloc dans les mémoires qui sont surveillées par ce A-timer. Selon une implémentation, l'enregistrement de l'étiquette de chaque bloc mémoire peut se faire après la première page programmée dans un bloc mémoire qui vient d'être effacé. Si la différence entre l'état courant du registre de statut et 10 l'étiquette d'un bloc mémoire concernée est supérieure à un seuil donné, le procédé permet d'effectuer un cycle de rafraichissement des données dans le bloc mémoire considéré, de passer au bloc mémoire suivant afin de détecter si une perte de données est imminente. Le seuil de déclenchement d'un cycle de rafraichissement des données dépend du 15 nombre de cycles de P/E déjà effectué sur chaque bloc mémoire dans les mémoires concernées. Ainsi, avantageusement, le dispositif de l'invention permet de fournir des étiquettes indiquant un moment précis dans le temps, et d'identifier les blocs mémoire dont les données stockées doivent être 20 rafraichies. 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 25 à l'homme du métier d'apporter des modifications et 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. 18 REVENDICATIONS1. Un dispositif pour contrôler les cycles de rafraichissement de données stockées en mémoire non-volatile, le dispositif comprenant: - un capteur de température apte à mesurer la température d'au moins une mémoire non-volatile et à délivrer une information représentative de la température mesurée ; et - un module de contrôle couplé au capteur de température, apte à utiliser l'information de température avec une modélisation de l'impact de la température sur le temps de rétention des données pour déterminer si une perte imminente de données est imminente et générer un signal d'alerte. 2. Le dispositif selon la revendication 1 dans lequel le module de contrôle comprend : - un encodeur apte à transformer l'information de température délivrée par le capteur de température en une valeur proportionnelle à l'impact de la température mesurée sur le temps de rétention dans ladite au moins une mémoire non- volatile ; et - un additionneur couplé à l'encodeur et à un registre de statut, l'additionneur recevant en entrée la valeur en sortie de l'encodeur et la valeur d'état du registre de statut, le registre de statut étant apte à générer un signal d'alerte chaque fois que la valeur stockée dans le registre de statut est augmentée d'un montant qui dépasse un seuil prédéfini. 3. Le dispositif selon la revendication 1 dans lequel le module de contrôle comprend : 19 3055462 - un banc de registres apte à stocker des valeurs représentatives d'une modélisation de l'évolution du temps de rétention des données en fonction de la température ; - un multiplexeur couplé au banc de registres, apte à 5 sélectionner en fonction de l'information de température délivrée par le capteur de température un registre dans le banc de registres et délivrer la valeur stockée dans ledit registre ; et - un additionneur couplé au multiplexeur et à un registre de statut, l'additionneur recevant en entrée la valeur en sortie du 10 multiplexeur et la valeur d'état du registre de statut, le registre de statut étant apte à générer un signal d'alerte chaque fois que la valeur stockée dans le registre de statut est augmentée d'un montant qui dépasse un seuil prédéfini. 4. Le dispositif selon l'une quelconque des revendications 1 à 3 15 dans lequel le module de contrôle est couplé à un microcontrôleur pour recevoir le signal d'alerte et déterminer si un cycle de rafraichissement des données dans chaque bloc d'une ou plusieurs mémoires flash doit être effectué en fonction du temps de rétention restant pour chaque bloc. 20 5. Le dispositif selon la revendication 4 dans lequel le temps de rétention restant est calculé en fonction du nombre de cycles de programmation/effacement effectués pour ledit bloc. 25 6. Le dispositif selon l'une quelconque des revendications 1 à 5 dans lequel la modélisation de l'évolution du temps de rétention des données en fonction de la température est basée sur la loi d'Arrhenius. 20 3055462 7. Le dispositif selon l'une quelconque des revendications 1 à 6 dans lequel le capteur de température est couplé à un convertisseur analogique-numérique, et l'information de température est une valeur numérique délivrée par le 5 convertisseur analogique-numérique. 8. Le dispositif selon la revendication 7 dans lequel le convertisseur analogique-numérique est un convertisseur apte à délivrer des valeurs numériques sous la forme d'un code « thermomètre ». 10 9. Le dispositif selon l'une quelconque des revendications 1 à 8 dans lequel le module de contrôle comprend de plus un générateur d'horloge. 15 10. Le dispositif selon l'une quelconque des revendications 2 à 8 dans lequel le générateur d'horloge est couplé au registre de statut pour cadencer les mises-à-jour de la valeur stockée dans le registre de statut. 20 11. Un disque SSD ou une carte mémoire comprenant un microcontrôleur et une pluralité de mémoires non-volatiles, le disque SSD ou la carte mémoire comprenant de plus au moins un dispositif selon l'une quelconque des revendications 1 à 10 pour contrôler le cycle de rafraichissement des données de la 25 pluralité des mémoires non-volatiles. 12.Le dispositif selon l'une quelconque des revendications 1 à 11 dans lequel ladite au moins une mémoire non-volatile est une mémoire flash. 21 3055462 13.Un procédé pour contrôler les cycles de rafraichissement de données stockées en mémoire non-volatile, le procédé comprenant les étapes de : 5 - mesurer la température d'au moins une mémoire non-volatile et délivrer une information représentative de la température mesurée ; - utiliser l'information de température avec une modélisation de l'impact de la température sur le temps de rétention des données 10 pour déterminer si une perte de données est imminente ; et - si oui générer un signal d'alerte. 14. Le procédé selon la revendication 13 comprenant de plus les étapes de : - évaluer le temps de rétention restant dans ladite au moins une 15 mémoire non-volatile ; et - opérer un rafraichissement des données de ladite au moins une mémoire non-volatile si le temps de rétention restant est en-dessous d'un seuil prédéfini. 15.Un produit programme, ledit programme comprenant des 20 instructions de code permettant d'effectuer les étapes du procédé selon la revendication 13 ou 14, lorsque ledit programme est exécuté sur un micro-processeur.