FR2965079A1 - Procede de gestion d'une memoire non volatile - Google Patents

Procede de gestion d'une memoire non volatile Download PDF

Info

Publication number
FR2965079A1
FR2965079A1 FR1100771A FR1100771A FR2965079A1 FR 2965079 A1 FR2965079 A1 FR 2965079A1 FR 1100771 A FR1100771 A FR 1100771A FR 1100771 A FR1100771 A FR 1100771A FR 2965079 A1 FR2965079 A1 FR 2965079A1
Authority
FR
France
Prior art keywords
memory area
memory
sector
active
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1100771A
Other languages
English (en)
Inventor
Thierry Bouchon
Vincent Huc
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.)
Continental Automotive France SAS
Original Assignee
Continental Automotive France SAS
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 Continental Automotive France SAS filed Critical Continental Automotive France SAS
Priority to FR1100771A priority Critical patent/FR2965079A1/fr
Publication of FR2965079A1 publication Critical patent/FR2965079A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering

Abstract

Procédé de gestion d'une mémoire non volatile, utilisant au moins deux zones de mémoire (11, 12) non volatile du type électriquement effaçable par secteur, inscriptible par page, un secteur étant plus grand qu'une page, où moins un bloc de gestion (13, 13') indique laquelle desdites zone de mémoire (11, 12) est active.

Description

La présente invention concerne un procédé de gestion d'une mémoire non volatile pour réaliser un stockage de données rémanent à une coupure d'alimentation. Il est connu pour réaliser un stockage rémanent d'utiliser une mémoire non 5 volatile. Si les données à stocker évoluent souvent ou beaucoup, une mémoire réinscriptible est avantageuse. Dans les mémoires réinscriptibles se trouvent des mémoires électriquement effaçables ou EEPROM (de l'anglais « Electrically Erasable Read Only Memory » signifiant : mémoire à lecture seule effaçable électriquement). Ces EEPROM 10 présentent une unité élémentaire d'écriture nommée page et une unité élémentaire d'effacement nommée secteur. Pour certaines EEPROM la taille d'une page est identique à la taille d'un secteur. La gestion d'une telle mémoire est alors simple. Il suffit d'effacer un secteur/page avant d'y réécrire. 15 Cependant pour certaines autres EEPROM, telles les Flash EEPROM, la taille d'un secteur est plus grande que la taille d'une page. II est alors nécessaire de gérer l'emploi de la mémoire sur la base d'un secteur. Selon un procédé, il est utilisé au moins deux secteurs. Un premier secteur est le secteur actif ou en cours d'utilisation. Tant qu'il n'est pas plein, une écriture de 20 données est réalisée dans ce secteur, sur de nouvelles pages encore vierges. Un second secteur n'est pas activement utilisé, mais reste prêt à devenir le secteur actif, dès que le premier secteur actuellement actif est plein. Lorsque le premier secteur est plein, les données devant être conservées (et qui représentent seulement une partie de l'ensemble des données stockées 25 jusqu'alors) sont recopiées depuis le premier secteur vers le second secteur, puis le second secteur devient le secteur actif, lors d'une opération dite de bascule. Le premier secteur ainsi libéré peut alors être effacé dans son ensemble, afin d'être vierge et disponible pour une bascule ultérieure, lorsque le second secteur sera plein à son tour. 30 Une telle utilisation en alternance permet de réaliser l'opération d'effacement. Cependant, une coupure d'alimentation est imprévisible et peut se produire à tout instant, y compris en cours d'effacement ou en cours de bascule et peut laisser l'un au moins des deux secteurs dans un état intermédiaire. Le problème se pose 35 alors, au redémarrage du système utilisant la mémoire, d'identifier quel est le secteur actif, afin de récupérer les données dernières stockées. Actuellement cette opération nécessite une lecture approfondie pouvant aller jusqu'à la lecture complète des deux secteurs et une comparaison de leur contenu respectif afin de déterminer le secteur valide. Ceci peut être long.
L'objet de l'invention est principalement de gagner du temps en développant des moyens permettant de rapidement déterminer quel secteur est valide. De plus l'invention permet avantageusement de sécuriser les phases d'effacement et de bascule, ainsi que les données sauvegardées. Compte tenu de ce qui précède, l'invention concerne un procédé de gestion de mémoire non volatile, utilisant au moins deux zones de mémoire non volatile du type électriquement effaçable par secteur, inscriptible par page, un secteur étant plus grand qu'une page, où au moins un bloc de gestion indique laquelle desdites zone de mémoire est active. Selon une autre caractéristique de l'invention, une zone de mémoire 15 comprend au moins un secteur. Selon une autre caractéristique de l'invention, un bloc de gestion est associé .à chaque zone de mémoire et est situé dans ladite zone de mémoire. Selon une autre caractéristique de l'invention, le bloc de gestion est situé au début de ladite zone de mémoire. 20 Selon une autre caractéristique de l'invention, le bloc de gestion comprend au moins une page par état de ladite zone de mémoire. Selon une autre caractéristique de l'invention, les états comprennent au moins : - FIN_EFFACEMENT : est un état de fin d'effacement, indiquant que la zone de 25 mémoire marquée est complètement effacée et disponible pour une nouvelle utilisation en écriture, - DEB_EFFACEMENT : est un état de début d'effacement, indiquant que l'effacement de l'autre zone de mémoire a débuté, - DEB_BASCULE : est un état de début de bascule, indiquant qu'une bascule de 30 la zone de mémoire active vers l'autre zone de mémoire a débuté, - FIN_BASCULE : est un état de fin de bascule, indiquant qu'une bascule de la zone de mémoire active vers l'autre zone de mémoire est terminée et que l'autre zone de mémoire est maintenant active. Selon une autre caractéristique de l'invention, l'effacement d'une zone de 35 mémoire non active est déclenché immédiatement après une bascule vers l'autre zone de mémoire.
Selon une autre caractéristique de l'invention, l'effacement d'une zone de mémoire non active est déclenché lorsque la zone de mémoire active atteint ou dépasse une limite de remplissage. D'autres caractéristiques, détails et avantages de l'invention ressortiront plus 5 clairement de la description détaillée donnée ci-après à titre indicatif en relation avec des dessins sur lesquels : - la figure 1, illustre le principe de l'invention et un premier mode de réalisation, - la figure 2, illustre un autre mode de réalisation de l'invention, 10 - la figure 3, illustre un autre mode de réalisation de l'invention, la figure 4 figure un diagramme des états possibles. En se référant à la figure 1 va être décrit le principe de l'invention. Il est utilisé de la mémoire non volatile. Ainsi, lorsqu'une coupure d'alimentation se produit les données précédemment écrites en mémoire sont sauvegardées et 15 peuvent être récupérées lors d'une remise sous tension du système. L'invention s'applique à une mémoire non volatile réinscriptible. Par définition, un enregistrement désigne une unité élémentaire (ou plus petit élément) de lecture, une page désigne une unité élémentaire d'écriture et un secteur désigne une unité élémentaire d'effacement. 20 Il existe différents types de mémoire non volatile réinscriptible qui se distinguent par les tailles relatives respectives d'un enregistrement, d'une page et d'un secteur. Lorsque la taille d'un secteur est identique à la taille d'une page, la gestion de la mémoire est simple. Il suffit d'effacer un secteur/page qui n'est plus utilisé, 25 avant d'y écrire/réécrire. II est possible de n'utiliser qu'une unique zone de mémoire. Cette dernière contient nécessairement les données dernières enregistrées lors d'une coupure d'alimentation. Lorsque la taille d'un secteur est plus grande que la taille d'une page, la gestion de la mémoire se complique. Il devient préférable de gérer l'écriture et 30 l'effacement séparément. L'invention s'applique particulièrement à ce second cas. Dans la pratique le premier cas (taille page = taille secteur) correspond à de la mémoire EEPROM se présentant sous forme d'un boitier indépendant. Au contraire le second cas (taille page < taille secteur) correspond à de la mémoire Flash EEPROM. La mémoire Flash EEPROM est un composant 35 intrinsèquement moins coûteux. De plus de la Flash EEPROM est le plus souvent intégrée dans le composant processeur lui-même et est donc déjà disponible dans le système. La mémoire Flash EEPROM se présente avantageusement avec des tailles totales supérieures. Ces possibles réductions de coût et avantages justifient l'utilisation préférentielle de Flash EEPROM et la finalité de l'invention. A titre indicatif, une mémoire Flash EEPROM typique présente une taille d'enregistrement d'un octet, une taille de page de 128 octets et une taille de secteur comprise entre 8 et 64 koctets, pour une taille totale de la mémoire comprise entre 16 et 128 koctets. La gestion de l'effacement séparément de l'écriture peut être implémentée selon le procédé précédemment évoqué et repris en détail ci-dessous, en utilisant deux zones de mémoires distinctes 1, 2. Ces deux zones de mémoires peuvent avantageusement être de même taille, mais pas nécessairement. Une première zone de mémoire 1 est, à un instant donné, la zone de mémoire active ou en cours d'utilisation. Certaines règles de fonctionnement s'appliquent alors : - Tant que la zone de mémoire active n'est pas pleine, toute écriture de donnée réalisée par un système utilisant ladite mémoire est réalisée dans cette zone de mémoire active. - Une écriture ne peut être effectuée que sur une page vierge. - Toute écriture s'effectue nécessairement et par définition en utilisant un nombre 20 de page entier. - Une donnée occupant un nombre de pages non entier est écrite sur un nombre de page entier immédiatement supérieur. - Une fois écrite, même partiellement, une page n'est plus vierge et n'est plus disponible en écriture, tant que le secteur auquel elle appartient n'a pas été 25 effacé. Ainsi, au fur et à mesure des écritures, la zone de mémoire active, ici la première zone de mémoire 1 va se remplir. La partie remplie 4, 14, 24 est figurée en hachuré sur les figures 1 à 3. Au moins une deuxième zone de mémoire 2 est utilisée en soutien. Tant que 30 la première zone de mémoire 1 est active, la deuxième zone de mémoire 2 n'est pas directement utilisée. Avant que la première zone de mémoire 1 ne soit complètement remplie, la deuxième zone de mémoire 2 est rendue disponible et reste prête à remplacer la première zone de mémoire 1 pour devenir à son tour la zone de mémoire active. 35 Lorsque la zone de mémoire active est pleine, qu'elle ne comporte plus assez de pages vierges disponibles pour effectuer une nouvelle écriture, ou avant que cette saturation ne se produise, il est procédé à une bascule. Une bascule transfère l'activité d'une zone de mémoire à une autre. La première zone de mémoire 1 qui était l'ancienne zone de mémoire active devient la zone de mémoire de soutien, tandis que la deuxième zone de mémoire 2 qui était en soutien devient la nouvelle zone de mémoire active. La bascule peut comprendre une recopie des données vivantes de l'ancienne zone de mémoire active vers la nouvelle zone de mémoire active. On considère vivante, la dernière mise à jour, la dernière occurrence écrite d'une donnée. Un tri parmi les données écrites dans l'ancienne zone de mémoire active ~o lors d'une bascule peut avantageusement, en ne conservant que les données vivantes, permettre de réduire grandement la quantité de données à stocker et donc l'occupation initiale de la nouvelle zone de mémoire active. Une fois la bascule réalisée, la nouvelle zone de mémoire active accueille les écritures suivantes. 15 L'ancienne zone de mémoire active est sensiblement pleine. Maintenant non sollicitée pour les écritures et ne contenant plus de données utiles, elle peut avantageusement être effacée. Un effacement de l'ancienne zone de mémoire active est avantageusement réalisé après une bascule. Selon un mode de réalisation l'effacement peut être déclenché par un certain 20 niveau de remplissage de la nouvelle zone de mémoire active. Ainsi la première zone de mémoire 1 étant active, l'atteinte par la partie remplie 4 d'une limite de remplissage 5 déclenche l'effacement de la deuxième zone de mémoire 2 alors zone de soutien. A l'issue d'un effacement, une zone de mémoire est à nouveau vierge et est 25 disponible en soutien, prête à prendre le relais lorsque la nouvelle zone de mémoire active sera pleine. La figure 1 représente la deuxième zone de mémoire 2 après effacement, totalement vierge et donc figurée en clair. Une telle utilisation d'au moins deux zones de mémoire 1, 2 permet ainsi alternativement d'effacer une zone de mémoire sensiblement pleine pendant que 30 les écritures sont accueillies par une autre zone de mémoire. Ainsi, à tout instant, toutes les données vivantes sont enregistrées sur l'une au moins des deux zones de mémoire 1, 2. Une coupure d'alimentation, quel que soit l'instant auquel elle se produit, n'aura pas pour conséquence une perte de données. 35 Cependant il convient de remarquer qu'une telle coupure d'alimentation peut se produire n'importe quand, y compris durant des phases transitoires pouvant être plus ou moins longues effacement ou bascule. Selon le moment ou se produit une telle coupure d'alimentation, . les deux zones de mémoires 1, 2 vont se retrouver dans des états différents. Le problème consiste, au redémarrage du système suite à une telle coupure d'alimentation, à identifier l'état dans lequel se trouvent chacune des zones de mémoire 1, 2, et notamment quelle est la dernière zone de mémoire active, afin d'accéder et de pouvoir relire les données vivantes. Jusqu'ici, au redémarrage, il était procédé à une lecture pouvant être complète desdites au moins deux zones de mémoire 1, 2, et à une analyse de leur ~o contenu respectif afin de déterminer leur état et d'identifier la zone de mémoire active. Afin de simplifier cette opération de détermination d'état et d'identification de la zone de mémoire active, il est avantageusement utilisé selon l'invention un bloc de gestion 3. L'utilisation de ce bloc de gestion 3 est telle qu'il contient à tout 15 moment des informations permettant de déduire laquelle desdites zones de mémoire 1, 2 est active. Ce bloc de gestion 3 est réalisé au moyen d'une mémoire non volatile et est mis à jour en fonction des changements d'états survenus et des opérations réalisées (bascule, effacement, etc.) sur lesdites zones de mémoire 1, 2. Il est ainsi 20 écrit dans le bloc de gestion 3 à chaque opération modifiant l'état de l'une desdites zones de mémoires 1, 2. Ainsi au redémarrage, une lecture de ce bloc de gestion 3 est suffisante pour disposer des informations nécessaires à une identification de la zone de mémoire active. Ces informations peuvent encore permettre de connaitre l'état desdites 25 zones de mémoire 1, 2, de manière plus détaillée. Selon un premier mode de réalisation, le bloc de gestion 3 contient à tout moment, un identificateur 6 désignant la zone de mémoire active, ici la zone 1. Cet identificateur 6 est mis à jour à l'instant où est effectivement réalisée une bascule. Le but même de l'utilisation d'au moins deux zones de mémoire 1, 2 est de 30 conserver au moins une zone de mémoire active, pendant que la ou les autres sont effacées. L'effacement étant au minimum réalisé pour une étendue d'un secteur, il convient que chaque zone de mémoire 1, 2 comprenne au moins un secteur. Il n'y a pas de limite et une zone de mémoire peut comprendre plus d'un secteur. II est avantageux à cet égard qu'une zone de mémoire 1, 2, comprenne un nombre entier 35 de secteurs. Comme illustré à la figure 1, le bloc de gestion 3 peut être situé dans une zone de mémoire quelconque, le cas échéant distincte desdites au moins deux zones de mémoire 1,2 Il. peut ainsi être utilisé une mémoire dédiée à cette fonction, EEPROM ou Flash, pourvue que cette mémoire soit non volatile. Cependant, afin de ne pas multiplier les composants mémoire, il est avantageux que le bloc de gestion 3 soit réalisé avec la même mémoire que lesdites au moins deux zones de mémoire 1, 2. Il en résulte que la gestion de l'écriture/effacement du bloc de gestion 3 hérite des mêmes contraintes. II est possible d'utiliser au moins un deuxième bloc de gestion 3' pour réaliser les mises à jour. Une telle gestion de ce bloc de gestion 3 devient complexe et nécessite au moins deux secteurs ce qui conduit globalement à une utilisation non optimale de la mémoire. Afin de remédier à cet inconvénient, comme illustré à la figure 2, un bloc de gestion 13, 13' est avantageusement inclus directement dans chacune desdites zones de mémoire 11, 12. Ce bloc de gestion 13, 13' contient au moins un identificateur 16 indiquant positivement la zone de mémoire active, ici la zone 11. Cet indicateur 16 peut être n'importe quel motif prédéfini. II est figuré sur la figure 2 par une étoile. II se distingue positivement d'un bloc de gestion 13' vide ou vierge après un effacement. Cet identificateur 16 est inscrit dans le bloc de gestion 13, 13' de la nouvelle zone de mémoire active lors de la bascule. Il est effacé avec l'effacement de la zone de mémoire en soutien. L'avantage de disposer le bloc de gestion 13, 13' en deux champs inclus dans les zones de mémoires 11, 12 est de profiter de la gestion des opérations de bascule/effacement réalisée pour lesdites zones de mémoire 11, 12. L'état des zones de mémoires 11, 12, et en particulier la détermination de la zone de mémoire active s'effectue en ne lisant que les contenus des blocs de gestions 13, 13'. La zone de mémoire active est la zone de mémoire donc le bloc de gestion comporte un identificateur 16. Afin de réduire encore le temps d'accès et de lecture au bloc de gestion 13, 13', ce dernier est avantageusement placé en début de chaque zone de 30 mémoire 11, 12. On note que chaque champ 13, 13' du bloc de gestion, devant pouvoir être écrit séparément, occupe - par définition - au moins une page. Dans le mode de réalisation précédemment décrit, il n'est considéré qu'un état de la zone de mémoire 11, 12, à savoir active ou non active (soutien). Ceci 35 nécessite un champ 13 ou 13' pour chaque zone de mémoire 11, 12 et pour chaque état, chaque champ comportant au moins une page.
Cependant une analyse du précédent mode de réalisation montre qu'il peut apparaitre, au moins temporairement, une indétermination. En effet entre l'instant de la bascule, où la nouvelle zone de mémoire active reçoit son identificateur 16, et l'instant de fin d'effacement effectif de l'ancienne zone de mémoire active, où est effacé son identificateur, les deux champs 13, 13' du bloc de gestion comportent ledit identificateur 16. Même si ce temps peut être très réduit dans la pratique, il n'est alors pas possible de déterminer la zone de mémoire active, à la seule lecture du bloc de gestion 13, 13'. Il peut être remédié à cet inconvénient en détaillant les informations stockées 10 dans le bloc de gestion 13, par exemple selon le mode de réalisation qui va être décrit maintenant, en référence aux figures 3 et 4. Comme illustré à la figure 3, le statut de la première zone de mémoire 21, ou de la deuxième zone de mémoire 22 est renseigné au moyen de quatre états. Ces quatre états sont FIN_EFFACEMENT, DEB_EFFACEMENT, DEB_BASCULE et 15 FIN_BASCULE. A chacun de ces quatre états est associé un indicateur 27-30 séparé dans le bloc de gestion 23 associé à la première zone de mémoire 21, respectivement un indicateur 27'-30' séparé dans le bloc de gestion 23' associé à la deuxième zone de mémoire 22. Chaque indicateur peut accueillir un identificateur 26 ici figuré par une étoile. 20 Puisque chaque indicateur 27-30, 27'-30' doit pouvoir être écrit séparément, il convient qu'il comporte au moins une page. Les quatre indicateurs associés à une même zone mémoire 21, 22 sont séparément marqués dudit identificateur 26. Ceci permet de détailler pour chaque zone mémoire 21, 22 cinq statuts différents, sans réaliser d'effacement. 25 FIN_EFFACEMENT désigne un état de fin d'effacement. Une zone de mémoire 21, 22 est marquée d'un identificateur 26 dans son indicateur 27, 27' correspondant à l'état FIN_EFFACEMENT après son effacement. Ce marquage est effectué pour une zone de mémoire à la fin de son effacement, typiquement lorsque ladite zone est en soutien. Ce marquage indique que l'effacement est complet. La 30 zone de mémoire est alors vierge et disponible pour devenir la nouvelle zone de mémoire active lors d'une prochaine bascule. On note que l'effacement efface aussi les éventuels identificateurs 26 préalablement écrits dans les indicateurs 27-30, 27'-30' du bloc de gestion 23, 23'. DEB_EFFACEMENT désigne un état de début d'effacement. Une zone de 35 mémoire 21, 22 est marquée d'un identificateur 26 dans son indicateur 28, 28' correspondant à l'état DEB_EFFACEMENT lorsque débute l'effacement de l'autre zone de mémoire. En effet, il est inutile de marquer un état dans une zone de mémoire 21, 22 qui va, immédiatement après, être totalement effacée._ . Ce marquage est effectué dans une zone de mémoire 21, 22 lorsque elle est active, mais concerne typiquement un changement relatif à l'autre zone de mémoire 21, 22.
Ce marquage indique que l'effacement de l'autre zone a débuté. DEB_BASCULE désigne un état de début de bascule. Une zone de mémoire 21, 22 est marquée d'un identificateur 26 dans son indicateur 29, 29' correspondant à l'état DEB_BASCULE, lorsque débute une bascule depuis la zone de mémoire active 21, 22 vers la zone de mémoire de soutien 21, 22. Ce marquage est typiquement effectué dans une zone de mémoire 21, 22 lorsque elle est encore active, c'est-à-dire dans la zone de mémoire active qui va perdre l'activité au cours de ladite bascule. Une autre convention pourrait être utilisée en marquant la zone de mémoire en soutien, qui va gagner l'activité au cours de ladite bascule. FIN_BASCULE désigne un état de fin de bascule. Une zone de mémoire 21, 22 est marquée d'un identificateur 26 dans son indicateur 30, 30' correspondant à l'état FIN_BASCULE, lorsque une bascule depuis la zone de mémoire active 21, 22 vers la zone de mémoire de soutien 21, 22 est terminée. Ce marquage est typiquement effectué dans une zone de mémoire 21, 22 lorsque elle n'est plus active, c'est-à-dire dans l'ancienne zone de mémoire active. Une autre convention pourrait être utilisée. L'effacement de la zone de mémoire 21, 22 non active peut être déclenchée selon au moins deux modes de réalisation. Selon un premier mode l'effacement est débuté immédiatement après une bascule vers l'autre zone de mémoire 1, 2, 11, 12, 21, 22 dès que la zone de mémoire à effacer n'est plus active. Ce mode présente l'avantage de réduire au minimum la durée d'indétermination précédemment évoquée. Il permet encore de disposer d'une zone de mémoire en soutien disponible pour une bascule le plus vite possible. Selon un deuxième mode l'effacement d'une zone de mémoire non active 1, 2, 11, 12, 21, 22 est débuté lorsque le besoin d'effectuer une bascule se fait sentir, du fait du remplissage de la zone de mémoire active 1, 2, 11, 12, 21, 22. Ainsi une limite de remplissage 5, 15, 25 peut être utilisée pour la zone de mémoire active. Lorsque le taux de remplissage de la zone de mémoire active atteint ou dépasse ladite limite de remplissage 5, 15, 25, l'effacement est initié. Cette limite de remplissage 5, 15, 25 est avantageusement déterminée, en fonction d'un taux prévisionnel de remplissage de la zone de mémoire active 1, 2, 11, 12, 21, 22, afin de laisser un temps suffisant pour la réalisation de l'effacement de l'autre zone de mémoire 1, 2, 11,12, 21 22, avant que la zone de mémoire active ne risque_de se trouver pleine. Dans les deux modes de réalisation de l'effacement, le début d'effacement 5 peut être repéré par l'état DEB_EFFACEMENT. En référence à la figure 4, afin de préciser l'utilisation des blocs de gestion 23, 23', va maintenant être détaillée le cycle de changement d'état de deux zones de mémoire 21, 22. A des fins de simplification, seuls sont représentés les blocs de 10 gestion 23, 23' des deux zones de mémoires 21, 22. La ligne A correspond à un premier état. Dans cet état, la première zone de mémoire 21 est active, comme indiqué par un encadrement plus fort de son bloc de gestion 23. Son indicateur 27 FIN_EFFACEMENT est marqué depuis la fin de son dernier effacement. La seconde zone de mémoire 22 est non active ou en soutien. 15 Du fait de son histoire récente, elle est remplie et ses indicateurs 27'-30' sont tous marqués ainsi qu'il sera expliqué plus loin. Afin d'être en mesure de réaliser une future bascule, il va être procédé à un effacement de la seconde zone de mémoire 22. Avant cet effacement l'indicateur 28 DEB_EFFACEMENT de la première 20 zone de mémoire 21 (active) est marqué conformément à la ligne B. L'effacement 40 de la deuxième zone de mémoire 22 est réalisé. L'effacement 40 affectant aussi le bloc de gestion 23' inclus dans la deuxième zone de mémoire 22, tous les indicateurs 27'-30' sont maintenant effacés conformément à la ligne C. 25 La deuxième zone de mémoire 22 étant maintenant effacée, son indicateur 27' FIN_EFFACEMENT est marqué comme figuré à la ligne D. Les écritures se poursuivent dans la première zone de mémoire 21 qui est toujours active. Lorsque celle-ci devient trop remplie pour accepter une nouvelle écriture, il convient de procéder à une bascule 41. Au préalable l'indicateur 29 30 DEB_BASCULE est marqué pour indiquer cette opération comme illustré à la ligne E. La bascule 41 est effectivement réalisée et a pour effet que la deuxième zone de mémoire 22 devient la nouvelle zone de mémoire active, comme le signale le cadre en trait fort entourant le bloc de gestion 23' à la ligne F. Après que la 35 bascule 41 soit terminée l'indicateur 30 FIN_BASCULE est marqué, toujours à la ligne F.
Il convient de remarque que la ligne F est l'exacte symétrique de la ligne A en échangeant les deux zones de mémoire 21, 22. La ligne F correspond à l'instant suivant la bascule 41 qui rend la deuxième zone de mémoire 22 active. La ligne A correspond à l'instant suivant la bascule qui rend la première zone de mémoire 21 active. L'historique des lignes A-F explique la configuration du bloc de gestion 23 où tous les indicateurs 27-30 sont marqués. De manière analogue, à la ligne A, la configuration du bloc de gestion 23' est telle que tous les indicateurs 27'-30' sont marqués. Les lignes F-J reproduisent respectivement, en échangeant la première zone de mémoire 21 et la deuxième zone de mémoire 22, les lignes A-E. La première zone de mémoire 21 subit un effacement 42 entre les lignes G et H. Une bascule 43 inverse rend à nouveau la première zone de mémoire 21 active. La ligne A suivant la ligne J est totalement identique à la ligne A initiale. Le cycle de changement d'état se poursuit ainsi en boucle.
II n'est pas représenté ici deux configurations particulières transitoires se produisant au premier démarrage du système, où les deux zones mémoires 21, 22, le bloc de gestion 23, 23' y compris, sont initialement vierges. Ces deux configurations remplacent respectivement les lignes A et B, mais avec un bloc 23' totalement vierge.
En cas de coupure d'alimentation, les deux zones mémoires 21, 22 conservent les dernières écritures réalisées, y compris celles des identificateurs 26 marquant les différents indicateurs 27-30, 27'-30' contenues dans le bloc de gestion 23, 23'. Ainsi une lecture de ce bloc de gestion 23, 23' permet une détermination directe et totalement déterminée de la zone de mémoire active au moment de la coupure d'alimentation. Ainsi les configurations des lignes A-E indiquent que la première zone de mémoire 21 est active, tandis que les configurations des lignes F-J indiquent que la deuxième zone de mémoire 22 est active. Avantageusement, la connaissance de l'état des deux zones de mémoire 21, 22 est plus fine et permet, au redémarrage de vérifier, de poursuivre ou de recommencer une opération interrompue par ladite coupure d'alimentation. Ainsi, typiquement, la configuration des lignes B, C, G ou H indique qu'un effacement était en cours. Il peut être judicieux de le recommencer pour être sûr de sa complétude.35

