FR2935502A1 - Life duration optimizing method for e.g. electrically EPROM, in banking transaction, involves writing updated value of data in one pair of two register pairs in cells of memory addressable independently - Google Patents

Life duration optimizing method for e.g. electrically EPROM, in banking transaction, involves writing updated value of data in one pair of two register pairs in cells of memory addressable independently Download PDF

Info

Publication number
FR2935502A1
FR2935502A1 FR0855870A FR0855870A FR2935502A1 FR 2935502 A1 FR2935502 A1 FR 2935502A1 FR 0855870 A FR0855870 A FR 0855870A FR 0855870 A FR0855870 A FR 0855870A FR 2935502 A1 FR2935502 A1 FR 2935502A1
Authority
FR
France
Prior art keywords
register
data
value
data structure
cells
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
FR0855870A
Other languages
French (fr)
Other versions
FR2935502B1 (en
Inventor
Olivier Chamley
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.)
Idemia France SAS
Original Assignee
Oberthur Technologies SA
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 Oberthur Technologies SA filed Critical Oberthur Technologies SA
Priority to FR0855870A priority Critical patent/FR2935502B1/en
Publication of FR2935502A1 publication Critical patent/FR2935502A1/en
Application granted granted Critical
Publication of FR2935502B1 publication Critical patent/FR2935502B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The method involves updating moms in data (D) whose value (V) is frequently evolved, and obtaining a position (RR) of a pair of registers in data structures i.e. cyclic buffers, associated with the data, where the registers have present value of the data. The updated value of the data is written in another pair of registers of the data structures whose position (WR) is obtained from the former position, where two pairs of registers are in cells of an erasable non-volatile memory addressable independently. Independent claims are also included for the following: (1) a computer program comprising a set of instructions for implementing a method for optimizing life duration of an erasable non-volatile memory (2) a recording medium comprising a set of instructions for implementing a method for optimizing life duration of an erasable non-volatile memory (3) a device for optimizing life duration of an erasable non-volatile memory.

Description

Arrière-plan de l'invention L'invention se situe dans l'optimisation des opérations de lecture/écriture dans des mémoires non volatiles. On rappelle en premier lieu qu'une mémoire non volatile est une mémoire adaptée à conserver ses données en l'absence d'alimentation électrique. BACKGROUND OF THE INVENTION The invention lies in the optimization of read / write operations in non-volatile memories. First of all, a non-volatile memory is a memory adapted to keep its data in the absence of power supply.

De façon connue, de telles mémoires sont partitionnées en une pluralité de zones, chacune de ces zones pouvant être effacée/écrite individuellement un nombre limité de fois, typiquement de l'ordre d'un million pour les mémoires les plus performantes. Le document US 2007/0147168 s'intéresse plus particulièrement au problème du stockage d'un compteur dans une mémoire non volatile, et propose, pour préserver la mémoire lors des accès répétés à ce compteur, d'encoder ce compteur en une valeur binaire composée de plusieurs champs, de telle sorte qu'un seul de ces champs soit modifié lors de l'incrémentation du compteur, grâce à un mécanisme généralisant le principe du codage de Gray, chacun de ces champs étant stocké dans une zone fixe de la mémoire. Une telle méthode permet de prolonger la durée de vie de la zone mémoire réservée au compteur par un facteur égal au nombre de champs, ce qui pour certaines applications est insuffisant. In a known manner, such memories are partitioned into a plurality of zones, each of these zones being able to be deleted / written individually a limited number of times, typically of the order of one million for the most efficient memories. The document US 2007/0147168 is more particularly interested in the problem of storing a counter in a non-volatile memory, and proposes, in order to preserve the memory during repeated accesses to this counter, to encode this counter into a compound binary value. several fields, so that only one of these fields is changed during the incrementation of the counter, through a mechanism generalizing the principle of Gray's coding, each of these fields being stored in a fixed area of the memory. Such a method makes it possible to extend the lifetime of the memory zone reserved for the meter by a factor equal to the number of fields, which for certain applications is insufficient.

