FR2830667A1 - Procede de determination d'une zone stable dans une memoire et dispositif de gestion d'une memoire associe - Google Patents

Procede de determination d'une zone stable dans une memoire et dispositif de gestion d'une memoire associe Download PDF

Info

Publication number
FR2830667A1
FR2830667A1 FR0112812A FR0112812A FR2830667A1 FR 2830667 A1 FR2830667 A1 FR 2830667A1 FR 0112812 A FR0112812 A FR 0112812A FR 0112812 A FR0112812 A FR 0112812A FR 2830667 A1 FR2830667 A1 FR 2830667A1
Authority
FR
France
Prior art keywords
writing direction
memory
values
area
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR0112812A
Other languages
English (en)
Inventor
Henri Ohanian
Jean Philippe Millard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Priority to FR0112812A priority Critical patent/FR2830667A1/fr
Priority to PCT/FR2002/003135 priority patent/WO2003042827A2/fr
Priority to AU2002347237A priority patent/AU2002347237A1/en
Publication of FR2830667A1 publication Critical patent/FR2830667A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Character Input (AREA)

Abstract

L'invention concerne un procédé (et un dispositif associé) de détermination, dans une mémoire (MD), d'une zone stable contenant une information certaine (DB) dont X valeurs images (D1 à DX) sont mémorisées dans X zones (P1 à PX) de la mémoire (MD) en fonction d'un sens d'écriture (S), X étant un nombre entier supérieur ou égal à trois.Selon l'invention, le procédé comprend les étapes suivantesE1 : lecture d'un sens d'écriture (S-),E2 : lecture des X zones (P1 à PX),E3 : comparaison des X valeurs (D1 à DX), puisE4 : détermination de la zone stable à partir du résultat de la comparaison et du sens d'écriture.Selon un mode de réalisation, le procédé comprend également l'étape ES suivante, réalisée après l'étape E4.E5 : détermination et mémorisation d'un sens d'écriture (S+) actualisé. Application aux cartes à mémoire.

Description