Claims (8)

  1. REVENDICATIONS1. Procédé de gestion d'une mémoire non volatile, utilisant au moins deux zones de mémoire (1, 2, 11, 12, 21, 22) non volatile du type électriquement effaçable par secteur, inscriptible par page, un secteur étant plus grand qu'une page, caractérisé en ce qu'au moins un bloc de gestion (3, 13, 13', 23, 23') indique laquelle desdites zone de mémoire (1, 2, 11, 12, 21, 22) est active.
  2. 2. Procédé selon la revendication 1, où une zone mémoire (1, 2, 11, 12, 21, 22) comprend au moins un secteur.
  3. 3. Procédé selon la revendication 1 ou 2, où un bloc de gestion (13, 13', 23, 23') est associé à chaque zone de mémoire (11, 12, 21, 22) et est situé dans ladite zone de mémoire (11, 12, 21, 22).
  4. 4. Procédé selon la revendication 3, où le bloc de gestion (13, 13', 23, 23') est situé au début de ladite zone de mémoire (11, 12, 21, 22).
  5. 5. Procédé selon la revendication 3 ou 4, où le bloc de gestion (13, 13', 23, 23') comprend au moins une page par état de ladite zone de mémoire (11, 12, 21, 22).
  6. 6. Procédé selon la revendication 5, où les états comprennent au 20 moins : - FIN_EFFACEMENT : est un état de fin d'effacement, indiquant que la zone de mémoire (11, 12, 21, 22) marquée est complètement effacée et disponible pour une nouvelle utilisation en écriture, - DEB_EFFACEMENT : est un état de début d'effacement, indiquant que 25 l'effacement de l'autre zone de mémoire (11, 12, 21, 22) a débuté, - DEB_BASCULE : est un état de début de bascule, indiquant qu'une bascule de la zone de mémoire (11, 12, 21, 22) active vers l'autre zone de mémoire (11, 12, 21, 22) a débuté, - FIN_BASCULE : est un état de fin de bascule, indiquant qu'une bascule de la 30 zone de mémoire (11, 12, 21, 22) active vers l'autre zone de mémoire (11, 12, 21, 22) est terminée et que l'autre zone de mémoire (11, 12, 21, 22) est maintenant active.
  7. 7. Procédé selon l'une quelconque des revendications 1 à 6, où l'effacement d'une zone de mémoire (1, 2, 11, 12, 21, 22) non active est déclenché 35 immédiatement après une bascule vers l'autre zone de mémoire (1, 2, 11, 12, 21, 22).
  8. 8. Procédé selon l'une quelconque des revendications 1 à 6, où l'effacement d'une zonede mémoire (1, 2, 11, 12, 21, 22) non active est déclenché lorsque la zone de mémoire active (1, 2, 11, 12, 21, 22) atteint ou dépasse une limite de remplissage (5, 15, 25).5
