FR2828567A1 - Systeme de stockage a memoire flash a base de fenetres et procedes de gestion et d'acces pour un tel systeme - Google Patents

Systeme de stockage a memoire flash a base de fenetres et procedes de gestion et d'acces pour un tel systeme Download PDF

Info

Publication number
FR2828567A1
FR2828567A1 FR0210071A FR0210071A FR2828567A1 FR 2828567 A1 FR2828567 A1 FR 2828567A1 FR 0210071 A FR0210071 A FR 0210071A FR 0210071 A FR0210071 A FR 0210071A FR 2828567 A1 FR2828567 A1 FR 2828567A1
Authority
FR
France
Prior art keywords
window
window information
flash memory
block
data
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
FR0210071A
Other languages
English (en)
Other versions
FR2828567B1 (fr
Inventor
Chun Hung Lin
Chih Hung Wang
Chun Hao Kuo
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.)
Solid State System Co Ltd
Original Assignee
Solid State System Co Ltd
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 Solid State System Co Ltd filed Critical Solid State System Co Ltd
Publication of FR2828567A1 publication Critical patent/FR2828567A1/fr
Application granted granted Critical
Publication of FR2828567B1 publication Critical patent/FR2828567B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

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

Abstract

L'invention concerne un système de stockage à mémoire flash à base de fenêtres ainsi que des procédés de gestion et d'accès pour un tel système. Le système de stockage comporte une région à base de fenêtres et une région réservée surabondante. La région à base de fenêtres est utilisée pour former plusieurs fenêtres associées chacune à plusieurs blocs physiques. La région surabondante comporte une zone de liens dynamiques, une zone d'informations de fenêtre, une zone d'information de liens dynamiques et une zone d'information de démarrage; la zone de lien dynamique comporte plusieurs blocs d'allocation dynamique affectés chacun à une fenêtre. La zone d'informations de fenêtre est utilisée pour mémoriser un jeu d'informations de fenêtre spécifique qui est affecté à une certaine fenêtre dans un domaine spécifique d'espace de stockage de données. La zone d'information de lien dynamique est utilisée pour enregistrer les états d'affectation des blocs d'allocation dynamique aux fenêtres.

Description