<Desc/Clms Page number 1>
PROCEDE DE DETERMINATION D'UNE ZONE STABLE MNS UNE MEMOIRE ET DISPOSITIF DE GESTION D'UNE
MEMOIRE ASSOCIE.
L'invention concerne un procédé de détermination d'une zone stable contenant une information certaine dans une mémoire, et un dispositif de gestion de la mémoire associé. L'invention est notamment intéressante dans le cas d'une information susceptible d'être mise à jour.
L'invention peut être avantageusement utilisée dans le domaine des cartes à mémoire, encore appelées cartes à puce.
Un problème récurrent dans les applications pour cartes à mémoire est la fiabilité de la sauvegarde d'informations dans la mémoire. Il est en effet indispensable de pouvoir garantir le contenu de certaines zones de la mémoire. C'est le cas notamment des zones de mémoire utilisées pour mémoriser des informations secrètes et/ou essentielles dans des applications sensibles. Par exemple, pour une application de type bancaire, il est nécessaire de garantir la valeur d'un numéro mémorisé dans la carte et identifiant son possesseur. Dans d'autres applications, il est nécessaire de garantir la valeur d'un pointeur qui indique par exemple où, dans la mémoire, est mémorisée une information donnée. Ce problème de fiabilité se pose également pour des verrous de la carte, qui sont des zones de mémoire programmées au fur et à mesure de la vie de la carte pour bloquer certaines fonctionnalités de la carte.
Une solution à ce problème est l'utilisation de mémoire de type OTP (de l'anglais One Time Programmable Memory). Une telle mémoire est par définition programmable une seule fois et son contenu ne peut pas être effacé électriquement. Aussi, après s'être assuré
<Desc/Clms Page number 2>
que l'information a été correctement mémorisée, la lecture de l'information fournit dans tous les cas une valeur fiable et garantie. Une telle mémoire est très souvent utilisée pour la réalisation des verrous de la carte.
En contrepartie de sa fiabilité, une mémoire OTP ne permet pas la mise à jour des informations qu'elle contient. Or il est de plus en plus souvent nécessaire de pouvoir mémoriser de manière fiable une information devant être mise à jour, régulièrement ou non, fréquemment ou non.
Lorsque des informations doivent être mises à jour dans une carte, ces informations sont classiquement mémorisées dans une mémoire non volatile programmable et effaçable électriquement, par exemple de type EEPROM, etc. Cependant, une information mémorisée dans une telle mémoire n'est pas fiable, en ce sens qu'il n'est pas possible de garantir la valeur de l'information mémorisée.
En effet, les fabricants de mémoires non volatiles savent qu'une valeur mémorisée n'est fiable que si l'écriture de cette valeur a eu lieu correctement et complètement, ce qui n'est pas toujours le cas.
L'écriture d'une mémoire, pour être complète et efficace, demande une quantité d'énergie déterminée pendant un temps déterminé assez long (de l'ordre de quelques millisecondes). Une carte à mémoire ne disposant pas de source d'énergie interne, l'énergie nécessaire à la réalisation d'une écriture est fournie par l'extérieur, par un lecteur de carte dans lequel est insérée la carte par exemple.
Un exemple typique et fréquent d'interruption de l'alimentation en énergie d'une carte est l'arrachement de la carte du lecteur de cartes pendant une écriture.
Au cours de l'écriture d'une zone mémoire, son contenu DA, s'il existe, est éventuellement effacé
<Desc/Clms Page number 3>
progressivement puis remplacé par la programmation d'une information DB (qui est une nouvelle information ou bien une mise à jour de l'information DA) précédemment contenue dans la zone mémoire.
Si l'alimentation en énergie de la carte est interrompue pendant la programmation de l'information DB, la programmation (ou éventuellement l'effacement qui la précède) est interrompue brusquement. Si l'interruption a lieu au tout début de l'écriture, alors il est fort probable que la valeur DA précédemment mémorisée dans la zone le soit encore, auquel cas une lecture future de la zone donnera cette ancienne valeur DA. Inversement, si l'interruption a lieu tout à la fin de la programmation, alors il est fort probable que la nouvelle valeur DB soit déjà mémorisée dans la zone, de sorte qu'une lecture future de cette zone donnera la nouvelle valeur DB. Entre les deux, des situations intermédiaires se produisent.
Dans ces conditions, il n'est évidemment pas possible de savoir si la zone mémoire concernée contient effectivement l'ancienne valeur DA ou la nouvelle valeur DB ou une valeur indéterminée DI, ou si une lecture future de la zone donnera soit la valeur DA, soit la valeur DB, avec une probabilité variable. Dans ces conditions, il n'est évidemment pas possible de garantir la valeur de l'information qui pourrait être lue par la suite dans la zone mémoire.
Un objet de l'invention est de proposer une solution pour sauvegarder une information dans une mémoire de manière fiable, pour garantir par la suite la valeur mémorisée de l'information.
Un autre objet de l'invention est de proposer une solution pour sauvegarder une information susceptible d'être mise à jour, de manière fiable.
Un autre objet de l'invention est de proposer un procédé de détermination d'une zone stable dans une
<Desc/Clms Page number 4>
mémoire, garantissant la valeur de l'information mémorisée.
Un autre objet enfin est de réaliser un dispositif de gestion d'une mémoire, garantissant la valeur de l'information mémorisée.
Avec ces objectifs en vue, l'invention concerne un procédé de détermination, dans une mémoire, d'une zone stable contenant une information certaine dont X valeurs images sont mémorisées dans X zones de la mémoire en fonction d'un sens d'écriture, X étant un nombre entier supérieur ou égal à trois. La mémoire peut être par exemple une mémoire de type EEPROM, OTP, etc.
Selon l'invention, le procédé comprend les étapes suivantes :
El : lecture d'un sens d'écriture,
E2 : lecture des X zones,
E3 : comparaison des X valeurs, puis
E4 : détermination de la zone stable à partir du résultat de la comparaison et du sens d'écriture.
L'information à lire peut être une information mémorisée une seule fois ou bien une valeur mise à jour d'une information précédemment mémorisée.
L'information à lire est mémorisée dans X zones de la mémoire dont la taille (en termes d'octets) est fonction notamment de la taille de l'information et de la technologie utilisée pour la réalisation de la mémoire.
La taille des X zones et leur répartition géographique dans la mémoire sont indifférentes.
La mémorisation de l'information dans X zones distinctes permet de garantir la valeur de l'information lors d'une lecture future. En effet, dans la mesure où une valeur n'est écrite dans une des X zones qu'après écriture correcte et complète de la précédente zone, il existe au moins une zone contenant une valeur certaine de l'information. Dans le même esprit, une mise à jour de
<Desc/Clms Page number 5>
l'information ne peut commencer qu'après la réalisation correcte et complète de la mise à jour précédente.
L'expression"zone stable"est ainsi utilisée pour parler d'une zone qui a la plus forte probabilité de contenir une valeur certaine de l'information.
Le sens d'écriture définit l'ordre dans lequel les X valeurs images de l'information sont mémorisées dans les X zones. Il permet aussi de définir la première zone écrite et la dernière zone écrite, qui varient en fonction du sens d'écriture.
L'information à lire a été précédemment mémorisée selon le sens d'écriture, qui peut prendre deux valeurs correspondant à deux ordres de classement différents (de préférence complémentaires l'un de l'autre) de l'ensemble des X zones. Arbitrairement, le sens d'écriture est dit positif ou négatif. Dans un exemple, si le sens d'écriture positif correspond à un classement de 1 à X des zones, alors le sens d'écriture négatif correspond à l'ordre inverse des zones, de X à 1.
Le sens d'écriture est mémorisé dans une zone de la mémoire réservée à cet effet, en vue d'être utilisé lors d'une prochaine mise en oeuvre du procédé de détermination d'une zone stable parmi X zones, selon l'invention, et /ou lors d'une éventuelle mise à jour de l'information dans les X zones.
Lors de la mise en oeuvre du procédé de détermination d'une zone stable de la mémoire parmi X zones, le sens d'écriture est lu dans la mémoire au cours de l'étape El. Les valeurs contenues dans les X zones sont également lues dans la mémoire au cours de l'étape E2. Il est à noter que les étapes El, E2 peuvent être réalisées l'une après l'autre, successivement, parallèlement, etc. Le sens de réalisation des étapes El, E2 est indifférent. De la même façon, le sens de lecture des X zones de la mémoire au cours de l'étape E2 est
<Desc/Clms Page number 6>
indifférent et peut varier entre deux mises en oeuvre du procédé. Les X zones peuvent être lues dans le sens d'écriture, dans le sens inverse, ou même dans un ordre quelconque. L'essentiel est de lire toutes les valeurs contenues dans les X zones et de les classer dans l'ordre où elles ont été écrites, en fonction du sens d'écriture lu. Ceci permet de définir, pour chaque sens d'écriture, la première zone écrite et la dernière zone écrite.
L'étape de comparaison E3 permet de déterminer si l'écriture de l'information dans les X zones a été correctement et complètement réalisée, ou si au contraire l'écriture a été interrompue, et le cas échéant à quel moment elle a été interrompue, comme on le verra mieux par la suite dans des exemples. Pour cela, on vérifie notamment si toutes les X valeurs sont égales ou pas.
L'étape E4 permet ensuite de décider quelle est la zone stable parmi les X zones mémorisant l'information.
Selon une variante, l'étape E4 de détermination de la zone stable comprend la sous étape suivante, réalisée si les X valeurs sont identiques :
ET11 : la zone stable est la première zone selon le sens d'écriture.
Il est à noter que la notion de première zone (ou de dernière zone) dépend nécessairement du sens d'écriture, comme on l'a vu précédemment. Par exemple, si le sens d'écriture est positif et correspond à un classement de 1 à X des zones, alors la première zone selon le sens d'écriture est la zone 1. Dans un autre exemple, si le sens d'écriture est négatif et correspond au classement inverse des zones, de X à 1, alors la première zone selon le sens d'écriture est la zone X.
Si toutes les valeurs sont identiques, alors on estime que l'écriture de l'information a été correctement et complètement réalisée, ou qu'au moins les (X-l) premières zones ont été correctement et complètement
<Desc/Clms Page number 7>
écrites. Dans ce cas, l'information à lire est égale à la première valeur écrite associée au sens d'écriture : cette zone est en effet la zone la plus fiable au sens où il est certain qu'elle a été écrite correctement et complètement.
Selon une autre variante, l'étape E4 comprend la sous étape suivante, réalisée si les X valeurs ne sont pas identiques et si il existe une séquence majoritaire :
ET21 : la zone stable est la première zone selon le sens d'écriture si la séquence majoritaire comprend la première zone selon le sens d'écriture et la zone stable est la dernière zone selon le sens d'écriture si la séquence majoritaire comprend la dernière zone selon le sens d'écriture.
Si toutes les valeurs lues ne sont pas identiques, alors cela signifie que la mémorisation de l'information n'a pas été effectuée correctement et complètement. Ce sera le cas par exemple en cas d'arrachement de la carte du lecteur pendant l'écriture des X zones.
Par séquence, il faut comprendre un ensemble de valeurs identiques écrites successivement, et comprenant au moins la première valeur écrite ou la dernière valeur écrite selon le sens d'écriture. Ainsi, pour chaque sens d'écriture, il est possible de définir deux séquences : l'une comprenant au moins la première valeur écrite et l'autre comprenant au moins la dernière valeur écrite selon le sens d'écriture. Des exemples numériques décrits plus loin faciliteront la compréhension de cette notion.
Une séquence est dite majoritaire si elle comprend un nombre d'éléments strictement supérieur au nombre d'éléments des autres séquences issues du même ensemble de valeurs écrites.
Dans le cas où il existe une séquence majoritaire (étape ET21), alors l'information est égale à la valeur extrême (première ou dernière) de la séquence majoritaire
<Desc/Clms Page number 8>
et qui est aussi une valeur extrême (première ou dernière) de l'ensemble des X valeurs lues.
Selon une autre variante, l'étape E4 comprend la sous-étape suivante, réalisée si les X valeurs ne sont pas identiques et si il n'existe pas de séquence majoritaire :
ET31 : la zone stable est la dernière zone selon le sens d'écriture.
Selon un mode de réalisation préféré, le procédé comprend également l'étape ES suivante, réalisée après l'étape E4 :
ES : détermination et mémorisation d'un sens d'écriture actualisé.
Le sens d'écriture actualisé est déterminé en fonction du sens d'écriture lu lors de l'étape El et de la zone stable déterminée lors de l'étape E4. Le sens d'écriture est finalement mis à jour en vue d'une éventuelle actualisation de l'information ou d'une prochaine lecture de l'information.
Figure img00080001
Ainsi, si les X valeurs sont identiques : - l'étape E4 de détermination de la zone stable comprend la sous étape suivante :
ET11 : la zone stable est la première zone selon le sens d'écriture, et - l'étape ES comprend la sous étape suivante :
ET12 : le sens d'écriture actualisé est contraire au sens d'écriture.
Si les X valeurs ne sont pas identiques et si il existe une séquence majoritaire : - l'étape E4 comprend la sous étape suivante :
ET21 : la zone stable est la première zone selon le sens d'écriture si la séquence majoritaire comprend la première zone selon le sens d'écriture et la zone stable est la dernière zone selon le sens d'écriture si la
<Desc/Clms Page number 9>
séquence majoritaire comprend la dernière zone selon le sens d'écriture, et - l'étape ES comprend la sous étape suivante :
ET22 : le sens d'écriture actualisé est égal au sens d'écriture précédent.
Enfin, si les X valeurs ne sont pas identiques et si il n'existe pas de séquence majoritaire : - l'étape E4 comprend la sous-étape suivante :
ET31 : la zone stable est la dernière zone selon le sens d'écriture, et - l'étape ES comprend la sous étape suivante :
ET32 : le sens d'écriture actualisé est égal au sens d'écriture précédent.
Pour la mise en oeuvre d'un procédé selon l'invention, l'information à déterminer est mémorisée sous la forme de X valeurs images de l'information. Par valeur image de l'information, il faut comprendre une valeur obtenue à partir de la valeur réelle de l'information par une application mathématique.
Dans les modes de réalisation décrits ci-dessus, on suppose implicitement que les X images mémorisées de l'information sont égales à la valeur réelle de l'information. Mais ceci n'est pas indispensable.
Par exemple, une ou plusieurs des X images peuvent être dérivées de l'information par application d'une fonction mathématique. A titre d'exemple, une des images peut être obtenue par application de la fonction identique (valeur image = valeur réelle), de la fonction inverse (valeur image = valeur inverse de la valeur réelle) ou par application de toute autre fonction mathématique ayant une fonction inverse.
Si une ou plusieurs des X valeurs images contenues dans la mémoire sont différentes de la valeur réelle de l'information, (par exemple si une des valeurs écrite est égale à l'inverse de l'information), le procédé selon
<Desc/Clms Page number 10>
l'invention est complété par une étape de calcul de la manière suivante.
Si une N-ième valeur image lue parmi les X valeurs est obtenue par application d'une fonction mathématique à la valeur réelle de l'information, N étant un nombre entier compris entre 1 et X, alors le procédé comprend l'étape E21 suivante, réalisée après l'étape E2 de lecture des X valeurs images :
E21 : détermination d'une N-ième valeur de l'information à partir de la N-ième valeur image lue.
Dans ce cas bien sûr, les étapes E3, E4 sont réalisées en utilisant la ou les valeurs calculées de l'information, et non la ou les valeurs lues associées.
Le procédé selon l'invention tel que décrit cidessus est enfin avantageusement complété par une étape d'initialisation réalisée avant la mémorisation de l'information, au cours de laquelle une valeur initiale stable est mémorisée dans les X zones.
La valeur initiale stable peut être une valeur nulle ou tout autre valeur, telle que par exemple une valeur initiale de l'information à écrire.
L'invention a enfin pour objet un dispositif de gestion d'une mémoire de données, comprenant un automate pour la mise en oeuvre d'un procédé de détermination d'une zone stable de la mémoire, tel que décrit ci-dessus. La mémoire de données est une mémoire programmable et effaçable électriquement, par exemple une mémoire EEPROM.
Selon un mode de réalisation, le dispositif comprend une unité de traitement et une mémoire de programme associée, l'automate étant réalisé sous forme logiciel et mis en oeuvre par un microprocesseur de l'unité de traitement.
Selon un autre mode de réalisation, l'automate est un circuit couplé aux entrées de commande de la mémoire de données.
<Desc/Clms Page number 11>
Le dispositif de gestion selon l'invention est soit intégré sur le même support que la mémoire de données ou bien soit déporté dans un dispositif associé.
Par exemple, le dispositif de gestion et la mémoire peuvent être intégrés ensemble dans une carte à puce.
Dans un autre exemple, la mémoire est intégrée dans une carte à puce et le dispositif de gestion est intégré dans un lecteur associé.
Il est à noter que l'invention peut être utilisée quelle que soit la taille de l'information à mémoriser et quelle que soit la position respective des X zones utilisées dans la mémoire. Si nécessaire, le dispositif de gestion de la mémoire comprend notamment des moyens pour localiser géographiquement les X zones dans la mémoire.
A titre indicatif, l'invention peut être utilisée pour la gestion d'un verrou dans une carte à mémoire, ou bien pour la réalisation d'un système de mémorisation garantissant le contenu de la mémoire de données qu'il gère.
L'invention sera mieux comprise et d'autres caractéristiques et avantages apparaîtront à la lecture de la description qui va suivre, d'un exemple de mise en oeuvre d'un procédé de détermination d'une zone stable dans une mémoire selon l'invention. La description est à lire en relation au dessin annexé dans lequel : - la figure 1 est un schéma fonctionnel d'une carte pouvant être utilisée pour la mise en oeuvre de l'invention, et - la figure 2 est un diagramme d'un algorithme de mise en oeuvre du procédé de détermination d'une zone stable dans une mémoire selon l'invention.
L'invention est décrite ci-dessous en relation avec les figures 1,2, dans le cadre d'une application
<Desc/Clms Page number 12>
particulière où une mémoire non volatile contient au moins une information D susceptible d'être mise à jour.
La figure 1 illustre une carte à puce, qui comprend une mémoire MD de données susceptibles d'être mises à jour et un dispositif CG de gestion de la mémoire MD.
Dans un autre exemple (non représenté), la carte à puce comprend seulement une mémoire MD de données, le dispositif CG de gestion de la mémoire est quant à lui déporté dans un lecteur de carte à puce. Ces deux modes de réalisation de cartes à puce sont classiques : il existe dans le commerce des cartes à puce qui ne comportent que la mémoire MD de données et des cartes à puce qui comportent la mémoire MD de données et un dispositif de gestion associé.
Dans l'exemple de la figure 1, le dispositif MG de gestion comprend notamment une unité UT de traitement, qui est par exemple un microprocesseur, et une mémoire MP de programme associée, par exemple de type ROM ou EPROM.
La mémoire de programme comprend notamment un programme d'application, spécifique à l'utilisation prévue de la carte à puce.
Selon l'invention, la mémoire MP comprend également un programme PR de gestion de la mémoire MD de données, permettant la mise en oeuvre d'un mécanisme de lecture de la mémoire MD, selon l'invention.
La mémoire MD de données est ici de type EERPOM, elle comprend un plan mémoire comprenant notamment X zones mémoires PI, P2,... PX, destinées à la mémorisation et la sauvegarde de l'information D susceptible d'être mise à jour. Les X zones PI, P2,... PX sont ici X pages identiques de la mémoire MD (chaque page comprenant éventuellement plusieurs octets), situées côte-à-côte. On rappelle que la taille et la position des X zones sur le plan mémoire sont indifférentes.
Le plan mémoire comprend également une zone supplémentaire pour mémoriser la valeur du sens
<Desc/Clms Page number 13>
d'écriture S. Cette zone est dans l'exemple une zone de un bit dans laquelle on mémorise la valeur 1 si le sens d'écriture est positif et dans laquelle on mémorise la valeur 0 si le sens d'écriture est négatif.
Des exemples de mise en oeuvre du procédé de détermination d'une zone stable parmi les X zones dans la mémoire MD, selon l'invention, vont maintenant être décrits en relation avec la figure 2.
Dans tous les exemples qui vont suivre, on suppose qu'initialement, les X zones PI, P2, PX de la mémoire contiennent des données Dl, D2,..., DX, toutes égales à une valeur initiale DA de l'information à lire. Le contenu des X zones est donc stable, au sens où les X zones ont été correctement et complètement écrites.
Selon l'invention, la mise à jour de l'information D est réalisée de la manière suivante : lecture du sens d'écriture dans la mémoire MD puis écriture de valeur actualisée DB de l'information D successivement dans les X zones PI, P2,... PX de la mémoire si le sens d'écriture est positif ou dans les X zones PX,..., P2, PI si le sens d'écriture est négatif.
En ce qui concerne le procédé de détermination d'une zone stable de la mémoire (ou de lecture d'une valeur certaine de l'information contenue dans la mémoire), on considère dans un premier exemple le cas d'une mémoire MD comprenant six zones PI à P6 réservées à l'écriture de l'information D. On suppose par ailleurs que le sens d'écriture est initialement positif.
La détermination de la zone stable et de l'information D certaine qu'elle contient est effectuée de la manière suivante. Au cours d'une première étape El, le sens d'écriture est lu dans la mémoire (ici sens positif). Au cours de l'étape E2, les six valeurs Dl à D6 sont lues dans les six zones PI à P6 correspondantes. On
<Desc/Clms Page number 14>
rappelle que le sens de lecture des six zones est indifférent. L'essentiel est de lire toutes les zones, puis de classer les valeurs lues dans le sens d'écriture si nécessaire.
La lecture donne dans cet exemple l'ensemble de valeurs suivants : (Dl,..., D6) = (DB,..., DB)
Un tel ensemble de valeurs est obtenu notamment lorsque la mise à jour a été correctement et complètement réalisée.
Toutes les valeurs Dl à D6 étant égales, l'étape ET1 est réalisée : - l'information D est égale à Dl = DB (ET11) car, le sens d'écriture étant positif, la première valeur selon le sens d'écriture était la valeur Dl, - le sens d'écriture est actualisé : S+ =-S- (ET12), il devient ainsi négatif et sa nouvelle valeur est mémorisé dans la zone de la mémoire MD réservée à cet effet.
Dans un deuxième exemple, on considère le cas d'une mémoire MD comprenant six zones PI à P6 réservées à l'écriture de l'information D. On suppose par ailleurs que le sens d'écriture est initialement positif.
La détermination de la zone stable et de l'information D certaine qu'elle contient est effectuée de la manière suivante. Au cours d'une première étape El, le sens d'écriture est lu dans la mémoire (ici sens positif). Au cours de l'étape E2, les six valeurs Dl à D6 sont lues dans les six zones PI à P6 correspondantes.
La lecture donne dans cet exemple l'ensemble de valeurs suivants :
Figure img00140001

