DE19615948A1 - Flash-Festkörper-Plattenspeicher-Karte - Google Patents

Flash-Festkörper-Plattenspeicher-Karte

Info

Publication number
DE19615948A1
DE19615948A1 DE19615948A DE19615948A DE19615948A1 DE 19615948 A1 DE19615948 A1 DE 19615948A1 DE 19615948 A DE19615948 A DE 19615948A DE 19615948 A DE19615948 A DE 19615948A DE 19615948 A1 DE19615948 A1 DE 19615948A1
Authority
DE
Germany
Prior art keywords
data
sector number
block
blocks
logical
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
DE19615948A
Other languages
English (en)
Other versions
DE19615948C2 (de
Inventor
Takayuki Shinohara
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE19615948A1 publication Critical patent/DE19615948A1/de
Application granted granted Critical
Publication of DE19615948C2 publication Critical patent/DE19615948C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

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

Description

Die vorliegende Erfindung betrifft eine Flash-Festkörper- Plattenspeicher-Karte bzw. eine Flash-Halbleiter-Platten­ speicher-Karte mit einem Flash-Speicher, die ein Festplatten­ laufwerk bzw. einen Festplattenspeicher emuliert.
Ein Flash-Speicher ist bei einer Halbleiter-Plattenspeicher-Karte als löschbares, nicht flüchtiges Speichermedium verwen­ det. Es ist bekannt, daß bei einem Flash-Speicher folgende Probleme auftreten:
  • (a) Ein Löschvorgang wird vor dem Schreiben von Daten benötigt.
  • (b) Eine zu löschende Dateneinheit ist ein Block, der einige Kilobyte bis einige zehn Kilobyte groß oder ein Chip bzw. der gesamte Speicherchip sein kann.
  • (c) Die zum Schreiben oder Löschen benötigte Zeit ist länger als die zum Lesen erforderliche.
  • (d) Die Anzahl von Schreibvorgängen ist auf 10⁴ bis 10⁶ pro Block begrenzt.
Wenn eine (nachfolgend auch als Flash-Festkörper-Plattenkarte bezeichnete) einen Flash-Speicher verwendende Flash-Festkör­ per-Plattenspeicher-Karte ein Festplattenlaufwerk emuliert, wird im allgemeinen die folgende Vorgehensweise bzw. das fol­ gende Verfahren für eine Datenaktualisierungsanweisung von einem Host-Computer in der Einheit eines Sektors (oder 512 Kilobyte) bzw. eine sektorweise Datenaktualisierung verwen­ det, um die Verarbeitungszeit zu verkürzen: Daten in einem durch den Host-Rechner bestimmten Sektor werden nicht ge­ löscht, während einen ungültigen Block bezeichnende Informa­ tionen in eine Sektorkennung bzw. Sektor-ID (Identifikation) für den Sektor geschrieben werden, und die Aktualisierungsda­ ten werden in einen freien Bereich bzw. Speicherbereich ge­ schrieben, in dem Daten bereits gelöscht wurden. Somit ent­ spricht eine durch den Host-Rechner bestimmte sektorweise Adresse bzw. Sektoradresse (logische Sektorenzahl bzw. logi­ sche Sektorennummer) bei jeder Datenaktualisierung einer un­ terschiedlichen Adresse (physikalische Sektorenzahl) des Flash-Speichers, in die bzw. in den die Daten tatsächlich ge­ schrieben werden. Dann muß eine Adreßumwandlungstabelle zur Speicherung der Entsprechung logischer Sektorenzahlen zu phy­ sikalischen Sektorenzahlen vorgesehen werden.
Die Größe der Adreßumwandlungstabelle wird im Verhältnis zur Speicherkapazität eines Flash-Speichers größer. Beispielswei­ se wird ein Speicher wahlfreien Zugriffs (RAM) einer Kapazi­ tät einiger Megabit zur Speicherung einer Adreßumwandlungs­ tabelle für eine Karte einer Speicherkapazität einiger zehn Megabyte benötigt. Dies vergrößert die Kosten, und es ver­ größert ebenfalls aufgrund des Anstiegs der Teileanzahl eine Fläche zur Bestückung mit den Teilen bzw. elektronischen Kom­ ponenten.
In jüngerer Vergangenheit wurde ein das sektorenweise Löschen und Schreiben ermöglichender Flash-Speicher ausschließlich für eine ein Festplattenlaufwerk emulierende Flash-Speicher­ karte entwickelt und wird für eine Flash-Festkörper-Platten­ speicher-Karte verwendet. In diesem Fall werden für jede Sek­ toraktualisierungsanweisung von dem Host-Rechner Daten in ei­ nem durch den Host-Rechner bestimmten Sektor gelöscht und Ak­ tualisierungsdaten in diesen Sektor geschrieben, so daß die Adreßumwandlungstabelle nicht benötigt wird.
Bei einem derzeit erhältlichen bekannten Platten- bzw. Fest­ plattenspeicherbetriebssystem werden Dateinamen, Dateigrößen, Verzeichniseinträge zur Speicherung von Anfangspositionsdaten und eine Dateizuordnungstabelle (die auch als sogenannte "File Allocation Table" FAT bezeichnet ist) zur Speicherung von Positionen von Dateien und einer Struktur derselben in einem festgelegten Bereich auf einer Platte gespeichert. Die Verzeichniseinträge und die Dateizuordnungstabelle FAT werden bei jeder Dateidatenaktualisierung aktualisiert. Ein Ver­ zeichniseintrag für jede Datei belegt 32 Byte. Dann können Verzeichniseinträge von 16 Dateien für jeden Sektor (512 Byte) gespeichert werden, bzw. in jedem Sektor können 16 Ver­ zeichniseinträge für Dateien erfolgen. Wenn beispielsweise vier Dateidaten bzw. Datendateien mit Verzeichniseinträgen in dem selben Sektor aktualisiert werden, wird jeder Sektor zur Speicherung von Dateidaten lediglich einmal aktualisiert, wo­ hingegen ein die Verzeichniseinträge speichernder Sektor viermal aktualisiert wird. Im Hinblick auf Dateizuordnungs­ tabellen (FATs) wird auf ähnliche Art und Weise eine Aktuali­ sierungsanzahl des die Dateizuordnungstabellen (FATs) spei­ chernden Sektors größer als die der Daten speichernden Sekto­ ren. Dann ergibt sich ein Problem, daß die Lebensdauer des bestimmten Sektors kürzer wird, und die Lebensdauer des Sek­ tors die Lebensdauer der Flash-Festkörper-Plattenspeicher-Karte selbst bestimmt.
Es ist daher Aufgabe der Erfindung, eine Flash-Festkörper-Plat­ tenspeicher-Karte zu schaffen, die einen Flash-Speicher für eine längere Zeit verwenden kann.
Eine erste erfindungsgemäße Flash-Festkörper-Plattenspeicher-Karte hat einen Flash-Speicher, einen eine Adreßumwandlungs­ tabelle speichernden Speicher wahlfreien Zugriffs, der eine physikalische Sektorenzahl für einen von N Blöcken in Über­ einstimmung mit einer Eingabe einer logischen Sektorennummer zwischen 1 und N ausgibt. Der Flash-Speicher hat M Blöcke mit physikalischen Sektorenzahlen zwischen 1 und M, wobei die M Blöcke N Blöcke zur Sektorenverwaltung (N < M) enthalten. Wenn Daten für eine logische Sektorenzahl L in einen Block geschrieben werden (1 L N) werden zunächst andere Daten in einem Block gelöscht, der eine physikalische Sektorenzahl hat, die durch die in dem Speicher wahlfreien Zugriffs ge­ speicherte Adreßumwandlungstabelle entsprechend der logischen Sektorenzahl L bestimmt ist, dann werden die zu schreibenden Daten in einen freien Block unter den N Blöcken geschrieben, und schließlich wird eine physikalische Sektorenzahl in Über­ einstimmung mit der logischen Sektorenzahl L in der Adreßum­ wandlungstabelle auf eine physikalische Sektorenzahl des Blockes geändert, in den die Daten geschrieben wurden. "Freier Block" stellt einen unbeschriebenen bzw. ungenutzten Block, in den bisher keine Daten geschrieben wurden oder einen Block, in dem Daten bereits gelöscht wurden dar. Wenn andererseits Daten für eine logische Sektorenzahl L geschrie­ ben werden, die größer als N ist, werden Daten in einen Block mit einer physikalischen Sektorenzahl geschrieben, die gleich der logischen Sektorenzahl L ist, ohne die Adreßumwandlungs­ tabelle zu verwenden. Wenn die logische Sektorenzahl L klei­ ner oder gleich N ist, werden Daten von einem Block gelesen, dessen physikalische Sektorenzahl entsprechend der logischen Sektorenzahl L in der Adreßumwandlungstabelle festgelegt ist, andernfalls werden Daten von einem Block für eine physika­ lische Sektorenzahl L gelesen.
Eine zweite erfindungsgemäße Flash-Festkörper-Plattenspei­ cher-Karte hat einen Flash-Speicher mit (M+r) Blöcken mit physikalischen Sektorenzahlen zwischen 1 und (M+r), wobei die Blöcke N Blöcke zur Sektorenverwaltung und r redundante Blöcke umfassen, und einen Speicher wahlfreien Zugriffs, der eine Adreßumwandlungstabelle speichert, die eine physikali­ sche Sektorenzahl für einen der N Blöcke und der r redundan­ ten Blöcke entsprechend einer Eingabe einer logischen Sekto­ renzahl zwischen 1 und N ausgibt, wobei N kleiner als M ist. Wenn Daten für eine logische Sektorenzahl L geschrieben wer­ den (1 L N), werden zunächst andere Daten in einem Block gelöscht, der eine physikalische Sektorenzahl hat, die gemäß der logischen Sektorenzahl L durch die Adreßumwandlungsta­ belle bestimmt ist, dann werden die Daten in einen freien Block unter den N Blöcken und den r redundanten Blöcken ge­ schrieben, und schließlich wird eine physikalische Sektoren­ zahl entsprechend der logischen Sektorenzahl L in der Adreß­ umwandlungstabelle auf eine physikalische Sektorenzahl des Blockes geändert, in den die Daten geschrieben wurden. Wenn Daten für eine logische Sektorenzahl größer als N geschrieben werden, werden Daten in einen Block mit einer physikalischen Sektorenzahl gleich der logischen Sektorenzahl L geschrieben. Daten werden aus einem Block für eine physikalische Sektoren­ zahl entsprechend der logischen Sektorenzahl L in der Adreß­ umwandlungstabelle gelesen, wenn die logische Sektorenzahl L gleich oder kleiner als N ist, andernfalls werden Daten von einem Block für eine physikalische Sektorenzahl L gelesen.
Vorzugsweise ist eine Ersatztabelle bzw. Substitutionstabelle in dem Speicher wahlfreien Zugriffs vorgesehen. Wenn ein de­ fekter Block beim Schreiben von Daten in einen Block entspre­ chend einer logischen Sektorenzahl gefunden wird, werden den defekten Block bzw. Defektblock betreffende Informationen in einen Sektorenverwaltungsbereich in dem relevanten Block ge­ schrieben, und Ersatzblöcke betreffende Daten werden in die Ersatztabelle geschrieben.
Ein Vorteil der vorliegenden Erfindung besteht darin, daß die Adreßumwandlungstabelle verkleinert werden kann.
Ein weiterer Vorteil der Erfindung besteht darin, daß die Le­ bensdauer einer Flash-Festkörper-Plattenspeicher-Karte ver­ längert wird.
Ein dritter Vorteil der vorliegenden Erfindung ist der, daß selbst eine Flash-Festkörper-Plattenspeicher-Karte mit schon anfänglich defekten Blöcken verwendet werden kann.
Die Erfindung ist nachstehend anhand von Ausführungsbei­ spielen mit Bezug auf die beigefügte Zeichnung beschrieben. Dabei zeigen:
Fig. 1 ein Blockschaltbild einer Flash-Festkörper-Plat­ tenspeicher-Karte;
Fig. 2 eine schematische Darstellung eines Speicherraums bzw. Speicherbereichs in einem Flash-Speicher und einer Adreßum­ wandlungstabelle in einem Speicher wahlfreien Zugriffs;
Fig. 3 ein Flußdiagramm hinsichtlich einer Daten-Schreibver­ arbeitung;
Fig. 4 ein Flußdiagramm hinsichtlich einer Daten-Lese­ verarbeitung;
Fig. 5 eine schematische Darstellung eines Zusammenhangs zwi­ schen einem Speicherbereich in einem Flash-Speicher in einer Flash-Festkörper-Plattenspeicher-Karte eines weiteren Aus­ führungsbeispiels, einer physikalisch/logischen Adreßum­ wandlungstabelle, die in einem Schreib-Lesespeicher bzw. Speicher wahlfreien Zugriffs RAM gespeichert ist, sowie einer Ersatztabelle bezüglich defekter Blöcke bzw. Defektblock-Sub­ stitutionstabelle;
Fig. 6 ein Flußdiagramm einer Daten-Schreibverarbeitung bei dem Ausführungsbeispiel; und
Fig. 7 ein Flußdiagramm einer Daten-Leseverarbeitung bei dem Ausführungsbeispiel.
Nunmehr mit Bezug auf die Zeichnung, in der gleiche Bezugs­ zeichen bzw. Bezugszahlen ähnliche oder entsprechende Teile in allen Darstellungen bezeichnen, zeigt Fig. 1 blockschalt­ bildhaft ein erfindungsgemäßes Ausführungsbeispiel einer Flash-Festkörper-Plattenspeicher-Karte 1. Die Flash-Fest­ körper-Plattenspeicher-Karte bzw. Flash-Halbleiter-Platten­ speicher-Karte 1 hat eine Flash-Plattenspeicher-Steuerein­ richtung bzw. einen Flash-Plattencontroller 3 und einen Flash-Speicher 4. Der Flash-Plattencontroller 3 hat eine Schnittstellenschaltung 5 zu einem Host-Rechner hin, eine Bussteuereinrichtung bzw. einen Buscontroller 10, einen Mikroprozessor (MPU) 6, einen Sektor-Zwischenspeicher 7, einen Speicher wahlfreien Zugriffs (RAM) 9 zur Speicherung einer (nicht dargestellten) Adreßumwandlungstabelle 91 zur Umwandlung von logischen in physikalische Adressen bzw. Sek­ torenzahlen bzw. eine logisch/physikalische Adreßumwandlungs­ tabelle, eine Fehlerüberprüfungscode (ECC) -Schaltung 11, eine Flash-Speicher-Steuereinrichtung bzw. einen Flash-Spei­ chercontroller 8, wobei der Controller bzw. die Steuerein­ richtung 3 als integrierte Schaltung ausgebildet sein kann.
Ein Daten-Schreibbefehl oder ein Daten-Lesebefehl, der von einem Host-Rechner 2 her empfangen wird, wird durch die Host-Schnittstellenschaltung 5 und die Bus-Steuereinrichtung 10 zu dem Mikroprozessor MPU 6 gesendet. Wie später erläutert wer­ den wird, erhält der Mikroprozessor MPU 6 ein Datum bzw. einen Dateneintrag einer physikalischen Sektorenzahl in dem Flash-Speicher 4 durch Bezugnahme auf die logisch/physika­ lische Adreßumwandlungstabelle 91, die in dem Speicher wahl­ freien Zugriffs RAM 9 gespeichert ist. Die Flash-Speicher­ steuereinrichtung 8 liest Daten von einem Sektor in dem Flash-Speicher 4, auf den mit der physikalischen Sektorenzahl zugegriffen wird, und schreibt diese in den Sektor-Zwischen­ speicher 7. Die ECC-Schaltung 11 überprüft die gelesenen Daten auf Fehler hin.
Fig. 2 veranschaulicht das Löschen von Blöcken in einem Spei­ cherbereich des Flash-Speichers 4, und zeigt die Adreßumwand­ lungstabelle 91 in dem Speicher wahlfreien Zugriffs RAM 9. Der Flash-Speicher 4 hat M Blöcke und r redundante Blöcke, und das Löschen erfolgt in Einheiten von 512 + 16 Byte wie bei einem Flash-Speicher der UND-Bauart. Für jeden Block sind Daten aus 512 Byte (was gleich einer Größe eines Sektors als Datenzugriffseinheit Festplattenlaufwerks bzw. eines Fest­ plattenspeichers ist) in einem Sektordatenbereich 100 von 512 Byte gespeichert, während Daten wie beispielsweise eine lo­ gische Sektorenzahl (nachstehend auch als LSN bezeichnet) für die Daten (Sektordaten), ein ECC-Datum für die Sektordaten, und ein Zustandsmerker bzw. Flag bezüglich der Gültigkeit des Sektors in einem Sektorverwaltungsbereich 101 aus 16 Byte ge­ speichert sind.
Der Speicherraum bzw. Speicherbereich des Flash-Speichers 4 ist in drei Bereiche 103, 104 und 105 unterteilt. Der erste Bereich 103 umfaßt Blöcke, die häufig durch den Host-Rechner 2 aktualisiert werden, und besteht aus Blöcken mit den (nach­ stehend als PSN bezeichneten) physikalischen Sektorenzahlen bzw. Adressen 1 bis N. Eine physikalische Sektorenzahl, auf die durch den Host-Rechner 2 zugegriffen wird, wird unter Verwendung der logisch/physikalischen Adreßumwandlungstabelle 91 bestimmt, welche in dem Speicher wahlfreien Zugriffs RAM 9 gespeichert ist. In dem ersten Bereich 103 zu speichernde Da­ ten werden später erläutert. Der zweite Bereich 104 speichert Dateidaten, und besteht aus Blöcken mit den physikalischen Sektorenzahlen (N+1) bis M. Eine physikalische Sektoren­ zahl, auf die durch den Host-Rechner 2 zugegriffen wird, ist die gleiche wie die logische Sektorenzahl. Daher wird die Adreßumwandlungstabelle zum Zugriff auf einen Block in dem zweiten Bereich 104 nicht verwendet. Der dritte Bereich 105 hat r redundante Blöcke, die als sogenannte Erweiterungsbe­ reiche für den ersten Bereich 103 verwendet werden, und er besteht aus Blöcken mit den physikalischen Sektorenzahl (M+1) bis (M+r). Bei dem in Fig. 2 dargestellten Beispiel sind logische Sektorenzahlen 1 bis N für Sektorverwaltungsdaten vorgesehen, und der erste Bereich 103 ist physikalischen Sektorenzahlen 1 bis N zugewiesen. Darüber hinaus sendet der Host-Rechner 2 eine logische Sektorenzahl bis zu M bzw. eine maximale logische Sektorenzahl von M. Dann ist der dritte Be­ reich 105 physikalischen Sektorenzahlen oberhalb M zuge­ wiesen. Die Positionen der ersten bis dritten Bereiche hängen von den durch den Host-Rechner gesendeten logischen Sektoren­ zahlen ab. Die Werte von N und r sind geeignet bestimmt, um die Leistungsfähigkeit der Flash-Festkörper-Plattenspeicher-Karte 1 zu verbessern.
In der in Fig. 2 gezeigten logisch/physikalischen Adreßum­ wandlungstabelle 91 ist eine von dem Host-Rechner 2 her emp­ fangene logische Sektorenzahl (LSN) links in der Tabelle 91 gezeigt, während eine entsprechend der logischen Sektorenzahl ausgegebene physikalische Sektorenzahl (PSN) in der Tabelle 91 rechts dargestellt ist. Werte entsprechender logischer Sektorenzahlen sind in dem Sektorverwaltungsdatenbereich 101 in Klammern dargestellt. Die logisch/physikalische Adreßum­ wandlungstabelle 91 in dem Speicher wahlfreien Zugriffs RAM 9 wird entsprechend der logischen Sektorenzahl erzeugt, die in den Sektorverwaltungsdatenbereich 101 in dem ersten und drit­ ten Bereich 103 und 105 geschrieben wird, wenn die elektri­ sche Spannungsversorgung der Flash-Festkörper-Plattenspei­ cher-Karte 1 eingeschaltet wird.
Beispiele für Daten, die in einen Block in dem ersten oder dritten Bereich 103, 105 geschrieben werden, werden erklärt. Bei einem Plattenspeicher- bzw. Festplatten-Betriebssystem, das Dateien unter Verwendung von Dateinamen, Dateigrößen, Verzeichniseinträgen zur Speicherung von Anfangspositions­ daten, und einer Dateizuordnungstabelle (FAT) zur Speicherung von Positionen von Dateien und einer Struktur derselben ver­ waltet, sind diese Daten in dem ersten oder dritten Bereich 103 bzw. 105 gespeichert. Die Verzeichniseinträge und die Dateizuordnungstabellen (FATs) werden für jede Aktualisierung von Dateidaten aktualisiert. Im allgemeinen ist eine Größe für Daten von Verzeichniseinträgen 32 Byte. Daher kann ein Sektor (512 Byte) Daten 102 von Verzeichniseinträgen für 16 Dateien speichern. Der Flash-Speicher 4 aktualisiert Daten blockweise (512+16 Byte).
Wie bereits zuvor erläutert, werden Daten von Verzeichnisein­ trägen für den Block n-Mal aktualisiert, wenn Daten von n Da­ teien (2 n 16) mit Verzeichniseinträgen in dem gleichen Sektor aktualisiert werden. Das heißt, ein Block, der Daten von Verzeichniseinträgen für eine Vielzahl von Dateien spei­ chert, wird häufiger aktualisiert als ein Block, der Datei­ daten speichert.
Wenn Daten in einem Block in dem ersten Bereich 103 oder in dem dritten Bereich 105 aktualisiert werden, löscht der Mi­ kroprozessor MPU 6 dann Daten in einem Block, der die Daten vor der Aktualisierung speicherte, und schreibt Aktualisie­ rungsdaten in einen freien Block. Der Ausdruck "freier Block" bezeichnet dabei einen ungenutzten bzw. leeren Block bzw. un­ beschriebenen Block, in den Daten bisher noch nicht geschrie­ ben wurden, oder einen Block, aus dem Daten bereits gelöscht wurden. Dann wird die logisch/physikalische Adreßumwandlungs­ tabelle 91 aktualisiert. Somit werden Blöcke, in die Daten geschrieben werden, verteilt bzw. gestreut, damit eine Daten­ aktualisierung sich nicht auf bestimmte Blöcke in dem ersten und dritten Bereich 103 bzw. 105 konzentriert. Daher wird die Anzahl von Aktualisierungen in bestimmten Blöcken in dem er­ sten Bereich 103 verringert, und die Aktualisierung wird gleichförmig über die Blöcke verteilt durchgeführt, so daß eine Beeinträchtigung bestimmter Blöcke in dem ersten Bereich 103 verringert werden kann und eine Flash-Festkörper-Platten­ speicher-Karte eine verlängerte Lebensdauer hat. Wenn bei­ spielsweise eine Anzahl redundanter Blöcke in dem dritten Be­ reich 105 die gleiche ist wie die der Blöcke in dem ersten Bereich 103, wird die Anzahl von Aktualisierungen jedes Bloc­ kes in dem ersten Bereich 103 halbiert, und die Lebensdauer verdoppelt sich.
Fig. 3 zeigt ein Flußdiagramm einer durch den Mikroprozessor MPU 6 vorgenommenen Daten-Schreibverarbeitung. Zuerst wird ein durch den Host-Rechner 2 bestimmter Wert L einer logi­ schen Sektorenzahl (LSN) erhalten (Schritt S1). Wenn L größer als N ist (JA bei Schritt S2), werden Daten in einen Block geschrieben, dessen physikalische Sektorenzahl (PSN) einen Wert L hat, da ein Zugriff auf den zweiten Bereich 104 er­ folgt (Schritt S3). Wenn andererseits L nicht größer als N ist (NEIN bei Schritt S2), werden Daten in einem Block ge­ löscht, dessen physikalische Sektorenzahl einen Wert hat, der durch die logisch/physikalische Adreßumwandlungstabelle 91 in dem Speicher wahlfreien Zugriffs RAN 9 bestimmt wird (Schritt S4). Dann werden die Daten in einen freien Block unter den Blöcken in den ersten oder dritten Bereich 103 bzw. 105 ge­ schrieben, die physikalische Sektorenzahlen 1 bis N oder (M+1) bis (M+r) haben (Schritt S5). Dann wird der Inhalt in der logisch/physikalischen Adreßumwandlungstabelle 91 in dem Speicher wahlfreien Zugriffs RAN 9 aktualisiert, bzw. eine physikalische Sektorenzahl entsprechend der logischen Sekto­ renzahl L auf eine Zahl bzw. mit der Adresse des Blockes ak­ tualisiert, in den Daten bei Schritt S5 geschrieben wurden (Schritt S6).
Fig. 4 zeigt ein Flußdiagramm einer durch den Mikroprozessor MPU 6 durchgeführten Daten-Leseverarbeitung. Zuerst wird ein Wert L einer logischen Sektorenzahl (LSN), die durch den Host-Rechner 2 bestimmt ist, erhalten (Schritt S11). Wenn L größer als N ist (JA bei Schritt S12), wird ein Wert einer physikalischen Sektorenzahl (PSN) als L eingestellt, da ein Zugriff auf den zweiten Bereich 104 erfolgt (Schritt S13). Wenn andererseits L nicht größer als N ist (NEIN bei Schritt S12), wird ein Wert einer physikalischen Sektorenzahl anhand der logisch/physikalischen Adreßumwandlungstabelle 91 in dem Speicher wahlfreien Zugriffs RAM 9 bestimmt (S14). Dann wer­ den Daten von einem Block gelesen, der die physikalische Sek­ torenanzahl hat, die bei Schritt S13 oder S14 eingestellt wurde (Schritt S15).
Ein Merkmal der vorstehend erläuterten Flash-Festkörper-Plat­ tenspeicher-Karte besteht darin, daß die Adreßumwandlungsta­ belle 91 lediglich für die Bereiche 103 und 105 mit jeweils häufiger zu aktualisierenden Blöcken als die Dateidaten in dem zweiten Bereich 104 vorgesehen ist (oder die Bereiche 103 und 105 mit physikalischen Sektorenzahlen von 1 bis N und (M+1) bis (M+r)). Die Adreßumwandlungstabelle 91 wird nicht für den Bereich 104 verwendet, der Blöcke zur Speicherung von Dateidaten enthält (oder den Bereich mit physikalischen Sek­ torenzahlen von (N+1) bis M), und eine eingegebene logische Sektorenzahl (LSN) wird als physikalische Sektorenzahl (PSN) übernommen. Somit besteht ein Vorteil dieses Ausführungsbei­ spiels darin, daß die Größe einer Adreßumwandlungstabelle, die zum Zugriff auf einen Flash-Speicher benötigt wird, ver­ ringert werden kann. Dieser Vorteil tritt selbst dann zutage, wenn der Bereich 105 für redundante Blöcke nicht vorgesehen ist. Wenn Daten in einen Block in dem bestimmten Bereich ge­ schrieben werden, werden Daten in dem Block, in den die Daten geschrieben werden, gelöscht, während aktualisierte Daten in einen Block geschrieben werden, in dem die Daten bereits ge­ löscht wurden.
Ein weiteres Merkmal dieses Ausführungsbeispiels besteht darin, daß r redundante Blöcke in dem Flash-Speicher 4 vorge­ sehen sind, um eine Konzentration von Datenaktualisierungen in Blöcken des ersten Bereichs 103 zu verhindern. Somit ist die Konzentration bzw. Häufung von Datenaktualisierungen in besonderen Blöcken verhindert und eine Beeinträchtigung von Blöcken in dem ersten Bereich 103 kann vermindert werden. Dann hat eine Flash-Festkörper-Plattenspeicher-Karte als Pro­ dukt selbst eine verlängerte Lebensdauer.
Nachfolgend ist ein weiteres Ausführungsbeispiel einer Flash- Festkörper-Plattenspeicher-Karte erläutert. Dabei sind unter­ schiedliche Arten eines Flash-Speichers 4′ und eines Spei­ chers wahlfreien Zugriffs RAM 9′ anstatt des Flash-Speichers 4 und des Speichers wahlfreien Zugriffs RAM 9 in Fig. 1 ver­ wendet. Fig. 5 zeigt eine Beziehung eines Speicherbereichs bzw. Speicherraums in einem Flash-Speicher 4′ bei der Flash- Festkörper-Plattenspeicher-Karte 1, eine physikalisch/logi­ sche Adreßumwandlungstabelle 91 und eine in einem Speicher wahlfreien Zugriffs RAM 9′ gespeicherte Defektblockersatz­ tabelle bzw. Defektblock-Substitutionstabelle 92. Das heißt, der Speicher wahlfreien Zugriffs 9′ hat zwei Arten von Ta­ bellen. Genauer, die logisch/physikalische Adreßumwandlungs­ tabelle 91 bzw. Adreßumwandlungstabelle zur Umwandlung lo­ gischer in physikalische Adressen für Blöcke in ersten und dritten Bereichen 103 und 105 in dem Speicherbereich des Flash-Speichers 4′, und die Defektblock-Substitutionstabelle 92′ für Blöcke in dem dritten Bereich 105. Ähnliche Bezugs­ zeichen in Fig. 5 bezeichnen ähnliche oder entsprechende, be­ reits in Fig. 2 dargestellte Teile. Zur Vermeidung einer dop­ pelten Erklärung seien an dieser Stelle nur von der Flash-Festkörper-Plattenspeicher-Karte 1 unterschiedliche Struktu­ ren und Funktionen sowie Vorteile davon erläutert.
Der dritte Bereich 105 in dem Speicherbereich des Flash-Spei­ chers 4′ besteht aus r redundanten Blöcken (physikalische Sektorenzahlen (M+1) bis (M+r)), wobei diese als Erweite­ rungsblöcke des ersten Bereichs 103 und darüber hinaus als Ersatzblöcke bzw. Substitutionsblöcke verwendet werden, wenn in einem Block in dem zweiten Bereich 104 ein Defekt bzw. Fehler erzeugt wird bzw. auftritt. Die r redundanten Blöcke werden ähnlich den Blöcken in dem ersten Bereich 103 verwen­ det, abgesehen von als Ersatzblöcken für Defektblöcke in dem zweiten Bereich 104 verwendeten Blöcken.
In der logisch/physikalischen Adreßumwandlungstabelle 91 so­ wie der Defektblock-Substitutionstabelle 92, die in Fig. 5 dargestellt sind, ist eine von dem Host-Rechner 2 her empfan­ gene logische Sektorenzahl (LSN) jeweils auf der linken Seite der Tabellen 91, 92 angegeben, wohingegen eine entsprechend der logischen Sektorenzahl ausgegebene physikalische Sekto­ renzahl (PSN) jeweils auf der rechten Seite davon gezeigt ist. Werte entsprechender logischer Sektorenzahlen sind je­ weils in Klammern in dem Sektorverwaltungs-Datenbereich 101 angegeben. Ein Datum bzw. Eintrag (in Fig. 5 als "*" ge­ zeigt), das bzw. der für einen Defektblock steht bzw. einen solchen bezeichnet, wird in dem zweiten Bereich 104 anstatt einer logischen Sektorenzahl in einen Sektorverwaltungs-Da­ tenbereich 101 bei einem defekten Block eingeschrieben (vgl. zum Beispiel einen Block mit der physikalischen Sektorenzahl B). Die logisch/physikalische Adreßumwandlungstabelle 91 in dem Speicher wahlfreien Zugriffs RAM 9 wird entsprechend den in den Sektorverwaltungs-Datenbereich 101 in dem ersten und dritten Bereich 101 und 103 geschriebenen logischen Sektoren­ zahlen erzeugt. Ferner wird die Defektblock-Substitutionsta­ belle 92 entsprechend den logischen Sektorenzahlen (N+1) bis M erzeugt, die in den Sektorverwaltungs-Datenbereich 101 in dem dritten Bereich 105 in dem Flash-Speicher 4′ bzw. in den zweiten Bereich 104 in dem Flash-Speicher 4′ geschrieben sind.
Wenn ein Block in dem zweiten Bereich 104 in dem Speicherbe­ reich des Flash-Speichers 4′ aufgerufen wird bzw. ein Zugriff auf diesen erfolgt, verwendet der Mikroprozessor MPU 6 die Adreßumwandlungstabelle 91 nicht, ähnlich wie bei dem ersten Ausführungsbeispiel. Wenn darüber hinaus ein Datum bzw. Da­ teneintrag in einen Sektorverwaltungs-Bereich 101 für den zu lesenden Block geschrieben ist, mit der Bedeutung, daß es sich bei dem Block um einen ungültigen bzw. unzulässigen Block handelt, der einen Defekt oder Fehler enthält, nimmt der Mikroprozessor MPU 6 Bezug auf die Defektblock-Substi­ tutionstabelle 92 und liest Daten in einem redundanten Block in dem dritten Bereich 105 entsprechend der durch die Substi­ tutionstabelle 92 spezifizierten physikalischen Sektorenzahl.
Wenn Daten in einem Block in dem ersten oder dritten Bereich aktualisiert werden, abgesehen von Blöcken, die als Substitu­ tionsblöcke bzw. Ersatzblöcke für defekte Blöcke in dem zwei­ ten Bereich 104 verwendet werden, löscht der Mikroprozessor MPU 6 die Daten in dem Block, in den die Daten gespeichert werden und schreibt die logisch/physikalische Adreßumwand­ lungstabelle 91 neu, wobei Aktualisierungsdaten in einen freien Block in dem ersten oder dritten Bereich geschrieben werden. Somit verteilt der Mikroprozessor MPU 6 Blöcke, in die Daten geschrieben werden, um eine Konzentration von Lese­ vorgängen bzw. Schreibvorgängen bzw. Datenaktualisierungsvor­ gängen auf spezielle Blöcke zu verhindern.
Bei der vorstehend erläuterten Flash-Festkörper-Plattenspei­ cher-Karte 1 ist die Defektblock-Substitutionstabelle 92 zum Ersetzen eines Defektblocks bzw. defekten Blocks in dem Flash-Speicher durch einen normalen Block bzw. funktionsfähi­ gen Block der in dem dritten Speicherbereich 105 vorgesehenen redundanten Blöcken vorgesehen. Die Substitutionstabelle 92 kann anfängliche Defektblöcke als auch durch während des Ge­ brauchs beschädigte Defektblöcke registrieren bzw. erfassen. Daher kann die Produktlebensdauer einer Flash-Festkörper- Plattenspeicher-Karte selbst verlängert werden. Darüber hin­ aus kann ein Flash-Speicher mit anfänglichen Defekten verwen­ det werden, so daß die Kosten einer Flash-Festkörper-Platten­ speicher-Karte verringert werden können.
Fig. 6 ist ein Flußdiagramm einer durch den Mikroprozessor MPU 6 bei der Flash-Festkörper-Plattenspeicher-Karte 1 durch­ geführten Daten-Schreibverarbeitung. Zunächst wird ein Wert L einer logischen Sektorenzahl bzw. logischen Sektorenadresse (LSN) erhalten, der durch den Host-Rechner 2 bestimmt ist (Schritt S21). Wenn der Wert L größer als N ist (JA bei Schritt S22), werden Daten in einen Block geschrieben, dessen physikalische Sektorenzahl bzw. -adresse (PSN) einen Wert L hat, da auf den zweiten Bereich bzw. Speicherbereich 104 zu­ gegriffen wird (Schritt S23). Wenn dann entschieden wird, daß der Datenschreibvorgang vollständig normal ist bzw. in der üblichen Weise abgeschlossen wurde (JA bei Schritt S24), en­ det die Verarbeitung. Wenn der Datenschreibvorgang jedoch nicht auf normale Weise abgeschlossen wird (NEIN bei Schritt S24), wird ein Datum bzw. Dateneintrag mit der Bedeutung ei­ nes ungültigen bzw. defekten Blockes in den Sektorverwal­ tungs-Datenbereich 101 des Blockes geschrieben (Schritt S25), und Daten werden in einen freien Block in dem dritten Spei­ cherbereich 105 geschrieben (Schritt S26). Weiterhin wird die physikalische Sektorenzahl des Blockes, in den die Daten ge­ schrieben werden bzw. eigentlich zu schreiben sind, als lo­ gische Sektorenzahl L (L < N) in die Defektblock-Substituti­ onstabelle 92 in dem Speicher wahlfreien Zugriffs RAM 9′ ge­ schrieben (Schritt S27).
Wenn andererseits L nicht größer als N ist (NEIN bei Schritt S22), werden Daten in einem Block gelöscht, dessen physikali­ sche Sektorenzahl einen durch die logisch/physikalische Adreßumwandlungstabelle 91 in dem Speicher wahlfreien Zu­ griffs RAM 9′ bestimmten Wert hat (Schritt S28). Dann werden Daten in einen freien Block der Blöcke in dem ersten oder dritten Bereich 103 bzw. 105 geschrieben, die physikalische Sektorenzahlen 1 bis N oder (M+1) bis (M+r) haben (Schritt S29). Dann wird der Inhalt der logisch/physikalischen Adreß­ umwandlungstabelle 91 aktualisiert bzw. eine physikalische Sektorenzahl entsprechend der logischen Sektorenzahl L auf eine Zahl des Blockes aktualisiert, in den Daten bei Schritt S29 geschrieben wurden (Schritt S30).
Fig. 7 ist ein Flußdiagramm einer Daten-Leseverarbeitung bei der Flash-Festkörper-Plattenspeicher-Karte 1, die durch den Mikroprozessor MPU 6 durchgeführt wird. Zuerst wird ein Wert L einer logischen Sektorenzahl. (LSN) erhalten, die durch den Host-Rechner 2 bestimmt ist. Wenn L größer als N ist (JA bei Schritt S32), wird ein Wert einer physikalischen Sektorenzahl (PSN) als L eingestellt bzw. auf L gesetzt, da ein Zugriff auf den zweiten Bereich 104 erfolgt (Schritt S33). Dann wer­ den die in einen Sektorverwaltungs-Datenbereich 101 in einem Block der physikalischen Sektorenzahl L geschriebenen Daten gelesen (Schritt S34). Wenn dann entschieden ist, daß keine einen ungültigen Block bezeichnende Daten dort eingeschrieben sind bzw. daß es sich um einen gültigen Block handelt (JA bei Schritt S35), werden Daten der physikalischen Sektorenzahl L gelesen bzw. in dem physikalischen Sektor mit der physikali­ schen Sektorenzahl L abgespeicherte Daten werden gelesen (Schritt S38). Wenn andererseits bestimmt wird, daß ein einen ungültigen Block bezeichnendes Datum bzw. ein derartiger Da­ teneintrag dort eingeschrieben ist (NEIN bei Schritt S35), wird die physikalische Sektorenzahl entsprechend der logi­ schen Sektorenzahl L unter Bezugnahme auf die Defektblocksub­ stitutionstabelle 92 in dem Speicher wahlfreien Zugriffs RAM 9′ bestimmt (Schritt S36). Dann werden Daten der bei Schritt S36 bestimmten physikalischen Sektorenzahl L gelesen (Schritt S38).
Wenn andererseits L nicht größer als N ist (NEIN bei Schritt S32), wird ein Wert einer physikalischen Sektorenzahl anhand der logisch/physikalischen Adreßumwandlungstabelle 91 in dem Speicher wahlfreien Zugriffs RAM 9′ bestimmt (Schritt S37). Dann werden Daten der bei Schritt S37 bestimmten physika­ lischen Sektorenzahl L gelesen (Schritt S38).
Bei der vorstehend erläuterten Flash-Festkörper-Plattenspei­ cher-Karte sind r redundante Blöcke in dem Flash-Speicher vorgesehen, und eine Adreßumwandlungstabelle kann ebenfalls die redundanten Blöcke bestimmen bzw. auswählen bzw. zuwei­ sen. Dann wird eine Beeinträchtigung des Flash-Speichers auf­ grund einer Konzentration von Datenaktualisierungen in beson­ deren Blöcken in größerem Ausmaß verzögert bzw. vermindert als bei der Flash-Festkörper-Plattenspeicher-Karte des ersten Ausführungsbeispiels. Wenn darüber hinaus ein Defekt bzw. Fehler in einem Block auftritt, für den die Adreßumwandlungs­ tabelle nicht vorgesehen ist, ersetzt ein normaler bzw. feh­ lerfreier Block unter den redundanten Blöcken den Block. So­ mit hat eine Flash-Festkörper-Plattenspeicher-Karte eine län­ gere Produktlebensdauer. Ferner kann eine Flash-Speicherein­ richtung mit anfänglichen Defekten bzw. Fehlern eingesetzt werden, und dies verringert die Kosten.
Eine Flash-Festkörper-Plattenspeicher-Karte hat einen Flash-Speicher mit M Blöcken, wobei M größer als N ist, oder M Blöcke und r redundante Blöcke, sowie eine Adreßumwandlungs­ tabelle, die eine physikalische Sektorenzahl 1 bis N oder 1 bis N und (M+1) bis (M+r) entsprechend einer Eingabe einer logischen Sektorenzahl 1 bis N ausgibt. Wenn Daten in einem Block für eine logische Sektorenzahl L gleich oder kleiner als N aktualisiert werden, werden andere Daten in einem Block mit einer physikalischen Sektorenzahl gelöscht, welche durch die Adreßumwandlungstabelle bestimmt wird, die Daten werden in einen freien Block geschrieben, und eine physikalische Sektorenzahl entsprechend der logischen Sektorenzahl L in der Adreßumwandlungstabelle wird auf eine Zahl des Blockes verän­ dert, in den die zu aktualisierenden bzw. aktualisierten Da­ ten geschrieben wurden. Wenn eine logische Sektorenzahl L gleich oder kleiner als N ist, werden Daten von einem Block für eine physikalische Sektorenzahl entsprechend der logi­ schen Sektorenzahl L in der Tabelle gelesen, andernfalls wer­ den Daten von einem Block für eine physikalische Sektorenzahl L gelesen. Somit kann eine Flash-Festkörper-Plattenspeicher-Karte längere Zeit effizient benutzt werden. Vorzugsweise ist eine Substitutionstabelle für Defektblöcke vorgesehen, um einen Defektblock durch einen Block zu ersetzen.

Claims (7)

1. Flash-Festkörper-Plattenspeicher-Karte mit:
einem Flash-Speicher (4) mit M Blöcken mit physikali­ schen Sektorenzahlen zwischen 1 und M, wobei die M Blöcke N-Blöcke zur Sektorenverwaltung einschließen, wobei N kleiner als M ist;
einem Speicher wahlfreien Zugriffs (9) zur Speicherung einer Adreßumwandlungstabelle (91), die eine physikalische Sektorenzahl für einen der N Blöcke in Übereinstimmung mit der Eingabe einer logischen Sektorenzahl zwischen 1 und N ausgibt;
einer Daten-Schreibeinrichtung (6; S1-S6) zum Schreiben von Daten in einen Block für eine logische Sektorenzahl L, wobei die Daten-Schreibeinrichtung Mittel hat, um für den Fall, daß L einer Beziehung 1 L N genügt, andere Daten in einem Block zu löschen, der eine durch die in dem Speicher wahlfreien Zugriffs gespeicherte Adreßumwandlungstabelle ent­ sprechend der logischen Sektorenzahl L bestimmte physikali­ sche Sektorenzahl hat, die zu schreibenden Daten in einen freien Block unter den N Blöcken zu schreiben, und eine phy­ sikalische Sektorenzahl entsprechend der logischen Sektoren­ zahl L in der Adreßumwandlungstabelle in eine physikalische Sektorenzahl des Blocks zu ändern, in den die Daten geschrie­ ben wurden, und um für den Fall, daß L größer als N ist, zu schreibende Daten in einen Block zu schreiben, der eine phy­ sikalische Sektorenzahl hat, die gleich der logischen Sekto­ renzahl L ist; und
einer Daten-Leseeinrichtung (6; S11-S15) zum Lesen von Daten von einem Block in dem Flash-Speicher für eine physi­ kalische Sektorenzahl entsprechend der logischen Sektorenzahl L in der Adreßumwandlungstabelle in dem Speicher wahlfreien Zugriffs, wenn die logische Sektorenzahl L gleich oder klei­ ner als N ist, und zum Lesen von Daten von einem Block für eine physikalische Sektorenzahl L in dem Flash-Speicher, wenn die logische Sektorenzahl L größer als N ist.
2. Die Karte nach Anspruch 1, wobei jeder der N Blöcke einen Sektordatenbereich (100) und einen Sektorverwaltungsbereich (101) hat, wobei der Sektorverwaltungsbereich eine der physi­ kalischen Sektorenzahl entsprechende logische Sektorenzahl speichert.
3. Karte nach Anspruch 2, wobei der Sektordatenbereich 512 Byte und der Sektorverwaltungsbereich 16 Byte umfaßt.
4. Flash-Festkörper-Plattenspeicher-Karte mit:
einem Flash-Speicher (4′) mit (M+r) Blöcken mit physika­ lischen Sektorenzahlen zwischen 1 und (M+r), wobei die (M+r) Blöcke N Blöcke zur Sektorverwaltung und r redundante Blöcke enthalten;
einem Speicher wahlfreien Zugriffs (9′) zur Speicherung einer Adreßumwandlungstabelle (91), die eine physikalische Sektorenzahl für einen der N Blöcke und der r redundanten Blöcke entsprechend einer Eingabe einer logischen Sektoren­ zahl zwischen 1 und N ausgibt, wobei N kleiner ist als M;
einer Daten-Schreibeinrichtung (6; S21 bis S30), um für den Fall, daß eine logische Sektorenzahl L einer Beziehung 1 L N genügt, andere Daten in einem Block zu löschen, der eine physikalische Sektorenzahl hat, die entsprechend der logischen Sektorenzahl L durch die in dem Speicher wahlfreien Zugriffs gespeicherte Adreßumwandlungstabelle bestimmt ist, um die zu schreibenden Daten in einen freien Block unter den N Blöcken und den r redundanten Blöcken zu schreiben, und um eine physikalische Sektorenzahl entsprechend der logischen Sektorenzahl L in der Adreßumwandlungstabelle zu einer physi­ kalischen Sektorenzahl des Blockes zu ändern, in den die Da­ ten geschrieben wurden, und um für den Fall, daß die logische Sektorenzahl L größer als N ist, Daten in einen Block mit ei­ ner physikalischen Sektorenzahl zu schreiben, die gleich der logischen Sektorenzahl L ist; und
einer Daten-Leseeinrichtung (6; S31 bis S38) zum Lesen von Daten von einem Block in dem Flash-Speicher für eine phy­ sikalische Sektorenzahl entsprechend der logischen Sektoren­ zahl L in der Adreßumwandlungstabelle in dem Speicher wahl­ freien Zugriffs, wenn die logische Sektorenzahl L gleich oder kleiner als N ist, und zum Lesen von Daten von einem Block für eine physikalische Sektorenzahl L in dem Flash-Speicher, wenn die logische Sektorenzahl L größer als N ist.
5. Karte nach Anspruch 4, wobei jeder der N Blöcke und der r redundanten Blöcke einen Sektordatenbereich (100) und einen Sektorverwaltungsbereich (101) umfaßt, wobei der Sektorver­ waltungsbereich eine logische Sektorenzahl entsprechend der physikalischen Sektorenzahl speichert.
6. Karte nach Anspruch 5, wobei der Sektordatenbereich 512 Byte und der Sektorverwaltungsbereich 16 Byte umfaßt.
7. Karte nach Anspruch 4, wobei der Speicher wahlfreien Zu­ griffs (9′) eine Substitutionstabelle (92) aufweist, die lo­ gische Sektorenzahlen und physikalische Sektorenzahlen von Substitutionsblöcken für defekte Blöcke speichert, die für die logischen Sektorenzahlen mit der Adreßumwandlungstabelle bestimmt wurden, wobei jeder Block in dem Flash-Speicher ei­ nen Datenbereich zum Schreiben von Daten und einen Verwal­ tungsdatenbereich zum Schreiben einer logischen Sektorenzahl oder eines einen defekten Block bezeichnenden Datums umfaßt, wobei die Daten-Schreibeinrichtung darüber hinaus ein einen defekten Block bezeichnendes Datum in den Verwaltungsbereich für den Block der physikalischen Sektorenzahl L schreibt (S25), Daten in einen freien Block unter den r redundanten Blöcken schreibt (S26) und die logische Sektorenzahl L und eine physikalische Sektorenzahl für einen Block, in den die Daten geschrieben wurden, in die Substitutionstabelle ein­ trägt (S27), wenn die logische Sektorenzahl N größer als L ist und ein Block mit der physikalischen Sektorenzahl L einen Defekt aufweist (S22, S24), und die Datenleseeinrichtung (6; S31 bis S38) ferner Daten einer redundanten Sektorenzahl aus der Substitutionstabelle für die physikalische Sektorenzahl L liest, wenn die logische Sektorenzahl L größer als N ist und ein einen defekten Block bezeichnendes Datum in den Verwal­ tungsbereich für die physikalische Sektorenzahl L geschrieben ist (S36, S35, S32).
DE19615948A 1995-09-13 1996-04-22 Flash-Festkörper-Plattenspeicher-Karte Expired - Fee Related DE19615948C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23522995A JP3604466B2 (ja) 1995-09-13 1995-09-13 フラッシュディスクカード

Publications (2)

Publication Number Publication Date
DE19615948A1 true DE19615948A1 (de) 1997-03-20
DE19615948C2 DE19615948C2 (de) 1998-12-10

Family

ID=16983000

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19615948A Expired - Fee Related DE19615948C2 (de) 1995-09-13 1996-04-22 Flash-Festkörper-Plattenspeicher-Karte

Country Status (5)

Country Link
US (1) US5742934A (de)
JP (1) JP3604466B2 (de)
KR (1) KR100319017B1 (de)
DE (1) DE19615948C2 (de)
GB (1) GB2305272B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0887735A2 (de) * 1997-06-25 1998-12-30 Sony Corporation Speicherverwaltungsverfahren für Flashspeicher

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
JPH10207726A (ja) * 1997-01-23 1998-08-07 Oki Electric Ind Co Ltd 半導体ディスク装置
DE19708755A1 (de) * 1997-03-04 1998-09-17 Michael Tasler Flexible Schnittstelle
US6182201B1 (en) * 1997-04-14 2001-01-30 International Business Machines Corporation Demand-based issuance of cache operations to a system bus
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US6367030B1 (en) * 1997-10-09 2002-04-02 Matsushita Electric Industrial Co., Ltd. Address conversion circuit and address conversion system with redundancy decision circuitry
JPH11203191A (ja) * 1997-11-13 1999-07-30 Seiko Epson Corp 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
CN1249586C (zh) * 1997-12-22 2006-04-05 Tdk株式会社 闪速存储器系统
US6460111B1 (en) * 1998-03-09 2002-10-01 Mitsubishi Denki Kabushiki Kaisha Semiconductor disk drive and method of creating an address conversion table based on address information about defective sectors stored in at least one sector indicated by a management code
JP4315488B2 (ja) * 1998-06-30 2009-08-19 ソニー株式会社 データ記憶装置、データ処理装置、データ処理システム並びにデータ処理方法
JP3544476B2 (ja) * 1998-09-11 2004-07-21 富士通株式会社 メモリ管理テーブル作成方法
JP2000122935A (ja) * 1998-10-20 2000-04-28 Sanyo Electric Co Ltd 不揮発性メモリのアドレス変換装置
JP2000227871A (ja) * 1999-02-05 2000-08-15 Seiko Epson Corp 不揮発性記憶装置、その制御方法、および、情報記録媒体
US6427186B1 (en) * 1999-03-30 2002-07-30 Frank (Fong-Long) Lin Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers
US6426928B1 (en) 1999-03-31 2002-07-30 International Business Machines Corporation Ability to distinguish true disk write errors
US6332204B1 (en) * 1999-03-31 2001-12-18 International Business Machines Corporation Recovering and relocating unreliable disk sectors when encountering disk drive read errors
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US7953931B2 (en) * 1999-08-04 2011-05-31 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US6565443B1 (en) 1999-09-14 2003-05-20 Innovative Gaming Corporation System and method for verifying the contents of a mass storage device before granting access to computer readable data stored on the device
US8019943B2 (en) * 2000-01-06 2011-09-13 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6662263B1 (en) 2000-03-03 2003-12-09 Multi Level Memory Technology Sectorless flash memory architecture
GB2369465B (en) * 2000-11-28 2003-04-02 3Com Corp A method of sorting and retrieving data files
US20020124203A1 (en) * 2001-02-20 2002-09-05 Henry Fang Method for utilizing DRAM memory
US6779045B2 (en) * 2001-03-21 2004-08-17 Intel Corporation System and apparatus for increasing the number of operations per transmission for a media management system
JP4772214B2 (ja) * 2001-06-08 2011-09-14 ルネサスエレクトロニクス株式会社 不揮発性記憶装置及びその書き換え制御方法
US6711663B2 (en) * 2001-11-15 2004-03-23 Key Technology Corporation Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof
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
US6675281B1 (en) 2002-01-22 2004-01-06 Icreate Technologies Corporation Distributed mapping scheme for mass storage system
US6732222B1 (en) * 2002-02-01 2004-05-04 Silicon Motion, Inc. Method for performing flash memory file management
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
TWI241481B (en) * 2002-06-25 2005-10-11 Lite On Technology Corp Repeated burning method of flash memory program
US7123512B2 (en) * 2002-07-19 2006-10-17 Micron Technology, Inc. Contiguous block addressing scheme
JP2004086991A (ja) * 2002-08-27 2004-03-18 Renesas Technology Corp 不揮発性記憶装置
US20040083334A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
US7634614B2 (en) * 2003-01-13 2009-12-15 Sierra Logic Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves and that support virtual disk formatting
WO2005008661A1 (en) * 2003-07-17 2005-01-27 Koninklijke Philips Electronics N.V. Device and method for recording information with reorganization of defect management information
KR100608602B1 (ko) * 2003-12-10 2006-08-03 삼성전자주식회사 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
US7480760B2 (en) 2003-12-17 2009-01-20 Wegener Communications, Inc. Rotational use of memory to minimize write cycles
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
EP1704484A2 (de) * 2003-12-30 2006-09-27 SanDisk Corporation Nichtflüchtiger speicher und verfahren mit nichtsequentiellem aktualisierungs-block-management
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
KR100594249B1 (ko) * 2004-02-13 2006-06-30 삼성전자주식회사 데이터 저장 시스템에서의 적응적 데이터 액세스 제어방법 및 이를 이용한 디스크 드라이브
JP4751037B2 (ja) * 2004-06-22 2011-08-17 株式会社東芝 メモリカード
US7427027B2 (en) * 2004-07-28 2008-09-23 Sandisk Corporation Optimized non-volatile storage systems
JP4561246B2 (ja) * 2004-08-31 2010-10-13 ソニー株式会社 メモリ装置
JP4817836B2 (ja) * 2004-12-27 2011-11-16 株式会社東芝 カードおよびホスト機器
JP4634157B2 (ja) 2005-01-17 2011-02-16 株式会社日立製作所 ストレージシステム
US20060224875A1 (en) * 2005-03-11 2006-10-05 Choi Young-Joon Portable digital player
US7389397B2 (en) * 2005-06-01 2008-06-17 Sandisk Il Ltd Method of storing control information in a large-page flash memory device
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US20070118578A1 (en) * 2005-11-04 2007-05-24 Sun Microsystems, Inc. Extensible hashing for file system directories
JP5089901B2 (ja) * 2006-03-28 2012-12-05 株式会社日立製作所 記憶制御装置及び記憶制御装置の制御方法
JP2008009527A (ja) * 2006-06-27 2008-01-17 Toshiba Corp メモリシステム
JP2008070929A (ja) * 2006-09-12 2008-03-27 Matsushita Electric Ind Co Ltd メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
US20080071968A1 (en) * 2006-09-18 2008-03-20 Phison Electronics Corp. Method of managing blocks fo flash memory suitable for flexible correspondence between logic block and physical block
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
FR2915829A1 (fr) * 2007-05-02 2008-11-07 St Microelectronics Sa Memoire non volatile a ecriture rapide
DE602008003150D1 (de) * 2007-05-02 2010-12-09 St Microelectronics Sa Nicht flüchtiger Speicher mit partieller Löschung
US7958390B2 (en) * 2007-05-15 2011-06-07 Sandisk Corporation Memory device for repairing a neighborhood of rows in a memory array using a patch table
US7966518B2 (en) * 2007-05-15 2011-06-21 Sandisk Corporation Method for repairing a neighborhood of rows in a memory array using a patch table
US20080306723A1 (en) * 2007-06-08 2008-12-11 Luca De Ambroggi Emulated Combination Memory Device
JP2009003783A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
JP2009003784A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
US8380949B2 (en) 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
WO2012057777A1 (en) * 2010-10-29 2012-05-03 Empire Technology Development Llc Advanced data encoding with reduced erasure count for solid state drives
JP5614337B2 (ja) 2011-03-08 2014-10-29 富士通セミコンダクター株式会社 メモリの制御方法、メモリの制御回路、記憶装置、及び電子機器
US20130151755A1 (en) 2011-12-12 2013-06-13 Reuven Elhamias Non-Volatile Storage Systems with Go To Sleep Adaption
WO2013094275A1 (ja) 2011-12-20 2013-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ・ネットワーク・システム
KR101949671B1 (ko) 2012-06-28 2019-04-25 삼성전자 주식회사 라이프 싸이클을 증가시킬 수 있는 저장 장치 및 그 동작 방법
US8910017B2 (en) 2012-07-02 2014-12-09 Sandisk Technologies Inc. Flash memory with random partition
JP5435107B2 (ja) * 2012-11-22 2014-03-05 富士通株式会社 不揮発性メモリ・ドライバ
WO2014109756A1 (en) 2013-01-11 2014-07-17 Empire Technology Development Llc Page allocation for flash memories
WO2014133490A1 (en) 2013-02-27 2014-09-04 Empire Technology Development Llc Linear programming based decoding for memory devices
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US9411721B2 (en) 2013-11-15 2016-08-09 Sandisk Technologies Llc Detecting access sequences for data compression on non-volatile memory devices
US9859925B2 (en) 2013-12-13 2018-01-02 Empire Technology Development Llc Low-complexity flash memory data-encoding techniques using simplified belief propagation
JP6226830B2 (ja) * 2014-07-24 2017-11-08 株式会社東芝 情報処理装置、データアクセス方法およびプログラム
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
US10261897B2 (en) 2017-01-20 2019-04-16 Samsung Electronics Co., Ltd. Tail latency aware foreground garbage collection algorithm

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5406529A (en) * 1992-09-22 1995-04-11 International Business Machines Corporation Flash non-volatile memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113512A (en) * 1988-06-21 1992-05-12 Matsushita Electric Industrial Co., Ltd. System for managing a storage medium reducing physical space needed
US5124987A (en) * 1990-04-16 1992-06-23 Storage Technology Corporation Logical track write scheduling system for a parallel disk drive array data storage subsystem
JP2582487B2 (ja) * 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
TW261687B (de) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US5359570A (en) * 1992-11-13 1994-10-25 Silicon Storage Technology, Inc. Solid state peripheral storage device
US5812814A (en) * 1993-02-26 1998-09-22 Kabushiki Kaisha Toshiba Alternative flash EEPROM semiconductor memory system
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5406529A (en) * 1992-09-22 1995-04-11 International Business Machines Corporation Flash non-volatile memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0887735A2 (de) * 1997-06-25 1998-12-30 Sony Corporation Speicherverwaltungsverfahren für Flashspeicher
EP0887735A3 (de) * 1997-06-25 2001-12-05 Sony Corporation Speicherverwaltungsverfahren für Flashspeicher

Also Published As

Publication number Publication date
GB2305272B (en) 1997-08-20
KR970017042A (ko) 1997-04-28
DE19615948C2 (de) 1998-12-10
GB9605872D0 (en) 1996-05-22
GB2305272A (en) 1997-04-02
JPH0981332A (ja) 1997-03-28
JP3604466B2 (ja) 2004-12-22
KR100319017B1 (ko) 2002-04-22
US5742934A (en) 1998-04-21

Similar Documents

Publication Publication Date Title
DE19615948C2 (de) Flash-Festkörper-Plattenspeicher-Karte
DE69527594T2 (de) Flashspeicherkarte
DE69414556T2 (de) Schnell loeschbare datei
DE69623407T2 (de) Verfahren zur Überprüfung der Blockzuordnung eines Flash-Speichers mit Übersetzungsschicht
DE69227499T2 (de) Einen Flashspeicher verwendendes Speichergerät
DE69936246T2 (de) Nichtflüchtiger Speicher, Aufzeichnungsgerät und -verfahren
DE60032531T2 (de) Aufzeichnungsverfahren, Verwaltungsverfahren und Aufzeichnungsgerät
DE69325741T2 (de) Speicherkartengerät
DE69233228T2 (de) Datenverwaltungssystem für Halbleiterspeicher mit beschränkter Programmierung und I.C. Speicherkarte mit solchem Datenverwaltungssystem
DE3852808T2 (de) Informationsverwaltungssystem für beschreibbare optische Platten.
DE69630624T2 (de) EEPROM-Matrix mit einem, dem &#34;Flash&#34;-Speicher ähnlichen Kern
DE19600081C2 (de) Sicherung der Datenintegrität bei Datenträgerkarten
DE19740525C1 (de) Verfahren zur Abspeicherung und Wiedergewinnung von Daten in einem Steuersystem, insbesondere in einem Kraftfahrzeug
DE60035780T2 (de) Schaltung für plattenantriebskontroller und verfahren zur überschlagung von defekten oder ungewünschten sektoren
DE60121697T2 (de) Verfahren zum ansteuern von remapping in einem flash-speicher und in einer dafür geeigneten flash-speicher-architektur
DE69034227T2 (de) EEprom-System mit Blocklöschung
DE69623720T2 (de) Verfahren zum Aufräumen eines Flash-Speichers mit Übersetzungsschicht
DE69839126T2 (de) Verschiebung aufeinander folgender sektoren innerhalb eines datenblocks in einem flash-massenspeicher
DE69716233T2 (de) Halbleiterspeicheranordnung mit fehlerdetektion und -korrektur
DE69512459T2 (de) RAID 5 - Plattenspeicheranordnung mit Paritätscachespeicher mit freien Blöcken
DE69431795T2 (de) Massenspeicherarchitektur mit flash-speicher
DE68913605T2 (de) Verfahren zur Handhabung defekter Sektoren auf einem plattenförmigen Informations-Aufzeichnungsträger und Gerät zur Durchführung des Verfahrens.
DE69801112T2 (de) Dateispeicherverwaltungssystem für schnappschusskopieroperationen
DE69821426T2 (de) Speicheranordung, und Datenverarbeitungssystem und -Verfahren
DE19623853A1 (de) Halbleiter-Speichervorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20141101