Objet et résumé de l'invention La présente invention propose un procédé d'optimisation de la durée de vie d'une mémoire non volatile réinscriptible. Ce procédé comporte, pour effectuer la mise à jour d'au moins une donnée dont la valeur est susceptible d'évoluer fréquemment : - une étape d'obtention, dans une structure de données associée à cette donnée, d'une position d'un premier registre, dite première position , ce premier registre comportant la valeur courante de cette donnée ; et - une étape d'écriture de la valeur mise à jour de cette donnée dans un deuxième registre de cette structure de données, dont la position, dite deuxième position est obtenue à partir de la première position, les premier et deuxième registres étant dans des cellules de la mémoire non volatile réinscriptible adressables indépendamment l'une de l'autre. Ainsi, l'invention propose d'effectuer les mises à jour successives d'une donnée particulière dans des registres de la mémoire situés dans des cellules différentes. Chaque cellule de la mémoire étant accédée beaucoup moins fréquemment, l'invention permet de limiter le vieillissement des cellules utilisées pour cette donnée. On notera que le mécanisme selon l'invention, qui se concentre sur l'usage d'une donnée particulière, se distingue des procédés connus de répartition qui gèrent les accès à l'ensemble d'une mémoire volatile. Dans un mode particulier de réalisation de l'invention, la structure de données est un buffer cyclique, les registres de ce buffer étant situés dans des cellules différentes. OBJECT AND SUMMARY OF THE INVENTION The present invention proposes a method for optimizing the lifetime of a rewritable non-volatile memory. This method comprises, for updating at least one item whose value is likely to change frequently: a step of obtaining, in a data structure associated with this item, a position of a first register, said first position, this first register comprising the current value of this datum; and a step of writing the updated value of this datum in a second register of this data structure, whose position, said second position is obtained from the first position, the first and second registers being in non-volatile memory cells rewritable addressable independently of one another. Thus, the invention proposes to perform successive updates of a particular piece of data in memory registers located in different cells. Since each cell of the memory is accessed much less frequently, the invention makes it possible to limit the aging of the cells used for this datum. It will be noted that the mechanism according to the invention, which focuses on the use of a particular piece of data, differs from the known methods of distribution which manage the accesses to the whole of a volatile memory. In a particular embodiment of the invention, the data structure is a cyclic buffer, the registers of this buffer being located in different cells.

Dans ce mode de réalisation, chaque cellule est accédée une fois tous les N mises à jour de la donnée, N étant la taille de ce buffer cyclique. Dans un autre mode de réalisation, la structure de données peut être constituée par un tableau d'adresses pointant sur différents registres situés dans des cellules différentes. Dans un mode particulier de réalisation, l'obtention de la première position est effectuée en détectant une rupture dans une séquence de la structure de données. Dans un mode particulier de réalisation de l'invention, la position du registre courant est obtenue directement à partir de la valeur comprise dans le premier registre. Dans ce mode de réalisation, l'invention s'applique particulièrement bien pour optimiser la durée de vie d'une mémoire non volatile réinscriptible des accès répétés à un compteur pour son incrémentation, le premier registre étant déterminé comme étant celui qui mémorise la valeur la plus élevée du compteur. Ce mode de réalisation s'applique aussi très bien lorsque la donnée concernée est une date mise à jour chronologiquement. Mais l'invention permet de protéger la mémoire non volatile des 35 accès répétés à des données de tous types. In this embodiment, each cell is accessed once all the N updates of the data, N being the size of this cyclic buffer. In another embodiment, the data structure may consist of an array of addresses pointing to different registers located in different cells. In a particular embodiment, obtaining the first position is performed by detecting a break in a sequence of the data structure. In a particular embodiment of the invention, the position of the current register is obtained directly from the value included in the first register. In this embodiment, the invention applies particularly well to optimize the lifetime of a rewritable non-volatile memory repeated access to a counter for its incrementation, the first register being determined as being that which stores the value higher counter. This embodiment also applies very well when the data concerned is a date updated chronologically. However, the invention makes it possible to protect the non-volatile memory of repeated accesses to data of all types.

