Brevet FR2809223A1 — publié le 20011123

DOMAINE DE L'INVENTION La présente invention concerne un procédé de mise à jour de données dans une mémoire effaçable, en particulier une mémoire morte programmable effaçable électriquement, appelée également mémoire EEPROM (Electrically Erasable Programmable Read Only Memory). Les mémoires EEPROM permettent de stocker des données de manière non volatile, de sorte que les données restent inscrites dans la mémoire même lorsque cette dernière est hors tension. Elles autorisent en outre une mise à jour des données, par effacement de tout ou partie de la mémoire, et écriture de nouvelles données. L'opération d'effacement est réalisée électriquement, en appliquant une surtension à la mémoire. ART ANTERIEUR Les mémoires EEPROM sont aujourd'hui très largement utilisées. On les trouve notamment dans les cartes à puces, les modems, les téléphones portables, etc. La figure 1 est un bloc-diagramme de la partie électrique d'une carte à puce. Le dispositif illustré à la figure 1 comprend un microcontrôleur 1, constituant la puce électronique de la carte, et une interface 2 permettant la communication de la carte avec un terminal de lecture/écriture (non représenté). Le microcontôleur 1 comprend principalement un microprocesseur 10, des unités mémoires 20, 30, 40, un circuit d'entrée/sortie 50, et un bus de données 60 reliant les circuits 20, 30, 40 et 50 au microprocesseur 10. Les unités mémoires 20, 30 consistent, respectivement, en une mémoire morte ROM (Read Only Memory), contenant un programme informatique, appelé "système d'exploitation", qui gère le fonctionnement de la puce, et une mémoire vive RAM (Random Access Memory) pour le stockage temporaire de données traitées par le microprocesseur 10. L'unité mémoire EEPROM 40 sert à stocker des données propres à l'utilisateur, telles que son nom, un code secret, ou une somme d'argent disponible. En référence à la figure 2, l'unité mémoire 40 inclut notamment une mémoire EEPROM 400, un module de suralimentation 410 pour l'effacement de données stockées dans la mémoire 400, et un registre 420 contenant un drapeau dont l'état binaire "0" ou "1" indique si un processus d'effacement de la mémoire 400 est ou non terminé. L'interface 2 peut être constituée par des contacts électriques aptes à coopérer avec des contacts électriques correspondants d'un terminal de lecture/écriture de carte à puce, et/ou par des moyens d'émission/réception radioélectriques adaptés pour l'échange de signaux radio avec le terminal, ces moyens de transmission étant dits "sans contact". Une carte à puce équipée des moyens de transmission sans contact peut être utilisée, par exemple, comme portefeuille électronique. L'utilisateur peut alors effectuer une transaction, telle que l'achat d'un article, en passant la carte dans un champ électromagnétique produit par le terminal, et qui permet, entre autres, d'alimenter la puce en énergie électrique. La figure 3 illustre un procédé conventionnel de mise à jour de données dans la mémoire EEPROM 400 de la figure 2. A une première étape E1, des données sont reçues par le microprocesseur 10, via l'interface 2 et le circuit d'entrée/sortie 50. Chaque donnée reçue est stockée provisoirement dans la mémoire vive 30 (étape E2). A une étape suivante E3, une zone de la mémoire EEPROM 400, contenant des données à mettre à jour, est effacée au moyen du module de suralimentation 410, sur commande du microprocesseur 10. Lorsque le registre 420 indique que l'effacement est terminé, les données reçues sont extraites de la mémoire vive 30 pour être écrites dans la zone précitée (étape E4). Un inconvénient majeur de ce procédé réside dans le fait qu'il est relativement long à mettre en oeuvre. Ceci est particulièrement gênant lorsque l'on utilise les moyens de transmission "sans contact" de la carte à puce, puisqu'il est difficile, dans un tel cas, de maîtriser le temps de passage de la carte à puce dans le champ électromagnétique du terminal. Ce temps dépend en effet de la rapidité avec laquelle l'utilisateur manie sa carte. Toutes les opérations liées à la communication avec le terminal, y compris les opérations d'effacement et d'écriture de la mémoire EEPROM, doivent donc être effectuées le plus rapidement possible. En pratique, il est admis que l'ensemble de ces opérations ne doit pas prendre plus de quelques dizaines de millisecondes. Or une même transaction peut nécessiter plusieurs opérations d'effacement et d'écriture dans la mémoire, chacune d'entre elles prenant, à elle seule, plusieurs millisecondes. OBJET ET DESCRIPTION SUCCINCTE DE L'INVENTION La présente invention vise à réduire le temps nécessaire pour mettre à jour des données dans une mémoire effaçable. A cette fin, il est prévu un procédé de mise à jour de données dans une mémoire effaçable, dans lequel on reçoit des données de mise à jour, on stocke provisoirement ces données, on efface au moins une zone de la mémoire effaçable et on écrit les données de mise à jour dans la zone ainsi effacée, le procédé étant caractérisé en ce que l'effacement de ladite zone est effectué, au moins en partie, parallèlement à la réception et au stockage provisoire des données de mise à jour. En mettant en oeuvre l'opération d'effacement parallèlement à la réception et au stockage provisoire des données, le procédé selon l'invention réduit le temps nécessaire à la mise à jour de données dans la mémoire effaçable. Typiquement, le procédé comprend une étape préalable de réception d'une commande, l'opération d'effacement étant déclenchée suite à la réception de cette commande et de préférence avant la réception des données de mise à jour. La mémoire effaçable est de préférence une mémoire morte programmable effaçable électriquement, ou EEPROM. L'effacement des mémoires EEPROM actuellement disponibles sur le marché dure généralement quelques millisecondes. Pendant ce temps, tout ou partie des données de mise à jour peuvent être reçues et stockées. La présente invention concerne en outre un dispositif de mise à jour de données dans une mémoire effaçable, comprenant un moyen de réception pour recevoir des données de mise à jour, un moyen de stockage pour stocker provisoirement ces données, un moyen d'effacement pour effacer au moins une zone de la mémoire effaçable, et un moyen d'écriture pour écrire les données de mise à jour dans la zone ainsi effacée, caractérisé en ce que le moyen d'effacement est adapté pour mettre en oeuvre au moins une partie de l'opération d'effacement parallèlement à la réception et au stockage provisoire des données de mise à jour. La présente invention propose également un dispositif électronique, en particulier un microcontrôleur, comprenant un microprocesseur, une mémoire effaçable, un moyen de stockage provisoire et un moyen d'effacement de la mémoire effaçable. Le microprocesseur est programmé pour commander la réception, dans le dispositif électronique, de données de mise à jour, ainsi que le stockage provisoire de ces données, l'effacement d'au moins une zone de la mémoire effaçable et l'écriture des données de mise â jour dans la zone ainsi effacée. Le dispositif électronique est caractérisé en ce que le microprocesseur est en outre programmé pour que l'opération d'effacement, lorsqu'elle est mise en oeuvre, se déroule, au moins en partie, parallèlement à la réception et au stockage provisoire des données de mise à jour. Les dispositifs mentionnés ci-dessus peuvent être intégrés dans un objet portatif, tel qu'une carte à puce. Selon un autre aspect de l'invention, il est prévu un programme informatique apte à être mis en oeuvre par un dispositif électronique comprenant un microprocesseur, une mémoire effaçable, un moyen de stockage provisoire et un moyen d'effacement de la mémoire effaçable, le programme informatique étant conçu pour commander la réception, par le dispositif électronique, de données de mise à jour, le stockage provisoire de ces données, l'effacement d'au moins une zone de la mémoire effaçable et l'écriture des données de mise à jour dans le zone ainsi effacée, et étant caractérisé en ce qu'il est en outre conçu pour que l'opération d'effacement, lorsqu'elle est mise en oeuvre, se déroule parallèlement à la réception et au stockage provisoire des données de mise à jour. BREVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description détaillée suivante faite en référence aux dessins annexés, dans lesquels la figure 1, déjà commentée, est un bloc-diagramme montrant la partie électrique d'une carte à puce ; la figure 2, déjà commentée, illustre plus en détail une unité mémoire EEPROM contenue dans le dispositif de la figure 1 ; la figure 3, déjà commentée, montre un algorithme conventionnel de mise à jour de données dans une mémoire EEPROM ; et la figure 4 montre un algorithrpe selon l'invention de mise à jour de données dans une mémoire effaçable. DESCRIPTION DETAILLEE DES MODES DE REALISATION DE L'INVENTION L'algorithme selon l'invention, tel qu'illustré à la figure 4, est exécuté par le microcontrôleur de carte à puce 1 représenté à la figure 1. Plus particulièrement, cet algorithme est stocké dans la mémoire morte 20, sous forme de programme informatique, en tant que sous-programme du système d'exploitation du microcontrôleur. A une première étape F1, le microprocesseur 10 reçoit d'un terminal de lecture/écriture de carte à puce, via l'interface 2 (avec contact et/ou sans contact) et le circuit d'entrée/sortie 50, une commande se présentant typiquement sous la forme de cinq octets, conformément à la norme ISO 7816. Le microprocesseur 10 reconnaît, dans cette commande, qu'il va recevoir des données de mise à jour à écrire dans une zone ZN de la mémoire EEPROM 400. A une étape suivante F2, le microprocesseur 10 détermine si la zone ZN est vide. S'il est répondu "non" à l'étape F2, une opération d'effacement des données contenues dans la zone ZN est déclenchée à une étape F3, par activation du module de suralimentation 410 de l'unité EEPROM 40. L'effacement de la zone ZN (étape F3') s'effectue alors indépendamment du déroulement de l'algorithme dans le microprocesseur 10, comme montré en pointillés à la figure 4. Le microprocesseur peut ainsi, pendant l'opération d'effacement, recevoir les données de mise à jour transmises par le terminal de lecture/écriture, à une étape F4, et stocker chacune de ces données dans la mémoire vive 30 (étape F5). Si, à l'étape F2, il est déterminé que la zone ZN ne contient aucune donnée, le microprocesseur 10 attend la réception des données de mise à jour, puis met en oeuvre les étapes F4 et F5. Une fois les données de mise à jour reçues et stockées dans la mémoire vive 30, et si, initialement (étape F2), la zone ZN n'était pas vide, il est vérifié, à une étape F6, si l'effacement de la zone ZN est terminé. Pour ce faire, le microprocesseur 10 interroge le registre 420 de l'unité EEPROM 40. Si le drapeau contenu dans ce registre indique que l'effacement n'est pas terminé, l'interrogation du registre 420 par le microprocesseur 10 est répétée à des intervalles de temps réguliers jusqu'à ce que le drapeau ait changé d'état. Lorsque, lors d'une vérification effectuée à l'étape F6, le drapeau indique que l'effacement est terminé, il est procédé à une mise à jour de la zone ZN par écriture, dans celle-ci, des données stockées dans la mémoire vive 30 (étape F7). S'il a été déterminé à l'étape F2 que la zone ZN est vide, l'étape F6 n'est pas exécutée, l'algorithme passant directement des étapes de réception et stockage F4, F5 à l'étape d'écriture F7, comme indiqué par le trait pointillé F57. La présente invention telle que décrite ci-dessus et définie dans les revendications annexées, n'est pas limitée à une zone ZN constituant une partie seulement de la mémoire EEPROM 400. La zone ZN peut consister en la mémoire effaçable elle-même. D'autre part, la présente invention pourrait être appliquée à d'autres dispositifs qu'une carte à puce, et en particulier à d'autres types d'objet portatif. REVENDICATIONS 1. Procédé de mise à jour de données dans une mémoire effaçable (400), dans lequel on reçoit des données de mise à jour (F4), on stocke provisoirement ces données (F5), on efface au moins une zone de la mémoire effaçable et on écrit les données de mises à jour dans la zone ainsi effacée (F7), le procédé étant caractérisé en ce que l'effacement (F3') de ladite zone est effectué, au moins en partie, parallèlement à la réception et au stockage provisoire des données de mise à jour. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend une étape préalable (F1) de réception d'une commande, et en ce que l'opération d'effacement (F3') de ladite zone est déclenchée suite à la réception de cette commande et de préférence avant la réception des données de mise à jour. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que la mémoire effaçable (400) est une mémoire morte programmable effaçable électriquement. 4. Dispositif de mise à jour de données dans une mémoire effaçable (400), comprenant un moyen de réception (10, 50) pour recevoir des données de mise à jour, un moyen de stockage (10, 30) pour stocker provisoirement ces données, un moyen d'effacement (10, 410) pour effacer au moins une zone de la mémoire effaçable, et un moyen d'écriture (10) pour écrire les données de mises à jour dans la zone ainsi effacée, caractérisé en ce que le moyen d'effacement (10, 410) est adapté pour mettre en oeuvre au moins une partie de l'opération d'effacement parallèlement à la réception et au stockage provisoire des données de mise à jour. 5. Dispositif selon la revendication 4, caractérisé en ce que le moyen d'effacement (10, 410) est adapté pour déclencher l'effacement de ladite zone suite à la réception d'une commande par le moyen de réception (10, 50) et de préférence avant la réception, par ce dernier, des données de mise à jour. 6. Dispositif électronique (1), en particulier un microcontrôleur, comprenant une mémoire effaçable (400) et un dispositif, tel que défini dans la revendication 4 ou 5, de mise à jour de données dans la mémoire effaçable. 7. Dispositif électronique (1), en particulier un microcontrôleur, comprenant un microprocesseur (10), une mémoire effaçable (400), un moyen de stockage provisoire (30) et un moyen d'effacement (10, 410) de la mémoire effaçable, le microprocesseur (10) étant programmé pour commander la réception, dans le dispositif électronique (1), de données de mise à jour, le stockage provisoire de ces données, l'effacement d'au moins une zone de la mémoire effaçable et l'écriture des données de mise à jour dans la zone ainsi effacée, caractérisé en ce que le microprocesseur (10) est en outre programmé pour que l'opération d'effacement, lorsqu'elle est mise en oeuvre, se déroule, au moins en partie, parallèlement à la réception et au stockage provisoire des données de mise à jour. 8. Dispositif électronique selon la revendication 6 ou 7, caractérisé en ce que la mémoire effaçable (400) est une mémoire morte programmable effaçable électriquement. 9. Objet portatif comprenant un dispositif tel que défini dans l'une quelconque des revendications 4 à 8. 10. Objet portatif selon la revendication 9, caractérisé en ce qu'il consiste en une carte à puce.