FR2671223A1 - Memoire semiconductrice remanente pour ordinateur personnel. - Google Patents

Memoire semiconductrice remanente pour ordinateur personnel. Download PDF

Info

Publication number
FR2671223A1
FR2671223A1 FR9116233A FR9116233A FR2671223A1 FR 2671223 A1 FR2671223 A1 FR 2671223A1 FR 9116233 A FR9116233 A FR 9116233A FR 9116233 A FR9116233 A FR 9116233A FR 2671223 A1 FR2671223 A1 FR 2671223A1
Authority
FR
France
Prior art keywords
memory
file
directory
block
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9116233A
Other languages
English (en)
Other versions
FR2671223B1 (fr
Inventor
Robinson Kurt Brian
Dale K Elbert
Markus A Levy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of FR2671223A1 publication Critical patent/FR2671223A1/fr
Application granted granted Critical
Publication of FR2671223B1 publication Critical patent/FR2671223B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

L'invention concerne une mémoire semiconductrice rémanente pour ordinateur personnel. Cette mémoire est une mémoire morte programmable à effacement électrique global de type flash (112) (EEPROM flash), chaque bit ne pouvant pas faire l'objet d'une superposition d'écriture pour passer d'un premier état logique à un second état logique sans un effacement précédent mais pouvant faire l'objet d'une superposition d'écriture pour passer d'un second état logique à un premier état logique sans un effacement précédent; la mémoire comprend des blocs actifs (132; 136; 138; 140; 142; 144) pour mémoriser un premier fichier, un bloc de réserve (114; 116; 118) pour mémoriser un second fichier et un bloc de répertoire (134); le second fichier est une copie du premier fichier; la copie est faite pendant une opération de nettoyage avant effacement du bloc actif correspondant; le bloc de répertoire comprend une entrée de répertoire pour identification du premier fichier. Application aux ordinateurs personnels.

Description

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 <"ECC") En premier lieu, le système d'ordinateur examinera l'indicateur de répertoire Ensuite le système d'ordinateur vérifiera la zone de données de contrôle Une correction résultant de la vérification de la zone de données de contrôle dans l'enregistrement initial 154 avertira le système d'ordinateur qu'il a en fait trouvé le bloc de répertoire valable en cours pour l'ensemble de mémoires flash 112. Dans une réalisation de la présente invention, les valeurs logiques "un" de la zone de données de contrôle de l'enregistrement initial 154 feraient l'objet d'une superposition d'écriture avec des valeurs logiques "zéro" lorsque l'enregistrement initial 154 n'est plus
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.

Claims (37)

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).
FR9116233A 1990-12-31 1991-12-27 Memoire semiconductrice remanente pour ordinateur personnel. Expired - Fee Related FR2671223B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US63623890A 1990-12-31 1990-12-31

Publications (2)

Publication Number Publication Date
FR2671223A1 true FR2671223A1 (fr) 1992-07-03
FR2671223B1 FR2671223B1 (fr) 1996-10-04

Family

ID=24551037

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9116233A Expired - Fee Related FR2671223B1 (fr) 1990-12-31 1991-12-27 Memoire semiconductrice remanente pour ordinateur personnel.

Country Status (5)

Country Link
US (2) US5544356A (fr)
JP (1) JP3476842B2 (fr)
FR (1) FR2671223B1 (fr)
GB (1) GB2251324B (fr)
HK (1) HK1006885A1 (fr)

