FR2846460A1 - Procedes de lecture et d'ecriture d'une memoire flash - Google Patents

Procedes de lecture et d'ecriture d'une memoire flash Download PDF

Info

Publication number
FR2846460A1
FR2846460A1 FR0312792A FR0312792A FR2846460A1 FR 2846460 A1 FR2846460 A1 FR 2846460A1 FR 0312792 A FR0312792 A FR 0312792A FR 0312792 A FR0312792 A FR 0312792A FR 2846460 A1 FR2846460 A1 FR 2846460A1
Authority
FR
France
Prior art keywords
window
phase
sector
reading
writing
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.)
Pending
Application number
FR0312792A
Other languages
English (en)
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 FR2846460A1 publication Critical patent/FR2846460A1/fr
Pending 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

Procédé de lecture d'une mémoire flash par un composant faisant des requêtes d'accès aux données, dans lequel la mémoire flash comprend une pluralité de secteurs de stockage, et dans lequel une opération de lecture d'un secteur parmi les secteurs de stockage nécessite une pluralité de phases prises en charge par un contrôleur d'accès, ce procédé de lecture comportant les phases consistant à :- effectuer une première opération de lecture pour lire un secteur courant parmi les secteurs de stockage ; et- commencer à effectuer une seconde opération de lecture d'un secteur suivant parmi les secteurs de stockage, cette seconde opération de lecture débutant avant que soit achevée la première opération de lecture, de manière à diminuer le temps nécessaire aux opérations de lecture et à accroître la performance globale du système.