(Dl,..., D6) = (DB, DB, DI, DA, DA, DA) DI est une valeur quelconque, éventuellement indéterminée.
<Desc/Clms Page number 15>
Un tel ensemble de valeurs est obtenu notamment lorsque la mise à jour précédente a été interrompue en cours d'écriture de la zone P2 ou P3.
L'ensemble de valeurs comprend ici deux séquences de valeurs identiques et comprenant une des valeurs extrêmes (Dl ou D6) des données : la séquence (Dl, D2) et la séquence (D4, D5, D6). La deuxième séquence est majoritaire car elle comprend un nombre d'éléments strictement supérieur à celui de la première séquence.
Aussi, dans ce deuxième exemple, la valeur de l'information lue (ET21) est égale à D6 = DA. La valeur actualisée du sens d'écriture est égale à sa valeur précédente (ET22), elle reste donc positive.
Dans un troisième exemple, on considère le cas d'une mémoire MD comprenant trois zones PI à P3 réservées à l'écriture de l'information D. On suppose par ailleurs que le sens d'écriture est initialement positif.
La détermination de la zone stable et de l'information D certaine qu'elle contient est effectuée de la manière suivante. Au cours d'une première étape El, le sens d'écriture est lu dans la mémoire (ici sens positif). Au cours de l'étape E2, les trois valeurs Dl à D3 sont lues dans les trois zones PI à P3.
La lecture donne dans cet exemple l'ensemble de valeurs suivants : (Dl, D2, D3) = (DB, DB, DA)
Un tel ensemble de valeurs est obtenu notamment lorsque la mise à jour a été interrompue en cours d'écriture de la zone P2 ou P3.
L'ensemble de valeurs comprend ici deux séquences de valeurs identiques et comprenant une des valeurs extrêmes (Dl ou D3) des données : la séquence (Dl, D2) et la séquence (D3). La première séquence est majoritaire car elle comprend un nombre d'éléments strictement supérieur à celui de la deuxième séquence.
<Desc/Clms Page number 16>
Aussi, dans ce troisième exemple, la valeur de l'information lue (ET21) est égale à Dl = DB. La valeur actualisée du sens d'écriture est égale à sa valeur précédente (ET22), elle reste donc positive.
Dans un quatrième exemple, on considère le cas d'une mémoire MD comprenant trois zones PI à P3 réservées à l'écriture de l'information D. On suppose par ailleurs que le sens d'écriture est initialement positif.
La détermination de la zone stable et de l'information D certaine qu'elle contient est effectuée de la manière suivante. Au cours d'une première étape El, le sens d'écriture est lu dans la mémoire (ici sens positif). Au cours de l'étape E2, les trois valeurs Dl à D3 sont lues dans les trois zones PI à P3.
La lecture donne dans cet exemple l'ensemble de valeurs suivants : (Dl, D2, D3) = (DB, DI, DA) DI est une valeur quelconque, éventuellement indéterminée.
Un tel ensemble de valeurs est obtenu notamment
Figure img00160001

