Brevet FR2689263A1 — publié le 19931001

"Dispositif comportant des moyens pour valider des données inscrites dans une mémoire". Description: La présente invention concerne un dispositif comportant des moyens pour valider des données inscrites dans une mémoire. Un tel dispositif trouve d'importantes applications notamment lorsqu'il sert de dispositif de paiement (carte à microcircuit). Un problème qui se pose avec ce genre de dispositif est la validation de la transaction ou la validation de la donnée inscrite Il est important que celle-ci soit enregistrée avec beaucoup de fiabilité Pour cela, on utilise souvent'une mémoire morte reprogrammble (EEPROM) pour contenir la valeur et la validité de la dernière transaction Ce problème se complique en outre par le fait que les mémoires reprogrammables (EEPROM) ne supportent qu'un nombre limité d'écriture et que pour obtenir un usage intensif, il est proposé de l'organiser en mémoire circulaire de sorte que chaque donnée inscrite n'occupe pas la place de la précédente Ainsi, le nombre d'emplacements de cette mémoire circulaire augmente d'autant le nombre possible de transactions. Dans le brevet EP O 398 545 on décrit un tel dispositif o l'on utilise un élément binaire ou drapeau pour signaler si la donnée entrée l'est valablement La gestion de ce drapeau nécessite tout un traitement; notamment il faut prévoir une écriture supplémentaire pour le positionner Dans le cas d'une mémoire EEPROM, le temps nécessaire d'écriture en mémoire est relativement long (plusieurs millisecondes) Cette écriture est donc pénalisante et est considérée comme désavantageuse. La présente invention propose un dispositif du genre cité dans le préambule, dans lequel il n'est pas nécessaire d'utiliser un élément binaire de drapeau. Pour cela, un tel dispositif est remarquable en ce que les moyens de validation assignent au moins deux emplacements "neutres" contiguëment à la donnée à valider. La description suivante, accompagnée des dessins ci-annexés, le tout donné à titre d'exemple non limitatif, fera bien comprendre comment l'invention peut être réalisée. La figure 1 montre un dispositif conforme à l'invention. La figure 2 montre comment est inscrite la mémoire non volatile. La figure 3 est un organigramme représentant la mise en oeuvre des moyens de validation. Sur la figure 1 est représenté un support électronique amovible et portatif 1 appelé carte à microcircuit ou carte dans la suite du texte Le microcircuit 2 de la carte présente une architecture connue pour l'essentiel Cette architecture consiste en un microprocesseur 8 bits 3 qui peut incorporer une mémoire RAM 10, deux mémoires vives RAM montées en tampon 4 et 5, une mémoire de programme ROM 6 et une mémoire de données de type EPROM ou EEPROM 7 La mémoire RAM 4 est reliée au microprocesseur 3 par un bus d'adresses bidirectionnel 8 et la mémoire RAM 5 est reliée au microprocesseur par un bus de données bidirectionnel 9 Par ailleurs, chaque RAM 4, 5 est reliée aux mémoires 6, 7 chaque fois par un bus bidirectionnel (non référencé). La carte 1 est représentée symboliquement introduite dans un lecteur 11 La carte possède 6 contacts Kl, K 2, K 3, K 4, K 5 et K 6 qui, dans cette position d'introduction, coopèrent avec 6 contacts homologues du lecteur et qui sont, en allant du bas vers le haut sur la figure, représentés d'une manière schématique sans respecter un ordre particulier: le contact d'entrée-sortie série I/O, le contact de masse GND, l'alimentation du microcircuit VCC ( 5 V), l'alimentation de programmation VPP, l'horloge CLK et la remise à zéro, RESET. Certains de ces 6 contacts sont reliés au microcircuit par l'intermédiaire de ports (non référencés) Au moyen d'une interface 12 et d'une liaison de communication, par exemple une ligne de transmission 13, le lecteur communique à distance avec un système hôte 14 qui comporte lui aussi une interface 15 La ligne de transmission 13 a été représentée symboliquement par deux fils, le fil 16 qui transmet de l'information du lecteur 11 vers le système hôte 14 et le fil 17 qui transmet l'information en sens inverse. Le problème qui se pose est que lors d'une transaction, une donnée validant la transaction doit être écrite dans la mémoire EEPROM 7 Ceci devient particulièrement critique lorsque cette écriture n'est pas menée à son terme notamment à cause d'un arrachement de la carte ou d'une coupure d'alimentation Pour valider cette transaction, c'est-à- dire ratifier la fin d'une opération d'écriture (ou de réécriture), l'invention propose d'utiliser la mémoire EEPROM en mémoire circulaire dont les emplacements sont repérés par les codes d'adresse AO, Ai,, A 4, A 5, A 6, l'inscription d'une donnée suivant celle située à l'emplalcement A 6 se fera à l'emplacement AO etc; une donnée est ratifiée si elle est contiguë à au moins deux emplacements "neutres" Pour une mémoire EEPROM conventionnelle, cela correspond à un effacement, le mot est alors "FF" en notation hexadécimale. La figure 2 explicite le fonctionnement de l'invention. Q O représente l'état initial L'information valide est R 5 située à l'emplacement Ai Les deux éléments suivants, aux adresses A 2 et A 3, contiennent le code "FF" signifiant que ces deux cases ont déjà été effacées. QD représente l'écriture de la donnée R 6 à l'emplacement A 2. 2 représente l'effacement de la donnée la plus ancienne RH Cet effacement effectif constitue la validation de la donnée R 6. Ainsi, l'interruption de l'opération avant la fin normale de la phase 2 ne laissera qu'un seul enregistrement vierge dans la mémoire EEPROM 7 et donc, la donnée R 6 sera considérée comme invalide. Ce fonctionnement est gouverné par des lignes de programmes contenues dans la mémoire ROM 6. Le programme montré à la figure 3 commence à la case KO o un compteur d'adressage A (modulo 7) est initialisé par la valeur Ao qui correspond au premier emplacement de la mémoire circulaire Puis, à la case Kl on teste si le contenu de cette case est vide ("FF") ou non Si ce contenu n'est pas vide, on va à la case K 2 o le compteur A est incrémenté d'une unité et on retourne à la case Kl Si le contenu de la mémoire circulaire est vide, on incrémente le compteur A d'une unité (case K 5) On teste si l'emplacement suivant de la mémoire circulaire est vide ou non S'il n'est pas vide, l'information n'est pas validée et un processus découlant de cette invalidation est déclenché (case K 8) Ce processus ne faisant pas partie de l'invention n'a pas à être décrit Si le test de la case K 6 est positif on peut entreprendre une opération de lecture ou d'écriture en fonction d'un test indiqué à la case K 10. Une opération d'écriture commence par décrémenter d'une unité le compteur A (case K 12) puis à écrire la donnée (case K 13) Après avoir vérifié (par relecture) que la donnée est bonne (case K 14) le compteur A est incrémenté de deux unités (case K 15) puis l'emplacement pointé par ce compteur est effacé (case K 16) Lorsque la donnée inscrite est fausse, le programme se débranche dans une routine de traitement d'erreur non décrit ici (case K 18) et n'efface pas C(A). Pour effectuer l'opération de lecture, le compteur A doit être décrémenté de deux unités (case K 21) avant que la lecture s'effectue (case K 22). Revendications 1 Dispositif comportant des moyens de validation pour valider des données dans une mémoire, caractérisé en ce que les moyens de validation assignent au moins deux emplacements "neutres" contiguëment à la donnée à valider. 2 Dispositif selon la revendication 1, caractérisé en ce que la mémoire est organisée en mémoire circulaire. 3 Dispositif selon la revendication 1 ou 2, caractérisé en ce que la mémoire est du type EEPROM et que les emplacements "neutres" résultent de leur effacement.