Description

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émoire 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 10 depuis l'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 15 de mémoire flash et une interface CPU; dans lequel l'unité ROM est utilisée pour stocker le code de programme s'exécutant sur le microprocesseur; l'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; l'interface CPU est utilisée pour permettre au contrôleur d'accès de communiquer avec le 20 CPU; et l'interface de mémoire flash est utilisée pour autoriser l'accès aux
données stockées dans la mémoire flash.
L'espace de stockage de données 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 25 spécifiques pour enregistrer les informations relatives à chaque fenêtre (ciaprès désignées par "informations de fenêtre"). Dans le but de réduire le cot 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 5 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é 10 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 15 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 à 20 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 30 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 inclut i-ne 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.
En outre, l'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 10 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 15 d'informations de fenêtre sélectionné dans une unité SRAM. Ensuite, le jeu d'informations de fenêtre associé à une fenêtre sélectionnée 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 20 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, l'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 25 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 30 basé sur l'indicateur de blocs d'écriture et l'indicateur de blocs de secours.
De plus, l'é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 5 l'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 10 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, l'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 20 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 25 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 30 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
effectuées en parallèle.
En outre, l'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 5 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 10 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 15 parallèle.
En conclusion, l'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 20 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, l'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 25 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; - -FIG. 3 est un diagramme schématique montrant un mode de réalisation préfé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 5 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 10 procédure effectuée par l'invention lors du chargement des informations 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 données via des opérations conduites en parallèle; - FIG. 1 1 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 25 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 procédure effectuée par l'invention pour écrire des données via des opérations
conduites en parallèle.
FIG. 1 est un diagramme schématique montrant la structure de 30 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é, l'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 fenêtres 120 et une région redondante 35 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 #0 à #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 5 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 10 alloués pour chaque fenêtre pour enregistrer ces informations de fenêtre. La zone d'information de lien dynamique 103 est utilisée 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 15 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 20 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 25 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 0 à 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 0 à 7999) ou un certain nombre de blocs logiques relatifs 109 (qui sont 30 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 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 données précédent, l'opération d'écriture sera d'abord dirigée vers le bloc d'écriture; et si le bloc d'écriture est plein et si 10 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 données 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 15 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) "blocde-données-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 20 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 données et les blocs logiques dans leur zone de données utilisateur, et sont en outre utilisés pour enregistrer les 25 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 données 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 enregistrer le numéro de bloc logique relatif qui 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 5 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é 10 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éalisation 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. 20 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 25 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 données les plus récentes. Le drapeau 30 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 module de construction de fenêtre est responsable du chargement des informations de fenêtre de la 5 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 10 aux requêtes d'autres modules. Ceci peut aider à simplifier la complexité opérationnelle des autres modules. Par exemple, l'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 15 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, l'appel du module d'accès à 20 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éduire le temps de commutation entre différentes fenêtres dans 25 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 cot en SRAM. Dans un mode de réalisation préféré de l'invention, on charge trois jeux 30 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, il - L'information de fenêtre chargée depuis la mémoire flash vers la SRAM inclut l'indicateur de Bloc d'Ecriture et l'indicateur 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 à 5 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 10 fenêtres réservées 501 pour l'allocation des variables de fenêtre 503 de la fenêtre réservée #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 #0 en tant que fenêtre active, étant donné que la fenêtre #0 est actuellement une fenêtre réservée, il 15 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 allouées. Cette action fait que la fenêtre #0 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 20 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éservée #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 25 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éservée, il faut d'abord ramener la fenêtre active vers la zone de fenêtres 30 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 la 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 10 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 secours indiqué par l'indicateur de Bloc de Secours est un bloc qui a étéprécédemment effacé; (4) le bloc d'écriture indiqué par l'indicateur de Bloc d'Ecriture contient un numéro de bloc logique, un compteur de cycles, et de 20 l'information sur le dernier secteur écrit, qui sont cohérents avec les données enregistrées dans l'indicateur de Bloc d'Ecriture; (5) le bloc d'écriture indiqué par l'indicateur 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 25 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 30 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 5 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'indicateur de Bloc d'Ecriture et l'indicateur de Bloc de Secours contiennent l'information sur les emplacements 10 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 15 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 noncorrigible; et, (2) le code de vérification contenu dans l'indicateur de Bloc d'Ecriture et l'indicateur 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 25 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 30 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 données 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 5 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 10 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 15 bascule la fenêtre sélectionnée par l'utilisateur 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 20 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édure saute à la fin; tandis que si 25 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 30 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édure 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; 5 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 laquelle 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 15 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 20 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 données de la fenêtre sélectionnée par l'utilisateur 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 données dans le bloc de données; (2) changement du bloc d'écriture en bloc de données (c'est-à-dire mise à 30 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 utilisée pour amener les données de secteur d.ans 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 5 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ésirées; 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, l'un des tampons étant utilisé pour la communication avec l'unité centrale et 15 l'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 20 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é centrale. 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 25 données 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 nécessaire 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 30 données requises dans le secteur du tampon.
Si l'accomplissement de la première phase de fonctionnement nécessite 25 micro secondes, l'accomplissement de [a 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 5 190 millisecondes. Si en conséquence il y a en tout n secteurs à lire, l'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 10 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 15 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 données. 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 20 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, l'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 25 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, l'accomplissement de l'opération de lecture complète sur les n secteurs prend 30 190+100*(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 à 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; l'étape suivante 1003 consiste à calculer l'adresse du secteur suivant à accéder. Au cours de l'étape suivante 5 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, l'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 à 10 l'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 à l'é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 15 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 20 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, l'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 11 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; l'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 30 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, l'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 5 l'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 individuellement.
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 données dans le premier secteur sont transférées au tampon. Dans le schéma de la figure 12, 15 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, l'unité centrale continue à transférer les données du secteur suivant au tampon. Lors de l'étape suivante 20 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 la mémoire flash.
L'étape suivante 1204 consiste à calculer l'adresse du secteur suivant à 25 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 30 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'étape 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éfectueux vers 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 10 l'é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 15 l'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 (15)

REVENDICATIONS
1. Procédé de lecture d'une mémoire flash par un composant faisant des requêtes d'accès aux données, dans lequel la mémoire flash comprend une 5 pluralité de secteurs de stockage, et dans lequel une opération de lecture d'un secteur parmi les secteurs de stockage nécessite une pluralité de phases prises en charge par un contrôleur d'accès, ce procédé de lecture comportant les phases consistant à: - effectuer une première opération de lecture pour lire un secteur courant parmi les secteurs de stockage; et commencer à effectuer une seconde opération de lecture d'un
secteur suivant parmi les secteurs de stockage, cette seconde opération de lecture débutant avant que soit achevée la première opération de lecture, de manière à diminuer le temps nécessaire aux opérations de lecture et à accroître 15 la performance globale du système.
2. Procédé de lecture selon la revendication 1, comprenant en outre une phase consistant à commencer à effectuer une troisième opération de lecture d'un autre secteur suivant avant que la première et la deuxième opérations de 20 lecture ne soient achevées.
3. Procédé de lecture selon la revendication 1, dans lequel les phases comprennent une première phase consistant à trouver un secteur parmi les secteurs de stockage à lire, une deuxième phase consistant à transmettre une 25 information à lire depuis la mémoire flash vers le contrôleur d'accès, et une troisième phase consistant à transmettre une information à lire du contrôleur
d'accès vers le composant faisant des requêtes d'accès.
4. Procédé de lecture selon la revendication 1, comprenant en outre la 30 répétition des phases précédentes tant qu'il reste un secteur à lire.
5. Procédé de lecture selon la revendication 3, dans lequel la seconde phase de la première opération de lecture chevauche la première phase de la
seconde opération de lecture.
6. Procédé de lecture selon la revendication 3, dans lequel la troisième phase de la première opération de lecture chevauche la deuxième phase de la
seconde opération de lecture.
7. Procédé de lecture selon la revendication 3, comprenant en outre une 10 phase consistant à commencer à effectuer une première phase d'une troisième opération de lecture pour trouver un secteur supplémentaire à lire parmi les secteurs de stockage avant que la première et la deuxième opérations de
lecture ne soient achevées.
8. Procédé de lecture selon la revendication 7, dans lequel la troisième phase de la première opération de lecture, la deuxième phase de la deuxième opération de lecture, et la première phase de la troisième opération de lecture,
se chevauchent.
9. Procédé d'écriture sur une mémoire flash à partir d'un composant faisant des requêtes d'accès aux données, dans lequel la mémoire flash comprend une pluralité de secteurs de stockage, et dans lequel une opération d'écriture d'un secteur parmi les secteurs de stockage nécessite une pluralité de phases prises en charge par un contrôleur d'accès, ce procédé d'écriture comportant les 25 phases consistant à: - effectuer une première opération d'écriture pour écrire un secteur courant parmi les secteurs de stockage; et - commencer à effectuer une seconde opération d'écriture d'un secteur suivant parmi les secteurs de stockage, cette seconde opération 30 d'écriture débutant avant que soit achevée la première opération d'écriture, de manière à diminuer le temps nécessaire aux opérations d'écriture et à accroître
la performance globale du système.
10. Procédé d'écriture selon la revendication 9, comprenant en outre une phase consistant à commencer à effectuer une troisième opération d'écriture d'un autre secteur suivant avant que la deuxième opération d'écriture ne soit achevée.
11. Procédé d'écriture selon la revendication 9, dans lequel les phases comprennent une première phase consistant à transmettre une information à écrire vers le contrôleur d'accès vers le composant faisant des requêtes d'accès, une deuxième phase consistant à trouver un secteur parmi les 10 secteurs de stockage à écrire, et une troisième phase consistant à transmettre
une information à écrire depuis le contrôleur d'accès vers la mémoire flash.
12. Procédé d'écriture selon la revendication 9, comprenant en outre la répétition des phases précédentes tant qu'il reste un secteur à écrire. 15
13. Procédé d'écriture selon la revendication 11, dans lequel la troisième phase de la première opération d'écriture chevauche la première phase de la
seconde opération d'écriture.
14. Procédé d'écriture selon la revendication 11, dans lequel la première
phase et la deuxième phase d'une même opération d'écriture se chevauchent.
15. Procédé d'écriture selon la revendication 11, dans lequel la troisième phase de la première opération d'écriture, la première phase de la deuxième 25 opération d'écriture, et la deuxième phase de la deuxième opération d'écriture,
se chevauchent.
FR0312792A 2001-08-07 2003-10-31 Procedes de lecture et d'ecriture d'une memoire flash Pending FR2846460A1 (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 (1)

Publication Number Publication Date
FR2846460A1 true FR2846460A1 (fr) 2004-04-30

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 Before (1)

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

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
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
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
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 株式会社ルネサステクノロジ 不揮発性記憶装置およびデータ格納方法
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
GB0123417D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
GB0123410D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
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 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
WO2005081891A2 (fr) * 2004-02-23 2005-09-09 Lexar Media, Inc. Memoire flash compacte securisee
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
US7978516B2 (en) * 2007-12-27 2011-07-12 Pliant Technology, Inc. Flash memory controller having reduced pinout
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 富士ゼロックス株式会社 電力供給制御装置、管理制御装置、画像処理装置、電力供給制御プログラム
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
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
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
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
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
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
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
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
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
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
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
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
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
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
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a 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
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
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
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
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
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
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
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
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
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
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
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2283342A (en) * 1993-10-26 1995-05-03 Intel Corp Programmable code store circuitry for a non-volatile semiconductor memory device
US5519847A (en) * 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
US5901086A (en) * 1996-12-26 1999-05-04 Motorola, Inc. Pipelined fast-access floating gate memory architecture and method of operation
WO2000030116A1 (fr) * 1998-11-17 2000-05-25 Lexar Media, Inc. Procede et dispositif pour circuit de commande de la memoire
US6151247A (en) * 1997-03-31 2000-11-21 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
US5535399A (en) * 1993-09-30 1996-07-09 Quantum Corporation Solid state disk drive unit having on-board backup non-volatile memory
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 半導体記憶装置
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 株式会社デンソー 電子制御装置
WO2001045112A1 (fr) * 1999-12-17 2001-06-21 Qualcomm Incorporated Dispositif de communication mobile comportant un systeme de memoire flash pourvu d'un tampon canal mot
US6851026B1 (en) * 2000-07-28 2005-02-01 Micron Technology, Inc. Synchronous flash memory with concurrent write and read operation
US6615307B1 (en) * 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5519847A (en) * 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
GB2283342A (en) * 1993-10-26 1995-05-03 Intel Corp Programmable code store circuitry for a non-volatile semiconductor memory device
US5901086A (en) * 1996-12-26 1999-05-04 Motorola, Inc. Pipelined fast-access floating gate memory architecture and method of operation
US6151247A (en) * 1997-03-31 2000-11-21 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
WO2000030116A1 (fr) * 1998-11-17 2000-05-25 Lexar Media, Inc. Procede et dispositif pour circuit de commande de la memoire

Also Published As

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

Similar Documents

Publication Publication Date Title
FR2846460A1 (fr) Procedes de lecture et d'ecriture d'une memoire flash
EP0156724B1 (fr) Procédé d'enregistrement dans une mémoire à disques et système de mémoire à disques
US10452271B2 (en) Reconstructing in-memory indices in a distributed data storage system
TWI590049B (zh) 記憶體裝置與其操作方法
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
CZ296443B6 (cs) Zpusob zpracování informací a zarízení k jeho provádení
FR2671223A1 (fr) Memoire semiconductrice remanente pour ordinateur personnel.
FR2472233A1 (fr) Dispositif de commande de memoire pour systeme de traitement des donnees
FR3023030A1 (fr)
FR2683924A1 (fr) Memoire integree, son procede de gestion et systeme informatique en resultant.
US8037033B2 (en) Log manager for aggregating data
FR3055992A1 (fr) Gestion d'index dans une memoire flash
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
FR2659460A1 (fr) Sous-systeme peripherique de memoire de masse.
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
FR2901035A1 (fr) Procede et dispositif de gestion d'une table de correspondance d'acces a une memoire
WO2024077863A1 (fr) Procédé de récupération pour système de stockage all-flash, et appareil associé
US9286936B1 (en) Zone based band mapping
EP0304348B1 (fr) Moyens de verrouillage d'accès pour unité de gestion d'accès en mémoire, et gestion de conflits d'accès utilisant de tels moyens de verrouillage
CN1985309A (zh) 记录设备和方法
FR3084496A1 (fr) Procede et dispositif de generation d'instructions destinees a un dispositif pour realiser une mise a jour sur place d'un fichier de donnees
JPH06214720A (ja) ディスク記憶装置のデータ更新方法
EP1467378B1 (fr) Procédé de mise à jour de données pour mémoire non volatile