Ainsi, dans un mode particulier de réalisation de l'invention, la première position est obtenue à partir d'un index compris dans le premier registre courant. Ce mode particulier de réalisation est particulièrement adapté pour protéger une mémoire non volatile des accès fréquents à une donnée constituée par une clef cryptographique, un montant ou un numéro de transaction bancaire. Corrélativement l'invention concerne un dispositif comportant une mémoire non volatile réinscriptible. Il comporte : - au moins une structure de donnée associée à une donnée dont la valeur est susceptible d'évoluer fréquemment : - des moyens d'obtention, dans cette structure de données, d'une position d'un premier registre, dite première position , ce premier registre comportant la valeur courante de la donnée ; et - des moyens d'écriture de la valeur mise à jour de cette donnée dans un registre de la structure de données, dont la position, dite deuxième position est obtenue à partir de la première position, les premier et deuxième registres étant dans des cellules de la mémoire non volatile réinscriptible adressables indépendamment l'une de l'autre. Thus, in a particular embodiment of the invention, the first position is obtained from an index included in the first current register. This particular embodiment is particularly suitable for protecting a non-volatile memory from frequent access to data consisting of a cryptographic key, an amount or a bank transaction number. Correlatively the invention relates to a device comprising a rewritable non-volatile memory. It comprises: at least one data structure associated with data whose value is likely to change frequently: means for obtaining, in this data structure, a position of a first register, called first position , this first register including the current value of the data; and means for writing the updated value of this datum in a register of the data structure, whose position, called the second position, is obtained from the first position, the first and second registers being in cells non-volatile memory rewritable addressable independently of one another.

Les caractéristiques et avantages particuliers du dispositif d'optimisation selon l'invention sont les mêmes que ceux du procédé d'optimisation selon l'invention. En particulier, dans un mode de réalisation de l'invention, les moyens du dispositif pour obtenir la première position obtiennent cette première position directement à partir de la valeur comprise dans le premier registre. En variante, ils utilisent un index compris dans chaque registre de la structure de données. L'invention s'applique particulièrement bien aux mémoires 30 comportant des cellules de petite taille, par exemple 1 octet, telles que les EEPROM par exemple. En conséquence, dans un mode préféré de mise en oeuvre de l'invention, les registres de la mémoire sont choisis de tels que la taille de ces registres est supérieure à la taille des cellules. 35 Dans ce cas, on utilisera avantageusement la place perdue de ces registres (à savoir la partie de ces registres qui ne sert pas à mémoriser la donnée mise à jour fréquemment) pour mémoriser une autre information. L'invention vise aussi une carte à puce comportant un dispositif d'optimisation tel que mentionné ci-dessus. The particular characteristics and advantages of the optimization device according to the invention are the same as those of the optimization method according to the invention. In particular, in one embodiment of the invention, the means of the device for obtaining the first position obtain this first position directly from the value included in the first register. Alternatively, they use an index included in each register of the data structure. The invention is particularly applicable to memories 30 comprising small cells, for example 1 byte, such as EEPROM for example. Accordingly, in a preferred embodiment of the invention, the memory registers are chosen such that the size of these registers is greater than the size of the cells. In this case, the lost place of these registers (namely the part of these registers which does not serve to memorize the frequently updated data) will advantageously be used to memorize other information. The invention also relates to a smart card comprising an optimization device as mentioned above.

Dans un mode particulier de réalisation, les différentes étapes du procédé d'optimisation sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre dans un dispositif tel que mentionné ci-dessus ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes d'un procédé de gestion tel que décrit ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un 20 ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD 25 ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être 30 acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté 35 pour exécuter ou pour être utilisé dans l'exécution du procédé en question. In a particular embodiment, the various steps of the optimization method are determined by computer program instructions. Consequently, the invention also relates to a computer program on an information medium, this program being capable of being implemented in a device as mentioned above or more generally in a computer, this program comprising instructions adapted to the implementation of the steps of a management method as described above. This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape. The invention is also directed to a computer-readable information carrier having instructions of a computer program as mentioned above. The information carrier may be any entity or device capable of storing the program. For example, the medium may comprise storage means, such as a ROM, for example a CD-ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a diskette (floppy disc) or a Hard disk. On the other hand, the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention can be downloaded in particular on an Internet type network. Alternatively, the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.