FR1100771A 2011-03-15 2011-03-15 Procede de gestion d'une memoire non volatile Pending FR2965079A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1100771A FR2965079A1 (fr) 2011-03-15 2011-03-15 Procede de gestion d'une memoire non volatile

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1100771A FR2965079A1 (fr) 2011-03-15 2011-03-15 Procede de gestion d'une memoire non volatile

Publications (1)

Publication Number Publication Date
FR2965079A1 true FR2965079A1 (fr) 2012-03-23

Family

ID=44548675

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1100771A Pending FR2965079A1 (fr) 2011-03-15 2011-03-15 Procede de gestion d'une memoire non volatile

Country Status (1)

Country Link
FR (1) FR2965079A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587915B1 (en) * 1999-09-29 2003-07-01 Samsung Electronics Co., Ltd. Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same
US20070033376A1 (en) * 2005-08-03 2007-02-08 Sinclair Alan W Data Consolidation and Garbage Collection in Direct Data File Storage Memories
US20100241819A1 (en) * 2009-03-17 2010-09-23 Kabushiki Kaisha Toshiba Controller and memory system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587915B1 (en) * 1999-09-29 2003-07-01 Samsung Electronics Co., Ltd. Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same
US20070033376A1 (en) * 2005-08-03 2007-02-08 Sinclair Alan W Data Consolidation and Garbage Collection in Direct Data File Storage Memories
US20100241819A1 (en) * 2009-03-17 2010-09-23 Kabushiki Kaisha Toshiba Controller and memory system