Families Citing this family (326)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190617B1 (en) 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
TW261687B (fr) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
JPH05151097A (ja) * 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
JPH05324489A (ja) * 1992-05-15 1993-12-07 Toshiba Corp 記憶装置
US6549974B2 (en) * 1992-06-22 2003-04-15 Hitachi, Ltd. Semiconductor storage apparatus including a controller for sending first and second write commands to different nonvolatile memories in a parallel or time overlapped manner
JP3328321B2 (ja) * 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
US5473753A (en) * 1992-10-30 1995-12-05 Intel Corporation Method of managing defects in flash disk memories
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
JP3641280B2 (ja) * 1992-10-30 2005-04-20 インテル・コーポレーション フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法
US5416782A (en) * 1992-10-30 1995-05-16 Intel Corporation Method and apparatus for improving data failure rate testing for memory arrays
US5740395A (en) * 1992-10-30 1998-04-14 Intel Corporation Method and apparatus for cleaning up a solid state memory disk storing floating sector data
US5452311A (en) * 1992-10-30 1995-09-19 Intel Corporation Method and apparatus to improve read reliability in semiconductor memories
US5535369A (en) * 1992-10-30 1996-07-09 Intel Corporation Method for allocating memory in a solid state memory disk
US5448577A (en) * 1992-10-30 1995-09-05 Intel Corporation Method for reliably storing non-data fields in a flash EEPROM memory array
US5822781A (en) * 1992-10-30 1998-10-13 Intel Corporation Sector-based storage device emulator having variable-sized sector
US5337275A (en) * 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5369616A (en) * 1992-10-30 1994-11-29 Intel Corporation Method for assuring that an erase process for a memory array has been properly completed
US5471604A (en) * 1992-10-30 1995-11-28 Intel Corporation Method for locating sector data in a memory disk by examining a plurality of headers near an initial pointer
US5359570A (en) * 1992-11-13 1994-10-25 Silicon Storage Technology, Inc. Solid state peripheral storage device
US5581723A (en) * 1993-02-19 1996-12-03 Intel Corporation Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
US5835933A (en) * 1993-02-19 1998-11-10 Intel Corporation Method and apparatus for updating flash memory resident firmware through a standard disk drive interface
US5740349A (en) * 1993-02-19 1998-04-14 Intel Corporation Method and apparatus for reliably storing defect information in flash disk memories
US5603036A (en) * 1993-02-19 1997-02-11 Intel Corporation Power management system for components used in battery powered applications
US5455800A (en) * 1993-02-19 1995-10-03 Intel Corporation Apparatus and a method for improving the program and erase performance of a flash EEPROM memory array
US5586285A (en) * 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
JP3078946B2 (ja) * 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
JPH06266587A (ja) * 1993-03-16 1994-09-22 Nec Corp フラッシュメモリのファイル管理方式
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
JPH0728772A (ja) * 1993-06-25 1995-01-31 Hitachi Ltd マイクロコンピュータ
US5640529A (en) * 1993-07-29 1997-06-17 Intel Corporation Method and system for performing clean-up of a solid state disk during host command execution
DE69433320T2 (de) * 1993-07-29 2004-09-16 Atmel Corp., San Jose Ferngesteuerter rreprogrammierbarer programmspeicher fuer einen mikrokontroller
US5682497A (en) * 1993-09-28 1997-10-28 Intel Corporation Managing file structures for a flash memory file system in a computer
US5490264A (en) * 1993-09-30 1996-02-06 Intel Corporation Generally-diagonal mapping of address space for row/column organizer memories
SG49632A1 (en) * 1993-10-26 1998-06-15 Intel Corp Programmable code store circuitry for a nonvolatile semiconductor memory device
JP3251414B2 (ja) * 1994-01-11 2002-01-28 三菱電機株式会社 プログラマブルコントローラおよびそのプログラム容量変更方法
JP3784844B2 (ja) * 1994-03-30 2006-06-14 沖電気工業株式会社 半導体記憶装置
JP3140906B2 (ja) * 1994-04-12 2001-03-05 株式会社エヌ・ティ・ティ・データ システムファイルの更新及び復元方法
JP3147345B2 (ja) * 1994-04-19 2001-03-19 船井電機株式会社 集積回路並びに該集積回路を用いた電子機器及びその電子機器の組立方法
US5497355A (en) * 1994-06-03 1996-03-05 Intel Corporation Synchronous address latching for memory arrays
US5592435A (en) * 1994-06-03 1997-01-07 Intel Corporation Pipelined read architecture for memory
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
JP3699733B2 (ja) * 1994-08-10 2005-09-28 株式会社日立製作所 タプル単位排他制御方式
US5765175A (en) * 1994-08-26 1998-06-09 Intel Corporation System and method for removing deleted entries in file systems based on write-once or erase-slowly media
US5822256A (en) * 1994-09-06 1998-10-13 Intel Corporation Method and circuitry for usage of partially functional nonvolatile memory
US5754817A (en) * 1994-09-29 1998-05-19 Intel Corporation Execution in place of a file stored non-contiguously in a non-volatile memory
US5809558A (en) * 1994-09-29 1998-09-15 Intel Corporation Method and data storage system for storing data in blocks without file reallocation before erasure
EP0704803B1 (fr) * 1994-09-30 1997-03-05 Alcatel SEL Aktiengesellschaft Procédé de gestion de mémoire flash
JPH08124393A (ja) * 1994-10-20 1996-05-17 Fujitsu Ltd データ消去回数に制限のあるメモリの制御方法及びこの方法を用いた装置
DE19540915A1 (de) * 1994-11-10 1996-05-15 Raymond Engineering Redundante Anordnung von Festkörper-Speicherbausteinen
JP2669365B2 (ja) * 1994-11-24 1997-10-27 日本電気株式会社 書換え可能なromファイル装置
US5563828A (en) * 1994-12-27 1996-10-08 Intel Corporation Method and apparatus for searching for data in multi-bit flash EEPROM memory arrays
US5724592A (en) * 1995-03-31 1998-03-03 Intel Corporation Method and apparatus for managing active power consumption in a microprocessor controlled storage device
JPH08328762A (ja) * 1995-06-06 1996-12-13 Mitsubishi Electric Corp 半導体ディスク装置及びそのメモリ管理方法
US5819082A (en) * 1995-06-07 1998-10-06 Sierra On-Line, Inc. Data storage optimization using an access order resource list
US5745793A (en) * 1995-06-07 1998-04-28 Seagate Technology, Inc. Apparatus having a circular buffer that maintains a one entry gap between elements written to the microprocessor and elements operated on by the clock
EP0781435B1 (fr) * 1995-07-13 2003-03-05 Koninklijke Philips Electronics N.V. Methode et systeme de repetition de donnees entre des grappes successives logiquement
JP3782840B2 (ja) 1995-07-14 2006-06-07 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
JPH0934765A (ja) * 1995-07-20 1997-02-07 Fuji Xerox Co Ltd ファイル管理装置
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6801979B1 (en) 1995-07-31 2004-10-05 Lexar Media, Inc. Method and apparatus for memory control circuit
US6081878A (en) 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5930815A (en) * 1995-07-31 1999-07-27 Lexar Media, Inc. Moving sequential sectors within a block of information in a flash memory mass storage architecture
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5907856A (en) * 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6757800B1 (en) 1995-07-31 2004-06-29 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5710930A (en) * 1995-08-04 1998-01-20 Intel Corporation Apparatus and a method for allowing an operating system of a computer system to persist across a power off and on cycle
US5835935A (en) * 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US6125435A (en) * 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
GB2291991A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Disk drive emulation with a block-erasable memory
JPH0997206A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
JP3727982B2 (ja) * 1995-09-28 2005-12-21 キヤノン株式会社 フラッシュrom管理方法及び装置
JP3703181B2 (ja) * 1995-09-28 2005-10-05 キヤノン株式会社 フラッシュrom管理方法及び装置
US5933847A (en) * 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
JPH0997218A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
JPH0997314A (ja) * 1995-09-28 1997-04-08 Canon Inc Icカード装置
US5884323A (en) * 1995-10-13 1999-03-16 3Com Corporation Extendible method and apparatus for synchronizing files on two different computer systems
US5727202A (en) 1995-10-18 1998-03-10 Palm Computing, Inc. Method and apparatus for synchronizing information on two different computer systems
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US5987478A (en) * 1995-10-31 1999-11-16 Intel Corporation Virtual small block file manager for flash memory array
US5829013A (en) 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
US5978808A (en) * 1995-12-27 1999-11-02 Intel Corporation Virtual small block file manager for flash memory array
US5893135A (en) * 1995-12-27 1999-04-06 Intel Corporation Flash memory array with two interfaces for responding to RAS and CAS signals
US6618728B1 (en) * 1996-01-31 2003-09-09 Electronic Data Systems Corporation Multi-process compression
US7728845B2 (en) 1996-02-26 2010-06-01 Rah Color Technologies Llc Color calibration of color image rendering devices
US6459425B1 (en) * 1997-08-25 2002-10-01 Richard A. Holub System for automatic color calibration
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
JP3615299B2 (ja) * 1996-03-29 2005-02-02 三洋電機株式会社 書換え可能romの記憶方法及び記憶装置
US5960445A (en) * 1996-04-24 1999-09-28 Sony Corporation Information processor, method of updating a program and information processing system
JPH09319645A (ja) * 1996-05-24 1997-12-12 Nec Corp 不揮発性半導体記憶装置
US5848420A (en) * 1996-06-14 1998-12-08 Eastman Kodak Company System and method for accessing data of a digital camera from a personal computer
US5819298A (en) * 1996-06-24 1998-10-06 Sun Microsystems, Inc. File allocation tables with holes
US5832525A (en) * 1996-06-24 1998-11-03 Sun Microsystems, Inc. Disk fragmentation reduction using file allocation tables
US6449735B1 (en) * 1996-07-01 2002-09-10 Intel Corporation Method and apparatus for providing improved diagnostic functions in a computer system
US5805882A (en) * 1996-07-19 1998-09-08 Compaq Computer Corporation Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
WO1998005196A1 (fr) 1996-08-01 1998-02-12 M & M Laboratory Co., Ltd. Support de retenue d'eau pour des plantes
US5907854A (en) * 1996-09-27 1999-05-25 Alcatel Usa Sourcing, L.P. Flash memory file system for writing data files without rewriting an entire volume
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
JP3489708B2 (ja) * 1996-10-23 2004-01-26 シャープ株式会社 不揮発性半導体記憶装置
US5771346A (en) * 1996-10-24 1998-06-23 Micron Quantum Devices, Inc. Apparatus and method for detecting over-programming condition in multistate memory device
US5956473A (en) * 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US5963970A (en) * 1996-12-20 1999-10-05 Intel Corporation Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields
US6279069B1 (en) * 1996-12-26 2001-08-21 Intel Corporation Interface for flash EEPROM memory arrays
US5937423A (en) * 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
US6401112B1 (en) 1997-01-29 2002-06-04 Palm, Inc. Method and apparatus for synchronizing an Email client on a portable computer system with an Email client on a desktop computer
US7206815B1 (en) 1997-01-29 2007-04-17 Palmsource Inc. Method and apparatus for synchronizing an email client on a portable computer system with an email client on a desktop computer
US6006274A (en) 1997-01-30 1999-12-21 3Com Corporation Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer
US5928370A (en) * 1997-02-05 1999-07-27 Lexar Media, Inc. Method and apparatus for verifying erasure of memory blocks within a non-volatile memory structure
WO1998035344A2 (fr) * 1997-02-12 1998-08-13 Hyundai Electronics America, Inc. Structure de memoire remanente
US6311290B1 (en) 1997-02-14 2001-10-30 Intel Corporation Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US5937434A (en) * 1997-02-14 1999-08-10 Intel Corporation Method of managing a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6182188B1 (en) * 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6173412B1 (en) * 1997-03-21 2001-01-09 Brother Kogyo Kabushiki Kaisha Apparatus and method for initializing a writeable/nonvolatile memory device
WO1998043248A1 (fr) * 1997-03-21 1998-10-01 Canal+ Societe Anonyme Organisation d'une memoire informatique
US6122195A (en) * 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US6034897A (en) * 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
US6411546B1 (en) 1997-03-31 2002-06-25 Lexar Media, Inc. Nonvolatile memory using flexible erasing methods and method and system for using same
US6088759A (en) * 1997-04-06 2000-07-11 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6073256A (en) * 1997-04-11 2000-06-06 Preview Systems, Inc. Digital product execution control
US6272636B1 (en) 1997-04-11 2001-08-07 Preview Systems, Inc Digital product execution control and security
EP0923023A4 (fr) 1997-04-16 2007-04-25 Sony Corp Dispositif et procede de commande de support d'enregistrement
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
EP0874368A3 (fr) * 1997-04-25 2003-03-19 Sony Corporation Appareil et méthode d'enregistrement d'information et appareil et méthode de reproduction d'information
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
JPH1185580A (ja) * 1997-09-11 1999-03-30 Matsushita Electric Ind Co Ltd ファイル管理システム及びファイル管理方法
US5983239A (en) * 1997-10-29 1999-11-09 International Business Machines Corporation Storage management system with file aggregation supporting multiple aggregated file counterparts
US6021415A (en) * 1997-10-29 2000-02-01 International Business Machines Corporation Storage management system with file aggregation and space reclamation within aggregated files
US6098074A (en) * 1997-10-29 2000-08-01 International Business Machines Corporation Storage management system with file aggregation
US5963961A (en) * 1997-11-25 1999-10-05 International Business Machines Corporation Database reconstruction using embedded database backup codes
US6009520A (en) * 1997-12-10 1999-12-28 Phoenix Technologies, Ltd Method and apparatus standardizing use of non-volatile memory within a BIOS-ROM
US6560702B1 (en) 1997-12-10 2003-05-06 Phoenix Technologies Ltd. Method and apparatus for execution of an application during computer pre-boot operation
US6076137A (en) * 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
GB9801373D0 (en) 1998-01-22 1998-03-18 Memory Corp Plc Memory system
US6205448B1 (en) * 1998-01-30 2001-03-20 3Com Corporation Method and apparatus of synchronizing two computer systems supporting multiple synchronization techniques
US6034686A (en) * 1998-03-09 2000-03-07 3Com Corporation Collapsing event display for small screen computer
US6226728B1 (en) 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US6038636A (en) * 1998-04-27 2000-03-14 Lexmark International, Inc. Method and apparatus for reclaiming and defragmenting a flash memory device
US6240519B1 (en) 1998-04-30 2001-05-29 Compaq Computer Corporation Computer method and apparatus to prompt for administrative password to flash a corrupted non-volatile memory
US6363492B1 (en) 1998-04-30 2002-03-26 Compaq Computer Corporation Computer method and apparatus to force boot block recovery
EP1075676B1 (fr) * 1998-05-01 2002-12-11 Powerquest Corporation Manipulation de partitions virtuelles et reelles de dispositif de mise en memoire informatique
US7025209B2 (en) * 1998-05-29 2006-04-11 Palmsource, Inc. Method and apparatus for wireless internet access
US6253326B1 (en) 1998-05-29 2001-06-26 Palm, Inc. Method and system for secure communications
US6397259B1 (en) 1998-05-29 2002-05-28 Palm, Inc. Method, system and apparatus for packet minimized communications
US6343318B1 (en) 1998-05-29 2002-01-29 Palm, Inc. Method and apparatus for communicating information over low bandwidth communications networks
US6247024B1 (en) 1998-09-25 2001-06-12 International Business Machines Corporation Method and system for performing deferred file removal in a file system
US6301670B1 (en) * 1998-10-06 2001-10-09 Ricoh Corporation Method and apparatus for erasing data when a problem is identified
US7325052B1 (en) 1998-10-06 2008-01-29 Ricoh Company, Ltd. Method and system to erase data after expiration or other condition
US6742147B1 (en) * 1998-10-22 2004-05-25 Matsushita Electric Industrial Co., Ltd. Information recording medium, and method and apparatus for managing defect thereof
WO2000030116A1 (fr) 1998-11-17 2000-05-25 Lexar Media, Inc. Procede et dispositif pour circuit de commande de la memoire
US6665779B1 (en) * 1998-12-24 2003-12-16 Roxio, Inc. Image backup method for backing up disk partitions of a storage device
JP2000227871A (ja) * 1999-02-05 2000-08-15 Seiko Epson Corp 不揮発性記憶装置、その制御方法、および、情報記録媒体
MY122279A (en) * 1999-03-03 2006-04-29 Sony Corp Nonvolatile memory and nonvolatile memory reproducing apparatus
CA2267484C (fr) * 1999-03-30 2002-03-05 Object Technology International Inc. Recuperation de memoire d'applications supprimees
US6401160B1 (en) * 1999-03-31 2002-06-04 Intel Corporation Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory
US6141249A (en) * 1999-04-01 2000-10-31 Lexar Media, Inc. Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
DE60030876T2 (de) 1999-04-01 2007-05-03 Lexar Media, Inc., Fremont Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität
US6148354A (en) 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
US6449625B1 (en) * 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
JP3389186B2 (ja) 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
IL129947A (en) * 1999-05-13 2003-06-24 Tadiran Telecom Business Syste Method and apparatus for downloading software into an embedded system
US6360272B1 (en) 1999-05-28 2002-03-19 Palm, Inc. Method and apparatus for maintaining a unified view of multiple mailboxes
US6389572B1 (en) 1999-05-28 2002-05-14 Palm, Inc. Method of extracting bits from modulated waveforms
JP3797649B2 (ja) 1999-05-31 2006-07-19 シャープ株式会社 不揮発性半導体記憶装置
US6480864B1 (en) * 1999-06-15 2002-11-12 Cisco Technology, Inc. RAM based directory layer for a flash file system
US6715067B1 (en) * 1999-09-21 2004-03-30 Intel Corporation Initializing a processor-based system from a non-volatile re-programmable semiconductor memory
US7076623B1 (en) * 1999-10-18 2006-07-11 Matsushita Electric Industrial Co., Ltd. Information update count managing method, information update count managing apparatus, contents usage count managing method, and content usage count storing apparatus
RU2257609C2 (ru) 1999-10-21 2005-07-27 Мацусита Электрик Индастриал Ко., Лтд. Устройство доступа к полупроводниковой карте памяти, компьютерно-считываемый носитель записи, способ инициализации и полупроводниковая карта памяти
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理***的快闪电子式外存储方法及其装置
US6643731B2 (en) * 1999-12-31 2003-11-04 Texas Instruments Incorporated Low cost memory management that resists power interruption
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6662263B1 (en) 2000-03-03 2003-12-09 Multi Level Memory Technology Sectorless flash memory architecture
US6714720B1 (en) * 2000-03-06 2004-03-30 Ati International Srl Method and apparatus for storing multi-media data
US6741978B1 (en) * 2000-04-12 2004-05-25 Intel Corporation Accessing file data stored in non-volatile re-programmable semiconductor memories
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
US6567307B1 (en) 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US7155559B1 (en) 2000-08-25 2006-12-26 Lexar Media, Inc. Flash memory architecture with separate storage of overhead and user data
US6772274B1 (en) 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
TW539950B (en) * 2000-12-28 2003-07-01 Sony Corp Data recording device and data write method for flash memory
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US20030033588A1 (en) * 2001-01-29 2003-02-13 John Alexander System, method and article of manufacture for using a library map to create and maintain IP cores effectively
JP3574078B2 (ja) * 2001-03-16 2004-10-06 東京エレクトロンデバイス株式会社 記憶装置と記憶装置制御方法
JP2002351685A (ja) * 2001-05-22 2002-12-06 Sankyo Seiki Mfg Co Ltd 不揮発性メモリのデータ更新方法及び制御装置
US20030028765A1 (en) * 2001-07-31 2003-02-06 Cromer Daryl Carvis Protecting information on a computer readable medium
US7418344B2 (en) * 2001-08-02 2008-08-26 Sandisk Corporation Removable computer with mass storage
US6490197B1 (en) * 2001-08-02 2002-12-03 Stmicroelectronics, Inc. Sector protection circuit and method for flash memory devices
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123412D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
US7149692B1 (en) 2001-11-30 2006-12-12 Silicon Motion, Inc. Method, apparatus and system for a single chip audio solution controller and DSP
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
EP1476873A4 (fr) * 2002-02-22 2006-07-05 Lexar Media Inc Support memoire avec lampe temoin integree
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
US6775461B2 (en) * 2002-10-15 2004-08-10 Sony Corporation Data management method for recorded programs stored on a digital recording device
US6988163B2 (en) * 2002-10-21 2006-01-17 Microsoft Corporation Executing binary images from non-linear storage systems
CN100483552C (zh) 2002-10-28 2009-04-29 桑迪士克股份有限公司 在非易失性存储***中执行自动磨损平衡的方法
US7003621B2 (en) * 2003-03-25 2006-02-21 M-System Flash Disk Pioneers Ltd. Methods of sanitizing a flash-based data storage device
US6973519B1 (en) 2003-06-03 2005-12-06 Lexar Media, Inc. Card identification compatibility
ITRM20030354A1 (it) 2003-07-17 2005-01-18 Micron Technology Inc Unita' di controllo per dispositivo di memoria.
DE10332831B4 (de) * 2003-07-18 2009-07-30 Siemens Ag Verfahren zur Darstellung einer Dateistruktur
GB2404748B (en) * 2003-08-01 2006-10-04 Symbian Ltd Computing device and method
JP4175991B2 (ja) * 2003-10-15 2008-11-05 株式会社東芝 不揮発性半導体記憶装置
US7210002B2 (en) * 2003-11-19 2007-04-24 Qualcomm Incorporated System and method for operating dual bank read-while-write flash
US7363420B2 (en) * 2003-12-15 2008-04-22 Nortel Networks Limited Method and file structures for managing data on a flash disk
CA2453608C (fr) * 2003-12-17 2007-11-06 Ibm Canada Limited - Ibm Canada Limitee Evaluation des besoins en matiere de stockage pour une configuration de groupement de donnees a plusieurs dimensions
US7136973B2 (en) * 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US7127549B2 (en) * 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
JPWO2005103903A1 (ja) 2004-04-20 2007-08-30 松下電器産業株式会社 不揮発性記憶システム
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US20060069849A1 (en) * 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US20060069850A1 (en) * 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to perform a reclaim operation in a nonvolatile memory
US7409623B2 (en) * 2004-11-04 2008-08-05 Sigmatel, Inc. System and method of reading non-volatile computer memory
WO2006064498A2 (fr) * 2004-12-16 2006-06-22 Ramot At Tel-Aviv University Ltd. Systeme de fichiers flash transactionnel pour microcontroleurs et systemes integres
US20060149891A1 (en) * 2004-12-30 2006-07-06 Rudelic John C Relocated reclaim block
US20060156381A1 (en) * 2005-01-12 2006-07-13 Tetsuro Motoyama Approach for deleting electronic documents on network devices using document retention policies
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US7400549B2 (en) 2005-04-28 2008-07-15 Micron Technology, Inc. Memory block reallocation in a flash memory device
US7634494B2 (en) * 2005-05-03 2009-12-15 Intel Corporation Flash memory directory virtualization
KR100714691B1 (ko) * 2005-05-04 2007-05-04 삼성전자주식회사 파일 시스템에 추가 정보를 저장하고 관리하는 장치 및방법
US7509474B2 (en) 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7627733B2 (en) 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7480766B2 (en) 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
KR100739722B1 (ko) * 2005-08-20 2007-07-13 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US7558804B1 (en) 2005-08-26 2009-07-07 American Megatrends, Inc. Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
US7536521B2 (en) * 2005-09-28 2009-05-19 Wisconsin Alumni Research Foundation Computer storage device providing implicit detection of block liveness
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US20070100852A1 (en) * 2005-11-03 2007-05-03 Jeffrey Wang File system management for integrated NOR and NAND flash memory
US20070136671A1 (en) * 2005-12-12 2007-06-14 Buhrke Eric R Method and system for directing attention during a conversation
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
JP4999325B2 (ja) 2005-12-21 2012-08-15 ルネサスエレクトロニクス株式会社 フラッシュメモリ
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
WO2007073538A2 (fr) * 2005-12-21 2007-06-28 Sandisk Corporation Memoires non volatiles et procedes d'alignement de donnees dans un systeme de stockage de fichiers a mappage direct
US20070143567A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for data alignment in non-volatile memories with a directly mapped file storage system
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
CN100485681C (zh) * 2006-03-23 2009-05-06 北京握奇数据***有限公司 智能卡存储***及该***中文件创建管理的方法
US7979624B2 (en) * 2006-03-31 2011-07-12 Intel Corporation Techniques to truncate data files in nonvolatile memory
US7809900B2 (en) * 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US7904764B2 (en) * 2006-11-24 2011-03-08 Sandforce, Inc. Memory lifetime gauging system, method and computer program product
US7904619B2 (en) * 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
WO2008070813A2 (fr) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Appareil, système et procédé pour un raid distribué à extrémité avant
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US8090980B2 (en) * 2006-12-08 2012-01-03 Sandforce, Inc. System, method, and computer program product for providing data redundancy in a plurality of storage devices
JP4991320B2 (ja) * 2007-01-12 2012-08-01 株式会社東芝 ホスト装置およびメモリシステム
JP5100133B2 (ja) * 2007-01-19 2012-12-19 株式会社東芝 情報処理装置
US7966355B2 (en) * 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
US7731365B2 (en) * 2007-03-19 2010-06-08 Johnson&Johnson Vision Care, Inc. Method of fitting contact lenses
US7917479B2 (en) 2007-03-20 2011-03-29 Micron Technology, Inc. Non-volatile memory devices, systems including same and associated methods
US8898412B2 (en) * 2007-03-21 2014-11-25 Hewlett-Packard Development Company, L.P. Methods and systems to selectively scrub a system memory
US8010502B2 (en) * 2007-04-13 2011-08-30 Harris Corporation Methods and systems for data recovery
JP2009003784A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
KR20090031102A (ko) * 2007-09-21 2009-03-25 삼성전자주식회사 이동식 저장 장치의 포맷 방법 및 장치
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US9183133B2 (en) 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
KR101407361B1 (ko) * 2008-04-14 2014-06-13 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
JP5218228B2 (ja) * 2008-04-23 2013-06-26 新東工業株式会社 搬送装置及びブラスト加工装置
US7949821B2 (en) * 2008-06-12 2011-05-24 Micron Technology, Inc. Method of storing data on a flash memory device
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20100017588A1 (en) * 2008-07-15 2010-01-21 Radoslav Danilak System, method, and computer program product for providing an extended capability to a system
US20100017566A1 (en) * 2008-07-15 2010-01-21 Radoslav Danilak System, method, and computer program product for interfacing computing device hardware of a computing device and an operating system utilizing a virtualization layer
KR100965074B1 (ko) * 2008-08-19 2010-06-21 주식회사 하이닉스반도체 불휘발성 메모리 장치 메모리 셀 블록 및 부가 정보 관리 방법
US8281169B2 (en) 2008-08-27 2012-10-02 Wireless Silicon Group, Inc. Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
US8156320B2 (en) 2008-08-27 2012-04-10 Wireless Silicon Group, Llc Method and apparatus for fast booting a portable computing device allowing for immediate operation
US20100064093A1 (en) * 2008-09-09 2010-03-11 Radoslav Danilak System, method, and computer program product for converting data in a binary representation to a non-power of two representation
JP2010079686A (ja) * 2008-09-26 2010-04-08 Nec Electronics Corp データ処理装置、メモリ制御回路およびメモリ制御方法
US8272028B2 (en) 2008-10-15 2012-09-18 Ricoh Company, Ltd. Approach for managing access to electronic documents on network devices using document retention policies and document security policies
US20100146236A1 (en) * 2008-12-08 2010-06-10 Radoslav Danilak System, method, and computer program product for rendering at least a portion of data useless in immediate response to a delete command
US8090905B2 (en) * 2009-03-27 2012-01-03 Sandforce, Inc. System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format
US20100250830A1 (en) * 2009-03-27 2010-09-30 Ross John Stenfort System, method, and computer program product for hardening data stored on a solid state disk
US8230159B2 (en) 2009-03-27 2012-07-24 Lsi Corporation System, method, and computer program product for sending logical block address de-allocation status information
US8671258B2 (en) 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
US8874825B2 (en) 2009-06-30 2014-10-28 Sandisk Technologies Inc. Storage device and method using parameters based on physical memory block location
US20110004718A1 (en) 2009-07-02 2011-01-06 Ross John Stenfort System, method, and computer program product for ordering a plurality of write commands associated with a storage device
US9792074B2 (en) * 2009-07-06 2017-10-17 Seagate Technology Llc System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US8516166B2 (en) * 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
US8631187B2 (en) * 2009-08-07 2014-01-14 Intel Corporation Dual-scope directory for a non-volatile memory storage system
US8108737B2 (en) * 2009-10-05 2012-01-31 Sandforce, Inc. System, method, and computer program product for sending failure information from a serial ATA (SATA) solid state drive (SSD) to a host device
US8510628B2 (en) * 2009-11-12 2013-08-13 Micron Technology, Inc. Method and apparatuses for customizable error correction of memory
WO2011061724A1 (fr) * 2009-11-23 2011-05-26 Amir Ban Contrôleur de mémoire et procédés pour augmenter l'efficacité d'écriture d'un dispositif flash
US9514055B2 (en) * 2009-12-31 2016-12-06 Seagate Technology Llc Distributed media cache for data storage systems
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
US8938479B1 (en) * 2010-04-01 2015-01-20 Symantec Corporation Systems and methods for dynamically selecting a logical location for an index
US8290994B2 (en) * 2010-05-05 2012-10-16 International Business Machines Corporation Obtaining file system view in block-level data storage systems
JP5596143B2 (ja) 2010-06-29 2014-09-24 パナソニック株式会社 不揮発性記憶システム、メモリシステム用の電源回路、フラッシュメモリ、フラッシュメモリコントローラ、および不揮発性半導体記憶装置
US8990181B2 (en) * 2010-09-16 2015-03-24 Standard Microsystems Corporation Method and system for transferring data between a host device and an external device
WO2012104974A1 (fr) * 2011-01-31 2012-08-09 三菱電機株式会社 Contrôleur mémoire
US20120246384A1 (en) * 2011-03-21 2012-09-27 Winbond Electronics Corp. Flash memory and flash memory accessing method
GB2490991B (en) * 2011-05-19 2017-08-30 Ibm Wear leveling
JP5366159B2 (ja) * 2011-09-06 2013-12-11 ルネサスエレクトロニクス株式会社 半導体装置及びマイクロコンピュータ
US9430372B2 (en) 2011-09-30 2016-08-30 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
WO2013048485A1 (fr) * 2011-09-30 2013-04-04 Intel Corporation Initialisation autonome de mémoire vive non volatile dans un système informatique
EP3346386B1 (fr) 2011-09-30 2020-01-22 Intel Corporation Mémoire à accès aléatoire non volatile (nvram) utilisée comme remplacement de stockage de masse traditionnel
KR102003930B1 (ko) * 2012-07-31 2019-07-25 삼성전자주식회사 불휘발성 메모리 장치의 데이터 라이팅 제어방법 및 웨어레벨링 제어 기능을 가지는 메모리 콘트롤러
US9542166B2 (en) 2012-10-30 2017-01-10 Oracle International Corporation System and method for inferring immutability of program variables
DE102012022728A1 (de) * 2012-11-21 2014-05-22 Unify Gmbh & Co. Kg Verfahren zur Steuerung eines Flash-Speichers zur Massenspeicherung, der von einem an einen Host anschließbaren Kommunikationsgerät umfasst ist, und Computerprogrammprodukt zur Ausführung des Verfahrens
US9336131B1 (en) * 2013-04-16 2016-05-10 Veritas Technologies, LLC Systems and methods for enabling virtual environments to mount non-native storage disks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0175458A2 (fr) * 1984-07-24 1986-03-26 Texas Instruments Incorporated Procédé de gestion de mémoire virtuelle pour séparer les blocs de mémoires actifs et stables
EP0392895A2 (fr) * 1989-04-13 1990-10-17 Sundisk Corporation Système EEprom avec effacement en bloc

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2828855C2 (de) * 1978-06-30 1982-11-18 Siemens AG, 1000 Berlin und 8000 München Wortweise elektrisch umprogrammierbarer, nichtflüchtiger Speicher sowie Verfahren zum Löschen bzw. Einschreiben eines bzw. in einen solchen Speicher(s)
JPS57132256A (en) * 1981-02-09 1982-08-16 Sony Corp Memory device
US4430727A (en) * 1981-11-10 1984-02-07 International Business Machines Corp. Storage element reconfiguration
JPS58215794A (ja) * 1982-06-08 1983-12-15 Toshiba Corp 不揮発性メモリ装置
JPS58215795A (ja) * 1982-06-08 1983-12-15 Toshiba Corp 不揮発性メモリ装置
US4511964A (en) * 1982-11-12 1985-04-16 Hewlett-Packard Company Dynamic physical memory mapping and management of independent programming environments
JPS59162695A (ja) * 1983-03-07 1984-09-13 Nec Corp 記憶装置
US4644494A (en) * 1984-02-06 1987-02-17 Sundstrand Data Control, Inc. Solid state memory for aircraft flight data recorder systems
US4896262A (en) * 1984-02-24 1990-01-23 Kabushiki Kaisha Meidensha Emulation device for converting magnetic disc memory mode signal from computer into semiconductor memory access mode signal for semiconductor memory
US4642759A (en) * 1984-04-02 1987-02-10 Targa Electronics Systems Inc. Bubble memory disk emulation system
US4775932A (en) * 1984-07-31 1988-10-04 Texas Instruments Incorporated Computer memory system with parallel garbage collection independent from an associated user processor
JPH065501B2 (ja) * 1984-11-07 1994-01-19 キヤノン株式会社 情報記録再生装置
US4958315A (en) * 1985-07-02 1990-09-18 The United States Of America As Represented By The Secretary Of The Navy Solid state electronic emulator of a multiple track motor driven rotating magnetic memory
JPS6228347A (ja) * 1985-07-24 1987-02-06 東洋アルミニウム株式会社 包装袋
US4757533A (en) * 1985-09-11 1988-07-12 Computer Security Corporation Security system for microcomputers
US4800520A (en) * 1985-10-29 1989-01-24 Kabushiki Kaisha Toshiba Portable electronic device with garbage collection function
JPS62102385A (ja) * 1985-10-29 1987-05-12 Toshiba Corp 携帯可能媒体
GB8529890D0 (en) * 1985-12-04 1986-01-15 Watson P Garbage collection in computer system
US4802117A (en) * 1985-12-16 1989-01-31 Pitney Bowes Inc. Method of preserving data storage in a postal meter
US4718041A (en) * 1986-01-09 1988-01-05 Texas Instruments Incorporated EEPROM memory having extended life
JPH07109717B2 (ja) * 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
JP2685173B2 (ja) * 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
US4797810A (en) * 1986-06-26 1989-01-10 Texas Instruments Incorporated Incremental, multi-area, generational, copying garbage collector for use in a virtual address space
JPS63113623A (ja) * 1986-10-30 1988-05-18 Nec Corp セクタバツフア制御方式
JPS63183700A (ja) * 1987-01-26 1988-07-29 Mitsubishi Electric Corp Eepromアクセス方法
KR910007027B1 (en) * 1987-03-28 1991-09-16 Toshiba Corp Memory access control apparatus
US5053990A (en) * 1988-02-17 1991-10-01 Intel Corporation Program/erase selection for flash memory
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US5070474A (en) * 1988-07-26 1991-12-03 Disk Emulation Systems, Inc. Disk emulation system
JP3156966B2 (ja) * 1988-09-30 2001-04-16 株式会社東芝 不揮発性半導体メモリ装置
US5012425A (en) * 1988-12-30 1991-04-30 Pitney Bowes Inc. EPM having an improvement in non-volatile storage of accounting data
US5101490A (en) * 1989-01-10 1992-03-31 Bull Hn Information Systems Inc. Peripheral device controller with an EEPROM with microinstructions for a RAM control store
US5047989A (en) * 1989-03-10 1991-09-10 Intel Corporation Chapter mode selection apparatus for MOS memory
US5163021A (en) * 1989-04-13 1992-11-10 Sundisk Corporation Multi-state EEprom read and write circuits and techniques
US5226168A (en) * 1989-04-25 1993-07-06 Seiko Epson Corporation Semiconductor memory configured to emulate floppy and hard disk magnetic storage based upon a determined storage capacity of the semiconductor memory
JPH02311935A (ja) * 1989-05-29 1990-12-27 Fuji Photo Film Co Ltd メモリカードの記憶管理方式
US5398142B1 (en) * 1989-05-31 1997-09-16 Raxco Inc Method for eliminating file fragmentation and reducing average seek times in a magnetic disk media environment
US5131089A (en) * 1989-06-12 1992-07-14 Grid Systems Corporation Solid state disk drive emulation
US5077737A (en) * 1989-08-18 1991-12-31 Micron Technology, Inc. Method and apparatus for storing digital data in off-specification dynamic random access memory devices
US5200959A (en) * 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5247658A (en) * 1989-10-31 1993-09-21 Microsoft Corporation Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers
US5321834A (en) * 1989-11-28 1994-06-14 Xerox Corporation Method and system for reclaiming unreferenced computer memory space
EP0473767A1 (fr) * 1990-03-23 1992-03-11 Eastman Kodak Company Gestion de memoire virtuelle et agencement d'affectation pour systeme de traitement de donnees numeriques
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US5083299A (en) * 1990-07-16 1992-01-21 Unisys Corporation Tester for measuring signal propagation delay through electronic components
JPH0484216A (ja) * 1990-07-26 1992-03-17 Toshiba Corp 半導体ディスク装置のデータ消去方法
US5210866A (en) * 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
JP2614357B2 (ja) * 1990-10-19 1997-05-28 富士通株式会社 一括消去型e▲上2▼promの予備書込み方法
JP2635448B2 (ja) * 1990-12-25 1997-07-30 富士写真フイルム株式会社 メモリカードにおけるデータ記録方法およびメモリカードシステム
US5297029A (en) * 1991-12-19 1994-03-22 Kabushiki Kaisha Toshiba Semiconductor memory device
US6256642B1 (en) * 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
JP3641280B2 (ja) * 1992-10-30 2005-04-20 インテル・コーポレーション フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0175458A2 (fr) * 1984-07-24 1986-03-26 Texas Instruments Incorporated Procédé de gestion de mémoire virtuelle pour séparer les blocs de mémoires actifs et stables
EP0392895A2 (fr) * 1989-04-13 1990-10-17 Sundisk Corporation Système EEprom avec effacement en bloc

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ROBINSON K: "TRENDS IN FLASH MEMORY SYSTEM DESIGN", WESCON TECHNICAL PAPERS, vol. 34, 1 November 1990 (1990-11-01), pages 468 - 472, XP000227913 *