Brève description des dessins D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : - la figure 1 représente une carte à puce conforme à l'invention, dans un mode particulier de réalisation ; - la figure 2 représente un buffer cyclique pouvant être utilisé 10 dans l'invention ; et - la figure 3 représente, sous forme d'organigramme, les principales étapes d'un procédé d'optimisation conforme à un mode particulier de réalisation de l'invention. BRIEF DESCRIPTION OF THE DRAWINGS Other features and advantages of the present invention will emerge from the description given below, with reference to the accompanying drawings which illustrate an embodiment having no limiting character. In the figures: - Figure 1 shows a smart card according to the invention, in a particular embodiment; FIG. 2 represents a cyclic buffer that can be used in the invention; and FIG. 3 represents, in flowchart form, the main steps of an optimization method according to a particular embodiment of the invention.

15 Description détaillée d'un mode de réalisation La figure 1 représente une carte à puce 100 conforme à l'invention. Elle comporte un dispositif d'optimisation 50 conforme à l'invention. Ce dispositif 50 comporte un processeur 11, une mémoire 20 réinscriptible non volatile 15 (ci-après dénommée mémoire non volatile 15 ), une mémoire morte de type 13 et une mémoire vive de type RAM 12. La mémoire non volatile 15 peut notamment être une mémoire de type FLASH ou une mémoire EEPROM. Dans l'exemple de réalisation 25 décrit ici, la taille des cellules de la mémoire 15 (une cellule étant une partie de la mémoire adressable indépendamment des autres) est de 1 octet. L'invention peut être mise en oeuvre par un ASIC. Mais dans le mode de réalisation décrit ici, l'invention est mise en oeuvre par un programme d'ordinateur PG conforme à l'invention, ce 30 programme étant stocké dans la mémoire morte 13. Ce programme PG comporte des instructions pour l'exécution des étapes d'un procédé d'optimisation de la durée de vie de la mémoire non volatile 15 selon l'invention, les principales étapes de ce procédé étant représentées sous forme d'organigramme à la figure 3. DETAILED DESCRIPTION OF AN EMBODIMENT FIG. 1 represents a smart card 100 according to the invention. It comprises an optimization device 50 according to the invention. This device 50 comprises a processor 11, a non-volatile memory rewritable memory 15 (hereinafter referred to as nonvolatile memory 15), a type-13 read-only memory and a random-access memory of the RAM type. The nonvolatile memory may in particular be a FLASH memory or EEPROM memory. In the exemplary embodiment described here, the size of the cells of the memory 15 (one cell being a part of the addressable memory independently of the others) is 1 byte. The invention can be implemented by an ASIC. But in the embodiment described here, the invention is implemented by a computer program PG according to the invention, this program being stored in the read-only memory 13. This program PG includes instructions for execution steps of a method for optimizing the lifetime of the nonvolatile memory 15 according to the invention, the main steps of this method being represented in flowchart form in FIG.

