FR 3077892 A1 20190816 FR 1901332 A 20190211 Description Titre de l'invention : Système et procédé d'enregistrement d'une transaction associée à une mémoire non volatile orientée page [0001] La présente invention concerne l'enregistrement des transactions et la fourniture d'un support anti-arrachage associé à une mémoire non-volatile orientée page. Technique antérieure [0002] Souvent, en raison de situations imprévues, l'alimentation électrique d'appareils ayant des mémoires non volatiles est interrompue, ce qui provoque un arrachage. L'arrachage se rapporte à une interruption soudaine des transactions effectuées ou mises en oeuvre par l'intermédiaire d'une mémoire non volatile d'un dispositif. De plus, en raison des opérations utilisateur, la transaction peut être abandonnée soudainement, ce qui se rapporte également à un arrachage. En raison de l'arrachage, l'état de la mémoire non volatile devient incohérent, ce qui entraîne un crash des données ou une lecture incorrecte des données par la mémoire non-volatile. Par exemple, l'alimentation électrique d'une carte à puce ayant une mémoire non volatile peut être interrompue en raison de situations telles que la mise hors tension du terminal ou le retrait brusque de la carte, ce qui peut entraîner l'arrachage de la carte à puce. En raison de l'arrachage, l'état de la mémoire non volatile de la carte devient incohérent, ce qui n'est pas souhaitable. [0003] Pour éviter de telles situations, un système anti-déchirement est mis en oeuvre qui assure un nouveau stockage des données lors de la remise sous tension ou de la mise sous tension suivante de l'appareil ayant la mémoire non-volatile. Afin de mettre en oeuvre l'anti-arrachage, les transactions associées à la mémoire non volatile sont enregistrées en effectuant des sauvegardes répétées des données pendant l'exécution des transactions sur la mémoire non volatile. Souvent, les mêmes données sont sauvegardées encore et encore en cas de demande de mise à jour pour les mêmes données. De plus, une page complète ayant les données à mettre à jour est sauvegardée à plusieurs reprises, même si une demande de mise à jour est reçue pour mettre à jour un seul octet de données sur la page. Avec chaque mise à jour d'octet, la page complète est sauvegardée dans une mémoire tampon, ce qui entraîne une augmentation du manque d'espace de stockage libre sur la mémoire non volatile, d'où une augmentation du temps d'exécution des opérations mémoire. La sauvegarde de la page complète à chaque mise à jour d'octets entraîne une augmentation exponentielle du nombre de sauvegardes de pages, ce qui entrave les performances de l'appareil en utilisant la mémoire non volatile et réduit sa longévité. [0004] Par conséquent, il est nécessaire de remédier aux inconvénients du procédé classique 2 d'enregistrement des transactions associée aux mémoires non volatiles orientées pages. [0005] RÉSUMÉ [0006] La présente invention aborde les inconvénients susmentionnés dans l'état de la technique et dans un aspect de la présente invention, il est prévu un procédé d'enregistrement des transactions associées à une mémoire non volatile orientée page. Le procédé comprend des étapes d'identification d'une ou plusieurs page(s) nécessitant une ou plusieurs mise(s) à jour pour la mise en oeuvre d'une transaction définie. Le procédé comprend en outre la copie d'une ou plusieurs page(s) dans un tampon non volatil et la mise à jour de la ou des page(s) identifiée(s) avec le (nouveau) contenu de la transaction. La/les une ou plusieurs page(s) copiée(s) est/sont restaurée(s) si la transaction est interrompue ou bien la/les page(s) copiée(s) est/sont supprimée(s). [0007] Selon un autre aspect de la présente invention, il est prévu un dispositif d'enregistrement de transaction associée à une mémoire non volatile orientée page. Le dispositif comprend une ou plusieurs unité(s) de traitement pour identifier une ou plusieurs page(s) nécessitant une ou plusieurs mise(s) à jour pour mettre en oeuvre une transaction définie. La ou les unité(s) de traitement copie/copient la ou les page(s) dans un tampon non volatil et met/mettent à jour la ou les page(s) identifiée(s), avec le (nouveau) contenu de la transaction. La/Les une ou plusieurs page(s) copiée(s) est/sont restaurées si la transaction est interrompue ou bien la/les une ou plusieurs page(s) copiée(s) est/sont supprimée(s). [0008] BREVE DESCRIPTION DES ILLUSTRATIONS [0009] [fig. 1] illustre un dispositif comprenant une mémoire non volatile, conformément à un mode de réalisation de la présente description. [0010] [fig.21 illustre la mémoire non volatile du dispositif de la figure 1, conformément à un mode de réalisation de la présente description. [0011] [fig.31 illustre un organigramme illustrant un procédé d'enregistrement des transactions conformément à un mode de réalisation de la présente description. Description des modes de réalisation [0012] Des modes de réalisation donnés à titre d'exemples vont maintenant être décrits à l'aide des dessins qui l'accompagnent. Toutefois, l'invention peut prendre de nombreuses formes différentes et ne doit pas être interprétée comme se limitant à celles qui sont énoncées dans le présent document ; ces modes de réalisation sont fournis de manière à ce que l'invention soit complète et approfondie et à ce qu'elle transmette pleinement sa portée aux spécialistes de la technique. La terminologie utilisée dans la 3 description détaillée des modes de réalisation donnés à titre d'exemples illustrés dans les dessins ci-joints ne se veut pas limitative. Dans les dessins, les chiffres renvoient à des éléments similaires. [0013] La spécification peut faire référence à "un", ou "des" mode(s) de réalisation à plusieurs endroits. Cela ne signifie pas nécessairement qu'il est fait référence au(x) même(s) mode(s) de réalisation ou que la caractéristique ne s'applique qu'à un seul mode de réalisation. Des caractéristiques uniques de différents modes de réalisation peuvent également être combinées pour obtenir d'autres modes de réalisation. [0014] Dans le présent document, les formes au singulier "un" et "le/la" s'entendent également au pluriel, sauf indication contraire expresse. Il sera en outre entendu que les termes "comporte", "comprend", "y compris" et/ou "comprenant", lorsqu'ils sont utilisés dans la présente spécification, précisent la présence de caractéristiques, nombres entiers, étapes, opérations, éléments et/ou composants indiqués, mais n'excluent pas la présence ou l'ajout d'un(e) ou plusieurs autres caractéristique(s), nombre(s) entier(s), étape(s), opération(s), élément(s), composant(s) et/ou groupe(s) de ceux-ci. Il sera entendu que lorsqu'un élément est désigné comme étant "connecté" ou "couplé" à un autre élément, il peut être directement connecté ou couplé à l'autre élément ou des éléments intermédiaires peuvent être présents. De plus, les termes "connecté" ou "couplé" tels qu'ils sont utilisés dans le présent document peuvent inclure les connexions ou les couplages sans fil. Tel qu'il est utilisé dans les présentes, le terme "et/ou" comprend toutes les combinaisons et tous les arrangements d'un ou de plusieurs des éléments énumérés connexes. [0015] Sauf définition contraire, tous les termes (y compris les termes techniques et scien- tifiques) utilisés dans le présent document ont le même sens que celui communément donné à l'expression "compétence ordinaire "dans l'art auquel se rapporte cette invention. Il sera en outre entendu que les termes, tels que définis dans les dictionnaires couramment utilisés, doivent être interprétés comme ayant un sens qui correspond à leur signification dans le contexte de l'art pertinent et ne seront pas interprétés dans un sens idéalisé ou trop formel à moins qu'ils ne soient expressément définis ainsi. [0016] Les figures illustrent une structure simplifiée ne montrant que certains éléments et entités fonctionnelles, tous étant des unités logiques dont la mise en oeuvre peut différer de ce qui est indiqué. Les connexions indiquées sont des connexions logiques ; les connexions physiques réelles peuvent être différentes. [0017] Le dispositif et le procédé de la présente invention facilitent la réduction de la consommation de la zone mémoire pour mettre en oeuvre l'enregistrement des transactions associées à la mémoire non volatile orientée page. La présente invention réduit davantage le besoin de sauvegarde multiple de pages dans une mémoire tampon 4 non volatile de la mémoire. De plus, le procédé et le dispositif de la présente invention réduisent considérablement le temps d'exécution des transactions associées à la mémoire non volatile en raison de la réduction du nombre de sauvegardes de pages dans la mémoire tampon non-volatile. [0018] En référence aux figures 1-3, un système 100 comprend un dispositif portable 102 qui comprend un circuit intégré 104. Le circuit intégré 104 peut être monté ou intégré dans l'appareil portable 102 qui peut être un appareil portable tel qu'une carte à puce. Le circuit intégré 104 peut comprendre des moyens de communication d'interface pour permettre la lecture et l'écriture de données dans une zone mémoire du circuit intégré 104. Le circuit intégré 104 peut comprendre une mémoire non volatile 106 et une mémoire volatile 108, les deux mémoires étant accessibles par un bus 110. Le circuit intégré 104 comprend en outre une unité de traitement 112 qui accède à la mémoire non volatile 106 et à la mémoire volatile 108 via le bus 110 pour gérer les deux mémoires. Dans un mode de réalisation, la mémoire non volatile 106 est une mémoire non volatile orientée page, telle qu'une mémoire flash. [0019] Comme le montre la figure 2, la mémoire non volatile 106 comprend une mémoire tampon non volatile (202) qui peut être utilisée pour stocker une copie d'une page 204 au moment de la copie de la page 204 pendant l'enregistrement des transactions associées à la mémoire non volatile 106. La page 204 peut comprendre le contenu de la transaction (Cl, C2 et C3). [0020] Le procédé d'enregistrement des transactions comprend une étape d'identification 302 d'une page nécessitant une ou plusieurs mise(s) à jour pour mettre en oeuvre une transaction définie. Dans un mode de réalisation, la transaction définie peut inclure une transaction atomique. [0021] En outre, le procédé comprend une étape de copie 304 de la page 204 dans le tampon non volatil 202 en stockant une copie de la page 204 dans le tampon non volatil 202. L'étape de copie 304 est effectuée si une étape de détermination 314 est effectuée pour déterminer que la page n'est pas déjà sauvegardée. Lors de l'étape de copie 304, un index 206 de la page est en outre stocké dans la mémoire non volatile 106. Dans un mode de réalisation, l'index 206 peut inclure une adresse de la page 204. Dans un autre mode de réalisation, l'index 206 peut également inclure des informations de validité ainsi que l'adresse de la page 204. Dans un mode de réalisation, les informations de validité peuvent inclure un état actif et un état inactif. Dans un mode de réalisation donné à titre d'exemple, l'état actif peut être représenté par "1" et l'état inactif par "0". La représentation de l'état actif et de l'état inactif n'est pas limitée à "0" et "1", et toute autre représentation appropriée peut être utilisée pour représenter l'état actif et l'état inactif. L'état actif correspond à un état de fonctionnement en cours d'exécution sur la page 204. L'état inactif correspond à un état de fonctionnement non exécuté sur la page 204. Dans un mode de réalisation donné à titre d'exemple, l'index 206 de la page 204 et une page 205 peuvent être stockés dans la mémoire non volatile 106. L'index 206 peut inclure les informations de validité des pages 204 et 205. Dans un mode de réalisation, les informations de validité de la page 204 peuvent inclure un état actif et peuvent inclure un état inactif pour la page 205. Dans un autre mode de réalisation, les informations de validité de la page 204 peuvent inclure un état inactif et peuvent inclure un état actif pour la page 205. Dans un autre mode de réalisation, les informations de validité des pages 204 et 205 peuvent inclure un état actif ou un état inactif. [0022] Lorsque la page 204 est copiée dans le tampon non volatil 202, à l'étape 306, la page 204 est mise à jour avec le contenu de la transaction. L'index 206 de la page 204 est maintenu dans la mémoire non volatile 106 avant la mise à jour de la page 204 afin de garder la trace des mises à jour effectuées sur la page 204. Plus précisément, un ou plusieurs des contenus de transaction précédemment écrits peut/peuvent être mis à jour avec le contenu de la transaction (Cl, C2 et C3). Pour la mise à jour, le contenu original de la transaction de la page 204 est copié dans un tampon de lecture-écriture (non représenté dans les figures) et ensuite le contenu de la transaction de la page 204 est effacé. Le contenu de la transaction copiée est modifié dans la mémoire tampon en lecture/écriture conformément aux exigences de la transaction. Le contenu modifié est écrit dans la page 204, mettant ainsi à jour la page 204 avec le contenu de la transaction (Cl, C2 et C3). [0023] Au cours de la mise en oeuvre de la transaction définie, le contenu des transactions (Cl, C2 et C3) peut être remplacé autant de fois que nécessaire par une version mise à jour du contenu des transactions (Cl, C2 et C3). Par conséquent, la présente invention ne copie la page 204 qu'une seule fois dans le tampon non volatil 202 pendant la mise en oeuvre de la transaction définie, et met à jour le contenu de la transaction (Cl, C2 et C3) sur la page 204 plusieurs fois jusqu'à ce que la transaction définie soit en cours de réalisation. Par conséquent, la présente invention réduit le besoin de sauvegarder la page 204 plusieurs fois dans le tampon non volatil 202, réduisant ainsi la consommation de mémoire de la mémoire non volatile 106, alors que l'art antérieur effectue une sauvegarde de la page 204 et du contenu (Cl, C2 et C3) de la page 204 chaque fois même si un des contenus de transaction (Cl, C2 et C3) est mis à jour, ce qui entraîne une charge inutile sur les dispositifs classiques de l'art antérieur. De plus, en raison du nombre réduit de sauvegardes de pages dans la présente invention, le temps d'exécution de la mise en oeuvre de la transaction définie augmente, ce qui permet un fonctionnement rapide des transactions dans la mémoire non-volatile. [0024] A l'étape 308, on détermine si la page 204 est mise à jour sans interruption, l'interruption pouvant être provoquée par une interruption de l'alimentation électrique du dispositif portable 102 ou basée sur l'interruption de la transaction définie par un 6 utilisateur du dispositif portable 102. Dans un cas, le contenu de la transaction (Cl, C2 et C3) est mis à jour et la mise à jour des pages n'a pas été interrompue, puis à l'étape 314, il est déterminé si la transaction est validée. Dans un cas, il est déterminé que la transaction définie n'est pas validée à l'étape 314, les étapes 302 à 308 sont à nouveau exécutées. Dans un cas, à l'étape 314, il est déterminé que la transaction définie est validée, puis la page copiée stockée dans le tampon non volatile 202 est supprimée. [0025] Dans un cas, une interruption est provoquée pendant la mise en oeuvre de la transaction définie, puis à l'étape 310, la transaction définie est annulée pour revenir à l'état initial. Lorsque la transaction définie est annulée, sur la base de l'index 206 de la page 204 qui a été conservé dans la mémoire non volatile 106, il est déterminé si la transaction définie a été lancée. Lors de l'annulation de la transaction définie, la page copiée qui est stockée dans le tampon non volatile est restaurée à l'emplacement de la page 204 déterminé sur la base de l'index 206 de la page 204 qui était maintenu dans la mémoire non volatile 106. Dans un mode de réalisation donné à titre d'exemple, la page 205 a également été sauvegardée en même temps que la page 204, puis lors de l'annulation de la transaction définie, les pages 205 et 204 pour laquelle les informations de validité dans l'index 206 représentent l'état actif, cette page est restaurée. Les pages 205 et 204 pour lesquelles les informations de validité dans l'index 206 représentent l'état inactif, cette page est supprimée. [0026] En raison du nombre réduit de pages sauvegardées dans la mémoire tampon non volatile 202, la consommation de la zone mémoire dans la mémoire tampon est une technique moins classique car si la demande de mise à jour de sauvegarde est faite pour la même page pendant le même cycle de transaction, il n'est pas nécessaire de reprendre la sauvegarde. De plus, la présente invention facilite la vitesse d'exécution, qui est de 25 à 30 % plus rapide que les procédés classiques. En outre, selon un mode de réalisation de la présente invention, le procédé et le système de la présente invention facilitent l'anti-arrachage de la page pour les transactions non atomiques. [0027] Le tableau 1 illustre la comparaison entre le procédé de la présente invention et un procédé classique, mise en oeuvre dans un dispositif électronique au moment de l'exécution des opérations sur le dispositif électronique. [0028] 7 [Tableaux l] Fonctionnement de l'installation Opération de suppression Technique classique Présente Inventio n Amélioratio n Technique classique Présente Inventio n Amélioratio n Performanc e 2,12 secondes 1,54 27,35 % 1,24 0,96 secondes 22,58 % secondes secondes No de la demande d'effacemen t 448 343 23,43% 200 166 17% No de la Demande d'écriture 1311 669 48,97% 664 355 46,53% [0029] En outre, la présente invention a été décrite dans la partie ci-dessus en se référant à des illustrations d'organigrammes et/ou des schémas fonctionnels de procédés et d'appareils (systèmes) selon les modes de réalisation de l'invention. [0030] Il est entendu que chaque bloc des illustrations de l'organigramme et/ou des schémas fonctionnels, ainsi que les combinaisons de blocs dans les illustrations de l'organigramme et/ou les schémas fonctionnels, peuvent être mis en oeuvre par des instructions de programme informatique. Ces instructions de programme informatique peuvent être fournies à un processeur d'un ordinateur à usage général, d'un ordinateur à usage spécifique ou d'un autre appareil de traitement de données programmable pour produire une machine, de sorte que les instructions, qui s'exécutent par l'intermédiaire du processeur de l'ordinateur ou d'un autre appareil de traitement de données programmable, créent des moyens de mise en oeuvre des fonctions/actions spécifiées dans le ou les bloc(s) d'organigrammes et/ou de schémas fonctionnels. [0031] Ces instructions de programme informatique peuvent également être stockées dans une mémoire lisible par ordinateur qui peut ordonner à un ordinateur ou à un autre appareil de traitement de données programmable de fonctionner d'une manière particulière, de sorte que les instructions stockées dans la mémoire lisible par ordinateur produisent un article manufacturé comprenant des moyens d'instruction qui mettent en oeuvre la fonction ou l'acte spécifié(e) dans le ou les bloc(s) d'organigrammes et/ou de schémas fonctionnels. [0032] Les instructions de programme informatique peuvent également être chargées sur un 8 ordinateur ou un autre appareil de traitement de données programmable tel qu'un scanner/scanner de contrôle pour provoquer l'exécution d'une série d'étapes opérationnelles sur l'ordinateur ou un autre appareil programmable pour produire un processus exécuté par ordinateur de sorte que les instructions qui s'exécutent sur l'ordinateur ou un autre appareil programmable fournissent les étapes de mise en oeuvre des fonctions/actions spécifiées dans le ou les bloc(s) d'organigrammes et/ou de schémas fonctionnels. L'organigramme et les schémas fonctionnels illustrent l'architecture, la fonctionnalité et le fonctionnement de certains modes de réalisation de procédés, de systèmes et de produits de programmes informatiques pour gérer les associations de sécurité sur un réseau de communication. A cet égard, chaque bloc peut représenter un module, un segment ou une partie de code, qui comprend une ou plusieurs instruction(s) exécutable(s) pour mettre en oeuvre la ou les fonctions logique(s) spécifiée(s). Il convient également de noter que dans d'autres mises en oeuvre, la ou les fonction(s) notée(s) dans les blocs peut/peuvent se dérouler dans l'ordre indiqué dans les figures. Par exemple, deux blocs montrés successivement peuvent, en fait, être exécutés sensiblement simultanément ou les blocs peuvent parfois être exécutés dans l'ordre inverse, en fonction de la fonctionnalité concernée. [0033] Les différents modes de réalisation décrits ci-dessus peuvent être combinés pour fournir d'autres modes de réalisation. Certains aspects des modes de réalisation peuvent être modifiés, si nécessaire pour utiliser les concepts des différents brevets, demandes de brevet et publications afin de fournir encore d'autres modes de réalisation. Ces changements, ainsi que d'autres, peuvent être apportés aux modes de réalisation à la lumière de la description détaillée ci-dessus. En général, dans les revendications suivantes, les termes utilisés ne doivent pas être interprétés comme limitant les revendications aux modes de réalisation spécifiques décrits dans la spécification et les revendications, mais comme incluant tous les modes de réalisation possibles ainsi que la gamme complète des équivalents auxquels ces revendications ont droit. Par conséquent, les revendications ne sont pas limitées par la description. 9 [Revendication 11 [Revendication 21 [Revendication 31 [Revendication 41 [Revendication 51 [Revendication 61 [Revendication 71 [Revendication 81