Also Published As

Publication number Publication date
JP3476842B2 (ja) 2003-12-10
US5544356A (en) 1996-08-06
HK1006885A1 (en) 1999-03-19
JPH06139140A (ja) 1994-05-20
GB9124994D0 (en) 1992-01-22
GB2251324B (en) 1995-05-10
GB2251324A (en) 1992-07-01
US5592669A (en) 1997-01-07
FR2671223B1 (fr) 1996-10-04

Similar Documents

Publication Publication Date Title
FR2671223A1 (fr) Memoire semiconductrice remanente pour ordinateur personnel.
US7146455B2 (en) System and method for optimized access to memory devices requiring block writing
US7039786B2 (en) Memory device and recording and/or reproducing apparatus employing this memory device
JP3195988B2 (ja) 不揮発性半導体メモリ及びこれを使用したコンピュータシステム
KR960004738B1 (ko) 불휘발성 반도체 메모리 장치
JP4268396B2 (ja) 1回プログラム可能な不揮発性メモリデバイスのファイル管理
KR20040038712A (ko) 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블럭
US9152562B2 (en) Storage sub-system for a computer comprising write-once memory devices and write-many memory devices and related method
US20100082962A1 (en) Flash memory device for booting a computing device including embedded general purpose operating system
KR20080025178A (ko) 저장 장치에서 파티션들을 관리하기 위한 방법 및 시스템
US20090037648A1 (en) Input/output control method and apparatus optimized for flash memory
KR20090117929A (ko) 메모리 시스템
KR20100121389A (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치
US20090024810A1 (en) Memory area management method
KR20050062638A (ko) 공통의 논리적 블록과 연관된 물리적 블록들을 결정하기위한 방법 및 장치
EP2267725A1 (fr) Dispositif mémoire pour gérer la récupération d&#39;une mémoire non volatile
US20050149493A1 (en) Data recording apparatus and data recording method
CN101187849A (zh) 存储装置和存储***
JP4572205B2 (ja) フラッシュメモリドライブ装置、その制御方法及びそのプログラム
CN110597454B (zh) 数据储存装置以及非挥发式存储器控制方法
KR100545654B1 (ko) 시스템 시동 후 디스크에 존재하는 파일의 무결점을감지하는 방법
JP2007018528A (ja) メモリ装置、ファイル管理方法及び記録再生装置
FR2799046A1 (fr) Procede pour l&#39;ecriture aleatoire de secteurs d&#39;une taille inferieure a celle d&#39;un bloc d&#39;effacement dans une memoire effacable par bloc pour laquelle toute ecriture d&#39;une donnee necessite l&#39;effacement du bloc qui contient ladite donnee
JP2005149620A (ja) 記憶装置およびファイルシステム
JP2001100945A (ja) Raid制御方法およびコンピュータシステム

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20110831