-
Die
vorliegende Erfindung bezieht sich auf eine Speichervorrichtung
und auf ein Speicherverfahren, die vorzugsweise für einen
Flash-Speicher vom NAND-Typ verwendet werden können.
-
In
herkömmlicher
Weise ist die Verwendung eines Flash-Speichers als Speichervorrichtung
zur Speicherung von Daten für
eine Computeranwendung und von Daten einer Standbildkamera, einer
Videokamera und dergleichen sowie von Audiodaten, wie Musik, vorgeschlagen
worden.
-
Dieser
Flash-Speicher speichert Daten durch eine elektrische Ladung, die
in einer Zelle akkumuliert ist, und er löscht Daten auf einer Blockbasis,
die eine Löscheinheit
bildet.
-
Im
Flash-Speicher sollte die Zelle vor dem Ausführen eines Daten-Einschreibens
in einem Löschzustand
sein, das heißt
Daten sollten dadurch gelöscht
worden sein, dass Elektronen aus der Zelle entfernt sind. Sodann
werden Daten in den Flash-Speicher geschrieben, wenn eine elektrische Ladung
in die Zelle einströmt,
um den Zellenzustand umzukehren.
-
Wie
oben beschrieben, werden im Flash-Speicher Daten dadurch gelöscht, dass
eine elektrische Ladung aus der Zelle auf einer Blockbasis abgeführt wird.
Eine starke Belastung wird auf den Speicher ausgeübt, wenn
die elektrische Ladung aus der Zelle entfernt wird. Wenn Daten geschrieben
werden, wird überdies
eine starke Belastung auf die Zelle ausgeübt, in die eine elektrische
Ladung einströmt.
-
Wenn
ein Daten-Neueinschreiben ohne Vornahme einer Bitumkehr wiederholt
wird oder wenn Daten nahezu unverändert bleiben, dann existieren folgerichtig
solche Zellen, in die eine elektrische Ladung jedes Mal strömt, und
Zellen, in die keine elektrische Ladung strömt. Damit tritt eine Abweichung
in der Zellenschädigung
innerhalb eines Blocks auf, die ihrerseits die Block-Betriebslebensdauer
verkürzen kann.
Insbesondere im Falle einer Management- bzw. Verwaltungsdatei oder
einer Verzeichnisdatei, in der häufig
eine Teilmodifikation vorgenommen wird, bewirkt ein Einschreiben
von Daten leicht eine Zellenschädigungsabweichung
innerhalb des Blocks.
-
Im
Gegensatz hierzu kann ein Flash-Speicher, in dem ein Neueinschreiben
von Daten in einem anderen bzw. unterschiedlichen Block vorgenommen wird,
in Betracht gezogen werden. Dabei tritt jedoch ein Problem auf;
es wird eine Verwaltungskonfiguration zur Verwendung eines unterschiedlichen
Blocks jedes Mal dann benötigt,
wenn Daten geschrieben werden. Das führt zu einer komplizierten
Konfiguration des Flash-Speichers.
-
Eine
Speichervorrichtung mit sämtlichen Merkmalen
des Oberbegriffs des Patentanspruchs 1 ist in der US-A-5 396 468
beschrieben.
-
Zusammenfassung
der Erfindung
-
Es
ist eine Aufgabe der vorliegenden Erfindung, eine Speichervorrichtung
und ein Speicherverfahren bereitzustellen, die eine durch Löschen/-Einschreiben
von Daten hervorgerufene Schädigung
einer bestimmten Zelle verhindern und damit eine Betriebslebensdauer
zu verlängern
ermöglichen.
-
Gelöst wird
diese Aufgabe durch eine Speichervorrichtung und ein Speicherverfahren
gemäß den beigefügten unabhängigen Patentansprüchen. Vorteilhafte
Merkmale der vorliegenden Erfindung sind in den entsprechenden Unteransprüchen festgelegt.
-
Kurze Beschreibung
der Zeichnungen
-
1 veranschaulicht in einem
Blockdiagramm eine Konfiguration einer Speichervorrichtung gemäß der vorliegenden
Erfindung.
-
2 veranschaulicht in einem
Blockdiagramm eine spezifische Konfiguration einer Speicherkarte
der Speichervorrichtung.
-
3 veranschaulicht schematisch
eine Konfiguration von Blöcken,
die als Löscheinheiten
in einer in der Speicherkarte vorgesehenen Flash-Speicher dienen.
-
4 veranschaulicht in einem
Flussdiagramm die Arbeitsweise, die ausgeführt wird, wenn Daten in die
Speicherkarte geschrieben werden.
-
5 veranschaulicht in einem
Flussdiagramm die Arbeitsweise, die ausgeführt wird, wenn Daten gelesen
werden, die in der Speicherkarte gespeichert sind.
-
Detaillierte Beschreibung
von bevorzugten Ausführungsformen
-
Nachstehend
wird die Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen
auf bevorzugte Ausführungsformen
der vorliegenden Erfindung gerichtet.
-
Wie
in 1 gezeigt, kann die
vorliegende Erfindung bei einer Speichervorrichtung angewandt werden
bzw. sein, die einen Host-Computer 1 und eine Speicherkarte 2 enthält.
-
Der
Host-Computer 1 schreibt Daten in die Speicherkarte 2 ein
und liest in der Speicherkarte 2 gespeicherte Daten aus.
-
Genauer
gesagt enthält
der Host-Computer 1, wie er in 1 dargestellt ist, eine Festplatte 11 zur
Speicherung von verschiedenen Daten, wie Standbilddaten und Audiodaten,
einen RAM-Speicher 12 (Speicher mit wahlfreiem Zugriff)
zur temporären
Speicherung und zum Auslesen von Daten von der Fest platte 11,
eine Anzeige-Schnittstelleneinrichtung 13 (nachstehend
als Anzeige-I/F bezeichnet), eine Anzeigevorrichtung 14 zur
Anzeige eines Bildes entsprechend Daten, die über die Anzeige-Schnittstelle 13 geliefert
werden, eine serielle Schnittstelleneinrichtung 15 (nachstehend
als serielle I/F bezeichnet) zur Ausführung einer Datenübertragung
zu und eines Datenempfangs von der Speicherkarte 2 über drei
Datenleitungen, einen Bus bzw. eine Busleitung 16 und eine
CPU 17 (zentrale Verarbeitungseinheit) zur Steuerung des
gesamten Systems.
-
Der
RAM-Speicher 12 speichert beispielsweise Daten von der
Festplatte 11 über
den Bus 16 temporär
zwischen und liefert die Daten, wenn dies gefordert ist, über den
Bus 16 an die serielle Schnittstelleneinrichtung 15.
-
Der
Anzeigevorrichtung 14 werden über den Bus 16 und
die Anzeige-Schnittstelleneinrichtung 13 Daten, die von
der Festplatte 11 gelesen sind, sowie Daten von der Speicherkarte 2 zugeführt, um
entsprechend diesen Daten ein Standbild bzw. ein Bewegtbild anzuzeigen.
-
Die
serielle Schnittstelleneinrichtung 15 überträgt über die drei Datenleitungen
Daten zur Speicherkarte 2 und empfängt über diese drei Datenleitungen
Daten von der Speicherkarte 2. Genauer gesagt überträgt die serielle
Schnittstelleneinrichtung 15 über eine erste Datenleitung
Daten, die in die Speicherkarte 2 einzuschreiben sind,
sowie Steuerdaten, und sie empfängt über die
betreffende Datenleitung Daten, die von der Speicherkarte 2 gelesen worden
sind. Über
eine zweite Datenleitung gibt die serielle Schnittstelleneinrichtung 15 ein
Statussignal STATUS ab, welches einen Schaltzustand entsprechend
einer seriellen Daten-DIO-Umschaltung angibt, umfassend Daten oder
Steuerdaten auf der ersten Datenleitung. Ferner überträgt die serielle Schnittstelleneinrichtung 15 über eine
dritte Datenleitung ein serielles Taktsignal SCLK, wenn die zuvor erwähnten Steuerdaten
und Daten übertragen
werden.
-
Die
CPU 17 steuert das Auslesen von Daten aus dem RAM-Speicher 12 und
der Festplatte 11 sowie das Einschreiben von Daten in den
RAM-Speicher 12 und dergleichen sowie die Steuerung einer Datenübertragung
zu und des Empfangs von der Speicherkarte 2. Die CPU 17 gibt
beispielsweise einen Registerbefehl ab, der dazu herangezogen wird zu
bestimmen, ob ein ein fehlerhaftes Löschen verhindernder Schalter
der Speicherkarte (was im Einzelnen später beschrieben wird) in einen
Schreibschutzmodus gesetzt ist, und sie gibt einen bestimmten Datenschreibbefehl
mit einer Adressenspezifikation an die Speicherkarte 2 ab.
-
Andererseits
ist, wie in 2 gezeigt,
die Speicherkarte 2 mit dem zuvor erwähnten Host-Computer 1 neben
den zuvor erwähnten
drei Datenleitungen durch zwei Plus-Elektrode-Gleichspannungsversorgungsleitung
Vcc, eine Erdungsleitung INT, eine Minus-Elektrode-Gleichspannungsleitung
Vss und zwei reservierte Leitungen verbunden. Infolgedessen wird
der Speicherkarte 2 über
diese Gleichspannungsversorgungsleitungen eine Versorgungsspannung
vom Host-Computer 1 zugeführt, um die jeweiligen Schaltungen
in der Speicherkarte 2 steuern zu können.
-
Hier
enthält
die Speicherkarte 2, wie sie in 2 gezeigt ist, eine integrierte Steuerschaltung bzw.
ein Steuer-IC 21 für
den Empfang von Daten und Steuerdaten von dem zuvor erwähnten Host-Computer 1,
einen Flash-Speicher 22 zur Datenspeicherung und einen
ein fehlerhaftes Löschen verhindernden
Schalter 23, der ein fehlerhaftes Löschen von Daten verhindert,
die im Flash-Speicher 22 gespeichert sind.
-
Das
Steuer-IC 21 bestimmt, ob der ein fehlerhaftes Löschen verhindernde
Schalter 23 in den Schreibschutz-EIN- oder -AUS-Zustand gesetzt ist, bevor
von dem Host-Computer 1 übertragene Daten in den Flash-Speicher 22 geschrieben
werden.
-
Lediglich
dann, wenn der Schreibschutz sich im AUS-Zustand befindet, werden
die Daten in den Flash-Speicher geschrieben.
-
Der
Flash-Speicher 22 besteht beispielsweise aus einem Flash-Speicher vom NAND-Typ.
Wie in 3 gezeigt, werden
in dem Flash-Speicher 22 von dem Host-Computer 1 her übertragene
Daten in jedem der Blöcke
gespeichert, die als Löscheinheiten dienen.
Jeder der Blöcke
1, 2, ..., n besteht aus einem Datenbereich zur Speicherung einer
Seite (512 Bytes) der von dem Host-Computer 1 übertragenen Daten
und einem redundanten 16-Bytes-Bereich. In dem redundanten Bereich
wird eine Management- bzw. Verwaltungsinformation zur Verwaltung
der Daten gespeichert, die im Datenbereich des Blocks enthalten
sind. Diese Verwaltungsinformation enthält beispielsweise ein Block-Flag,
welches einen Datenschreibzustand angibt, eine Kettungsinformation,
die ein Kettungsziel angibt, wenn eine Vielzahl von Blöcken eine
einzelne Datei bildet, und ein Umkehr-Flag, welches angibt, ob Daten
umgekehrt sind, wenn sie in den Datenbereich geschrieben werden
bzw. sind. Diese Verwaltungsinformationsposten werden durch den
Host-Computer 1 gelesen, um dazu herangezogen zu werden,
einen Zustand des Flash-Speichers 22 zu bestimmen, wenn
ein Auslesen und ein Einschreiben von Daten ausgeführt werden.
-
Hier
enthält
das Steuer-IC 21 genauer gesagt eine Serien/Parallel-Parallelserien-Schnittstellen-Folgesteuereinrichtung 31 (nachstehend
als S/P & P/S-Folgesteuereinrichtung
bezeichnet), einen Seitenpuffer zur temporären Speicherung von Daten von
der S/P & P/S-Folgesteuereinrichtung 31,
eine Flash-Schnittstellenfolgesteuereinrichtung
(nachstehend als Flash-I/F-Folgesteuereinrichtung
bezeichnet) zur Abgabe von Daten von dem Seitenpuffer 32 an
den Flash-Speicher 22, einen ECC-Codierer/Decoder 34 zur Ausführung einer
Fehlerkorrektur, einen Befehlsgenerator 46 zur Erzeugung
eines bestimmten Steuerbefehls, einen Konfigurations-ROM-Speicher 36 (Festwertspeicher),
der eine Versions-Information und dergleichen enthält, und
einen Oszillator 37 zur Abgabe eines Taktsignals an die
jeweiligen Schaltungen.
-
Die
S/P & P/S-Folgesteuereinrichtung 31 ist über die
zuvor erwähnten
ersten bis dritten Datenleitungen mit der seriellen Schnittstelleneinrichtung 15 des
Host-Computers 1 verbunden. Infolgedessen werden der S/P & P/S-Folgesteuereinrichtung 31 von dem
Host-Computer 1 ein Statussignal STATUS, ein serielles
Taktsignal SCLK und serielle Daten DIO zugeführt, die aus Daten und Steuerdaten
bestehen.
-
Die
S/P & P/S-Folgesteuereinrichtung 31 konvertiert
die von dem Host-Computer 1 gelieferten seriellen Daten
DIO in parallele Daten in Synchronisation mit dem zuvor erwähnten seriellen
Taktsignal SCLK. Aus diesen parallelen Daten gibt die S/P & P/S-Folgesteuereinrichtung 31 beispielsweise
die Befehlsdaten an den Befehlsgenerator 35 und die Daten
an den Seitenpuffer 32 ab.
-
Der
Seitenpuffer 32 ist ein Pufferspeicher zur Speicherung
der von der S/P & P/S-Folgesteuereinrichtung 31 abgegebenen
Daten auf einer Seitenbasis. Den im Seitenpuffer 32 gespeicherten
Daten wird ein Fehlerkorrekturzeichen durch den ECC-Codierer/Decoder 34 hinzugefügt. Der
Seitenpuffer 32 gibt 1-Seite-Daten, denen das Fehlerkorrekturzeichen hinzugefügt ist, über die
Flash-I/F-Folgesteuereinrichtung 33 an die Flash-Speicher 22a bis 22d ab. Damit
werden die Daten von dem Host-Computer 1 in die Flash-Speicher 22a bis 22d eingeschrieben.
-
Überdies
werden die aus den Flash-Speichern 22a bis 22d ausgelesenen
Daten über
die Flash-Schnittstellen-Folgesteuereinrichtung 33 an den
Seitenpuffer 32 abgegeben.
-
Der
Seitenpuffer 32 speichert die Daten von der Flash-I/F-Folgesteuereinrichtung 33.
Hier führt der
ECC-Codierer/Decoder 34 eine Fehlerkorrekturverarbeitung
entsprechend dem Fehlerkorrekturzeichen aus, welches den im Seitenpuffer 32 gespeicherten
Daten hinzugefügt
ist. Der Seitenpuffer 32 liest Daten jeder Seite aus, die
der Fehlerkorrekturverarbeitung unterzogen worden sind, und gibt
die Daten an die S/P & P/S-Folgesteuereinrichtung 31 ab.
Die S/P & P/S-Folgesteuereinrichtung 31 konvertiert
die ihr von dem Seitenpuffer 32 zugeführten parallelen Daten in serielle
Daten DIO und überträgt die erhaltenen
seriellen Daten DIO zu dem zuvor erwähnten Host-Computer 1.
-
Der
Befehlsgenerator 35 erzeugt einen Steuerbefehl entsprechend
den Steuerdaten von der S/P & P/S-Folgesteuereinrichtung 31.
Wenn der Befehlsgenerator 35 beispielsweise einen Lesestatusregisterbefehl
zur Überprüfung des
Arbeitszustands der Speicherkarte 2 erhält, bestimmt er einen Einstellzustand
des ein fehlerhaftes Löschen
verhindernden Schalters 23 und bestimmt, ob Daten entsprechend dem
Einstellzustand zu schreiben sind.
-
Darüber hinaus
erzeugt der Befehlsgenerator 35 einen Besetztbefehl (nachstehend
als Besetztsignal bezeichnet), der einen Zustand angibt, wenn Daten
in den Flash-Speicher 22 geschrieben sind oder wenn Daten
aus dem Flash-Speicher 22 gelesen werden, und er überträgt das Besetztsignal
durch die S/P & P/S-Folgesteuereinrichtung 31 zu
dem Host-Computer 1. Wenn das Einschreiben oder Auslesen
von Daten abgeschlossen ist, erzeugt der Befehlsgenerator 35 einen
Bereitbefehl (nachstehend als Bereitsignal bezeichnet), der das
Ende des Einschreibens oder Auslesens von Daten angibt, und er überträgt das Bereitsignal über die
S/P & P/S-Folgesteuereinrichtung 31 zum
Host-Computer 1. Der Host-Computer erkennt den Betriebszustand
der Speicherkarte 2 durch Aufnahme des Besetztsignals und
des Bereitsignals.
-
Der
Konfigurations-ROM-Speicher 36 enthält Informationen, wie eine
Versions-Information und einen Anfangseinstellwert der Speicherkarte 2. Wenn
eine Verbindung zwischen dem Host-Com puter 1 und der Speicherkarte 2 hergestellt
ist, dann liest der Befehlsgenerator 35 infolgedessen zunächst durch
die S/P & P/S-Folgesteuereinrichtung 31 die zuvor
erwähnte
Versions-Information
aus dem Konfigurations-ROM-Speicher 36 und erzeugt entsprechend
dieser Information einen bestimmten Befehl, um eine bestimmte Initialisierung
der Speicherkarte 2 vorzunehmen.
-
In
der Speichervorrichtung mit der zuvor erwähnten Konfiguration liest der
Host-Computer 1 vorab eine Verwaltungsinformation des Flash-Speichers 22 der
Speicherkarte 2 und speichert diese Information im RAM-Speicher 12.
Wenn Daten in die Speicherkarte 2 geschrieben werden, benutzt
der Host-Computer 1 die zuvor erwähnte Verwaltungsinformation,
um die Verarbeitung gemäß den Schritten S1
bis S6 auszuführen,
wie dies in 4 veranschaulicht
ist.
-
Beim
Schritt S1 bestimmt die CPU 17, des Host-Computers 1,
ob Daten, die von der Festplatte 11 gelesen worden sind,
um beispielsweise zur Speicherkarte übertragen zu werden, neue Daten
sind. Falls die Daten neue Daten sind, gelangt die Steuerung zum
Schritt S5 hin. Falls die Daten nicht neue Daten sind, gelangt die
Steuerung zum Schritt S2. Dies bedeutet, dass die CPU 17 bestimmt,
ob die Daten vollständig
neue Daten oder Daten sind, die ähnlich
Daten sind, welche zur Speicherkarte 2 übertragen und teilweise modifiziert
sind. Falls bestimmt wird, dass die Daten neue Daten sind, gelangt
die Steuerung zum Schritt S5, und falls die Daten ähnlich alten
Daten sind, gelangt die Steuerung zum Schritt S2.
-
Beim
Schritt S2 bestimmt die CPU 17, ob ein Umkehr-Flag in den
jeweiligen Blöcken
gesetzt ist, die für
ein Einschreiben von Daten zu verwenden sind. Falls das Umkehr-Flag
gesetzt ist, gelangt die Steuerung zum Schritt S5, und falls es
nicht gesetzt ist, gelangt die Steuerung zum Schritt S3.
-
Beim
Schritt S3 setzt die CPU 17 über die serielle Schnittstelleneinrichtung 15 und
das Steuer-IC 21 der Speicherkarte 2 ein Umkehr-Flag
im redundanten Bereich des Flash-Speichers 22 und speichert
zu übertragende
Daten beispielsweise im RAM-Speicher 12 von
der Festplatte 11, wobei die Steuerung zum Schritt S4 gelangt.
-
Wenn
andererseits beim Schritt 1 bestimmt wird, dass die Daten
neue Daten sind, und wenn beim Schritt 2 bestimmt wird,
dass ein Umkehr-Flag gesetzt ist, dann nimmt die CPU 17 beim
Schritt S5 über
das Steuer-IC 21 der Steuerkarte 2 eine Rücksetzung
des Umkehr-Flags im redundanten Bereich des Flash-Speichers 22 vor
und speichert zu übertragende
Daten beispielsweise im RAM-Speicher 12 von der Festplatte 11,
wobei die Steuerung zum Schritt S6 gelangt.
-
Beim
Schritt S6 überträgt die CPU 17 in
dem RAM-Speicher 12 gespeicherte Daten und eine durch diese
Daten zu aktualisierende Verwaltungsinformation über die serielle Schnittstelleneinrichtung 15 zur
Speicherkarte 2, und sie schreibt diese Daten und dergleichen
in den Flash-Speicher ein, womit die Verarbeitung abgeschlossen
ist.
-
Wie
oben beschrieben, führt
der Host-Computer 1 dann, wenn wiederholt ein Schreiben
von ähnlichen
Daten, wie von teilweise modifizierten Daten erfolgt, die Bit-Umkehr/Nicht-Umkehr
bei jedem Daten-Einschreiben von derartigen Daten aus. Dies verhindert
eine Konzentration einer Zellenschädigung auf eine bestimmte Zelle
im Flash-Speicher, die durch ein Einschreiben und Löschen von
Daten hervorgerufen wird, was unter durchschnittlicher Zellenschädigung die
Betriebslebensdauer des Flash-Speichers 22 steigert.
-
Wenn
der Host-Computer 1 in der Speicherkarte 2 gespeicherte
Daten ausliest, benutzt er eine in dem RAM-Speicher 12 gespeicherte
Verwaltungsinformation, um eine Verarbeitung gemäß den Schritten S11 bis S13
auszuführen,
wie dies in 5 veranschaulicht
ist.
-
Beim
Schritt S11 bestimmt die CPU 17 des Host-Computers 1,
ob ein im RAM-Speicher 12 gespeichertes Umkehr-Flag gesetzt
ist. Falls das Umkehr-Flag gesetzt ist, gelangt die Steuerung zum Schritt
S12; falls es nicht gesetzt ist, gelangt die Steuerung zum Schritt
S13.
-
Beim
Schritt S12 liest die CPU 17 über die serielle I/F bzw. Schnittstelleneinrichtung 15 und
das Steuer-IC 21 der Speicherkarte 2 Daten aus
dem Flash-Speicher 22, speichert sie im RAM-Speicher 12 und
nimmt eine Umkehr des Bits dieser Daten vor, womit die Ausleseverarbeitung
abgeschlossen ist.
-
Beim
Schritt S13 liest die CPU 17 über die serielle Schnittstelleneinrichtung 15 und
das Steuer-IC 21 der Speicherkarte 2 Daten einfach
aus dem Flash-Speicher 22 aus, womit die Ausleseverarbeitung
abgeschlossen ist.
-
Wenn
das Umkehr-Flag gesetzt ist, liest der Host-Computer 1,
wie oben beschrieben, Daten aus dem Flash-Speicher 22 aus
und kehrt das Bit um; wenn kein Umkehr-Flag gesetzt ist, liest der Host-Computer 1 Daten
direkt aus dem Flash-Speicher 22 aus. Damit ist es möglich, in
den Flash-Speicher 22 eingeschriebene Daten durch die Bit-Umkehr-Nichtumkehr-Verarbeitung
auszulesen.
-
Es
sei darauf hingewiesen, dass die vorliegende Erfindung auf die zuvor
erwähnte
Ausführungsform
nicht beschränkt
ist, sondern dass sie im Rahmen des in den Patentansprüchen beschriebenen
Konzepts im Aufbau bzw. in der Ausführung modifiziert werden kann.
-
So
ist es möglich,
als Host-Computer 1 beispielsweise eine Standbildkamera
oder eine Videokamera anzuwenden. In einem solchen Falle wird die Speicherkarte 2 durch
die Standbild kamera oder dergleichen so gesteuert, dass Bilddaten
eingeschrieben werden.
-
Darüber hinaus
ist es möglich,
als Host-Computer 1 eine Wiedergabevorrichtung anzuwenden,
die imstande ist, in der Speicherkarte 2 gespeicherte Musik-Audiodaten
zu lesen und einen Ton abzugeben. In diesem Falle ist eine Datenübertragungsrate
zwischen dem Host-Computer 1 und der Speicherkarte 2 wesentlich
höher als
eine Datenlesegeschwindigkeit von einem Magnetband oder einer CD
(Kompaktdisc), und es ist möglich,
beispielsweise eine Festlegung eines Musikstarts bei einer hohen Geschwindigkeit
vorzunehmen.