1 1 lorsque la mise à jour a été interrompue en cours d'écriture de la zone PI ou P2.
L'ensemble de valeurs comprend ici deux séquences de valeurs identiques et comprenant une des valeurs extrêmes (Dl ou D3) des données : la séquence (Dl) et la séquence (D3). Les deux séquences comprennent ici chacune une unique valeur et donc aucune n'est majoritaire.
Aussi, dans ce quatrième exemple, la valeur de l'information lue (ET31) est égale à D3 = DA. La valeur actualisée du sens d'écriture est égale à sa valeur précédente (ET32), elle reste donc positive.
Des applications diverses et variées de l'invention peuvent être envisagées.
<Desc/Clms Page number 17>
Une première application de l'invention est la réalisation d'un verrou amovible dans une carte à mémoire. On rappelle qu'un verrou est une zone de mémoire utilisée par un utilisateur amont pour empêcher un utilisateur aval d'accéder à certaines fonctionnalités de la carte. L'état du verrou, ouvert ou fermé, doit bien entendu être garanti. L'invention permet de réaliser un verrou non définitif (contrairement à un verrou réalisé à l'aide d'une mémoire OTP), c'est-à-dire un verrou pouvant être ouvert ou fermé par l'utilisateur amont. Dans un exemple pratique, un tel verrou pourra être intéressant pour une carte utilisée comme porte monnaie électronique.
L'utilisateur amont, par exemple un banquier, se réserve ainsi la possibilité de recharger la carte par une somme d'argent, et interdit à l'utilisateur aval, son client, de recharger seul le porte monnaie.
Une deuxième application de l'invention est la réalisation d'un mécanisme anti-stress pour une mémoire de données dans laquelle est mémorisée au moins une information courante susceptible d'être mise à jour. Un tel mécanisme est par exemple réalisé en utilisant deux ou plusieurs zones mémoires pour programmer une même information : les différentes zones sont utilisées successivement dans un ordre prédéfini au fur et à mesure des mises à jour de l'information. Au cours de chaque mise à jour, un pointeur est également mis à jour, indiquant quelle est la zone mémoire en cours d'utilisation. La valeur de ce pointeur doit bien entendu être certaine, afin de pouvoir toujours garantir l'accès à la dernière valeur mise à jour de l'information dans la mémoire. L'invention pourra être avantageusement utilisée pour mémoriser le pointeur, ce qui permettra de garantir sa valeur.

