DE10238566A1 - Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf - Google Patents

Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf

Info

Publication number
DE10238566A1
DE10238566A1 DE10238566A DE10238566A DE10238566A1 DE 10238566 A1 DE10238566 A1 DE 10238566A1 DE 10238566 A DE10238566 A DE 10238566A DE 10238566 A DE10238566 A DE 10238566A DE 10238566 A1 DE10238566 A1 DE 10238566A1
Authority
DE
Germany
Prior art keywords
window
flash memory
area
window information
information
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.)
Withdrawn
Application number
DE10238566A
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 DE10238566A1 publication Critical patent/DE10238566A1/de
Withdrawn 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

Ein Fenster-basierendes Flashspeicher-Speichersystem und ein Management und Zugriffs-Verfahren darauf werden vorgeschlagen. Das Fenster-basierende Flashspeicher-Speichersystem schließt ein Fenster-basierendes Gebiet und ein redundantes reserviertes Gebiet ein, wobei das Fenster-basierende Gebiet verwendet wird, eine Anzahl an Fenstern zu speichern, wobei jedes Fenster einer Anzahl an physikalischen Blöcken zugeordnet ist. Das redundante reservierte Gebiet schließt einen Bereich für dynamische Verknüpfungen, einen Fensterinformations-Bereich, einen Informationsbereich für dynamische Verknüpfungen und einen Urladeinformations-Bereich ein, wobei der Bereich für dynamische Verknüpfungen eine Vielzahl an dynamischen Zuweisungsblöcken einschließt, wobei jeder irgendeinem Fenster zuordenbar ist. Der Fensterinformations-Bereich wird verwendet, um einen spezifischen Satz an Fensterinformationen zu speichern, der einem gewissen Fenster innerhalb eines spezifischen Datenspeicherplatz-Bereichs gewidmet ist. Der Informationsbereich für dynamische Verknüpfungen wird verwendet, um den Zuweisungsstatus der dynamischen Zuweisungsblöcke zu den Fenstern aufzuzeichnen.