Similar Documents

Publication Publication Date Title
EP2302638B1 (fr) Procédé d&#39;écriture et de lecture de données dans une mémoire non volatile, au moyen de métadonnées
EP1151384B1 (fr) Systeme de memorisation comprenant des moyens de gestion d&#39;une memoire avec anti-usure et procede de gestion anti- usure d&#39;une memoire
EP1988548B1 (fr) Mémoire non volatile à écriture rapide
EP3293637A1 (fr) Gestion d&#39;index dans une mémoire flash
FR2965079A1 (fr) Procede de gestion d&#39;une memoire non volatile
TW201015565A (en) Memory wear leveling method, system and device
WO1997041510A1 (fr) Procede et dispositif permettant a un programme fige de pouvoir evoluer
EP1902369B1 (fr) Procede de gestion de memoire non volatile dans une carte a puce
WO2007090857A1 (fr) Procede de mise a jour securisee de memoire non volatile
JP2008251063A (ja) 記憶装置
FR2950462A1 (fr) Procede d&#39;ecriture et de lecture de donnees dans une memoire non volatile, au moyen de metadonnees
EP1467378B1 (fr) Procédé de mise à jour de données pour mémoire non volatile
WO2021052946A1 (fr) Système sur puce et procédé garantissant la fraicheur des données stockées dans une mémoire extérieure
FR3074317B1 (fr) Procede d&#39;acces a une zone memoire non volatile de type flash d&#39;un element securise, tel qu&#39;une carte a puce
EP2339587A1 (fr) Sécurisation de l&#39;effacement d&#39;une memoire de type flashprom
FR2933803A1 (fr) Dispositif et procede de sauvegarde de donnees sur des supports de memoire non volatile, de type flash nand, destines a des calculateurs embarques
EP4312128A1 (fr) Procede de gestion d&#39;une memoire d&#39;un element securise
FR3125897A1 (fr) Procédé pour optimiser un fonctionnement d’un élément sécurisé
FR2830667A1 (fr) Procede de determination d&#39;une zone stable dans une memoire et dispositif de gestion d&#39;une memoire associe
EP1969605B1 (fr) Procede de gestion de donnees destinees a etre ecrites et lues dans une memoire
FR3102868A1 (fr) Procédé pour exécuter une transaction
JP2010026931A (ja) ホスト機器及びホスト機器のデータ記録方法
FR2799046A1 (fr) Procede pour l&#39;ecriture aleatoire de secteurs d&#39;une taille inferieure a celle d&#39;un bloc d&#39;effacement dans une memoire effacable par bloc pour laquelle toute ecriture d&#39;une donnee necessite l&#39;effacement du bloc qui contient ladite donnee
FR2935502A1 (fr) Procede d&#39;optimisation de la duree de vie d&#39;une memoire non volatile reinscriptible.
FR2848702A1 (fr) Procede securise de modification de donnees enregistrees dans une carte a memoire