Claims (14)

REVENDICATIONS
1. Procédé de détermination, dans une mémoire (MD), d'une zone stable contenant une information certaine (DB) dont X valeurs images (Dl à DX) sont mémorisées dans X
Figure img00180001
zones (PI à PX) de la mémoire (MD) en fonction d'un sens d'écriture (S), X étant un nombre entier supérieur ou égal à trois, le procédé comprenant les étapes suivantes :
El : lecture d'un sens d'écriture (S-),
E2 : lecture des X zones (PI à PX),
E3 : comparaison des X valeurs (Dl à DX), puis
E4 : détermination de la zone stable à partir du résultat de la comparaison et du sens d'écriture.
2. Procédé selon la revendication 1, caractérisé en ce que l'étape E4 de détermination de la zone stable comprend la sous étape suivante, réalisée si les X valeurs (Dl à DX) sont identiques : ET11 : la zone stable est la première zone (PI ou PX) selon le sens d'écriture.
3. Procédé selon la revendication 1, caractérisé en ce que l'étape E4 comprend la sous étape suivante, réalisée si les X valeurs (Dl à DX) ne sont pas identiques et si il existe une séquence majoritaire :
ET21 : la zone stable est la première zone (PI ou PX) selon le sens d'écriture si la séquence majoritaire comprend la première zone selon le sens d'écriture et la zone stable est la dernière zone (PX ou PI) selon le sens d'écriture si la séquence majoritaire comprend la dernière zone selon le sens d'écriture.
4. Procédé selon la revendication 1, caractérisé en ce que l'étape E4 comprend la sous-étape suivante,
<Desc/Clms Page number 19>
ET31 : la zone stable est la dernière zone selon le sens d'écriture.
réalisée si les X valeurs (Dl à DX) ne sont pas identiques et si il n'existe pas de séquence majoritaire :
5. Procédé selon la revendication 1, caractérisé en ce qu'il comprend également l'étape E5 suivante, réalisée après l'étape E4 :
E5 : détermination et mémorisation d'un sens d'écriture (S+) actualisé.
6. Procédé selon la revendication 5, caractérisé en ce que, si les X valeurs (Dl à DX) sont identiques : - l'étape E4 de détermination de la zone stable comprend la sous étape suivante :
Figure img00190001
ET11 : la zone stable est la première zone (PI ou PX) selon le sens d'écriture, et - l'étape E5 comprend la sous étape suivante :
ET12 : le sens d'écriture (S+) actualisé est contraire au sens d'écriture (S-).
7. Procédé selon la revendication 5, caractérisé en ce que, si les X valeurs (Dl à DX) ne sont pas identiques et si il existe une séquence majoritaire :
Figure img00190002
- l'étape E4 comprend la sous étape suivante : ET21 : la zone stable est la première zone (PI ou PX) selon le sens d'écriture si la séquence majoritaire comprend la première zone selon le sens d'écriture et la zone stable est la dernière zone (PX ou PI) selon le sens d'écriture si la séquence majoritaire comprend la dernière zone selon le sens d'écriture, et - l'étape E5 comprend la sous étape suivante :
ET22 : le sens d'écriture actualisé (S+) est égal au sens d'écriture (S-).
<Desc/Clms Page number 20>
8. Procédé selon la revendication 5, caractérisé en ce que, si les X valeurs (Dl à DX) ne sont pas identiques et si il n'existe pas de séquence majoritaire : - l'étape E4 comprend la sous-étape suivante :
ET31 : la zone stable est la dernière zone selon le sens d'écriture, et - l'étape E5 comprend la sous étape suivante :
ET32 : le sens d'écriture actualisé (S+) est égal au sens d'écriture (S-).
9. Procédé selon l'une des revendications 1 à 8, caractérisé en ce que une N-ième valeur image lue parmi les X valeurs est obtenue par application d'une fonction mathématique à la valeur réelle de l'information, N étant un nombre entier compris entre 1 et X, et en ce qu'il comprend l'étape E21 suivante, réalisée après l'étape E2 de lecture des X valeurs (Dl à DX) images :
E21 : détermination d'une N-ième valeur de
Figure img00200001
l'information à partir de la N-ième valeur image lue. x
10. Procédé selon la revendication 9, caractérisé en ce que ladite fonction mathématique est la fonction inverse (1/DB).
11. Procédé selon l'une des revendications 1 à 10, caractérisé en ce qu'il comprend également une étape d'initialisation réalisée avant la mémorisation de l'information, au cours de laquelle une valeur initiale stable est mémorisée dans les X zones.
12. Dispositif de gestion (MG) d'une mémoire de données (MD), comprenant un automate pour la mise en oeuvre d'un procédé selon l'une des revendications 1 à 11.
13. Carte à mémoire, caractérisée en ce qu'elle comprend un dispositif selon la revendication 12.
<Desc/Clms Page number 21>
14. Utilisation du procédé selon l'une des revendications 1 à 11 pour la gestion d'un verrou dans une carte à mémoire.
FR0112812A 2001-10-05 2001-10-05 Procede de determination d'une zone stable dans une memoire et dispositif de gestion d'une memoire associe Pending FR2830667A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR0112812A FR2830667A1 (fr) 2001-10-05 2001-10-05 Procede de determination d'une zone stable dans une memoire et dispositif de gestion d'une memoire associe
PCT/FR2002/003135 WO2003042827A2 (fr) 2001-10-05 2002-09-13 Comparaison de donnees repliques
AU2002347237A AU2002347237A1 (en) 2001-10-05 2002-09-13 Comparison of replicated data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0112812A FR2830667A1 (fr) 2001-10-05 2001-10-05 Procede de determination d'une zone stable dans une memoire et dispositif de gestion d'une memoire associe