sortie du circuit de correction (6).
SYSTEME DE STOCKAGE A MEMOIRE FLASH A BASE DE FENETRES ET
PROCEDES DE GESTION ET D'ACCES POUR UN TEL SYSTEME
L'invention concerne le domaine des dispositifs de stockage massif et plus particulièrement un système de stockage à mémoire flash à base de fenêtres et un procédé d'accès pour un tel système. Le système à mémoire flash est typiquement composé de deux composants principaux: une unité de mémoire flash et un contrôleur d'accès; dans lequel l'unité de mémoirè flash est utilisée pour un stockage de données, tandis que le contrôleur d'accès est utilisé pour contrôler l'opération d'accès depuis 1'unité de traitement central (CPU, "Central Processing Unit") à la mémoire flash et pour gérer l'espace de stockage des données de la mémoire flash. Le contrôleur d'accès est typiquement composé d'un microprocesseur, une unité de mémoire morte (ROM, "Read-Only Memory"), une unité de mémoire vive statique (SRAM, "Static Random Access Memory"), une interface de mémoire flash et une interface CPU; dans lequel l'unité ROM est utilisoe pour stocker le code de programme s'exécutant sur le microprocesseur; I'unité SRAM est utilisée pour stocker des informations relatives à des fenêtres et sert également de tampon de données entre la mémoire flash et le CPU; I'interface CPU est utilisée pour permettre au contrôleur d'accès de communiquer avec le CPU; et l'interface de mémoire flash est utilisoe pour autoriser l'accès aux
donnces stockées dans la mémoire flash.
L'espace de stockage de donnces de la mémoire flash est fractionné en une pluralité de blocs, et la plupart des blocs sont classés en un certain nombre de sous-groupes appelés "fenêtres". Nous utilisons certains blocs spécifiques pour enregistrer les informations relatives à chaque fenêtre (ci après désignées par "informations de fenêtre"). Dans le but de rébuire le coût SRAM, une pratique courante est de stocker toute l'information de fenêtre dans la mémoire flash et seulement une partie de l'information de fenêtre qui est
essentielle aux opérations de fenêtre est chargée dans la SRAM.
Lorsqu'on souhaite effectuer des opérations de lecture/écriture sur une certaine fenêtre, il est requis de charger en premier l'information de fenêtre associée à cette fenêtre dans la SRAM. En cas de coupure soudaine de puissance cependant, certaines informations de fenêtre récemment mises à jour stockées à ce moment dans la SRAM seraient perdues, et donc la mémoire flash stocke encore l'ancienne version de l'information de fenêtre. En conséquence, lors de l'opération suivante de la même fenêtre lorsque la puissance a été rétablie, la version plus ancienne de l'information de fenêtre sera chargée dans la SRAM, impliquant l'utilisation d'une information de fenêtre incorrecte. De plus, lorsqu'une opération de lecture/écriture doit être effectuée sur un certain secteur de la fenêtre active, cela impliquerait de nombreuses phases d'opérations. Si l'on doit accéder à deux secteurs, le procédé utilisé actuellement va exécuter l'opération de lecture/écriture sur le premier secteur jusqu'à ce que toutes les phases soient accomplies et ensuite procéder à l'opération de lecture/écriture sur le secteur suivant. Ce procédé d'accès séquentiel est sans aucun doute d'une faible efficacité. Une solution classique à ce problème est d'utiliser deux rangées de mémoires flash ou plus pour effectuer une opération entrelacée de lecture/écriture pour aider à augmenter la vitesse d'accès. Un inconvénient de cette solution cependant, est qu'elle est limitée en fonctionnalités et présenterait le désavantage d'une consommation
de puissance excessivement grande.
Un but de l'invention est donc de fournir un système de stockage à mémoire flash à base de fenêtres et une gestion et un procédé d'accès pour un tel système qui peuvent fournir un moyen plus fiable de charger des informations de fenêtre et peuvent aider à améliorer les performances d'accès par des opérations conduites en parallèle sur les capacités de lecture/écriture
d'un certain nombre de secteurs.
Le système de stockage à mémoire flash à base de fenêtres selon l'invention inclut une région à base de fenêtres et une région redondante réservée, dans lequel la région à base de fenêtres est utilisée pour stocker un certain nombre de fenêtres, chaque fenêtre étant associée à un certain nombre de blocs physiques. La région redondante réservée inclut une zone de lien dynamique, une zone d'information de fenêtre, une zone d'information de lien dynamique, et une zone d'information de démarrage; dans lequel la zone de lien dynamique inclut une pluralité de blocs d'allocation dynamique, chacun pouvant être alloué à n'importe quelle fenêtre. La zone d'information de fenêtre inclutne pluralité de blocs d'information de fenêtre, qui sont utilisés pour - stocker un jeu d'informations de fenêtre spécifique qui est dédié à une certaine fenêtre. La zone d'information de lien dynamique est utilisée pour enregistrer le
statut de l'allocation des blocs d'allocation dynamique aux fenêtres.
s En outre, I'invention propose un procédé de gestion pour un système de stockage à mémoire flash à base de fenêtres. Le système de stockage à mémoire flash à base de fenêtres inclut une unité de mémoire flash ayant une pluralité de blocs d'informations de fenêtre, chacun étant utilisé pour stocker une pluralité de jeux d'informations de fenêtre, chaque jeu d'informations de fenêtre étant associé à une fenêtre. Selon ce procédé de gestion, au démarrage du système de stockage à mémoire flash à base de fenêtres, la première étape est de sélectionner un sous-groupe de blocs d'informations de fenêtre; et de sélectionner, à partir des blocs d'informations de fenêtre sélectionnés, un jeu d'informations de fenêtre, et de charger le jeu d'informations de fenêtre sélectionné dans une unité SRAM. Ensuite, le jeu d'informations de fenêtre associé à une fenêtre sélectionnce par un utilisateur est placé dans une zone de variables de fenêtres actives de la SRAM; et lorsqu'une autre fenêtre devient la fenêtre active, de déplacer le jeu d'informations de fenêtre courant stocké dans la zone de variables de fenêtres actives vers une fenêtre réservée dans la SRAM. Au cas o une fenêtre sélectionnée par un utilisateur n'est pas associée à des jeux d'informations de fenêtre stockés dans la SRAM, I'un des jeux d'informations de fenêtre est sélectionné et une sauvegarde en est copiée dans la mémoire flash, et la copie de sauvegarde de le jeu d'informations de fenêtre est remplacée par un des jeux d'informations de fenêtre stocké dans le bloc d'informations de fenêtre correspondant à la fenêtre sélectionnée pour l'utilisateur pour établir la fenêtre
sélectionnée pour l'utilisateur en tant que fenêtre active.
Dans un mode de réalisation préféré de l'invention, le fait de vérifier si le jeu d'informations de fenêtre chargé dans la mémoire flash est correct est
basé sur l'indicateur de blocs d'écriture et l'indicateur de blocs de secours.
De plus, I'étape antérieure de vérification du contenu de le jeu d'informations de fenêtre est basé sur le critère: (1) vérifier qu'un code de correction d'erreurs dans l'information de fenêtre est correct; (2) vérifier qu'un code somme de vérification dans l'information de fenêtre est correct; (3) vérifier que le bloc de secours est un bloc effacé; (4) vérifier que le contenu d'un certain nombre de blocs logiques, un compteur de cycles, et le secteur accédé en dernier dans le bloc d'écriture sont compatibles avec le contenu de I'indicateur du bloc d'écriture; et (5) vérifier que le contenu d'un drapeau de verrouillage de phase dans le bloc d'écriture n'est pas égal à la valeur utilisée
pour indiquer le premier secteur vide dans le bloc d'informations de fenêtre.
Si le contenu du jeu d'informations de fenêtre est incorrect, un mode de réalisation préféré de l'invention effectue l'étape d'observation des jeux d'informations de fenêtre précédents stockés dans les blocs d'informations de fenêtre pour le dernier ensemble utilisable d'informations de fenêtre; dans lequel le jeu d'informations de fenêtre utilisable est le jeu d'informations de fenêtre qui contient le code de correction d'erreurs modifiable et le code
somme de vérification correct dans les informations de fenêtre.
Un autre mode de réalisation préféré de l'invention effectue l'étape de recherche de tous les blocs appartenant à la fenêtre dans la mémoire flash
pour reconstruire le jeu d'informations de fenêtre.
En outre, I'invention propose un procédé d'accès pour un système de stockage à mémoire flash à base de fenêtres incluant une unité de mémoire flash ayant une région à base de fenêtres et une région redondante réservée et incluant une pluralité de zones tampons. Dans la zone d'informations de fenêtre de la région redondante réservée, chaque jeu d'informations de fenêtre est associé à une fenêtre spécifique ayant un certain nombre de blocs physiques. Dans ce procédé d'accès selon l'invention, la première étape est de charger le jeu d'informations de fenêtre d'une fenêtre sélectionnée par un utilisateur dans une SRAM; et de trouver un secteur demandé par un composant faisant des requêtes d'accès aux données, et ensuite de charger le
secteur demandé depuis la mémoire flash dans une des zones tampons.
Ensuite, le secteur demandé chargé à ce moment dans une des zones tampons est transféré au composant faisant des requêtes d'accès aux données. Les deux étapes antérieures de transfert de tous les secteurs demandés au composant faisant des requêtes d'accès aux données sont
effectuses en parallèle.
c 2828567 - En outre, I'invention propose un autre procédé d'accès pour un système de stockage à mémoire flash à base de fenêtres incluant une unité de mémoire flash ayant une région à base de fenêtres et une région redondante réservée et incluant une pluralité de zones tampons. Dans la zone d'informations de fenêtre de la région redondante, chaque jeu d'informations de fenêtre est associé à une fenêtre spécifique ayant un certain nombre de blocs physiques. Dans ce procédé d'accès selon l'invention, la première étape consiste à transférer un secteur d'écriture qui doit être écrit dans la mémoire flash à l'une des zones tampons, et à calculer l'adresse du secteur d'écriture dans la mémoire flash. Ensuite, on vérifie si l'opération de lecture précédente de la mémoire flash est correcte; et on délivre un signal qui permet d'écrire dans la mémoire flash et on transfère ensuite le secteur d'écriture à la mémoire flash. Les deux étapes antérieures de transfert de tous les secteurs demandés au composant faisant des requêtes d'accès aux données sont effectuées en
1 5 parallèle.
En conclusion, I'invention est caractérisée par l'utilisation de la région redondante réservée pour stocker des informations de fenêtre relatives à chaque fenêtre ainsi que par l'utilisation d'un procédé de construction rapide, d'un procédé de construction normal, d'un procédé de construction par recherche bloc à bloc pour aider la construction d'une information de fenêtre demandée pour initier rapidement un système de stockage à mémoire flash à base de fenêtres. De plus, I'invention utilise aussi des opérations conduites en
parallèle pour améliorer les performances des opérations de lecture/écriture.
L'invention peut être comprise de façon plus approfondie à la lecture
de la description détaillée suivante des modes de réalisation préférés, en
référence aux dessins qui l'accompagnent, dans lesquels: - FIG.1 est un diagramme schématique montrant la structure de données de la mémoire flash dans le système de stockage à mémoire flash à base de fenêtres selon l'invention; - FIG. 2 est un diagramme schématique montrant un mode de réalisation préféré de la structure de données de la zone redondante dans un bloc de données ou un bloc d'écriture; t 2828567 - -FIG. 3 est un diagramme schématique montrant un mode de réalisation prétéré de la structure de données de l'indicateur de bloc d'écriture ou de l'indicateur de bloc de secours; - FIG. 4 est un organigramme montrant un mode de réalisation préféré de la procédure effectuée par chaque module dans le système de stockage à mémoire flash à base de fenêtres de l'invention durant les opérations de lecture/écriture; - FIG. 5 est un diagramme schématique montrant un mode de réalisation préféré de l'architecture de la fenétre active et de la fenêtre réservée dans la SRAM; - FIG. 6 est un organigramme montrant un mode de réalisation préféré de la procédure effectuée par l'invention lors du chargement des inforrnations de fenétre dans la SRAM; - FIG. 7 est un organigramme montrant un mode de réalisation préféré de la procédure effectuée par le module de lecture/écriture de fenétre lors d'une opération d'écriture; - FIG. 8 est un diagramme schématique montrant un procédé classique pour lire les données à partir de secteurs; - FIG. 9 est un organigramme montrant un mode de réalisation préféré de la procédure effectuée par l'invention pour lire des données à partir d'un certain nombre de secteurs via des opérations conduites en parallèle; - FIG. 10 est un organigramme montrant un mode de réalisation préféré de la procédure effectuée par l'invention pour lire des donnces via des opérations conduites en parallèle; - FIG. 11 est un organigramme montrant un mode de réalisation préféré de la procédure effectuée par l'invention pour écrire des données de la mémoire flash via des opérations conduites en parallèle; et - FIG. 12 est un organigramme montrant un mode de réalisation préféré de la pro c édure effectuée p ar l' invention p our écrire d es donnces vi a des op érati ons
conduites en parallèle.
FIG. 1 est un diagramme schématique montrant la structure de données de l'espace de stockage de données de l'unité de mémoire flash dans
un système de stockage à mémoire flash à base de fenêtres selon l'invention.
Comme indiqué, I'espace de stockage des données de la mémoire flash est fractionné en un certain nombre de blocs et ces blocs sont agencés en deux groupes incluant une région à base de fene'tres 120 et une région redondante
réservée 121.
- La région à base de fenêtres 120 inclut un certain nombre de zones de fenêtre, qui sont numérotées de #O à #15, et chacune de celles-ci est fractionnée en 512 blocs à l'exception de la dernière zone de fenêtres #15 qui peut ne pas inclure exactement 512 blocs. La région redondante réservée 121 S est fractionnée en quatre zones: une zone de lien dynamique 101, une zone d'information de fenêtre 102, une zone d'information de lien dynamique 103 et une zone d'information de démarrage 104. La zone de lien dynamique 101 inclut un certain nombre de blocs qui sont alloués pour une utilisation par chaque fenêtre. Dans la zone d'informations de fenêtre 102, deux blocs sont alloués pour chaque fenêtre pour enregistrer ces informations de fenêtre. La zone d'information de lien dynamique 103 est utilisoe pour enregistrer le statut de l'allocation des blocs de la zone de lien dynamique 101. La zone d'information de démarrage 104 est utilisée pour enregistrer les emplacements de la zone de lien dynamique 101, la zone d'information de fenêtre 102, et la zone d'information de lien dynamique 103 ainsi que le nombre total de secteurs logiques dans le système de stockage à mémoire flash à base de fenêtres, etc. Comme illustré sur FIG.1, le format physique 105 représente le schéma d'accès utilisé par le contrôleur d'accès pour accéder à la mémoire flash; et le format logique 106 représente le schéma d'accès utilisé par le CPU pour accéder au système de stockage à mémoire flash à base de fenêtres; L'espace de stockage des données de la mémoire flash est fractionné en un total de 8192 blocs physiques, chaque bloc physique étant composé de 32 secteurs. Dans le format physique 105, ces blocs physiques 107 sont numérotés de 1 à 8 191, et leurs blocs relatifs 108 sont groupés par 512 blocs dans une pluralité de sous-groupes. A l'exception de la fenêtre #15, les blocs associés à chaque fenêtre sont numérotés de O à 511, et les blocs relatifs de la région redondante réservée 121 sont numérotés de 512 à 703. Le format logique 106 inclut un certain nombre de blocs logiques 110 (qui sont numérotés de O à 7999) ou un certain nombre de blocs logiques relatifs 109 (qui sont groupés par 512 blocs en une pluralité de sous-groupes). A l'exception de la fenêtre #15, les blocs logiques associés à chaque fenêtre sont numérotés de 0 à 511. Puisque chaque bloc logique est composé de 32 secteurs logiques, les secteurs logiques 112 sont numérotés de 0 à 255 999. Les secteurs logiques
relatifs 111 sont groupés par 16 384 secteurs en une pluralité de sousgroupes.
A l'exception de la fenêtre #15, les blocs logiques associés à chaque fenêtre sont numérotés de 0 à 16 383. On peut voir sur FIG. 1 que le procédé d'adressage logique du CPU serait incapable d'accéder à la région redondante
S réservée 121.
Chaque fenêtre inclut trois types de blocs: des blocs de données, des blocs d'écriture et des blocs de secours. Lorsqu'on souhaite effectuer une opération d'écriture sur le bloc de donnces précédent, I'opération d'écriture sera d'abord dirigée vers le bloc d'écriture; et si le bloc d'écriture est plein et si une autre opération d'écriture est prévue, alors le bloc d'écriture remplacera le précédent bloc de données, et le bloc de donnces précédent sera effacé pour devenir un bloc de secours qui peut ensuite être utilisé pour servir comme un
bloc d'écriture pour une autre opération d'écriture.
Comme illustré sur FIG. 1, la fenêtre 0 inclut un total de 512 blocs de données dans la fenêtre #0 100 ainsi qu'un bloc d'écriture et un bloc de secours alloué à la zone de lien dynamique 101. L'information de fenêtre de chaque fenêtre inclut une table de cartographie (ou de correspondance) "bloc de-donnces-vers-bloc-logique", l'indicateur de bloc d'écriture, et l'indicateur de bloc de secours. Dans le cas o une fenêtre ayant 512 blocs de données, un bloc d'écriture et un bloc de secours, cela nécessite l'utilisation de deux
secteurs pour enregistrer toutes les informations de fenêtre de cette fenêtre.
Ces deux secteurs sont utilisés pour enregistrer les relations de correspondance entre les 512 blocs de donnces et les blocs logiques dans leur zone de données utilisateur, et sont en outre utilisés pour enregistrer les indicateurs de blocs d'écriture et les indicateurs de blocs de secours dans leur
zone redondante.
FIG. 2 est un diagramme schématique montrant un mode de réalisation préféré de la structure de donnces de la zone redondante en blocs de données
ou blocs d'écriture.
Comme illustré, le numéro de bloc logique relatif 201 est utilisé pour en reg istrer le nu méro de bloc logique relatif qu i est mis en correspondance avec ce bloc. Le numéro de fenêtre 202 est utilisé pour indiquer la fenêtre qui est associée à ce bloc. Le compteur de cycles 203 est utilisé pour indiquer si les données correspondent à une version ancienne ou à une version nouvellement mise à jour; et il fonctionne de manière à ce que, pendant chaque opération d'écriture, le contenu du compteur de cycles du bloc d'écriture soit réglé pour être égal au compteur de cycles du bloc de données augmenté de 1. Le drapeau de verrouillage de phase 204 est utilisé pour enregistrer l'emplacement du secteur qui est utilisé pour sauvegarder l'information de fenêtre de la fenêtre active à ce moment, et dont la valeur peut être utilisée pour indiquer si l'action de sauvegarde précédente de l'information de fenêtre a été réalisée avec succès. Le code de vérification 205 est utilisé pour enregistrer le code de vérification des données antérieures. Le drapeau d'erreur de données 206 est utilisé pour indiquer si les données stockées dans la zone de données utilisateur dans le secteur sont correctes ou non. Le code de correction d'erreurs 208 est utilisé pour stocker le code de correction
d'erreurs pour la zone de données utilisateur dans le secteur.
FIG. 3 est un diagramme schématique montrant un mode de rénlisation préféré de la structure de données de l'indicateur de bloc d'écriture ou
l'indicateur de bloc de secours.
Comme illustré, le numéro de bloc relatif 301 est utilisé pour enregistrer
le numéro de bloc logique relatif qui est mis en correspondance avec ce bloc.
Le numéro de secteur logique relatif 302 est utilisé pour indiquer si le bloc est un bloc de secours (lorsque sa valeur hexadécimale est OxFFFF) ou pour
indiquer la localisation du secteur qui est le dernier écrit dans le bloc d'écriture.
Le numéro de fenêtre 303 est utilisé pour indiquer la fenêtre qui est associée à ce bloc. Le. compteur de cycles de bloc d'écriture 304 est utilisé pour enregistrer la valeur courante du compteur de cycles du bloc d'écriture. Le code de vérification 305 est utilisé pour stocker le code de vérification excluant le drapeau d'erreur de bloc et le code de correction d'erreurs. Le compteur de cycles d'information de fenêtre 306 peut être utilisé pour indiquer quel bloc d'information de fenêtre contient les donnces les plus récentes. Le drapeau d'erreur de bloc 307 est utilisé pour indiquer si le bloc est invalide. Le code de correction d'erreurs 308 est utilisé pour stocker le code de correction d'erreurs
pour la zone de données utilisateur dans le secteur.
-Les opérations d'accès à la mémoire flash sont effectuées par trois modules: le module de construction de fenêtre, le module de lecture/écriture de fenêtre, et le module d'accès à la mémoire flash. Le moduie de construction de fenêtre est responsable du chargement des informations de fenêtre de la fenêtre sélectionnée pour l'utilisateur dans la SRAM. Le module de lecture/écriture de fenêtre est utilisé pour déterminer à quel bloc de la mémoire flash on doit accéder en réponse à la requête du CPU. Le module d'accès à la mémoire flash est capable de réaliser des opérations directes de lecture, écriture, effacement, et vérification de statut sur la mémoire flash en réponse aux requêtes d'autres moduies. Ceci peut aider à simplifier la complexité opérationnelle des autres modules. Par exemple, I'organigramme de FIG. 4 montre un mode de réalisation préféré de la procédure effectuée par chaque module dans le système de stockage à mémoire flash à base de fenêtres de l'invention pendant des opérations de lecture/écriture. Comme illustré, la première étape 401 doit exécuter le module de construction de fenêtres; la seconde étape 402 doit exécuter le module de lecture/écriture de fenêtres; et la troisième étape 403 doit vérifier si on a accédé à tous les secteurs demandés; si NON, la procédure renvoie à l'étape 401; et si OUI, la procédure est terminée. Lors de cette procédure, I'appel du module d'accès à la mémoire flash est inclus dans la première sous-étape de l'étape 401 et la
troisième sous-étape de l'étape 402.
Dans l'exécution du module de construction de fenêtre, le souci principal est de gérer de façon effective toutes les fenêtres stockées dans la SRAM. Pour rébuire le temps de commutation entre différentes fenêtres dans la mémoire flash et la SRAM, il faut charger au moins deux jeux d'information de fenêtre associés à deux fenêtres en cours de commutation. Bien que le chargement d'un plus grand nombre de jeux d'information de fenêtre réduirait le temps de commutation, cela augmenterait de façon indésirable le coût en SRAM. Dans un mode de réalisation préféré de l'invention, on charge trois jeux 3 0 d' information de fenêtre, incluant de préférence le jeu d'information de fenêtre associé à la fenêtre #0 puisque la fenêtre #0 est fonctionnellement liée au fonctionnement du système de fichiers DOS, L'information de fenêtre chargée depuis la mémoire flash vers la SRAM inclut l'lndicateur de Bloc d'Ecriture et l'lndicateur de Bloc de Secours (ci-après désignés par " variables de fenêtre "). Il y a des accès fréquents à ces variables de fenêtre au cours du fonctionnement du système de stockage à mémoire flash à base de fenêtres; en conséquence, pour réduire la complexité du programme informatique et augmenter l'efficacité opérationnelle du code de ce programme, il est de pratique courante d'allouer ces variables de fenêtre à des emplacements fixes. Par exemple, comme montré sur la figure 5, les adresses SRAM 400-459 sont définies en tant que zone de variables de fenêtres réservées 501 pour l'allocation des variables de fenêtre 503 de la fenêtre réservoe #0, des variables de fenêtre 504 de la fenêtre réservée #1, et
des variables de fenêtre 505 de la fenêtre réservée #2.
Lorsqu'on souhaite commuter vers la fenêtre #O en tant que fenêtre active, étant donné que la fenêtre #O est actuellement une fenêtre réservée, il faut déplacer les variables de fenêtre de 20 octets depuis les adresses 400-419 vers les adresses 20-39, qui sont les emplacements de la zone de variables de fenêtres actives 502 o les variables de fenêtre 1 à 20 sont allouces. Cette action fait que la fenêtre #O devient la fenêtre active. Ensuite, si on souhaite commuter vers la fenêtre #2 en tant que fenêtre active, il faut d'abord ramener les variables de fenêtre de la fenêtre #0 (qui sont actuellement stockées dans la zone de variables de fenêtres actives 502) à leurs emplacements d'origine, puis déplacer les variables de fenêtre de la fenêtre réservoe #2 vers la zone de variables de fenêtres actives 502, ce qui fait que la fenêtre #2 devient la fenêtre active. Dans la programmation, la commutation entre les fenêtres nécessite seulement de déplacer les variables de fenêtre 1-20, de sorte que cela peut aider à réduire la complexité du code requis par le programme et donc à
augmenter l'efficacité globale du fonctionnement du système à fenêtres.
Quand la fenêtre sélectionnée par l'utilisateur n'est pas une fenêtre réservoe, il faut d'abord ramener la fenêtre active vers la zone de fenêtres réservées, puis choisir une fenêtre réservée et faire une copie de sauvegarde de celle-ci en mémoire flash, et finalement changer les variables de fenêtre de la fenêtre sélectionnée par l'utilisateur dans Ia zone de variables de fenêtres actives 502. Apparemment, cette méthode de sauvegarde de garantirait pas que la-prochaine utilisation de l'information de fenêtre dans la mémoire flash serait normale. Il y a donc un besoin pour une solution permettant de charger l'information de fenêtre correcte en SRAM au cours de la prochaine utilisation
de l'information de fenêtre dans la mémoire flash.
L'invention procure trois façons de résoudre le problème précité: (A) Méthode de Construction Rapide; (B) Méthode de Construction Normale; et
(C) Méthode de Construction à Recherche Bloc-par-Bloc.
(A) Méthode de Construction Rapide.
Cette méthode est capable de juger rapidement si le jeu d'information de fenêtre courant stocké dans la mémoire flash est correct sur la base des critères suivants: (1) le code de correction d'erreur dans le secteur d'information de fenêtre est correct; (2) le code de vérification dans le secteur d'information de fenêtre est correct; (3) le bloc de secoursindiqué par l'lndicateur de Bloc de Secours est un bloc qui a été précédemment effacé; (4) le bloc d'écriture indiqué par l'lndicateur de Bloc d'Ecriture contient un numéro de bloc logique, un compteur de cycles, et de I'information sur le dernier secteur écrit, qui sont cohérents avec les données enregistrées dans l'lndicateur de Bloc d'Ecriture; (5) le bloc d'écriture indiqué par l'lndicateur de Bloc d'Ecriture contient une valeur de drapeau de verrouillage de phase qui n'est pas égale à l'adresse du premier secteur vierge dans le bloc
d' information de fenêtre relatif à la fenêtre.
En pratique, comme la plupart de l'information de fenêtre est normale, il est faisable de charger directement le jeu d'information de fenêtre associé dans la SRAM et d'utiliser cette Méthode de Construction Rapide pour vérifier si le contenu du jeu d'information de fenêtre chargé est normal. S'il n'est pas normal, on peut utiliser l'une des deux autres méthodes pour charger
correctement le jeu d'informations de fenêtres dans la SRAM.
(B) - Méthode de Construction Normale.
Si la Méthode de Construction Rapide qui précède n'est pas applicable, on peut utiliser à la place la Méthode de Construction Normale, et qui examine tous les jeux d'information de fenêtre précédemment chargés pour trouver le dernier jeu d'information de fenêtre utilisable. Puisque la table de correspondance bloc-de-données vers-bloc-logique dans le jeu d'information de fenêtre contient l'information sur les emplacements de tous les blocs de données associés de la fenêtre, et puisque l'lndicateur de Bloc d'Ecriture et l'lndicateur de Bloc de Secours contiennent l'information sur les emplacements de tous les blocs d'écriture et de secours associés de la fenêtre, tous les blocs associés de cette fenêtre peuvent être trouvés pour aider à la construction d'un jeu d'information de fenêtre correct pour la fenêtre et au chargement de ce jeu
d' information de fenêtre dans la SRAM.
Le jeu d'information de fenêtre utilisable mentionné précédemment devrait remplir les critères suivants: (1) les données contenues dans la table de correspondance bloc-de-données-vers-bloc-logique du jeu d'information de fenêtre devraient ne contenir aucun code de correction d'erreur non corrigible; et, (2) le code de vérification contenu dans 1'1ndicateur de Bloc d' Ecriture et l' lnd icateur de Bloc de Secours du jeu d'information de
fenêtre est correct.
(C) Méthode de Construction à Recherche Bloc-par-Bloc.
Une méthode alternative à la Méthode de Construction Rapide est la Méthode de Construction à Recherche Bloc-par-Bloc, qui parcourt tous les blocs probables pour récupérer les blocs appartenant à la fenêtre et construire ainsi un nouveau jeu d'information de fenêtre. Comme les blocs d'une fenêtre sont interchangeables avec les blocs d'une autre fenêtre, le processus de recherche peut n'être exécuté que dans la zone de numéro de fenêtre et tous les blocs qui ont été alloués dynamiquement. Si un bloc de secours est situé dans la zone de lien dynamique, il est difficile de distinguer à quel fenêtre ce bloc de secours appartient. En conséquence, il suffit de trouver tous les blocs de donnces et les blocs d'écriture qui sont associés à cette fenêtre, puis de réallouer un nouveau bloc de secours. Ceci permet la construction d'un jeu
normal d'information de fenêtre qui est ensuite chargé dans la SRAM.
La figure 6 est un organigramme montrant un mode de réalisation préféré des étapes de procédure détaillées effectuées à l'étape 401, en exécution du module de construction de fenêtre représenté sur la figure 4 pour charger de l'information de fenêtre en SRAM. Dans cette procédure, la première étape 601 est de vérifier si la fenêtre sélectionnée par l'utilisateur est la fenêtre active courante; si OUI, on dirige l'opération de fenêtre vers la fenêtre active courante; tandis que si c'est NON, la procédure passe à la prochaine étape 602 dans laquelle la fenêtre active courante est ramenée à l'emplacement de fenêtre réservée. La procédure passe alors à l'étape 603, dans laquelle on vérifie si la fenêtre sélectionnée par l'utilisateur est l'une des fenêtres réservées; si OUI, la procédure passe à l'étape 609 dans laquelle on bascule la fenêtre sélectionnée par l'utiilsateur en tant que fenêtre active; tandis que si c'est NON, la procédure passe à l'étape 604 dans laquelle on sélectionne l'une des fenêtres réservées et on en copie une sauvegarde dans la mémoire flash. La procédure passe alors à l'étape 605 dans laquelle on - utilise la Méthode de Construction Rapide pour charger le jeu d'information de fenêtre de la fenêtre sélectionnée par l'utilisateur dans la SRAM. Si le chargement est un succès, la procédure saute à la fin; tandis que si c'est un échec, la procédure passe à la prochaine étape 606 dans laquelle on utilise à la place la Méthode de Construction Normale. Si l'utilisation de la Méthode de Construction Normale est un succès, la procébure saute à la fin; tandis que si c'est un échec, la procédure passe à la prochaine étape 607 dans laquelle on utilise la méthode de Construction à Recherche Bloc-par-Bloc pour construire l'information de fenêtre requise et en copier une sauvegarde dans la mémoire flash. A l'étape finale 609, on charge l'information de fenêtre dans la zone de fenêtres actives de la SRAM pour provoquer le basculement de la fenêtre
sélectionnée par l'utilisateur en tant que fenêtre active.
La figure 7 est un organigramme montrant un mode de réalisation préféré des étapes de procédure détaillées effectuées à l'étape 402 montré sur la figure 4 en exécution du module de lecture/écriture de fenêtre. La première étape 701 consiste à déterminer si l'opération d'écriture concerne le bloc d'écriture d'origine; si OUI, la procédure passe à l'étape 702; tandis que si c'est NON, la procébure passe à l'étape 705. A l'étape 702, on détermine s'il se produit une opération d'écrasement; si OUI, la procédure passe à l'étape 703; tandis que si c'est NON, la procédure passe à l'étape 707. A l'étape 707, on vérifie si il faut effectuer une opération de pré-écriture. A l'étape 703, on nettoie le bloc d'écriture d'origine; puis la procédure passe à l'étape 704 dans laquelle on alloue le bloc de secours au bloc d'écriture d'origine, et la procédure revient
ensuite à l'étape 701.
A l'étape 701, si le résultat est NON, la procédure passe à l'étape 705 dans laqueile on nettoie le bloc d'écriture d'origine; puis la procédure passe à l'étape 706 dans laquelle on alloue la bloc de secours au bloc d'écriture auquel on est en train d'accéder; et la procédure passe ensuite à l'étape 707 dans laquelle on vérifie si il faut effectuer une opération de pré-écriture; si NON, la procédure passe à l'étape 709; tandis que si c'est OUI, la procédure passe à l'étape 708 dans laquelle on effectue une opération de pré-écriture; puis la
procédure passe à l'étape 709.
A l'étape 709, on effectue une opération d'écriture pour écrire des données dans les blocs d'écriture. Cette opération d'écriture se poursuit jusqu'à ce que le bloc d'écriture courant soit plein ou que les données à écrire soient terminées. La procédure passe alors à l'étape 710 dans laquelle on vérifie si toutes les don nées de la fenétre sélection née pa r l' utilisateu r ont été écrites; si c'est NON, la procédure revient à l'étape 701; sinon, la procédure
est terminée.
Le nettoyage du bloc d'écriture d'origine réalisé aux étapes 703 et 705
incorpore les sous étapes ci-dessous.
(1) remplissage de chaque secteur vide dans le bloc d'écriture à l'aide des donnces dans le bloc de donnces; (2) changement du bloc d'écriture en bloc de données (c'est-à-dire mise à jour du contenu de la table cartographique "bloc de données vers bloc logique" dans l'information de fenêtre); et (3) effacement du bloc de données d'origine pour le transformer en un bloc
de secours.
L'opération de pré-écriture effectuée lors de l'étape 77 est utilisoe pour amener les données de secteur dans les blocs de données qui ne seront pas écrits par
l'unité centrale de traitement (CPU) dans les blocs d'écriture.
L'étape 402 montrée en figure 4 pour exécuter écriture de fenêtre / module S d'écriture comporte une opération de lecture relativement simple, qui détermine d'abord si les données requises sont stockées dans les blocs d'écriture; si OUI, une opération de lecture est effectuée sur le bloc d'écriture pour lire les données désirces; si c'est NON, cela indique que les données requises sont
stockées dans les blocs de données.
Une opération en parallèle pipelinée est utilisée pour effectuer l'opération de lecture / écriture de façon à augmenter la vitesse d'accès. La réalisation de cette opération en parallèle doit remplir les conditions de système suivantes: (1) au moins deux tampons indépendants en configuration matériel, I'un des tampons étant utilisé pour la communication avec l'unité centrale et I'autre étant capable d'effectuer une opération d'accès à la mémoire flash en même temps; et (2) au moins deux secteurs consécutifs dans la fenêtre sélectionnée par
l'utilisateur, qui sont accédés par l'unité centrale.
L'opération de l'unité centrale dans la lecture de données provenant d'un secteur de la mémoire flash comporte trois phases. Dans la première phase, le micro processeur calcule o est logée l'adresse du secteur dans la mémoire flash stockant les données requises par l'unité centraie. Dans la seconde phase, le micro processeur émet une requête de lecture vers la mémoire flash, puis attend jusqu'à ce que la mémoire flash soit prête et enfin prélève les donnces requises dans la mémoire flash et les place dans le tampon; au cours de cette phase, une correction d'erreur est effectuée pour réaliser toute correction nocessaire des données. Dans la troisième phase, un signal "prêt" est émis vers l'unité centrale pour lui indiquer que le tampon est prêt à transférer des données, ce qui permet à l'unité centrale de prélever les
données requises dans le secteur du tampon.
Si l'accomplissement de la première phase de fonctionnement nécessite 25 micro secondes, I'accomplissement de La seconde phase nécessite 25
millisecondes et l'accomplissement de la troisième phase 100 millisecondes.
Ainsi l'opération de lecture de chaque secteur exige un total de 190 millisecondes. Comme le montre la figure 8, il faut 190 millisecondes pour accomplir l'opération de lecture 801 du premier secteur. L'accomplissement de l'opération ultérieure de lecture 802 sur le second secteur demande également 190 millisecondes. Si en conséquence il y a en tout n secteurs à lire, I'accomplissement de l'opération de lecture complète sur les n secteurs exige
* n millisecondes.
La figure 9 est- un schéma montrant un mode avantageux de réalisation du processus réalisé par l'invention dans la lecture de données à partir de
plusieurs secteurs par un fonctionnement parallèle en pipeline.
L'accomplissement de l'opération de lecture 901 sur le premier secteur exige trois étapes et 190 millisecondes. Dans la réalisation avantageuse, la phase 1 est pour trouver un secteur requis par un composant de requête d'accès aux données et la phase 2 est pour charger le secteur requis à partir de la mémoire flash dans l'une des zones tampons. La phase 3 est pour transférer le secteur requis, chargé dans la zone tampon, vers le composant qui requiert un accès de donnces. Lorsque l'opération de lecture 901 passe à la seconde phase, la première phase 903 de l'opération de lecture sur le second secteur démarre; et une fois que l'opération de lecture 901 passe à la troisième phase 904, la seconde phase 905 et la troisième phase 906 de l'opération de lecture sur le second secteur démarrent l'une après l'autre. En conséquence, I'opération de lecture complète 907 sur le second secteur ne prend que 100 millisecondes (c'est-à-dire la durée complète de la troisième phase). De plus, lorsque l'opération de lecture 907 sur le second secteur passe à la troisième phase 908, la seconde phase 909 de l'opération de lecture sur le secteur 3 et la première phase 910 de l'opération de lecture sur le secteur 4 démarrent l'une après l'autre. En conséquence l'opération de lecture complète sur le secteur 3 ne prend que 100 millisecondes. On peut en conclure que, pour n secteurs, I'accomplissement de l'opération de lecture complète sur les n secteurs prend
190+1 00*(n-1)ms.
La figure 10 est un schéma montrant un mode avantageux de réalisation du processus réalisée par l'invention pour effectuer l'opération de lecture par fonctionnement en parallèle en pipeline. La première étape 1001 consiste à
- 2828567
réaliser la première phase pour calculer l'adresse du secteur à accéder; au cours de l'étape suivante 1002, on démarre la seconde étape, mais on effectue uniquement la première moitié du processus; i'étape suivante 1003 consiste à calculer l'adresse du secteur suivant à accéder. Au cours de l'étape suivante S 1004, on effectue la seconde moitié du processus de la seconde phase de façon à compléter la seconde phase de fonctionnement. Au cours de l'étape suivante 1005, I'unité centrale est vérifiée pour voir si elle a reçu toutes les données provenant du secteur précédent dans le tampon (si le secteur courant est le premier secteur, cette étape est sautée) et notification est donnée à I'unité centrale (CPU) de recevoir les données provenant de ce secteur dans le tampon. Lors de l'étape suivante 1006, on vérifie s'il y a encore des données à lire. Si OUI, le processus revient à l'étape 1002; si NON, le processus passe à i'étape 1007 et l'unité centrale continue à recevoir des données des tampons jusqu'à ce que toutes les données soient reçues. Le processus se termine
1 5 alors.
Le fonctionnement de l'unité centrale dans l'écriture des données provenant d'un secteur dans le système de stockage à mémoire flash comporte également trois phases. Dans la première phase, le micro processeur envoie une requête de transfert de données à l'unité centrale, ce qui provoque le transfert de données au tampon par l'unité centrale. Dans la seconde phase, le micro processeur calcule l'adresse du secteur o les données doivent être écrites. Dans la troisième phase, I'opération de lecture précédente est vérifiée pour voir si toutes les données sont correctement écrites et alors une requête
d'écriture est émise pour écrire les données dans la mémoire flash.
La figure l l est un schéma montrant un autre mode de réalisation du processus réalisé par l'invention pour écrire des données en mémoire flash par un fonctionnement en parallèle de type pipeline; I'opération de lecture est divisée en trois phases. La phase 1 consiste à transférer un secteur d'écriture qui doit être écrit en mémoire flash vers une des zones tampon. La phase 2 consiste à calculer l'adresse du secteur d'écriture dans la mémoire flash. La phase 3 consiste à vérifier si l'opération décriture précédente en mémoire flash est correcte et à transférer le secteur d'écr'iture dans la zone tampon vers la mémoire flash. De plus, dans ce mode de réalisation, I'opération d'écriture de la phase 1 pour le secteur 1 ( 1101) passe à la phase 2 du secteur 1 (1102) avant la fin de la phase 1 (1101) et la phase 2 (1102) se termine avant la fin de la phase 1 (1101). Lors de l'écriture en phase 1 du secteur 2 (1103), la phase 3 du secteur 1 (1104) et la phase 2 du secteur 2 (1105) démarrent l'une après I'autre. La phase 2 du secteur 2 (1105) se termine la première et la phase 3 du secteur 1 (1104) et la phase 1 du secteur 2 (1103) se terminent l'une après l'autre. Toutes les autres phase pour finir l'opération de lecture démarrent et s'arrêtent l'une après l'autre de la même façon. Finalement, la phase 3 pour le
dernier secteur (1109) démarre et se termine individueliement.
La figure 12 est un schéma d'un autre mode avantageux de réalisation du processus de l'invention pour écrire des données par un fonctionnement en parallèle de type pipeline. Elle montre les sous étapes détaillées de l'étape 709 du schéma de la figure 7. Au début du schéma de la figure 7, les donnces dans le premier secteur sont transférées au tampon. Dans le schéma de la figure 12, la première étape 1201 consiste à calculer l'adresse du secteur à accéder dans la mémoire flash. L'étape suivante consiste à attendre jusqu'à ce que l'unité centrale ait rempli un tampon; puis on détermine s'il reste des données qui n'ont pas été transférées au tampon; si OUI, I'unité centrale continue à transférer les données du secteur suivant au tampon. Lors de l'étape suivante 1203, on détermine si l'opération de lecture précédente a été correctement exécutée (si le secteur courant est le premier secteur, cette étape est sautée); puis un signal d!entrée séquentiel et un signal d'adresse sont envoyés pour
provoquer le transfert des données dans le tampon vers ia mémoire flash.
L'étape suivante 1204 consiste à calculer l'adresse du secteur suivant à accéder en mémoire flash, en succession du secteur précédent. L'étape suivante 1205 consiste à attendre jusqu'à la fin du transfert de données du tampon vers la mémoire flash, puis un signal d'autorisation d'écriture est émis vers la mémoire flash. Lors de l'étape suivante 1206, on détermine si le bloc d'écriture est plein; si OUI le processus saute à l'étape 1208; si NON, le processus passe à l'étape suivante 1207. Lors de 'étape 1207, on vérifie si toutes les données ont été transférées; si NON, le processus revient à l'étape 1202; si OUI le processus passe à l'étap'e 1208. Lors de l'étape 1208, on - vérifie que l'opération d'écriture précédente a été correctement exécutée et le
processus se termine.
Au cours du fonctionnement en parallèle de type pipeline, les étapes suivantes sont exécutées si l'opération de lecture ne s'exécute pas correctement: (1) arrêt du fonctionnement en parallèle de type pipeline (2) recherche d'un bloc de secours utilisable; (3) transfert des secteurs utiles du bloc défectueuxvers le bloc de secours; (4) mise en place du drapeau d'erreur de bloc sur le bloc défectueux et remplacement du bloc défectueux par le bloc de secours obtenu lors de I'étape (2); et (5) reprise du fonctionnement en parallèle du type pipeline En conclusion l'invention a les avantages suivants. Elle utilise trois méthodes, à savoir la méthode de construction rapide, la méthode de construction normale et la méthode de construction à recherche bloc par bloc pour charger I'information de fenêtres dans la mémoire vive statique puis elle utlise un fonctionnement en parallèle de type pipeline pour améliorer les opérations de lecture / écriture de telle façon que l'opération d'accès au secteur suivant commence alors que l'opération d'accès au secteur courant n'est effectuée
qu'à demi.
L'invention a été décrite en utilisant des exemples. Mais la portée de l'invention ne se limite pas aux modes de réalisation décrits et couvre toutes les variantes
et modifications dans le cadre des équivalences.

