Brevet FR3051574A1 (20171124)
REVENDICATIONS1. Procédé de gestion d'une mémoire flash (2), dans lequel : les données (A) à stocker sont organisées en blocs logiques (Bi) ; la mémoire est divisée en pages (Pl) ; chaque page est divisée en trames (Fj), chaque trame pouvant contenir au moins un bloc (DBj) de données et au moins deux mots de métadonnées de trame (EMDj) ; chaque page comporte au moins un mot de métadonnées de 10 page (PMD) qui contient, lorsqu'une page est écrite, une valeur d'un compteur (PWN) de nombre de pages écrites ; une écriture d'un bloc logique dans la mémoire s'accompagne d'une programmation d'un premier mot de métadonnées de trame (EMDj(2)) avec un identifiant (i) de ce bloc logique ; 15 et la page dans laquelle procéder à l'écriture est choisie comme étant celle dont le premier mot de métadonnées contient la valeur maximum du compteur de pages écrites parmi toutes les pages. 20\n<CLM>\1\tProcédé selon la revendication 1, dans lequel les trames (Fj) sont écrites séquentiellement dans une page (Pl).\n<CLM>\1\tProcédé selon la revendication 2, dans lequel le premier mot de métadonnées de trame (EMDj(2)) contient également une valeur représentative d'un code de contrôle d'erreur calculé 25 au moins à partir du bloc de données (DBj) de la trame.\n<CLM>\1\tProcédé selon la revendication 3, dans lequel lors de l'écriture d'une trame (Fj), un deuxième mot de métadonnées de trame (FMDj (1)) est écrit en premier avec une valeur, indépendante du contenu de la donnée à écrire et qui est toujours la même pour 30 une trame donnée.\n<CLM>\1\tProcédé selon la revendication 4, dans lequel ledit deuxième mot de métadonnées (EMDj(1)) a une valeur fixe pour toutes les trames (Fj) de la mémoire (2). 3051574 B15054 - 15-ZV2-0813 23\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 5, dans lequel ledit premier mot de métadonnées de page (PMD1(5)) est écrit avant écriture d'une première trame (Fj) dans la page (Pl). 5\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 6, dans lequel une lecture d'un bloc de données logique comporte les étapes de : rechercher la dernière trame (Fj) écrite dont l'identifiant de bloc (i) correspond à celui du bloc logique ; vérifier que l'écriture des données dans cette dernière trame respecte un code de contrôle d'erreur (CRC) et, si ce n'est pas le cas, rechercher la précédente trame écrite dont l'identifiant de bloc correspond à celui du bloc de données logique jusqu'à avoir parcouru toutes les pages.\n<CLM>\1\tProcédé selon l'une quelconque des revendications 1 à 7, dans lequel un circuit de gestion de la mémoire effectue, à chaque démarrage, une vérification d'atomicité de la dernière trame écrite (Fj).\n<CLM>\1\tProcédé selon la revendication 8, dans lequel en cas 20 de défaut d'atomicité, toutes les trames valides de la page courante (P1) sont transférées dans une page disponible (Pr) et la page courante est effacée.\n<CLM>\1\tProcédé selon la revendication 9, dans lequel ladite page disponible est une page dédiée (Pr). 25\n<CLM>\1\tMémoire flash (2), programmée conformément au procédé selon l'une quelconque des revendications 1 à\n<CLM>\1\t12. Circuit électronique (1) comportant une mémoire flash (2) conforme à la revendication 11.