Brevet FR2935504A1 — publié le 20100305

Arrière-plan de l'invention L'invention se situe dans le domaine général de la gestion de l'usure d'une mémoire non volatile réinscriptible. On rappelle en premier lieu qu'une mémoire non volatile est une mémoire adaptée à conserver ses données en l'absence d'alimentation électrique. De telles mémoires ont une durée de vie limitée dans le temps. Elles sont le plus souvent gérées par un contrôleur de mémoire apte à obtenir le degré d'usure d'au moins certaines zones de la mémoire. Un problème se pose lorsqu'un tel contrôleur de mémoire continue à recevoir des ordres d'écriture de données dans une zone usée de la mémoire, car ces données seront perdues, la perte de ces données étant détectée par le contrôleur au moment où le contrôleur cherchera à lire ces données à partir de la zone usée. L'invention offre une solution à ce problème. Objet et résumé de l'invention L'invention concerne un dispositif de contrôle comportant des moyens pour interroger un contrôleur d'une mémoire non volatile réinscriptible et pour obtenir au moins une information d'usure d'au moins une zone de ladite mémoire. Dans un mode particulier de réalisation, le dispositif de contrôle selon l'invention comporte des moyens pour autoriser ou bloquer une commande d'écriture de données dans la mémoire en fonction de la ou des information(s) d'usure. Conformément à l'invention, l'information d'usure peut servir à autre chose qu'à interdire ou autoriser la communication avec la mémoire. Elle peut aussi être utilisée pour informer l'utilisateur que le support de la mémoire non volatile réinscriptible (par exemple une carte à puce) doit être changé. L'invention propose de résoudre le problème de l'art antérieur en utilisant un dispositif de contrôle externe au contrôleur de mémoire et apte à obtenir l'usure de la mémoire non volatile réinscriptible pour empêcher tout ordre d'écriture dans des zones usées de cette mémoire. Il est important de bien considérer qu'il n'était pas connu de faire remonter les informations d'usage des zones d'une mémoire non volatile à un niveau supérieur, ces informations étant toujours manipulées et exploitées par le contrôleur de la mémoire lui-même, c'est-à-dire au niveau le plus bas. Cette situation s'explique par le fait que les mesures d'usage 10 portent sur des adresses physiques de la mémoire, inexploitables par des contrôleurs externes. Dans l'invention la notion � d'information d'usure � est à comprendre au sens large et vise notamment toute information représentative d'un degré d'usure ou d'une durée de vie restante. 15 Dans un mode particulier de réalisation, le dispositif de contrôle selon l'invention interroge le contrôleur de mémoire par l'envoi d'une requête comportant une adresse logique de la zone dont il souhaite connaître l'usure. Pour la mise en oeuvre de ce mode de réalisation de l'invention, 20 il est nécessaire que le contrôleur de mémoire comporte des moyens pour convertir l'adresse logique en adresse physique. Dans un mode de réalisation particulier, le dispositif de contrôle selon l'invention comporte des moyens pour mémoriser des données destinées à la mémoire dans une mémoire non volatile de secours. 25 On s'assure ainsi qu'aucune donnée n'est perdue. Dans un mode particulier de réalisation du dispositif de contrôle selon l'invention, au moins une information d'usure d'une zone est une information représentative de la durée de vie restante de cette zone. Corrélativement, l'invention vise aussi un procédé de contrôle 30 pouvant être mis en oeuvre par un dispositif de contrôle externe à un contrôleur d'une mémoire non volatile réinscriptible et comportant : - une étape d'envoi d'une requête au contrôleur de mémoire ; et - une étape d'obtention d'au moins une information d'usure d'au moins une zone de la mémoire. 35 Dans un mode particulier de réalisation, le procédé de contrôle selon l'invention comporte au moins une étape pour autoriser ou bloquer une commande d'écriture de données dans la mémoire en fonction de la ou des information(s) d'usure. Les avantages et caractéristiques particuliers du procédé de contrôle selon l'invention sont similaires à ceux du dispositif de contrôle selon l'invention. L'invention vise aussi un système de gestion d'une mémoire non volatile réinscriptible comportant : - un contrôleur de cette mémoire apte à obtenir au moins une information d'usure d'au moins une zone de cette mémoire ; et - un dispositif de contrôle tel que mentionné ci-dessus, externe audit contrôleur de mémoire. L'invention vise aussi un contrôleur de mémoire non volatile réinscriptible comportant : - des moyens de réception d'une requête pour obtenir au moins une 15 information d'usure d'au moins une zone de ladite mémoire ; - des moyens d'obtention de cette information ; et - des moyens de communication de cette information en réponse à la requête. Dans un mode particulier de réalisation, le contrôleur selon 20 l'invention comporte des moyens de réception d'une requête comportant une adresse logique de ladite zone. L'invention vise aussi une carte à microcircuit conforme à la norme ISO7816 et comportant un contrôleur de mémoire tel que mentionné ci-dessus. 25 L'invention vise aussi un véhicule comportant une telle carte. Dans un mode particulier de réalisation de l'invention, le contrôleur de mémoire comporte des moyens de répartition des accès à ladite mémoire. Grâce à cette caractéristique, le contrôleur de mémoire peut 30 avantageusement obtenir une information représentative de l'usure générale de la mémoire non volatile à partir de la mesure d'usage d'un petit nombre de zones. Cette information d'usure générale peut être reçue par le dispositif de contrôle selon l'invention en réponse à sa requête. L'invention permet ainsi à un contrôleur externe, d'obtenir très simplement une information sur l'usure générale d'une mémoire non volatile réinscriptible. L'invention trouve alors une application privilégiée dans la gestion de l'usure des mémoires installées dans des endroits difficiles d'accès (moteur de voiture, distributeurs, ...). On notera que l'état actuel de la technique n'offre aucune solution pour obtenir à distance l'usure générale d'une telle mémoire. Dans un mode particulier de réalisation, le système selon l'invention comporte une mémoire de secours dans laquelle le dispositif de contrôle est apte à mémoriser des données destinées à ladite mémoire non volatile réinscriptible lorsque celle-ci est considérée comme usée. Dans un mode particulier de réalisation, les différentes étapes du procédé de contrôle sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en oeuvre dans un dispositif de contrôle ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes d'un procédé de contrôle tel que décrit ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Brève description des dessins D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : - la figure 1 représente un système selon l'invention ; et - la figure 2 représente sous forme d'organigramme les principales étapes d'un procédé de contrôle selon l'invention. Description détaillée d'un mode de réalisation Un système de gestion et un procédé de contrôle conformes à un mode particulier de réalisation de l'invention vont maintenant être décrits en référence aux figures 1 et 2. L'invention est décrite ici dans le contexte particulier de la gestion d'une mémoire non volatile réinscriptible 360 montée sur une carte à microcircuit 300 conforme à la norme ISO7816 (ou "carte à puce") installée dans un véhicule. La mémoire non volatile réinscriptible 360 est dénommée ci-après � mémoire non volatile 360 �. Il peut notamment s'agir d'une 30 mémoire de type FLASH ou d'une mémoire EEPROM. Le système de gestion décrit ici comporte : - un contrôleur de mémoire 350 conforme à l'invention apte à obtenir des informations d'usure de la mémoire non volatile 360, et plus précisément une information sur l'usure générale de cette mémoire, et 35 une information sur l'usure d'une ou plusieurs zones de cette mémoire ; - un dispositif 100 de contrôle conforme à l'invention, externe au contrôleur de mémoire 350, et apte à interroger le contrôleur de mémoire 350 pour obtenir les informations d'usure précitées ; et - une mémoire non volatile réinscriptible 200 dite � de secours � dans laquelle le dispositif de contrôle 100 peut mémoriser des données destinées à la mémoire non volatile 360 lorsque celle-ci est usée. Dans le mode de réalisation décrit ici, le contrôleur de mémoire 350 est dans la carte à puce 300. En variante il pourrait être à l'extérieur de cette carte, la seule contrainte étant qu'il soit en mesure de connaître l'usage d'au moins une zone de la mémoire non volatile 360. Dans le mode de réalisation décrit ici, les informations d'usure de la mémoire non volatile 360 sont mémorisées dans un registre 370 de cette mémoire 360. En variante, elles pourraient être mémorisées dans une autre mémoire accessible par le contrôleur de mémoire 350. Le contrôleur de mémoire 350 répond à des commandes de lecture ou d'écriture dans la mémoire non volatile 360 qui adressent cette mémoire de façon logique ou symbolique. Par conséquent, dans le mode de réalisation décrit ci-après, le contrôleur de mémoire 350 selon l'invention comporte des moyens pour convertir une adresse logique ou symbolique en adresse physique. Dans le mode particulier de réalisation décrit ici, ces moyens de conversion utilisent une table de conversion 361 stockée dans la mémoire non volatile 360. En variante, elle pourrait être mémorisée dans une autre mémoire accessible par le contrôleur de mémoire 350. Dans le mode de réalisation décrit ici, le dispositif de contrôle 100 demande au contrôleur de mémoire 350 de réaliser des opérations de lecture/écriture de messages SMS reçus par une antenne 400 du véhicule dans un registre d'adresse logique � Table_SMS �. La table de conversion 361 comporte ainsi une correspondance 30 entre cette adresse logique � Table_SMS � et une adresse physique @PHY dans la mémoire non volatile 360. Dans l'exemple de réalisation décrit ici, le contrôleur de mémoire 350 mémorise deux informations d'usure dans le registre 370, à savoir : 35 - une information SMS_USE représentative de l'usure de la zone de la mémoire 360 correspondant à l'adresse logique � Table_SMS � ; et - une information ALL_USE représentative de l'usure générale de la zone de la mémoire non volatile 360. Dans le mode particulier de réalisation décrit ici, une information d'usure (SMS-USE, ALL-USE) est une information représentative de la durée de vie restante d'une zone, par exemple le nombre d'opérations d'écritures pouvant encore être effectuées dans cette zone sans que ces données ne soient perdues. Dans le mode de réalisation décrit ici, l'information SMS_USE est calculée par le contrôleur de mémoire 350 en incrémentant un compteur 10 pour chaque accès d'écriture dans le zone concernée. Dans le mode de réalisation de l'invention décrit ici, l'information ALL_USE est calculée en faisant la moyenne des accès à quelques zones de la mémoire choisies aléatoirement. Afin d'obtenir une valeur ALL_USE représentative de l'usure 15 générale de la mémoire non volatile 630 à partir d'un petit nombre de zones, le contrôleur de mémoire 350 met en oeuvre un mécanisme de répartition des opérations d'accès à la mémoire non volatile 360. Ce mécanisme dit de � wear leveling � est connu de l'état de la technique, il ne sera pas décrit plus en détail. 20 Conformément à l'invention, le dispositif de contrôle 100 comporte des moyens pour interroger le contrôleur de mémoire 350 pour obtenir des informations d'usure de la mémoire non volatile 360. Dans le mode de réalisation décrit ici, le dispositif 100 communique avec un port d'entrée/sortie 351 du contrôleur 350. 25 Dans l'exemple de réalisation décrit ici, le dispositif de contrôle 100 envoie à cette fin une requête RQ permettant d'écrire sur le port 351 du contrôleur 350 : - soit l'adresse logique � Table_SMS � pour obtenir l'information SMS_USE représentative de l'usure de la zone de la mémoire non volatile 30 360 dans laquelle sont stockés les SMS ; - soit le paramètre � ALL � pour obtenir l'information ALL_USE représentative de l'usure générale de la mémoire non volatile 360. Dans l'exemple de réalisation décrit ici, le contrôleur 350 comporte un circuit électronique 352 apte à obtenir l'information SMS- 35 USE, ALL-USE demandée et à la placer dans un registre lisible par le dispositif de contrôle 100 dans le port 351. Dans l'exemple de réalisation décrit ici, le compteur 100 envoie les SMS reçus de l'antenne 400 au contrôleur 350 pour stockage dans la mémoire non volatile 360 tant que les valeurs SMS_USE et ALL_USE sont inférieures à un seuil 230. Dans l'exemple de réalisation décrit ici, le compteur 100 mémorise envoie les SMS reçus de l'antenne 400 dans la mémoire non volatile de secours 200 dès qu'une des valeurs SMS_USE ou ALL_USE est supérieure ou égale au seuil 230. Dans le mode de réalisation décrit ici, le seuil 230 est mémorisé 10 dans un registre du même nom de la mémoire non volatile de secours 200. Dans un mode de réalisation de l'invention, le dispositif de contrôle 100 interroge le contrôleur de mémoire 350 pour obtenir les informations d'usage de la mémoire non volatile 360 avant chaque 15 demande d'écriture dans cette mémoire. En pratique, il n'est pas nécessaire de le faire à chaque fois, dans la mesure où les zones d'une mémoire non volatile peuvent typiquement accepter des dizaines de milliers voir un million d'opération d'écriture. 20 Dans un mode de réalisation de l'invention, cette interrogation se fait tous les 100 réceptions de SMS par le dispositif de contrôle 100 et on utilise un compteur 210, mémorisée dans la mémoire non volatile de secours 200, pour compter le nombre total de SMS reçus. Une fois qu'il a été déterminé que la carte était usée, le 25 dispositif de contrôle 100 n'a plus de raison d'interroger le contrôleur de mémoire 350. Ainsi, dans le mode de réalisation décrit ici, le processeur 11 du dispositif de contrôle 100 gère un drapeau (ou valeur booléenne) 240 indiquant si la mémoire non volatile réinscriptible 360 est usée (240 = 30 VRAI) ou pas (240 = FAUX), cette variable étant mémorisée dans la mémoire non volatile de secours 200. Dans l'exemple de réalisation décrit ici, le contrôleur de véhicule 100 comporte un processeur 11, une mémoire vive de type RAM 12, une mémoire morte 13, des moyens 14 de réception des données reçues par 35 l'antenne 400 et des moyens 15 de communication, via un bus B, avec le contrôleur de mémoire 350 et avec la mémoire de secours 200. La mémoire morte 13 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 11, sur lequel est enregistré un programme d'ordinateur PG conforme à l'invention, ce programme comportant des instructions pour l'exécution des étapes d'un procédé de contrôle selon l'invention, les principales étapes S1 à S11 de ce procédé étant représentées sous forme d'organigramme à la figure 2. En référence à la figure 2, nous allons maintenant décrire les principales étapes du procédé de gestion selon l'invention mis en oeuvre par le contrôleur de mémoire 100. On supposera que lors de la personnalisation de la carte, le drapeau 240 représentatif de l'usure de la carte est initialisé à FAUX. Nous supposerons que le dispositif de contrôle 100 reçoit (étape Si) un SMS par l'antenne 400, et qu'il détecte (étape S2) que ce SMS est destiné à la carte à puce 300. Le dispositif de contrôle 100 incrémente alors le compteur 210 (étape S3). Au cours d'un test S4 le dispositif de contrôle 100 vérifie si la mémoire non volatile 360 est usée par lecture du drapeau 240. Si le drapeau 240 est égal à VRAI, cela signifie que la mémoire non volatile 360 est usée et le dispositif de contrôle 100 mémorise (étape S5) le SMS dans la mémoire de secours 200. Dans ce cas, tous les SMS subséquents destinés à la carte 300 seront automatiquement mémorisés dans 200. Si le drapeau 240 est égal à FAUX, le dispositif de contrôle 100 détermine au cours d'un test S6 si plus de 100 SMS destinés à la carte 300 ont été reçus depuis la dernière interrogation du contrôleur de mémoire 350 pour obtenir les informations d'usure de la mémoire non volatile 360. Ce test est effectué en comparant la valeur du compteur 210, modulo 100, avec zéro. Lorsque le résultat du test S6 est égal à VRAI, c'est-à-dire tous les cents SMS reçus, le dispositif de contrôle 100 envoie (étape S7) au contrôleur de mémoire 350 deux requêtes RQ pour obtenir d'une part l'information ALL_USE d'usure générale de la mémoire non volatile 360 et d'autre part l'information SMS_USE d'usure de la zone de cette mémoire 360 où sont stockés les SMS. Le contrôleur de mémoire 350 reçoit les requêtes RQ, et obtient les informations d'usure ALL_USE, SMS_USE demandées par lecture du registre 370. Le contrôleur de mémoire 350 répond au dispositif de contrôle 100 l'envoi d'une réponse AN par comportant les informations d'usure. Cette réponse est reçue par le dispositif de contrôle au cours d'une étape S8. Le dispositif de contrôle 100 effectue ensuite un test S9 de comparaison de chacune des informations d'usure ALL_USE, SMS_USE avec le seuil 230. Si au moins une des valeurs d'usure ALL_USE, SMS_USE est supérieure au seuil 230, on considère qu'il ne fait plus écrire de SMS dans la mémoire non volatile 360 et le dispositif de contrôle 100 positionne la valeur du drapeau 240 à VRAI et exécute l'étape S5 déjà décrite pour mémoriser le SMS dans la mémoire de secours 200. Si les deux informations d'usure ALL USE et SMS_USE sont inférieures au seuil 230, le dispositif de contrôle 100 considère que la mémoire non volatile 360 n'est pas usée et il transmet (étape S10) le SMS (ou un pointeur vers ce SMS) au contrôleur de mémoire 350 pour mémorisation dans la mémoire non volatile 360. Une fois l'opération d'écriture faite, le contrôleur de mémoire met à jour les informations d'usure. Lorsqu'il est déterminé au test S6 qu'il n'est pas nécessaire de tester l'usage de la mémoire non volatile réinscriptible (ce test ne se faisant ici que tous les 100 SMS reçus), le dispositif de contrôle 100 exécute l'étape S5 déjà décrite pour mémoriser le SMS dans la mémoire de secours 200. REVENDICATIONS1. Dispositif de contrôle (100) comportant des moyens pour interroger un contrôleur (350) d'une mémoire non volatile réinscriptible (360) et pour obtenir au moins une information (ALL_USE, SMS_USE) d'usure d'au moins une zone de ladite mémoire (360). 2. Dispositif de contrôle selon la revendication 1, caractérisé en ce qu'il comporte des moyens pour autoriser ou bloquer une commande d'écriture de données dans ladite mémoire (360) en fonction de ladite au moins une information (ALL_USE, SMS_USE). 3. Dispositif de contrôle selon la revendication 1 ou 2, caractérisé en ce qu'il comporte des moyens d'envoi d'une requête (RQ) audit contrôleur (350) comportant une adresse logique (� Table-SMS �) de ladite zone. 4. Dispositif de contrôle selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comporte des moyens pour mémoriser des données destinées à ladite mémoire (360) dans une mémoire non volatile de secours (200). 5. Dispositif de contrôle selon l'une quelconque des revendications 1 à 4, caractérisé en ce que ladite au moins une information d'usure d'une zone est une information représentative de la durée de vie restante de cette zone. 6. Système (100, 350) de gestion d'une mémoire non volatile réinscriptible (360) comportant : - un contrôleur (350) de ladite mémoire (360) apte à obtenir au moins une information (ALL_USE, SMS_USE) d'usure d'au moins une zone de ladite mémoire (360) ; et - un dispositif de contrôle (100) selon l'une quelconque des revendications 1 à 3, externe audit contrôleur de mémoire (350).35 7. Système selon la revendication 6, caractérisé en ce que ledit contrôleur de mémoire (350) comporte des moyens de répartition des accès à ladite mémoire. 8. Procédé de contrôle pouvant être mis en oeuvre par un dispositif de contrôle (100) externe à un contrôleur (350) d'une mémoire non volatile réinscriptible (360) et comportant : - une étape (S7) d'envoi d'une requête audit contrôleur (350) ; et - une étape (S9) d'obtention d'au moins une information (ALL_USE, 10 SMS_USE) d'usure d'au moins une zone de ladite mémoire (360). 9. Procédé de contrôle selon la revendication 8, caractérisé en ce qu'il comporte au moins une étape (S4, S10) pour autoriser ou bloquer une commande d'écriture de données dans ladite mémoire (360) en 15 fonction de ladite au moins une information (ALL_USE, SMS_USE). 10. Procédé de contrôle selon la revendication 8 ou 9, caractérisé en ce que ladite requête (RQ) comporte une adresse logique (� Table-SMS �) de ladite zone. 11. Procédé de contrôle selon l'une quelconque des revendications 8 à 10, caractérisé en ce qu'il comporte une étape (S5) pour mémoriser des données destinées à ladite mémoire (360) dans une mémoire non volatile de secours (200). 12. Support d'enregistrement (13) lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur (PG) comprenant des instructions pour l'exécution des étapes du procédé de contrôle selon l'une quelconque des revendications 8 à 10. 30 13. Contrôleur (350) de mémoire non volatile réinscriptible (360) comportant : - des moyens (351) de réception d'une requête (RQ) pour obtenir au moins une information (ALL-USE, SMS-USE) d'usure d'au moins 35 une zone de ladite mémoire (360); 20 25- des moyens (352) d'obtention de ladite au moins une information ; et - des moyens (351) de communication de ladite au moins une information (ALL-USE, SMS-USE) en réponse à ladite requête (RQ). 14 Contrôleur (350) selon la revendication 13, caractérisé en ce qu'il comporte des moyens de réception d'une requête (RQ) comportant une adresse logique (� Table-SMS �) de ladite zone. 10 15. Contrôleur (350) selon la revendication 13 ou 14, caractérisé en ce que ladite au moins une information d'usure d'une zone est une information représentative de la durée de vie restante de cette zone.5