Description

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Diese Erfindung betrifft das Gebiet einer Massenspeichervorrichtung und insbesondere ein Fenster-basierendes Flashspeicher-Speichersystem und ein Managementverfahren und ein Zugriffsverfahren darauf.
  • 2. Beschreibung des verwandten Standes der Technik
  • Das Flashspeicher-Speichersystem setzt sich typischerweise aus zwei Hauptkomponenten zusammen: eine Flashspeicher-Einheit und eine Zugriffssteuerung; wobei die Flashspeicher- Einheit für Datenspeicherung eingesetzt wird, während die Zugriffssteuerung verwendet wird, sowohl den Zugriffvorgang von der CPU an den Flashspeicher zu steuern als auch den Datenspeicherplatz des Flashspeichers zu verwalten. Die Zugriffssteuerung setzt sich typischerweise aus einem Mikroprozessor, einer ROM-Einheit, einer SRAM-Einheit, einer Flashspeicher-Schnittstelle und einer CPU-Schnittstelle zusammen; wobei die ROM-Einheit verwendet wird, den Programmcode zu speichern, der auf dem Mikroprozessor läuft; die SRAM- Einheit verwendet wird, um Fenster-betreffende Informationen zu speichern und dient ebenfalls als ein Datenzwischenspeicher zwischen dem Flashspeicher und der CPU; die CPU-Schnittstelle verwendet wird, der Zugriffssteuerung zu ermöglichen, mit der CPU zu kommunizieren und die Flashspeicher-Schnittstelle verwendet wird, der Zugriffssteuerung zu ermöglichen, Zugriff auf die in dem Flashspeicher gespeicherten Daten zu erlangen.
  • Der Datenspeicherplatz des Flashspeichers ist in eine Vielzahl an Blöcken aufgeteilt und die meisten Blöcke sind in eine Anzahl an Untergruppen kategorisiert, die als Fenster bezeichnet werden. Wir verwenden einige spezifische Blöcke, um die betreffenden Informationen von jedem Fenster aufzuzeichnen (hier nachfolgend als Fensterinformationen bezeichnet). Um die SRAM- Kosten zu verringern, ist es allgemein üblich, alle Fensterinformationen in dem Flashspeicher zu speichern und nur ein Teil der Fensterinformationen, der für den Fensterbetrieb notwendig ist, wird in das SRAM geladen.
  • Wenn es gewünscht wird, einen Lese-/Schreib-Vorgang auf einem bestimmten Fenster auszuführen, ist es notwendig, zuerst die zugeordneten Fensterinformationen dieses Fensters in das SRAM zu laden. In dem Falle eines plötzlichen Stromausfalls würden jedoch einige neuerlich aktualisierte Fensterinformationen, die gegenwärtig in dem SRAM gespeichert sind, verloren gehen und daher speichert der Flashspeicher weiterhin die alte Version der Fensterinformationen. In dem nächsten Vorgang des gleichen Fensters, wenn der Strom wieder in den Normalzustand zurück gekehrt ist, wird folglich die ältere Version der Fensterinformationen in das SRAM geladen werden, was zu der Verwendung von inkorrekten Fensterinformationen führt.
  • Wenn überdies ein Lese-/Schreib-Vorgang auf einem bestimmten Sektor des aktiven Fensters ausgeführt werden soll, würde dies viele Phasen von Vorgängen einbeziehen. Wenn zwei Sektor existieren, um darauf zugegriffen zu werden, besteht das gegenwärtig verwendete Verfahren darin, den Lese-/Schreib-Vorgang auf den ersten Sektor auszuführen, bis alle Phasen abgeschlossen sind und dann mit dem Lese-/Schreib-Vorgang auf dem nächsten Sektor fortzufahren. Dieses sequentielle Zugriffsverfahren ist zweifelsfrei von geringer Effizienz. Eine herkömmliche Lösung dieses Problems besteht darin, zwei oder mehrere Flashspeicherbänke zu verwenden, um einen abwechselnden Lese-/Schreib-Vorgang durchzuführen, um zu helfen, die Zugriffsgeschwindigkeit zu steigern. Ein Nachteil dieser Lösung ist jedoch, dass sie in der Funktionalität eingeschränkt ist und den Nachteil eines allzu großen Stromverbrauchs innehaben würde.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist daher eine Aufgabe dieser Erfindung, ein Fenster-basierendes Flashspeicher- Speichersystem und ein Management und ein Zugriffsverfahren darauf bereitzustellen, das eine zuverlässigere Weise zum Laden von Fensterinformationen bereitstellen kann und helfen kann, eine Zugriffleistung durch parallelen pipeline-artigen Betrieb bei dem Lesen/Schreiben einer Anzahl an Sektoren zu steigern.
  • Das erfindungsgemäße Fenster-basierende Flashspeicher-Speichersystem schließt ein Fenster- basierendes Gebiet und ein redundantes reserviertes Gebiet ein, wobei das Fenster-basierende Gebiet verwendet wird, eine Anzahl an Fenstern zu speichern, wobei jedes Fenster einer Anzahl an physikalischen Blöcken zugeordnet ist. Das redundante reservierte Gebiet schließt einen Bereich für dynamische Verknüpfungen, einen Fensterinformations-Bereich, einen Informationsbereich für dynamische Verknüpfungen und einen Urladeinformations-Bereich ein; wobei der Bereich für dynamische Verknüpfungen eine Vielzahl an dynamischen Zuweisungsblöcken einschließt, wobei jeder irgendeinem Fenster zuordenbar ist. Der Fensterinformations-Bereich schließt ebenfalls eine Vielzahl an Fensterinformations-Blöcken ein, die verwendet werden, einen spezifischen Satz an Fensterinformationen zu speichern, der einem bestimmten Fenster zugeordnet ist. Der Informationsbereich für dynamische Verknüpfungen wird verwendet, um den Zuweisungsstatus der dynamischen Zuweisungsblöcke zu den Fenstern aufzuzeichnen.
  • Die Erfindung schlägt ferner ein Management-Verfahren für das Fenster-basierende Flashspeicher-Speichersystem vor. Das Fenster-basierende Flashspeicher-Speichersystem schließt eine Flashspeicher-Einheit mit einer Vielzahl an Fensterinformations-Blöcken ein, wobei jeder verwendet wird, eine Vielzahl an Sätzen an Fensterinformationen zu speichern, wobei jeder Satz an Fensterinformationen einem Fenster zugeordnet ist. Durch dieses Management- Verfahren ist der erste Schritt bei dem Start des Fenster-basierenden Flashspeicher- Speichersystems, eine Untergruppe der Fensterinformations-Blöcke auszuwählen und aus den ausgewählten Fensterinformations-Blöcken wird ein Satz an Fensterinformationen ausgewählt und der gewählte Satz an Fensterinformationen wird in eine SRAM-Einheit geladen. Dann wird der Satz an Fensterinformationen, der einem Nutzer-gewählten Fenster zugeordnet ist, in einen aktiven Fenstervariablen-Bereich von dem SRAM gesetzt und wenn ein anderes Fenster zum aktiven Fenster geschaltet wird, wird der gegenwärtige Satz an Fensterinformationen, der in dem aktiven Fenstervariablen-Bereich gespeichert ist, in ein reserviertes Fenster in dem SRAM verschoben. In dem Fall, dass ein Nutzer-gewähltes Fenster nicht irgendeinem in dem SRAM gespeicherten Satz an Fensterinformation zugeordnet ist, wird einer der Sätze an Fensterinformationen ausgewählt und eine Sicherung davon in den Flashspeicher kopiert und die Sicherungskopie des Satzes an Fensterinformationen wird durch einen der Sätze an Fensterinformationen ersetzt, die in dem Fensterinformations-Block gespeichert sind, der dem Nutzer-gewählten Fenster entspricht, um das Nutzer-gewählte Fenster als das aktive Fenster zu setzen.
  • In einer bevorzugten Ausführungsform der Erfindung basiert das Überprüfen, ob der Satz an Fensterinformationen, der in den Flashspeicher geladen ist, korrekt ist, auf dem Schreibblock- Anzeiger und dem Ersatzblock-Anzeiger.
  • Außerdem basiert der vorhergehende Überprüfungsschritt ob des Inhalts des Satzes an Fensterinformationen auf den Kriterien: (1) Prüfen, dass ein Fehlerkorrekturcode in den Fensterinformationen korrekt ist; (2) Prüfen, dass ein Prüfsummencode in den Fensterinformationen korrekt ist; (3) Prüfen, dass der Ersatzblock ein gelöschter Block ist; (4) Prüfen, dass der Inhalt einer logischen Blocknummer, ein Zykluszähler und der letzte zugegriffene Sektor in dem Schreibblock mit dem Inhalt des Schreibblock-Anzeigers übereinstimmen; und (5) Prüfen, dass der Inhalt eines Phasenregel-Flags in dem Schreibblock ungleich dem Wert ist, der verwendet wird, um den ersten freien Sektor in dem Fensterinformations-Block anzuzeigen.
  • Wenn der Inhalt des Satzes an Fensterinformationen inkorrekt ist, führt eine bevorzugte Ausführungsform der Erfindung den Schritt von Durchsuchen der vorhergehenden Sätze an Fensterinformationen aus, die in den Fensterinformations-Blöcken gespeichert sind, für den letzten verwendbaren Satz an Fensterinformationen aus, wobei der verwendbare Satz an Fensterinformationen der Satz an Fensterinformationen ist; der den korrigierbaren Fehlerkorrekturcode und den korrekten Prüfsummencode in den Fensterinformationen enthält.
  • Eine andere bevorzuge Ausführungsform der Erfindung führt den Schritt zum Finden aller Blöcke aus, die zu dem Fenster in dem Flashspeicher gehören, um den Satz an Fensterinformationen zu erneut bilden.
  • Die Erfindung schlägt zudem weiterhin ein Zugriffsverfahren für ein Fenster-basierendes Flashspeicher-Speichersystem vor, das eine Flashspeicher-Einheit einschließt, die ein Fenster- basierendes Gebiet und ein redundantes reserviertes Gebiet aufweist, und die eine Vielzahl an Zwischenspeicher-Bereichen einschließt. In dem Fensterinformations-Bereich des redundanten reservierten Bereichs ist jeder Satz an Fensterinformationen einem spezifischen Fenster mit einer Anzahl an physikalischen Blöcken zugeordnet. Bei diesem erfindungsgemäßen Zugriffverfahren besteht der erste Schritt darin, den Satz an Fensterinformationen eines Nutzer-gewählten Fensters in ein SRAM zu laden und dann einen angeforderten Sektor zu finden, der durch eine Datenzugriffs-anfordernde Komponente angefordert wird, und dann den angeforderten Sektor aus dem Flashspeicher in einen der Zwischenspeicher-Bereiche zu laden. Als nächstes wird der angeforderte Sektor, der gegenwärtig in einen der Zwischenspeicher-Bereiche geladen ist, an die Datenzugriffs-anfordernde Komponente übermittelt. Die vorhergehenden zwei Schritte von Übermitteln aller angeforderten Sektoren an die Datenzugriffs-anfordernde Komponente werden in einer parallelen pipeline-artigen Weise durchgeführt.
  • Die Erfindung schlägt überdies ein anderes Zugriffsverfahren für ein Fenster-basierendes Flashspeicher-Speichersystem vor, das eine Flashspeicher-Einheit einschließt, die ein Fenster- basierendes Gebiet und ein redundantes reserviertes Gebiet aufweist und die eine Vielzahl an Zwischenspeicher-Bereichen einschließt. In dem Fensterinformations-Bereich des redundanten Gebiets ist jede Fensterinformation einem spezifischen Fenster mit einer Anzahl an physikalischen Blöcken zugeordnet. Bei diesem erfindungsgemäßen Zugriffsverfahren besteht der erste Schritt darin, den Schreibsektor, der in den Flashspeicher zu schreiben ist, an einen der Zwischenspeicherbereiche zu übertragen und dann die Adresse des Schreibsektors in dem Flashspeicher zu berechnen. Dann wird überprüft, ob der vorhergehende Lesevorgang auf den Flashspeicher korrekt ist, und dann wird ein Schreibfreigabe-Signal an den Flashspeicher herausgegeben und dann wird der Schreibsektor an den Flashspeicher übertragen. Die vorhergehenden zwei Schritte von Übertragen aller angeforderten Sektoren an die Datenzugriffsanfordernde Komponente werden in einer parallelen pipeline-artigen Weise durchgeführt.
  • Zusammenfassend ist die Erfindung durch die Verwendung des redundanten reservierten Gebiets, um die betreffenden Fensterinformationen von jedem Fenster zu speichern, als auch die Verwendung eines schnellen Aufbauverfahrens, eines normalen Aufbauverfahrens und eines Block-Zu-Block-Such-Aufbauverfahrens, um zu helfen, die benötigten Fensterinformationen aufzubauen, um das Fenster-basierende Flashspeicher-Speichersystem schnell zu initialisieren, gekennzeichnet. Die Erfindung setzt überdies ebenfalls parallelen pipeline-artigen Betrieb ein, um die Leistung bei Lese-/Schreib-Vorgängen zu steigern.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung kann durch Lesen der folgenden detaillierten Beschreibung der bevorzugten Ausführungsformen unter Bezugnahme auf die begleitenden Zeichnungen umfassender verstanden werden, wobei:
  • Fig. 1 ein schematisches Diagramm ist, das die Datenstruktur des Flashspeichers in dem erfindungsgemäßen Fenster-basierenden Flashspeicher-Speichersystem zeigt;
  • Fig. 2 ein schematisches Diagramm ist, das eine bevorzugte Ausführungsform der Datenstruktur des redundanten Bereichs im Datenblock oder Schreibblock zeigt;
  • Fig. 3 ein schematisches Diagramm ist, das eine bevorzugte Ausführungsform der Datenstruktur des Schreibblock-Anzeigers oder Ersatzblock-Anzeigers zeigt;
  • Fig. 4 ein Flussdiagramm ist, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das von jedem Modul in dem Fenster-basierenden Flashspeicher-Speichersystem der Erfindung während eines Lese-/Schreibvorgangs ausgeführt wird;
  • Fig. 5 ein schematisches Diagramm ist, das eine bevorzugte Ausführungsform der Architektur des aktiven Fensters und des reservierten Fensters in dem SRAM zeigt;
  • Fig. 6 ein Flussdiagramm ist, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das durch die Erfindung, wenn Fensterinformationen in das SRAM geladen werden, ausgeführt wird;
  • Fig. 7 ein Flussdiagramm ist, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das durch das Fenster-Lese-/Schreib-Modul während eines Schreibvorgangs ausgeführt wird;
  • Fig. 8 ein schematisches Diagram ist, das ein herkömmliches Verfahren um Lesen von Daten aus Sektoren zeigt;
  • Fig. 9 ein Flussdiagramm ist, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das durch die Erfindung zum Lesen von Daten von einer Anzahl an Sektoren durch einen parallelen pipeline-artigen Vorgang ausgeführt wird;
  • Fig. 10 ein Flussdiagramm ist, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das durch die Erfindung zum Lesen von Daten durch einen parallelen pipeline-artigen Vorgang ausgeführt wird;
  • Fig. 11 ein Flussdiagramm ist, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das durch die Erfindung zum Schreiben von Daten in den Flashspeicher durch einen parallelen pipeline-artigen Vorgang ausgeführt wird; und
  • Fig. 12 ein Flussdiagramm ist, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das durch die Erfindung zum Schreiben von Daten durch einen parallelen pipeline-artigen Vorgang ausgeführt wird.
  • DETAILIERTE BESCHREIBUNG VON BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Fig. 1 ist ein schematisches Diagramm, das die Datenstruktur des Datenspeicherplatzes der Flashspeicher-Einheit in dem erfindungsgemäßen Fenster-basierenden Flashspeicher- Speichersystem zeigt. Der Datenspeicherplatz des Flashspeichers ist wie gezeigt in eine Anzahl an Blöcken untergeteilt und diese Blöcke sind in zwei Gruppen angeordnet, die ein Fenster- basierendes Gebiet 120 und ein redundantes reserviertes Gebiet 121 einschließen.
  • Das Fenster-basierende Gebiet 120 schließt eine Anzahl an Fensterbereichen ein, die von #0 bis #15 durchnumeriert sind und jeder von diesen ist mit Ausnahme des letzten Fensterblocks #15, der nicht exakt 512 Blöcke umfassen muss, in 512 Blöcke untergeteilt. Das redundante reservierte Gebiet 121 ist in vier Bereiche unterteilt: einen Bereich für dynamische Verknüpfungen 101, einen Fensterinformations-Bereich 102, einen Informationsbereich für dynamische Verknüpfungen 103 und eine Urladeinformations-Bereich 104. Der Bereich für dynamische Verknüpfungen 101 schließt eine Anzahl an Blöcken ein, die für die Benutzung durch jedes Fenster zugeordnet sind. In dem Fensterinformations-Bereich 102 sind zwei Blöcke für jedes Fenster zugeordnet, um ihre Fensterinformationen aufzuzeichnen. Der Bereich für dynamische Verknüpfungen 103 wird verwendet, um den Zuweisungsstatus der Blöcke des Bereichs für dynamische Verknüpfungen 101 aufzuzeichnen. Der Urladeinformations-Bereich 104 wird verwendet, um die Positionen des Bereichs für dynamische Verknüpfungen 101, des Fensterinformations-Bereichs 102 und des Informationsbereichs für dynamische Verknüpfungen 103 als auch die Gesamtzahl an logischen Sektoren in dem Fenster-basierenden Flashspeicher- Speichersystem und so weiter aufzuzeichnen.
  • Das physikalische Format 105 stellt, wie in Fig. 1 gezeigt, das Zugriffschema dar, das von der Zugriffssteuerung eingesetzt wird, um Zugriff auf den Flashspeicher zu erlangen und das logische Format 106 stellt das Zugriffsschema dar, das von der CPU eingesetzt wird, um Zugriff auf das Fenster-basierende Flashspeicher-Speichersystem zu erlangen. Der Datenspeicherplatz des Flashspeichers ist in insgesamt 8192 physikalische Blöcke unterteilt, wobei jeder physikalische Block aus 32 Sektoren zusammengesetzt ist. In dem physikalischen Format 105 sind diese physikalischen Blöcke 107 von 0 bis 8191 durchnumeriert und ihre relativen Blöcke 108 sind durch 512 Blöcke in eine Vielzahl an Untergruppen zusammengefasst. Mit Ausnahme von Fenster #15 sind die zugeordneten Blöcke eines jeden Fensters von 0 bis 511 durchnumeriert und die relativen Blöcke in dem redundanten reservierten Gebiet 121 sind von 512 bis 703 durchnumeriert. Das logische Format 106 schließt eine Anzahl an logischen Blöcken 110 (die von 0 bis 7999 durchnumeriert sind) oder eine Anzahl an logischen relativen Blöcken 109 (die durch 512 Blöcke in eine Vielzahl an Untergruppen zusammengefasst sind) ein. Mit Ausnahme von Fenster #15 sind die zugeordneten logischen Blöcke eines jeden Fensters von 0 bis 511 durchnumeriert. Da jeder logische Block aus 32 logischen Sektoren zusammengesetzt ist, sind die logischen Sektoren 112 von 0 bis 255999 durchnumeriert. Die relativen logischen Sektoren 111 sind durch 16384 Sektoren in eine Vielzahl an Untergruppen zusammengefasst. Mit Ausnahme von Fenster #15 sind die zugeordneten logischen Blöcke eines jeden Fensters von 0 bis 16383 durchnumeriert. Es kann in Fig. 1 erkannt werden, dass das logische Adressierungsverfahren der CPU nicht in der Lage sein würde, Zugriff auf das redundante reservierte Gebiet 121 zu erlangen.
  • Jedes Fenster schließt drei Arten von Blöcken ein: Datenblöcke, Schreibböcke und Ersatzblöcke. Wenn es gewünscht wird, einen Schreibvorgang auf den vorherigen Datenblock auszuführen, wird der Schreibvorgang zuerst an den Schreibblock gerichtet und wenn der Schreibblock voll ist und eine anderer Schreibvorgang beabsichtigt wird, dann wird der Schreibblock den vorherigen Datenblock ersetzen und der vorherige Datenblock wird in einen Ersatzblock gelöscht, der dann verwendet werden kann, als ein Schreibblock für einen anderen Schreibvorgang zu dienen.
  • Wie in Fig. 1 gezeigt schließt Fenster 0 insgesamt 512 Datenblöcke in Fenster #0 100 als auch einen Schreiblock und einen Ersatzblock ein, die dem Bereich für dynamische Verknüpfungen 101 zugeordnet sind. Die Fensterinformationen von jedem Fenster schließen eine Datenblock- Zu-Logischen-Block-Abbildungstabelle, den Schreibblock-Anzeiger und den Ersatzblock- Anzeiger ein. In dem Fall eines Fensters mit 512 Datenblöcken, einem Schreibblock und einem Ersatzblock ist die Verwendung zweier Sektoren notwendig, um alle Fensterinformationen dieses Fensters aufzuzeichnen. Diese zwei Sektoren werden verwendet, um die Abbildungsbeziehungen zwischen den 512 Datenblöcken und den logischen Blöcken in ihrem Nutzerdaten-Bereich aufzuzeichnen und werden ferner verwendet, um die Schreiblock-Anzeiger und die Ersatzblock-Anzeiger in ihrem redundanten Bereich aufzuzeichnen.
  • Fig. 2 ist ein schematisches Diagramm, das eine bevorzugte Ausführungsform der Datenstruktur des redundanten Bereichs in dem Datenblock oder Schreibblock zeigt.
  • Die relative logische Blocknummer 201 wird wie gezeigt verwendet, um die relative logische Blocknummer festzuhalten, die auf diesen Block abgebildet ist. Die Fensternummer 202 wird verwendet, um das Fenster anzuzeigen, das diesem Block zugeordnet ist. Der Zykluszähler 203 wird verwendet, um anzuzeigen, ob Daten von alter Version oder neuer aktualisierter Version sind und er wird in solch einer Weise betrieben, dass während jedem Schreibvorgang der Inhalt des Zykluszählers des Schreibblocks gleich dem Zykluszähler des Schreibblocks um eins erhöht gesetzt wird. Das Phasenregel-Flag 204 wird verwendet, um die Position des Sektors festzuhalten, der verwendet wird, die Fensterinformationen des gegenwärtig aktiven Fensters zu sichern und dessen Wert verwendet werden kann, um anzuzeigen, ob der vorherige Sicherungsvorgang der Fensterinformationen erfolgreich ist. Der Prüfsummencode 205 wird verwendet, um den Prüfsummencode der vorhergehenden Daten festzuhalten. Das Datenfehler- Flag 206 wird verwendet, um anzuzeigen, ob die Daten, die in dem Nutzerdaten-Bereich in dem Sektor gespeichert sind, korrekt sind oder nicht. Der Fehlerkorrekturcode 208 wird verwendet, um den Fehlerkorrekturcode für den Nutzerdaten-Bereich in dem Sektor zu speichern.
  • Fig. 3 ist ein schematisches Diagramm, das eine bevorzugte Ausführungsform der Datenstruktur des Schreibblock-Anzeigers oder Ersatzblock-Anzeigers zeigt.
  • Die relative Blocknummer 301 wird wie gezeigt verwendet, um die relative logische Blocknummer festzuhalten, die auf diesen Block abgebildet ist. Die relative logische Sektornummer 302 wird verwendet, um anzuzeigen, ob der Block ein Ersatzblock ist (wenn ihr Wert 0xFFFF ist), oder um die Position des Sektors anzuzeigen, welcher der Letzte in den Schreibblock geschriebene ist. Die Fensternummer 303 wird verwendet, um das Fenster anzuzeigen, das diesem Block zugeordnet ist. Der Schreibblock-Zykluszähler 304 wird verwendet, den gegenwärtigen Wert des Zykluszählers des Schreibblocks festzuhalten. Der Prüfsummencode 305 wird verwendet, um den Prüfsummencode unter Ausschluss von Blockfehler-Flag und dem Fehlerkorrekturcode zu speichern. Der Fensterinformations- Zykluszähler 306 kann verwendet werden, um anzuzeigen, welcher Fensterinformations-Block die neusten Daten enthält. Das Blockfehler-Flag 307 wird verwendet, um anzuzeigen, ob der Block ungültig ist. Der Fehlerkorrekturcode 308 wird verwendet, um den Fehlerkorrekturcode für den Nutzerdaten-Bereich in dem Sektor zu speichern.
  • Der Zugriffsvorgang auf den Flashspeicher wird durch drei Module ausgeführt: ein Fenster- Aufbaumodul, ein Fenster-Lese-/Schreib-Modul und ein Flashspeicher-Zugriffsmodul. Das Fenster-Aufbaumodul ist verantwortlich, die Fensterinformationen eines Nutzer-gewählten Fensters in das SRAM zu laden. Das Fenster-Lese-/Schreib-Modul wird verwendet, zu bestimmen, auf welchen Block in dem Flashspeicher in Reaktion auf die Anforderung der CPU zuzugreifen sein wird. Das Flashspeicher-Zugriffsmodul ist in der Lage, direkte Lese-, Schreib-, Lösch- und Statusprüfvorgänge an dem Flashspeicher in Reaktion auf Anforderungen von anderen Modulen auszuführen. Dies kann helfen, die Betriebskomplexität der anderen Module zu vereinfachen. Zum Beispiel zeigt das Flussdiagramm von Fig. 4 eine bevorzugte Ausführungsform des Verfahrens, das durch jedes in dem Flashspeicher-Speichersystem der Erfindung während eines Lese-/Schreib-Vorgangs ausgeführt wird. Wie gezeigt, besteht der erste Schritt 401 darin, das Fenster-Aufbaumodul auszuführen, der zweite Schritt 402 besteht darin, das Fenster-Lese-/Schreib-Modul auszuführen, und der dritte Schritt 403 besteht darin, zu prüfen, ob auf alle angeforderten Sektoren zugegriffen wurde; wenn NEIN, kehrt das Verfahren zu dem Schritt 401 zurück; und wenn JA, endet das Verfahren. Während diesem Verfahren ist der Aufruf des Flashspeicher-Zugriffsmoduls ist in dem ersten Unterschritt des Schritts 401 und dem dritten Unterschritt des Schritts 402 enthalten.
  • Bei der Ausführung des Fenster-Aufbaumoduls ist das primäre Anliegen, alle Fenster, die in dem SRAM gespeichert sind, effektiv zu verwalten. Um die Umschaltzeit zwischen unterschiedlichen Fenstern in dem Flashspeicher und dem SRAM zu verringern, ist es notwendig, mindestens zwei Sätze an Fensterinformationen zu laden, die zweien Fenstern zugeordnet sind, die geschaltet werden. Obwohl das Laden einer größeren Anzahl an Sätzen an Fensterinformationen die Schaltzeit verringern würde, würde dies die SRAM-Kosten unerwünschterweise erhöhen. In einer bevorzugten Ausführungsform der Erfindung werden drei Sätze an Fensterinformationen geladen, die den dem Fenster #0 zugeordneten Satz an Fensterinformationen einschließen sollten, da Fenster #0 funktionelle mit dem DOS-Dateisystem-Betrieb in Verbindung steht.
  • Die Fensterinformationen, die von dem Flashspeicher in das SRAM geladen werden, schließen der Schreibblock-Anzeiger und Ersatzblock-Anzeiger (hier nachfolgend als Fenstervariablen bezeichnet) ein. Auf diese Fenstervariablen würden während des Betriebs des Fenster- basierenden Flashspeicher-Speichersystems häufig zugegriffen werden und daher, um die Softwareprogramm-Komplexität zu reduzieren und die Betriebseffizienz des Programmcodes zu steigern, ist es üblich, diesen Fenstervariablen feste Positionen zuzuweisen. Zum Beispiel sind die SRAM-Adressen 400-459, wie in Fig. 5 gezeigt, als ein reservierter Fenstervariablen-Bereich 501 für die Zuweisung der Fenstervariablen 503 des reservierten Fensters #0, der Fenstervariablen 504 des reservierten Fensters #1 und der Fenstervariablen SOS des reservierten Fensters #2 festgelegt.
  • Wenn es gewünscht wird, zu dem Fenster #0 als das Aktive zu schalten, da das Fenster #0 gegenwärtig ein reserviertes Fenster ist, ist es notwendig, die 20-Byte Fenstervariablen von den Adressen 400-419 zu den Adressen 20-39 zu verschieben, welche die Positionen in dem aktiven Fenstervariablen-Bereich 502 sind, in dem die Fenstervariable 1 bis Fenstervariable 20 zugeordnet sind. Dieser Vorgang sorgt dafür, dass Fenster #0 das aktive Fenster wird. Nachfolgend, wenn gewünscht wird, zu Fenster #2 als das aktive Fenster zu schalten, ist es notwendig, zuerst die Fenstervariablen des Fensters #0 (die gegenwärtig in dem aktiven Fenstervariablen-Bereich 502 gespeichert sind) zurück an ihre ursprünglichen Positionen zu verschieben und dann die Fenstervariablen des reservierten Fensters #2 zu dem aktiven Fenstervariablen-Bereich 502 zu verschieben, was dafür sorgt, dass Fenster #2 das aktive Fenster wird. Das Schalten zwischen den Fenstern erfordert für die Programmierung nur das Verschieben der Fenstervariablen 1-20, so dass es helfen kann, die Komplexität des benötigten Programmcodes zu reduzieren und somit die gesamte Betriebseffizienz des Fenstersystems zu steigern.
  • Wenn das Nutzer-gewählte Fenster nicht ein reserviertes ist, ist es notwendig, zuerst das aktive Fenster zurück in den reservierten Fensterbereich zu verschieben und dann ein reserviertes Fenster zu wählen und eine Sicherungskopie von ihm in dem Flashspeicher zu machen und schließlich die Fenstervariablen des Nutzer-gewählten Fensters in den aktiven Fenstervariablen- Bereich 502 zu laden. Dieses Sicherungsschema würde offensichtlich nicht garantieren, dass die nächste Verwendung der Fensterinformationen in dem Flashspeicher normal sein würde. Daher besteht dafür eine Notwendigkeit für eine Lösung, die es ermöglicht, einen korrekten Satz an Fensterinformationen in den SRAM bei der nächsten Verwendung der Fensterinformationen in dem Flashspeicher zu laden.
  • Die Erfindung stellt drei Weisen bereit, das vorstehend erwähnte Problem zu lösen: (A) ein schnelles Aufbauverfahren, (B) ein normales Aufbauverfahren und (C) ein Block-Zu-Block- Such-Aufbauverfahren.
  • (A) schnelles Aufbauverfahren
  • Dieses Verfahren ist in der Lage, schnell zu entscheiden, ob der gegenwärtige Satz an Fensterinformationen, der in dem Flashspeicher gespeichert ist, korrekt ist, basierend auf den folgenden Kriterien:
    • 1. der Fehlerkorrekturcode in dem Fensterinformations-Sektor ist korrekt;
    • 2. der Prüfsummencode in dem Fensterinformations-Sektor ist korrekt;
    • 3. das Ersatzblock, der durch den Ersatzblock-Anzeiger angezeigt wird, ist ein Block, der zuvor gelöst wurde;
    • 4. der Schreibblock, der durch den Schreibblock-Anzeiger angezeigt wird, enthält eine logische Blocknummer, einen Zykluszähler und Informationen über den letzten beschriebenen Sektor, die mit den Daten übereinstimmen, die in dem Schreibeblock- Anzeiger festgehalten sind; und
    • 5. der Schreibblock, der durch den Schreibblock-Anzeiger angezeigt wird, enthält ein Phasenregel-Flag-Wert, der ungleich zu der Adresse des ersten Banksektors in dem Fenster betreffenden Fensterinformations-Block ist.
  • Da die meisten Fensterinformationen normal sind, ist es in der Praxis möglich, den zugeordneten Satz an Fensterinformationen direkt in das SRAM zu laden und dieses schnelle Aufbauverfahren zu verwenden, um zu überprüfen, ob der Inhalt des geladenen Satzes an Fensterinformationen normal ist. Wenn anormal, kann eines der anderen zwei beiden Verfahren verwendet werden, um den Satz an Fensterinformationen korrekt in das SRAM zu laden.
  • (B) normales Aufbauverfahren
  • Wenn das vorherige schnelle Aufbau-Verfahren nicht anwendbar ist, kann statt dessen das normale Aufbau-Verfahren verwendet werden, das alle vorherig geladene Sätze an Fensterinformationen durchsucht, um den letzten verwendbaren Satz an Fensterinformationen zu finden. Da die Datenblock-Zu-logischen-Block-Abbildungstabelle in dem Satz an Fenster- informationen die Informationen über die Positionen aller zugeordneten Datenblöcke des Fensters enthält und der Schreibblock-Anzeiger und der Ersatzblock-Anzeiger die Informationen über die Positionen aller zugeordneten Schreibblöcke und Ersatzblöcke des Fensters enthalten, können alle zugeordneten Blöcke dieses Fensters gefunden werden, um zu helfen, einen korrekten Satz an Fensterinformationen aufzubauen und diesen Satz an Fensterinformationen in das SRAM zu laden.
  • Der vorstehend erwähnte verwendbare Satz an Fensterinformationen sollte die folgenden Kriterien erfüllen:
    • 1. die Daten, die in der Datenblock-Zu-logischen-Block-Abbildungstabelle des Satzes an Fensterinformationen enthalten sind, sollten keinen unkorrigierbaren Fehlerkorrekturcode enthalten; und
    • 2. der Prüfsummencode, der in dem Schreibblock-Anzeiger und Ersatzblock-Anzeiger des Satzes an Fensterinformationen enthalten ist, ist korrekt;
    (C) Block-Zu-Block-Such-Aufbauverfahren
  • Ein alternatives Verfahren zu dem schnellen Aufbau-Verfahren ist das Block-Zu-Block-Such- Aufbauverfahren, das alle wahrscheinliche Blöcke durchsucht, um jene Blöcke zurück zu finden, die zu dem Fenster gehören, und somit einen neuen Satz an Fensterinformationen aufbaut. Da die Blöcke eines Fensters nicht untereinander mit den Blöcken eines anderen Fensters austauschbar sind, kann das Suchverfahren nur durch den Fensternummern-Bereich und alle Blöcke geführt werden, die dynamisch zugeordnet wurden. Wenn ein Ersatzblock innerhalb des Bereichs für dynamische Verknüpfungen angeordnet ist, würde es schwierig sein, zu unterscheiden, zu welchem Fenster dieser Ersatzblock gehört. Daher ist es nur notwendig, zuerst alle Datenblöcke und Schreibblöcke zu finden, die diesem Fenster zugeordnet sind, und dann einen neuen Ersatzblock erneut zuzuordnen. Dies ermöglicht den Aufbau eines normalen Satzes an Fensterinformationen, der dann in das SRAM geladen wird.
  • Fig. 6 ist ein Flussdiagramm, das eine bevorzugte Ausführungsform der detaillierten Verfahrensschritte zeigt, die durch Schritt 401 durchgeführt werden, der das in Fig. 4 gezeigte Fenster-Aufbaumodul zum Laden von Fensterinformationen in das SRAM ausführt. In diesem Verfahren, besteht der erste Schritt 601 darin, zu überprüfen, ob das Nutzer-gewählte Fenster das gegenwärtig aktive Fenster ist, wenn JA wird der Fenstervorgang an das gegenwärtig aktive Fenster gerichtet, während wenn NEIN, das Verfahren zu dem nächsten Schritt 602 geht, in dem das gegenwärtig aktive Fenster zurück zu der reservierten Fensterposition verschoben wird. Das Verfahren geht dann zu dem Schritt 603, in dem überprüft wird, ob das Nutzer-Gewählte Fenster eines der reservierten Fenster ist; wenn JA, geht das Verfahren zu Schritt 609, in dem das Nutzer-gewählte Fenster als das aktive Fenster geschaltet wird; während wenn NEIN, das Verfahren zu dem Schritt 604 geht, in dem eines der reservierten Fenster gewählt wird und eine Sicherung davon in dem Flashspeicher kopiert wird. Das Verfahren geht dann zu dem Schritt 605, in dem das schnelle Aufbauverfahren verwendet wird, um den Satz an Fensterinformationen des Nutzer-gewählten Fensters in das SRAM zu laden. Wenn das Laden erfolgreich ist, springt das Verfahren zum Ende; während wenn fehlgeschlagen, geht das Verfahren zu dem nächsten Schritt 606, in dem statt dessen das normale Aufbau-Verfahren verwendet wird. Wenn die Verwendung des normalen Aufbau-Verfahrens erfolgreich ist, springt das Verfahren zum Ende, während, wenn fehlgeschlagen, geht das Verfahren zu dem nächsten Schritt 607, in dem das Block-Zu-Block-Such-Aufbauverfahren eingesetzt wird, die erforderlichen Fensterinformationen aufzubauen und eine Sicherung davon in den Flashspeicher zu kopieren. In den Endschritt 609 werden die Fensterinformationen in den aktiven Fensterbereich von dem SRAM geladen, um zu veranlassen, dass das Nutzer-gewählte Fenster als das aktive Fenster geschaltet wird.
  • Fig. 7 ist ein Flussdiagramm, das eine bevorzugte Ausführungsform der detaillierten Verfahrenschritte zeigt, die durch den in Fig. 4 gezeigten Schritt 402 zum Ausführen des Lese-/Schreib-Moduls durchgeführt werden. Der erste Schritt 701 besteht darin, zu entscheiden, ob der Schreibvorgang an den ursprünglichen Schreibblock gerichtet ist; wenn JA, geht das Verfahren zu dem Schritt 702; während, wenn NEIN, das Verfahren zu dem Schritt 705 geht. In dem Schritt 702 wird entschieden, ob der Überschreibvorgang stattfindet; wenn JA, geht das Verfahren zu dem Schritt 703; während, wenn NEIN, das Verfahren zu dem Schritt 707 geht. In dem Schritt 707 wird überprüft, ob ein Vor-Schreibvorgang auszuführen ist. In dem Schritt 703 wird der ursprüngliche Schreibblock gesäubert; und dann geht das Verfahren zu dem Schritt 704, in dem der Ersatzblock dem ursprünglichen Schreibblock zugeordnet wird und das Verfahren kehrt dann zu dem Schritt 701 zurück.
  • In dem Schritt 701, wenn das Ergebnis NEIN ist, geht das Verfahren zu dem Schritt 705, in dem der ursprüngliche Schreibblock gesäubert wird, und dann geht das Verfahren zu dem Schritt 706, in dem der Ersatzblock dem gegenwärtig zugegriffenen Schreibblock zugeordnet wird; und dann geht das Verfahren zu dem Schritt 707, in dem überprüft wird, ob ein Vor-Schreibvorgang auszuführen ist; wenn NEIN, geht das Verfahren zu dem Schritt 709; während, wenn JA, das Verfahren zu dem Schritt 708 geht, in dem ein Vor-Schreibvorgang ausgeführt wird; und das Verfahren geht dann zu dem Schritt 709.
  • In dem Schritt 709 wird ein Schreibvorgang ausgeführt, um Daten in die Schreibblöcke zu schreiben. Dieser Schreibvorgang wird fortgeführt, bis der gegenwärtige Schreibblock voll ist oder die geschriebenen Daten vollständig sind. Das Verfahren geht dann zu dem Schritt 710, in dem überprüft wird, ob alle Daten des Nutzer-gewählten Fensters geschrieben wurden; wenn NEIN, geht das Verfahren zu dem Schritt 701 zurück; anderenfalls endet das Verfahren.
  • Das in Schritt 703 und Schritt 705 ausgeführte Säubern des ursprünglichen Schreibblocks schließt folgende Unterschritte ein:
    • 1. Füllen jedes leeren Sektors in dem Schreibblock mit den Daten in dem Datenblock;
    • 2. Ändern des Schreibblocks zu einem Datenblock (d. h. aktualisieren des Inhalts der Datenblock-Zu-logischen-Block-Abbildungstabelle in den Fensterinformationen); und
    • 3. Löschen des ursprünglichen Datenblocks, um ihn in einen Ersatzblock zuzuwandeln.
  • Der Vor-Schreibvorgang, der in Schritt 707 ausgeführt wird, wird verwendet, um die Sektordaten in die Datenblöcke zu verschieben, die nicht von der CPU in die Schreibblöcke geschrieben werden.
  • Der in Fig. 4 gezeigte Schritt 402 zum Ausführen des Fenster-Lese-/Schreib-Moduls schließt einen relativ einfachen Lesevorgang mit ein, der zuerst überprüft, ob die angeforderten Daten in den Schreibblöcken gespeichert sind; wenn JA, wird ein Lesevorgang auf den Schreibblock ausgeführt, um die gewünschten Daten zu Lesen; während, wenn NEIN, wird angezeigt, dass die angeforderten Daten in den Datenblöcken gespeichert sind.
  • Ein paralleler pipeline-artiger Betrieb wird verwendet, um den Lese-/Schreib-Vorgang auszuführen, um die Zugriffsgeschwindigkeit zu steigern. Die Umsetzung dieses parallelen pipeline-artigen Betriebs sollte folgende Systemvoraussetzungen erfüllen:
    • 1. mindestens zwei unabhängige Zwischenspeicher in einer Hardware-Konfiguration, wobei, wenn ein Zwischenspeicher für die Kommunikation mit der CPU verwendet wird, der andere Zwischenspeicher in der Lage ist, gleichzeitig einen Zugriffsvorgang auf den Flashspeicher auszuführen; und
    • 2. mindestens zwei aufeinander folgende Sektoren in dem Nutzer-gewählten Fenster, auf die von der CPU zugegriffen wird.
  • Der Daten-Lesevorgang der CPU von einem Sektor in dem Flashspeicher schließt drei Phasen ein. In der ersten Phase berechnet der Mikroprozessor, wo die Adresse des Sektors in dem Flashspeicher angeordnet ist, der die von der CPU angeforderten Daten speichert. In der zweiten Phase gibt der Mikroprozessor eine Leseanforderung an den Flashspeicher heraus, wartet dann, bis der Flashspeicher bereit ist und holt dann die angeforderten Daten von dem Flashspeicher und setzt diese in den Zwischenspeicher. Während dieser Phase wird ebenfalls eine Fehlerkorrektur durchgeführt, um irgendwelche notwendigen Korrekturen an den Daten auszuführen. In der dritten Phase wird ein Fertig-Signal an die CPU ausgegeben, um die CPU zu benachrichtigen, dass der Zwischenspeicher bereit ist, Daten zu übertragen, indem der CPU ermöglicht wird, die angeforderten Daten von dem Sektor in dem Zwischenspeicher zu holen.
  • Angenommen, die erste Vorgangs-Phase benötigt 25 ms (Mikrosekunden), um abgeschlossen zu sein, die zweite Vorgangs-Phase benötigt 65 ms, um abgeschlossen zu sein und die dritte Vorgangs-Phase benötigt 100 ms, um abgeschlossen zu sein. Dann benötigt der Lesevorgang an jedem Sektor insgesamt 190 ms. Wie in Fig. 8 für den Lesevorgang 801 auf den ersten Sektor gezeigt, benötigt er 190 ms, um angeschlossen zu sein und für den nachfolgenden Lesevorgang 802 auf den gleichen Sektor, werden ebenfalls 190 ms benötigt, um abgeschlossen zu sein. Daher, wenn es insgesamt n zu lesende Sektoren gibt, wird der Gesamt-Lesevorgang auf diese n Sektoren 190.n ms benötigen, um abgeschlossen zu sein.
  • Fig. 9 ist ein Flussdiagramm, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das durch die Erfindung zum Lesen von Daten von einer Anzahl an Sektoren durch einen parallelen pipeline-artigen Betrieb ausgeführt wird. Der Lesevorgang 901 auf den ersten Sektor benötigt drei Phasen und 190 ms, um abgeschlossen zu sein. In der bevorzugten Ausführungsform, besteht die Phase 1 darin, einen angeforderten Sektor zu finden, der durch eine Datenzugriffsanfordernde Komponente angefordert wird, und besteht die Phase 2 darin, den angeforderten Sektor von dem Flashspeicher in einen der Zwischenspeicher-Bereiche zu laden, und besteht die Phasen 3 darin, den angeforderten Sektor an die Datenzugriffs-anfordernde Komponente zu übertragen, der in den Zwischenspeicher-Bereich geladen ist. Nachdem der Lesevorgang 901 mit der zweiten Phase 902 fortgeführt wird, wird die erste Phase 903 des Lesevorgangs auf den zweiten Sektor begonnen und nachdem der Lesevorgang 901 mit der dritten Phase 904 fortgeführt wird, werden die zweite Phase 905 und die dritte Phase 906 des Lesevorgangs auf den zweiten Sektor nacheinander begonnen. Als ein Ergebnis benötigt der Gesamt-Lesevorgang 907 auf den zweiten Sektor nur 100 ms (d. h. die Gesamtzeit der dritten Phase). Ferner, nachdem der Lesevorgang 907 auf den zweiten Sektor mit der dritten Phase 908 fortgeführt wird, werden die zweite Phase 909 des Lesevorgangs auf Sektor 3 und die erste Phase 910 des Lesevorgangs auf Sektor 4 nacheinander begonnen. Als ein Ergebnis benötigt der Gesamt-Lesevorgang auf Sektor 3 ebenfalls nur 100 ms. Daher kann gefolgert werden, dass für n Sektoren der Gesamt-Lesevorgang auf diese n Sektoren 190+100.(n-1) ms benötigt, um abgeschlossen zu sein.
  • Fig. 10 ist ein Flussdiagramm, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das durch die Erfindung zum Ausführen eines Lesevorgangs durch einen parallelen pipeline-artigen Betrieb ausgeführt wird. Der erste Schritt 1001 besteht wie gezeigt drin, die erste Phase fortzuführen, um die Adresse des Sektors zu berechnen, auf den zuzugreifen ist. In dem nächsten Schritt 1002 wird die zweite Phase begonnen, aber nur die erste Hälfte des Verfahrens wird ausgeführt; und der nächste Schritt 1003 besteht darin, die Adresse des nächsten Sektors zu berechnen, auf den zuzugreifen ist. In dem nächsten Schritt 1004 wird die zweite Hälfte des Verfahrens der zweiten Phase ausgeführt, um die zweite Verfahrensphase anzuschließen. In den nächsten Schritt 1005 wird die CPU überprüft, um zu erkennen, ob sie alle Daten von dem vorhergehenden Sektor in dem Zwischenspeicher empfangen hat (wenn der gegenwärtige Sektor der erste Sektor ist, wird dieser Schritt ignoriert) und die CPU wird dann benachrichtigt, die Daten von diesem Sektor in dem Zwischenspeicher zu empfangen. In dem nächsten Schritt 1006 wird überprüft, um zu erkennen, ob weiterhin verbleibende zu lesende Daten vorhanden sind; wenn JA, geht das Verfahren zu dem Schritt 1002 zurück; während, wenn NEIN, das Verfahren zu dem nächsten Schritt 1007 geht, wobei die CPU fortschreitet, Daten von dem Zwischenspeicher zu empfangen, bis alle Daten empfangen sind. Das Verfahren endet dann.
  • Der Daten-Schreibvorgang der CPU von einem Sektor in das Flashspeicher-Speichersystem schließt ebenfalls drei Phasen ein. In der ersten Phase gibt der Mikroprozessor eine Anfrage an die CPU für eine Datenübertragung heraus, um die CPU zu veranlassen, einen Sektor an Daten an den Zwischenspeicher zu übertragen. In der zweiten Phase berechnet der Mikroprozessor die Adresse des Sektors, in dem die Daten hinein zu schreiben sind. In der dritten Phase wird der vorhergehende Schreibvorgang überprüft, um zu erkennen, ob alle Daten korrekt geschrieben wurden und dann wird eine Schreibanforderung herausgegeben, um Daten in den Flashspeicher zu schreiben.
  • Fig. 11 ist ein Flussdiagramm, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das durch die Erfindung zum Schreiben von Daten an einen Flashspeicher durch ein paralleles pipeline-artiges Betrieb ausgeführt wird. In der bevorzugten Ausführungsform wird der Schreibvorgang in drei Phasen aufgeteilt. Die Phase 1 besteht darin, um einen Schreib-Sektor zu übertragen, der in den Flashspeicher in einen der Zwischenspeicher-Bereiche zu schreiben ist. Die Phase 2 besteht darin, um die Adresse des Schreib-Sektors in dem Flashspeicher zu berechnen. Die Phase 3 besteht darin, um zu überprüfen, ob der vorhergehende Schreibvorgang auf den Flashspeicher korrekt ist und dann den Schreib-Sektor in den Zwischenspeicher-Bereich an den Flashspeicher zu übertragen. In der bevorzugen Ausführungsform wird überdies der Schreibvorgang in Phase 1 von Sektor 1 (1101) mit der Phase 2 von Sektor 1 (1102) fortgeführt, bevor die Phase 1 (1101) endet und die Phase 2 (1102) ende, bevor die Phase 1 (1101) ebenfalls endet. Während des Schreibvorgangs in Phase 1 von Sektor 2 (1103), werden die Phase 3 von Sektor 1 (1104) und die Phase 2 von Sektor 2 (1105) nacheinander begonnen. Die Phase 2 von Sektor 2 (1105) endet zuerst und dann enden die Phase 3 von Sektor 1 (1104) und die Phase 1 von Sektor 2 (1103) nacheinander. Allen anderen Phasen, um den Schreibvorgang zu beenden, werden gestartet und enden nacheinander wie dies. Schließlich wird die Phase 3 von dem letzten Sektor (1109) gestartet und dann individuell beendet.
  • Fig. 12 ist ein Flussdiagramm, das eine bevorzugte Ausführungsform des Verfahrens zeigt, das durch die Erfindung zum Schreiben von Daten durch einen parallelen pipeline-artigen Betrieb ausgeführt wird, das die detaillierten Unterschritte in dem Schritt 709 des Flussdiagramms von Fig. 7 zeigt. Zu Beginn des Flussdiagramms von Fig. 7 werden die Daten in dem ersten Sektor an den Zwischenspeicher übertragen. In dem Flussdiagramm von Fig. 12 besteht der erste Schritt 1201 darin, die Adresse des Sektors zu berechnen, auf den in dem Flashspeicher zuzugreifen ist. Der nächste Schritt 1202 besteht darin, zu warten, bis die CPU einen Zwischenspeicher füllt. Und dann wird überprüft, ob verbleibende Daten vorhanden sind, die nicht in den Zwischenspeicher versetzt wurden; wenn JA, fährt die CPU fort, die Daten von einem nächsten Sektor an den Zwischenspeicher zu übertragen. In dem nächsten Schritt 1203 wird überprüft, ob der vorhergehende Schreibvorgang korrekt ausgeführt wurde (wenn der gegenwärtige Sektor der erste Sektor ist, wird dieser Schritt ignoriert) und dann werden ein sequentielles Eingabe-Signal und ein Adress-Signal ausgegeben, um zu veranlassen, dass die Daten in dem Zwischenspeicher an den Flashspeicher übertragen werden. Der nächste Schritt 1204 besteht dann darin, die Adresse eines nächsten Sektors in dem Flashspeicher zu berechnen, auf den nachfolgend zu dem vorhergehenden Sektor zuzugreifen ist. Der nächste Schritt 1205 besteht dann darin, auf dem Abschluss der Datenübertragung von dem Zwischenspeicher an den Flashspeicher zu warten und dann ein Schreibfreigabe-Signal an den Flashspeicher herauszugeben. In dem nächsten Schritt 1206 wird überprüft, ob der Schreibblock voll ist; wenn JA, springt das Verfahren zu dem Schritt 1208; während, wenn NEIN, das Verfahren zu dem nächsten Schritt 1207 geht. In dem Schritt 1207 wird überprüft, ob alle Daten übertragen wurden; wenn NEIN kehrt das Verfahren zu dem Schritt 1202 zurück; während, wenn JA, das Verfahren zu dem Schritt 1208 geht. In dem Schritt 1208 wird überprüft, ob der vorhergehende Schreibvorgang korrekt ausgeführt wurde und dann wird das Verfahren beendet.
  • Während des parallelen pipeline-artigen Betriebs, wenn der Schreibvorgang scheitert, korrekt ausgeführt zu werden, werden die folgenden Unterschritte ausgeführt:
    • 1. Anhalten des parallelen pipeline-artigen Betriebs;
    • 2. Auffinden eines verwendbaren Ersatzblocks;
    • 3. Verschieben der verwendbaren Sektoren in dem fehlgeschlagenen Block in den Ersatzblock;
    • 4. Setzen des Blockfehler-Flags des fehlgeschlagenen Blocks und Ersetzen des fehlgeschlagenen Blocks durch den Ersatzblock, der durch Schritt (2) erhalten wird; und
    • 5. erneut Wiederaufnehmen des parallelen pipeline-artigen Betriebs.
  • Zusammenfassend weist die Erfindung folgende Vorteile auf. Die Erfindung nutzt drei Verfahren, d. h. ein schnelles Aufbauverfahren, normales Aufbauverfahren und Block-Zu-Block- Such-Aufbauverfahren um Fensterinformationen in das SRAM zu laden und nutzt parallelen pipeline-artigen Betrieb, um die Leistung von Lese-/Schreib-Vorgängen in solch einer Weise zu steigern, dass der Zugriffsvorgang auf den nächsten Sektor gestartet wird, wenn der Zugriffsvorgang auf den gegenwärtigen Sektor zur Hälfte abgeschlossen ist.
  • Der Erfindung ist unter Verwendung exemplarischer bevorzugter Ausführungsformen beschrieben. Es soll jedoch verstanden werden, dass der Schutzbereich der Erfindung nicht auf die offenbarten Ausführungsformen beschränkt ist. Es ist im Gegensatz beabsichtigt, verschiedene Modifikationen und ähnliche Anordnungen abzudecken. Der Schutzbereich der Ansprüche sollte die breiteste Interpretation gewähren, um alle solche Modifikationen und ähnliche Anordnungen zu umfassen.