Claims (7)

REVENDICATIONS
1. Procédé de gestion de système de stockage à mémoire flash à base de fenétres ayant une unité de mémoire flash ayant une zone d'information de fenétre fractionnée en plusieurs blocs d'informations de fenétre, chacun utilisé pour stocker plusieurs jeux d'informations de fenêtres dont chacun est associé à une fenétre, caractérisé en ce que 1. au démarrage du système de stockage à mémoire flash à base de fenétre, on sélectionne un sous groupe de blocs d'information de fenétre; et à partir des blocs sélectionnés d'information de fenétre, on sélectionne un jeu d'informations de fenêtre et on charge le jeu d'informations de fenêtre sélectionné dans une mémoire vive statique (SRAM); 2. on place une partie du jeu d'informations de fenêtre, associée à une fenétre sélectionnée par l'utilisateur, dans une zone variable de mémoire active de la mémoire vive statique; 3. Iorsque la fenêtre sélectionnée par l'utilisateur n'est pas la fenêtre active, on déplace la partie du jeu d'informations de fenêtre stockée dans la zone variable de la fenêtre active vers une zone variable de fenêtre réservée dans la mémoire vive statique; et 4. dans le cas ou la fenétre sélectionnée pa m I'utilisateur n'est pas associée à des jeux d'informations de fenétres stockés dans la mémoire vive statique, on sélectionne un des jeux d'informations de fenêtres ci-dessus et on en copie une sauvegarde dans la mémoire flash, et on remplace la copie de sauvegarde du jeu d'informations de fenétre par un jeu sélectionné parmi les jeux d'informations de fenétres stockés dans le bloc d'informations de fenétre correspondant a la fenétre sélectionnée par l'utilisateur pour établir la fenétre sélectionnée par l'utilisateur en tant que fenétre active
2. Procédé de gestion suivant la revendication 1, dans lequel les jeux d'informations de fenétre chargés dans la mémoire vive statique comportent un jeu d'informations de fenétre correspondant à une fenétre # 0
3. Prcédé de gestion suivant la revendication 1, dans lequel chaque jeu d'information de fenêtre comprend: - une table de cartographie " bloc de données vers bloc logique ", qui stocke les relations cartographiques entre plusieurs blocs de données physiques et plusieurs blocs de données logiques; - un indicateur de bloc d'écriture dont le contenu est utilisé pour indiquer l'état du bloc d'écriture qui est à ce moment utilisé par la fenêtre.associée au jeu d'informations de fenêtre; et - un indicateur de bloc de secours dont le contenu est utilisé pour indiquer l'état d'un bloc de secours utilisé à ce moment par la fenêtre associée au jeu
d'informations de fenêtre.
4. Procédé de traitement suivant la revendication 3, dans lequel le chargement des jeux d'informations de fenêtre dans la mémoire vive statique comporte les sous étapes suivantes: - une fois les jeux d'informations de fenêtre chargés, on détermine si le jeu d'informations de fenêtre correspondant est correct, à partir du contenu de l'indicateur de bloc d'écriture et de l'indicateur du bloc de rechange; et - si le jeu d'informations de fenêtre est incorrect, on corrige le contenu du jeu d'informations de fenêtre à partir des données stockées dans la mémoire flash et on charge alors l'information de fenêtre corrigée dans la mémoire vive statique.
5. Procédé de gestion suivant la revendication 4, dans lequel la détermination si le jeu d'information de fenêtre est correct comporte les sous-étapes suivantes: - on vérifie qu'un code de correction d'erreurs dans l'information de fenêtre est correct; - on vérifie qu'un code somme de vérification de l'information de fenêtre est correct; - on vérifie que le bloc de secours est un bloc effacé; - on vérifie que le contenu d'un numéro de bloc logique, d'un compteur de cycles et d'un secteur accédé en dernier sont compatibles avec le contenu de l'indicateur de bloc d'écriture; et
J::!;-
- on verifie que le contenu d'un fanion de blocage cleph une valeur utilisée pour indiquer le premier secteur ve f1
d'informations defenêtre.
6. Procédé de gestion suivant la revendication 4, dans lequel l'étape de correction du contenu du jeu d'informations de fenêtre fondé sur ies donnée;s stockées dans la mémoire flash comporte la sous étape suivante:: on fait une recherche dans tous les blocs appartenant à la fenêtre pour: reconstituer le jeu d'informations de fenêtre à partir du dernier jeu d'informations de fenêtre utiilsable, dans lequel le jeu d'informations de: fenêtre utilisable est le jeu d'informations de fenêtre qui contient un code de correction d'erreurs permettant la correction de la table cartographique bloc de do n née vers bloc log ique et contient u n code somme de vérification correct
dans l'indicateur de bloc d'écriture et l'indicateur de bloc de secours.
7. Procédé de gestion suivant la revendication 4, dans lequel l'étape de correction du contenu du jeu d'informations de fenêtre fondée sur les données stockées dans la mémoire flash comporte la sous-étape consistant à trouver tous les blocs appartenant à la fenêtre dans la mémoire flash et à reconstituer
FR0210071A 2001-08-07 2002-08-07 Systeme de stockage a memoire flash a base de fenetres et procedes de gestion et d'acces pour un tel systeme Expired - Fee Related FR2828567B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW090119199A TW539946B (en) 2001-08-07 2001-08-07 Window-based flash memory storage system, and the management method and the access method thereof