Le dispositif 50 comporte également des moyens d'entrée/sortie 14 par lequel le processeur 11 peut recevoir des ordres d'écriture W ou de lecture R dans la mémoire non volatile 15. Nous supposerons dans cet exemple que l'invention la mémoire 5 non volatile 15 mémorise un compteur dont la valeur évolue fréquemment. Afin de protéger la mémoire non volatile 15, le dispositif 50 selon l'invention comporte un buffer cyclique BC1 associé à ce compteur. Dans l'exemple de réalisation décrit ici, ce buffer cyclique BC1 10 comporte 8 registres R1 à R8 de même taille, la taille de ces registres étant supérieure à la taille des cellules de cette mémoire. Dans l'exemple de réalisation décrit ici, on note : - RR , la position du registre comportant la valeur courante du compteur ; et 15 - WR , la position du registre suivant dans le buffer cyclique BC1. L'homme du métier comprendra que le registre R1 est le registre suivant le registre R8 dans cet exemple. En référence à la figure 3, nous allons maintenant décrire les principales étapes d'un procédé d'optimisation de la durée de vie de la 20 mémoire non volatile 15. Dans l'exemple décrit ici, ce procédé est mis en oeuvre lorsque le processeur 11 lit (opération de lecture R ) ou incrémente (opération d'écriture W ) la valeur de ce compteur. Pour lire la valeur courante du compteur, le processeur 11 25 récupère la valeur contenue dans le registre courant RR et la retourne (étape [40). Dans l'exemple de la figure 1, la position du registre courant RR est obtenue en détectant une rupture dans la séquence {11, 12, 13, 14, 15, 16, 9, 10} des valeurs du buffer cyclique BC1. 30 Dans l'exemple de la figure 3, la valeur retournée est donc 16. Pour incrémenter la valeur du compteur (étape [10), le processeur 11 commence par rechercher, dans le buffer cyclique BC1, la valeur courante du compteur, à savoir 16. Il détermine ainsi, au cours d'une étape E20 que le registre 35 courant est le registre R6 et que par conséquent la position RR du registre courant est la position du registre R6. The device 50 also comprises input / output means 14 by which the processor 11 can receive write W or read R commands in the nonvolatile memory 15. In this example, we assume that the invention volatile 15 stores a counter whose value changes frequently. In order to protect the non-volatile memory 15, the device 50 according to the invention comprises a cyclic buffer BC1 associated with this counter. In the embodiment described here, this cyclic buffer BC1 10 has 8 registers R1 to R8 of the same size, the size of these registers being greater than the size of the cells of this memory. In the embodiment described here, there are: RR, the position of the register comprising the current value of the counter; and 15 - WR, the position of the next register in the cyclic buffer BC1. Those skilled in the art will understand that the register R1 is the register following the register R8 in this example. With reference to FIG. 3, we will now describe the main steps of a method for optimizing the lifetime of the non-volatile memory 15. In the example described here, this method is implemented when the processor 11 reads (read operation R) or increments (write operation W) the value of this counter. To read the current value of the counter, the processor 11 25 retrieves the value contained in the current register RR and returns it (step [40). In the example of FIG. 1, the position of the current register RR is obtained by detecting a break in the sequence {11, 12, 13, 14, 15, 16, 9, 10} of the values of the cyclic buffer BC1. In the example of FIG. 3, the value returned is therefore 16. To increment the value of the counter (step [10), the processor 11 starts by searching, in the cyclic buffer BC1, the current value of the counter, namely 16. It thus determines, during a step E20, that the current register is the register R6 and that consequently the position RR of the current register is the position of the register R6.

Puis, au cours d'une étape [30, le processeur 11 obtient la position WR du registre R7 devant contenir la valeur mise à jour du compteur, celle-ci étant, dans cet exemple la position suivant la position R6 dans le buffer cyclique BC1. Then, during a step [30, the processor 11 obtains the position WR of the register R7 to contain the updated value of the counter, this being, in this example, the position following the position R6 in the cyclic buffer BC1 .

On notera que l'invention s'applique particulièrement bien pour protéger la mémoire des accès répétés à un compteur puisque la position du registre d'écriture dans le buffer cyclique est directement liée à la valeur du compteur. Mais l'invention permet de protéger la mémoire non volatile 12 10 des accès à des données de tous types. La figure 2 représente un buffer cyclique BC2 pouvant être utilisé à la place du buffer BC1 pour protéger la mémoire non volatile 12 des accès répétés à une variable V contenant un log ou journal. Dans l'exemple de la figure 2, le buffer cyclique BC2 a 5 15 registres R1 à R5, chaque registre comportant un champ pour mémoriser la valeur du log, et un index IX permettant de repérer la position du registre courant RR. Ainsi, dans l'exemple de la figure 2, le registre courant est le registre R5, sa position RR étant déterminée en détectant une rupture 20 juste après la valeur 15 dans la séquence {11, 12, 13, 14, 15, 11, 12, ...} des index IX du buffer cyclique BC2. Par conséquent, si le processeur 11 reçoit un ordre de lecture du log, il obtient la valeur à jour du log par lecture du registre R5. S'il reçoit un ordre d'écriture d'une nouvelle valeur de ce log, il la mémorise 25 dans le registre R1, celui-ci suivant R5 dans le buffer cyclique BC2. Note that the invention applies particularly well to protect the memory of repeated access to a counter since the position of the write register in the cyclic buffer is directly related to the value of the counter. But the invention makes it possible to protect the nonvolatile memory 12 from access to data of all types. FIG. 2 represents a cyclic buffer BC2 that can be used instead of the buffer BC1 to protect the non-volatile memory 12 from repeated accesses to a variable V containing a log or log. In the example of FIG. 2, the cyclic buffer BC2 has 5 registers R1 to R5, each register comprising a field for storing the value of the log, and an index IX making it possible to locate the position of the current register RR. Thus, in the example of FIG. 2, the current register is the register R5, its position RR being determined by detecting a break just after the value in the sequence {11, 12, 13, 14, 15, 11, 12, ...} indexes IX of the BC2 cyclic buffer. Therefore, if the processor 11 receives a read order of the log, it gets the updated value of the log by reading the register R5. If it receives a write command of a new value of this log, it stores it in the register R1, the latter following R5 in the cyclic buffer BC2.

Claims (15)

REVENDICATIONS1. Procédé d'optimisation de la durée de vie d'une mémoire non volatile réinscriptible (15), caractérisé en ce qu'il comporte, pour effectuer la mise à jour d'au moins une donnée (D) dont la valeur est susceptible d'évoluer fréquemment : - une étape (E20) d'obtention, dans une structure de données (BC1, BC2) associée à cette donnée (D), d'une position (RR) d'un premier registre (R6, R5), dite première position , ce premier registre comportant la valeur courante de ladite donnée (D) ; et - une étape (E30) d'écriture de la valeur (V) mise à jour de ladite donnée dans un deuxième registre (R7, R1) de ladite structure de données (BC1, BC2), dont la position (WR), dite deuxième position est obtenue à partir de ladite première position (RR), les premier et deuxième registres étant dans des cellules de ladite mémoire (15) adressables indépendamment l'une de l'autre. REVENDICATIONS1. A method for optimizing the lifetime of a rewritable non-volatile memory (15), characterized in that it comprises, for updating at least one datum (D) whose value is capable of to evolve frequently: - a step (E20) of obtaining, in a data structure (BC1, BC2) associated with this datum (D), a position (RR) of a first register (R6, R5), so-called first position, this first register comprising the current value of said datum (D); and a step (E30) for writing the value (V) updating said data item in a second register (R7, R1) of said data structure (BC1, BC2), whose position (WR), so-called second position is obtained from said first position (RR), the first and second registers being in cells of said memory (15) addressable independently of one another. 2. Procédé d'optimisation selon la revendication 1, caractérisé 20 en ce que ladite structure de données est un buffer cyclique (BC1, BC2). 2. Optimization method according to claim 1, characterized in that said data structure is a cyclic buffer (BC1, BC2). 3. Procédé d'optimisation selon la revendication 1 ou 2, caractérisé en ce que l'obtention (E20) de ladite première position (RR) est effectuée en détectant une rupture dans une séquence de ladite 25 structure de données (BC1, BC2). 3. An optimization method according to claim 1 or 2, characterized in that obtaining (E20) said first position (RR) is performed by detecting a break in a sequence of said data structure (BC1, BC2) . 4. Procédé d'optimisation selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ladite première position (RR) est obtenue directement à partir de ladite valeur (V) comprise dans ledit 30 premier registre (R6). 4. Optimization method according to any one of claims 1 to 3, characterized in that said first position (RR) is obtained directly from said value (V) included in said first register (R6). 5. Procédé d'optimisation selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ladite première position (RR) est obtenue à partir d'un index (IX) compris dans ledit premier registre 35 (R5). 5. Optimization method according to any one of claims 1 to 3, characterized in that said first position (RR) is obtained from an index (IX) included in said first register (R5). 6. Utilisation du procédé d'optimisation selon la revendication 4, dans lequel ladite donnée (D) susceptible d'évoluer fréquemment est un compteur, la mise à jour consistant à incrémenter ledit compteur. 6. Use of the optimization method according to claim 4, wherein said data (D) may evolve frequently is a counter, the update of incrementing said counter. 7. Utilisation du procédé d'optimisation selon la revendication 5, dans lequel ladite donnée (D) susceptible d'évoluer est une clef cryptographique, un montant ou un numéro de transaction bancaire. 7. Use of the optimization method according to claim 5, wherein said data (D) may evolve is a cryptographic key, an amount or a bank transaction number. 8. Programme d'ordinateur (PG) comportant des instructions pour l'exécution des étapes du procédé d'optimisation selon l'une quelconque des revendications 1 à 5 lorsque ledit programme est exécuté par un ordinateur. A computer program (PG) comprising instructions for executing the steps of the optimization method according to any one of claims 1 to 5 when said program is executed by a computer. 9. Support d'enregistrement (13) lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé d'optimisation selon l'une quelconque des revendications 1 à 5. 9. A computer-readable recording medium (13) on which is recorded a computer program comprising instructions for executing the steps of the optimization method according to any one of claims 1 to 5. 10. Dispositif (50) comportant une mémoire non volatile réinscriptible (15), caractérisé en ce qu'il comporte : - au moins une structure de données (BC1, BC2) associée à une donnée (D) dont la valeur (V) est susceptible d'évoluer fréquemment : - des moyens (11) d'obtention, dans ladite structure de données (BC1, BC2), d'une position (RR) d'un premier registre (R6, R5), dite première position , ce premier registre comportant la valeur courante de ladite donnée (D) ; et - des moyens (11) d'écriture de la valeur (V) mise à jour de ladite donnée dans un deuxième registre (R7, R1) de ladite structure de données (BC1, BC2), dont la position (WR), dite deuxième position est obtenue à partir de ladite première position (RR), les premier et deuxième registres étant dans des cellules de ladite mémoire (15) adressables indépendamment l'une de l'autre. 10. Device (50) comprising a rewritable non-volatile memory (15), characterized in that it comprises: - at least one data structure (BC1, BC2) associated with a datum (D) whose value (V) is capable of changing frequently: means (11) for obtaining, in said data structure (BC1, BC2), a position (RR) of a first register (R6, R5), said first position, this first register comprising the current value of said datum (D); and - means (11) for writing the value (V) updating said data in a second register (R7, R1) of said data structure (BC1, BC2), whose position (WR), so-called second position is obtained from said first position (RR), the first and second registers being in cells of said memory (15) addressable independently of one another. 11. Dispositif selon la revendication 10, caractérisé en ce que la taille desdits registres est supérieure à la taille desdites cellules. 11. Device according to claim 10, characterized in that the size of said registers is greater than the size of said cells. 12. Dispositif d'optimisation selon la revendication 10 ou 11, caractérisé en ce que ladite structure de données est un buffer cyclique (BC1, BC2). 12. Optimization device according to claim 10 or 11, characterized in that said data structure is a cyclic buffer (BC1, BC2). 13. Dispositif selon l'une quelconque des revendications 10 à 12, caractérisé en ce que les dits moyens (11) d'obtention de ladite première position (RR) obtiennent cette première position directement à partir de la valeur (V) comprise dans ledit registre courant (R6). 13. Device according to any one of claims 10 to 12, characterized in that said means (11) for obtaining said first position (RR) obtain this first position directly from the value (V) included in said current register (R6). 14. Dispositif selon l'une quelconque des revendications 10 à 12, caractérisé en ce que chaque registre (R1-R5) dudit buffer cyclique (BC2) comporte un index (IX), et en ce que les dits moyens (11) d'obtention de ladite première position (RR) obtiennent cette première position à partir dudit index (IX). 14. Device according to any one of claims 10 to 12, characterized in that each register (R1-R5) of said cyclic buffer (BC2) comprises an index (IX), and in that said means (11) of obtaining said first position (RR) obtain this first position from said index (IX). 15. Carte à puce (100) comportant un dispositif (50) selon l'une quelconque des revendications 10 à 14. A chip card (100) having a device (50) according to any one of claims 10 to 14.
FR0855870A 2008-09-02 2008-09-02 METHOD OF OPTIMIZING THE LIFETIME OF A NON-VOLATILE MEMORY REINSCRIPTIBLE Expired - Fee Related FR2935502B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0855870A FR2935502B1 (en) 2008-09-02 2008-09-02 METHOD OF OPTIMIZING THE LIFETIME OF A NON-VOLATILE MEMORY REINSCRIPTIBLE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0855870A FR2935502B1 (en) 2008-09-02 2008-09-02 METHOD OF OPTIMIZING THE LIFETIME OF A NON-VOLATILE MEMORY REINSCRIPTIBLE

Publications (2)

Publication Number Publication Date
FR2935502A1 true FR2935502A1 (en) 2010-03-05
FR2935502B1 FR2935502B1 (en) 2010-12-10

Family

ID=40491113

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0855870A Expired - Fee Related FR2935502B1 (en) 2008-09-02 2008-09-02 METHOD OF OPTIMIZING THE LIFETIME OF A NON-VOLATILE MEMORY REINSCRIPTIBLE

Country Status (1)

Country Link
FR (1) FR2935502B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892808B2 (en) 2011-04-22 2014-11-18 Hewlett-Packard Development Company, L.P. Retention-value associated memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282700B1 (en) * 1998-05-21 2001-08-28 Hewlett Packard Company Mechanism for maintaining revisions of objects in flash memory
US20070147168A1 (en) * 2005-12-28 2007-06-28 Yosi Pinto Methods for writing non-volatile memories for increased endurance
US20070198796A1 (en) * 2006-02-22 2007-08-23 Seagate Technology Llc Enhanced data integrity using parallel volatile and non-volatile transfer buffers
US20090037646A1 (en) * 2007-08-02 2009-02-05 Alcatel Lucent Method of using a flash memory for a circular buffer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282700B1 (en) * 1998-05-21 2001-08-28 Hewlett Packard Company Mechanism for maintaining revisions of objects in flash memory
US20070147168A1 (en) * 2005-12-28 2007-06-28 Yosi Pinto Methods for writing non-volatile memories for increased endurance
US20070198796A1 (en) * 2006-02-22 2007-08-23 Seagate Technology Llc Enhanced data integrity using parallel volatile and non-volatile transfer buffers
US20090037646A1 (en) * 2007-08-02 2009-02-05 Alcatel Lucent Method of using a flash memory for a circular buffer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892808B2 (en) 2011-04-22 2014-11-18 Hewlett-Packard Development Company, L.P. Retention-value associated memory

Also Published As

Publication number Publication date
FR2935502B1 (en) 2010-12-10

Similar Documents

Publication Publication Date Title
EP0227530B1 (en) Method for recording with updating and for the reproduction of data on a non-erasable sectorial record carrier
EP1483673B1 (en) Method for storing data blocks in a memory
EP2196913A1 (en) Method for managing a hash tree based on the use of cache memory, to protect data integrity
FR2913785A1 (en) CIRCULAR BUFFER MEMORY MANAGEMENT
FR2861208A1 (en) METHOD AND SYSTEM FOR PARAMETERING THE WRITE SPEED OF AN OPTICAL UNIT
FR2685520A1 (en) Refill memory card, process for making secure and terminal for use
EP2724237B1 (en) Method of managing the endurance of non-volatile memories
EP3080815B1 (en) System and method for managing wear of an electronic memory
FR2935502A1 (en) Life duration optimizing method for e.g. electrically EPROM, in banking transaction, involves writing updated value of data in one pair of two register pairs in cells of memory addressable independently
FR3044817A1 (en) METHOD FOR MANAGING A BIT LINE THAT IS DEFECTIVE OF THE MEMORY PLAN OF A NON-VOLATILE MEMORY AND CORRESPONDING MEMORY DEVICE
CA2352420A1 (en) Memory management device for entering data blocks by substitution
FR3062499A1 (en) METHOD FOR REDUCING THE SIZE OF A BLOCKED CHAIN TYPE DATABASE, DEVICE AND PROGRAM THEREOF
FR2600441A1 (en) MEMORY MANAGEMENT UNIT
WO2003027851A1 (en) Method and device for optimized code checker
EP1902369B1 (en) Method for managing a non-volatile memory in a smart card
FR2997208A1 (en) METHOD FOR MANAGING A FLASH MEMORY
EP1233419A2 (en) Refreshing method of a dynamic memory
EP0733977B1 (en) Computer system having hierarchical memories
WO2009040204A1 (en) Method for generating masks in a communicating object and corresponding communicating object
FR2818770A1 (en) METHOD FOR OPTIMIZED MANAGEMENT OF THE MEMORY ALLOCATION OF AN ON-BOARD SYSTEM AND CORRESPONDING ON-BOARD SYSTEM
FR3012655A1 (en) FLASH MEMORY COUNTER
FR3125897A1 (en) Method for optimizing operation of a secure element
EP1650766B1 (en) Method for erasing a flash memory and counter comprising a flash memory
CN116205668A (en) User retention rate prediction method and device
FR3145627A1 (en) Process for managing data affected by conflicting retention and updating obligations

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

ST Notification of lapse

Effective date: 20210506