Brevet FR2898421A1 — publié le 20070914

PROCÉDÉ D'EXPLOITATION ET DE GESTION DE LA MÉMOIRE LIBRE DANS UNE MÉMOIRE NON-VOLATILE RÉINSCRIPTIBLE, ET MÉMOIRE ASSOCIÉE La présente invention se rapporte au domaine des mémoires non-volatiles réinscriptibles, telles que des mémoires EPROM (mémoire morte reprogrammable), EEPROM (mémoire morte effaçable et programmable électriquement) ou flash. Elle a plus particulièrement pour objet un procédé de gestion d'une telle mémoire non-volatile réinscriptible stockant des données de plusieurs natures pour exploiter au mieux l'espace mémoire libre. On connaît des procédés de gestion de mémoires flash pour la récupération d'espace mémoire. Les mémoires flash sont organisées en blocs mémoires effaçables, eux-mêmes structurés en secteurs mémoire. Seuls les blocs mémoires peuvent être réinitialisés ou effacés. Les secteurs mémoire sont soit libres ou inutilisés si aucune donnée n'a été enregistrée, soit utilisés lorsque les données enregistrées dans le secteur sont exploitées, soit périmés lorsque les données enregistrées dans le secteur ne sont plus exploitées et plus accessibles par des programmes informatiques. Le procédé décrit par le brevet US 6 621 746 propose une gestion de la mémoire flash dans laquelle des blocs mémoires sont réinitialisés ou effacés lorsque le nombre de secteurs mémoire périmés est supérieur au nombre de secteurs mémoire libres ou lorsque ces secteurs mémoire périmés présentent un espace mémoire inférieur à celui nécessaire pour l'écriture de données. De même, le procédé décrit par le brevet US 5 337 275 repose sur le listage des secteurs périmés, l'évaluation du nombre de secteurs libres puis la transmission de signaux d'avertissement à un équipement hôte lorsque ce nombre de secteurs libres descend sous certains seuils critiques. En réponse à ces signaux, l'équipement hôte commande la réinitialisation de blocs comprenant des secteurs périmés listés. Ces solutions s'attachent à la récupération des secteurs périmés selon des critères relativement courants, en l'occurrence lorsque ces secteurs périmés représentent un espace mémoire important. On comprend que les secteurs périmés ont un statut particulier puisqu'ils correspondent à des données qui cessent d'être exploitées, c'est-à-dire qu'elles peuvent être effacées sans aucun contrôle puisque inutiles. Ces procédés de l'art antérieur n'apportent pas de solutions pour la gestion de données exploitées selon deux modes. Un but de la présente invention est donc d'offrir une gestion efficace de la mémoire dans laquelle on enregistre des données exploitées selon plusieurs modes. On connaît cependant, par la demande de brevet PCT WO 02/084610, un procédé de gestion de données stockées dans une mémoire non-volatile réinscriptible et destinées à être gérées selon deux modes. Le stockage et l'exploitation de ces données sont fonction d'une identification fournie pour chacune d'entre elles. L'exploitation des données repose sur le postulat qu'une partie des données, dites données d'administration, ont une durée d'utilité. Ainsi lorsque la fin d'utilité de ces données est détectée, le système peut autoriser leur effacement. Il convient de noter que cette solution se rapproche des deux solutions évoquées précédemment en ce que les données en fin d'utilité sont assimilables à des données périmées. Ainsi cette solution n'est pas appropriée pour la gestion et l'exploitation de données qui ne disposent pas nécessairement d'une durée d'utilité. Un autre but de la présente invention est donc de permettre la gestion de mémoires non volatiles réinscriptibles pour l'exploitation de données de divers types n'ayant pas nécessairement une fin d'utilité. Un autre but de la présente invention est de rendre cette gestion dynamique, automatique, et transparente à l'utilisateur. Par ailleurs, un espace non négligeable de ces mémoires reste généralement non exploité à un instant donné. En vue d'applications commerciales, par exemple, il peut être opportun d'exploiter cet espace tant qu'il n'est pas requis pour des données d'un utilisateur. Un autre but de la présente invention est alors de fournir une solution pour l'optimisation de l'utilisation de la mémoire en permettant de stocker des données d'un premier type, par exemple de la publicité, sans altérer le fonctionnement, pour l'utilisateur, de la mémoire quant à l'enregistrement et l'exploitation de données de l'utilisateur, et de libérer ces données de publicité lorsque l'espace mémoire est requis. L'invention vise à répondre à au moins un de ces buts et à résoudre les inconvénients de l'art antérieur. Notamment, l'invention permet d'utiliser l'espace libre des mémoires en y enregistrant des données non personnelles, dites données de publicité (par exemple, des pages Web préchargées, de la publicité, des applications de type jeu, des informations ou annonces, des extraits de film ou musique, ...) et d'assurer une gestion de ces données qui peuvent perdurer dans le temps, au fur et à mesure que des données dites personnelles, c'est-à-dire générées par l'utilisateur lors du fonctionnement du système informatique, sont manipulées (écrites, lues, effacées, ...) dans cette mémoire. Dans une telle configuration, l'invention permet de gérer dynamiquement ces données de publicité d'une façon transparente pour l'utilisateur et d'éviter tout conflit avec le système informatique pour la manipulation des données personnelles et des données de publicité. Une application de la présente invention est de maximiser l'utilisation de tous les secteurs mémoire libres de la mémoire d'un dispositif personnel portatif tel qu'une clé USB (bus série universel), une carte SIM (module d'identification de l'abonné) ou une carte MMC pour téléphone portable (carte multimédia) pour la diffusion de données de publicité aux utilisateurs tout en permettant l'utilisation classique de ces mémoires. Ces dernières peuvent être remplies de données de publicité jusqu'à ce que ne subsiste qu'une portion négligeable de secteurs libres (par exemple l'espace mémoire libre est inférieur à une valeur seuil). À cet effet, l'invention a tout d'abord pour objet un procédé de gestion d'une mémoire non-volatile réinscriptible comprenant une pluralité de secteurs de données effaçables, le procédé comprenant : û une étape d'initialisation consistant à enregistrer des données d'un premier type dans au moins une partie des secteurs libres de la mémoire et à affecter un état EPuB à chacun desdits secteurs utilisés, et û une étape ultérieure d'écriture de données d'un second type dans la mémoire consistant, si les secteurs libres de la mémoire présentent un espace inférieur à une valeur seuil, à enregistrer lesdites données du second type sur une partie desdits secteurs associés à un état EPuB, et à modifier l'état de ces secteurs. Les données de publicité non générées par l'utilisateur sont enregistrées dans les secteurs libres de la mémoire afin de tirer profit de ces derniers plutôt que de ne pas les exploiter. Afin d'identifier par la suite ces secteurs maintenant occupés par des données de publicité, on les a affectés d'un état EPuB. L'exploitation classique de la mémoire par l'utilisateur requiert l'enregistrement de données dans cette mémoire, par exemple la copie d'un fichier, la sauvegarde de paramètres, l'inscription de registres pour une application utilisée par l'utilisateur... De prime abord, ces données personnelles peuvent être enregistrées sur l'espace libre de la mémoire, afin de conserver un maximum de données. Néanmoins, on note que l'enregistrement des données de publicité peut avoir pour vocation d'exploiter une grande partie de l'espace libre de la mémoire et que l'espace libre peut être inférieur à une valeur seuil, par exemple à l'espace requis pour enregistrer les données personnelles. Il convient alors d'enregistrer les données personnelles du second type en écrasant une partie de celles de publicité. Les secteurs mémoire écrasés ne contiennent désormais plus de données de publicité. À cet égard, l'état EPuB qui leur avait été affecté est retiré : le système ne détecte dorénavant que des données personnelles dans ces secteurs. Par symétrie, l'absence d'état EPuB peut être considérée comme l'affectation d'un état EPuB aux secteurs de données personnelles. Puisque l'affectation et le retrait de l'état EPuB aux secteurs mémoire a lieu lors de la manipulation binaire des données, il apparaît opportun de réaliser un marquage binaire de cet état. Ainsi, lesdits secteurs de données effaçables de la mémoire comprennent un en-tête comportant au moins un bit BPuB, ladite affectation de l'état EPuB à un secteur consiste à mettre ledit bit BPuB à une valeur VPUB prédéfinie, et ladite modification de l'état d'un secteur consiste à inverser ou modifier la valeur dudit bit. Le changement d'état EPuB est ainsi aisément réalisé lors des phases d'enregistrement des données de publicité d'une part, et des données personnelles d'autre part. Par ailleurs, l'accès à ces bits BPuB pour chaque secteur de la mémoire peut être coûteux en termes de temps de traitement pour un système informatique gérant la mémoire. La manipulation de fichiers par ces systèmes apparaît cependant plus aisée. Ainsi, ladite affectation de l'état EPuB à un secteur comprend l'enregistrement de données d'identification dudit secteur dans une table TPuB, et ladite modification de l'état du secteur comprend le retrait desdites données d'identification de ladite table. Cette table peut être initialisée à la mise sous-tension de la mémoire et peut constituer un complément au marquage binaire BPuB des secteurs mémoire. Cette table comprend, par exemple, les numéros de secteurs virtuels, les adresses physiques des secteurs comprenant des données de publicité du premier type ou des pointeurs vers ces secteurs. Par ailleurs, les secteurs mémoire sont de dimension déterminée, par exemple 512 octets. Les contenus numériques dépassent généralement cette taille et leur enregistrement est alors réalisé sur un ensemble de secteurs mémoire non nécessairement contigus. Lorsque des données de publicité (données du premier type) sont enregistrées sur plusieurs secteurs et qu'au moins l'un d'entre eux est écrasé pour l'enregistrement de données personnelles, l'ensemble du contenu numérique n'est plus exploitable. Il convient alors de libérer les autres secteurs non écrasés et liés au même contenu numérique. Dans ce but, plusieurs secteurs stockant des données du premier type sont liés à un même contenu numérique constitué de ces données stockées et le procédé comprend, lors de ladite étape ultérieure d'écriture, la modification de l'état des secteurs liés auxdits secteurs associés à un état EPuB qui sont écrasés. On entend, ici, par liés des secteurs de mémoire dont les données contenues ne sont exploitables qu'ensemble. Par exemple, un fichier image d'une taille supérieure à la taille d'un secteur est enregistré sur plusieurs secteurs liés, et on modifie l'état EPuB de préférence de tous les secteurs du fichier image lorsque l'un d'entre eux est écrasé. L'utilisation de systèmes de fichiers permet notamment de tenir à jour une table référençant ces dépendances de plusieurs secteurs mémoire à un même fichier numérique. Le dispositif comprenant la mémoire dispose de moyens pour déterminer la liste des secteurs mémoire liés, c'est-à-dire composant un même fichier de contenu numérique. Il peut alors apparaître opportun, lors de l'étape ultérieure d'écriture de données du second type, de constituer ladite partie desdits secteurs associés à un état EPuB, c'est-à-dire la partie des secteurs qui vont être écrasés, par des secteurs mémoire liés appartenant à un même contenu numérique ou à un minimum de contenus numériques. On altère ainsi un minimum de contenus numériques et minimise la perte de données exploitables. Le fonctionnement classique d'une mémoire fait intervenir des commandes d'accès aux données, par exemple une commande WRITE d'écriture, une commande READ de lecture, une commande ERASE d'effacement, ... Ces commandes permettent la manipulation des données personnelles de l'utilisateur et agissent sur les secteurs mémoire identifiés comme ayant des données en exploitation. Pour ne pas modifier le fonctionnement de la mémoire quant aux données personnelles, un deuxième jeu de commandes (par exemple WRITEPuB pour l'écriture de données en affectant l'état EPuB au secteur modifié, READPuB pour lire les secteurs à l'état EPuB, ERASEPuB, ...) peut être prévu pour la manipulation des données de publicité, les secteurs associés à ces dernières n'étant pas identifiés par les commandes classiques comme de simples données personnelles en exploitation. À cet effet, les étapes d'enregistrement des données du premier type font appel à des commandes différentes de celles utilisées pour l'enregistrement des données du second type, ces commandes différentes affectant automatiquement l'état EPuB aux données écrites. Les commandes classiques modifient, quant à elles, l'état EPuB lorsqu'elles s'appliquent à des secteurs de données de publicité afin de retirer l'affectation EPuB aux secteurs nouvellement écrits avec des données personnelles. Dans une variante selon laquelle on souhaite conserver le même jeu de commandes classiques pour la manipulation aussi bien des données de publicité (du premier type) et des données personnelles (du second type), il peut être prévu que : - un dispositif comprenant ladite mémoire comprend des commandes de manipulation des données et présente au moins deux états de fonctionnement, un premier état dans lequel lesdites commandes affectent automatiquement l'état EPuB aux données manipulées et un second état dans lequel lesdites commandes désactivent ou n'affectent pas l'état EPuB des données manipulées, - et, préalablement à l'enregistrement des données du premier type, le procédé comprend une étape de changement d'état du dispositif comprenant la mémoire dans ledit premier état et, préalablement à l'enregistrement des données du second type, une étape ultérieure de changement de l'état du dispositif comprenant la mémoire dans ledit second état. Ce changement d'état est piloté par le système informatique auquel est relié le dispositif comprenant la mémoire. Généralement, l'affectation ou la désaffectation de l'état EPuB n'est pas réalisée par une commande en elle-même mais c'est l'appel à cette commande qui conditionne la modification d'état. Par ailleurs, il peut être intéressant de privilégier certaines données de publicité par rapport à d'autres afin de conserver les premières plus longtemps. Ainsi, lors de l'enregistrement des données du premier type, un paramètre de priorité, par exemple un champ binaire dans l'en-tête des secteurs, est associé auxdits secteurs utilisés, et le procédé comprend une étape de sélection de ladite partie des secteurs associés à un état EPuB pour l'enregistrement des données du second type, en fonction desdits paramètres de priorité des secteurs. Une gestion plus efficace de la mémoire est ainsi obtenue puisque les secteurs liés à un même contenu ont le même paramètre de priorité et sont donc écrasés sensiblement au même moment, réduisant ainsi le nombre de contenus numériques partiellement écrasés et inexploitables. L'invention a également pour objet un dispositif de mémoire non-volatile réinscriptible comprenant une pluralité de secteurs de données effaçables, dispositif dans lequel une partie desdits secteurs est initialisée par l'enregistrement de données d'un premier type et chacun de ces secteurs utilisés est affecté à un état EPuB, et le dispositif comprend des moyens agencés pour enregistrer des données d'un second type dans au moins une partie desdits secteurs utilisés affectés à un état EPuB lorsque les secteurs libres de la mémoire présentent un espace inférieur à une valeur seuil et, pour modifier l'état des secteurs de ladite partie. On prévoit également que plusieurs secteurs stockant des données du premier type sont liés à un même contenu numérique constitué de ces données stockées et que lesdits moyens agencés pour modifier l'état des secteurs de ladite partie sont aptes à modifier l'état des secteurs liés aux secteurs de ladite partie, c'est-à-dire liés aux secteurs écrasés. Selon deux modes de réalisation pouvant être combinés : - lesdits secteurs de données effaçables de la mémoire comprennent un en-tête comportant un bit BPuB, ledit bit BPuB prenant une valeur VPUB pour un secteur à l'état EPuB et une autre valeur pour un autre état, par exemple une valeur inverse VPUB si on a deux états EPuB et EPuB . - lesdits moyens aptes à modifier l'état des secteurs comprennent une table TPuB dans laquelle sont enregistrées des données d'identification des secteurs de mémoire dans l'état EPuB et sont retirées les données d'identification des secteurs qui ne sont plus dans l'état EPuB. Dans un mode de réalisation pour l'exploitation efficace de la mémoire, lesdits moyens aptes à modifier l'état des secteurs comprennent : û un microcontrôleur de mémoire connecté à ladite mémoire et apte à piloter ladite mémoire pour les opérations de manipulation de données ; et û un processeur applicatif agencé pour accéder à ladite mémoire et audit microcontrôleur et, apte à mémoriser ladite table TPuB. Soit le processeur applicatif est connecté physiquement à la mémoire (pour manipuler les données de publicité) et au microcontrôleur (pour recevoir ou émettre des requêtes concernant les données de publicité), soit le processeur applicatif est connecté physiquement au microcontrôleur et accède à la mémoire via le microcontrôleur. Le microcontrôleur de mémoire est un microcontrôleur classique pour la gestion de la mémoire comme il en existe un grand nombre dans l'état de l'art : il reçoit des commandes d'accès aux données, les traduit, accède à la mémoire et retourne les données accédées. Celui-ci dispose de commandes classiques d'accès aux données en mémoire et constitue l'interface entre la mémoire non volatile et un dispositif hôte désirant accéder à ces données, par exemple un ordinateur personnel auquel est relié le dispositif comprenant la mémoire. Pour sa part, le processeur applicatif exécute un microprogramme pour la gestion des données personnelles marquées de l'état EPuB. Il mémorise les secteurs de publicité par l'intermédiaire de la table TPuB puis réalise les opérations de gestion de ces données lorsque des requêtes d'accès sont émises ou pour enregistrer de nouvelles données de publicité dans des secteurs mémoire laissés libres. Éventuellement, le microprocesseur de mémoire et le processeur applicatif peuvent être mis en oeuvre par un même processeur physique offrant les deux fonctionnalités précédemment décrites. D'une façon générale, les moyens agencés pour enregistrer les données et modifier l'état des secteurs peuvent être mis en oeuvre par un unique processeur, par exemple un processeur de carte à puce. Le processeur applicatif peut également être mis en oeuvre par un processeur de carte à puce indépendamment du microcontrôleur. L'utilisation d'un processeur de carte à puce est avantageuse en ce qu'elle permet d'intégrer des mécanismes de sécurisation d'accès et de traitement des données enregistrées dans la mémoire. Par ailleurs, comme évoqué précédemment, lesdits moyens aptes à modifier l'état des secteurs peuvent comprendre deux jeux de commandes, un premier pour la manipulation des données du premier type affectant ledit état EPuB aux données manipulées, et un deuxième jeu pour la manipulation des données du second type sans affecter ledit état EPuB aux données manipulées. Selon les configurations souhaitées, les deux jeux de commandes peuvent être disponibles par le microcontrôleur uniquement, ou bien le jeu de commandes classiques est accessible par le microcontrôleur et le jeu de commandes affectant les données de publicité (du premier type) est géré par le processeur applicatif. Également, dans le cas où la mémoire présente au moins deux états de fonctionnement, lesdits moyens aptes à modifier l'état des secteurs comprennent : ù un microcontrôleur de mémoire connecté à ladite mémoire et disposant de commandes aptes à manipuler les données dans la mémoire, ù des moyens de modification de l'état du microcontrôleur entre deux états, un premier état dans lequel lesdites commandes affectent automatiquement l'état EPuB aux données manipulées et un second état dans lequel lesdites commandes désactivent ou n'affectent pas l'état EPuB des données manipulées. Dans un mode de réalisation dans lequel les données de publicité sont priorisées pour offrir une gestion plus efficace de la mémoire et de ces données, les secteurs comprenant des données du premier type comprennent, en outre, des données de priorité, et ledit dispositif est agencé pour sélectionner ladite partie de secteurs utilisés affectés à l'état EPuB en fonction desdites données de priorité des secteurs. Selon différentes réalisations, l'invention a pour objet : - une clé USB comprenant un dispositif précédemment décrit et une interface de bus entre ladite mémoire et un équipement externe ; - une carte à puce comprenant un dispositif identique, le processeur applicatif étant un module de carte à puce et l'interfaçage entre la carte et l'équipement hôte étant réalisé par un lecteur à contacts ou par communication sans fil ( on the air -OTA) ; - une mémoire du type SDCard (Secure Digital Card) ou MMC (Multimedia Card û carte multimédia). L'invention a également pour objet un système comprenant un dispositif mémoire précédemment décrit et connecté à un dispositif hôte au moyen d'un protocole de communication, et d'un microcontrôleur de mémoire, ledit dispositif hôte comprenant un système de fichiers pour la gestion desdites données du second type et étant apte à manipuler lesdites données du second type par l'utilisation dudit système de fichiers au travers de commandes usuelles dudit microcontrôleur de mémoire ; et ledit dispositif hôte étant apte à émettre au dispositif mémoire une commande différente desdites commandes usuelles pour accéder aux données du premier type. Dans les solutions de l'art antérieur, le dispositif hôte dispose d'un système de fichiers, par exemple une FAT (table d'allocation de fichier), référençant les différents fichiers numériques enregistrés en mémoire sous forme de listage des secteurs mémoire utilisés. Lorsque le dispositif hôte accède à des données personnelles, il détermine les secteurs mémoire associés par la FAT puis envoie au microcontrôleur de mémoire des commandes d'accès aux données. Dans l'invention, le dispositif hôte peut conserver le même mécanisme d'accès aux données personnelles. En revanche, lorsqu'il souhaite accéder à des données de publicité, par exemple pour le visionnage d'une bande annonce de film, il émet une requête différente qui nécessite l'interprétation du microcontrôleur (ou du processeur applicatif lorsque celui-ci existe). Le microcontrôleur peut, par exemple, router une requête du type FTP (protocole de transfert de fichiers), HTTP (Hypertext Transfer Protocol û protocole de transfert hypertexte), NFS (Network File System - système de fichiers en réseau) ou SMB (Server Message Block) /CIFS (Common Internet File System) au processeur applicatif, ce dernier jouant le rôle d'un serveur de fichiers pour l'accès aux données de publicité dans la mémoire soit pour tout protocole applicatif d'accès à un ensemble de fichiers. La commande différente précédemment évoquée peut être, selon le mode de réalisation choisi, une commande spécifique dédiée à la manipulation des données du premier type, une requête au microcontrôleur û plus précisément le processeur applicatif û pour récupérer des données du premier type, une commande de bascule du microcontrôleur dans un état dans lequel il peut manipuler les données du premier type avec les commandes usuelles. En conservant le mode d'accès traditionnel aux données personnelles, l'invention permet de minimiser les impacts sur l'environnement logiciel embarqué du dispositif hôte. Par ailleurs, il convient d'exploiter et d'utiliser au mieux l'espace libre offert par la mémoire non-volatile réinscriptible. Deux approches éventuellement complémentaires peuvent être utilisées. D'une part, ledit dispositif mémoire est agencé pour émettre, lorsque des secteurs de ladite mémoire sont libres, des requêtes à un serveur distant pour l'obtention de données du premier type et pour enregistrer lesdites données reçues dans lesdits secteurs libres. Dans cette approche dite pull (tirer), le dispositif mémoire va chercher lui-même des nouvelles données de publicité sur un serveur distant afin d'exploiter des secteurs mémoire laissés libres. Le dispositif mémoire est informé par un événement adéquat d'une opération d'effacement de données personnelles en mémoire. À détection de cet événement, une comparaison est faite entre l'espace des secteurs libres et un certain seuil prédéfini, et une requête de contenus de publicité est émise selon le résultat de cette comparaison (généralement si espace des secteurs libres seuil prédéfini). D'autre part, l'approche dite push (pousser) requiert que ledit dispositif mémoire est agencé pour vérifier, lorsqu'il est sollicité par un serveur distant, l'espace formé par les secteurs libres de ladite mémoire et pour enregistrer des données du premier type fournies par ledit serveur si celles-ci occupent un espace mémoire inférieur à une valeur seuil, par exemple l'espace mémoire des secteurs libres. Dans cette approche, la sollicitation par le serveur distant peut être périodique. Pour l'utilisation du système, l'invention a également pour objet un procédé d'exploitation d'une mémoire non volatile dans ce système, le procédé comprenant : ù une étape de requête de lecture de données du premier type par ledit dispositif hôte ; ù une étape d'interprétation de ladite requête par le dispositif mémoire ; ù une étape d'identification, par ledit dispositif mémoire, des secteurs de mémoire associés auxdites données du premier type concernées par ladite requête ; ù une étape de lecture, par ledit dispositif mémoire, desdits secteurs identifiés ; ù une étape de transmission, depuis ledit dispositif mémoire à destination dudit dispositif hôte, des données de premier type contenues dans lesdits secteurs identifiés lus. Soit l'identification de tous les secteurs est effectuée avant l'accès en lecture de la mémoire (cas d'un protocole applicatif, par exemple s'aidant de la table TPuB), soit l'accès à la mémoire est réalisé secteur par secteur par les commandes spécifiques, et à chacun de ces secteurs est appliquée l'étape d'identification puis l'étape de lecture si l'identification est positive. Ce procédé se cumule aux procédés classiques de lecture de données dans une mémoire non volatile réinscriptible que l'on applique pour la lecture des données personnelles ou données du second type. Le procédé ainsi décrit permet la consultation en lecture des données de publicité par le dispositif hôte, par exemple pour la visualisation d'une publicité, d'un extrait musical, . Comme précisé plus avant, le dispositif hôte émet une requête nécessitant une interprétation par le microcontrôleur : le microcontrôleur ou le processeur applicatif associé peut être un serveur traduisant la requête HTTP en commandes d'accès à la mémoire, un serveur de fichierstraduisant également la requête FTP en commandes similaires, des requêtes NFS, SMB (CIFS), ou d'autres protocoles d'accès à des fichiers...DTD: L'identification des secteurs mémoire concernés par la lecture des données de publicité est réalisée par la détection des secteurs à l'état EPuB par l'utilisation du bit BPuB et/ou de la table TPuB. Des commandes spécifiques ou un changement d'état du microcontrôleur permettent alors d'accéder à ces données, puis de les retourner au dispositif hôte source de la requête initiale. Dans un mode de réalisation relatif à l'accès des données du second type (données personnelles) par le dispositif hôte, le procédé comprend, en outre, une étape d'accès à des données du second type par ledit dispositif hôte, cette étape consistant à déterminer par ledit système de fichiers les secteurs de mémoire contenant lesdites données de second type souhaitées et à accéder auxdits secteurs mémoires par l'intermédiaire dudit micro contrôleur. L'invention sera mieux comprise à l'aide de la description détaillée ci-dessous et des figures annexées dans lesquelles : - la figure 1 représente un exemple d'architecture de système pour la mise en oeuvre de la présente invention ; - la figure 2 illustre un exemple de mise en oeuvre de l'invention au niveau des secteurs mémoire ; et - la figure 3 est un chronogramme d'un exemple d'échanges de données selon l'invention. En référence à la figure 1, un dispositif portable 10 tel qu'une clé USB, une carte MMC, un disque dur, est constitué de : • une mémoire non volatile 14 ; • un contrôleur de mémoire non volatile 13 connecté à la mémoire ; ^ un processeur applicatif 12 connecté au contrôleur de mémoire. Éventuellement, le processeur applicatif peut être directement connecté à la mémoire 14. Le système de l'invention comprend un dispositif hôte 11 (ordinateur personnel PC, téléphone portable, etc.) auquel est connecté, via une connexion 15 de protocole à haute vitesse (high speed) telle que USB, le dispositif portable mémoire 10. Selon les applications recherchées, on peut prévoir que l'on connecte à un ordinateur personnel 11 une carte 10 équipée d'une mémoire de grande capacité 14 et d'un processeur de carte à puce 12 pour des applications de stockage, d'échange sécurisés de données. Le processeur de carte à puce présente alors un connecteur physique séparé (à contacts ou sans contact) et/ou un protocole de communication bas niveau spécifique. Une application sécurisée peut être l'identification des personnes. Le contrôleur de mémoire gère la mémoire non volatile en la divisant en deux parties : une partie contenant des données classiques d'utilisateur (fichiers de travail, annuaire téléphonique _ phone book_ pour une application en téléphonie mobile, ...) et une partie contenant des données promotionnelles. La distinction entre les deux types de données est réalisée un niveau de chaque bloc ou secteur mémoire à l'aide d'un bit supplémentaire dans l'entête de bloc. Dans l'exemple de la figure 2, un champ 20 d'un secteur mémoire 30 comprend un premier bit 22 pour indiquer si les données contenues 21 sont promotionnelles ou non (valeur 1 Si les données sont promotionnelles) et un second bit 23, connu de l'art antérieur, pour indiquer si le secteur de données est libre (valeur 1 ) ou utilisé (valeur 0 ). Les secteurs constituant les deux parties ne sont pas nécessairement contigus. Lorsque plusieurs secteurs sont utilisés pour stocker les données d'un même contenu numérique, ils ne sont également pas nécessairement contigus. Des mécanismes traditionnels, par exemple ceux utilisés pour accéder aux données d'une clé USB mémoire traditionnelle, sont utilisés pour gérer les données de l'utilisateur et notamment permettre leur accès au dispositif hôte 11. Lorsque le dispositif portable 10 est connecté au dispositif hôte 11, ce dernier établit une table d'allocation de fichiers (FAT ù File Allocation Table) puis la maintient à jour en fonction des opérations effectuées. Cette table permet de lister l'ensemble des secteurs de données personnelles d'utilisateur (champ 20 ayant la valeur 00 ) et de lier les secteurs appartenant à un même contenu numérique (par exemple un même fichier). En fonctionnement, lorsque le dispositif hôte souhaite accéder à un fichier numérique, il détermine grâce à cette table FAT l'ensemble des secteurs mémoires utiles puis y accède via le microcontrôleur 13. Les secteurs non renseignés dans cette table (secteurs libres et secteurs promotionnels) sont vus pas le dispositif hôte comme étant libres et donc utilisables à tout moment pour le stockage de données personnelles. Les blocs marqués comme contenant du contenu promotionnel sont pris en compte dans le calcul de la quantité de mémoire disponible et apparaissent comme libre du point de vue de l'hôte. La partie de la mémoire contenant le contenu promotionnel est gérée entièrement par le processeur applicatif selon une méthode qui peut être classique ou propriétaire, ce qui importe peu, car le dispositif hôte n'y accède pas directement. Le processeur applicatif exécute un programme applicatif qui remplit deux fonctions : - d'une part, des fonctions de gestion de la mémoire non volatile quant aux données promotionnelles en envoyant des commandes de manipulation (écriture, lecture, effacement, .) par l'intermédiaire du microcontrôleur, - d'autre part, des fonctions d'intermédiaire entre le dispositif hôte et les données promotionnelles en mémoire, en mettant en oeuvre des fonctionnalités de serveur par exemple de fichiers. Au même titre que la table FAT utilisée par le dispositif hôte, le processeur applicatif peut tenir à jour une table TPuB équivalente référençant les secteurs mémoires contenant des données de publicité. On remplit initialement la mémoire 14 de contenus promotionnels, en enregistrant les données de publicités dans les secteurs mémoires. Plusieurs contenus promotionnels sont enregistrés jusqu'à ce que l'espace occupé par les secteurs libres (champ 20 ayant l a valeur 1 1 ou 01) soit inférieur à une valeur seuil. On peut effectivement souhaiter conserver un minimum (par exemple 5 ou 10%) de la mémoire comme entièrement libre (c'est le cas généralement pour les mémoires flash dans lesquels il est nécessaire de garder des secteurs libres pour procéder aux opérations d'initialisation et de déplacement de secteurs mémoire)...DTD: On peut également prévoir que les contenus numériques sont hiérarchisés du plus important au moins important. On enregistre les données numériques des contenus les plus importants en premier. On arrête l'initialisation de la mémoire lorsque l'espace nécessaire à l'enregistrement du prochain contenu numérique est supérieur à l'espace encore disponible soit dans la mémoire soit pour atteindre la valeur seuil précédente. Les secteurs de mémoire sont également pourvus d'un champ binaire renseignant un poids (représentatif de la hiérarchie des contenus). Comme aucune donnée personnelles n'est enregistrée sur la mémoire, le dispositif hôte voit la mémoire comme entièrement vide. Le dispositif hôte 11 accède aux données promotionnelles en communiquant avec le serveur de fichiers du processeur applicatif selon le protocole HTTP. Les requêtes HTTP sont transportées dans des paquets IP (protocole Internet) transmis sur la connexion 15. La figure 3 illustre ces échanges : ^ étape 1 : l'hôte 11 émet, par une application cliente, une requête HTTP sur un contenu promotionnel, par exemple : HTTP GET Clip.avi ; • étape 2 : cette requête est routée, par le contrôleur de mémoire 13, vers le processeur applicatif 12 ; • étape 3 : la requête HTTP est décodée par le serveur de fichiers du processeur applicatif qui localise les blocs correspondant dans la mémoire non volatile, par exemple à l'aide de la table TPuB. Une fois les secteurs mémoires identifiés, le processeur application fait les demandes de lecture associées au contrôleur de mémoire ; • étape 4 : le contrôleur de mémoire 13 transmet les demandes de lecture à la mémoire non volatile 14. Si nécessaire, le contrôleur traduit les demandes provenant du processeur applicatif en des commandes de lecture/écriture/effacement adéquates pour accéder aux données en mémoire ; • étape 5 : les commandes de lecture restituent au contrôleur de mémoire les données souhaitées, lesquelles sont routées vers le processeur applicatif (étape 6) ; ^ étape 7 et 8 : le processeur applicatif formate une réponse avec les données lues qui ont été demandées par l'hôte, par exemple la réponse HTTP HTTP 200 0K suivie des données lues, si tout s'est bien déroulé. Puis il transmet cette réponse au client du dispositif hôte via le contrôleur de mémoire. La mémoire 14 sert également de moyen de stockage des données de l'utilisateur. Le dispositif hôte demande à écrire des données personnelles d'utilisateur dans la mémoire par les mécanismes traditionnels. Lorsque l'espace libre est insuffisant (intrinsèquement ou par rapport à une valeur seuil de secteurs libres à conserver), la présente invention prévoit d'effacer des données promotionnelles. Recevant la demande d'écriture du dispositif hôte, le contrôleur de mémoire émet une requête au processeur applicatif précisant l'espace souhaité : espace des données personnelles à écrire moins éventuellement des secteurs libres disponibles (par exemple des secteurs contenant des données qui ne sont plus exploitées). Le processeur applicatif sélectionne les secteurs mémoire affectés des poids minimum (contenus numériques les moins importants). Grâce à la table TPuB, le processeur applicatif sélectionne de préférence les secteurs liés à un même contenu afin d'altérer le minimum de contenus numériques. Il communique ces secteurs au contrôleur de mémoire. En référence à la figure 2b, pour chaque secteur ainsi sélectionné, le bit du champ 20 renseignant le caractère promotionnel des données est mis à 0 . Les secteurs ne sont désormais plus des secteurs promotionnels mais de contenu personnel. Ensuite les données personnelles sont enregistrées dans ces secteurs par des commandes classiques d'écriture en mémoire. Ainsi l'écriture de données personnelles a supprimé un ou plusieurs contenu(s) numérique(s) promotionnel(s). Cependant, tous les secteurs mémoires qui étaient dédiés à un contenu promotionnel ainsi supprimé n'ont pas nécessairement été utilisés ou sélectionnés par le processeur applicatif. Puisque les données de ces secteurs non sélectionnés ne sont plus exploitables, le processeur applicatif émet également une demande de libération de ces secteurs, par exemple en modifiant le bit du champ 20 renseignant le caractère promotionnel des données à la valeur 0 et en modifiant un bit 24 de validité des données (connu de l'art antérieur) à une valeur 0 (données obsolètes). Ces secteurs peuvent également être marqués comme étant libres (champ 20 prend la valeur 01 ). À réception de la confirmation d'écriture, le dispositif hôte met à 25 jour sa table FAT. On pourra également, de préférence à l'utilisation des poids, sélectionner les secteurs à écraser (à libérer) de sorte à minimiser les secteurs perdus (c'est-à-dire les secteurs de données libérés et non écrasés). Le processeur applicatif 30 détermine alors un ensemble de contenus numériques (parfois réduit à un seul) dont l'espace mémoire dédié est sensiblement égal (en tous les cas supérieur ou égal), ou le plus proche possible, à l'espace requis pour les données personnelles à enregistrer. 35 Lorsque le dispositif hôte demande l'effacement de données en mémoire, des secteurs libres sont désormais disponibles pour accueillir de nouvelles données promotionnelles. Dans un mode de remplissage pull , l'effacement de données en mémoire par le contrôleur de mémoire génère un événement à destination du processeur applicatif. Ce dernier peut déterminer l'espace mémoire désormais libre (si l'événement ne le lui indique pas) et émettre une requête HTTP à un serveur distant de contenus promotionnels accessible (directement ou via le dispositif hôte) par un réseau de communication. En réponse à cette requête, le serveur retourne des contenus promotionnels correspondant à l'espace libre utilisable. Dans un mode de remplissage push , le serveur distant précédent émet une requête HTTP à destination du processeur applicatif. Par cette requête, le processeur applicatif détermine l'espace libre disponible dans la mémoire 14 pour la sauvegarde éventuelle de nouvelles données promotionnelles. Le processeur applicatif enregistre alors les contenus promotionnels que lui fournit le serveur distant. REVENDICATIONS 1. Procédé de gestion d'une mémoire non-volatile réinscriptible comprenant une pluralité de secteurs de données effaçables, le procédé étant caractérisé en ce qu'il comprend : û une étape d'initialisation consistant à enregistrer des données d'un premier type dans au moins une partie des secteurs libres de la mémoire et à affecter un état EPuB à chacun desdits secteurs utilisés, et û une étape ultérieure d'écriture de données d'un second type dans la mémoire consistant, si les secteurs libres de la mémoire présentent un espace inférieur à une valeur seuil, à enregistrer lesdites données du second type sur une partie desdits secteurs associés à un état EPuB, et à modifier l'état de ces secteurs. 2. Procédé de gestion d'une mémoire selon la revendication 1, caractérisé en ce que lesdits secteurs de données effaçables de la mémoire comprennent un en-tête comportant au moins un bit BPuB, ladite affectation de l'état EPuB à un secteur consiste à mettre ledit bit BPuB à une valeur VPuB prédéfinie, et ladite modification de l'état d'un secteur consiste à inverser la valeur dudit bit. 3. Procédé de gestion d'une mémoire selon la revendication 1 ou 2, caractérisé en ce que ladite affectation de l'état EPuB à un secteur comprend l'enregistrement de données d'identification dudit secteur dans une table TPuB, et ladite modification de l'état du secteur comprend le retrait desdites données d'identification de ladite table. 4. Procédé de gestion d'une mémoire selon l'une quelconque des revendications précédentes, caractérisé en ce que plusieurs secteurs stockant des données du premier type sontliés à un même contenu numérique constitué de ces données stockées et en ce qu'il comprend, lors de ladite étape ultérieure d'écriture, la modification de l'état des secteurs liés auxdits secteurs associés à un état EPuB qui sont écrasés. 5. Procédé de gestion d'une mémoire selon la revendication précédente, caractérisé en ce que, lors de l'étape ultérieure d'écriture de données du second type, ladite partie desdits secteurs associés à un état EPuB est constituée par des secteurs mémoire liés. 6. Procédé de gestion d'une mémoire selon l'une quelconque des revendications précédentes, caractérisé en ce que les étapes d'enregistrement des données du premier type font appel à des commandes différentes de celles utilisées pour l'enregistrement des données du second type, ces commandes différentes affectant automatiquement l'état EPuB aux données écrites. 7. Procédé de gestion d'une mémoire selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'un dispositif comprenant ladite mémoire comprend des commandes de manipulation des données et présente au moins deux états de fonctionnement, un premier état dans lequel lesdites commandes affectent automatique l'état EPuB aux données manipulées et un second état dans lequel lesdites commandes désactivent ou n'affectent pas l'état EPuB des données manipulées, et en ce qu'il comprend, préalablement à l'enregistrement des données du premier type, une étape de changement d'état du dispositif comprenant la mémoire dans ledit premier état et, préalablement à l'enregistrement des données du second type, une étape ultérieure de changement de l'état du dispositif comprenant la mémoire dans ledit second état. 8. Procédé de gestion d'une mémoire selon l'une quelconque des revendications précédentes, caractérisé en ce que, lors de l'enregistrement des données du premier type, un paramètre de priorité est associé auxdits secteurs utilisés, et en ce qu'il comprend une étape de sélection de ladite partie des secteurs associés à un état EPuB, pour l'enregistrement des données du second type, en fonction desdits paramètres de priorité des secteurs. 9. Dispositif de mémoire non-volatile réinscriptible comprenant une pluralité de secteurs de données effaçables, caractérisé en ce qu'une partie desdits secteurs est initialisée par l'enregistrement de données d'un premier type et chacun de ces secteurs utilisés est affecté à un état EPuB, et en ce qu'il comprend des moyens agencés pour enregistrer des données d'un second type dans au moins une partie desdits secteurs utilisés affectés à un état EPuB lorsque les secteurs libres de la mémoire présentent un espace inférieur à une valeur seuil et, pour modifier l'état des secteurs de ladite partie. 10. Dispositif selon la revendication précédente, caractérisé en ce que plusieurs secteurs stockant des données du premier type sont liés à un même contenu numérique constitué de ces données stockées et lesdits moyens agencés pour modifier l'état des secteurs de ladite partie sont aptes à modifier l'état des secteurs liés aux secteurs de ladite partie. 11. Dispositif selon la revendication 9 ou 10, caractérisé en ce que lesdits secteurs de données effaçables de la mémoire comprennent un en-tête comportant un bit BPuB, ledit bit BPuB prenant une valeur VPUB pour un secteur à l'état EPuB et une autre valeur pour un autre état. 12. Dispositif selon l'une des revendications 9 à 11, caractérisé en ce que lesdits moyens aptes à modifier l'état des secteurs comprennent une table TPuB dans laquelle sont enregistrées des données d'identification des secteurs de mémoire dans l'état EPuB et sont retirées les données d'identification des secteurs qui ne sont plus dans l'état EPuB. 13. Dispositif selon la revendication 12, caractérisé en ce que lesdits moyens aptes à modifier l'état des secteurs 10 comprennent : ù un microcontrôleur de mémoire connecté à ladite mémoire et apte à piloter ladite mémoire pour les opérations de manipulation de données ; et ù un processeur applicatif agencé pour accéder à ladite mémoire 15 et audit microcontrôleur et, apte à mémoriser ladite table TPuB. 16. Dispositif selon l'une quelconque des revendications 9 à 13, caractérisé en ce que lesdits moyens agencés pour enregistrer les données et modifier l'état des secteurs sont mis en 20 oeuvre par un unique processeur. 17. Dispositif selon l'une quelconque des revendications 9 à 14, caractérisé en ce que lesdits moyens aptes à modifier l'état des secteurs comprennent deux jeux de commandes, un premier 25 pour la manipulation des données du premier type affectant ledit état EPuB aux données manipulées, et un deuxième jeu pour la manipulation des données du second type sans affecter ledit état EPuB aux données manipulées. 30 16. Dispositif selon l'une quelconque des revendications 9 à 14, caractérisé en ce que lesdits moyens aptes à modifier l'état des secteurs comprennent :ù un microcontrôleur de mémoire connecté à ladite mémoire et disposant de commandes aptes à manipuler les données dans la mémoire, ù des moyens de modification de l'état du microcontrôleur entre deux états, un premier état dans lequel lesdites commandes affectent automatiquement l'état EPuB aux données manipulées et un second état dans lequel lesdites commandes désactivent ou n'affectent pas l'état EPuB des données manipulées. 17. Dispositif selon l'une quelconque des revendications 9 à 16, caractérisé en ce que les secteurs comprenant des données du premier type comprennent, en outre, des données de priorité, et en ce que ledit dispositif est agencé pour sélectionner ladite partie de secteurs utilisés affectés à l'état EPuB en fonction desdites données de priorité des secteurs. 18. Dispositif selon l'une quelconque des revendications 9 à 17, caractérisé en ce que lesdits moyens agencés pour enregistrer les données et modifier l'état des secteurs sont mis en oeuvre par un processeur de carte à puce. 19. Clé USB comprenant un dispositif selon l'une quelconque des revendications 9 à 18 et une interface de bus entre ladite mémoire et un équipement externe. 20. Système comprenant un dispositif mémoire selon l'une quelconque des revendications 9 à 18 connecté à un dispositif hôte au moyen d'un protocole de communication et d'un microcontrôleur de mémoire, ledit dispositif hôte comprenant un système de fichiers pour la gestion desdites données du second type et étant apte à manipuler lesdites données du second type par l'utilisation dudit système de fichiers au travers de commandes usuelles dudit microcontrôleur de mémoire ; et leditdispositif hôte étant apte à émettre au dispositif mémoire une commande différente desdites commandes usuelles pour accéder aux données du premier type. 21. Système selon la revendication 20, caractérisé en ce que ledit dispositif mémoire est agencé pour émettre, lorsque des secteurs de ladite mémoire sont libres, des requêtes à un serveur distant pour l'obtention de données du premier type et pour enregistrer lesdites données reçues dans lesdits secteurs libres. 22. Système selon la revendication 20 ou 21, caractérisé en ce que ledit dispositif mémoire est agencé pour vérifier, lorsqu'il est sollicité par un serveur distant, l'espace formé par les secteurs libres de ladite mémoire et pour enregistrer des données du premier type fournies par ledit serveur si celles-ci occupent un espace mémoire inférieur à une valeur seuil. 23. Procédé d'exploitation d'une mémoire non volatile dans un système selon l'une quelconque des revendications 20 à 22, caractérisé en ce qu'il comprend : û une étape de requête de lecture de données du premier type par ledit dispositif hôte ; û une étape d'interprétation de ladite requête par le dispositif mémoire ; û une étape d'identification, par ledit dispositif mémoire, des secteurs de mémoire associés auxdites données du premier type concernées par ladite requête ; û une étape de lecture, par ledit dispositif mémoire, desdits secteurs identifiés ; û une étape de transmission, depuis ledit dispositif mémoire à destination dudit dispositif hôte, des données de premier type contenues dans lesdits secteurs identifiés lus.24. Procédé selon la revendication 23, caractérisé en ce qu'il comprend, en outre, une étape d'accès à des données du second type par ledit dispositif hôte, cette étape consistant à déterminer par ledit système de fichiers les secteurs de mémoire contenant lesdites données de second type souhaitées et à accéder auxdits secteurs mémoires par l'intermédiaire dudit micro contrôleur.