Claims (22)

1. Management-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem mit einer Flashspeicher-Einheit, die einen Fensterinformations-Bereich einschließt, das in eine Anzahl an Fensterinformations-Blöcke aufgeteilt ist, wobei jeder Fensterinformations-Block verwendet wird, eine Anzahl an Sätzen an Fensterinformationen zu speichern, wobei jeder Satz an Fensterinformationen einem Fenster zugeordnet ist;
wobei das Management-Verfahren die Schritte umfasst:
1. Auswählen einer Untergruppe an Fensterinformations-Blöcken bei Start des Fenster- basierenden Flashspeicher-Speichersystems; und Auswählen eines Satzes an Fensterinformationen von den ausgewählten Fensterinformations-Blöcken und Laden des ausgewählten Satzes an Fensterinformationen in eine SRAM-Einheit;
2. Setzen eines Teils des ausgewählten Satzes an Fensterinformationen, der einem Nutzergewählten Fenster zugeordnet ist, in einen Variablenbereich eines aktiven Fensters von dem SRAM;
3. wenn das Nutzer-gewählte Fenster nicht das aktive Fenster ist, Verschieben des Teils des Satzes an Fensterinformationen, der in dem Variablenbereich des aktiven Fensters gespeichert ist, in einen Variablenbereich eines reservierten Fensters in dem SRAM; und
4. in dem Fall, dass das Nutzer-gewählte Fenster nicht irgendwelchen Sätzen an Fensterinformationen, die in dem SRAM gespeichert sind, zugeordnet ist, Auswählen eines der vorhergehenden Sätze an Fensterinformationen und Kopieren einer Sicherung davon in den Flashspeicher und Ersetzen der Sicherungskopie des Satzes an Fensterinformationen durch einen ausgewählten der Sätze an Fensterinformationen, die in dem Fensterinformations-Block gespeichert sind, der dem Nutzer-gewählten Fenster entspricht, um das Nutzer-gewählte Fenster als aktives Fenster zu setzen.
2. Management-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 1, wobei die Sätze an Fensterinformationen, die in das SRAM geladen werden, einen Satz an Fensterinformationen einschließen, der Fenster #0 entspricht.
3. Management-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 1, wobei jeder Satz an Fensterinformationen einschließt:
eine Datenblock-Zu-logischen-Block-Abbildungstabelle, die die Abbildungsbeziehungen zwischen einer Vielzahl an physikalischen Datenblöcken und einer Vielzahl an logischen Datenblöcken speichert;
einen Schreibblock-Anzeiger, dessen Inhalt verwendet wird, um den Status des Schreibblocks anzuzeigen, das gegenwärtig durch das Fenster verwendet wird, das dem Satz an Fensterinformationen zugeordnet ist; und
einen Ersatzblock-Anzeiger, dessen Inhalt verwendet wird, um den Status eines Ersatzblocks anzuzeigen, der gegenwärtig durch das Fenster verwendet wird, das dem Satz an Fensterinformationen zugeordnet ist.
4. Management-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 3, wobei das Laden der Sätze an Fensterinformationen in das SRAM die Unterschritte einschließt:
- nachdem die Sätze an Fensterinformationen geladen wurden, Überprüfen, ob der entsprechende Satz an Fensterinformationen basierend auf den Inhalten der Schreibblock- Anzeiger und der Ersatzblock-Anzeiger korrekt ist; und
- wenn der Satz an Fensterinformationen inkorrekt ist, dann Korrigieren des Inhalts des Satzes an Fensterinformationen basierend auf den Daten, die in dem Flashspeicher gespeichert sind; und dann Laden des korrigierten Satzes an Fensterinformationen in das SRAM.
5. Management-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 4, wobei das Überprüfen, ob der Satz an Fensterinformationen korrekt ist, die Unterschritte einschließt:
- Prüfen, dass ein Fehlerkorrekturcode in den Fensterinformationen korrekt ist;
- Prüfen, dass ein Prüfsummencode in den Fensterinformationen korrekt ist;
- Prüfen, dass der Ersatzblock ein gelöschter Block ist;
- Prüfen, dass die Inhalte einer logischen Blocknummer, eines Zykluszählers und eines zuletzt zugegriffenen Sektor übereinstimmend mit den Inhalten des Schreibblock- Anzeigers sind; und
- Prüfen, dass der Inhalt eines Phasenregel-Flags ungleich eines Werts ist, der verwendet wird, um den ersten leeren Sektor in dem Fensterinformations-Block anzuzeigen.
6. Management-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 4, wobei der Schritt des Korrigierens des Inhalts des Satzes an Fensterinformationen basierend auf den Daten, die in dem Flashspeicher gespeichert sind, den folgenden Unterschritt einschließt:
- Suchen aller Blöcke, die zu dem Fenster gehören, um den Satz an Fensterinformationen durch einen letzten verwendbaren Satz an Fensterinformationen wieder aufzubauen; wobei der verwendbare Satz an Fensterinformationen der Satz an Fensterinformationen ist, der einen korrigierbaren Fehlerkorrekturcode der Datenblock-Zu-logischen-Block- Abbildungstabelle enthält und einen korrekten Prüfsummencode in dem Schreibblock- Anzeiger und dem Ersatzblock-Anzeiger enthält.
7. Management-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 4, wobei der Schritt des Korrigierens des Inhalts des Satzes an Fensterinformationen basierend auf den Daten, die in dem Flashspeicher gespeichert sind, den folgenden Unterschritt einschließt:
- Auffinden alle Blöcke, die zu dem Fenster in dem Flashspeicher gehören und wieder Aufbauen des Satzes an Fensterinformationen.
8. Fenster-basierendes Flashspeicher-Speichersystem, umfassend:
ein Fenster-basierendes Gebiet, das in eine Anzahl an Fensterbereiche unterteilt ist, wobei jeder Fensterbereich eine Vielzahl an physikalischen Blöcken aufweist; und
ein redundantes reserviertes Gebiet, das einschließt:
einen Bereich für dynamische Verknüpfungen mit einer Vielzahl an dynamischen Zuweisungsblöcken, von denen jeder verwendet wird, um einen der Fenster zugeordnet zu sein;
einen Fensterinformations-Bereich, der einem der Fenster zugeordnet ist und verwendet wird, um den Satz an Fensterinformationen des zugeordneten Fensters zu speichern;
einen Informationsbereich für dynamische Verknüpfungen, der verwendet wird, um den Zuweisungsstatus der dynamischen Zuweisungsblöcke des Bereichs für dynamische Verknüpfungen aufzuzeichnen; und
einen Urladeinformations-Bereich.
9. Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 8, wobei der Urladeinformations-Bereich verwendet wird, die Adressen des Bereichs für dynamische Verknüpfungen des Fensterinformations-Bereichs und des Informationsbereichs für dynamische Verknüpfungen aufzuzeichnen.
10. Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 8, wobei der Urladeinformations-Bereich verwendet wird, die Gesamtzahl an logischen Sektoren des Fenster-basierenden Flashspeicher-Speichersystems aufzuzeichnen.
11. Zugriffs-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem, das eine Flashspeicher-Einheit einschließt, die ein Fenster-basierendes Gebiet und ein redundantes reserviertes Gebiet aufweist, die ein Fensterinformations-Bereich enthalten und eine Vielzahl an Zwischenspeicher-Bereichen einschließen, wobei der Fensterinformations-Bereich einer Vielzahl an Fenstern zugeordnet ist, wobei jedes Fenster eine Anzahl an physikalischen Blöcken aufweist und einem spezifischen Satz an Fensterinformationen zugeordnet ist; wobei jeder der physikalischen Blöcke eine Anzahl an Sektoren enthält;
wobei das Zugriffs-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem die Schritte einschließt:
(1) Laden des Satzes an Fensterinformationen eines Nutzer-gewählten Fensters in ein SRAM;
(2) Auffinden eines angeforderten Sektors, der durch eine Datenzugriffs-anfordernde Komponente angefordert wird, und dann Laden des angeforderten Sektors von dem Flashspeicher in einen der Zwischenspeicher-Bereiche;
(3) Übertragen des angeforderten Sektors, der in den Zwischenspeicher-Bereich geladen ist, an die Datenzugriffs-anfordernde Komponente; und
(4) Ausführen des Schritts (2) bis zu dem Schritt (3) für alle angeforderten Sektoren durch einen parallelen pipeline-artigen Betrieb.
12. Zugriffs-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 11, wobei, während irgendeiner der Zwischenspeicher-Bereiche momentan Daten an die Datenzugriffs-anfordernde Komponente überträgt, ein anderer der Zwischenspeicher- Bereiche in der Lage ist, gleichzeitig Zugriff auf den Flashspeicher zu erlangen.
13. Zugriffs-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 11, das, wenn der angeforderte Sektor in den Zwischenspeicher-Bereich geladen ist, ferner den Schritt umfasst:
- Ausführen eines Überprüfungs- und Fehlerkorrektur-Verfahrens auf den angeforderten Sektor mittels eines Fehlerkorrekturcodes.
14. Zugriffs-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 11, wobei der Schritt (2) ferner den Unterschritt umfasst:
- Berechnen der Adresse des angeforderten Sektors.
15. Zugriffs-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem, das eine Flashspeicher-Einheit einschließt, die ein Fenster-basierendes Gebiet und ein redundantes reserviertes Gebiet aufweist, die ein Fensterinformations-Bereich enthalten und eine Vielzahl an Zwischenspeicher-Bereichen einschließen, wobei der Fensterinformations-Bereich einer Vielzahl an Fenstern zugeordnet ist, wobei jedes Fenster ein Anzahl an physikalischen Blöcken aufweist und einem spezifischen Satz an Fensterinformationen zugeordnet ist, wobei jeder der physikalischen Blöcke eine Anzahl an Sektoren enthält;
wobei das Zugriffs-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem die Schritte umfasst:
1. Überragen eines Schreibsektors, der in den Flashspeicher zu schreiben ist, an einen der Zwischenspeicher-Bereiche und dann Berechnen der Adresse des Schreibsektors in dem Flashspeicher;
2. Überprüfen, ob der vorhergehende Schreibvorgang auf den Flashspeicher korrekt ist, und dann Übertragen des Schreibsektors an den Flashspeicher; und
3. Ausführen des Schritts (1) bis zu dem Schritt (2) durch parallelen pipeline-artigen Betrieb.
16. Zugriffs-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem gemäß Anspruch 15, wobei, während irgendeiner der Zwischenspeicher-Bereiche momentan den Schreibsektor empfängt, ein andere der Zwischenspeicher-Bereiche in der Lage ist, gleichzeitig Zugriff auf den Flashspeicher zu erlangen.
17. Zugriffs-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem, das eine Flashspeicher-Einheit einschließt, die ein Fenster-basierendes Gebiet und ein redundantes reserviertes Gebiet aufweist, die ein Fensterinformations-Bereich enthalten und eine Vielzahl an Zwischenspeicher-Bereichen einschließen, wobei der Fensterinformations-Bereich einer Vielzahl an Fenstern zugeordnet ist, wobei jedes Fenster ein Anzahl an physikalischen Blöcken aufweist und einem spezifischen Satz an Fensterinformationen zugeordnet ist, wobei jeder der physikalischen Blöcke eine Anzahl an Sektoren enthält, wobei das Zugriffs- Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem drei Phasen einschließt:
Phase 1: Auffinden eines angeforderten Sektors, der durch eine Datenzugriffsanfordernde Komponente angefordert ist;
Phase 2: Laden des angeforderten Sektors von dem Flashspeicher in einen der Zwischenspeicher-Bereiche; und
Phase 3: Übertragen des angeforderten Sektors, der in den Zwischenspeicher-Bereich geladen ist, an die Datenzugriffs-anfordernde Komponente;
wobei die drei Phasen aller angeforderten Sektoren durch einen parallelen pipelineartigen Betrieb ausgeführt werden;
wobei während einer Dauer des Ausführens der Phase 2 eines ersten angeforderten Sektors die Phase 1 eines zweiten angeforderten Sektors ausgeführt wird;
wobei während einer Dauer des Ausführens der Phase 3 eines ersten angeforderten Sektors die Phase 2 eines zweiten angeforderten Sektors ausgeführt wird und während einer Dauer des Ausführens der Phase 2 des zweiten angeforderten Sektors die Phase 1 eines dritten angeforderten Sektors ausgeführt wird.
18. Zugriffs-Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem, das eine Flashspeicher-Einheit einschließt, die ein Fenster-basierendes Gebiet und ein redundantes reserviertes Gebiet aufweist, die ein Fensterinformations-Bereich enthalten und eine Vielzahl an Zwischenspeicher-Bereichen einschließen, wobei der Fensterinformations-Bereich einer Vielzahl an Fenstern zugeordnet ist, wobei jedes Fenster ein Anzahl an physikalischen Blöcken aufweist und einem spezifischen Satz an Fensterinformationen zugeordnet ist, wobei jeder der physikalischen Blöcke eine Anzahl an Sektoren enthält, wobei das Zugriffs- Verfahren für ein Fenster-basierendes Flashspeicher-Speichersystem drei Phasen einschließt:
Phase 1: Übertragen eines Schreibsektors, der in den Flashspeicher zu schreiben ist, an einen der Zwischenspeicher-Bereiche;
Phase 2: Berechnen der Adresse des Schreibblocks in dem Flashspeicher; und
Phase 3: Überprüfen, ob der vorhergehende Schreibvorgang auf den Flashspeicher korrekt ist, und dann Übertragen des Schreibsektors in den Zwischenspeicher- Bereich an den Flashspeicher;
wobei die drei Phasen aller Schreibsektoren durch einen parallelen pipeline-artigen Betrieb ausgeführt werden;
wobei die Phase 2 des ersten Schreibsektors während einer Dauer der Phase 1 des ersten Schreibsektors ausgeführt wird, wobei die Phase 3 des ersten Schreibsektors während einer Dauer der Phase 1 des zweiten Schreibsektors ausgeführt wird, wobei die Phase 2 des zweiten Schreibsektors während einer Dauer der Phase 3 des ersten Schreibsektors ausgeführt wird und die Phase 3 des letzten Schreibsektors wird gestartet und dann individuell beendet.
DE10238566A 2001-08-07 2002-08-07 Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf Withdrawn DE10238566A1 (de)

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
DE10238566A1 true DE10238566A1 (de) 2003-03-20

