[go: up one dir, main page]

WO2007090857A1 - Method of secure updating of a nonvolatile memory - Google Patents

Method of secure updating of a nonvolatile memory Download PDF

Info

Publication number
WO2007090857A1
WO2007090857A1 PCT/EP2007/051190 EP2007051190W WO2007090857A1 WO 2007090857 A1 WO2007090857 A1 WO 2007090857A1 EP 2007051190 W EP2007051190 W EP 2007051190W WO 2007090857 A1 WO2007090857 A1 WO 2007090857A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
block
main
mnv
Prior art date
Application number
PCT/EP2007/051190
Other languages
French (fr)
Inventor
Thierry Garnier
Jean-Marie Valade
Patrick Van-Haver
Original Assignee
Gemplus
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 Gemplus filed Critical Gemplus
Publication of WO2007090857A1 publication Critical patent/WO2007090857A1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written

Definitions

  • the present invention relates to nonvolatile memories, such as EEPROM memories or flash memories and associated management circuits for updating in a secure manner the data stored in these memories.
  • the present invention applies in particular to nonvolatile memories of this type in microprocessor chip cards.
  • the updating of a data item consists in replacing, at a given address of the memory, an old data item with a new data item.
  • This updating operation can be critical with respect to the integrity of the data concerned.
  • nonvolatile memory technologies such as EEPROM or flash memory imply that the data to be updated is first erased before the new data can be programmed to the specified address. It may happen that the supply voltage of the memory is accidentally cut during this phase, causing both the old data and the new data to be lost. Such a situation is obviously not acceptable, especially when it comes to data whose conservation is critical in the application in question.
  • Mechanisms to respect the integrity of the data during a memory update phase were then developed. These secure update mechanisms mainly consist, before performing the updating operation of a data, to save the old data in a dedicated backup area of the non-volatile memory (called "backup area" in English language) before updating the new data to the desired address.
  • This system information typically relates to the address of the data in the memory, its length, as well as indicators to indicate whether the backup area is still active or not.
  • the old value of the data is no longer useful and the dedicated backup area for this data and its associated system information can be released.
  • specific mechanisms (“rollback” according to the English terminology ") are then provided to trigger the reset of the memory , allowing to restore the data of the memory in their initial state before updating. To do this, these mechanisms detect active backup areas in memory and copy the old values stored therein to the appropriate memory locations indicated by the information. corresponding system also saved together with the data.
  • non-volatile memories of large capacity, NOR flash type which then has a much less granularity, of the order a few tens / hundreds of bytes to several kilo / ten kilo octets (KB ).
  • Such memories can be programmed byte by byte, but can only be erased by an entire block of memory defined by the granularity of the memory of the order of a few tens / hundreds of bytes to several kilo / tens of kilobytes. (Ko)
  • These memories can also be programmed per page, corresponding to a predefined fixed size memory block, defining the maximum number of bytes that can be written to during a single operation when memory programming is not done byte-by-byte.
  • the secure updating of a data of the coded memory for example on a single byte with application of the mechanisms of "backup" previously exposed ensuring a potential restoration of the state of the memory in case of accidental power failure during the updating operation would require to copy beforehand in the predefined storage area of the memory a large part of memory constituted by the entire block of memory containing the byte to be updated, ie a data block of a few tens / hundreds of bytes to several kilo / tens of kilobytes (KB), depending on the nominal granularity of the memory.
  • the update of a data item in a nonvolatile memory with a large flash granularity implies not only to previously erase the data concerned, but also to erase the entire block containing the data concerned, since erasure of these memory can be performed only by integer block, defining the granularity of the memory. It is therefore an entire block of memory, that is to say 8 KB, 16 KB, 32 KB or more, which must be saved via the mechanism of "backup" in the zone backup, while the update concerns only one byte for example of the memory block in question. Also, the existing mechanisms described above to respect the integrity of data during an update process are unsuited to non-volatile memories that have a low degree of fragmentation.
  • the invention aims to solve this drawback, by proposing a non-volatile memory management system of high capacity and high granularity, in which the existing mechanisms ensuring the integrity of the data when they are updated in the event of accidental breakage The power supply can continue to be used, keeping a size of the backup area provided for this purpose and memory usage performance within acceptable limits.
  • the subject of the invention is a method for updating at least one data item in a predefined fixed block memory nonvolatile primary non-volatile memory, consisting of: a- saving in an area of backup memory the old value of the data; b- save in the backup area at the same time as the old value of the data the system information related to the data item to be updated, comprising at least one active backup indicator indicating that data has just been saved and that a data modification is in progress; said method being characterized in that it further comprises the steps of: c- copying the entire block concerned by the data item to be updated into a nonvolatile memory buffer area corresponding in size to at least the fixed block size predefined main memory, said buffer zone being distinct from the backup area; d- erase from the main non-volatile memory the block concerned by the data item to be updated; e- reconstructing the block from the data of the block copied in the buffer zone and the new value of the data item to be updated and write said block with the data item updated in the main non-vola
  • the method consists of repeating steps a- to e- of the process consecutively for each data item concerned by the transaction.
  • the old data values and the associated system information corresponding to each data of the transaction are saved in the same memory sector of the backup area.
  • the step f- is implemented if the update operation of the plurality of data has proceeded correctly, and consists in deactivating the backup indicators previously saved in the backup zone. respectively for each updated data.
  • the step f- implemented is replaced by a step of erasing the contents of the backup area.
  • the size of the buffer zone is a multiple N, N greater than or equal to 1, of the predefined block size for the main non-volatile memory.
  • the step of restoring a piece of data in memory consists of:
  • the step of rebuilding the block concerned by the data item to be restored comprises previously copying in the buffer zone the data of the block concerned, starting from the previously recovered starting address. block in the main non-volatile memory.
  • the programming step in the memory of the restored block first comprises the erasure of the corresponding block of the memory and then the writing of the restored block into memory.
  • the main non-volatile memory comprises characteristics of high capacity and large granularity and the buffer zone comprises characteristics of low capacity and fine granularity.
  • the invention also relates to a portable digital apparatus comprising a microprocessor, a main memory non-volatile memory erasable by memory block of predefined fixed size and a data backup area of the main non-volatile memory during a data updating process, characterized in that it comprises a buffer zone of non-volatile memory, of size corresponding to at least the fixed size of predefined block of the main memory, and memory management means adapted to control the progress of data update operations in memory according to the method according to any one of the preceding claims.
  • the main non-volatile memory comprises characteristics of high capacity and large granularity and the buffer zone comprises characteristics of low capacity and fine granularity.
  • the main non-volatile memory is a flash memory.
  • FIGS. 1 and 2 illustrate the steps of FIG. method of the invention ensuring the update of a single data memory, with respect for its integrity
  • FIGS. 3 to 5 illustrate the steps of the method of the invention guaranteeing the updating of two data of the memory intervening in the completion of a transaction, with respect for the principle of atomicity of transactions.
  • the invention will preferably be implemented in a smart card, comprising a non-volatile memory for storing data, and a microprocessor for managing data exchanges between the inside and the outside of the card.
  • non-volatile memory MNV programmable and electrically erasable
  • data are subject to change during successive uses of the card and these modifications must be made while ensuring the integrity of the data.
  • the data updated in the memory must not be lost during an untimely interruption during the update operation of this data, due for example to the tearing of the card of the reader with which it communicates for updating the data, or has a power failure.
  • the memory MNV is a non-volatile memory of large capacity, for example of the order of several megabytes, very high integration density. This is for example a NOR flash memory type.
  • the size of a memory block defining the minimum amount of bytes that is effectively erased during a single memory erase operation, can range from 128 bytes to a few tens / hundreds of KB (coarse grain granularity). eg 8KB, 16KB, 32KB or more.
  • the card also includes a non-volatile backup memory area S, programmable and electrically erasable, provided to save the old value of a data while updating this data in the main memory MNV.
  • This save area is represented as a separate memory from the main non-volatile memory MNV. However, it can be physically constituted by a portion dedicated for this purpose of the main memory MNV.
  • the backup area is preferably divided into sectors of size equal to the predefined size of a data block of the main non-volatile memory MNV and each sector makes it possible to save data of the card to be updated in the main memory. MRV.
  • the corresponding field of data saved in the save area is sized according to the maximum size of the data that can be saved.
  • System information related to the data is saved at the same time in the backup area.
  • This system information related to the saved data includes a backup indicator, encoded for example on a bit, indicating that a data has just been saved and a modification is in progress.
  • the active state of this indicator then makes it possible to indicate that the old value of the data can be recovered if the update does not proceed correctly until its end.
  • This information further includes information about the data length, the original address in the main memory of the data saved in the backup area, and in general, any information needed to interpret the data stored in the backup area and to check the integrity of that data.
  • the original address of a data item saved is necessary to be able to possibly restore the data in the case where the update would not proceed correctly.
  • the card further comprises a portion B of nonvolatile memory, intended to act as a persistent buffer vis-à-vis the entire blocks of data of the main nonvolatile memory, as will be explained in more detail hereinafter.
  • this buffer may have intrinsic characteristics different from the main memory MNV and the backup area S
  • the buffer zone B alongside the main non-volatile memory MNV serves to replace the existing backup zone S, conventionally used by the mechanisms already described for backup and recovery, in order to save the entire blocks of data. data concerned with the data or data to be updated in the main non-volatile memory.
  • the buffer zone can then advantageously make it possible not to compromise the overall performance of the system, because of the intrinsic characteristics of the buffer zone and in any case avoids the need to provide an oversized size for the data saving zone S, this which would be problematic given the specific constraints related to embedded systems.
  • the backup area S remains, as in the state of the art, dedicated solely to the backup of the data to be updated with their associated system information.
  • the data blocks of the main memory concerned by the update are in turn stored in the buffer zone B provided for this purpose.
  • the buffer zone is a persistent type of memory, which is particularly advantageous concerning the processing of the integrity of the data.
  • step 1 the old value of the data item D 0 to be updated in the main nonvolatile memory MNV is written in the backup area S for the purpose of saving it, as well as the associated system information I 0 , including including its original address and the backup indicator.
  • the backup flag is then activated, representing the presence of saved and reusable data in the event of a problem. This is the same mechanism that is currently implemented during the secure update in an EEPROM.
  • the actual update of the data D 0 then comprises the following steps:
  • step 2 the entire block P of data comprising the data item D 0 to be updated is copied to the buffer zone B dedicated for this purpose;
  • step 3 the block P in the main memory is erased
  • step 4 a new block P is reconstructed from the data of the block P stored in the buffer zone B and of the new value of the updated data item Di, then the block P thus reconstructed with the updated data item.
  • O 1 is written in the main non-volatile memory MNV to the corresponding address, obtained from the system information I 0 saved in the backup area S;
  • step 5 the buffer zone is erased and, in step 6, the backup indicator corresponding to the saved datum D 0 is deactivated if the progress of the operation has been normal from one end to the other. other.
  • a variant of step 6 is to erase the backup area.
  • FIGS. 3 to 5 now illustrate the steps of the method of the invention concerning the updating of a plurality of data of the memory of the card, in this case two data D 0 and D 2 , said data having to remain coherent between them and therefore, can not be updated separately.
  • the method according to the invention advantageously makes it possible to respect the principle of atomicity of transactions, that is to say that it makes it possible to ensure that the transaction is considered as an indivisible operation, which can only execute entirely or, failing that, be canceled entirely.
  • step 1 the old value of the data item D 0 involved in the transaction and to be updated in the main nonvolatile memory MNV is written in the backup area S in order to save it, as well as that the associated system information I 0 , including including its original address and the backup indicator in the active state.
  • step 2 the entire block P1 of data comprising the data D 0 to be updated is copied to the buffer zone B dedicated thereto;
  • step 3 the block P1 is erased in the main memory and, in step 4, a new block P1 is reconstructed from the data of the block P1 previously stored in the buffer zone B and the new value of the updated data Di.
  • the block P1 thus reconstructed with the updated datum D1 is then written in the main nonvolatile memory MNV at the corresponding address of the block P1, obtained from the system information I0 stored in the backup area S;
  • step 5 buffer zone B is erased.
  • the previously described steps of the method are then repeated consecutively for the other data item D 2 concerned by the transaction and to be updated at the same time as the data item D 0 .
  • step 6 the old value of the data item D 2 involved in the transaction and to be updated in the main nonvolatile memory MNV is written in the backup area S in order to save it, likewise the associated system information I 2 , including in particular its original address and the backup indicator in the active state.
  • step 7 the entire block P2 of data comprising the data D 2 to be updated is copied to the buffer zone B dedicated for this purpose;
  • step 8 the block P2 is erased in the main memory then, in step 9, a new block P2 is reconstructed from the data of the block P2 previously stored in the buffer zone B and the new value of the updated data D 3 .
  • the P2 block thus reconstructed with the updated data D 3 is then written in the main nonvolatile memory MNV at the corresponding address of the block P2, obtained from the system information I 2 saved in the backup area S;
  • step 10 the buffer area B is erased.
  • step 11 the backup indicators corresponding to the data saved D 0 and D 2 are deactivated if the progress of the update operation involved in the transaction has been normal from one end to the other.
  • the data is updated one by one, however the individual data backup flags are not disabled immediately after each data update.
  • it is expected that all data have been updated to do so since all data form a whole, whose coherence must be preserved.
  • an interruption occurs during the process of updating the second data, while the first data has already been updated, it is possible to restore the initial state of both the first and the second data. given, since their backup flag is kept in the active state until the end of the process.
  • the abnormal interrupt occurs while at least one backup flag is in the active state, it means that an update operation of data in the main memory has started.
  • the main memory contains the old data, or the new data, or an empty area resulting from the erasure of the entire block including the data before rewriting, hence the need to restore the memory in its state. initial state before the start of the update operation.
  • memory management means verify systematically the presence of backup indicators in the active state in the backup zone S of the card. If at least one backup flag is in the active state, the contents of the associated data field containing the old value of the data being updated is restored to the main non-volatile memory MNV. Then, the corresponding backup flag is disabled. The main memory is then in the state it had before the failed attempt to update.
  • the restoration of the data requires in fact the restoration in main memory of the complete block comprising the data.
  • the step of restoring data in main memory consists first of recovering the starting address in the memory of the data block concerned by the data to be restored, from the system information saved with the old value of the data in the backup area S.
  • this information includes the original address in the memory of the data, from which, knowing the predefined size of a block of the main memory, we can find the starting address of the concerned block.
  • the process of restoring the data in main memory consists in reconstructing the block concerned as it was in its initial state, from the data of the block concerned which are copied in the buffer zone B and the old value of the data item to be restored which is saved in the backup area S.
  • the restored block is then programmed into the main memory MNV at the retrieved address.
  • the programming step in the memory of the restored block first comprises erasing the corresponding block of the memory and then writing the restored block into memory.
  • the buffer zone B is empty. This is for example the case if the interruption occurs between the previously described steps 5 and 6 where the buffer zone has already been erased.
  • the restoration of the main memory in its initial state as before the update can not be based on the buffer zone to reconstruct the concerned block of the main memory in its initial state.
  • the step of rebuilding the block concerned by the data to be restored comprises beforehand the copying in the buffer zone B of the data of the block concerned, taken from the starting address of the block in question in the main memory. .
  • the main advantage of copying this block from the main memory to the persistent buffer zone, in order to restore the block to its initial state in the main memory, is to guard against a Abnormal power interruption occurring during the restoration process itself.
  • the restoration process involves, when the restored block is programmed in main memory, to delete the concerned block in main memory before writing the restored block.
  • an abnormal interruption during the programming step of the restored block will not compromise the integrity of the data, the latter being saved in the non-volatile memory buffer zone.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The invention relates to a method of updating a data item (D<SUB>0</SUB>) in a block-erasable main non-volatile memory (MNV), consisting in: saving in a save area (S) the old value of the data item (D<SUB>0</SUB>) and at least one active save indicator (I<SUB>0</SUB>) indicating that a data item has just been saved and that a modification is underway; copying the block (P) relevant to the data item to be updated into a non-volatile memory buffer area (B); erasing said block (P) from the main memory (MNV); reconstructing the block (P) on the basis of the data copied into the buffer area and of the new value of the data item to be updated and writing said reconstructed block (P) into the main memory (MNV); deactivating the indicator of the save area if the update operation has run correctly.

Description

PROCEDE DE MISE A JOUR SECURISEE DE MEMOIRE NON METHOD FOR SECURE UPDATING OF NO MEMORY
VOLATILEVOLATILE
La présente invention concerne les mémoires non volatiles, telles que les mémoires EEPROM ou les mémoires flash et les circuits de gestion associés permettant de mettre à jour d'une manière sûre les données stockées dans ces mémoires. La présente invention s'applique notamment aux mémoires non volatiles de ce type dans les cartes à puce à microprocesseur .The present invention relates to nonvolatile memories, such as EEPROM memories or flash memories and associated management circuits for updating in a secure manner the data stored in these memories. The present invention applies in particular to nonvolatile memories of this type in microprocessor chip cards.
La mise à jour d'une donnée consiste à remplacer, à une adresse déterminée de la mémoire, une ancienne donnée par une nouvelle donnée. Cette opération de mise à jour peut s'avérer critique au regard du respect de l'intégrité de la donnée concernée. En effet, les technologies des mémoires non volatiles telles que les mémoires EEPROM ou flash impliquent que la donnée à mettre à jour soit d'abord effacée avant que la nouvelle donnée puisse être programmée à l'adresse indiquée. Il peut alors arriver que la tension d'alimentation de la mémoire soit accidentellement coupée pendant cette phase, provoquant à la fois la perte de l'ancienne donnée et de la nouvelle. Une telle situation n'est évidemment pas acceptable, d'autant plus lorsqu'il s'agit de données dont la conservation est critique dans l'application considérée. Des mécanismes visant à respecter l'intégrité des données lors d'une phase de mise à jour de la mémoire ont alors été développés. Ces mécanismes de mise à jour sécurisés consistent principalement, avant d'effectuer l'opération de mise à jour d'une donnée, à sauvegarder l'ancienne donnée dans une zone de sauvegarde dédiée de la mémoire non volatile (appelée « backup area » en langage anglo-saxon) avant de mettre à jour la nouvelle donnée à l'adresse voulue.The updating of a data item consists in replacing, at a given address of the memory, an old data item with a new data item. This updating operation can be critical with respect to the integrity of the data concerned. Indeed, nonvolatile memory technologies such as EEPROM or flash memory imply that the data to be updated is first erased before the new data can be programmed to the specified address. It may happen that the supply voltage of the memory is accidentally cut during this phase, causing both the old data and the new data to be lost. Such a situation is obviously not acceptable, especially when it comes to data whose conservation is critical in the application in question. Mechanisms to respect the integrity of the data during a memory update phase were then developed. These secure update mechanisms mainly consist, before performing the updating operation of a data, to save the old data in a dedicated backup area of the non-volatile memory (called "backup area" in English language) before updating the new data to the desired address.
De cette manière, en cas de perte accidentelle d'alimentation de la mémoire au cours de l'opération de mise à jour, on préserve au moins l'ancienne valeur de la donnée considérée.In this way, in case of accidental loss of memory supply during the updating operation, at least the old value of the data considered is preserved.
En plus de la sauvegarde de la donnée, toute l'information nécessaire à la récupération de la valeur correspondante de la donnée doit également être sauvegardée. Ces informations de système concernent typiquement l'adresse de la donnée dans la mémoire, sa longueur, ainsi que des indicateurs permettant d'indiquer si la zone de sauvegarde est toujours active ou non. Quand la donnée a été correctement mise à jour, l'ancienne valeur de la donnée n'est en effet plus utile et la zone de sauvegarde dédiée pour cette donnée et ses informations de système associées peut être libérée . En cas de détection de perte d'alimentation de la mémoire au cours d'une opération de mise à jour, des mécanismes spécifiques (« rollback » selon la terminologie anglo-saxonne ») sont alors prévus pour se déclencher à la réinitialisation de la mémoire, permettant d'assurer la restauration des données de la mémoire dans leur état initial avant mise à jour. Pour ce faire, ces mécanismes détectent les zones de sauvegarde actives dans la mémoire et copient les anciennes valeurs qui y sont stockées aux emplacements adéquats de la mémoire, indiqués par les informations de système correspondantes également sauvegardées ensemble avec les données.In addition to saving the data, all the information necessary to retrieve the corresponding value of the data must also be saved. This system information typically relates to the address of the data in the memory, its length, as well as indicators to indicate whether the backup area is still active or not. When the data has been correctly updated, the old value of the data is no longer useful and the dedicated backup area for this data and its associated system information can be released. In case of detection of loss of memory power during an update operation, specific mechanisms ("rollback" according to the English terminology ") are then provided to trigger the reset of the memory , allowing to restore the data of the memory in their initial state before updating. To do this, these mechanisms detect active backup areas in memory and copy the old values stored therein to the appropriate memory locations indicated by the information. corresponding system also saved together with the data.
Dans le contexte des mémoires non volatiles, la difficulté de réalisation de ces mécanismes de mise à jour sécurisée réside dans la gestion des espaces de mémoire qui doivent être utilisés pour sauvegarder l'ancienne donnée et ses informations de système associées .In the context of nonvolatile memories, the difficulty of realizing these secure updating mechanisms lies in the management of the memory spaces that must be used to save the old data and its associated system information.
En effet, ces mécanismes existants, permettant d'assurer la mise à jour sécurisée des données, ont jusqu'alors été développés pour adresser des mémoires non volatiles comprenant une granularité mémoire fine, c'est-à-dire de l'ordre de l'octet. Une mise en œuvre efficace et performante de ces mécanismes est donc corrélée à l'utilisation d'une mémoire non volatile préalablement découpée en un certain nombre de blocs d'une taille prédéfinie, typiquement un octet, définissant une granularité fine de la mémoire.Indeed, these existing mechanisms, making it possible to ensure the secure updating of the data, have hitherto been developed to address nonvolatile memories comprising a fine memory granularity, that is to say of the order of 1. 'byte. An effective and efficient implementation of these mechanisms is therefore correlated to the use of a non-volatile memory previously cut into a number of blocks of a predefined size, typically one byte, defining a fine granularity of the memory.
Or, la tendance est au développement de mémoires non volatiles de grande capacité, de type flash NOR, qui présente alors une granularité beaucoup moins fine, de l'ordre quelques dizaines/centaines d'octets à plusieurs kilo/dizaine de kilo octets (Ko) . De telles mémoires peuvent être programmées octet par octet, mais ne peuvent par contre être effacées que par bloc entier de mémoire défini par la granularité de la mémoire de l'ordre de quelques dizaines/centaines d'octets à plusieurs kilo/dizaines de kilo octets (Ko) . Ces mémoires peuvent également être programmées par page, correspondant à un bloc mémoire de taille fixe prédéfinie, définissant le nombre maximum d'octets qui peut être programmé en écriture au cours d'une opération unique lorsque la programmation de la mémoire n'est pas effectuée octet par octet.Now, the trend is towards the development of non-volatile memories of large capacity, NOR flash type, which then has a much less granularity, of the order a few tens / hundreds of bytes to several kilo / ten kilo octets (KB ). Such memories can be programmed byte by byte, but can only be erased by an entire block of memory defined by the granularity of the memory of the order of a few tens / hundreds of bytes to several kilo / tens of kilobytes. (Ko) These memories can also be programmed per page, corresponding to a predefined fixed size memory block, defining the maximum number of bytes that can be written to during a single operation when memory programming is not done byte-by-byte.
Ainsi, du fait des contraintes de gestion des mémoires flash à granularité importante, la mise à jour sécurisée d'une donnée de la mémoire codée par exemple sur un seul octet avec application des mécanismes de « backup » précédemment exposés garantissant une restauration potentielle de l'état de la mémoire en cas de coupure accidentelle d'alimentation au cours de l'opération de mise à jour, nécessiterait de copier préalablement dans la zone de sauvegarde prédéfinie de la mémoire une grande partie de mémoire, constituée par le bloc entier de mémoire contenant l'octet à mettre à jour, à savoir donc un bloc de donnée de quelques dizaines/centaines d'octets à plusieurs kilo/dizaines de kilo octets (Ko) , selon la granularité nominale de la mémoire.Thus, because of the management constraints of flash memories with large granularity, the secure updating of a data of the coded memory for example on a single byte with application of the mechanisms of "backup" previously exposed ensuring a potential restoration of the state of the memory in case of accidental power failure during the updating operation, would require to copy beforehand in the predefined storage area of the memory a large part of memory constituted by the entire block of memory containing the byte to be updated, ie a data block of a few tens / hundreds of bytes to several kilo / tens of kilobytes (KB), depending on the nominal granularity of the memory.
En effet, la mise à jour d'une donnée dans une mémoire non volatile à granularité importante de type flash implique non seulement d'effacer préalablement la donnée concernée, mais également d'effacer le bloc entier contenant la donnée concernée, puisque l'effacement de ces mémoire ne peut être effectué que par bloc entier, définissant la granularité de la mémoire. Il s'agit donc bien d'un bloc entier de la mémoire, c'est-à-dire 8 Ko, 16 Ko, 32 Ko ou plus, qui doit être sauvegardée par l'intermédiaire du mécanisme de « backup » dans la zone de sauvegarde, alors que la mise à jour ne concerne qu'un seul octet par exemple du bloc mémoire en question. Aussi, les mécanismes existants précédemment décrits visant au respect de l'intégrité des données lors d'un processus de mise à jour sont inadaptés aux mémoires non volatiles qui présentent un faible degré de fragmentation. Ainsi, la taille de la zone de sauvegarde (« backup area ») nécessaire au stockage de l'information de sauvegarde correspondant au bloc entier de mémoire concerné par la mise à jour serait déraisonnable . L'invention vise à résoudre cet inconvénient, en proposant un système de gestion de mémoires non volatiles de grande capacité et à forte granularité, dans lequel les mécanismes existants veillant à l'intégrité des données lors de leur mise à jour en cas de coupure accidentelle d'alimentation peuvent continuer d'être utilisés, en conservant une taille de la zone de sauvegarde prévue à cet effet et des performances d'utilisation de la mémoire dans des limites acceptables. Avec cet objectif en vue, l'invention a pour objet un procédé de mise à jour d'au moins une donnée dans une mémoire non volatile principale effaçable par bloc de mémoire de taille fixe prédéfinie, consistant à : a- sauvegarder dans une zone de mémoire de sauvegarde l'ancienne valeur de la donnée; b- sauvegarder dans la zone de sauvegarde en même temps que l'ancienne valeur de la donnée des informations de système liées à la donnée à mettre à jour, comprenant au moins un indicateur de sauvegarde actif indiquant qu'une donnée vient d'être sauvegardée et qu'une modification de donnée est en cours ; ledit procédé étant caractérisé en ce qu' il comprend en outre des étapes consistant à : c- copier le bloc entier concerné par la donnée à mettre à jour dans une zone tampon de mémoire non volatile de taille correspondante à au moins la taille fixe de bloc prédéfinie de la mémoire principale, ladite zone tampon étant distincte de la zone de sauvegarde ; d- effacer de la mémoire non volatile principale le bloc concerné par la donnée à mettre à jour ; e- reconstruire le bloc à partir des données du bloc copiées dans la zone tampon et de la nouvelle valeur de la donnée à mettre à jour et écrire ledit bloc avec la donnée mise à jour dans la mémoire non volatile principale; f- désactiver l'indicateur de la zone de sauvegarde si l'opération de mise à jour s'est déroulée correctement .Indeed, the update of a data item in a nonvolatile memory with a large flash granularity implies not only to previously erase the data concerned, but also to erase the entire block containing the data concerned, since erasure of these memory can be performed only by integer block, defining the granularity of the memory. It is therefore an entire block of memory, that is to say 8 KB, 16 KB, 32 KB or more, which must be saved via the mechanism of "backup" in the zone backup, while the update concerns only one byte for example of the memory block in question. Also, the existing mechanisms described above to respect the integrity of data during an update process are unsuited to non-volatile memories that have a low degree of fragmentation. Thus, the size of the backup area required to store the backup information corresponding to the entire block of memory concerned by the update would be unreasonable. The invention aims to solve this drawback, by proposing a non-volatile memory management system of high capacity and high granularity, in which the existing mechanisms ensuring the integrity of the data when they are updated in the event of accidental breakage The power supply can continue to be used, keeping a size of the backup area provided for this purpose and memory usage performance within acceptable limits. With this object in view, the subject of the invention is a method for updating at least one data item in a predefined fixed block memory nonvolatile primary non-volatile memory, consisting of: a- saving in an area of backup memory the old value of the data; b- save in the backup area at the same time as the old value of the data the system information related to the data item to be updated, comprising at least one active backup indicator indicating that data has just been saved and that a data modification is in progress; said method being characterized in that it further comprises the steps of: c- copying the entire block concerned by the data item to be updated into a nonvolatile memory buffer area corresponding in size to at least the fixed block size predefined main memory, said buffer zone being distinct from the backup area; d- erase from the main non-volatile memory the block concerned by the data item to be updated; e- reconstructing the block from the data of the block copied in the buffer zone and the new value of the data item to be updated and write said block with the data item updated in the main non-volatile memory; f- disable the indicator of the backup area if the update operation was successful.
Selon un mode de réalisation particulier dans lequel la mise à jour implique une pluralité de données de la mémoire non volatile principale intervenant dans la réalisation d'une transaction, lesdites données de la transaction ne devant pas être mises à jour séparément, le procédé consiste à répéter consécutivement les étapes a- à e- du procédé pour chaque donnée concernée par la transaction.According to a particular embodiment in which the updating involves a plurality of data of the main non-volatile memory involved in the realization of a transaction, said transaction data not having to be updated separately, the method consists of repeating steps a- to e- of the process consecutively for each data item concerned by the transaction.
De préférence, selon le mode de réalisation particulier, les anciennes valeurs de donnée et les informations de système associées correspondant à chaque donnée de la transaction, sont sauvegardées dans un même secteur de mémoire de la zone de sauvegarde . Selon le mode de réalisation particulier, l'étape f- est mise en œuvre si l'opération de mise a jour de la pluralité de données s'est déroulée correctement, et consiste à désactiver les indicateurs de sauvegarde préalablement sauvegardés dans la zone de sauvegarde respectivement pour chaque donnée mise à jour.Preferably, according to the particular embodiment, the old data values and the associated system information corresponding to each data of the transaction, are saved in the same memory sector of the backup area. According to the particular embodiment, the step f- is implemented if the update operation of the plurality of data has proceeded correctly, and consists in deactivating the backup indicators previously saved in the backup zone. respectively for each updated data.
Selon une variante de l'invention, l'étape f- mise en œuvre est remplacée par une étape consistant à effacer le contenu de la zone de sauvegarde. Avantageusement, la taille de la zone tampon est un multiple N, N supérieur ou égal a l, de la taille de bloc prédéfinie pour la mémoire non volatile principale .According to a variant of the invention, the step f- implemented is replaced by a step of erasing the contents of the backup area. Advantageously, the size of the buffer zone is a multiple N, N greater than or equal to 1, of the predefined block size for the main non-volatile memory.
Avantageusement, après une interruption d'alimentation de la mémoire intervenant au cours d'une opération de mise à jour de la mémoire, les étapes suivantes sont mises en œuvre consistant à :Advantageously, after a memory power interruption occurring during a memory update operation, the following steps are implemented consisting of:
- vérifier la présence d'au moins un indicateur de sauvegarde à l'état actif dans la zone de sauvegarde; - si au moins un indicateur de sauvegarde est à l'état actif, restaurer dans la mémoire non volatile principale l'ancienne valeur de chacune des données sauvegardées dans la zone de sauvegarde dont l'indicateur de sauvegarde associé est à l'état actif, puis désactiver l'indicateur de sauvegarde correspondant .- check the presence of at least one backup indicator in the active state in the backup area; if at least one backup indicator is in the active state, restoring the old value of each of the data saved in the backup zone whose associated backup flag is in the active state to the non-volatile main memory, then disable the corresponding backup flag.
Avantageusement, l'étape de restauration d'une donnée en mémoire consiste à :Advantageously, the step of restoring a piece of data in memory consists of:
- récupérer l'adresse de départ dans la mémoire principale du bloc de données concernée par la donnée à restaurer, à partir des informations de système sauvegardées avec l'ancienne valeur de la donnée dans la zone de sauvegarde, lesdites informations comprenant l'adresse d'origine dans la mémoire principale de la donnée ; - reconstruire le bloc concerné tel qu'il était dans son état initial, à partir des données du bloc concerné copiées dans la zone tampon et de l'ancienne valeur de la donnée à restaurer sauvegardée dans la zone de sauvegarde ; - programmer le bloc restauré dans la mémoire à l'adresse récupérée.- recover the starting address in the main memory of the data block concerned by the data to be restored, from the system information saved with the old value of the data in the backup area, said information including the original address in the main memory of the data; reconstructing the block concerned as it was in its initial state, from the data of the block concerned copied in the buffer zone and from the old value of the data to be restored saved in the backup zone; - program the restored block into the memory at the retrieved address.
Selon un mode de réalisation, si la zone tampon est vide, l'étape de reconstruction du bloc concerné par la donnée à restaurer comprend préalablement la copie dans la zone tampon des données du bloc concerné, a partir de l'adresse de départ précédemment récupérée du bloc dans la mémoire non volatile principale.According to one embodiment, if the buffer zone is empty, the step of rebuilding the block concerned by the data item to be restored comprises previously copying in the buffer zone the data of the block concerned, starting from the previously recovered starting address. block in the main non-volatile memory.
Selon une caractéristique, l'étape de programmation dans la mémoire du bloc restauré comprend d'abord l'effacement du bloc correspondant de la mémoire puis l'écriture du bloc restauré en mémoire.According to one characteristic, the programming step in the memory of the restored block first comprises the erasure of the corresponding block of the memory and then the writing of the restored block into memory.
Selon un mode de réalisation particulier, la mémoire non volatile principale comprend des caractéristiques de haute capacité et de grosse granularité et la zone tampon comprend des caractéristiques de faible capacité et de fine granularité .According to a particular embodiment, the main non-volatile memory comprises characteristics of high capacity and large granularity and the buffer zone comprises characteristics of low capacity and fine granularity.
L'invention concerne encore un appareil numérique portatif comprenant un microprocesseur, une mémoire non volatile principale effaçable par bloc de mémoire de taille fixe prédéfinie et une zone de sauvegarde des données de la mémoire non volatile principale lors d'un processus de mise à jour des données, caractérisé en ce qu'il comprend une zone tampon de mémoire non volatile, de taille correspondante à au moins la taille fixe de bloc prédéfinie de la mémoire principale, et des moyens de gestion de la mémoire apte à commander le déroulement des opérations de mise à jour de données en mémoire conformément au procédé selon l'une quelconque des revendications précédentes.The invention also relates to a portable digital apparatus comprising a microprocessor, a main memory non-volatile memory erasable by memory block of predefined fixed size and a data backup area of the main non-volatile memory during a data updating process, characterized in that it comprises a buffer zone of non-volatile memory, of size corresponding to at least the fixed size of predefined block of the main memory, and memory management means adapted to control the progress of data update operations in memory according to the method according to any one of the preceding claims.
Selon un mode de réalisation particulier, la mémoire non volatile principale comprend des caractéristiques de haute capacité et de grosse granularité et la zone tampon comprend des caractéristiques de faible capacité et de fine granularité .According to a particular embodiment, the main non-volatile memory comprises characteristics of high capacity and large granularity and the buffer zone comprises characteristics of low capacity and fine granularity.
De préférence, la mémoire non volatile principale est une mémoire flash.Preferably, the main non-volatile memory is a flash memory.
De préférence, il s'agit d'une carte à puce. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante donnée à titre d'exemple illustratif et non limitatif et faite en référence aux figures annexées dans lesquelles : - les figures 1 et 2 illustrent les étapes du procédé de l'invention garantissant la mise à jour d'une seule donnée de la mémoire, avec respect de son intégrité ; les figures 3 à 5 illustrent les étapes du procédé de l'invention garantissant la mise à jour de deux données de la mémoire intervenant dans la réalisation d'une transaction, avec respect du principe d'atomicité des transactions.Preferably, it is a smart card. Other features and advantages of the present invention will emerge more clearly on reading the following description given by way of illustrative and nonlimiting example and with reference to the appended figures in which: FIGS. 1 and 2 illustrate the steps of FIG. method of the invention ensuring the update of a single data memory, with respect for its integrity; FIGS. 3 to 5 illustrate the steps of the method of the invention guaranteeing the updating of two data of the memory intervening in the completion of a transaction, with respect for the principle of atomicity of transactions.
L'invention sera mise en œuvre de préférence dans une carte à puce, comprenant une mémoire non volatile pour stocker des données, ainsi qu'un microprocesseur pour gérer les échanges de données entre l'intérieur et l'extérieur de la carte.The invention will preferably be implemented in a smart card, comprising a non-volatile memory for storing data, and a microprocessor for managing data exchanges between the inside and the outside of the card.
Parmi les mémoires de la carte, on trouve donc une mémoire non volatile principale MNV, programmable et effaçable électriquement, pour l'enregistrement de données utiles à ou aux applications de la carte à puce. Ces données sont amenées à être modifiées au cours des utilisations successives de la carte et ces modifications doivent être réalisées en veillant au respect de l'intégrité des données. Notamment, les données mises à jour dans la mémoire ne doivent pas être perdues lors d'une interruption intempestive au cours de l'opération de mise à jour de ces données, due par exemple à l'arrachement de la carte du lecteur avec lequel elle communique pour la mise à jour des données, ou a une coupure de courant .Among the memories of the card, there is therefore a main non-volatile memory MNV, programmable and electrically erasable, for the recording of data useful for or applications of the smart card. These data are subject to change during successive uses of the card and these modifications must be made while ensuring the integrity of the data. In particular, the data updated in the memory must not be lost during an untimely interruption during the update operation of this data, due for example to the tearing of the card of the reader with which it communicates for updating the data, or has a power failure.
Dans le cadre de la présente invention, la mémoire MNV est une mémoire non volatile de grande capacité, par exemple de l'ordre de plusieurs Mégaoctets, à très haute densité d'intégration. Il s'agit par exemple d'une mémoire de type Flash NOR. La taille d'un bloc mémoire, définissant la quantité minimale d'octets qui est effectivement effacée au cours d'une seule opération d'effacement de la mémoire, peut aller de 128 octets à quelques dizaines/centaines de Ko (granularité gros grain), par exemple 8Ko, 16 Ko, 32 Ko ou plus. La carte comprend également une zone de mémoire non volatile de sauvegarde S, programmable et effaçable électriquement, prévue pour sauvegarder l'ancienne valeur d'une donnée pendant la mise à jour de cette donnée dans la mémoire principale MNV. Cette zone de sauvegarde est représentée comme une mémoire distincte de la mémoire non volatile principale MNV. Elle peut cependant être constituée physiquement par une portion dédiée à cet effet de la mémoire principale MNV. La zone de sauvegarde est de préférence divisée en secteurs de taille égale à la taille prédéfinie d'un bloc de données de la mémoire non volatile principale MNV et chaque secteur permet de sauvegarder des données de la carte devant être mises à jour dans la mémoire principale MNV. Le champ correspondant de donnée sauvegardée dans la zone de sauvegarde est dimensionné en fonction de la taille maximale des données susceptibles d'être sauvegardées.In the context of the present invention, the memory MNV is a non-volatile memory of large capacity, for example of the order of several megabytes, very high integration density. This is for example a NOR flash memory type. The size of a memory block, defining the minimum amount of bytes that is effectively erased during a single memory erase operation, can range from 128 bytes to a few tens / hundreds of KB (coarse grain granularity). eg 8KB, 16KB, 32KB or more. The card also includes a non-volatile backup memory area S, programmable and electrically erasable, provided to save the old value of a data while updating this data in the main memory MNV. This save area is represented as a separate memory from the main non-volatile memory MNV. However, it can be physically constituted by a portion dedicated for this purpose of the main memory MNV. The backup area is preferably divided into sectors of size equal to the predefined size of a data block of the main non-volatile memory MNV and each sector makes it possible to save data of the card to be updated in the main memory. MRV. The corresponding field of data saved in the save area is sized according to the maximum size of the data that can be saved.
Des informations de système liées à la donnée sont sauvegardées en même temps dans la zone de sauvegarde.System information related to the data is saved at the same time in the backup area.
Ces informations de système liées à la donnée sauvegardée comprennent un indicateur de sauvegarde, codé par exemple sur un bit, indiquant qu'une donnée vient d'être sauvegardée et qu'une modification est en cours. L'état actif de cet indicateur permet alors d'indiquer que l'ancienne valeur de la donnée peut être récupérée si la mise à jour ne se déroule pas correctement jusqu'à son terme.This system information related to the saved data includes a backup indicator, encoded for example on a bit, indicating that a data has just been saved and a modification is in progress. The active state of this indicator then makes it possible to indicate that the old value of the data can be recovered if the update does not proceed correctly until its end.
Ces informations comprennent en outre des informations sur la longueur de données, sur l'adresse d'origine dans la mémoire principale des données sauvegardées dans la zone de sauvegarde, et de manière générale, toute information nécessaire à l'interprétation des données stockées dans la zone de sauvegarde et au contrôle de l'intégrité de ces données. Ainsi, l'adresse d'origine d'une donnée sauvegardée est nécessaire pour pouvoir éventuellement restaurer la donnée dans le cas où la mise à jour ne se déroulerait pas correctement.This information further includes information about the data length, the original address in the main memory of the data saved in the backup area, and in general, any information needed to interpret the data stored in the backup area and to check the integrity of that data. Thus, the original address of a data item saved is necessary to be able to possibly restore the data in the case where the update would not proceed correctly.
Conformément à l'invention, la carte comprend en outre une portion B de mémoire non volatile, prévue pour faire office de tampon persistant vis-à-vis des blocs entiers de données de la mémoire non volatile principale, comme il sera expliqué plus en détail ci- après . Selon un mode de réalisation, la zone tampon B est une mémoire non volatile de faible capacité, dont la taille est un multiple N (N>=1) de la taille d'un bloc de données de la mémoire non volatile principale. Il s'agit par exemple d'une mémoire de type EEPROM, FeRam, MRAM... Selon un mode de réalisation particulier donné à titre d'exemple, cette mémoire tampon peut présenter des caractéristiques intrinsèques différentes de la mémoire principale MNV et de la zone de sauvegarde SAccording to the invention, the card further comprises a portion B of nonvolatile memory, intended to act as a persistent buffer vis-à-vis the entire blocks of data of the main nonvolatile memory, as will be explained in more detail hereinafter. According to one embodiment, the buffer zone B is a non-volatile memory of small capacity, whose size is a multiple N (N> = 1) of the size of a data block of the main non-volatile memory. This is for example a memory type EEPROM, FeRam, MRAM ... According to a particular embodiment given by way of example, this buffer may have intrinsic characteristics different from the main memory MNV and the backup area S
(granularité fine de l'ordre de l'octet, avantageuse en termes de simplicité de mise à jour - pas d'intégrité bloc à gérer - et/ou de meilleure vitesse d'accès) .(fine granularity of the order of the byte, advantageous in terms of simplicity of update - no block integrity to manage - and / or better access speed).
La zone tampon B aux côtés de la mémoire non volatile MNV principale a pour rôle de suppléer la zone de sauvegarde S existante, utilisée classiquement par les mécanismes déjà décrits de sauvegarde et de restauration, afin de sauvegarder les blocs entiers de données concernés par la ou les données à mettre à jour dans la mémoire non volatile principale.The buffer zone B alongside the main non-volatile memory MNV serves to replace the existing backup zone S, conventionally used by the mechanisms already described for backup and recovery, in order to save the entire blocks of data. data concerned with the data or data to be updated in the main non-volatile memory.
La zone tampon peut permettre alors avantageusement de ne pas compromettre les performances générales du système, du fait des caractéristiques intrinsèques de la zone tampon et évite dans tous les cas, la nécessité de prévoir une taille démesurée pour la zone de sauvegarde de données S, ce qui serait problématique compte tenu des contraintes spécifiques liées aux systèmes embarqués. En effet, grâce à la zone tampon B, la zone de sauvegarde S reste, comme dans l'état de la technique, dédiée uniquement à la sauvegarde des données à mettre à jour avec leurs informations de système associé. Les blocs de données de la mémoire principale concernés par la mise à jour sont quant à eux stockés tour à tour dans la zone tampon B prévue à cet effet.The buffer zone can then advantageously make it possible not to compromise the overall performance of the system, because of the intrinsic characteristics of the buffer zone and in any case avoids the need to provide an oversized size for the data saving zone S, this which would be problematic given the specific constraints related to embedded systems. Indeed, thanks to the buffer zone B, the backup area S remains, as in the state of the art, dedicated solely to the backup of the data to be updated with their associated system information. The data blocks of the main memory concerned by the update are in turn stored in the buffer zone B provided for this purpose.
De plus, contrairement à un tampon de données classique, la zone tampon est une mémoire de type persistante, ce qui est particulièrement avantageux concernant le traitement de l'intégrité des données.In addition, unlike a conventional data buffer, the buffer zone is a persistent type of memory, which is particularly advantageous concerning the processing of the integrity of the data.
Les étapes du procédé de mise à jour selon l'invention tenant compte de l'architecture mémoire précédemment décrite, vont maintenant être décrites en référence aux figures 1 et 2, dans le cas où la sauvegarde des données est purement individuelle, c'est-à-dire lorsqu'il n'est pas nécessaire de s'assurer de la cohérence de plusieurs données à la fois. Il s'agit selon l'exemple de mettre à jour une donnée D0 située dans le bloc P de la mémoire principale. Comme déjà expliqué auparavant, du fait des caractéristiques de granularité de la mémoire principale MNV, le bloc P comprenant cette donnée D0 à mettre à jour va alors devoir être effacé en entier pour permettre la mise à jour de la donnée D0. A l'étape 1, l'ancienne valeur de la donnée D0 devant être mise à jour dans la mémoire non volatile principale MNV est écrite dans la zone de sauvegarde S en vue de la sauvegarder, de même que l'information de système associé I0, comprenant notamment son adresse d'origine et l'indicateur de sauvegarde. L'indicateur de sauvegarde est alors activé, représentant la présence de données sauvegardées et réutilisables en cas de problème. Il s'agit là du même mécanisme que celui actuellement mis en œuvre lors de la mise à jour sécurisé dans une mémoire EEPROM.The steps of the updating method according to the invention, taking into account the memory architecture previously described, will now be described with reference to FIGS. 1 and 2, in the case where the data backup is purely individual, that is, that is to say when it is not necessary to ensure the coherence of several data at the same time. According to the example, this is to update a datum D 0 located in the block P of the main memory. As already explained before, because of granularity characteristics of the main memory MNV, the block P comprising this data D 0 to update will then have to be erased in full to allow the update of the data D 0 . In step 1, the old value of the data item D 0 to be updated in the main nonvolatile memory MNV is written in the backup area S for the purpose of saving it, as well as the associated system information I 0 , including including its original address and the backup indicator. The backup flag is then activated, representing the presence of saved and reusable data in the event of a problem. This is the same mechanism that is currently implemented during the secure update in an EEPROM.
La mise à jour effective de la donnée D0 comprend alors les étapes suivantes :The actual update of the data D 0 then comprises the following steps:
A l'étape 2, le bloc entier P de données comprenant la donnée D0 à mettre à jour est copié dans la zone tampon B dédiée à cet effet ;In step 2, the entire block P of data comprising the data item D 0 to be updated is copied to the buffer zone B dedicated for this purpose;
A l'étape 3, le bloc P dans la mémoire principale est effacé ;In step 3, the block P in the main memory is erased;
A l'étape 4, un nouveau bloc P est reconstruit à partir des données du bloc P stockées dans la zone tampon B et de la nouvelle valeur de la donnée mise à jour Di, puis le bloc P ainsi reconstruit avec la donnée mise à jour O1 est écrit dans la mémoire non volatile principale MNV à l'adresse correspondante, obtenue à partir des informations de système I0 sauvegardées dans la zone de sauvegarde S ; A l'étape 5, la zone tampon est effacée puis, à l'étape 6, l'indicateur de sauvegarde correspondant à la donnée sauvegardée D0 est désactivé si le déroulement de l'opération a été normal d'un bout à l'autre. Une variante de l'étape 6 consiste à effacer la zone de sauvegarde .In step 4, a new block P is reconstructed from the data of the block P stored in the buffer zone B and of the new value of the updated data item Di, then the block P thus reconstructed with the updated data item. O 1 is written in the main non-volatile memory MNV to the corresponding address, obtained from the system information I 0 saved in the backup area S; In step 5, the buffer zone is erased and, in step 6, the backup indicator corresponding to the saved datum D 0 is deactivated if the progress of the operation has been normal from one end to the other. other. A variant of step 6 is to erase the backup area.
Dans le cas où le déroulement a été normal, la carte peut être retirée du lecteur associé et réutilisée normalement. Le déroulement des dernières étapes du processus de mise à jour est ici donné à titre d'exemple. Ainsi, l'effacement de la zone tampon B peut être exécuté à un autre moment du processus, l'important étant que l'effacement de la zone tampon soit effectif avant l'étape 2 mise en œuvre lors d'un processus de mise à jour suivant. On pourrait donc prévoir un processus où l'effacement de la zone tampon serait exécuté juste avant l'étape 2 suivante. Cette remarque vaut également pour l'exemple suivant. Les figures 3 à 5 illustrent maintenant les étapes du procédé de l'invention concernant la mise à jour d'une pluralité de données de la mémoire de la carte, en l'occurrence deux données D0 et D2, lesdites données devant rester cohérentes entre elles et donc, ne pouvant être mises à jour séparément. Il s'agit typiquement de données intervenant dans la réalisation d'une transaction par l'intermédiaire de la carte, par exemple une certaine valeur est retirée de la valeur courante d'une première donnée de la mémoire et la même valeur est ajoutée à la valeur courante d'une seconde donnée de la mémoire. Le procédé selon l'invention permet avantageusement de respecter le principe d'atomicité des transactions, c'est-à-dire qu'il permet de s'assurer que la transaction est considérée comme une opération indivisible, qui ne peut que s'exécuter entièrement ou, à défaut, être annulée entièrement.In the case where the flow has been normal, the card can be removed from the associated reader and reused normally. The progress of the last stages of the updating process is given here as an example. Thus, the erasure of the buffer zone B can be executed at another time of the process, the important thing being that the erasure of the buffer zone is effective before the step 2 implemented during a process of updating. next day. A process could therefore be envisaged where the erasure of the buffer zone would be executed just before the next step 2. This remark also applies to the following example. FIGS. 3 to 5 now illustrate the steps of the method of the invention concerning the updating of a plurality of data of the memory of the card, in this case two data D 0 and D 2 , said data having to remain coherent between them and therefore, can not be updated separately. This is typically data involved in performing a transaction via the card, for example a certain value is removed from the current value of a first data memory and the same value is added to the current value of a second data of the memory. The method according to the invention advantageously makes it possible to respect the principle of atomicity of transactions, that is to say that it makes it possible to ensure that the transaction is considered as an indivisible operation, which can only execute entirely or, failing that, be canceled entirely.
Ainsi, à l'étape 1, l'ancienne valeur de la donnée D0 intervenant dans la transaction et devant être mise à jour dans la mémoire non volatile principale MNV est écrite dans la zone de sauvegarde S en vue de la sauvegarder, de même que l'information de système associé I0, comprenant notamment son adresse d'origine et l'indicateur de sauvegarde à l'état actif.Thus, in step 1, the old value of the data item D 0 involved in the transaction and to be updated in the main nonvolatile memory MNV is written in the backup area S in order to save it, as well as that the associated system information I 0 , including including its original address and the backup indicator in the active state.
A l'étape 2, le bloc entier Pl de données comprenant la donnée D0 à mettre à jour est copié dans la zone tampon B dédiée à cet effet ;In step 2, the entire block P1 of data comprising the data D 0 to be updated is copied to the buffer zone B dedicated thereto;
A l'étape 3, le bloc Pl est effacé dans la mémoire principale puis, à l'étape 4, un nouveau bloc Pl est reconstruit à partir des données du bloc Pl précédemment stockées dans la zone tampon B et de la nouvelle valeur de la donnée mise à jour Di. Le bloc Pl ainsi reconstruit avec la donnée mise à jour Di est alors écrit dans la mémoire non volatile principale MNV à l'adresse correspondante du bloc Pl, obtenue à partir des informations de système I0 sauvegardées dans la zone de sauvegarde S ;In step 3, the block P1 is erased in the main memory and, in step 4, a new block P1 is reconstructed from the data of the block P1 previously stored in the buffer zone B and the new value of the updated data Di. The block P1 thus reconstructed with the updated datum D1 is then written in the main nonvolatile memory MNV at the corresponding address of the block P1, obtained from the system information I0 stored in the backup area S;
A l'étape 5, la zone tampon B est effacée. On répète alors consécutivement les étapes précédemment décrites du procédé, pour l'autre donnée D2 concernée par la transaction et devant être mise à jour en même temps que la donnée D0. Ainsi, à l'étape 6, l'ancienne valeur de la donnée D2 intervenant dans la transaction et devant être mise à jour dans la mémoire non volatile principale MNV est écrite dans la zone de sauvegarde S en vue de la sauvegarder, de même que l'information de système associé I2, comprenant notamment son adresse d'origine et l'indicateur de sauvegarde à l'état actif.In step 5, buffer zone B is erased. The previously described steps of the method are then repeated consecutively for the other data item D 2 concerned by the transaction and to be updated at the same time as the data item D 0 . Thus, in step 6, the old value of the data item D 2 involved in the transaction and to be updated in the main nonvolatile memory MNV is written in the backup area S in order to save it, likewise the associated system information I 2 , including in particular its original address and the backup indicator in the active state.
A l'étape 7, le bloc entier P2 de données comprenant la donnée D2 à mettre à jour est copié dans la zone tampon B dédiée à cet effet ;In step 7, the entire block P2 of data comprising the data D 2 to be updated is copied to the buffer zone B dedicated for this purpose;
A l'étape 8, le bloc P2 est effacé dans la mémoire principale puis, à l'étape 9, un nouveau bloc P2 est reconstruit à partir des données du bloc P2 précédemment stockées dans la zone tampon B et de la nouvelle valeur de la donnée mise à jour D3. Le bloc P2 ainsi reconstruit avec la donnée mise à jour D3 est alors écrit dans la mémoire non volatile principale MNV à l'adresse correspondante du bloc P2 , obtenue à partir des informations de système I2 sauvegardées dans la zone de sauvegarde S ;In step 8, the block P2 is erased in the main memory then, in step 9, a new block P2 is reconstructed from the data of the block P2 previously stored in the buffer zone B and the new value of the updated data D 3 . The P2 block thus reconstructed with the updated data D 3 is then written in the main nonvolatile memory MNV at the corresponding address of the block P2, obtained from the system information I 2 saved in the backup area S;
A l'étape 10, la zone tampon B est effacée. Enfin, dans une étape 11, les indicateurs de sauvegarde correspondant aux données sauvegardée D0 et D2 sont désactivés si le déroulement de l'opération de mise à jour impliquée par la transaction a été normal d'un bout à l'autre. Les données sont mises à jour une par une, cependant les indicateurs de sauvegarde des données individuelles ne sont pas désactivés immédiatement après mise à jour de chaque donnée. On attend au contraire que toutes les données aient été mises a jour pour le faire, du fait que l'ensemble des données forment un tout dont il faut préserver la cohérence. Ainsi, si une interruption intervient au cours du processus de mise à jour de la seconde donnée, alors que la première donnée a déjà été mise à jour, il est possible de restaurer l'état initial à la fois de la première et de la seconde donnée, puisque leur indicateur de sauvegarde est gardé à l'état actif jusqu'à la fin du processus. Ces indicateurs ne sont désactivés que si le déroulement de l'opération de mise à jour a été complet pour toutes les données concernées .In step 10, the buffer area B is erased. Finally, in a step 11, the backup indicators corresponding to the data saved D 0 and D 2 are deactivated if the progress of the update operation involved in the transaction has been normal from one end to the other. The data is updated one by one, however the individual data backup flags are not disabled immediately after each data update. On the contrary, it is expected that all data have been updated to do so, since all data form a whole, whose coherence must be preserved. Thus, if an interruption occurs during the process of updating the second data, while the first data has already been updated, it is possible to restore the initial state of both the first and the second data. given, since their backup flag is kept in the active state until the end of the process. These flags are disabled only if the update operation has been complete for all relevant data.
Les paragraphes suivants traitent des cas d'interruption anormale du processus de mise à jour et de la restauration des anciennes données dans leur état initial avant le début du processus de mise à jour. L'interruption est en pratique une coupure d'alimentation, notamment par retrait intempestif de la carte .The following paragraphs discuss cases of abnormal termination of the update process and the restoration of old data to its original state before the update process began. The interruption is in practice a power failure, including inadvertent withdrawal of the card.
Si l'interruption anormale a lieu alors qu'au moins un indicateur de sauvegarde est à l'état actif, cela signifie qu'une opération de mise à jour d'une donnée dans la mémoire principale a commencé. On ne sait alors pas si la mémoire principale contient l'ancienne donnée, ou la nouvelle donnée, ou une zone vide résultant de l'effacement du bloc entier comprenant la donnée avant réécriture, d'où la nécessité de restaurer la mémoire dans son état initial avant le début de l'opération de mise à jour.If the abnormal interrupt occurs while at least one backup flag is in the active state, it means that an update operation of data in the main memory has started. We do not know if the main memory contains the old data, or the new data, or an empty area resulting from the erasure of the entire block including the data before rewriting, hence the need to restore the memory in its state. initial state before the start of the update operation.
A chaque remise sous tension de la carte consécutive à une interruption anormale d'alimentation, des moyens de gestion de la mémoire vérifient systématiquement la présence d' indicateurs de sauvegarde à l'état actif dans la zone de sauvegarde S de la carte. Si au moins un indicateur de sauvegarde est à l'état actif, le contenu du champ de donnée associé contenant l'ancienne valeur de la donnée en cours de mise a jour est restaurée dans la mémoire non volatile principale MNV. Puis, l'indicateur de sauvegarde correspondant est désactivé. La mémoire principale se retrouve alors dans l'état qu'elle avait avant la tentative échouée de mise à jour.At each power-up of the card following an abnormal supply interruption, memory management means verify systematically the presence of backup indicators in the active state in the backup zone S of the card. If at least one backup flag is in the active state, the contents of the associated data field containing the old value of the data being updated is restored to the main non-volatile memory MNV. Then, the corresponding backup flag is disabled. The main memory is then in the state it had before the failed attempt to update.
La restauration de la donnée nécessite en fait la restauration en mémoire principale du bloc complet comprenant la donnée. Pour ce faire, l'étape de restauration d'une donnée en mémoire principale consiste d'abord à récupérer l'adresse de départ dans la mémoire du bloc de données concernée par la donnée à restaurer, à partir des informations de système sauvegardées avec l'ancienne valeur de la donnée dans la zone de sauvegarde S. En effet, ces informations comprennent l'adresse d'origine dans la mémoire de la donnée, à partir de laquelle, connaissant la taille prédéfinie d'un bloc de la mémoire principale, on peut retrouver l'adresse de départ du bloc concerné.The restoration of the data requires in fact the restoration in main memory of the complete block comprising the data. To do this, the step of restoring data in main memory consists first of recovering the starting address in the memory of the data block concerned by the data to be restored, from the system information saved with the old value of the data in the backup area S. In fact, this information includes the original address in the memory of the data, from which, knowing the predefined size of a block of the main memory, we can find the starting address of the concerned block.
Puis, le processus de restauration de la donnée en mémoire principale consiste à reconstruire le bloc concerné tel qu'il était dans son état initial, à partir des données du bloc concerné qui sont copiées dans la zone tampon B et de l'ancienne valeur de la donnée à restaurer qui est sauvegardée dans la zone de sauvegarde S. Le bloc restauré est alors programmé dans la mémoire principale MNV à l'adresse récupérée. L'étape de programmation dans la mémoire du bloc restauré comprend d'abord l'effacement du bloc correspondant de la mémoire puis l'écriture du bloc restauré en mémoire. Cependant, on peut se retrouver dans une situation où la zone tampon B est vide. C'est par exemple le cas si l'interruption se produit entre les étapes 5 et 6 préalablement décrites où la zone tampon a déjà été effacée. Dans ce cas, la restauration de la mémoire principale dans son état initial comme avant la mise à jour, ne peut se baser sur la zone tampon pour reconstruire le bloc concerné de la mémoire principale dans son état initial .Then, the process of restoring the data in main memory consists in reconstructing the block concerned as it was in its initial state, from the data of the block concerned which are copied in the buffer zone B and the old value of the data item to be restored which is saved in the backup area S. The restored block is then programmed into the main memory MNV at the retrieved address. The programming step in the memory of the restored block first comprises erasing the corresponding block of the memory and then writing the restored block into memory. However, one can end up in a situation where the buffer zone B is empty. This is for example the case if the interruption occurs between the previously described steps 5 and 6 where the buffer zone has already been erased. In this case, the restoration of the main memory in its initial state as before the update, can not be based on the buffer zone to reconstruct the concerned block of the main memory in its initial state.
On peut toutefois noter qu'au cours d'un processus de mise à jour d'une donnée, il y a toujours un bloc de données valide, correspondant au bloc de données concerné par la mise à jour, soit à son emplacement normal dans la mémoire principale, soit dans la zone tampon. Aussi, si la zone tampon B est vide, cela signifie que le bloc concerné est toujours à son emplacement normal dans la mémoire principale. On prévoit alors que l'étape de reconstruction du bloc concerné par la donnée à restaurer comprend au préalable la copie dans la zone tampon B des données du bloc concerné, prises à partir de l'adresse de départ du bloc en question dans la mémoire principale.However, it may be noted that during a data updating process, there is always a valid data block, corresponding to the data block concerned by the update, that is at its normal location in the database. main memory, either in the buffer zone. Also, if the buffer zone B is empty, it means that the block concerned is still at its normal location in the main memory. It is then expected that the step of rebuilding the block concerned by the data to be restored comprises beforehand the copying in the buffer zone B of the data of the block concerned, taken from the starting address of the block in question in the main memory. .
La copie de ce bloc de la mémoire principale vers la zone tampon persistante, en vue de restaurer le bloc dans son état initial dans la mémoire principale, a surtout comme avantage de se prémunir contre une interruption d'alimentation anormale se produisant pendant le processus de restauration lui-même. En effet, le processus de restauration implique, lorsque le bloc restauré est programmé en mémoire principale, d'effacer le bloc concerné en mémoire principale avant d'écrire le bloc restauré. Or, une interruption anormale pendant l'étape de programmation du bloc restauré ne compromettra pas l'intégrité des données, ces dernières étant sauvegardées dans la zone tampon de mémoire non volatile. The main advantage of copying this block from the main memory to the persistent buffer zone, in order to restore the block to its initial state in the main memory, is to guard against a Abnormal power interruption occurring during the restoration process itself. Indeed, the restoration process involves, when the restored block is programmed in main memory, to delete the concerned block in main memory before writing the restored block. However, an abnormal interruption during the programming step of the restored block will not compromise the integrity of the data, the latter being saved in the non-volatile memory buffer zone.

Claims

REVENDICATIONS
1. Procédé de mise à jour d'au moins une donnée (D0) dans une mémoire non volatile principale (MNV) effaçable par bloc de mémoire de taille fixe prédéfinie, consistant à : a- sauvegarder (1) dans une zone de mémoire de sauvegarde (S) l'ancienne valeur de la donnée (D0) ; b- sauvegarder dans la zone de sauvegarde (S) en même temps que l'ancienne valeur de la donnée des informations de système liées à la donnée à mettre à jour, comprenant au moins un indicateur (I0) de sauvegarde actif indiquant qu'une donnée vient d'être sauvegardée et qu'une modification de donnée est en cours ; ledit procédé étant caractérisé en ce qu' il comprend en outre des étapes consistant à : c- copier (2) le bloc entier (P) concerné par la donnée à mettre à jour dans une zone tampon (B) de mémoire non volatile de taille correspondante à au moins la taille fixe de bloc prédéfinie de la mémoire principale, ladite zone tampon étant distincte de la zone de sauvegarde (S) ; d- effacer (3) de la mémoire non volatile principale (MNV) le bloc (P) concerné par la donnée à mettre à jour ; e- reconstruire (4) le bloc (P) à partir des données du bloc copiées dans la zone tampon (B) et de la nouvelle valeur de la donnée à mettre à jour et écrire ledit bloc (P) avec la donnée mise à jour (Dl) dans la mémoire non volatile principale (MNV) ; f- désactiver (6) l'indicateur de la zone de sauvegarde si l'opération de mise à jour s'est déroulée correctement .A method for updating at least one datum (D 0 ) in a predefined fixed size fixed memory block erasable non-volatile main memory (MNV), comprising: a- saving (1) in a memory area saving (S) the old value of the data (D 0 ); b- save in the backup area (S) together with the old value of the data the system information related to the data item to be updated, comprising at least one active backup indicator (I 0 ) indicating that a data has just been saved and a data modification is in progress; said method being characterized in that it further comprises the steps of: c- copying (2) the entire block (P) concerned by the data item to be updated in a buffer zone (B) of non-volatile memory of size corresponding to at least the predefined fixed block size of the main memory, said buffer zone being distinct from the backup area (S); d- erasing (3) the main nonvolatile memory (MNV) the block (P) concerned by the data item to be updated; e- reconstruct (4) the block (P) from the data of the block copied in the buffer zone (B) and the new value of the data item to be updated and write said block (P) with the updated data item (D1) in the main nonvolatile memory (MNV); f- disable (6) the indicator of the backup area if the update operation was successful.
2. Procédé selon la revendication 1, dans lequel la mise à jour implique une pluralité de données (D0, D2) de la mémoire non volatile principale (MNV) intervenant dans la réalisation d'une transaction, lesdites données de la transaction ne devant pas être mises à jour séparément, caractérisé en ce qu'il consiste à répéter consécutivement les étapes a- à e- du procédé pour chaque donnée concernée par la transaction.2. The method of claim 1, wherein the update involves a plurality of data (D 0 , D 2 ) of the main nonvolatile memory (MNV) involved in carrying out a transaction, said transaction data does not not to be updated separately, characterized in that it consists in repeating consecutively stages a- to e- of the process for each data item concerned by the transaction.
3. Procédé selon les revendications 2, caractérisé en ce que les anciennes valeurs de donnée (D0, D2) et les informations de système associées (I0, I2) correspondant à chaque donnée de la transaction, sont sauvegardées dans un même secteur de mémoire de la zone de sauvegarde (S) .3. Method according to claims 2, characterized in that the old data values (D 0 , D 2 ) and the associated system information (I 0 , I 2 ) corresponding to each data item of the transaction, are saved in the same memory sector of the backup area (S).
4. Procédé selon les revendications 2 ou 3, caractérisé en ce que l'étape f- est mise en œuvre si l'opération de mise à jour de la pluralité de données s'est déroulée correctement, et consiste à désactiver les indicateurs de sauvegarde préalablement sauvegardés dans la zone de sauvegarde respectivement pour chaque donnée mise à jour.4. Method according to claims 2 or 3, characterized in that step f- is implemented if the updating operation of the plurality of data has been carried out correctly, and consists in deactivating the backup indicators. previously saved in the save zone respectively for each data update.
5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'étape f- mise en œuvre est remplacée par une étape consistant à effacer le contenu de la zone de sauvegarde (S) .5. Method according to any one of the preceding claims, characterized in that the step f- implemented is replaced by a step of erasing the contents of the backup area (S).
6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la taille de la zone tampon (B) est un multiple N, N étant supérieur ou égal à 1, de la taille de bloc prédéfinie pour la mémoire non volatile principale.6. Method according to any one of the preceding claims, characterized in that the size of the buffer zone (B) is a multiple N, N being greater than or equal to 1, the predefined block size for the main non-volatile memory. .
7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'après une interruption d'alimentation de la mémoire intervenant au cours d'une opération de mise à jour de la mémoire, les étapes suivantes sont mises en œuvre consistant à :7. Method according to any one of the preceding claims, characterized in that after an interruption of supply of the memory involved during a memory update operation, the following steps are implemented consisting of: :
- vérifier la présence d'au moins un indicateur de sauvegarde à l'état actif dans la zone de sauvegarde (S) ;- checking the presence of at least one backup indicator in the active state in the backup area (S);
- si au moins un indicateur de sauvegarde est à l'état actif, restaurer dans la mémoire non volatile principale (MNV) l'ancienne valeur de chacune des données sauvegardées dans la zone de sauvegarde dont l'indicateur de sauvegarde associé est à l'état actif, puis désactiver l'indicateur de sauvegarde correspondant .- if at least one backup flag is in the active state, restore in the main non-volatile memory (MNV) the old value of each of the data saved in the backup area whose associated backup flag is at the same time. state, and then disable the corresponding backup flag.
8. Procédé selon la revendication 7, caractérisé en ce que l'étape de restauration d'une donnée en mémoire (MNV) consiste à : récupérer l'adresse de départ dans la mémoire principale (MNV) du bloc de données concernée par la donnée a restaurer, à partir des informations de système sauvegardées avec l'ancienne valeur de la donnée dans la zone de sauvegarde (S) , lesdites informations comprenant l'adresse d'origine dans la mémoire principale de la donnée ; reconstruire le bloc concerné tel qu' il était dans son état initial, à partir des données du bloc concerné copiées dans la zone tampon (B) et de l'ancienne valeur de la donnée à restaurer sauvegardée dans la zone de sauvegarde (S) ; programmer le bloc restauré dans la mémoire (MNV) à l'adresse récupérée.8. Method according to claim 7, characterized in that the step of restoring a datum in memory (MNV) consists of: recovering the starting address in the main memory (MNV) of the data block concerned by the data to be restored, from the system information saved with the old value of the data in the backup zone (S), said information including the original address in the main memory of the data; reconstructing the block concerned as it was in its initial state, from the data of the concerned block copied in the buffer zone (B) and from the old value of the data to be restored saved in the backup zone (S); program the restored block into the memory (MNV) at the retrieved address.
9. Procédé selon la revendication 8, caractérisé en ce que si la zone tampon (B) est vide, l'étape de reconstruction du bloc concerné par la donnée à restaurer comprend préalablement la copie dans la zone tampon des données du bloc concerné, à partir de l'adresse de départ précédemment récupérée du bloc dans la mémoire non volatile principale (MNV) .9. Method according to claim 8, characterized in that if the buffer zone (B) is empty, the step of rebuilding the block concerned by the data item to be restored comprises, beforehand, copying in the buffer zone data of the block concerned, to from the previously recovered starting address of the block in the main nonvolatile memory (MNV).
10. Procédé selon les revendications 8 ou 9, caractérisé en ce que l'étape de programmation dans la mémoire du bloc restauré comprend d'abord l'effacement du bloc correspondant de la mémoire puis l'écriture du bloc restauré en mémoire.10. The method of claim 8 or 9, characterized in that the programming step in the memory of the restored block comprises first erasing the corresponding block of the memory and then writing the restored block in memory.
11. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la mémoire non volatile principale (MNV) comprend des caractéristiques de haute capacité et de grosse granularité et la zone tampon (B) comprend des caractéristiques de faible capacité et de fine granularité .11. Method according to any one of the preceding claims, characterized in that the Main nonvolatile memory (MNV) includes high capacity and large granularity characteristics and the buffer zone (B) includes characteristics of low capacity and fine granularity.
12. Appareil numérique portatif comprenant un microprocesseur, une mémoire non volatile principale12. Portable digital apparatus comprising a microprocessor, a main non-volatile memory
(MNV) effaçable par bloc de mémoire de taille fixe prédéfinie et une zone de sauvegarde (S) des données de la mémoire non volatile principale lors d'un processus de mise à jour des données, caractérisé en ce qu'il comprend une zone tampon (B) de mémoire non volatile, de taille correspondante à au moins la taille fixe de bloc prédéfinie de la mémoire principale, et des moyens de gestion de la mémoire apte à commander le déroulement des opérations de mise à jour de données en mémoire conformément au procédé selon l'une quelconque des revendications précédentes.Fixed value memory block (MNV) and a backup area (S) of the data of the main non-volatile memory during a data updating process, characterized in that it comprises a buffer zone (B) nonvolatile memory, of size corresponding to at least the predefined fixed block size of the main memory, and memory management means adapted to control the progress of the data update operations in memory according to the method according to any one of the preceding claims.
13. Appareil numérique portatif selon la revendication 12, caractérisé en ce que la mémoire non volatile principale (MNV) comprend des caractéristiques de haute capacité et de grosse granularité et la zone tampon (B) comprend des caractéristiques de faible capacité et de fine granularité.Portable digital apparatus according to claim 12, characterized in that the main nonvolatile memory (MNV) comprises characteristics of high capacity and large granularity and the buffer zone (B) comprises characteristics of low capacity and fine granularity.
14. Appareil selon la revendication 12 ou 13, caractérisé en ce que la mémoire non volatile principale (MNV) est une mémoire flash. 14. Apparatus according to claim 12 or 13, characterized in that the main nonvolatile memory (MNV) is a flash memory.
15. Appareil selon l'une quelconque des revendications 12 à 14, caractérisé en ce qu'il s'agit d'une carte à puce. 15. Apparatus according to any one of claims 12 to 14, characterized in that it is a smart card.
PCT/EP2007/051190 2006-02-08 2007-02-07 Method of secure updating of a nonvolatile memory WO2007090857A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0601130 2006-02-08
FR0601130A FR2897192A1 (en) 2006-02-08 2006-02-08 METHOD OF SECURELY UPDATING VOLATILE MEMORY

Publications (1)

Publication Number Publication Date
WO2007090857A1 true WO2007090857A1 (en) 2007-08-16

Family

ID=36940302

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2007/051190 WO2007090857A1 (en) 2006-02-08 2007-02-07 Method of secure updating of a nonvolatile memory

Country Status (2)

Country Link
FR (1) FR2897192A1 (en)
WO (1) WO2007090857A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840138A (en) * 2021-02-02 2022-08-02 美光科技公司 File system storage allocation based on regions of memory devices

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3058809B1 (en) * 2016-11-14 2018-12-07 Peugeot Citroen Automobiles Sa SYSTEM AND METHOD FOR HOT MAINTENANCE OF A VEHICLE COMPUTER
CN113268200B (en) * 2021-04-27 2023-07-14 北京控制工程研究所 An efficient storage method for spacecraft safety-critical data based on stream mechanism

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58137195A (en) * 1982-02-09 1983-08-15 Fanuc Ltd Data rewriting system of memory
US5532463A (en) * 1993-05-26 1996-07-02 Solaic (Societe Anonyme) Process for making secure the writing of sensitive data into the EEPROM data storage memory of a memory card and a memory card for use in the process
FR2818426A1 (en) * 2000-12-18 2002-06-21 Schlumberger Systems & Service DEVICE AND METHOD FOR SECURING DATA ZONES IN A CHIP CARD
US20020199054A1 (en) * 2001-05-22 2002-12-26 Fumihiko Akahane Method of overwriting data in nonvolatile memory and a control apparatus used for the method
US20030145160A1 (en) * 2001-12-28 2003-07-31 Sankyo Seiki Mfg.Co., Ltd. Nonvolatile memory, its data updating method, and card reader equipped with such nonvolatile memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58137195A (en) * 1982-02-09 1983-08-15 Fanuc Ltd Data rewriting system of memory
US5532463A (en) * 1993-05-26 1996-07-02 Solaic (Societe Anonyme) Process for making secure the writing of sensitive data into the EEPROM data storage memory of a memory card and a memory card for use in the process
FR2818426A1 (en) * 2000-12-18 2002-06-21 Schlumberger Systems & Service DEVICE AND METHOD FOR SECURING DATA ZONES IN A CHIP CARD
US20020199054A1 (en) * 2001-05-22 2002-12-26 Fumihiko Akahane Method of overwriting data in nonvolatile memory and a control apparatus used for the method
US20030145160A1 (en) * 2001-12-28 2003-07-31 Sankyo Seiki Mfg.Co., Ltd. Nonvolatile memory, its data updating method, and card reader equipped with such nonvolatile memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PATENT ABSTRACTS OF JAPAN vol. 007, no. 253 (P - 235) 10 November 1983 (1983-11-10) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840138A (en) * 2021-02-02 2022-08-02 美光科技公司 File system storage allocation based on regions of memory devices
US20220244869A1 (en) * 2021-02-02 2022-08-04 Micron Technology, Inc. File system storage allocation based on zones of a memory device

Also Published As

Publication number Publication date
FR2897192A1 (en) 2007-08-10

Similar Documents

Publication Publication Date Title
CN101681311A (en) Memory system
FR2671223A1 (en) REMANENT SEMICONDUCTOR MEMORY FOR PERSONAL COMPUTER.
CN100543706C (en) A method to realize data security of FLASH chip
WO1996025743A1 (en) Method for the secure updating of an eeprom memory
EP0769742B1 (en) Electronic component with electrically erasable non-volatile memory
FR3055992A1 (en) INDEX MANAGEMENT IN A FLASH MEMORY
EP2724237B1 (en) Method of managing the endurance of non-volatile memories
WO2007090857A1 (en) Method of secure updating of a nonvolatile memory
FR2997208A1 (en) METHOD FOR MANAGING A FLASH MEMORY
EP3246820A1 (en) Storage management in a flash memory
WO2010145967A1 (en) Memory device for managing the recovery of a non volatile memory
FR2742893A1 (en) Writing to re-writable memory e.g. memory card, smart card or non-contact card
JP2007034858A (en) Data backup method and memory device
EP1902369B1 (en) Method for managing a non-volatile memory in a smart card
FR2689662A1 (en) Protection against information loss from telephone cards - uses memory zones and releases modified information from first to second zones with control bit
EP1376608A1 (en) Programming method in a nonvolatile memory and system for realisation of such a method
FR2757978A1 (en) METHOD FOR SECURING DATA IN A REWRITE MEMORY
EP1467378B1 (en) Method for updating a non volatile memory
WO2021052946A1 (en) System on a chip and method guaranteeing the freshness of the data stored in an external memory
FR2818426A1 (en) DEVICE AND METHOD FOR SECURING DATA ZONES IN A CHIP CARD
EP1573690B1 (en) Secure method for modifying data recorded in a memory card
WO2003042827A2 (en) Comparison of replicated data
EP3416087A1 (en) Atomicity management in an eeprom memory
EP2339587A1 (en) Securing of the deletion of a flash PROM memory card
FR3051575A1 (en) ERASING MANAGEMENT IN A FLASH MEMORY

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07704443

Country of ref document: EP

Kind code of ref document: A1