FR 2671223 A1 19920703 FR 9116233 A 19911227 La présente invention concerne le domaine de l'architecture de systèmes de mémorisation pour ordinateurs Plus particulièrement, la présente inven- tion concerne des systèmes de mémorisation à fichiers pour une mémoire semiconductrice rémanente effaçable par grands blocs. Certains types d'ordinateurs personnels connus comprennent un microprocesseur ( également appelé une unité centrale de traitement) qui est relié à plusieurs types de systèmes de mémorisation notamment une mémoire morte ("ROM"), une mémoire vive ou à accès sélectif ("RAM"), une unité à disque dur ( c'est-à-dire fixé) pour une mémorisation de masse, et une ou plusieurs unités à disques souples pour une mémorisation sur des disques souples magnétiques amovibles Les disques souples sont également appelés des disquettes Ces ordinateurs personnels connus ont typiquement une archi- tecture qui est spécialement adaptée aux systèmes de mémorisation qui font partie de chacun de ces ordinateurs personnels connus. Une mémoire ROM associée à un programme appelé un moniteur ROM mémorisé dans la mémoire ROM est appelée un micrologiciel ( pour traduire le mot anglais "firmware"). Un module d'un système d'entrée/sortie de base ROM ("BIOS") est un type de moniteur ROM qui est mémorisé dans la mémoire ROM et qui est utilisé par le système d'exploitation pour certains ordinateurs personnels. Le module ROM BIOS contient typiquement ( 1) des pilotes pour certains matériels, notamment le clavier à touches, les unités à disques et l'imprimante; ( 2) un programme d'autocontrâle de mise sous tension ("POST"); ( 3) un sous-programme d'enclenchement qui initialise le système; et ( 4) un programme de chargement qui lit le secteur initial ou premier secteur sur une disquette ou un35 disque dur. Après que l'ordinateur personnel a été enclen- ché, le programme POST du module BIOS est exécuté, le sous-programme d'enclenchement de BIOS effectue certai- nes initialisations et le programme de chargement lit les contenus du secteur initial sur une disquette ou sur un disque dur Ce secteur initial contient un program- me de chargement du système d'exploitation de l'ordina- teur Ce programme de chargement du système d'exploita- tion charge à son tour une partie du système d'exploita- tion d'une disquette ou d'un disque dur dans une mémoire RAM. Le système d'exploitation de l'ordinateur personnel traite des ordres, l'exécution de programmes de commandes et il contrôle les ressources matérielles et logicielles de l'ordinateur Un type de système d'exploitation de l'art antérieur est le système MS-DOS vendu par "Microsoft Corporation ", Redmond, Washington. Le système d'exploitation MS-DOS contient le programme de chargement défini ci-dessus, le module MS-DOS BIOS, un noyau MS-DOS, une interface d'utilisateur et des programmes utilitaires. Le module MS-DOS BIOS contient ( 1) de nouveaux pilotes qui étendent et utilisent des composants des pilotes du module ROM BIOS; ( 2) un sousprogramme d'initialisation pour les pilotes de MS-DOS BIOS et ( 3) un autre programme de chargement. Les nouveaux pilotes de MS-DOS BIOS sont également appelés des extensions de BIOS ou des exten- sions de BIOS ROM Dans certains ordinateurs personnels de l'art antérieur, toutes les fonctions d'entrée et de sortie sont commandées par un logiciel contenu dans une section à 32 kilooctets ou 64 kilooctets de la mémoire ROM et par de petites extensions (typiquement de 2 kilooctets) de BIOS ROM. Le sous-programme d'initialisation des pilotes de MS-DOS BIOS affiche une mention d'interdiction de copiage et ajuste la table d'interruption pour les nouveaux pilotes. Le programme de chargement du module MS-DOS BICS charge le reste du système d'exploitation. Le noyau MS-DOS est un élément situé entre le module BIOS et le programme d'application Le noyau MS-DOS enclenche l'exécution de programmes d'application, alloue une mémoire pour les programmes d'application, il établit une interface entre le programme d'application et le matériel et il effectue la gestion de la lecture et de l'écriture des fichiers. L'interface d'utilisateur du module MS-DOS fournit une information à l'utilisateur L'interface d'utilisateur contient une directive qui signale à l'utilisateur comment introduire des ordres L'interface d'utilisateur agit comme le gestionnaire du système quand le système d'exploitation est en service commandé. Les programmes utilitaires de MS-DOS contiennent certaines fonctions utiles pour MS-DOS Ces fonctions comportent ( 1) une mise au format d'une disquette ou d'un disque dur et ( 2) une vérification d'une disquette ou d'un disque dur. Le disque dur et les disquettes utilisés avec l'ordinateur personnel mentionné ci-dessus sont des systèmes de mémorisation rémanente, ce qui signifie qu'une donnée n'est pas perdue lorsque le courant fourni à l'ordinateur est coupé Le disque dur et les disquet- tes sont des types de dispositifs de mémorisation par blocs, ce qui signifie que les données sont transférées jusqu'à et à partir de ces dispositifs sous forme de blocs. Dans le disque dur et dans les disquettes, des données sont mémorisées physiquement sur des pistes concentriques Chaque piste est constituée d'une plura- lité de secteurs Un secteur a une longueur typiquement fixée à 512 octets Un contrôleur de disques et un pilote physique de dispositif d'un ordinateur personnel effectuent toujours typiquement une lecture et une écriture en passant de disques à des secteurs. Une grappe est la plus petite unité de mémori- sation logiquement adressable Pour certains disques durs, il est prévu quatre secteurs par grappe Pour certains autres disques durs et pour une disquette de 3,5 pouces de grande densité, une grappe est un seul secteur. Chaque zone divisée en partitions dans un disque dur forme un soussystème logique qui peut contenir son propre système d'exploitation Une table de parti- tions située dans le premier secteur d'un disque dur mis au format contient des informations concernant les partitions. Un disque dur et une disquette sont mis à un format, ou formatés, avant leur utilisation initiale. Un formatage de bas niveau divise chaque piste en sec- teurs et place des en-têtes d'identification ("ID") de secteurs dans des positions uniformes dans la piste. Un formatage de haut niveau établit les grappes, initia- lise certaines zones d'un disque et prépare le disque pour une réception de données. Dans le pilote de dispositif et au niveau du BIOS, des demandes de disques sont définies par un élément de "spécification' qui indique l'unité, la tête, le cylindre ou la piste, le secteur et la longueur Les numéros de secteurs logiques sont connus au niveau du DOS et au niveau du BIOS Le DOS effectue une lecture et une écriture sur des disques en opérant par grappes. La Figure 1 montre l'organisation logique d'un système d'exploitation MS-DOS de l'art antérieur. Pour le système d'exploitation MS-DOS, un disque 2 est divisé en deux zones logiques: une zone de système 4 et une zone de données 9 La zone de système contient un enregistrement initial 3, une table d'allocation de fichiers ("FA Ts") 5, un répertoire de départ 7 qui contient les entrées de répertoire de départ La zone de données 9 contient des fichiers qui sont utilisés pour mémoriser des programmes d'application, des données et des informations concernant des répertoires auxiliai- res. L'enregistrement initial 3 contient un program- me de chargement d'une séquence initiale, oud'amorçage dans le système d'exploitation L'enregistrement initial 3 contient également une information concernant la désignation ASCII du formatage de DOS, le nombre d'octets par secteur du disque, le nombre de secteurs par grappe, le nombre de secteurs dans l'enregistrement initial, le nombre de copies de la table d'allocation de fichiers, le nombre d'entrées de répertoirede départ, le nombre de secteurs par partition, le nombre de types de disques, le nombre de secteurs par entrée (ou grappe) de la table d'allocation de fichiers, le nombre de secteurs par piste, le nombre de faces par disque, le nombre de secteurs réservés ou masqués, le nombre d'unités physiques, un indicatif de secteur initial étendu, une identification de volume, et une table de volume. Le répertoire de départ 7 est une table d'entrées de 32 octets qui définissent chacune certains attributs du fichier Typiquement, chaque entrée du répertoire constituant le répertoire de départ 7 comporte une désignation de fichier, une extension de fichier, des indicateurs d'attributs, des indications de temps et de date pour le fichier, le numéro de grappe de départ pour les grappes constituant le fichier, et la taille du fichier. Chaque fichier se trouvant sur le disque est constitué d'une ou plusieurs grappes La table d'allocation de fichiers contient un enregistrement se présentant sous la forme d'une chaîne définissant comment les grappes constituant le fichier sont liées ensemble Un FAT 5 typique contient une liste d'entrées de deux octets, une pour chaque grappe Pour certains FAT de l'art antérieur, les entrées du FAT ont une longueur supérieure à deux octets La longueur de chaque entrée de FAT dépend du nombre total de grappes L'entrée de répertoire pour un fichier contient le numéro de la grappe de départ du fichier et le système d'exploita- tion utilise ce numéro de grappe de départ pour accéder à la table d'allocation de fichiers Chaque entrée de FAT est un pointeur sur la grappe suivante du fichier. En conséquence, l'entrée de FAT extraite par ce premier accès contient le numérode la grappe suivante constituant le fichier Le système d'exploitation utilise ce numéro de la grappe suivante pour accéder au FAT afin d'extrai- re un autre numéro de grappe et il poursuit ce processus jusqu'à ce qu'un repère spécial dans FAT 5 soit atteint. La structure des fichiers sur le disque est ramifiée Des entrées dans le répertoire principal peuvent être des pointeurs sur des sous- programmes Les sous-programmes peuvent être emboîtés. Un inconvénient affectant l'utilisation de disques durs et de disquettes dans certains types d'or- dinateurs personnels consiste en ce que des unités à disques durs et des unités à disques souples consti- tuent des dispositifs qui sont physiquement relativement grands et qui comportent un certain nombre de composants mécaniques Ces grands dimensionnements contrastent avec les petites dimensions des circuits intégrés qui constituent de nombreuses autres parties d'un ordinateur personnel En outre, les dimensions relativement grandes des unités à disques durs et des unités à disques souples de l'art antérieur empêchent des ordinateurs personnels portables d'être réduits en dimensions et de devenir mieux portables. Un autre inconvénient affectant des unités à disques durs et des unités à disques souples de l'art antérieur consiste en ce qu'elles consomment une quantité de courant relativement grandes par comparaison aux circuits intégrés constituant d'autres parties de l'ordi- nateur personnel. Encore un autre inconvénient affectant les unités à disques durs et les unités à disques souples de l'art antérieur consiste en ce qu'elles sont sujettes à des pannes lorsqu'elles sont soumises à des chocs et vibrations excessifs ou bien à la poussière et à d'autres contaminants atmosphériques. Un autre type de mémoire rémanente d'ordinateur de l'art antérieur est la mémoire morte programmable et à effaçage électrique global (flash), qui sera désignée dans la suite par "EEPROM flash" La mémoire "EEPROM flash" peut être programmée par l'utilisateur et, une fois programmée, cette mémoire conserve ses données jusqu'à effacement Un effacement électrique de la mémoire "EEPROM flash" efface tout le contenu de la mémoire du dispositif dans une opération relativement rapide La mémoire EEPROM flash peut alors être program- mée avec un nouveau code. Un inconvénient d'un type de mémoire EEPROM flash de l'art antérieur consiste cependant en ce que chaque cellule d'un seul bit ne peut pas faire l'objet d'une superposition d'écriture pour passer d'un zéro logique à un un logique sans un effacement antérieur. Un autre inconvénient d'un type connu de mémoire EEPROM flash consiste en ce qu'elle doit être effacée c'est- à dire ramenée à un état un logique dans de grands blocs ou d'une manière qui efface tout le dispositif. Un autre inconvénient d'un type connu de mémoire EEPROM flash consiste en ce qu'il existe une limite finie au nombre de cycles d'effacement et d'écritu- re de la mémoire EEPROM flash avant qu'elle tombe en panne. Les limitations concernant la superposition d'écriture et l'effacement d'une certaine mémoire EEPROM flash de l'art antérieur ont limité, dans certains cas, les possibilités d'utilisation de ces mémoires dans des ordinateurs personnels. Un des objets de la présente invention est de créer une structure de fichiers pour une mémoire semiconductrice rémanente qui est effaçable seulement par blocs et qui ne peut pas faire l'objet d'une superpo- sition d'écriture pour passer d'un premier état logique à un second état logique sans un effacement antérieur. Un autre objet de la présente invention est de créer une structure de fichiers pour une mémoire semiconductrice rémanente qui est effaçable seulement par blocs et qui ne peut pas faire l'objet d'une super- position d'écriture pour passer d'un premier état logique à un second état logique sans un effacement antérieur, cette mémoire semiconductrice rémanente comportant un bloc de réserve qui contribue à augmenter au maximum l'intégrité et la fiabilité de la structure de fichiers. Encore un autre objet de la présente invention consiste à créer un ordinateur qui comprend une mémoire semiconductrice rémanente qui est effaçable seulement par blocs et qui ne peut pas faire l'objet d'une super- position d'écriture pour passer d'un premier état logique à un second état logique sans un effacement antérieur, la mémoire semiconductrice rémanente comprenant un bloc actif, un bloc de réserve et un bloc répertoire. Une mémoire semiconductrice rémanente qui est effaçable seulement par blocs va être décrite Chaque bit de la mémoire semiconductrice rémanente ne peut pas faire l'objet d'une superposition d'écriture pour passer d'un premier état logique à un second état logique sans un effacement antérieur Chaque bit de la mémoire semiconductrice rémanente peut faire l'objet d'une superposition d'écriture pour passer d'un second état logique à un premier état logique sans un efface- ment antérieur La mémoire semiconductrice rémanente comprend un bloc actif pour mémoriser un premier fichier, un bloc de réserve pour mémoriser un second fichier et un bloc de répertoire Le second fichier est une copie du premier fichier La copie est faite pendant une opération de nettoyage avant un effacement du bloc actif Le bloc de répertoire comprend une entrée de répertoire pour identifier le premier fichier. Selon une caractéristique de la mémoire semiconductrice rémanente conforme à l'invention, celle-ci comprend: (A) un bloc actif pour mémoriser un premier fichier; (B) un bloc de réserve pour mémoriser un second fichier, qui est une copie du premier fichier, la copie étant faite pendant une opération de nettoyage avant un effacement du bloc actif; (C) un bloc de répertoire comprenant une entrée de répertoire pour identifier le premier fichier. Selon d'autres caractéristiques de la mémoire semiconductrice rémanente conforme à l'invention: Les blocs actifs et de réserve ont une structure de fichiers de longueur variable. Les blocs actifs et de réserve ont une structure de fichiers à secteurs. Le premier état logique est un zéro logique et le second état logique est un un logique. La mémoire est une mémoire morte programmable à effa- cement électrique global, de type "flash". Le bloc de répertoire comprend en outre: (A) un indicateur pour identifier le bloc de répertoire comme un bloc de répertoire, (B) un enregistrement initial concernant une informa- tion se rapportant à une structure de fichiers de la mémoire semiconductrice (C) une table d'états de blocs pour fournir une informa- tion définissant: ( 1) si le bloc est (i) un bloc actif ou un bloc de réserve; (ii) libre ou en service; et (iii) défectueux ou non défectueux; et ( 2) combien de fois un bloc a été effacé et réécrit. L'information contenue dans l'enregistrement initial comprend: (A) le type de structure de fichiers (B) la capacité de formatage de la structure de fichiers; (C) une adresse de l'entrée de répertoire. La mémoire comporte en outre une en-tête contenant une information comprenant: (A) une capacité non formatée de la mémoire semiconduc- trice; (B) un nombre maximal de cycles d'effacement recommandé pour la mémoire semiconductrice; (C) des tensions d'effacement et d'écriture (D) des ordres d'effacement et d'écriture; (E) des algorithmes d'effacement et d'écriture. L'invention concerne également un système de mémorisation pour un ordinateur, comprenant: (A) une mémoire semiconductrice rémanente qui est effa- çable par blocs, o chaque bit de la mémoire semi- conductrice rémanente ne peut pas faire l'objet d'une superposition d'écriture pour passer d'un premier état logique à un second état logique sans un effacement antérieur, et o chaque bit de la mémoire semiconductrice peut faire l'objet d'une superposition d'écriture pour passer d'un second état logique à un premier état logique sans un effacement antérieur, cette mémoire compre- nant: ( 1) un bloc actif pour mémoriser un premier ensem- ble de fichiers; ( 2) un bloc de réserve pour mémoriser un second ensemble de fichiers, les fichiers du second ensemble étant des copies des fichiers du premier ensemble et ces copies étant faites pendant une opération de nettoyage avant un effacement du bloc actif correspondant; (B) une mémoire pour mémoriser un ensemble d'entrées de répertoires, chaque entrée de répertoire identi- fiant un fichier respectif du premier ensemble de fichiers. Selon d'autres caractéristiques du système de mémorisation pour ordinateur: Les blocs actifs et de réserve ont une structure de fichiers de longueur variable. Les blocs actifs et de réserve ont une structure de fichiers à secteurs. Dans le système de mémorisation (A) la mémoire semiconductrice rémanente est une mémoire morte programmable à effacement électri- que global, de type "flash", (B) le premier état logique est un zéro logique, et (C) le second état logique est un un logique. L'ensemble d'entrées de répertoires comprend une liste enchaînée. L'ensemble d'entrées de répertoires comprend une struc- il ture hiérarchique de répertoires qui est modifiable en octets. La mémoire servant à la mémorisation de l'ensemble d'entrées de répertoiresest une mémoire morte program- mable, électriquement effaçable et modifiable en octets. La mémoire servant à mémoriser un ensemble d'entrées de répertoires est une mémoire à accès sélectif. La mémoire servant à mémoriser un ensemble d'entrées de répertoire 5 comprend en outre: (A) un enregistrement initial contenant une informa- tion concernant une structure de fichiers de la mémoire semiconductrice rémanente; (B) une table d'état 5 de blocs pour fournir une infor- mation définissant si un bloc de la mémoire semiconductrice rémanente est: ( 1) un bloc actif ou un bloc de réserve, ( 2) libre ou en service, et ( 3) défectueux ou non défectueux. La mémoire servant à mémoriser un ensemble d'entrées de répertoirescomprend en outre: (A) un enregistrement initial contenant une information concernant une structure de fichiers de la mémoire semiconductrice rémanente; (B) une table d'états de blocs pour fournir une informa- tion définissant si un bloc de la mémoire semicon- ductrice rémanente est: ( 1) un bloc actif ou un bloc de réserve, ( 2) libre ou en service, et ( 3) défectueux ou non défectueux; et (C) une table d'allocation de fichiers (FAT). L'invention concerne également une mémoire morte programmable, à effacement électrique global, de type "EEPROM flash", comprenant: (A) un bloc actif pour mémoriser un premier ensemble de fichiers (B) un bloc de réserve pour mémoriser un second ensemble de fichiers, les fichiers du second ensemble étant des copies des fichiers du premier ensemble et ces copies étant faites pendant une opération de nettoyage avant un effacement du bloc actif; (C) un bloc de répertoire comprenant: ( 1) un indicateur pour identifier le bloc de réper- toire comme un bloc de répertoire; ( 2) un enregistrement initial contenant une informa- tion concernant la structure de fichiers de la mémoire "EEPROM flash"; ( 3) une table d'états de blocs pour fournir une information définissant si un bloc est (a) un bloc actif ou un bloc de réserve, (b) libre ou en service et (c) défectueux ou non défectueux; ( 4) un ensemble d'entrées de répertoires à liste en- chaînée, o chaque entrée de répertoire identi- fie un fichier respectif faisant partie du premier ensemble de fichiers. Selon d'autres caractéristiques de la mémoire morte "EEPROM flash": L'ensemble d'entrées de répertoires à liste enchaînée comprend un répertoire de départ et au moins un pointeur sur un sous-répertoire mémorisé comme un fichier. Chacune des entrées de l'ensemble de répertoires à liste enchaînée comprend en outre une information contenant: (A) un type d'entrée pour indiquer si l'entrée de répertoire pour un fichier respectif du premier ensemble de fichiers est une entrée de répertoire de départ ou un pointeur sur un sous-répertoire (B) si l'entrée de répertoire est une entrée de répertoire de départ, alors l'entrée de réper- toire contient en outre une information comprenant: ( 1) une désignation du fichier; ( 2) une indication de date et de temps pour le fichier; ( 3) une information de type de fichier qui indique si le fichier comprend un code ou une donnée ( 4) une longueur du fichier ( 5) une adresse du fichier. L'ensemble d'entrées de répertoires à liste enchaînée comprend en outre: (A) au moins un premier pointeur sur une adresse de répertoire parentale; et (B) au moins un second pointeur sur une adresse d'une entrée de répertoire filiale. Dans la mémoire "EEPROM flash ": (A) l'adresse de l'entrée de répertoire parentale poin- tée par le premier pointeur est une première adres- se de décalage à l'intérieur du bloc de répertoire et (B) l'adresse de l'entrée de répertoire filiale pointée par le second pointeur est une seconde adresse de décalage dans le bloc de répertoire. Dans la mémoire "EEPROM flash": (A) l'adresse de l'entrée de répertoire parentale poin- tée par le premier pointeur est une première adresse absolue dans la mémoire "EEPROM flash" et (B) l'adresse de l'entrée de répertoire filiale pointée par le second pointeur est une seconde adresse absolue dans la mémoire "EEPROM flash". L'information contenue dans l'enregistrement initial comprend: (A) le type de structure de fichiers (B) la capacité formatable de la structure de fichiers; (C) une adresse d'une première entrée de répertoire dans l'ensemble d'entrées de répertoires à liste enchaînée. Cette mémoire comporte en outre une en-tête contenant une information comprenant: (A) une capacité non formatée de la mémoire d'ordinateur; (B) un nombre maximal de cycles d'effacement recommandé pour la mémoire d'ordinateur; (C) des tensions d'effacement et d'écriture (D) des ordres d'effacement et d'écriture; (E) des algorithmes d'effacement et d'écriture. L'invention concerne également un ordinateur comprenant: (A) une unité centrale de traitement (CPU) (B) une mémoire semiconductrice rémanente qui est effa- çable par blocs, dans laquelle chaque bit de la mémoire semiconductrice rémanente ne peut pas faire l'objet d'une superposition d'écriture pour passer d'un premier état logique à un second état logique sans un effacement antérieur, et dans laquelle chaque bit de la mémoire semiconductrice rémanente peut faire l'objet d'une superposition d'é- criture pour passer d'un second état logique à un premier état logique sans un effacement antérieur, cette mémoire comprenant: ( 1) un bloc actif pour mémoriser un premier fichier, ( 2) un bloc de réserve pour mémoriser un second fi- chier, qui est une copie du premier fichier, la copie étant faite pendant une opération de nettoyage avant un effacement du bloc actif ( 3) un bloc de répertoire comprenant une entrée de répertoire pour identifier le premier fichier. (C) un moyen de mémorisation pour mémoriser un code de commande de la mémoire semiconductrice rémanente. Dans l'ordinateur conforme à l'invention (A) la mémoire semiconductrice rémanente est une mémoire morte programmable à effacement électri- que global de type flash (EEPROM flash), (B) le premier état logique est un zéro logique, et (C) le second état logique est un un logique. Selon encore d'autres caractéristiques de l'ordinateur conforme à l'invention: le moyen de mémorisation est une mémoire morte. Le moyen de mémorisation est une mémoire à accès sélectif. La mémoire à accès sélectif est une mémoire à accès sélectif pour système universel. La mémoire à accès sélectif est une mémoire tampon. La mémoire semiconductrice rémanente est une mémoire à mappage par pages. La mémoire semiconductrice rémanente est une mémoire à mappage direct. L'ordinateur comprend en outre un contrôleur de partie matérielle pour exécution du code de commande de la mémoire semiconductrice rémanente. Selon encore une autre caractéristique de l'invention, l'ordinateur comprend: (A) une unité centrale de traitement (CPU) (B) une mémoire semiconductrice rémanente qui est effaçable par blocs, dans laquelle chaque bit de la mémoire semiconductrice rémanente ne peut pas faire l'objet d'une superposition d'écriture pour passer d'un premier état logique à un second état logique sans un effacement antérieur, et dans laquelle chaque bit de la mémoire semiconduc- trice rémanente peut faire l'objet d'une superposi- tion d'écriture pour passer d'un second état logique à un premier état logique sans un efface- ment antérieur, comprenant: ( 1) un bloc actif pour mémoriser un premier ensemble de fichiers; ( 2) un bloc de réserve pour mémoriser un second ensemble de fichiers qui sont des copies des fichiers du premier ensemble, ces copies étant faites pendant une opération de nettoya- ge avant un effacement du bloc actif; (C) une mémoire pour mémoriser unensemble d'entrées de répertoire, chaque entrée de répertoire identi- fiant un fichier respectif du premier ensemble; (D) un moyen de mémorisation pour mémoriser un code de commande de la mémoire semiconductrice rémanen- te. D'autres caractéristiques et avantages de l'invention seront mis en évidence dans la suite de * la description, donnée à titre d'exemple non limitatif, en référence aux dessins annexés dans lesquels: La Figure 1 montre l'organisation logique d'un système d'exploitation de l'art antérieur. La Figure 2 représente un système d'ordinateur personnel, comportant un ensemble à effacement global, c'est-à-dire de type "flash", ainsi qu'un pilote de système de fichiers mémorisé dans la mémoire à accès sélectif RAM du système d'ordinateur. La Figure 3 représente un système d'ordinateur personnel qui comprend ( 1) un ensemble de mémoires flash, ( 2) un pilote de système de fichiers contenu dans le logiciel ROM BIOS et l'extension de logiciel ROM BIOS, et ( 3) un tampon de RAM pour transférer des fichiers et pour mettre à jour un répertoire de fichiers. La Figure 4 représente un système d'ordinateur personnel qui comprend ( 1) un ensemble de mémoires flash, ( 2) un pilote de système de fichiers mémorisé dans le ROM BIOS et l'extension de ROM BIOS, et ( 3) un contrôleur de système séparé. La Figure 5 représente un ensemble de mémoires flash à mappage entrée/sortie. La Figure 6 représente une structure d'ensemble de mémoires flash à mappage par pages. La Figure 7 représente une structure d'ensemble de mémoires flash à mappage direct en mémoire. La Figure 8 représente une mémoire "EEPROM flash " ayant une structure de fichiers variable et un répertoire dynamique. La Figure 9 montre l'agencement logique d'un exemple d'un répertoire à liste enchaînée. La Figure 10 montre l'emplacement physique d'un exemple d'un répertoire à liste enchaînée. La Figure 11 représente une mémoire EEPROM flash avec une structure de fichiers variable et une mémoire EEPROM séparée pour mémoriser un répertoire. La Figure 12 représente une mémoire EEPROM flash avec une structure de fichiers variable et une mémoire EEPROM séparée pour mémoriser un répertoire analogue à un disque. La Figure 13 montre deux entrées répertoire/FAT. La Figure 14 représente une mémoire EEPROM flash avec structure de fichiers à secteurs et un réper- toire dynamique. La Figure 15 représente une mémoire EEPROM flash avec une structure de fichiers à secteurs et une mémoire EEPROM séparée pour mémoriser un répertoire. La Figure 16 représente une mémoire EEPROM flash avec une structure de fichiers à secteurs et une mémoire EEPROM séparée pour mémoriser un répertoire analogue à un disque. La Figure 2 représente un système d'ordinateur personnel 10 comportant une structure ou système de fichiers préféré 32 Le système de fichiers 32 comprend une ou plusieurs mémoires EEPROM flash qui forment un ensemble de mémoires flash 34 Une mémoire EEPROM flash est un type de mémoire semiconductrice La structu- re de fichiers 32 comprend également un logiciel 28 de pilote de système de fichiers qui est mémorisé dans la mémoire de système RAM 22 L'ordinateur personnel comporte également une unité centrale de traitement ("CPU") 12 et un bus 18. Comme cela sera décrit de façon plus détaillée dans la suite, l'ensemble de mémoires flash 34 est structuré de façon à permettre une réallocation dynamique de mémoire L'ensemble de mémoires flash 34 a soit une structure de fichiers variable soit une structure de fichiers à secteurs Un répertoire à liste enchaînée ou un répertoire analogue à un disque est utilisé en coopération avec l'ensemble de mémoires flash 34 Le répertoire analogue à un disque est situé dans une mémoire séparée, comme une mémoire EEPROM effaçable par octets Le répertoire à liste enchaînée est situé soit dans la mémoire flash soit dans une mémoire séparée, comme une mémoire EEPROM effaçable par octets. La mémoire de système RAM 22 comprend un espace pour la mémorisation d'un programme d'application 24 Dans une réalisation de la présente invention, la mémoire de système RAM 22 a une capacité d'un méga- octet La mémoire de système RAM 22 comprend également un espace pour la mémorisation d'autres programmes d'application et pour des données Dans une réalisation de la présente invention, la mémoire de système RAM 22 comporte un système d'exploitation 26 pour le système d'ordinateur 10 Dans d'autres réalisations, la mémoire RAM de système 22 comporte en outre deux ou plus de deux systèmes d'exploitation. La mémoire d'exploitation RAM 22 comporte également un logiciel 28 de pilote de système de fichiers. Le logiciel 28 de pilote de système de fichiers définit la structure de fichiers pour l'ensemble de mémoires flash 34 Dans le système d'ordinateur personnel 10, l'unité centrale de traitement 12 exécute les sous-pro- grammes logiciels de tâches prioritaires intervenant dans le logiciel 28 du pilote de système de fichiers de manière à traiter toutes les spécifications de gestion du système de fichiers pour l'ensemble de mémoires flash 34 Le logiciel 28 du pilote de système de fichiers et la structure de fichiers d'un ensemble de mémoires flash seront décrits de façon plus détaillée dans la suite. Non seulement la mémoire RAM 22 doit mémoriser un programme d'application 24, un système d'exploitation 26 et un pilote de fichiers 28 mais le programme d'appli- cation 24, le système d'exploitation 26 et le pilote de fichiers 28 sont également mémorisés dans l'ensemble de mémoires flash 34 pendant les temps o l'ordinateur est soit arrêté soit enclenché L'ensemble de mémoires flash 34 peut mémoriser plus d'un programme d'application, plus d'un système d'exploitation et plus d'un pilote de fichiers L'ensemble de mémoires flash 34 mémorise également des fichiers de données et des informations de répertoires Lors d'une initialisation à chaud ou d'une initialisation à froid, le logiciel 28 du pilote de système de fichiers est chargé dans la mémoire de système RAM 22 à partir de l'ensemble de mémoires flash 34 En bref, l'ensemble de mémoires flash agit comme un dispositif de mémorisation de masse qui remplace un disque dur. Le système d'ordinateur 10 comprend également une mémoire morte ROM 14, qui contient le logiciel BIOS pour l'ordinateur 10 Dans une réalisation de la présente invention, le logiciel BIOS mémorisé dans la mémoire ROM 14 comprend à la fois un BICS de 64 kilooctets avec des extensions additionnelles de BIOS ROM de 2 kilooctets chacune Le logiciel 28 du pilote de système de fichiers est mémorisé avant exécution dans l'ensemble de mémoires flash 34 au lieu de l'être dans la mémoire morte ROM 14. Lors d'une exécution du programme ROM BIOS 14 après la mise sous tension de l'ordinateur 10, le pilote de fichiers 28 et le système d'exploitation 26 sont chargés dans la mémoire de système RAM 22 à partir de l'ensemble de mémoires flash 34 et par l'inter- médiaire du bus 18 L'utilisateur de l'ordinateur 10 emploie alors le système d'exploitation 26 pour charger le programme d'application 24 dans la mémoire RAM 22. L'utilisateur de l'ordinateur 10 peut également charger des données, d'autres programmes d'application et d'autres systèmes d'exploitation dans la mémoire de système 22. Dans une réalisation de la présente invention, l'ensemble de mémoires flash 34 est effacé par blocs, chaque bloc comprenant un grand nombre de bits Dans une autre réalisation, l'ensemble de mémoires flash 34 est effacé dans sa totalité. Des mémoires flash diffèrent de mémoires mortes programmables à effacement électrique convention- nelles ( "EEPROM") en ce qui concerne l'effacement. Des mémoires EEPROM conventionnelles utilisent un transis- tor sélecteur pour une commande d'effacement d'octets individuels Des mémoires flash, d'autre part, permettent d'obtenir une bien plus grande densité avec des cellules à un seul transistor Pendant le mode d'effacement, une haute tension est appliquée simultanément aux sources de toutes les cellules de mémoire dans un bloc ou bien dans l'ensemble de la puce Il en résulte un effacement complet de l'ensemble ou de tous les blocs. Pour l'ensemble de mémoires flash 34, un "un" logique signifie que quelques électrons, s'ils existent, sont emmagasinés sur une grille flottante associée à une cellule de bit Un "zéro" logique signifie que de nombreux électrons sont emmagasinés sur la grille flottante associée à la cellule de bit Après que l'ensem- ble de mémoires flash 34 a été effacé, un un logique est mémorisé dans chaque cellule de bit de l'ensemble de mémoires flash Chaque cellule de bit individuel de l'ensemble de mémoires flash 34 ne peut pas faire l'objet d'une superposition d'écriture pour passer d'un zéro logique à un un logique sans un effacement précédent Chaque cellule de bit individuel de l'ensemble de mémoires flash 34 peut cependant faire l'objet d'une superposition d'écriture d'un un logique à un zéro logique, étant donné que cela consiste simplement à ajouter les électrons à une grille flottante qui contient le nombre intrinsèque d'électrons associés à l'état effacé. L'ensemble de mémoires flash 34 peut être programmé de l'une de trois manières ( 1)un seul bit à la fois, ( 2) un seul mot à la fois, ou ( 3) des groupes de mots à la fois Un mot se compose d'une pluralité de bits de mémoire qui sont associés à une seule adresse du sytème de mémoire ou à un seul dispo- sitif Les groupes de mots programmés à un moment donné peuvent être aussi grands qu'un bloc d'effacement de l'ensemble de mémoires flash 34 Des opérations de programme se déroulant par rapport à des mémoires flash sont également appelées des opérations d'écriture. Comme décrit ci-dessus, chaque bit de l'ensem- ble de mémoires flash 34 ne peut pas faire l'objet d'une superposition d'écriture d'un état de zéro logique à un état d'ununlogique sans un effacement antérieur. Cette obligation d'effacement avant une superposition d'écriture pour passer d'un zéro logique à un un logique introduit une opération fonctionnelle associée à une mémoire flash. L'ensemble de mémoires flash 34 mémorise à la fois un code exécutable et une donnée non exécuta- ble Dans la description détaillée qui va suivre, le terme générique "donnée" est utilisé pour se rapporter soit ( 1) seulement à une donnée non exécutable, soit ( 2) à la fois à un code exécutable et à une donnée non exécutable. L'opération de lecture associée à un ensemble de mémoires flash 34 ressemble étroitement à l'opération de lecture associée à d'autres dispositifs formant mémoire morte Dans une réalisation, une opération de lecture pour l'ensemble de mémoires flash 34 prend un temps de l'ordre de 135 nanosecondes Des opérations d'écriture et d'effacement pour l'ensemble de mémoires flash 34 sont cependant bien plus lentes Dans une réalisation de la présente invention, les temps d'efface- ment pour un bloc de l'ensemble de mémoires flash 34 sont de l'ordre d'une seconde Des opérations d'écriture pour un seul mot de l'ensemble de mémoires flash 34 prennent un temps de l'ordre de 10 microsecondes En conséquence, les opérations de lecture, d'écriture et d'effacement pour l'ensemble de mémoires flash 34 sont d'une nature asymétrique, les opérations d'écriture et d'effacement étant sensiblement plus lentes que les opérations de lecture. En outre, chaque mémoire flash de l'ensemble de mémoires flash 34 a un temps d'endurance fini en ce qui concerne des opérations d'effacement plus écriture ( c'est-à-dire programme) Par exemple, dans une réali- sation, l'ensemble de mémoires flash 34 peut résister à un minimum de 10 000 cycles effacement/programme avant que cet ensemble 34 commence à défaillir ou à donner lieu à une altération des performances d'efface- ment/écriture Ainsi, dans une réalisation de la présente invention, il existe une limite en ce qui concerne le nombre de cycles effacement/écriture que peut subir l'ensemble de mémoires flash 34 D'aute part, il n'existe pas de limite maximale pour le nombre de fois ou l'ensem- ble de mémoires flash 34 peut faire l'objet d'une lectu- re. Dans une réalisation de la présente invention, chaque dispositif de mémorisation flash comprenant un ensemble de mémoires flash comporte de multiples blocs d'effacement à l'intérieur de chaque dispositif de mémorisation Pour cette réalisation, des restrictions sont imposées en ce qui concerne l'itération effacement/ programmation de blocs adjacents Des blocs adjacents sont des blocs qui partagent soit des connexions de rangées communes soit des connexions de colonnes communes. Les restrictions imposées à l'itération de blocs adjacents sont établies pour empêcher des perturbations électriques de données. Un bloc intervenant cycliquement plus fréquem- ment est appelé un bloc chaud Un bloc qui n'intervient pas cycliquement ou qui intervient cycliquement moins fréquemment est appelé un bloc froid Le paramètre important est la différence entre le nombre de cycles qui sont associés respectivement à des blocs adjacents. Un bloc chaud peut finalement atteindre un nombre de cycles qui est tel qu'une donnée soit perturbée dans un bloc froid de l'ensemble de mémoires flash 34 Un moyen pour éviter cette interaction entre blocs chauds et blocs froids consiste à imposer des restrictions de cycles à des blocs chauds de l'ensemble de mémoires flash 34 Un autre moyen pour réduire au minimum les effets perturbateurs d'une interaction entre blocs chauds et blocs froids consiste à effectuer périodiquement un effacement et une reprogrammation des blocs froids de l'ensemble de mémoires flash 34 L'effacement et la reprogrammation périodiques de blocs froids sont appelés la régénération de blocs froids. Comme cela sera décrit de façon plus détaillée dans la suite, les structures de fichiers préférées de la présente invention tiennent compte des caractéris- tiques fonctionnelles précitées des mémoires EEPROM flash constituant l'ensemble de mémoires 34. La Figure 3 représente un système d'ordinateur personnel 40 comportant une structure de fichiers préférée 58 Le système d'ordinateur personnel 40 comprend une unité centrale de traitement 12 et une mémoire morte ROM 42 La mémoire ROM 42 mémorise un logiciel BIOS 43 et un logiciel d'extension BIOS 44 Le système d'ordi- nateur personnel 40 comporte également un bus 48 et une mémoire de système RAM 52 La mémoire de système 52 mémorise le programme d'application 24 et le système d'exploitation 26 Le système d'ordinateur personnel comporte également un tampon RAM 62 et un ensemble de mémoires flash 64. Le tampon RAM 62 effectue une mémorisation -tampon pour un transfert de fichiers entre l'ensemble de mémoires flash 64 et la mémoire de système RAM 52. Le tampon RAM 62 effectue également une mémorisation -tampon pour l'établissement ou la mise à jour d'un répertoire pour les fichiers mémorisés dans l'ensemble de mémoires flash 64. Une ou plusieurs mémoires EEPROM flash consti- tuent l'ensemble de mémoires flash 64 L'ensemble de mémoires 64 contient un programme d'application 24, un système d'exploitation 26, des données, d'autres programmes d'application et d'autres systèmes d'exploita- tion Le système d'exploitation 26, le programme d'ap- plication 24 ainsi que d'autres programmes et des don- nées peuvent être transférés de l'ensemble de mémoires 64 dans la mémoire de système RAM 52 par l'intermédiaire du bus 48. La structure de fichiers 58 comprend l'ensemble de mémoires flash 64, le tampon RAM 62, le logiciel d'extension ROM BIOS 44 et une partie du logiciel ROM BIOS 43. Le logiciel de pilote de système de fichiers qui définit la structure de fichiers pour l'ensemble de mémoires flash 64 fait partie du logiciel ROM BIOS 43 et du logiciel d'extension ROM BIOS 44 dans la mémoire ROM 42 Dans la réalisation représentée sur la Figure 3, le pilote de système de fichiers fait partie du micrologiciel du système d'ordinateur principal 40. Le logiciel BIOS 43 et le logiciel d'extension BIOS 44 sont des blocs de mémoire qui sont soit à mappage direct soit à mappage par pages En conséquence, dans la réalisation représentée sur la Figure 2, le logiciel de pilote de système de fichiers n'est ni mémorisé dans la mémoire de système RAM 52 ni mémorisé dans l'ensemble de mémoires flash 64. La Figure 4 représente un système d'ordinateur personnel 70 comportant encore une autre structure de fichiers préférée 94 Le système d'ordinateur personnel comprend une unité centrale de traitement 12 et une mémoire de système RAM 72 Dans une réalisation préférée, la mémoire de système RAM 72 contient un programme d'application 24 et un système d'exploitation 26 Le système d'ordinateur personnel 70 comporte égale- ment un bus 88 et une mémoire morte ROM 78 La mémoire ROM 78 contient un logiciel BIO 79 et un logiciel d'ex- tension BIOS 80. Le système d'ordinateur personnel 70 comporte également un contrôleur 92 et un ensemble de mémoires flash 96 L'ensemble de mémoires flash 96 est composé de mémoires EEPROM flash L'ensemble de mémoires flash 96 contient un programme d'application 24, un système d'exploitation 26, des données, d'autres programmes d'application et d'autres systèmes d'exploitation, qui peuvent être chargés dans la mémoire de système RAM 72 par l'intermédiaire du bus 88. La structure de fichiers 94 est composée du contrôleur 92, de lzensemble de mémoires flash 96, de l'extension de ROM BIOS 80 et d'une partie de ROM BIOS 79. Le système d'ordinateur personnel 70 représenté sur la Figure 4 comporte pour l'ensemble de mémoires flash 96 une structure de fichiers qui est complètement pilotée par le matériel Le contrôleur 92 est spécifi- quement affecté à une définition et à un contrôle de la structure de fichiers pour l'ensemble de mémoires flash 96 Le contrôleur 92 comprend un microcontrôleur pour une surveillance du contrôle. Le contrôleur 92 comprend également une logique de commande 106 Dans une réalisation préférée de la présente invention, la logique de commande 106 comprend un réseau logique programmable ("PLA") Le circuit logique 106 contient la logique numérique qui commande le fonctionnement du contrôleur 92. Dans une réalisation, le contrôleur 92 comprend une mémoire morte ROM 98 qui mémorise le logiciel de pilote de système de fichiers Le logiciel de pilote de système de fichiers est exécutable par le microcontrô- leur 100 et il définit la structure de fichiers pour l'ensemble de mémoires flash 96. Dans une autre réalisation, le logiciel de pilote de système de fichiers qui est exécutable et définit la structure de fichiers pour l'ensemble de mémoires flash 96 fait partie du logiciel ROM BIOS 79 et du logiciel d'extension BIOS ROM 80. Le contrôleur 92 comprend un tampon RAM 102. Le tampon RAM 102 assure une mémorisation-tampon servant au transfert de fichiers ainsi qu'à la création et à la mise à jour de répertoires. Le contrôleur 92 comprend également un multi- plexeur/tampon 104 Le multiplexeur/tampon 104 assure une mémorisationtampon pour le transfert de fichiers Le multiplexeur/tampon 104 assure également un multiplexage de données transmises à l'ensemble de mémoires flash 96 et provenant de celui-ci. La logique associée au circuit logique multi- plexeur/tampon 104 peut s'adapter à toute interface standard de bus de système Par exemple, la logique associée au multiplexeur/tampon 104 peut s'adapter à un ou plusieurs des standards suivants: PC XT, PC AT ( c'est-à-dire IDE architecture de standards indus- triels), EISA ( c'est-à-dire architecture de standards industriels étendus), MCA ( c'est-à-dire architecture de microcanaux), VME ( c'est-àdire environnement machine virtuel), et Multibus. Dans une réalisation de l'invention, le contrô- leur 92 est logé à l'intérieur du système d'ordinateur personnel 70 Par exemple, le contrôleur 92 pourrait être situé sur une plaquette de système ( non représentée) à l'intérieur de l'ordinateur personnel 70. Dans une autre réalisation, le contrôleur 92 peut être un dispositif d'entrée/sortie ("I/O") qui est extérieur au système d'ordinateur personnel ou bien qui est situé dans un alvéole d'extension (non représenté) du système d'ordinateur personnel Pour cette autre réalisation, la logique associée au multiplexeur/tampon 104 peut s'adapter à toute inter- face I/O standard Par exemple, le multiplexeur/tampon 104 peut s'adapter à une ou plusieurs des interfaces I/O suivantes: IDE, ST 506, SCSI ( c'est-à-dire interface pour petits ordinateurs) et SA 400 ( c'est- à-dire un standard de disque souple) En conséquence, pour cette autre réalisation, l'ordinateur personnel 70 communi- querait avec le contrôleur 92 par l'intermédiaire d'une de ces interfaces I/0 standard. Le système d'ordinateur personnel 40 de la Figure 3 et le système d'ordinateur personnel 70 de la Figure 4 comprennent chacun une partie matérielle qui est affectée à la commande de la structure de fichiers de l'ensemble de mémoires flash respectif Pour le système d'ordinateur personnel 40, cette partie matériel- le additionnelle est constituée par le tampon RAM 62. Pour le système d'ordinateur personnel 70, cette partie matérielle additionnelle est constituée par le contrôleur 92 Le tampon RAM 62 de la Figure 3 et le contrôleur 92 de la Figure 4 constituent des moyens permettant d'éviter l'obligation de mémoriser un code de commande de système de fichiers respectivement dans la mémoire de système RAM 52, l'ensemble de mémoires flash 64, la mémoire de système RAM 72 ou l'ensemble de mémoires flash 96. Le tampon RAM 62 et le contrôleur 92 servent également chacun à une mémorisation-tampon de données de telle sorte que la mémoire de système RAM 52 de la Figure 3 et la mémoire de système RAM 72 de la Figure 4 n'ont pas besoin d'agir comme des tampons de données respectivement pour les structures de fichiers 58 et 94 En outre, l'incorporation du tampon de données 62 dans le système d'ordinateur personnel 40 et du contrôleur 92 dans le système d'ordinateur personnel signifie que la mémoire de système RAM 52 et la mémoire de système RAM 72 n'ont pas besoin d'agir comme des zones de travail pour les structures de fichiers des ensembles de mémoires flash respectifs 64 et 96. Le tampon RAM 62 de la Figure 3 et le contrô- leur 92 de la Figure 4 permettent à la structure de fichiers 58 et à la structure de fichiers 96 d'être chacune reconnue comme contenant une zone de mémorisa- tion pouvant être initialisée et qui fait partie du matériel de base intervenant dans le système d'ordina- teur personnel respectif Il en résulte que le tampon RAM 62 et le contrôleur 92 servent à améliorer les performances globales des structures de fichiers des ensembles de mémoires flash appartenant aux systèmes d'ordinateurs personnels respectifs. Les configurations différentes des ordinateurs personnels 10, 40 et 70 représentés sur les Figures 2 à 4 résultent des caractéristiques différentes des ordinateurs Dans le système d'ordinateur 10 de la Figure 2, le pilote de fichiers 28 est exécuté par l'unité centrale de traitement 12 sous la forme d'un sous-programme logiciel de tâches prioritaires qui traite toutes les spécifications de gestion de fichiers permettant la gestion de l'ensemble de mémoires flash 34 Le logiciel 28 du pilote de système de fichiers occupe une partie de la mémoire de système RAM 22 mais la capacité de cette mémoire de système RAM 22 pourrait être limitée Par exemple, si le système d'exploitation 26 de l'ordinateur personnel 10 est MS-DOS, alors la capacité de la mémoire RAM 22 pourrait être limitée à un mégaoctet d'espace en "mode réel". Pour l'ordinateur 40 de la Figure 3, le logiciel de pilote de système de fichiers qui définit la structure de fichiers pour l'ensemble de mémoires flash 64 fait partie du logiciel ROM BIOS 43 et du logiciel d'exten- sion ROM BIOS 44 mémorisé dans la mémoire morte ROM 42 Cependant l'espace de mémorisation dans la mémoire ROM 42 peut être limité Par exemple, dans certains ordinateurs personnels compatibles avec MS-DOS, toutes les fonctions d'entrée-sortie sont commandées par un micrologiciel incorporé dans une section BIOS de 64 kilooctets de la mémoire morte, avec de petites exten- sions BIOS ROM de deux kilooctets chacune Le logiciel du pilote de système de fichiers pourrait déborder de l'espace disponible dans la mémoire morte ROM 42 si cette mémoire a une petite capacité. Au contraire, le contrôleur matériel 92 de l'ordinateur 70 contient le pilote de fichiers et cela réduit les impératifs de mémorisation en ce qui concerne l'ensemble de mémoires flash 96, la mémoire morte ROM 78 et la mémoire de système RAM 72 En outre, le contrô- leur matériel 92 simplifie les ordres de commande du système de fichiers Par exemple, le contrôleur matériel 92 convertit les ordres de commande de système de fichiers en des appels de procédure de haut niveau qui sont accessibles au logiciel au moyen d'un label se référant à un code se trouvant dans un autre espace de mémoire Dans une réalisation de la présente invention, les ordres simplifiés de commande de système de fichiers ou bien les ordres simplifiés de commande de fichiers sont mémorisés dans la mémoire morte ROM 98 du contrôleur matériel 92 sous la forme d'un code de commande de type-BIOS conventionnel Celui-ci permet à son tour au système de fichiers transistorisé 94 d'être reconnu comme un dispositif de base initialisable. Il en résulte une simplification des appels du système de fichiers Chaque appel de système de fichiers produit en résultat l'exécution du pilote de système de fichiers (qui est également appelé le code de commande de système de fichiers). Dans une réalisation, chaque appel de système de fichiers pour l'ordinateur 70 de la Figure 4 est exécuté directement par l'unité CPU 12 extrayant des instructions du logiciel principal BIOS et des exten- sions de BIOS à mappage direct qui sont mémorisées dans la mémoire morte 78 Dans une autre réalisation, Chaque appel de système de fichiers est exécuté par l'unité CPU 12 à partir de pages de mémoire se trouvant dans des blocs de mémorisation d'extension de BIOS qui sont contenus dans la mémoire morte ROM 98 Dans encore une autre réalisation, chaque appel de système de fichiers est exécuté par le microcontrôleur 100 à partir du pilote de système de fichiers qui est mémori- sé dans la mémoire morte ROM 98 du contrôleur matériel 92. Dans une réalisation préférée, le contrôleur matériel 92 réduit chaque tâche serapportant à un fichier à un seul ordre provenant de l'unité principale CPU 12, ce qui contribue à augmenter les possibilités de chargement de l'unité principale CPU 12 Le contrôleur 92 reçoit des données d'entrée à des vitesses de mémo- risation correspondant à une mémoire à accès sélectif RAM en retenant les données d'entrée dans un espace de mémorisation-tampon locale 102 Le contrôleur matériel 92 termine automatiquement chaque tâche correspondante mais il effectue seulement une opération à la fois. En addition, le contrôleur 92 permet à l'unité principale CPU 12 d'interrompre toute tâche concernant le système de fichiers en vue d'un accès immédiat à une donnée Cela nécessite la mémorisation-tampon addi- tionnelle en mémoire RAM d'une information valable de fichier qui pourrait autrement se trouver dans un bloc inaccessible Un bloc inaccessible est un bloc intervenant dans une opération d'écriture ou d'effacement. Le contrôleur 92 reprend la tâche initiale à la suite de l'interruption Dans une réalisation de la présente invention, le contrôleur matériel 92 effectue un repéra- ge d'un nombre donné d'opérations d'écriture simultanées. En outre, dans une réalisation, le contrôleur 92 surveille en permanence l'ensemble principal de mémoires flash 96 pour une détection d'un espace libre disponible et également de déséquilibres de cycles de blocs chauds/froids Le contrôleur matériel 92 amorce également automatiquement une opération de redistribu- tion concernant l'ensemble de mémoires flash 96 quand cela est nécessaire Une opération de redistribution uniformise la répartition des cycles entre les blocs de l'ensemble de mémoires flash 96 Cette opération de redistribution est automatiquement enclenchée par le contrôleur matériel 92, quand cela est nécessaire, d'une façon correspondant complètement à des tâches d'arrière-plan. Le contrôleur matériel 92 enclenche également automatiquement une opération de nettoyage concernant l'ensemble de mémoires flash 96 afin de libérer un espace pour une mémorisation dans cet ensemble 96. L'opération de nettoyage est amorcée par le contrôleur matériel 92 quand cela est nécessaire et elle est effec- tuée d'une façon correspondant complètement à des tâches d'arrière-plan L'opération de nettoyage va être décrite d'une façon plus détaillée dans la suite. Pour que le contrôleur matériel 92 du système de fichiers effectue une surveillance continue de l'en- semble de mémoires flash 96 pour détecter un espace libre disponible et des déséquilibres entre cycles de blocs chauds et froids et pour que ce contrôleur 92 enclenche automatiquement des opérations de nettoyage ou de redistribution, l'ensemble de mémoires flash 96 devrait ( 1) soit se trouver comme un dispositif de mémorisation à l'intérieur de l'ordinateur personnel soit, en variante, ( 2) être accouplé physiquement et de façon sûre à l'ordinateur personnel 70 si l'ensem- ble de mémoires flash 96 est amovible Pour l'autre réalisation dans laquelle l'ensemble de mémoires flash 96 est amovible, le système d'ordinateur personnel comprend une diode luminescente indicatrice ("LED") qui s'allume lorsqu'une tâche d'arrière-plan faisant intervenir l'ensemble de mémoires flash 96 est en train de se oroduire L'utilisateur de l'ordinateur personnel est averti de ne pas enlever l'ensemble de mémoires flash 96 quand la diode émettrice de lumière est allumée, et par conséquent lorsqu'une tâche d'arrière-plan est en train de se produire. Dans des réalisations préférées, le circuit d'interface avec un ensemble principal de mémoires flash peut faire l'objet soit ( 1) d'un mappage d'entrée/ sortie ("I/0 "), soit ( 2) d'un mappage par pages en mémoire, soit ( 3) d'un mappage direct en mémoire La Figure 5 représente un principe de mappage I/0 pour le circuit d'interface. Il est à noter que, pour les réalisations représentées sur les Figures 2 à 4, les ensembles de mémoires flash 34, 64 et 96 pourraient être utilisés pour remplacer soit des unités à disques durs, soit des unités à disques souples. Le principe de mappage I/0 représenté sur la Figure 5 utilise un plan I/0 85, comprenant des ports I/0 de transfert en série qui mappent l'ensemble de mémoires flash 81 et le tampon local RAM 83 Du fait que le principe de mappage I/0 représenté sur la Figure 5 utilise le plan de mémoire I/0 séparée 85 à la place d'un plan de mémoire principale, (une mémoire principale est également considérée comme une mémoire de système RAM), le principe de mappage I/0 représenté sur la Figure 5 n'utilise aucun des espaces de la mémoire principale de l'ordinateur principal c'est-à-dire que le principe de mappage I/0 n'utilise aucune des mémoires de système RAM de l'ordinateur principal. Les dispositifs I/0 reliés aux ports I/0 de transfert en série 85 ne peuvent cependant pas suppor- ter une exécution directe par une unité centrale de traitement, étant donné que ces dispositifs I/O (non représentés) sont des dispositifs à accès en série et non à accès sélectif Ces dispositifs I/O doivent transmettre des fichiers de codes à une mémoire de système RAM pour exécution. La Figure 6 représente une interface, mappée par pages, avec un ensemble de mémoires flash 105 à mappage par pages La Figure 6 représente un plan de mémoire principale 89 Le plan de mémoire principale 89 comprend la mémoire principale de système RAM 99, la fenêtre de pagination 97, l'extension BIOS/ROM 95, le logiciel BIOS 93 et l'extension de mémoire de système RAM 91. Dans une réalisation de la présente invention, le plan de mémoire principale 89 comporte une limitation de gamme d'adressage d'un mégaoctet 101 La limitation de gamme d'adressage d'un mégaoctet pour le plan de mémoire principale 89 signifie que le mode protégé d'une unité centrale de traitement CPU ou d'un micro- processeur est utilisé pour l'adressage de parties du plan de mémoire principale 89 au-dessus de la limi- tation d'adressage d'un mégaoctet 101 En d'autres ter- mes, le mode protégé d'une unité CPU est utilisé pour l'adressage de la zone d'extension de mémoire de système RAM 91 du plan de mémoire principale 89. Des microprocesseurs typiques des générations antérieures et de faibles performances ne comportent pas un mode protégé En outre des systèmes d'exploitation des générations précédentes et de faibles performances, utilisés dans des ordinateurs personnels, n'ont pas la capacité de traiter un adressage en mode protégé En conséquence, ces microprocesseurs et systèmes d'exploi- tation de faibles performances ne pourraient pas effec - tuer un adressage des zones situées au-dessus de l'adres- se d'un mégaoctet Néanmoins, certains microprocesseurs et systèmes d'exploitation de la génération suivante et de hautes performances peuvent effectuer un adressage des zones situées au-dessus de l'adresse d'un mégaoctet. Sur la Figure 6, l'ensemble de mémoires flash est composé de petites pages 107, 109 et 111 et cet ensemble de mémoires flash 105 est relié à un tampon local RAM 113 Dans une autre réalisation de la présente invention, l'ensemble de mémoires flash 105 pourrait être composé de n'importe quel nombre de pages. Sur la Figure 6, la fenêtre de pagination 97 constitue l'interface de mappage de mémoire par pages qui permet à une unité centrale de traitement d'accéder aux pages 107, 109 et 111 de l'ensemble de mémoires flash 105 Chaque page est changée pour un pointage sur un segment différent de l'ensemble de * mémoires flash 105 quand cela est nécessaire. La Figure 6 représente également un micrologi- ciel à pages 103 qui est utilisé comme une extension d'un pilote de dispositif Le micrologiciel à pages 103 comprend les pages 115, 117, 119 et 121 Dans une réalisation de la présente invention, l'interface 97 de fenêtre de pagination est utilisée pour un pointage sur le micrologiciel à pages 103 Grâce au pointage de la fenêtre de pagination 97 sur le micrologiciel 103, une extension est possible pour passer au plus grand espace 103 de mémorisation du micrologiciel. Cela permet à l'ordinateur d'obtenir un espace addition- nel de mémorisation au delà d'un unique emplacement 95 d'extension de BIOS/ROM ( typiquement de 2 kilooctets). La Figure 7 représente une interface de mappage direct avec un ensemble de mémoires flash principal. Sur la Figure 7, le plan de mémoire principale 135 comprend une mappe 149 d'ensemble de mémoires flash et une mappe 147 de tampon local RAM en addition à la mémoire de système principale RAM 137, à l'extension de logiciel BIOS/ROM 139, au logiciel BIOS 141 et à l'expansion de mémoire de système RAM 145. Le plan de mémoire principale 135 représenté sur la Figure 7 a une limitation de gamme d'adressage d'un mégaoctet 143 La mappe 149 de l'ensemble de mémoi- res flash et la mappe 147 du tampon local RAM sont situées au-dessus de la limitation de gamme d'adressage d'un mégaoctet 143 du plan de mémoire 135 Cela signifie qu'un mode protégé d'une unité CPU ou d'un microproces- seur est utilisé pour l'adressage de la mappe 149 de l'ensemble de mémoires flash et de la mappe 147 du tampon local RAM Au contraire, l'unité CPU peut effec- tuer l'adressage de la mémoire de système principale RAM 137, de l'extension de logiciel BIOS/ROM 139 et du logiciel BIOS 141 du plan de mémoire principale sans utiliser le mode protégé. La mappe 149 de l'ensemble de mémoires flash effectue le mappage direct de l'ensemble de mémoires flash de l'ordinateur personnel En conséquence, la mappe 149 de l'ensemble de mémoires flash a une capacité égale à celle de l'ensemble de mémoires flash de l'ordi- nateur personnel. En outre, la mappe 147 du tampon local RAM est directement mappée sur le tampon local RAM de l'or- dinateur personnel Il en résulte que la mappe 147 du tampon local RAM a une capacité égale au tampon local RAM de l'ordinateur personnel. Le principe de mappage direct en mémoire utilise par conséquent un grand pourcentage de l'espace de la mémoire principale En outre, la méthode de mappa- ge direct en mémoire nécessite une unité CPU et un système d'exploitation qui soient capables d'adresser des parties du plan de mémoire principale qui sont situées au-dessus de la limite de gamme d'adressage d'un mégaoctet 143. Le principe de mappage direct permet une exécution direct de codes provenant de tout l'ensemble de mémoires flash D'autre part, le principe de mappage par pages permet l'exécution directe de codes provenant d'une partie de l'ensemble de mémoires flash. Le principe de mappage direct nécessite une unité CPU et un système d'exploitation qui soient capa- bles d'effectuer un adressage au delà de la limite d'un mégaoctet Au contraire, le principe de mappage par pages opère avec une unité CPU et un système dlex- ploitation qui soient incapables d'effectuer un adressa- ge au delà de la limite d'un mégaoctet. Les Figures 8, 11, 12 et 14 à 16 montrent des exemples de structures de fichiers préférées pour l'ensemble de mémoires EEPROM flash d'un système d'ordi- nateur personnel En particulier, les Figures 8, 11, 12 et 14 à 16 représentent des structures de fichiers préférées pour des ensembles de mémoires flash 34, 64 et 96 intervenant respectivement dans les ordinateurs personnels 10, 40 et 70 des Figures 2 à 4 Les structu- res de fichiers représentées sur les Figures 8, 11 et 12 sont des structures de fichiers variables Les structures de fichiers représentées sur les Figures 14 à 16 sont des structures de fichiers à secteurs. Les structures de fichiers représentées sur les Figures 8 et 14 comprennent chacune un répertoire de fichiers dynamique qui est situé dans l'ensemble de mémoires flash Les structures de fichiers représentées sur les Figures 11, 12, 15 et 16 comprennent chacune un répertoire de fichiers qui est mémorisé dans une mémoire EEPROM séparée ou une mémoire à accès sélectif statique RAM ("SRAM") Les structures de fichiers représentées sur les Figures 8, 11, 14 et 15 comprennent des entrées de répertoires à liste enchaînée Les structures de fichiers représentées sur les Figures 12 et 16 compren- nent chacune un répertoire de fichiers qui est analogue au répertoire utilisé pour des disques durs de l'art antérieur Des fichiers variables, des fichiers à sec- teurs, des répertoires dynamiques, des répertoires mémorisés séparément, des répertoires à liste enchaînée et des répertoires analogues à des disques seront décrits de façon plus détaillée dans la suite Les structures de fichiers représentées sur les Figures 8, 11, 12 et 14 à 16 sont chacune représentées dans un état suivant immédiatement une opération de nettoyage. La Figure 8 représente la structure de fichiers de l'ensemble de mémoires flash 112 La structure de fichiers 110 est une structure de fichiers dedimen- sions variables La structure de fichiers de dimensions variables est également appelée une structure de fichiers variables. Dans une structure de fichiers variables telle que la structure de fichiers 110, un code ou des données sont mémorisés de façon contiguë de sorte qu'un compteur de programme d'une unité CPU d'un ordina- teur personnel peut progresser dans le code ou les données La structure de fichiers variables permet par conséquent une exécution en place L'expression "exécution en place " signifie que l'unité CPU peut exécuter un code directement à partir d'un ensemble de mémoires flash sans l'obligation de faire intervenir une mémoire à accès sélectif RAM Une exécution en place est également appelée une exécution de code directe ou en place. L'agencement de la structure de fichiers variables 110 permet à des fichiers de codes d'être mémorisés de façon contiguë indépendamment de l'impor- tance d'une opération d'exécution directe ou en place. Une opération d'exécution en place élimine le temps qui est nécessaire autrement pour un chargement préa- lable d'une mémoire de type-RAM pour exécution Cela réduit à son tour la consommation d'énergie du système en correspondance à la mémoire RAM supplémentaire qui serait autrement nécessaire. Lorsque la structure de fichiers 110 est correctement formatée, il n'y a pas de blocs chauds ou de blocs froids, excepté pour des en-têtes se trouvant dans l'ensemble de mémoires principal Cela signifie qu'il n'est pas nécessaire de conserver un suivi de l'itération effacement/programmation de blocs adjacents pour empêcher des influences électriques de perturbation de données. D'autre part, une structure de fichiers varia- bles pour un ensemble de mémoires flash est sensible- ment différente de la structure de fichiers à base de secteurs qui est trouvée dans une unité à disques typique de l'art antérieur Des systèmes d'exploitation typiques de l'art antérieur utilisés dans des ordinateurs personnels sont conçus pour opérer seulement avec une structure de fichiers formés par des secteurs d'un disque En conséquence, le logiciel d'un système d'exploi- tation de haut niveau actuel devrait être modifié ou augmenté pour opérer avec une structure de fichiers variables. En outre, pour une structure de fichiers variables, l'opération de nettoyage de fichiers ( qui sera décrite de façon plus détaillée dans la suite) en vue de la réallocation de l'espace de mémorisation en fichiers est moins efficace et plus fréquente que pour une structure de fichiers à secteurs En conséquen- ce, avec une structure de fichiers variables, les opéra- tions de nettoyage prennent plus de temps d'arrière-plan. En outre, une structure de fichiers variables nécessite au total plus d'itérations effacement/écriture dans une mémoire flash. L'ensemble de mémoires flash 112 comprend un certain nombre de blocs de données pour mémoriser un code ou des données La Figure 8 illustre un exemple de la structure de fichiers de l'ensemble de mémoires flash 112 dans l'état suivant immédiatement une opération de nettoyage. Les blocs 114, 116 et 118 de l'ensemble de mémoires flash 112 sont des blocs "à réserver", également appelés des blocs de réserve ou des blocs réservés. Des blocs de réserve sont des blocs qui assurent une sauvegarde temporaire en fichiers pendant une opération de nettoyage Une opération de nettoyage est utilisée pour une réallocation Une opération de nettoyage fait intervenir d'abord un déplacement de tous les fichiers présentement actifs hors des blocs qui seront finalement effacés Chaque bloc d'une mémoire flash peut être effacé en totalité en une fois Les blocs réservés 114, 116 et 118 sont par conséquent disponibles pour effacement/réallocation pendant une opération de nettoya- ge Les blocs réservés 114, 116 et 118 assurent par conséquent une sauvegarde temporaire des fichiers. Dans une réalisation, au moins un des blocs réservés est utilisé comme un bloc réservé de rechange. Ce bloc de rechange contribue à faire en sorte qu'un bloc réservé soit disponible pour des opérations de nettoyage, ce qui contribue à son tour à améliorer la fiabilité du système de fichiers. Comme indiqué sur la Figure 8, le bloc 120 est un bloc à libérer. Les blocs 122, 124, 126 et 128 sont des blocs libres Des blocs de données libres 122, 124, 126 et 128 sont des blocs utilisables pour mémoriser un code et des données Les blocs libres 122, 124, 126 et 128 de la Figure 8 ne sont pas des blocs actifs mais ils sont au contraire des blocs pouvant être utilisés pour mémoriser un code ou des données. Pendant le fonctionnement de l'ordinateur personnel, des données ou un code sont placés dans les blocs libres Le bloc de données 130 est un bloc partiellement libre Une partie du bloc 130 contient un code actif ou des données Le reste du bloc 130 est partiellement libre et est disponible pour un emma- gasinage futur d'un code ou de données. A mesure que des blocs libres et partiellement libres sont remplis d'un code et de données, le nombre de blocs restant libres de données ou de code diminue. Lorsque le nombre de blocs libres utilisables atteint le nombre alloué de blocs de réserve, une opération de nettoyage est enclenchée. Les blocs 132, 136, 138, 140, 142 et 144 constituent, en association avec une partie du bloc , les fichiers contigus de dimensions variables, actifs et éliminés Dans une réalisation, les blocs 132, 136, 138, 140, 142 et 144 et une partie du bloc constituent également les sous- répertoires actifs et éliminés. Les fichiers 150, 164, 166, 168, 170, 172 et 174 sont les fichiers éliminés se trouvant dans les blocs 132, 136, 138, 140, 142 et 144 Les fichiers éliminés 150, 164, 166, 168, 170, 172 et 174 représentés sur la Figure 8 sont des fichiers qui ont été éliminés par l'utilisateur. Pendant une opération de nettoyage, les plus anciens des fichiers actifs sont réécrits dans les blocs 114 et 116 Pour la structure de fichiers 110 représentée sur la Figure 8, les blocs 138, 140, 142 et 144 contiennent les plus anciens fichiers variables contigus, actifs et éliminés Les fichiers actifs trouvés dans les blocs 138, 140, 142 et 144 sont les fichiers à réécrire dans les blocs 114 et 116 Une opération de compression se produit pendant l'opération de net- toyage de telle sorte que les quatre blocs 138, 140, 142 et 144 puissent être incorporés dans les deux blocs de réserve 114 et 116 Pendant l'opération de compres- sion, des fichiers précédemment éliminés par l'utilisa- teur ne sont pas réécrits dans les blocs 114 et 116. Sur la Figure 8, les fichiers 168, 170, 172 et 174 sont les fichiers éliminés qui sont trouvés dans les blocs 138, 140, 142 et 144 Ces fichiers éliminés 168, , 172 et 174 ne sont par conséquent pas réécrits dans les blocs 114 et 116 Les blocs 138, 140, 142 et 144 sont considérés comme se trouvant dans la zone suivante à comprimer La quantité d'espace compressible est la quantité d'espace occupé par les fichiers éliminés 168, 170, 172 et 174. Les blocs 114, 116, 118 et 120 sont les blocs qui ont résulté d'une opération de nettoyage précédente. Les blocs 114, 116, 118 et 120 sont par conséquent considérés comme comprenant l'espace comprimé qui a résulté de la dernière opération de nettoyage. Le processus de nettoyage pour des structures de fichiers variables, comme la structure de fichiers représentée sur la Figure 8, correspond à un mode circu- laire Des blocs de réserve sont situés dans un ordre consécutif excepté lorsque les blocs de réserve forment une boucle s'étendant du haut physique de l'ensemble de mémoires flash 112 jusqu'au bas physique de cet ensemble de mémoires 112 Comme indiqué ci-dessus, lorsque le nombre de blocs utilisables libres atteint le nombre alloué de blocs de réserve, l'opération de nettoyage est enclenchée Les blocs les plus anciens contenant des fichiers actifs et éliminés sont comprimés et enlevés en premier lieu par nettoyage Les blocs les plus anciens contenant des fichiers variables conti- gus actifs et éliminés sont trouvés directement après les blocs de réserve dans l'ensemble de mémoires flash 112 Le nombre de blocs à réécrire et à comprimer dans une partie d'une opération de nettoyage est déterminé par le nombre de fichiers éliminés dans les blocs préci- tés En d'autres termes, l'espace compressible à l'inté- rieur des blocs les plus anciens détermine combien desdits blocs seront réécrits dans une partie d'une opération de nettoyage Par exemple, les blocs 138, 140, 142 et 144 contiennent des fichiers éliminés suf- fisamment grands pour permettre aux quatre blocs 138, , 142 et 144 d'être comprimés dans les deux blocs 114 et 116. Après que les blocs 138, 140, 142 et 144 ont été comprimés dans les blocs 114 et 116, ensuite les blocs 138, 140, 142 et 144 sont effacés Après effacement des blocs 138, 140, 142 et 144, les blocs 138, 140, 142 deviennent des blocs de réserve et le bloc 144 devient un bloc libre. La structure de fichiers 110 représentée sur la Figure 8 comprend un répertoire qui mémorise les attributs et les positions des fichiers à l'inté- rieur de l'ensemble de mémoires flash 112 P Our la structure de fichiers 110, toutes les informations de répertoire sont mémorisées dans le bloc 134 de l'en- semble de mémoires flash 112 Le répertoire de la struc- ture de fichiers 110 est par conséquent appelé un réper- toire affecté à mémoire flash. Le répertoire de la structure de fichiers 110 nécessite un repositionnement dynamique de répertoire. Un repositionnement dynamique de répertoire signifie que le système de fichiers déplace le répertoire dans différentes positions à l'intérieur de l'ensemble de mémoires flash 112 par des opérations d'écriture et d'effacement Dans l'exemple représenté sur la Figure 8 le répertoire occupe le bloc 134 dans l'ensemble de mémoires flash 112 Néanmoins, à différents moments, le répertoire pourrait occuper l'un quelconque des autres blocs de l'ensemble de mémoires flash 112, notam- ment les blocs 114, 116, 118, 120, 122, etc. Au moment particulier qui est indiqué sur la Figure 8, le répertoire est situé dans le bloc 134. Le bloc 134 contient l'indicateur de répertoire 152, l'enregistrement initial 154, la table d'états de blocs 156 ( qui est également désignée par BST 156), les entrées de répertoires à liste enchaînée 158 et l'espace libre de répertoire 160 Le bloc 134 est appelé le bloc de répertoire. L'indicateur de répertoire 152 contient une configuration de données qui indique quel bloc contient le répertoire initial concernant la structure de fichiers Dans une réalisation de la présente invention, l'indicateur de répertoire 152 contient une configuration univoque de données non-aléatoire qui indique que le bloc contenant l'indicateur de répertoire 152 est également le bloc contenant le répertoire de départ. Par exemple, dans une réalisation, l'indicateur de répertoire 152 contient une série de données A Ah/55 h se répétant Dans une autre réalisation, l'indicateur de répertoire 152 contient une autre séquence non-aléa- toire de données. Dans une réalisation de la présente invention, une vérification supplémentaire est effectuée pour déterminer si un bloc particulier est en fait le bloc de répertoire Cela est effectué pour contribuer à éviter une erreur de localisation du bloc de répertoire qui pourrait autrement se produire si un bloc autre que le bloc de répertoire comportait une configuration initiale de données correspondant à la configuration de données de l'indicateur de répertoire 152 La vérifi- cation supplémentaire est effectuée en vérifiant une zone de données de contrôle située dans l'enregistre- ment initial 154 du bloc de répertoire 134 Dans une réalisation, la zone de données de contrôle se trouvant dans l'enregistrement initial 154 est une configuration particulière qui est choisie du fait que cette configura- tion de données ne change pas si l'enregistrement initial 154 est à la fois valable et en cours Dans une autre réalisation, la zone de données de contrôle se trouvant dans l'enregistrement initial 154 est une configuration particulière choisie du fait que cette configuration de données ne change pas si l'enregistrement initial 154 est à la fois valable et en cours Dans une autre réalisation, la zone de données de contrôle se trouvant dans l'enregistrement initial 154 est une zone de données pour vérification de redondance de cycle affectée ("CRC") ou un code de correction d'erreur valable ou n'est plus en cours. L'enregistrement initial 154 est situé dans le bloc 134 à côté de l'indicateur de répertoire 152. L'enregistrement initial 154 contient une information concernant le type du système de fichiers particulier et la révision du système de fichiers particulier. L'enregistrement initial 156 contient également certains paramètres du système de fichiers Ces paramètres com- prennent une information concernant la capacité de formatage, une information concernant les blocs réservés, une information concernant lerépertoire ajouté, une information se rapportant à l'ancien répertoire et une information se rapportant au répertoire de départ. L'information concernant la capacité de forma- tage définit la dimension de la zone de l'ensemble de mémoires flash 112 qui peut être formatée pour mémori- ser un code et des données L'information concernant les blocs réservés identifie les blocs qui sont des blocs réservés Comme décrit ci-dessus, les blocs réser- vés sont des blocs utilisés pendant des opérations de nettoyage et de réallocation L'information concernant un répertoire ajouté définit les positions de blocs additionnels qui sont en train d'être utilisés pour une mémorisation d'une information concernant un répertoi- re additionnel Un répertoire ajouté qui est mémorisé dans un ou plusieurs blocs additionnels serait nécessaire si le nombre de fichiers mémorisés dans l'ensemble de mémoires flash 112 dépasse une certaine quantité. L'ancien répertoire est une copie d'appoint du répertoi- re en cours L'information paramétrique se rapportant à l'ancien répertoire définit dans l'ensemble de mémoires flash 112 l'emplacement o se trouve l'ancien répertoi- re Par exemple sur la Figure 8, l'ancien répertoire est situé dans le bloc 114 Le répertoire de départ est le premier répertoire introduit L'information paramétrique se rapportant au répertoire de départ définit dans l'ensemble de mémoires flash 112 l'emplace- ment du répertoire de départ. La table d'états de blocs 156 contient des informations précisant quels blocs sont des blocs actifs, quels blocs sont des blocs de réserve et quels blocs sont des blocs défectueux ou incorrects Dans une réali- sation, la table d'états de blocs 156 contient également une information de comptes de cycles concernant chaque bloc L'information de comptes de cycles indique combien de fois un bloc a été effacé et réécrit La table d'états de blocs 156 est située à l'intérieur du bloc 134 à côté de l'enregistrement initial 154. Des entrées 158 de répertoires à liste enchaî- née sont également appelées le répertoire principal 158 Le répertoire principal 158 est situé à l'intérieur de blocs 134 à côté de la table d'états de blocs 156. Le répertoire principal 158 contient une série d'entrées de répertoire individuel Chaque entrée de répertoire contient une information concernant le type d'entrée de répertoire notamment si l'entrée de répertoire ( 1) est pour un fichier ou ( 2) est un pointeur sur un sous-répertoire. Chaque entrée de fichier de répertoire contient une information concernant le nom/extension de fichier, la date, le temps, le type de fichier, la longueur de fichier, l'adresse physique du fichier dans l'ensem- ble de mémoires flash 112, un pointeur parental et un pointeur filial. Dans une réalisation de la présente inven- tion, l'information nom/extension d'un fichier contient dix octets qui identifient le fichier pour l'utilisa- teur Dans cette réalisation, l'information de nom/exten- sion de fichier peut être constituée par des mots, des nombres et des lettres. L'information de date et de temps dans l'entrée de fichier spécifie la date et le temps o le fichier a été soit créé, soit révisé en dernier lieu, soit mis en réserve. L'information de type de fichier définit si le fichier contient un code, un code à pages, des données, ou bien des segments pour ajouter des données. L'information concernant la longueur d'un fichier définit la dimension physique du fichier ou du segment. L'information concernant l'adresse physique d'un fichier définit dans l'ensemble de mémoires flash 112 l'emplacement du fichier ou du segment. Les pointeurs parental et filial définissent la hiérarchie d'un répertoire à liste enchaînée En d'autres termes, les pointeurs parental et filial définis- sent la ramification structurale d'un répertoire. Chaque pointeur est pointé sur la position d'une autre entrée de répertoire Dans une réalisation de la présente invention, le pointeur est, à l'intérieur de l'ensemble de mémoires flash 112, une adresse physique absolue de l'entrée de répertoire faisant l'objet du pointage Dans une autre réalisation de l'invention, chaque pointeur se compose cependant d'une adresse décalée qui représente une adresse incrémentale à l'inté- rieur du bloc ou des blocs qui contiennent le répertoire. Un exemple d'un pointeur qui se compose d'une adresse physique absolue est 1264 FFFF en hexadécimal. D'autre part, un exemple d'un pointeur qui se compose d'une adresse décalée est FOF en hexadécimal L'adresse décalée d'un pointeur est également appelée une adresse d'indexage. La réalisation qui utilise le principe de l'indexage pour des pointeurs réduit au minimum la dimension des pointeurs Le principe d'indexage évite également l'obligation de recalculer chaque adresse de pointeur après que le répertoire a été repositionné à la suite d'une opération de nettoyage. Si un seul bloc de l'ensemble de mémoires flash 112 est insuffisant pour contenir la totalité d'un répertoire, le répertoire de départ peut pointer sur un bloc de répertoire ajouté secondaire ou bien sur plus d'un bloc de répertoire ajouté secondaire. Si un ou plusieurs blocs de répertoire ajouté sont utilisés, alors chaque pointeur de type indexé contien- dra un index pour déterminer celui des blocs de réper- toire auquel correspond le pointeur d'entrée de répertoi- re. Dans une réalisation de la présente invention, la grandeur de l'adresse d'index de pointeur est encore réduite en faisant en sorte que toutes les entrées de répertoiresaient une longueur commune, cette longueur commune correspondant à un incrément d'adresse décalée qui est défini par l'index. Les entrées de répertoires 158 forment une liste enchaînée En commençant par l'entrée du répertoi- re de départ, la ramification complète 158 du répertoire du système de fichiers est établie à partir de la liste enchaînée des entrées de répertoires en utilisant des pointeurs parentaux et filiaux Un exemple d'une rami- fication de répertoire à liste enchaînée est représenté sur les Figures 9 et 10 Sur les Figures 9 et 10, les entrées de répertoires sont les suivantes: entrée de répertoire de départ 157, entrée A 181, entrée B 183, entrée C 185, entrée D 189, entrée E 191, entrée F 193, entrée G 197, entrée H 199, entrée I 187 et entrée J 195 Les pointeurs filiaux sont les pointeurs 159, 161, 165, 169 et 171 Les pointeurs parentaux sont les pointeurs 163, 167, 171, 173, 175 et 179. La Figure 9 montre l'agencement logique des entrées de répertoires à liste enchaînée La Figure montre les positions physiques des entrées de répertoi- re à liste enchaînée à l'intérieur du bloc 134 de l'en- semble de mémoires flash 112. Les zones de pointeurs parental et filial de la dernière entrée de répertoire faisant partie de l'une quelconque des entrées de répertoires de la liste enchaînée contiennent la configuration F O (hexadéci- male) de données, qui sont toutes des uns logiques. Cela indique que cette entrée de répertoire est la fin de la chaîne ( Une entrée de répertoire effacé contient dans sa totalité c'est-à-dire dans toutes ses zones la configuration F O (hexadécimale) de don- nées). Des entrées de répertoires sont ajoutées à la chaîne constituant la liste enchaînée à chaque fois qu'un fichier est créé, déplacé ou changé La configuration F O (hexadécimale) de données intervenant dans la zone de pointeurs parental ou filial d'une dernière entrée de répertoire dans une chaîne de liste enchaînée particulière fait l'objet d'une superposition d'écriture par une nouvelle configuration de données qui est soit un pointeur parental ou filial respectif sur l'entrée du répertoire nouvellement créé Cette superposition d'écriture peut être effectuée du fait que chaque cellule de bit unique de l'ensemble de mémoi- res flash peut faire l'objet d'une superposition d'écri- ture pour passer d'un un logique à un zéro logique. En conséquence, la chaîne de la liste enchaînée concer- nant les entrées de répertoires 158 augmente et parvient dans un espace libre 160 à mesure que des fichiers sont créés, déplacés ou changés En d'autres termes, l'espace libre de répertoire 160 crée de la place pour l'expansion au cours du temps des entrées de répertoi- res à liste enchaînée 158. Chaque entrée de répertoire contient également des bits d'état pour indiquer la validité de son entrée de fichier ou de sous-répertoire Ces bits d'état font l'objet d'une superposition d'écriture à l'état zéro35 pour indiquer que l'entrée de répertoire continue simple- ment le chaînage du répertoire mais ne représente plus un fichier ou sous-répertoire actif Lorsque les bits d'état ont fait l'objet d'une superposition d'écriture à l'état zéro pour indiquer un simple chaînage, l'entrée de répertoire est considérée comme un espace non utilisé dans l'ensemble de mémoires flash 112 En outre, si l'entrée de répertoire est une entrée de type fichier et si les bits d'état font l'objet d'une superposition d'écriture à l'état zéro pour indiquer que l'entrée continue simplement le chaînage de répertoire, alors l'espace situé dans l'ensemble de mémoires flash 112 et associé à cette entrée de répertoire de type fichier est considéré comme un espace non utilisé. * Un nettoyage du système de fichiers est néces- saire pour libérer cet espace non utilisé pour des écritures ultérieures Du fait que les blocs d'une mémoire flash sont tous effacés en une fois, chaque entrée de répertoire non utilisée ne peut pas être réécrite individuellement Un repositionnement dynamique de répertoire contribue à résoudre ce problème. Pendant un nettoyage, les entrées de répertoi- res non utilisées sont comprimées De nouvelles listes enchaînées de répertoires avec des entrées de répertoi- res non utilisées qui ont été comprimées doivent effec- tivement toutes commencer à partir de l'entrée du réper- toire de départ Un repositionnement dynamique de réper- toire consiste à réincorporer la nouvelle liste enchaînée dans un bloc séparé Le ou les blocs de répertoires précédents servent d'appoint jusqu'à ce qu'une nouvelle ramification de répertoire soit formée La nouvelle ramification de répertoire pourrait se composer d'un nouveau répertoire associé à de nouveaux blocs de réper- toires ajoutés Dans une réalisation de la présente invention, pendant la phase de formation de répertoire qui fait partie du repositionnement de répertoire, le nouveau répertoire est écrit directement dans un bloc de réserve de l'ensemble de mémoires flash 112. Par exemple, le nouveau répertoire pourrait être écrit dans le bloc de réserve 116 de l'ensemble de mémoires flash 112. Un nettoyage consiste d'abord à enlever tous les fichiers présentement actifs des blocs qui seront finalement effacés, ce qui correspond à une réallocation. Le nouveau répertoire met en évidence à la fois la compression ( c'està-dire l'enlèvement) des anciens fichiers et le repositionnement physique à l'intérieur de l'ensemble de mémoires flash 112 des fichiers encore actifs Dans une réalisation de la présente invention, ces fichiers transférés sont écrits directement par transfert d'anciennes positions dans de nouvelles posi- tions de la mémoire flash. La table 156 d'états de blocs est utilisée pour conserver un suivi des blocs qui sont libres, en service, en réserve, ou défectueux La table 156 d'états de blocs conserve un suivi des blocs pendant des opérations normales de lecture de fichiers, pendant des opérations normales d'écriture en fichiers et pen- dant des opérations de nettoyage. Dans une autre réalisation de la présente invention, on utilise une mémorisation tampon en mémoire RAM Avec une mémorisation tampon en mémoire RAM, pen- dant une opération de nettoyage, des fichiers sont écrits dans la mémoire RAM de l'ordinateur personnel dans une étape intermédiaire précédant l'écriture des fichiers dans une nouvelle position à l'intérieur de l'ensemble de mémoires flash 112 Avec la mémorisation tampon en mémoire RAM, des fichiers transférés ne sont pas écrits directement d'anciennes positions dans de nouvelles positions de l'ensemble de mémoires flash 112 Au contraire, les fichiers passent par la mémoire RAM de l'ordinateur personnel. Dans une autre réalisation de la présente invention, certaines entrées de répertoires contiennent additionnellement des pointeurs d'adjonction UN pointeur d'adjonction est utilisé pour diviser un fichier indivi- duel de données en deux fichiers de données, un des fichiers de données étant incorporé dans un bloc et l'autre fichier de données dans un bloc différent Cela permet à des fichiers de données d'être divisés par rapport aux limites d'un bloc Il est ainsi possible qu'un fichier individuel de données forme une boucle depuis la fin jusqu'au début d'adresses physiques de l'ensemble de mémoires flash 112 Cela permet également à un fichier individuel de données de sauter un bloc défectueux ou incorrect. Dans encore une autre réalisation de la présente invention, chaque entrée de répertoire pour fichiers comprend additionnellement des zones secondaires pour une désignation de fichier, un suffixe et une adresse. Cela permet de changer la désignation, d'éditer et d'ad- joindre des fichiers sans l'obligation de rejeter l'entrée de répertoire initiale Une modification de suffixe pourrait être utilisée, par exemple, lorsque des copies de sauvegarde sont conservées quand des fichiers de données sont édités. Dans une autre réalisation de l'invention, la structure de fichiers 110 représentée sur la Figure 8 contient additionnellement une en-tête L'entête est située, par exemple, dans le bloc 122, qui ne consti- tue plus alors un bloc libre. L'en-tête est un fichier qui contient des informations concernant les répertoires et l'ensemble de mémoires flash 112 Dans une réalisation, l'en-tête contient des informations concernant le dimensionnement non formaté de l'ensemble de mémoires flash 112, le dimensionnement formaté de l'ensemble de mémoires flash 112, le nombre total de blocs dans cet ensemble de mé- moires flash 112 et les informations détaillées de dispo- sitifs se rapportant à l'ensemble de mémoires flash 112 Dans une réalisation de la présente invention, les informations détaillées de dispositifs qui sont contenues dans l'en-tête comprennent des tensions d'effa- cement et d'écriture; des ordres d'effacement et d'é- criture et des algorithmes d'effacement et d'écriture; des spécifications d'itération maximale d'éléments indi- viduels et de puce complète; et des caractéristiques de performances de lecture, d'écriture et d'effacement de l'ensemble de mémoires flash 112. Dans encore une autre réalisation, l'en-tête contient additionnellement des informations concernant la position d'une autre en-tête ou d'autres en-têtes. Avec cette autre réalisation o l'en-tête est mémorisée dans un des blocs de l'ensemble de mémoires flash 112, par exemple le bloc 122, l'en- tête doit être périodiquement remise à jour Une remise à jour pério- dique de l'en-tête consiste à effacer complètement et réécrire l'en-tête périodiquement Cette remise à jour périodique de l'en-tête est nécessaire du fait que l'en- tête est typiquement un bloc froid par rapport aux autres blocs de l'ensemble de mémoires flash 112 En d'autres termes, l'en-tête est située dans un bloc qui subit une itération moins fréquemment que les autres blocs de l'ensemble de mémoires flash 112 En conséquence, l'en-tête doit être remise à jour périodiquement. Pour déterminer lorsque l'en-tête a besoin d'être remise à jour, le nombre de cycles d'effacement/ programme des blocs adjacents à l'en- tête et de l'en-tête proprement dite est suivi et enregistré Un paramètre de comptes de cycles est mémorisé dans le bloc principal de l'en-tête Le compte de cycles représente le nombre des cycles effacement/écriture de l'en-tête et des blocs adjacents à l'en-tête. Dans cette autre réalisation, une autre copie c'est-à-dire de sauvegarde) de l'en-tête est mémori- sée dans un autre bloc de l'ensemble de mémoires flash 112, par exemple dans le bloc 124 Cette autre en-tête mémorisée dans le bloc 124 est temporairement utilisée comme l'en-tête pendant que l'opération de remise à jour se déroule. Dans encore une autre réalisation, l'en-tête n'est pas située dans l'ensemble de mémoires flash 112. Au contraire, l'en-tête est située dans un ensemble de mémoires qui est placé sur une carte à circuit intégré séparée faisant partie d'un système d'ordinateur person- nel L'ensemble de mémoires mémorisant l'en-tête serait un ensemble de mémoires "faisant l'objet d'accès en fonction du nombre de registres " L'en-tête serait par conséquent mémorisée dans un ensemble masqué séparé. Avec cet agencement d'ensemble de mémorisation masqué, l'en-tête n'aurait pas besoin d'être remise à jour du fait qu'elle ne serait pas située dans l'ensem- ble de mémoires flash 112 Il en résulte que l'en-tête ne serait pas un bloc froid et qu'elle ne nécessiterait pas de contenir un paramètre de compte de cycles en relation avec l'itération de blocs chauds/froids. En revenant à la structure de fichiers 110 représentée sur la Figure 8, on appréciera que l'utilisa- tion d'une en-tête est facultative Une réalisation de la présente invention évite d'utiliser une en-tête ayant la structure suivante L'ensemble de mémoires flash 112 contient des codes d'identification de fabri- cants et de dispositifs qui sont mémorisés dans l'ensem- ble Dans une réalisation de la présente invention, ces codes d'identification de fabricants et de disposi- tifs déclenchent le logiciel de l'ordinateur personnel de façon qu'il passe à une table de consultation qui contient des informations concernant les types d'en-têtes qui peuvent être déduits des codes d'identification de fabricants et dispositifs particuliers. La Figure 11 représente une structure de fichiers 210 de l'ensemble de mémoires flash 212 La structure de fichiers 210 est une structure de fichiers de dimensions variables, qui est également appelée une structure de fichiers variables. Les blocs 214, 216 et 218 de l'ensemble de mémoires flash 212 sont des blocs "à réserver", qui sont également appelés des blocs de réserve ou réservés. Le bloc 220 est un bloc à libérer Les blocs 222, 224, 226 et 228 sont des blocs libres Le bloc 230 est un bloc partiellement libre, qui contient partiellement des données ou un code et qui est partiellement libre. Les blocs 232, 233, 236, 238, 240, 242 et 244 contiennent, en coopération avec une partie du bloc 230, les fichiers de dimensions variables contigus, actifs et éliminés Dans une réalisation, les blocs 232, 233, 236, 238, 240, 242 et 244 contiennent égale- ment, en coopération avec une partie du bloc 230, les sous-répertoires actifs et éliminés Les fichiers 250, 264, 266, 268, 270, 272 et 274 sont des fichiers éliminés à l'intérieur des blocs 232, 236, 238, 240, 242 et 244. Pour la structure de fichiers 210 représentée sur la Figure 11, l'enregistrement initial 254, la table d'états de blocs 256, les entrées de répertoires à liste enchaînée 258 et les entrées de répertoires libres 260 sont mémorisés dans une mémoire séparée 234 qui ne fait pas partie de l'ensemble de mémoires flash 212 Cette mémoire séparée 234 est cependant inclu 5 e comme une partie du système d'ordinateur personnel qui comprend également 1 ' ensemble de mémoires flash 212. Dans une réalisation de l'invention, la mémoire séparée 234 est une mémoire morte programmable, électri- quement effaçable, modifiable par octets, de type conven- tionnel ( c'est-à-dire "EEPROM"). Dans une autre réalisation de la présente invention, la mémoire séparée 234 est une mémoire vive statique RAM ("SRAM") Cette mémoire SRAM 234 est reliée à une batterie qui fait partie du système d'ordina- teur personnel Lorsqu'un courant externe appliqué au système d'ordinateur personnel est coupé, la batterie qui est couplée à la mémoire SRAM 234 continue à alimen- ter en courant cette mémoire 234 Le courant appliqué à la mémoire SRAM 234 par la batterie permet à cette mémoire de conserver des données et des codes même lorsque le courant alimentant l'ordinateur personnel est coupé. La batterie est nécessaire car autrement une mémoire SRAM perdrait tous les codes et toutes les données une fois que son alimentation en courant serait coupée. Dans encore une autre réalisation de la présente invention, la mémoire 234 est constituée par une mémoire NVRAM. Dans la réalisation représentée sur la Figure 11, la mémoire 234 est une mémoire EEPROM Aucun indica- teur de répertoire n'a besoin d'être mémorisé dans la mémoire EEPROM 234, étant donné que, par définition, les entrées 258 du répertoire à liste enchaînée sont trouvées dans la mémoire 234 En d'autres termes, le répertoire en cours est mémorisé dans la mémoire 234. Dans une réalisation de la présente invention, la structure de fichiers 210 comporte une en-tête mémori- sée dans l'ensemble de mémoires flash 212 L'en-tête contient une information semblable à l'information conte- nue dans l'en-tête décrite en référence à la Figure 8 En ce qui concerne la structure de fichiers 210 de la Figure 11, l'en-tête contient additionnellement une information qui définit que le répertoire de départ est situé dans une position fixée à l'intérieur de l'em- placement 258 de la mémoire 234 En d'autres termes, l'en-tête définit le répertoire de départ comme étant situé dans un espace d'adresse physique fixée dans la mémoire 234 A nouveau, aucun indicateur de répertoire n'est nécesaire. Comme décrit ci-dessus, l'ensemble de mémoires flash 212 peut seulement être effacé par blocs et non par octets individuels Au contraire, la mémoire EEPROM 234 est électriquement effaçable et peut être réécrite par un utilisateur selon un principe octet-par-octet. La mémoire EEPROM 234 est par conséquent considérée comme étant modifiable par octets Le fait que la mémoire EEPROM 234 est modifiable par octets signifie que les désignations de fichiers, des suffixes, des adresses et des pointeurs se trouvant dans les entrées 258 du répertoire à liste enchaînée peuvent être individuel- lement effacés, réécrits et changés Les fichiers élimi- nés peuvent être sautés en apportant des modifications individuelles directes à des pointeurs parentaux et filiaux précédents. Dans la réalisation de la structure de fichiers 210 représentée sur la Figure 11, chaque entrée de réper- toire faisant partie des entrées 258 de répertoires à liste enchaînée est définie comme ayant une dimension approximativement identique à celle de chacune des autres entrées de répertoires faisant partie desdites entrées 258 Les entrées de répertoires éliminées peuvent ensuite être réutilisées de façon aléatoire lorsque cela est nécessaire. Les entrées 258 de répertoires à liste enchaî- née de la Figure 11 sont par ailleurs semblables aux entrées 158 de répertoires à liste enchaînée de la Figure 8 Les entrées 258 de répertoires à liste enchaînée sont associées à des pointeurs de typeindex, qui ont été décrits ci-dessus en référence aux entrées 158 de répertoires à liste enchaînée. L'enregistrement initial 254 de la Figure 11 est semblable à l'enregistrement initial 154 de la Figure 8 L'enregistrement initial 254 de la Figure 11 contient des informations comme le type de système de fichiers particulier et la révision du système de fichiers particulier L'enregistrement initial 254 con- tient également certains paramètres de système de fi- chiers, notamment la possibilité de formatage de l'ensem- ble de mémoires flash 212, une information concernant des blocs réservés pour l'ensemble de mémoires flash 212 et une information concernant la position du répertoi- re de départ à l'intérieur des entrées 258 de répertoires à liste enchaînée. La table d'états de blocs 256 de la Figure 11 est semblable, en ce qui concerne son contenu, à la table d'états de blocs 156 de la Figure 8 La table d'états de blocs 256 de la Figure 11 contient des infor- mations précisant quels blocs de l'ensemble de mémoires flash 212 sont des blocs actifs, quels blocs sont des blocs de réserve et quels blocs sont des blocs défectueux ou incorrects. L'opération de nettoyage concernant l'ensemble de mémoires flash 212 de la Figure 11 est semblable à l'opération de nettoyage concernant l'ensemble de mémoires flash 112 de la Figure 8 Le nettoyage de l'en- semble de mémoires flash 212 de la Figure 11 intervient en coopération avec la table d'états de blocs 256 et est effectué selon un mode circulaire, comme décrit ci-dessus pour l'ensemble de mémoires flash 112 de la Figure 8 Pour la structure de fichiers 210 représentée sur la Figure 11, les blocs 238, 240, 242 et 244 sont les blocs suivants qui seront nettoyés et comprimés. L'espace libre de répertoire 260 de la Figure 11 est un espace dans lequel des entrées futures de répertoires à liste enchaînée pourront faire l'objet d'une expansion Il est à noter que les entrées de réper- toires 258 sont ( 1) modifiables par octets si la mémoire 234 est une mémoire EEPROM modifiable par octets ou ( 2) modifiables par bits si la mémoire 234 est une mémoire à accès sélectif RAM. La Figure 12 représente la structure de fichiers 300 d'un ensemble de mémoires flash 302 La structure de fichiers 300 comporte des entrées de répertoires 366 modifiables par octets et qui sont analogues aux entrées d'un répertoire en disque dur et aux entrées d'un répertoire en disque souple Les entrées de réper- toires 366 modifiables par octets sont mémorisées dans une mémoire séparée 360. La structure de fichiers 300 est une structure de fichiers de dimension variable, également appelée une structure de fichiers variables. Les blocs 322, 324 et 326 de l'ensemble de mémoires flash 302 sont des blocs " à réserver", qui sont également appelés des blocs réservés ou des blocs de réserve Le bloc 328 est un bloc à libérer. Les blocs 330, 304, 306 et 308 sont des blocs libres Le bloc 310 est un bloc partiellement libre, qui contient partiellement des données ou un code. Les blocs 312, 314, 316, 318 et 320 comprennent, en coopération avec unepartie du bloc 310, ( 1) les fichiers de dimensions variables contigus, actifs et éliminés et ( 2) les fichiers de sous-répertoires actifs et éliminés et de longueur fixée Les fichiers 340, 342, 344, 346, 350 et 354 sont des fichiers éliminés se trouvant dans les blocs 312, 314, 316, 318 et 320. Les fichiers 338, 348 et 352 sont des fichiers de sous- répertoires éliminés se trouvant à l'intérieur des blocs 316, 318 et 320. Pour la structure de fichiers 310 représentée sur la Figure 12, l'enregistrement initial 362, la table d'états de blocs 364 et les entrées de répertoires 366 sont mémorisées dans une mémoire séparée 360 qui ne fait pas partie de l'ensemble de mémoires flash 302. Cette mémoire séparée 360 est cependant incluse comme une partie du système d'ordinateur personnel, qui con- tient également l'ensemble de mémoires flash 302. Dans une réalisation de la présente invention, la mémoire séparée 360 est une mémoire EEPROM modifiable par octets de type conventionnel. Dans une autre réalisation, la mémoire séparée 360 est une mémoire SRAM Cette mémoire SRAM 360 est reliée à une batterie qui fait partie du système d'ordina- teur personnel Lorsqu'une alimentation externe en courant de l'ordinateur personnel est coupée, la batterie qui est reliée à la mémoire SRAM 360 continue à alimenter en courant cette mémoire 360. Dans encore une autre réalisation de la présen- te invention, la mémoire 360 se compose d'une mémoire NVRAM ( c'est-à-dire une mémoire RAM rémanente). Dans la réalisation représentée sur la Figure 12, la mémoire 360 est une mémoire EEPROM modifiable par octets Aucun indicateur de répertoire ne doit être mémorisé dans la mémoire EEPROM 360, étant donné que, par définition, les entrées de répertoires 366 sont trouvées dans la mémoire 360 Les répertoires de départ en cours sont mémorisés dans la mémoire 360. Dans une réalisation, la structure de fichiers 300 comporte une en-tête qui est mémorisée dans l'ensem- ble de mémoires flash 302 L'en-tête est semblable à l'en-tête décrite en référence à la Figure 8 L'en-tête pour la structure de fichiers 300 de la Figure 12 contient également une information qui précise que le répertoire de départ est situé dans une position fixée à l'inté- rieur de l'espace 366 de la mémoire 360 A nouveau aucun indicateur de répertoire n'est nécessaire. L'ensemble de mémoires flash 302 peut seule- ment être effacé par blocs et non par octets individuels. Au contraire, la mémoire EEPROM 360 est électriquement effaçable et elle peut être réécrite par un utilisateur sur une base octet-par-octet La mémoire EEPROM 360 est par conséquent considérée comme étant modifiable par octets Le fait que la mémoire EEPROM 360 est modi- fiable par octets signifie que les entrées de répertoi- res 366 peuvent être individuellement effacées, réécrites et changées. La structure de répertoires 366 de la structure de fichiers 300 est analogue à la structure de répertoires d'un disque dur ou d'une disquette dans un système d'ordi- nateur personnel La structure de répertoires 366 est appelée une structure de répertoires analogue à un disque. La structure de répertoires 366 analogue à un disque fait en sorte, dans une interface de système d'exploitation pour l'ordinateur personnel, d'établir une quasi-compatibilité avec une structure de fichiers constituée par des disques durs magnétiques Pour la structure de fichiers 300, les fichiers de données sont créés dans l'ensemble de mémoires flash principal 302 de façon à mémoriser à la fois des contenus de répertoires et de sous-répertoires De façon analogue, dans des unités à disques durs magnétiques et des unités à disques souples connues pour ordinateurs personnels, à la fois des contenus de répertoires et de sous-répertoires sont mémorisés sur les disques En outre, les entrées de répertoires 366 ont une structure semblable à celle d'une table d'allocation de fichiers ("FAT") qu'on trouve35 dans le système d'exploitation DOS mémorisé dans de nombreuses unités à disques durs de l'art antérieur. Pour la réalisation représentée sur la Figure 12, les entrées de répertoire 366 sont mémorisées dans des positions 368, 370, 372, 374 et 376 de la mémoire 360 Comme cela sera décrit de façon plus détaillée dans la suite, les entrées 366 de répertoire analogues à un disque diffèrent respectivement des entrées 158, 258 de répertoire à liste enchaînée des Figures 8 et 11. La Figure 13 représente des exemples des struc- tures des entrées de répertoire 366 La Figure 13 représen- te des entrées de répertoire 301 et 361 qui font partie des entrées de répertoire 366 Chaque entrée de répertoire a une longueur fixée par exemple de 40 octets L'entrée de répertoire de départ 301 comporte une désignation de huit octets 311, une extension de fichier de trois octets 313, un indicateur d'attribut d'un octet 315, une zone réservée de dix octets 317, une zone de temps de deux octets 319, une zone de date de deux octets 321, une grappe de départ de deux octets 323, un état d'indicateur de grappe d'un octet 325, une zone de dimension de fichier de quatre octets 327 et un pointeur de deux octets 329. Les octets de désignation de fichier 311 et d'extension de fichier 313 identifient le fichier correspondant au répertoire de départ 301. Les indicateurs d'attributs 315 sont composés de huit bits 341, 343, 345, 347, 349, 351, 353 et 355. Le bit 341 ( bit O) repère les fichiers comme étant un fichier ROM, ce qui signifie que le fichier ne peut pas être édité ou effacé Le bit 343 (bit 1) indique que le fichier est masqué pour le DOS et ne peut pas être lu avec l'ordre de répertoire de DOS et certains ordres de DOS Le bit 345 ( bit 2) est le bit de systè- me qui indique que le fichier est un fichier de DOS qui ne peut pas être lu avec un ordre de répertoire et avec certains autres ordres de DOS. Le bit 347 ( bit 3) est un label de volume Le bit 349 ( bit 4) est un pointeur de sous-répertoire. Si le bit 347 ou le bit 349 sont activés, alors le DOS doit traiter l'entrée différemment d'une entrée de réper- toire de fichier normal. Si le bit de sous-répertoire 349 est activé, cela indique que l'entrée de répertoire est un fichier de sous-répertoire et que le fichier de sous-répertoire est mémorisé dans un des blocs de l'ensemble de mémoires flash 302. Le bit 351 ( bit 5) est un bit d'archive qui indique que le fichier a été sauvegardé par un acces- soire de sauvegarde Le bit 353 ( bit 6) et le bit 355 ( bit 7) sont des bits réservés qui ne sont pas utilisés. Les octets réservés 317 sont des octets réservés et non utilisés. Les octets 319 et 321 constituent les indica- tions de temps et de date pour les fichiers. Les octets 327 indiquent la dimension ou lon- gueur de fichiers. Les octets 323 et 325 du répertoire de départ 301 définissent le type de table d'allocation de fichiers ("FAT") dans ce répertoire Les octets 323 de grappe de départ définissent l'adresse de départ d'un fichier dans l'ensemble de mémoires flash 302 L'octet 325 est appelé l'octet d'état de grappe L'octet d'état de grappe 325 indique l'état du fichier qui commence à l'adresse de départ indiquée dans les octets 323 L'octet d'état de grappe 325 indique si le fichier est disponible, éliminé ou défectueux. Il est à noter que la grappe de départ définie par les octets 323 est une grappe artificielle simulée. Le fichier défini par l'entrée de répertoire de fichier 301 est en fait un fichier de longueur variable La structure d'un fichier de grappe est simulée par le répertoire de départ 301 de façon à avoir une structure de répertoire qui est un peu analogue à la structure de répertoire qu'on trouve dans une unité à disque magné- tique ( dur ou souple) dans lequel le DOS est mémorisé. Si la dimension de fichier mémorisé dans les octets 327 est supérieure à la dimension de la grappe de départ 323, alors plusieurs grappes simulées doivent être enchaînées ensemble de façon à spécifier complète- ment le fichier Cela est réalisé de la façon suivante. Les octets de pointeurs 329 du répertoire de départ 301 sont pointés sur une entrée 361 de répertoire d'adjonction de la Figure 13 L'entrée 361 de répertoire d'adjonction comprend des octets 383, 385 d'une table d'allocation de fichiers Les octets 383 sont les octets de grappe L'octet 385 est l'octet d'état de grappe. Les octets de grappe 383 contiennent l'adresse de départ, dans l'ensemble de mémoires flash 302, de la donnée ou du code qui doit être enchaînée avec la donnée ou code pointé par l'adresse contenue dans les octets de grappe de départ 323 L'octet 385 du répertoire d'adjonction 361 indique l'état du fichier commençant à l'adresse définie par les octets 383 L'octet d'état de grappe 385 indique si le fichier qui est mémorisé à l'adresse contenue dans les octets 383 est disponible, éliminé ou défectueux. S'il n'y a pas d'autres données ou codes qui ont été enchaînés ensemble pour former le fichier, alors le pointeur 389 de l'entrée de répertoire 361 n'est pas pointé sur d'autres entrées de répertoires. Du fait que l'entrée de répertoire 361 est simplement une entrée de répertoire d'adjonction, il est sans importance que les contenus soient constitués par des octets de désignation 371, des octets d'extension 373, des octets d'attributs 375, des octets réservés 377, des octets de temps 379, des octets de date 381 et des octets de dimension de fichier 387. Il est à noter que certaines entrées de réper- toires ne comportent aucun fichier d'adjonction En outre, certaines autres entrées de répertoires compor- tent plusieurs fichiers d'adjonction Le pointeur d'un * fichier d'adjonction peut être pointé sur un autre fi- chier. La structure de fichiers 300 exploite avanta- geusement la possibilité de modification par octets de la mémoire 360 en utilisant des entrées de répertoires de longueur uniforme de façon à les rendre aisément réutilisables au moyen d'une superposition d'écriture. Les agencements symétriques des entrées permettent égale- ment de les traiter comme des entrées d'une table d'allo- cation de fichiers conventionnels du type-disque Par utilisation d'octets de définition d'état de grappe du style-FAT, la définition d'état de la structure de fichiers 300 peut être effectuée d'une manière relati- vement simple et elle ressemble à la définition d'état effectuée pour des unités à disques durs conventionnelles mémorisant un logiciel DOS. Des entrées de répertoires correspondants de la mémoire 360 font intervenir des combinaisons de positions d'indexage répertoire/FAT de la même façon qu'un disque dur ( ou souple) utilise ses index FAT séparés pour des références de fichiers. Chaque entrée de répertoire/FAT se trouvant dans la mémoire 360 est analogue à des entrées DOS du fait qu'elle se réfère à l'adresse de départ d'un fichier pour définir la grappe de départ Des grappes artificiel- les sont enchaînées à cette première entrée FAT à chaque fois que la longueur de fichier est plus grande que la grappe simulée. L'enregistrement initial 362 mémorisé dans la mémoire 360 contient la dimension de grappe simulée. L'enregistrement initial 262 contient également le nombre de grappes disponibles et le nombre maximal d'entrées de répertoires Le nombre de grappes disponibles définit la capacité de formatage de l'ensemble de mémoires flash 302 L'enregistrement initial 362 contient également une information concernant le type de système de fichier particulier et la révision de système de fichier parti- culier L'enregistrement initial 362 contient également certains autres paramètres du système de fichier, notam- ment une information concernant des blocs réservés dans l'ensemble de mémoires flash 302 et une information se rapportant à la position du répertoire de départ dans les entrées de répertoires 366. Le système d'exploitation de l'ordinateur personnel examine un nombre de secteurs équivalant au nombre d'entrées de répertoires/FAT dans la mémoire 360, multiplié par la dimension de grappe simulée qui est définie sur le format Le nombre d'entrées de réper- toires/FAT dans la mémoire 360 est égal à la dimension des zones combinées 368, 370, 372, 374 et 376 divisée par la dimension des entrées de répertoires. La table d'états de blocs 364 de la Figure 12 est semblable, en ce qui concerne son contenu, à la table d'états de blocs 156 de la Figure 8 La table d'états de blocs 364 de la Figure 12 contient des infor- mations définissant quels blocs de l'ensemble de mémoires flash sont des blocs actifs, quels blocs sont des blocs réservés et quels blocs sont des blocs défectueux ou incorrects. L'opération de nettoyage concernant l'ensemble de mémoires flash 302 de la Figure 12 est semblable à l'opération de nettoyage qui a été décrite pour l'en- semble de mémoires flash 112 de la Figure 8 Le net- toyage de l'ensemble de mémoires flash 302 de la Figure 12 intervient en relation avec la table d'états de blocs 364 et est effectué selon un mode circulaire, comme décrit ci-dessus pour l'ensemble de mémoires flash 112 de la Figure 8 Pour la structure de fichiers 300 repré- sentée sur la Figure 12, les blocs 316, 318 et 320 sont les blocs suivants à nettoyer et comprimer. Le système d'ordinateur personnel doit suivre l'utilisation du répertoire et de la mémoire flash princi- pale 302 pour connaître o se trouve le nouvel espace disponible pour chaque nouvelle entrée Cela constitue une opération importante de calcul, étant donné l'absence de secteurs analogues à un disque. La dimension des entrées de répertoires 366, de l'enregistrement initial 362 et de la table de blocs d'états 364 ne peut pas être étendue au delà de la dimen- sion de la mémoire 360 Néanmoins, les fichiers de sous- répertoire peuvent être mémorisés dans l'ensemble de mémoires flash 302. Du fait de l'impossibilité d'effectuer généra- lement une superposition d'écriture sur une information se trouvant dans la mémoire flash, les fichiers de réper- toire 366 doivent allouer au préalable un espace pour un nombre fixé d'entrées et ensuite effectuer un pointage pour une adjonction d'entrées additionnelles. La Figure 14 représente la structure de fi- chiers 400 d'un ensemble de mémoires flash 401 La struc- ture de fichiers 400 est une structure de fichiers qui comprend des secteurs et un répertoire flash dynamique. La structure de fichiers 400 est également appelée une structure de fichiers à secteurs. Dans une structure de fichiers à secteurs comme la structure de fichiers 400, un code ou des don- nées sont mémorisés dans des secteurs Les secteurs sont analogues à des secteurs de disques durs et de disquettes de l'art antérieur utilisés dans un système d'ordinateur personnel Sur un disque dur de l'art anté- rieur, il est prévu typiquement 17 secteurs par piste. Pour certains disques durs, il est prévu quatre secteurs par grappe Pour d'autres disques durs et pour une dis- quette de 3,5 pouces de grande densité, une grappe com- prend un seul secteur Une grappe est la plus petite unité mémorisée et logiquement adressable. Pour la structure de fichiers 400, une grappe est constituée d'un seul secteur Chaque secteur a une largeur de 512 octets et une longueur fixée Chaque grappe est également appelée une "unité d'allocation" ("AU"). Dans une autre réalisation de la présente invention, chaque grappe est formée de deux secteurs. Dans encore une autre réalisation, chaque grappe est formée de trois ou plus de trois secteurs. La structure de fichiers à secteurs 400 contri- bue à simplifier un logiciel ou un micrologiciel de pilotage basé sur une émulation de structures de fichiers à disques conventionnelles Cela s'explique par le fait que l'agencement avec secteurs de la structure de f i- chiers 400 est semblable à la structure de fichiers à secteurs qui est utilisée dans des unités à disques durs. La structure de fichiers à secteurs 400 permet également une sélection aléatoire de blocs d'effacement pour un nettoyage Cela contribue à son tour à réduire le mouvement d'un fichier lorsque ce mouvement est inu- tile Cela contribue également à réduire une itération excessive. D'autre part, une structure de fichiers à secteurs ne peut pas permettre, complètement et de façon contiguë, une exécution en place de fichiers avec codes. Néanmoins, des dispositions contiguës de fichiers de mémoires à pages et secteurs permettent une exécution en place pour de grandes parties contiguës ou de petits fichiers avec codes. Pour une structure de fichiers à secteurs, l'itération de blocs individuels doit être suivie pour permettre la gestion efficace de la redistribution de blocs d'effacement chauds et froids pendant un nettoyage. Cette itération de blocs individuels est gérée intrin- sèquement au moyen des règles de nettoyauge/réallocation qui vont être décrites dans la suite. Les blocs 416, 424 et 428 de l'ensemble de mémoires flash 401 sont des blocs " à réserver", qui sont également appelés des blocs de réserve ou des blocs réservés Le bloc 408 est un bloc à libérer, qui devient un bloc libre après l'opération de nettoyage suivante. Les blocs 404, 414 et 420 de l'ensemble de mémoires flash 401 sont des blocs libres, qui sont des blocs utilisables pour mémoriser un code et des données. Le bloc 430 est un bloc partiellement libre, qui contient des données ou un code dans une position 464 et qui comporte un espace libre dans une position 462. Les secteurs situés à l'intérieur des blocs 402, 406, 412, 418 et 426 constituent, en coopération avec les secteurs se trouvant dans la partie 464 du bloc 430, des fichiers et sous-répertoires actifs et éliminés Les secteurs 403, 405, 409, 411, 413, 415, 417, 423, 425 et 427 se trouvant dans le bloc 402 et les secteurs 431, 433, 439, 443, 445 et 453 se trouvant dans le bloc 406 sont des exemples de secteurs pour fichiers et sous-répertoires actifs Les blocs 412, 418, 426 et 430 comprennent également des secteurs pour fichiers et sous-répertoires actifs Les secteurs 407, 419, 421, 429, 435, 437, 441, 447, 449, 451, 457, 459, 461, 463, 465, 467, 469, 471, 473, 475, 477, 479, 481 Y 483, 485, 487, 489 et 491 sont des secteurs contenant des fichiers et sous-répertoires éliminés. En utilisant la table d'allocation de fichiers 446, les grappes de la structure de fichiers 400 sont logiquement enchaînées de façon à former un fichier complet Cela est semblable à ce qui est réalisé dans un système d'ordinateur personnel de l'art antérieur comportant une unité à disque dur ou une unité à disque souple et o les grappes de disques durs ou de disques souples sont logiquement enchaînées de façon à former un fichier complet. Sur la Figure 14, la table d'allocation de fichiers 446 est contenue dans le bloc 422 La table d'allocation de fichiers 446 fait partie de l'agencement de répertoire dynamique utilisé par la structure de fichiers 400 Le bloc 422 comporte un indicateur de répertoire 440, un enregistrement initial 442, une table d'états de blocs 444, la FAT ( table d'allocation de fichiers) 446, des entrées de répertoiresà liste enchai- née 448 et un espace libre 450 Le bloc 422 contient également le répertoire en cours. L'indicateur de répertoire 440 contient une configuration de données qui indique que le bloc 422 contient les entrées 448 de répertoires à liste enchai- née. L'enregistrement initial 442 suit l'indicateur de répertoire 440 L'enregistrement initial 442 contient des informations concernant le type de système de fichiers particulier et la révision de système de fichiers particu- lier L'enregistrement initial 442 contient également certains paramètres de système de fichiers Ces paramètres comportent une information sur la capacité formatable, une information sur les blocs réservés, une information sur les répertoires ajoutés, une information se rappor- tant au répertoire ancien et une information se rappor- tant au répertoire de départ. La table d'états de blocs 444 suit l'enregistre- ment initial 442 Cette table d'états de blocs 444 con- tient des informations définissant quels blocs sont des blocs actifs, quels blos sont des blocs de réserve et quels blocs sont des blocs défectueux ou incorrects. La table d'états de blocs 444 contient également une information de compte de cycles pour chaque bloc L'infor- mation de compte de cycles indique combien de fois un bloc a été effacé et réécrit. La table d'allocation de fichiers 446 suit la table d'états de blocs 444 dans le bloc 422 La table d'allocation de fichiers 446 est située avant le réper- toire de départ qui est disposé à l'intérieur des entrées 448 de répertoires à liste enchaînée. Les entrées 448 de répertoires à liste enchaî- née sont également appelées le répertoire principal 448 Le répertoire principal 448 contient une série d'entrées de répertoires individuels Chaque entrée de répertoire est soit ( 1) un pointeur sur un sous-réper- toire ( le sous-répertoire étant mémorisé dans un bloc autre que le bloc 422) soit ( 2) un répertoire pour un fichier Les entrées de répertoires 448 de la Figure 14 ressemblent aux entrées de répertoires 158 de la Figure 8, excepté que les pointeurs de FAT 446 sont utilisés dans la structure de fichiers 400 à la place d'adresses physiques de départ en mémoire principale. Chaque entrée de fichier de répertoire de la Figure 14 contient une information concernant la désignation/ extension du fichier, la date, le temps, le type de fichier, la longueur de fichier, un pointeur parental et un pointeur filial Chaque entrée de fichier de réper- toire contient également un numéro de grappe qui est le numéro de la première grappe utilisée dans un fichier35 particulier Le numéro de grappe a une dimension de deux octets Dans une réalisation, la table d'alloca- tion de fichiers 446 est une liste d'entrées de deux octets, une entrée pour chaque grappe Le système d'ex- ploitation pour la structure de fichiers 400 utilise le numéro de première grappe pour accéder à la table d'allocation de fichiers 446 L'entrée de FAT pour cette grappe contient le numéro de la grappe suivante dans le fichier Chaque entrée de FAT 446 est un pointeur sur la grappe suivantedu fichier Le système d'exploita- tion utilise ce pointeur pour accéder à la grappe suivan- te du fichier et il poursuit ensuite jusqu'à ce qu'un repère spécial dans le FAT 446 soit atteint Dans une réalisation de la présente invention, ce repère spécial est F O en hexadécimal Si l'entrée de FAT 446 est zéro, cela indique que la grappe n'est pas utilisée. Pour la structure de fichiers 400 de la Figure 14, chaque entrée de FAT 446 est en correspondance un-sur- un avec une grappe physique de l'ensemble de mémoires flash 401 et elle est pointée sur des entrées de FAT enchaînées jusqu'à ce que la dernière grappe d'alloca- tion de fichiers soit atteinte La dernière entrée de FAT est indiquée par F O ( en hexadécimal), qui est une donnée qui est encore effacée c'est-à-dire qui contient uniquement des uns. Les entrées de répertoires pour la structure de fichiers 460 de la Figure 14 ressemblent aux entrées de répertoires pour la structure de fichiers 110 de la Figure 8, excepté que, pour la structure de fichiers 400 de la Figure 14, des pointeurs de FAT sont utilisés à la place d'adresses physiques de départ en mémoire principale Pour la structure de fichiers 400 de la Figure 14, une information concernant des fichiers non contigus est liée par chaînage de FAT analogue à un disque. Une des manières dont la structure de fichiers 400 diffère de celle d'un disque dur ou d'un disque souple consiste en ce que des pointeurs filiaux et paren- taux sont utilisés dans les entrées de répertoires à liste enchaînée 448. Les entrées de FAT et les grappes de mémoire principale proprement dites sont symétriques en longueur et elles se composent toutes deux d'adresses du type-index raccourci Le nombre maximal d'entrées de FAT est fixé, en déterminant la capacité de formatage pour une dimension de grappe donnée ( c'est-à-dire un nombre donné de sec- teurs par AU) ainsi que le nombre de blocs de réserve. Cela est enregistré dans l'enregistrement initial 442 lors du formatage. En addition aux états "libre", "de réserve" et "mauvais", la table d'états de blocs 444 contient une information concernant le compte de cycles pour chaque bloc La table d'états de blocs 444 préserve le ou les blocs de répertoire ainsi que les blocs de réserve en les considérant comme inaccessibles ( afin de permettre un nettoyage ultérieur), en empêchant ainsi le système de fichiers de tenter une superposition d'écri- ture desdits blocs Des blocs défectueux sont également évités et ils sont signalés dans la table d'états de blocs 444. Des grappes sont généralement écrites de façon contiguë par l'intermédiaire de la fin d'un bloc libre donné, en étant ainsi enchaînées avec des grappes sui- vantes décrites dans un autre bloc libre Cet usage de grappes normalement consécutives permet d'assister une opération d'exécution-en- place sur pages pour des fichiers de codes qui sont spécifiés de façon appropriée. Une élimination ultérieure de fichiers crée de façon aléatoire des parties non utilisées dans l'ensemble de mémoires flash principal. Lorsqu'un nettoyage est nécessaire, le système d'ordinateur personnel identifie quels blocs doivent être effacés pour une réécriture ultérieure En d'autres termes, lors d'un nettoyage, l'ordinateur identifie les blocs comportant des fichiers qui doivent être réa- alloués et déplacés lors d'un nettoyage L'identification de blocs à effacer lors d'un nettoyage est contrôlée par deux règles La première règle consiste en ce que le bloc ayant subi le moins d'itérations est sélection- né Cela diminue les déséquilibres d'itération entre des blocs chauds et des blocs froids. S'il n'existe pas de grandes disparités entre des comptes de cycles de blocs, alors la seconde règle est prépondérante En d'autres termes, lorsqu'une distri- bution d'itération n'est pas considérée comme un problème par l'ordinateur, la seconde règle est prépondérante. Cette seconde règle spécifie que les blocs contenant le plus grand nombre de secteurs éliminés sont les blocs qui sont sélectionnés pour être effacés. La raison d'application de cette seconde règle consiste en ce que les grappes contenant des fichiers éliminés n'ont pas besoin d'être sorties d'un bloc avant effacement Les fichiers éliminés ne contiennent aucune information devant être sauvegardée de sorte que les fichiers éliminés peuvent être effacés dans une partie d'une opération de nettoyage En d'autres termes, il n'est pas nécessaire d'effectuer une réallocation de fichiers élimines La seconde règle fait ainsi en sorte qu'il y ait un minimum de sorties de grappes ou de sec- teurs actifs avant l'effacement qui fait partie d'une opération de nettoyage. On a essentiellement affaire à un processus aléatoire qui définit quels blocs contiennent les grappes de fichiers éliminés au maximum En conséquence, la seconde règle signifie que le processus de nettoyage fait en sorte qu'il se produise d'une manière fortement aléatoire une sélection concernant les blocs à effacer. Cette sélection de blocs essentiellement aléatoire con- tribue à augmenter l'efficacité du nettoyage tout en réduisant simultanément au minimum les disparités d'ité- ration. Les deux règles définies ci-dessus permettent de gérer les distributions d'itérations à l'intérieur de l'ensemble de mémoires flash 401 Les deux règles précitées contribuent ensemble à réduire au minimum des différences d'itérations Il en résulte que le net- toyage de la structure de fichiers 400 est essentielle- ment aléatoire. Pour la structure de fichiers 400 de la Figure 14, un nouveau répertoire ( et un nouveau répertoire d'adjonction), ainsi qu'une nouvelle table d'allocation de fichiers (FAT), sont incorporés dans un bloc de réserve lors du nettoyage. Dans une réalisation, la structure de fichiers 400 comprend une en-tête mémorisée dans l'ensemble de mémoires flash 401 L'en-tête contient une information semblable à l'information contenue dans l'en-tête décrite cidessus en relation avec la structure de fichiers de la Figure 8. La Figure 15 représente une structure de fi- chiers 500 intervenant dans l'ensemble de mémoires flash 501 La structure de fichiers 500 est une structure de fichiers qui contient des secteurs et elle est appelée une structure de fichiers à secteurs. Dans la structure de fichiers à secteurs 500, une donnée ou un code sont mémorisés dans des secteurs. Dans la réalisation de la Figure 15, il est prévu un secteur par grappe et chaque secteur comporte 512 octets. Les blocs 508, 516 et 524 sont les blocs de réserve de la structure de fichiers 500 Le bloc 508 est un bloc à libérer. Les blocs 504, 514 et 520 sont des blocs li- bres, le bloc 530 est un bloc partiellement libre, qui contient une donnée ou un code dans la position 564 et qui comporte un espace libre dans la position 562. Les secteurs situés dans les blocs 502, 506, 512, 518 et 526 contiennent, en coopération avec les secteurs situés dans la partie 564 du bloc 530, les fichiers et sous-répertoires actifs et éliminés Les secteurs 503, 505, 509, 511, 513, 515, 517, 523, 525 et 527 situés dans le bloc 502 et les secteurs 531, 533, 539, 543, 545 et 553 situés dans le bloc 506 sont des exemples de secteurs à fichiers et sous-répertoires actifs Les blocs 512, 518, 526 et 530 comportent égale- ment des secteurs à fichiers et sous-répertoires actifs. Les secteurs 507, 519, 521, 529, 535, 537, 541, 547, 549, 551, 557, 559, 561, 563, 565, 567, 569, 571, 573, 575, 577, 579, 581, 583, 585, 587, 589 et 591 sont des secteurs contenant des fichiers et sous-répertoires éliminés. Pour la structure de fichiers 500 représentée sur la Figure 15, l'enregistrement initial 542, la table d'états de blocs 544, la table d'allocation de fichiers 546, les entrées de répertoires à liste enchaînée 548 et l'espace de répertoire libre sont contenus dans une mémoire séparée 534 Elle ne fait pas partie de l'ensem- ble de mémoires flash 501 La mémoire séparée 534 est cependant incluse comme une partie du système d'ordinateur personnel qui comprend également l'ensemble de mémoires flash 501. Dans une réalisation de l'invention, la mémoire séparée 534 est une mémoire EEPROM modifiable par octets conventionnelle. Dans une autre réalisation, la mémoire séparée 534 est une mémoire SRAM reliée à une batterie servant de secours. Dans encore une autre réalisation, la mémoire séparée 534 est une mémoire NVRAM. Dans la réalisation représentée sur la Figure , la mémoire 534 est une mémoire EEPROM Aucun indica- teur de répertoire ne doit être mémorisé dans la mémoire EEPROM 534, étant donné que par définition les entrées de répertoires à liste enchaînée 548 sont situées dans la mémoire 534 En d'autres termes, le répertoire en cours est mémorisé dans la mémoire 534. Dans une réalisation, la structure de fichiers 500 comporte une en-tête mémorisée dans l'ensemble de mémoires flash 501 L'en-tête contient une information semblable à l'information contenue dans l'en-tête décrite en relation avec la Figure 8. La structure de fichiers 500 de la Figure ressemble à la structure de fichiers 400 de la Figure 14, excepté que la structure de fichiers 500 comporte des entrées de répertoires 548 situées dans une position fixée dans la mémoire séparée 534 Cela signifie que la structure de fichiers 500 ne comporte aucun indicateur de répertoire par rapport à la mémoire 534 et qu'il existe un nombre maximal d'entrées de répertoires. Pour simplifier des modifications aléatoires d'un répertoire à liste enchaînée, les entrées de réper- toires 548 sont à nouveau symétriques en longueur La table d'états de blocs 544 est utilisée pour une gestion d'itération pendant une réallocation aléatoire de blocs relativement efficaces Toutes les opérations concernant les autres répertoires et la FAT ressemblent à celles de la structure de fichiers 400 de la Figure 14. La Figure 16 représente une structure de fi- chiers 600 de l'ensemble de mémoires flash 601 La struc- ture de fichiers 600 est une structure de fichiers qui comporte des secteurs et elle est appelée une structure de fichiers à secteurs. Dans la structure de fichiers à secteurs 600, une donnée ou un code sont mémorisés dans des secteurs Dans la réalisation de la Figure 16, il est prévu un secteur par grappe et chaque secteur comporte 512 octets. Les blocs 608, 616 et 624 sont des blocs de réserve de la structure 600 Le bloc 608 est un bloc à libérer. Les blocs 604, 614 et 620 sont des blocs libres. Le bloc 630 est un bloc partiellement libre, qui contient une donnée ou un code dans la position 664 et qui compor- te un espace libre dans la position 662. Les secteurs situés dans les blocs 602, 606, 612, 618 et 626 contiennent, avec les secteurs situés dans la partie 664 du bloc 630, les fichiers et sous- répertoires actifs et éliminés Les secteurs 603, 605, 609, 611, 613, 615, 617, 623, 625 et 627 situés dans le bloc 602 et les secteurs 631, 633, 639, 643, 645 et 653 situés dans le bloc 606 sont des exemples de secteurs à fichiers et sous-répertoires actifs Les blocs 612, 618, 626 et 630 contiennent également des secteurs à fichiers et sous-répertoires actifs Les secteurs 607, 619, 621, 629, 635, 637, 641, 647, 649, 651, 657, 659, 661, 663, 665, 667, 669, 671, 673, 675, 677, 679, 681, 683, 685, 687, 689 et 691 sont les sec- teurs contenant des fichiers et sous-répertoires éliminés. Pour la structure de fichiers 600 représentée sur la Figure 16, l'enregistrement initial 642, la table d'états de blocs 644, la table d'allocation de fichiers 646 et les entrées de répertoires 648 sont mémorisés dans une mémoire séparée 664 qui ne fait pas partie de l'ensemble de mémoires flash 601 La mémoire séparée 634 est cependant incluse comme une partie du système d'ordinateur personnel qui contient également l'ensemble *de mémoires flash 601. Dans une réalisation de l'invention, la mémoire séparée 634 est une mémoire EEPROM modifiable par octets conventionnelle. Dans une autre réalisation, la mémoire séparée 634 est une mémoire SRAM reliée à une batterie servant de secours. Dans encore une autre réalisation, la mémoire séparée 634 est une mémoire NVRAM. Dans la réalisation représentée sur la Figure 16, la mémoire 634 est une mémoire EEPROM Aucun indica- teur de répertoire n'a besoin d'être mémorisé dans la mémoire EEPROM 634, étant donné que, par définition, les entrées de répertoires 648 sont trouvées dans la mémoire 634 En d'autres termes, le répertoire en cours est mémorisé dans la mémoire 634. Dans une réalisation, la structure de fichiers 600 comprend une en-tête mémorisée dans l'ensemble de mémoires flash 601 L'en-tête contient une information semblable à l'information contenue dans l'en-tête décrite en relation avec la Figure 8. La structure de fichiers 600 de la Figure 16 ressemble à la structure de fichiers 400 de la Figure 14, excepté que la structure de fichiers 600 ( 1) a une structure de répertoire 648 qui est analogue à la struc- ture de répertoire d'un disque dur ou d'une disquette dans un ordinateur personnel et ( 2) elle contient des entrées de répertoires 648 dans une mémoire séparée 634 La structure de fichiers 600 ne comporte aucun indicateur de répertoire en relation avec la mémoire 634. La structure de fichier 600 de la Figure 16 a par conséquent une structure de répertoire analogue à un disque Cette conception suit simplement les conven- tions pour FAT concernant les répertoires à disques magnétiques La possibilité de modification d'octets permet une superposition d'écriture directe des informa- tions d'utilisation/chaînage de secteurs de répertoire et de table d'allocation de fichiers FAT La parti- cularité spécifique principale de l'effacement global, c'est-à-dire "flash", consiste en ce que les secteurs logiques peuvent faire l'objet d'une superposition d'é- criture seulement après un premier effacement au niveau d'un bloc d'effacement En con quence, les particulari- tés des entrées des fichiers et des sous-répertoires ainsi que la plupart des autres limitations et caractéris- tiques ressemblent à celles de la structure de fichiers 300 de la Figure 12, bien qu'un nettoyage suive les conventions concernant la structure de fichiers 110 de la Figure 8 La structure de fichiers 600 de la Figure 16 opère d'une manière analogue à des disques magnétiques conventionnels, les opérations de lecture et d'écriture concernant des grappes de fichiers et de sous-répertoires étant semblables aux opérations concernant des grappes de disques L'utilisation de la table d'états de blocs 644 et les opérations de nettoyage constituent les élé- ments essentiels et spécifiques du mode "flash" Dans une réalisation préférée, on utilise un système de "sau- vegarde de répertoire/FAT" analogue à celui de disques conventionnels. Les réalisations préférées de la présente invention contribuent à améliorer la fiabilité des dispo- sitifs du fait du contrôle intrinsèque du mode d'itéra- tion avec effacement global Les réalisations préférées de la présente invention contribuent également à améliorer la fiabilité des systèmes de fichiers grâce à la réalisa- tion de copies de sauvegarde intrinsèque c'est-à-dire en évitant une superposition d'écriture d'informations sur des fichiers et/ou des répertoires actifs. Les réalisations préférées de la présente invention réduisent au minimum les besoins en mémoires de système RAM du fait que ( 1) des codes de commande sont incorporés dans le micrologiciel et ( 2) on utilise des blocs de réserve pour un transfert direct de bloc-à- bloc dans les fichiers et répertoires pendant un nettoya- ge. Dans des réalisations préférées de la présente invention, on réduit au minimum les pertes d'espace de mémorisation en mémoire flash en utilisant des struc- tures de répertoires à listes enchaînées. Les réalisations de la présente invention avec fichiers variables permettent une réallocation par l'intermédiaire d'un nettoyage de petites parties contrôlables de l'ensemble de mémoires flash. Dans la réalisation utilisant un répertoire dynamique/à secteurs, celuici contribue à améliorer les performances, la fiabilité et l'efficacité, grâce à l'utilisation de la table d'états de blocs La table d'états de blocs permet ( 1) d'uniformiser l'ensemble de mémoires flash ainsi que l'itération des blocs en vue d'augmenter au maximum la fiabilité des dispositifs tout en contribuant à empêcher des points chauds de causer une altération des performances d'effacement et d'écriture par rapport à d'autres dispositifs et à d'autres blocs situés dans des dispositifs ( quand ils existent) et ( 2) le suivi de blocs de réserve en vue d'un nettoyage rapide et fiable ainsi qu'un efface- ment des "tâches d'arrière-plan ". Bien entendu l'invention n'est pas limitée aux exemples de réalisation ci-dessus décrits et représen- tés, à partir desquels on pourra prévoir d'autres modes et d'autres formes de réalisation, sans pour cela sortir du cadre de l'invention. REVENDICATIONS 1 Mémoire semiconductrice rémanente qui est effaçable seulement par blocs, o chaque bit de la mémoire semiconductrice rémanente ne peut pas faire l'objet d'une superposition d'écriture pour passer d'un premier état logique à un second état logique sans un effacement antérieur et o chaque bit de la mémoire semiconductrice rémanente peut faire l'objet d'une superposition d'écriture pour passer d'un second état logique à un premier état logique sans un effacement antérieur, mémoire caractérisée en ce qu'elle comprend: (A) un bloc actif ( 132; 136; 138; 140; 142; 144) pour mémoriser un premier fichier (B) un bloc de réserve ( 114; 116; 118) pour mémoriser un second fichier, qui est une copie du premier fichier, la copie étant faite pendant une opération de nettoyage avant un effacement du bloc actif; (C) un bloc de répertoire ( 134) comprenant une entrée de répertoire ( 158) pour identifier le premier fichier. 2 Mémoire semiconductrice rémanente selon la revendication 1, caractérisée en ce que les blocs actifs ( 132; 136; 138; 140; 142; 144) et les blocs de réserve ( 114; 116; 118) ont une structure de fichiers de longueur variable. 3 Mémoire semiconductrice rémanente selon la revendication 1, caractérisée en ce que les blocs actifs ( 132; 136; 138; 140; 142; 144) et les blocs de réserve ( 114; 116; 118) ont une structure de fichiers à secteurs. 4 Mémoire semiconductrice rémanente selon la revendication 1, caractérisée en ce que le premier état logique est un zéro logique et le second état logique est un un logique. 5 Mémoire semiconductrice rémanente selon la revendication 1, caractérisée en ce que la mémoire est une mémoire morte programmable à effacement électri- que global, de type "flash" ( 112). 6 Mémoire semiconductrice rémanente selon la revendication 1,caractérisée en ce que le bloc de réper- toire ( 134) comprend en outre: (A) un indicateur ( 152) pour identifier le bloc de répertoire comme un bloc de répertoire; (B) un enregistrement initial ( 154) concernant une information se rapportant à une structure de fichiers de la mémoire semiconductrice; (C) une table d'états de blocs ( 156) pour fournir une information définissant ( 1) si le bloc est (i) un bloc actif ou un bloc de réserve (ii) libre ou en service; et (iii) défectueux ou non défectueux; et ( 2) combien de fois un bloc a été effacé et réécrit. 7 Mémoire semiconductrice rémanente selon la revendication 6, caractérisée en ce que l'information contenue dans l'enregistrement initial ( 154) comprend (A) le type de structure de fichiers ( 110); (B) la capacité de formatage de la structure de fichiers ( 110); (C) une adresse de l'entrée de répertoire ( 158). 8 Mémoire semiconductrice rémanente selon la revendication 1, caractérisée en ce qu'elle comporte en outre une en-tête contenant une information compre- nant: (A) une capacité non formatée de la mémoire semiconductri- ce ( 112); (B) un nombre maximal de cycles d'effacement recommandé pour la mémoire semiconductrice ( 112); (C) des tensions d'effacement et d'écriture (D) des ordres d'effacement et d'écriture; (E) des algorithmes d'effacement et d'écriture. 9 Système de mémorisation pour un ordinateur, caractérisé en ce qu'il comprend: (A) une mémoire semiconductrice rémanente ( 212) qui est effaçable par blocs, o chaque bit de la mémoire semiconductrice rémanente ne peut pas faire l'objet d'une superposition d'écriture pour passer d'un premier état logique à un second état logique sans un effacement antérieur, et o chaque bit de la mémoire semiconductrice rémanente peut faire l'objet d'une superposition d'écriture pour passer d'un second état logique à un premier état logique sans un effacement antérieur, cette mémoire comprenant: ( 1) un bloc actif ( 232; 233; 236; 238; 240 242; 244) pour mémoriser un premier ensemble de fichiers ( 2) un bloc de réserve ( 214; 216; 218) pour mémoriser un second ensemble de fichiers, les fichiers du second ensemble étant des copies des fichiers du premier ensemble et ces copies étant faites pendant une opération de nettoyage avant un effacement du bloc actif correspondant; (B) une mémoire ( 234) pour mémoriser un ensemble d'en- trées de répertoires( 258), chaque entrée de répertoire identifiant un fichier respectif du premier ensemble de fichiers. Système de mémorisation pour ordinateur selon la revendication 9, caractérisé en ce que les blocs actifs et de réserve ont une structure de fichiers de longueur variable. 11 Système de mémorisation pour ordinateur selon la revendication 9, caractérisé en ce que les blocs actifs et de réserve ont une structure de fichiers à secteurs. Système de mémorisation pour ordinateur selon 12. la revendication 9, caractérisé en ce que (A) la mémoire semiconductrice rémanente ( 212) est une mémoire morte programmable à effacement électri- que global, de type "flash", (B) le premier état logique est un zéro logique, et (C) le second état logique est un un logique. 13 Système de mémorisation pour ordinateur selon la revendication 9, caractérisé en ce que l'ensemble d'entrées de répertoires ( 258) comprend une liste enchai- née. 14 Système de mémorisation pour ordinateur selon la revendication 9, caractérisé en ce que l'ensemble d'entrées de répertoires ( 258) comprend une structure hiérarchique de répertoires qui est modifiable en octets. 15 Système de mémorisation pour ordinateur selon la revendication 9, caractérisé en ce que la mémoire ( 234) servant à la mémorisation de l'ensemble d'entrées de répertoires ( 258) est une mémoire morte programmable, électriquement effaçable et modifiable en octets. 16 Système de mémorisation pour ordinateur selon la revendication 9, caractérisé en ce que la mémoire ( 234) servant à mémoriser un ensemble d'entrées de répertoires ( 258) est une mémoire à accès sélectif. 17 Système de mémorisation pour ordinateur selon la revendication 9, caractérisé en ce que la mémoire ( 234) servant à mémoriser un ensemble d'entrées de répertoires ( 258) comprend en outre: (A) un enregistrement initial ( 254) contenant une infor- mation concernant une structure de fichiers ( 210) de la mémoire semiconductrice rémanente ( 212); (B) une table d'états de blocs ( 256) pour fournir une information définissant si un bloc de la mémoire semiconductrice rémanente est: ( 1) un bloc actif ou un bloc de réserve, ( 2) libre ou en service, et ( 3) défectueux ou non défectueux. 18 Système de mémorisation pour ordinateur selon la revendication 11, caractérisé en ce que la mémoire ( 422) servant à mémoriser un ensemble d'entrées de répertoires ( 448) comprend en outre: (A) un enregistrement initial ( 442) contenant une informa- tion concernant une structure de fichiers ( 400) de la mémoire semiconductrice rémanente ( 422); (B) une table d'états de blocs ( 444) pour fournir une information définissant si un bloc de la mémoire semiconductrice rémanente est: ( 1) un bloc actif ou un bloc de réserve, ( 2) libre ou en service, et ( 3) défectueux ou non défectueux; et (C) une table d'allocation de fichiers (FAT)( 446). 19 Mémoire morte programmable, à effacement électrique global, de type "EEPROM flash", caractérisée en ce qu'elle comprend: (A) un bloc actif ( 132; 136; 138; 140; 142; 144) pour mémoriser un premier ensemble de fichiers; (B) un bloc de réserve ( 114; 116; 118) pour mémoriser un second ensemble de fichiers, les fichiers du second ensemble étant des copies des fichiers du premier ensemble et ces copies étant faites pendant une opération de nettoyage avant un effacement du bloc actif; (C) un bloc de répertoire ( 134) comprenant ( 1) un indicateur ( 152) pour identifier le bloc de répertoire comme un bloc de répertoire; ( 2) un enregistrement initial ( 154) contenant une information concernant la structure de fichiers ( 110) de la mémoire "EEPROM flash " ( 112); ( 3) une table d'états de blocs ( 156) pour fournir une information définissant si un bloc est (a) un bloc actif ou un bloc de réserve, (b) libre ou en service et (c) défectueux ou non défectueux; ( 4) un ensemble d'entrées de répertoires ( 158) à liste enchaînée, o chaque entrée de répertoire identifie un fichier respectif faisant partie du premier ensemble de fichiers. Mémoire "EEPROM flash " selon la revendication 19, caractérisée en ce que l'ensemble d'entrées de répertoires ( 158) à liste enchaînée comprend un répertoi- re de départ et au moins un pointeur sur un sous-répertoi- re mémorisé comme un fichier. 21 Mémoire "EEPROM flash" selon la revendication 19, caractérisée en ce que chacune des entrées de l'en- semble de répertoires à liste enchaînée comprend en outre une information contenant: (A) un type d'entrée pour indiquer si l'entrée de réper- toire pour un fichier respectif du premier ensemble de fichiers est une entrée de répertoire de départ ou un pointeur sur un sous-répertoire; (B) si l'entrée de répertoire est une entrée de réper- toire de départ, alors l'entrée de répertoire contient en outre une information comprenant ( 1) une désignation du fichier; ( 2) une indication de date et de temps pour le fichier; ( 3) une information de type de fichier qui indique si le fichier comprend un code ou une donnée ( 4) une longueur du fichier ( 5) une adresse du fichier. 22 Mémoire "EEPROM flash " selon la revendication 21, caractérisée en ce que l'ensemble d'entrées de répertoires ( 158) à liste enchaînée comprend en outre (A) au moins un premier pointeur sur une adresse d'une entrée de répertoire parentale; et (B) au moins un second pointeur sur une adresse d'une entrée de répertoire filiale 23 Mémoire "EEPROM flash" selon la revendication 22, caractérisée en ce que: (A) l'adresse de l'entrée de répertoire parentale poin- tée par le premier pointeur est une première adresse de décalage à l'intérieur du bloc de répertoire et (B) l'adresse de l'entrée de répertoire filiale pointée par le second pointeur est une seconde adresse de décalage dans le bloc de répertoire. 24 Mémoire "EEPROM flash" selon la revendication 22, caractérisée en ce que: (A) l'adresse de l'entrée de répertoire parentale pointée par le premier pointeur est une première adresse absolue dans la mémoire "EEPROM flash" et (B) l'adresse de l'entrée de répertoire filiale pointée par le second pointeur est une seconde adresse absolue dans la mémoire "EEPROM flash". 25 Mémoire "EEPROM flash" selon la revendication 19, caractérisée en ce que l'information contenue dans l'enregistrement initial ( 154) comprend: (A) le type de structure de fichiers ( 110) (B) la capacité formatable de la structure de fichiers ( 110); (C) une adresse d'une première entrée de répertoire dans l'ensemble d'entrées de répertoires ( 158) à liste enchaînée. 26 Mémoire "EEPROM flash" selon la revendication 19, caractérisée en ce qu'elle comporte en outre une en-tête contenant une information comprenant: (A) une capacité non formatée de la mémoire d'ordinateur; (B) un nombre maximal de cycles d'effacement recommandé pour la mémoire d'ordinateur; (C) des tensions d'effacement et d'écriture (D) des ordres d'effacement et d'écriture (E) des algorithmes d'effacement et d'écriture. 27 Ordinateur, caractérisé en ce qu'il comprend (A) une unité centrale de traitement (CPU) ( 12); (B) une mémoire semiconductrice rémanente ( 34) qui est effaçable par blocs, dans laquelle chaque bit de la mémoire semiconductrice rémanente ne peut pas faire l'objet d'une superposition d'écritu- re pour passer d'un premier état logique à un second état logique sans un effacement antérieur, et dans laquelle chaque bit de la mémoire semiconduc- trice rémanente peut faire l'objet d'une superposi- tion d'écriture pour passer d'un second état logique à un premier état logique sans un effacement anté- rieur, cette mémoire comprenant ( 1) un bloc actif ( 132; 136; 138; 140; 142; 144) pour mémoriser un premier fichier; ( 2) un bloc de réserve ( 114; 116; 118) pour mémoriser un second fichier, qui est une copie du premier fichier, la copie étant faite pendant une opération de nettoyage avant un effacement du bloc actif; ( 3) un bloc de répertoire ( 134) comprenant une entrée de répertoire pour identifier le premier fichier. (C) un moyen de mémorisation ( 22) pour mémoriser un code de commande de la mémoire semiconductrice rémanente ( 34). 28 Ordinateur selon la revendication 27, caracté- risé en ce que: (A) la mémoire semiconductrice ( 34) est une mémoire morte programmable à effacement électrique global de type flash (EEPROM flash), (B) le premier état logique est un zéro logique, et (C) le second état logique est un un logique. 29 Ordinateur selon la revendication 27, carac- térisé en ce que le moyen de mémorisation ( 22) est une mémoire morte. 30 Ordinateur selon la revendication 27, carac- térisé en ce que le moyen de mémorisation ( 22) est une mémoire à accès sélectif. 31 Ordinateur selon la revendication 30, carac- térisé en ce que la mémoire à accès sélectif est une mémoire à accès sélectif pour système universel. 32 Ordinateur selon la revendication 30, carac- térisé en ce que la mémoire à accès sélectif est une mémoire tampon. 33 Ordinateur selon la revendication 27, carac- térisé en ce que la mémoire semiconductrice rémanente est une mémoire à mappage par pages. 34 Ordinateur selon la revendication 27, carac- térisé en ce que la mémoire semiconductrice rémanente est une mémoire à mappage direct. 35 Ordinateur selon la revendication 27, carac- térisé en ce qu'il comprend en outre un contrôleur de partie matérielle ( 92) pour exécution du code de commande de la mémoire semiconductrice rémanente ( 96). 36 Ordinateur, caractérisé en ce qu'il comprend (A) une unité centrale de traitement (CPU) ( 12); (B) une mémoire semiconductrice rémanente ( 64; 96 qui est effaçable par blocs, dans laquelle chaque bit de la mémoire semiconductrice rémanente ne peut pas faire l'objet d'une superposition d'écri- ture pour passer d'un premier état logique à un second état logique sans un effacement antérieur, et dans laquelle chaque bit de la mémoire semiconduc- trice rémanente peut faire l'objet d'une superposi- tion d'écriture pour passer d'un second état logique à un premier état logique sans un effacement anté- rieur, comprenant ( 1) un bloc actif pour mémoriser un premier ensem- ble de fichiers; ( 2) un bloc de réserve pour mémoriser un second ensemble de fichiers qui sont des copies des fichiers du premier ensemble, ces copies étant faites pendant une opération de nettoyage avant un effacement du bloc actif; (C) une mémoire ( 102) pour mémoriser un ensemble d'en- trées de répertoires, chaque entrée de répertoire identifiant un fichier respectif du premier ensemble; (D) un moyen de mémorisation ( 62; 98) pour mémoriser un code de commande de la mémoire semiconductrice rémanente ( 64; 96). 37 Ordinateur selon la revendication 36, caracté- risé en ce que: (A) la mémoire semiconductrice rémanente ( 64; 96) est une mémoire morte programmable, à effacement électrique global de type flash; (B) le premier état logique est un zéro logique et (C) le second état logique est un un logique. 38 Ordinateur selon la revendication 36, caracté- risé en ce que le moyen de mémorisation ( 62; 98) est une mémoire morte. 39 Ordinateur selon la revendication 36, caracté- risé en ce que le moyen de mémorisation ( 62; 98) est une mémoire à accès sélectif. Ordinateur selon la revendication 39, caracté- risé en ce que la mémoire à accès sélectif est une mémoire à accès sélectif pour système universel. 41 Ordinateur selon la revendication 39, caracté- risé en ce que la mémoire à accès sélectif est une mémoire tampon. Ordinateur selon la revendication 36, caracté- 42. risé en ce que la mémoire semiconductrice rémanente ( 64; 96) est à mappage par pages. 43 Ordinateur selon la revendication 36, caracté- risé en ce que la mémoire semiconductrice rémanente ( 64; 96) est à mappage direct. 44 Ordinateur selon la revendication 36, caracté- risé en ce qu'il comprend en outre un contrôleur de partie matérielle ( 92) pour commander la mémoire semi- conductrice rémanente ( 64; 96).