Publications (2)

Publication Number Publication Date
FR2828567A1 true FR2828567A1 (fr) 2003-02-14
FR2828567B1 FR2828567B1 (fr) 2005-06-24

Family

ID=21678979

Family Applications (2)

Application Number Title Priority Date Filing Date
FR0210071A Expired - Fee Related FR2828567B1 (fr) 2001-08-07 2002-08-07 Systeme de stockage a memoire flash a base de fenetres et procedes de gestion et d'acces pour un tel systeme
FR0312792A Pending FR2846460A1 (fr) 2001-08-07 2003-10-31 Procedes de lecture et d'ecriture d'une memoire flash

Family Applications After (1)

Application Number Title Priority Date Filing Date
FR0312792A Pending FR2846460A1 (fr) 2001-08-07 2003-10-31 Procedes de lecture et d'ecriture d'une memoire flash

Country Status (6)

Country Link
US (3) US6718430B2 (fr)
JP (1) JP2003058419A (fr)
DE (1) DE10238566A1 (fr)
FR (2) FR2828567B1 (fr)
GB (1) GB2381897B (fr)
TW (1) TW539946B (fr)

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8171203B2 (en) * 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
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
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
TW539946B (en) * 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
JP3979486B2 (ja) * 2001-09-12 2007-09-19 株式会社ルネサステクノロジ 不揮発性記憶装置およびデータ格納方法
GB0123415D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123410D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123417D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
GB0123421D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Power management system
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
US7353323B2 (en) 2003-03-18 2008-04-01 American Megatrends, Inc. Method, system, and computer-readable medium for updating memory devices in a computer system
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
US7607177B2 (en) * 2004-02-23 2009-10-20 Micron Technology, Inc. Secure compact flash
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) * 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
JP4460967B2 (ja) * 2004-07-23 2010-05-12 株式会社東芝 メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
US7464306B1 (en) * 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US7594063B1 (en) * 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
KR100672992B1 (ko) * 2005-01-04 2007-01-24 삼성전자주식회사 반도체 메모리 장치의 동작 방법
US7877566B2 (en) * 2005-01-25 2011-01-25 Atmel Corporation Simultaneous pipelined read with multiple level cache for improved system performance using flash technology
WO2007058617A1 (fr) * 2005-11-17 2007-05-24 Chee Keng Chang Controleur pour memoires non volatiles et procedes pour faire fonctionner ce controleur de memoire
US8055725B2 (en) * 2006-01-12 2011-11-08 International Business Machines Corporation Method, apparatus and program product for remotely restoring a non-responsive computing system
KR100754226B1 (ko) 2006-08-22 2007-09-03 삼성전자주식회사 비휘발성 데이터 저장장치의 프로그래밍 방법 및 그 장치
US7280398B1 (en) * 2006-08-31 2007-10-09 Micron Technology, Inc. System and memory for sequential multi-plane page memory operations
US7818701B1 (en) * 2006-12-22 2010-10-19 Cypress Semiconductor Corporation Memory controller with variable zone size
US7934052B2 (en) 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US7961520B2 (en) * 2009-08-18 2011-06-14 Seagate Technology Llc Encoding and decoding to reduce switching of flash memory transistors
TWI421694B (zh) * 2009-08-26 2014-01-01 Asustek Comp Inc 記憶體控制方法
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
JP5799699B2 (ja) * 2011-09-15 2015-10-28 富士ゼロックス株式会社 電力供給制御装置、管理制御装置、画像処理装置、電力供給制御プログラム
US9058289B2 (en) 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8739008B2 (en) * 2012-02-22 2014-05-27 Silicon Motion, Inc. Method for determining parity check matrix utilized in flash memory system and related flash memory system thereof
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
JP6003610B2 (ja) * 2012-12-17 2016-10-05 日本電気株式会社 情報処理装置
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US10067879B2 (en) * 2015-12-16 2018-09-04 Intel Corporation Apparatus and method to support a storage mode over a cache-line memory interface to a non-volatile memory dual in line memory module
KR102444606B1 (ko) * 2017-08-28 2022-09-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN113256051B (zh) * 2021-03-16 2023-01-20 贵州电网有限责任公司 一种启发式发电机组检修计划的编制处理方法
CN116225774B (zh) * 2023-04-27 2023-08-15 云和恩墨(北京)信息技术有限公司 数据实时校验方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5602987A (en) * 1989-04-13 1997-02-11 Sandisk Corporation Flash EEprom system
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5519847A (en) * 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
US5535399A (en) * 1993-09-30 1996-07-09 Quantum Corporation Solid state disk drive unit having on-board backup non-volatile memory
GB2283342B (en) 1993-10-26 1998-08-12 Intel Corp Programmable code store circuitry for a nonvolatile semiconductor memory device
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5696929A (en) * 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
KR100359414B1 (ko) * 1996-01-25 2003-01-24 동경 엘렉트론 디바이스 주식회사 데이타독출/기록방법및그를이용한메모리제어장치및시스템
KR100260028B1 (ko) * 1996-08-13 2000-06-15 윤종용 화일시스템의 정보 복구방법
JPH10124381A (ja) * 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
US5901086A (en) * 1996-12-26 1999-05-04 Motorola, Inc. Pipelined fast-access floating gate memory architecture and method of operation
US6122195A (en) * 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
JP3772003B2 (ja) * 1997-09-19 2006-05-10 株式会社東芝 メモリ管理システムおよびデータ管理方法
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
WO1999031592A1 (fr) * 1997-12-16 1999-06-24 Tdk Corporation Systeme de memoire flash
JP3893755B2 (ja) * 1998-07-03 2007-03-14 株式会社デンソー 電子制御装置
WO2000030116A1 (fr) 1998-11-17 2000-05-25 Lexar Media, Inc. Procede et dispositif pour circuit de commande de la memoire
AU2108701A (en) * 1999-12-17 2001-06-25 Qualcomm Incorporated Mobile communication device having flash memory system with word line buffer
US6615307B1 (en) * 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US6851026B1 (en) * 2000-07-28 2005-02-01 Micron Technology, Inc. Synchronous flash memory with concurrent write and read operation
TW539946B (en) * 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
US6948026B2 (en) * 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management
US20040049627A1 (en) * 2001-11-09 2004-03-11 Flex-P Industries Method and system for controlling compact flash memory
US6704852B2 (en) * 2001-11-16 2004-03-09 Key Technology Corporation Control device applicable to flash memory card and method for building partial lookup table

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5602987A (en) * 1989-04-13 1997-02-11 Sandisk Corporation Flash EEprom system
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith

Also Published As

Publication number Publication date
DE10238566A1 (de) 2003-03-20
TW539946B (en) 2003-07-01
US20040024957A1 (en) 2004-02-05
US7117332B2 (en) 2006-10-03
JP2003058419A (ja) 2003-02-28
GB2381897B (en) 2004-05-19
GB2381897A (en) 2003-05-14
FR2828567B1 (fr) 2005-06-24
US6718430B2 (en) 2004-04-06
GB0218354D0 (en) 2002-09-18
US7237057B2 (en) 2007-06-26
US20050169053A1 (en) 2005-08-04
FR2846460A1 (fr) 2004-04-30
US20030033471A1 (en) 2003-02-13

Similar Documents

Publication Publication Date Title
FR2828567A1 (fr) Systeme de stockage a memoire flash a base de fenetres et procedes de gestion et d'acces pour un tel systeme
EP0156724B1 (fr) Procédé d'enregistrement dans une mémoire à disques et système de mémoire à disques
EP0546048B1 (fr) Procede et dispositif de mise a jour d'informations dans une memoire et leur utilisation dans les cartes a memoire
US8341386B2 (en) Method for updating basic input/output system and method for repairing thereof
US20030200394A1 (en) Cache memory arrangement and methods for use in a cache memory system
US8077560B2 (en) Additionally recordable information recording medium, information recording method, information reproducing method, information recording apparatus and information reproducing apparatus
FR2497374A1 (fr) Machine informatique pour traitement multitache
FR3055992A1 (fr) Gestion d'index dans une memoire flash
FR2824415A1 (fr) Systeme et procede pour eliminer d'une matrice de memoire des cellules de memoire defaillantes
EP0434532B1 (fr) Procédé sécurisé d'écriture rapide d'informations pour dispositif de mémoire de masse et système informatique mettant en oeuvre ce procédé
FR2645986A1 (fr) Procede pour accelerer les acces memoire d'un systeme informatique et systeme pour la mise en oeuvre du procede
FR2707774A1 (fr) Procédé de gestion cohérente des échanges entre des niveaux d'une hiérarchie de mémoires à au moins trois niveaux.
TW200423053A (en) Write-once disc, recording apparatus thereto, and method of reducing access time thereto
WO2003038620A2 (fr) Procede de memorisation de donnees avec correction d'erreur
US20070043968A1 (en) Disk array rebuild disruption resumption handling method and system
EP1866770B1 (fr) Méthode et système pour maintenir la cohérence d'une mémoire cache utilisée par de multiples processus indépendants
FR3051574A1 (fr) Gestion du stockage dans une memoire flash
WO2024077863A1 (fr) Procédé de récupération pour système de stockage all-flash, et appareil associé
FR3001818A1 (fr) Dispositif de stockage redondant securise et procede de lecture ecriture securise sur un tel dispositif
WO2002065291A2 (fr) Dispositif de reconfiguration d'un ensemble memoire presentant des defauts
CN1985309A (zh) 记录设备和方法
EP3246819B1 (fr) Compteur en mémoire flash
FR2708115A1 (fr) Dispositif de stockage de données.
US11086736B2 (en) System and method for tier recovery
EP1256880B1 (fr) Système de traitement de données et procédé de distribution d'accès à des mémoires

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20100430