Publications (1)

Publication Number Publication Date
FR2830667A1 true FR2830667A1 (fr) 2003-04-11

Family

ID=8867950

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0112812A Pending FR2830667A1 (fr) 2001-10-05 2001-10-05 Procede de determination d'une zone stable dans une memoire et dispositif de gestion d'une memoire associe

Country Status (3)

Country Link
AU (1) AU2002347237A1 (fr)
FR (1) FR2830667A1 (fr)
WO (1) WO2003042827A2 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103378426A (zh) * 2012-04-20 2013-10-30 维纳尔电气***有限两合公司 安装导轨适配器
WO2014195012A1 (fr) * 2013-06-06 2014-12-11 Continental Automotive France Procédé d'optimisation de l'utilisation de la mémoire non volatile d'un calculateur de véhicule automobile pour la surveillance d'un organe fonctionnel

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682031A (en) * 1991-05-06 1997-10-28 Gemplus Card International Smart card and smart card locking process therefor
US5748638A (en) * 1993-03-11 1998-05-05 Francotyp-Postalia Aktiengesellschaft & Co. Method for storing security relevant data
US5869823A (en) * 1996-01-03 1999-02-09 International Business Machines Corporation Method and system for improving the integrity of data on a smartcard
WO2000026783A1 (fr) * 1998-10-30 2000-05-11 Infineon Technologies Ag Dispositif de memorisation pour stocker des donnees et procede pour faire fonctionner des dispositifs de memorisation pour stocker des donnees

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3371682B2 (ja) * 1996-04-26 2003-01-27 トヨタ自動車株式会社 半導体記憶装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682031A (en) * 1991-05-06 1997-10-28 Gemplus Card International Smart card and smart card locking process therefor
US5748638A (en) * 1993-03-11 1998-05-05 Francotyp-Postalia Aktiengesellschaft & Co. Method for storing security relevant data
US5869823A (en) * 1996-01-03 1999-02-09 International Business Machines Corporation Method and system for improving the integrity of data on a smartcard
WO2000026783A1 (fr) * 1998-10-30 2000-05-11 Infineon Technologies Ag Dispositif de memorisation pour stocker des donnees et procede pour faire fonctionner des dispositifs de memorisation pour stocker des donnees

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103378426A (zh) * 2012-04-20 2013-10-30 维纳尔电气***有限两合公司 安装导轨适配器
CN103378426B (zh) * 2012-04-20 2016-08-24 维纳尔电气***有限两合公司 安装导轨适配器
WO2014195012A1 (fr) * 2013-06-06 2014-12-11 Continental Automotive France Procédé d'optimisation de l'utilisation de la mémoire non volatile d'un calculateur de véhicule automobile pour la surveillance d'un organe fonctionnel
FR3006768A1 (fr) * 2013-06-06 2014-12-12 Continental Automotive France Procede de surveillance d'un organe fonctionnel d'un vehicule automobile
CN105247490A (zh) * 2013-06-06 2016-01-13 法国大陆汽车公司 用于功能构件监测的机动车辆计算机的非易失性存储器的使用的优化方法
CN105247490B (zh) * 2013-06-06 2018-07-03 法国大陆汽车公司 用于功能构件监测的机动车辆计算机的非易失性存储器的使用的优化方法
US10261720B2 (en) 2013-06-06 2019-04-16 Continental Automotive France Method for optimizing the use of a non-volatile memory in a motor vehicle computer for monitoring a functional member