Family

ID=21678979

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10238566A Withdrawn DE10238566A1 (de) 2001-08-07 2002-08-07 Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf

Country Status (6)

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

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US8171203B2 (en) * 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6728851B1 (en) * 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
TW539946B (en) * 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
JP3979486B2 (ja) * 2001-09-12 2007-09-19 株式会社ルネサステクノロジ 不揮発性記憶装置およびデータ格納方法
GB0123421D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB0123410D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123415D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123417D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
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 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
EP2506486A1 (de) * 2004-02-23 2012-10-03 Lexar Media, Inc. Sicherer kompakter Flash
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
JP4460967B2 (ja) * 2004-07-23 2010-05-12 株式会社東芝 メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
US7594063B1 (en) * 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
US7464306B1 (en) * 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
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 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
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
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
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
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
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
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
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
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
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
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
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management 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
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation 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
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes 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
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
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
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
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
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
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
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
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
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
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
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
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
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 云和恩墨(北京)信息技术有限公司 数据实时校验方法、装置、电子设备及存储介质

Family Cites Families (26)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE69534527T2 (de) Verfahren zur Verwendung von nicht-aneinandergrenzenden reservierten Speicherplatz zur Datenmigration in einem hierarchischen redundanten Datenspeichersystem
DE69022716T2 (de) Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür.
DE69533058T2 (de) Speicherplattenanordnung mit redundanter Speicherung und Verfahren zur inkrementalen Redundanzerzeugung während des Datenschreibens auf die Speicherplattenanordnung
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE60030872T2 (de) Verfahren und anordnung um atomische aktualisierungen durchzuführen durch verwendung eines logischen flaschspeichergerätes
DE68924833T2 (de) Verfahren und Anordnung zur Datenabbildung in einem Datenverarbeitungssystem mit virtuellem Speicher.
DE69111635T2 (de) Gerät und Verfahren zur Background-Speicherprüfung während des Systemanlaufs.
DE69534363T2 (de) Verfahren um Festplatten zu einer Festplattenanordnung hinzuzufügen und gleichzeitig die Datenerreichbarkeit zu gewährleisten
DE2749850C3 (de) Hybrider Halbleiterspeicher mit assoziativer Seitenadressierung, Seitenaustausch und Steuerung auf dem Chip
EP0163096B1 (de) Einrichtung zur Rettung eines Rechnerzustandes
DE3856090T2 (de) Aus Einheitsfunktionsgruppen aufgebaute Dateienspeicherungszuordnungstabellen für Dateienspeichereinheiten grosser Kapazität
DE60008929T2 (de) Schnellstart eines mikroprozessorbasierten systems
DE4143072C2 (de) Blockweise löschbarer nicht-flüchtiger Halbleiterspeicher
DE69034227T2 (de) EEprom-System mit Blocklöschung
DE60019903T2 (de) Speichersystem
DE3151745C2 (de)
DE69839126T2 (de) Verschiebung aufeinander folgender sektoren innerhalb eines datenblocks in einem flash-massenspeicher
DE102005019842B4 (de) System und Verfahren zum sequentiellen Schreiben von Daten in einen Flash-Speicher
DE602005000819T2 (de) Aufrechterhaltung der konsistenz einer fernkopie unter verwendung von virtualisierung
DE69126050T2 (de) Verfahren zur Aktualisierung oder Wiedergabe gespeicherter Datengruppen und System zu dessen Erzeugung
DE3750824T2 (de) Serialisierung von Unterbrechungsanforderungen in einer Datenverarbeitungsanlage mit virtuellem Speicher.
DE102006003261A1 (de) Speichersystem und Verfahren zur Datenzusammenführung
DE10297281T5 (de) Verfahren zum elementaren Aktualisieren einer Vielzahl von Dateien
DE102005031525A1 (de) Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8172 Supplementary division/partition in:

Ref document number: 10262038

Country of ref document: DE

Kind code of ref document: P

Q171 Divided out to:

Ref document number: 10262038

Country of ref document: DE

Kind code of ref document: P

8139 Disposal/non-payment of the annual fee