Also Published As

Publication number Publication date
WO2003042827A3 (fr) 2006-09-14
AU2002347237A1 (en) 2003-05-26
WO2003042827A2 (fr) 2003-05-22
AU2002347237A8 (en) 2006-11-09

Similar Documents

Publication Publication Date Title
EP1988548B1 (fr) Mémoire non volatile à écriture rapide
EP0606029B1 (fr) Carte à puce avec données et programmes protégés contre le vieillissement
EP2786317B1 (fr) Ecriture de données dans une mémoire non volatile de carte à puce
EP0756746B1 (fr) Procede de mise a jour securisee de memoire eeprom
FR2787601A1 (fr) Systeme de memorisation comprenant des moyens de gestion d&#39;une memoire avec anti-usure et procede de gestion anti-usure d&#39;une memoire
FR2606909A1 (fr) Systeme de traitement pour un appareil electronique portatif, tel qu&#39;une carte a circuit integre
FR2716021A1 (fr) Procédé et système de transaction par carte à puce.
EP3293637A1 (fr) Gestion d&#39;index dans une mémoire flash
FR2685520A1 (fr) Carte a memoire rechargeable, procede de securisation et terminal d&#39;utilisation.
FR2641634A1 (fr) Carte a memoire prepayee rechargeable
FR3051574A1 (fr) Gestion du stockage dans une memoire flash
FR2830667A1 (fr) Procede de determination d&#39;une zone stable dans une memoire et dispositif de gestion d&#39;une memoire associe
FR2748134A1 (fr) Procede et dispositif permettant a un programme fige de pouvoir evoluer
EP3246819B1 (fr) Compteur en mémoire flash
FR2689662A1 (fr) Procédé de protection d&#39;une carte à puce contre la perte d&#39;information.
WO2007090857A1 (fr) Procede de mise a jour securisee de memoire non volatile
EP1498841B1 (fr) Circuit transpondeur multi-applications et procédé de gestion de la mémoire d&#39;un tel circuit transpondeur
EP0956540A1 (fr) Systeme securise de controle d&#39;acces permettant l&#39;invalidation automatique de cles electroniques volees ou perdues et/ou le transfert d&#39;habilitation a produire des cles
FR3051575A1 (fr) Gestion de l&#39;effacement dans une memoire flash
EP3188032B1 (fr) Stockage de données dans une mémoire flash
EP3416087A1 (fr) Gestion d&#39;atomicité dans une mémoire eeprom
FR2700864A1 (fr) Système détecteur de falsification d&#39;informations mémorisées.
FR2749413A1 (fr) Procede de stockage des unites de valeur dans une carte a puce de facon securisee et systeme de transaction monetaire avec de telles cartes
FR2812116A1 (fr) Procede et dispositif d&#39;inscription securisee de donnees dans une memoire reinscriptible
FR2749956A1 (fr) Systeme securise de controle d&#39;acces permettant le transfert d&#39;habilitation a produire des cles