-
Die
vorliegende Erfindung betrifft eine Informationsspeicherungsvorrichtung,
und insbesondere eine Speicherkarte, wie beispielsweise eine SD-(sichere
digitale)-Speicherkarte.
-
Es
gibt eine nichtflüchtige
Speichervorrichtung, die durch einen Flash-Speicher dargestellt
wird, wobei eine minimale Löscheinheit
(ein Datenlöschblock)
größer als
eine minimale Schreibeinheit (ein Datenschreibblock) ist. Wenn bei
diesem Typ von nichtflüchtiger
Speichervorrichtung ein zusätzliches Schreiben
auszuführen
ist, wird eine Operation zum Verschieben existierender Daten sowie
eine Datenschreiboperation durchgeführt.
-
Bei
der Datenschiebeoperation wird ein Bereich eines neuen Datenlöschblocks
in der nichtflüchtigen
Speichervorrichtung vorbereitet, werden Daten in dem Bereich kopiert
und werden auch zusätzliche Schreibdaten
in den Bereich geschrieben.
-
Die "Datenschiebeoperation" wird nun detaillierter
beschrieben werden.
-
Die
Datenschiebeoperation wird in einer nichtflüchtigen Speichervorrichtung,
wie beispielsweise einem Flash-Speicher vom NAND-Typ oder einem
Flash-Speicher vom UND-Typ, durchgeführt, wobei ein Datenbit nur
in einer Richtung von "1 → 0" oder "0 → 1" schreibbar ist.
-
Bei
dem Flash-Speicher vom NAND-Typ sind Daten beispielsweise nur in
einer Richtung von "1 → 0" schreibbar. Selbst
wenn "1" in einem Bereich mit
Daten von "0" zu schreiben ist,
kann "1" nicht geschrieben
werden und bleiben die Daten von "0".
-
Solange
nicht der gesamte Bereich für
ein Schreiben in der nichtflüchtigen
Speichervorrichtung anfängliche
Werte von "1" hat, kann es einen
Fall geben, bei welchem zu schreibende Daten nicht mit tatsächlich geschriebenen
Daten übereinstimmen.
Das einzige Verfahren zum Einstellen von Datenwerten von "1" im gesamten Bereich besteht im Ausgeben eines
Löschbefehls
zu den Adressen des Bereichs.
-
Es
soll angenommen sein, dass der Host einen ersten Befehl für ein neues
Schreiben vom 8 KB-Daten ausgegeben hat, und einen zweiten Befehl zum
Schreiben (zusätzlichen
Schreiben) von 8 KB-Daten nach dem neuen Schreiben von 8 KB-Daten.
Da der zweite Befehl sich auf das zusätzliche Schreiben bezieht,
wird ein zusätzliches
Schreiben von Daten in den Bereich in der nichtflüchtigen
Speichervorrichtung versucht. Jedoch ist es nicht sicher, ob Daten
im Bereich "1" sind (d.h. Daten
nach einem Löschen),
und es ist möglich,
dass zu schreibende Daten nicht mit tatsächlich geschriebenen Daten übereinstimmen.
-
Um
dieses Problem zu vermeiden, wird ein neuer Schreibbereich als Ersatz
für den
obigen Bereich für
ein zusätzliches
Schreiben vorbereitet. Der neue Schreibbereich wird zuerst gelöscht, und
dadurch wird der neue Schreibbereich mit Werten von "1" erzeugt. Dann werden die existierenden
Daten in die neuen Schreibblöcke
kopiert.
-
Darauf
folgend werden zusätzliche
Schreibdaten vom Host geschrieben und wird der zuvor verwendete
Schreibbereich für
ungültig
erklärt.
Dieser Prozess ist für
ein Verschieben der existierenden Daten erforderlich.
-
Der
Flash-Speicher ist diesbezüglich
vorteilhaft, dass er nichtflüchtig
und neu beschreibbar ist. Jedoch wird in einigen Fällen ein
physikalisches Überschreiben
verhindert. Zusätzlich
ist im Allgemeinen die Lösch/Schreib-Geschwindigkeit niedriger
als die Lesegeschwindigkeit.
-
Weiterhin
ist es in dem Fall, in welchem die minimale Löscheinheit größer als
die minimale Lese/Schreib-Einheit ist, nötig, die existierenden Daten im
Flash-Speicher zu kopieren oder zu löschen, wie es durch "Schiebeoperation
für existierende
Daten" dargestellt
ist, selbst wenn nur Daten in einem Teilbereich neu geschrieben
werden müssen.
Somit gibt es viele nötige
Operationen, und die Schreiboperationsgeschwindigkeit kann nicht
erhöht
werden.
-
Gemäß einem
Aspekt der vorliegenden Erfindung ist eine Informationsspeicherungsvorrichtung zur
Verfügung
gestellt, die eine nichtflüchtige
Speichervorrichtung hat, in welcher ein Datenlöschblock größer als ein Datenschreibblock
ist, wobei die Vorrichtung eine Löscheinrichtung zum Bewirken
eines Löschens
in der nichtflüchtigen
Speichervorrichtung auf der Basis eines Schreibbefehls von einem
Host aufweist, einen Reinigungsblockzeiger, der eine Adresse eines
Löschbereichs
in der nichtflüchtigen Speichervorrichtung
speichert, welcher durch die Löscheinrichtung
gelöscht
ist, und Information, die eine Position eines Schreibblocks im Löschbereich anzeigt,
bis zu welcher Daten geschrieben sind, eine Bestimmungseinrichtung
zum Bestimmen basierend auf dem Reinigungsblockzeiger, ob zu dem
Schreibbefehl gehörende
Daten in den Löschbereich
in der nichtflüchtigen
Speichervorrichtung schreibbar sind, welcher durch die Löscheinrichtung
gelöscht
ist, und eine Schreibeinrichtung zum Schreiben der zu dem Schreibbefehl
gehörenden
Daten in den Löschbereich,
wenn die Bestimmungseinrichtung bestimmt, dass die Daten schreibbar
sind.
-
Die
Erfindung kann vollständiger
aus der folgenden detaillierten Beschreibung verstanden werden,
wenn sie in Zusammenhang mit den beigefügten Zeichnungen genommen wird,
wobei:
-
1 eine
Informationsspeicherungsvorrichtung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung zeigt;
-
2 die
Struktur eines Reinigungsblockzeigers zeigt;
-
3 die
Beziehung zwischen in einer nichtflüchtigen Speichervorrichtung
geschriebenen Daten und dem Reinigungsblockzeiger zeigt;
-
4 ein
Ablaufdiagramm ist, das einen Prozess zur Zeit eines Löschens darstellt;
-
5 ein
Ablaufdiagramm ist, das eine Datenschreiboperation darstellt;
-
6A Schreibbefehle
von einer Hoststeuerung zeigt;
-
6B die
Operation der Informationsspeicherungsvorrichtung in dem Fall darstellt,
in welchem ein Reinigungsblockzeiger vorgesehen ist;
-
6C die
Operation der Informationsspeicherungsvorrichtung in dem Fall darstellt,
in welchem zwei Reinigungsblockzeiger vorgesehen sind; und
-
7 ein
Ablaufdiagramm ist, das die Operation in dem Fall darstellt, in
welchem der Reinigungsblockzeiger in der nichtflüchtigen Speichervorrichtung
vorgesehen ist.
-
Eine
Informationsspeicherungsvorrichtung gemäß einem Aspekt der vorliegenden
Erfindung wird nun unter Bezugnahme auf die beigefügten Zeichnungen
beschrieben werden.
-
1 zeigt
eine Informationsspeicherungsvorrichtung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung.
-
Wie
es in 1 gezeigt ist, weist eine Informationsspeicherungsvorrichtung 1 dieses
Ausführungsbeispiels
eine Hostmodulschnittstelle 1-1, ein nichtflüchtiges
Speichermedium 1-2, eine MPU 1-3, ein temporäres Speichermedium 1-4,
eine Schnittstelle 1-5 für eine nichtflüchtige Speichervorrichtung (hierin
nachfolgend "nichtflüchtige Speichervorrichtungsschnittstelle 1-5" genannt) und eine
nichtflüchtige
Speichervorrichtung 1-6 auf.
-
Die
Hostmodulschnittstelle 1-1 sendet/empfängt Information zu/von der
Hoststeuerung 2.
-
Das
nichtflüchtige
Speichermedium 1-2 speichert Firmware zum Steuern der MPU 1-3.
-
Die
MPU 1-3 steuert eine Schreiboperation der Informationsspeicherungsvorrichtung
gemäß dem Ausführungsbeispiel
der Erfindung. Zusätzlich steuert
die MPU 1-3 die Gesamtheit der Informationsspeicherungsvorrichtung.
Basierend auf einem in dem nichtflüchtigen Speichermedium 1-2 gespeicherten
Programm interpretiert die MPU 1-3 eine Anforderung von
der Hoststeuerung 2 und greift beispielsweise auf die nichtflüchtige Speichervorrichtung 1-6 zu,
gibt Befehle aus und transferiert Daten.
-
Das
temporäre
Speichermedium 1-4 ist ein Arbeitsbereich der MPU 1-3.
Das temporäre
Speichermedium 1-4 wird nicht nur zum temporären Speichern
von Daten beim Schreiben/Lesen von ihnen in die/aus der nichtflüchtigen
Speichervorrichtung 1-6 verwendet, sondern auch zum Speichern
von Variablen, die für
einen Zugriff auf die nichtflüchtige
Speichervorrichtung 1-6 oder die Hoststeuerung 2 nötig sind.
Zusätzlich
speichert das temporäre
Speichermedium 1-4 einen Reinigungsblockzeiger 1-4a,
der in der Informationsspeicherungsvorrichtung dieses Ausführungsbeispiels
verwendet wird. Die spezifische Struktur des Reinigungsblockzeigers 1-4a wird später beschrieben
werden.
-
Die
nichtflüchtige
Speichervorrichtungsschnittstelle 1-5 führt ein Senden/Empfangen von
Information zwischen der nichtflüchtigen
Speichervorrichtung 1-6 einerseits und der MPU 1-3 und
der Hoststeuerung 2 andererseits durch.
-
Die
Hoststeuerung 2 ist eine Einheit zum Durchführen von
Zugriffsoperationen, wie beispielsweise ein Lesen/Schreiben und
Löschen,
für die Speichervorrichtung 1.
Die Hoststeuerung 2 ist beispielsweise ein Personalcomputer.
-
Die
Operation der Informationsspeicherungsvorrichtung gemäß dem Ausführungsbeispiel dieser
Erfindung wird nun beschrieben werden.
-
Wenn
ein Lesebefehl von der Hoststeuerung 2 ausgegeben worden
ist, interpretiert die MPU 1-3 eine Leseadresse und gibt
einen Lesebefehl zu der nichtflüchtigen
Speichervorrichtung 1-6 über die nichtflüchtige Speichervorrichtungsschnittstelle 1-5 unter
Verwendung des temporären
Speichermediums 1-4 als Arbeitsbereich aus. Aus der nichtflüchtigen
Speichervorrichtung 1-6 ausgelesene Daten werden in dem
temporäreren
Speichermedium 1-4 gespeichert und dann unter Steuerung
der MPU 1-3 zur Hoststeuerung 2 geliefert.
-
Wenn
ein Schreibbefehl von der Hoststeuerung 2 ausgegeben worden
ist, interpretiert die MPU 1-3 eine Schreibadresse und
speichert Schreibdaten im temporären
Speichermedium 1-4. Dann gibt die MPU 1-3 einen
Schreibbefehl zu der nichtflüchtigen Speichervorrichtung 1-6 über die
nichtflüchtige
Speichervorrichtungsschnittstelle 1-5 aus, um dadurch eine
Schreiboperation durchzuführen.
-
Das
temporäre
Speichermedium 1-4 speichert Variablen, die "Reinigungsblockzeiger" genannt werden.
Somit hat das temporäre
Speichermedium 1-4 eine Funktion, die zum effektiven Verarbeiten
von Schreibdaten nötig
ist, die von der Hoststeuerung geliefert werden.
-
2 zeigt
die Struktur des Reinigungsblockzeigers.
-
Der
Reinigungsblockzeiger 1-4a weist eine Datenlöschblockadresse
und einen Schreibfreigabezeiger auf. Der Reinigungsblockzeiger 1-4a zeigt
an, dass Daten in einen Bereich geschrieben werden können, der
mit dem Block beginnt, der durch den Schreibfreigabezeiger der zugehörigen Löschblockadresse
angezeigt wird.
-
Bei
dem Beispiel der 2 ist Information "0X100" als die Löschblockadresse
im Reinigungsblockzeiger beschrieben und ist Information "0X003" als der Schreibfreigabezeiger
beschrieben. Dies bedeutet, dass die ersten drei Schreibblöcke von
einem Datenschreiben abgehalten werden, da Daten bereits dort hinein
geschrieben worden sind.
-
Nun
wird ein Fall beschrieben, bei welchem Daten zusätzlich in eine nichtflüchtige Speichervorrichtung
geschrieben werden, bei welcher ein Datenlöschblock bezüglich der
Größe größer als
ein Daten-Lese/Schreib-Block ist.
-
Bei
diesem Ausführungsbeispiel
ist angenommen, dass ein Datenlöschblock
16 KB ist und ein Daten-Lese/Schreib-Block 8 KB ist, und ein Befehl
für ein
Schreiben von 8 KB-Daten zweimal von der Hoststeuerung ausgegeben
worden ist.
-
3 zeigt
eine Beziehung zwischen in der nichtflüchtigen Speichervorrichtung
geschriebenen Daten und dem Reinigungsblockzeiger. 4 ist
ein Ablaufdiagramm, das einen Prozess zur Zeit eines Löschens darstellt. 5 ist
ein Ablaufdiagramm, das eine Datenschreiboperation darstellt.
-
Wenn
ein neuer Schreibbefehl für
8 KB-Daten von der Hoststeuerung ausgegeben worden ist, führt die
MPU 1-3 eine Löschoperation
gemäß einem herkömmlichen
Verfahren in der nichtflüchtigen
Speichervorrichtung durch, um dadurch einen Bereich für ein Schreiben
von Daten zu reservieren. Somit wird ein beschreibbarer Bereich
gebildet (4: S1). Zu dieser Zeit wird
der in dem temporären
Speichermedium gespeicherte Reinigungsblockzeiger aktualisiert (4:
S2, S3).
-
Wenn
ein Löschblock
mit einer Adresse X gelöscht
worden ist, wird "X" als die Löschblockadresse
(CBP-Addr) im Reinigungsblockzeiger geschrieben und wird "0" als der Schreibfreigabezeiger (CBP-Wp)
geschrieben. Somit wird der Löschprozess
beendet.
-
Als
nächstes
wird ein Schreibprozess unter Bezugnahme auf 5 beschrieben
werden.
-
Um
damit zu beginnen, wird bestimmt, ob die Schreibadresse des Schreibbefehls
mit der Löschblockadresse übereinstimmt
(S11). Wenn keine Übereinstimmung
im Schritt S11 bestimmt wird, wird ein neuer Schreibbereich reserviert
(S12) und wird ein Löschprozess
für den
neuen Schreibbereich ausgeführt
(S13).
-
Darauf
folgend wird die Adresse des neuen Schreibbereichs als die Löschblockadresse
im Reinigungsblockzeiger (S14) gespeichert und wird "0" als der Schreibfreigabezeiger (S15)
gespeichert. Dann wird ein Schreiben von Daten ausgeführt (S16)
und wird der Schreibfreigabezeiger aktualisiert (S19).
-
Andererseits
wird dann, wenn eine Übereinstimmung
zwischen der Schreibadresse des Schreibbefehls und der Löschblockadresse
im Schritt S11 bestimmt wird, die Schreibadresse mit dem Schreibfreigabezeiger
verglichen (S17).
-
Bei
diesem Ausführungsbeispiel
ist angenommen, dass ein Löschblock
16 KB ist und ein Schreibblock 8 KB ist. Somit wird dann, wenn der Schreibfreigabezeiger
den zweiten Block von der Löschblockadresse
anzeigt, bestimmt, dass ein zusätzliches
Schreiben durchgeführt
werden kann.
-
Wenn
das Vergleichsergebnis im Schritt S17 zeigt, dass ein zusätzliches
Schreiben unmöglich
ist, geht die Steuerung zum Schritt S12. Andererseits werden dann,
wenn bestimmt wird, dass ein zusätzliches
Schreiben möglich
ist, Daten zusätzlich
beschrieben (S18) und wird der Schreibfreigabezeiger aktualisiert
(S19).
-
Gemäß der Informationsspeicherungsvorrichtung
des vorliegenden Ausführungsbeispiels kann
die Möglichkeit/Unmöglichkeit
eines Schreibens in einem Schreibbereich durch Bezugnahme auf den
zugehörigen
Reinigungsblockzeiger bestimmt werden. Wenn der Schreibbereich beschreibbar
ist, werden 8 KB-Daten in den Block geschrieben.
-
Gleichzeitig
wird Information über
den Schreibblock, bis zu welchen Daten geschrieben worden sind,
im Reinigungsblockzeiger aufgezeichnet. Dadurch wird angezeigt,
dass Blöcke,
die andere als die ersten 8 KB sind, beschreibbar sind. Bei diesem
Ausführungsbeispiel
wird deshalb, weil 8 KB = 1 Schreibblock gilt, "1" in
den Reinigungsblockzeiger geschrieben.
-
Wenn
ein weiterer Schreibbefehl ausgegeben worden ist, um 8 KB-Daten
bei der darauf folgenden Adresse zu schreiben (zusätzlich zu
schreiben), wird die Schreibadresse mit dem Reinigungsblockzeiger
verglichen. Wenn bestätigt
wird, dass ein zusätzliches
Schreiben möglich
ist, werden Daten zusätzlich
in den Bereich geschrieben, ohne eine Datenschiebeoperation durchzuführen. Bei
diesen Prozeduren ist der zu verwendende Speicherbereich ein Löschblock
und sind eine Löschoperation
und zwei Schreiboperationen nötig.
-
Bei
dem in 3 gezeigten Beispiel kann der zu verwendende Speicherbereich
verglichen mit dem herkömmlichen
Verfahren um einen Löschblock reduziert
werden, und auch eine Löschoperation, eine
Schreiboperation und ein Prozess für ein Ungültigerklären können nutzlos gemacht werden.
-
Wie
es oben beschrieben ist, wird bei dem Ausführungsbeispiel der vorliegenden
Erfindung eine Vielzahl von Schreibbefehlen ausgegeben. Wenn diese
Befehle zu einem zusätzlichen
Schreiben in einem Bereich im selben Löschblock gehören, kann
die Anzahl von Operationen zum Zugreifen auf die nichtflüchtige Speichervorrichtung
reduziert werden und Hochgeschwindigkeitsoperationen können erreicht werden.
-
<Weiteres Ausführungsbeispiel>
-
Eine
Informationsspeicherungsvorrichtung gemäß einem weiteren Ausführungsbeispiel
der vorliegenden Erfindung wird nun beschrieben werden.
-
Bei
dem oben beschriebenen Ausführungsbeispiel
wird ein Reinigungsblockzeiger verwendet. Gegensätzlich dazu ist bei dem gegenwärtigen Ausführungsbeispiel
eine Vielzahl von Reinigungsblockzeigern im temporären Speichermedium
vorgesehen.
-
Es
soll angenommen sein, dass Schreibbefehle von der Hoststeuerung
abwechselnd in Zusammenhang mit zwei Bereichen ausgegeben worden sind,
wie es in 6A gezeigt ist.
-
6B ist
eine Ansicht zum Erklären
der Operation der Informationsspeicherungsvorrichtung in dem Fall,
in welchem ein Reinigungsblockzeiger verwendet wird, und 6C ist
eine Ansicht zum Erklären
der Operation der Informationsspeicherungsvorrichtung in dem Fall,
in welchem zwei Reinigungsblockzeiger verwendet werden.
-
In 6C sind
die Reinigungsblockzeiger CBP-1 und CBP-2 Werte, die in dem temporären Speichermedium
gespeicherte Reinigungsblockzeiger anzeigen. Der obere Teil von
jedem Zeiger ist eine Löschblockadresse
(CBP-Addr) und ist der untere Teil ein Schreibfreigabezeiger (CBP-Wp).
-
Wie
es in 6b gezeigt ist, wird dann, wenn
Schreibbefehle zu einer Adresse X und einer Adresse Y in dem Fall
ausgegeben werden, in welchem nur ein Reinigungsblockzeiger vorgesehen
ist, der Reinigungsblockzeiger für
die Adresse X zu der gleichen Zeit aktualisiert, zu welcher die
Schreiboperation für
die Adresse Y durchgeführt
worden ist, und wird die Information über den Reinigungsblockzeiger für die Adresse
X verloren.
-
Somit
wird selbst dann, wenn ein zusätzlicher
Schreibbefehl für
die Adresse X ausgegeben worden ist, nicht bestimmt, ob der Bereich
für ein
zusätzliches
Schreiben beschreibbar ist oder nicht, und es ist nötig, eine
Datenschiebeoperation durchzuführen,
wie beim Stand der Technik. Diese Prozedur ist dieselbe wie in dem
Fall, in welchem kein Reinigungsblockzeiger vorgesehen ist, und
es gibt keinen Vorteil.
-
Bei
der Informationsspeicherungsvorrichtung dieses weiteren Ausführungsbeispiels
sind zwei Reinigungsblockzeiger vorgesehen, und diese Zeiger (CBP-1,
CBP-2) werden abwechselnd verwendet. 6C ist
eine Ansicht zum Erklären
der Operation der Informationsspeicherungsvorrichtung in dem Fall,
in welchem zwei Reinigungsblockzeiger vorgesehen sind.
-
Wenn
ein Schreibbefehl für
die Adresse X ausgegeben worden ist, wird die Schreibzeigerinformation
im CBP-1 gespeichert. Wenn ein Schreibbefehl für die Adresse Y ausgegeben
worden ist, wird die Schreibzeigerinformation im CBP-2 gespeichert. Bei
diesem weiteren Ausführungsbeispiel
wird deshalb, weil die zwei Reinigungsblockzeiger vorgesehen sind,
Information über
beide Adressen X und Y gespeichert.
-
Wenn
ein zusätzlicher
Schreibbefehl für
die Adresse X ausgegeben worden ist, wird auf die Schreibzeigerinformation
des CBP-1 Bezug genommen. Wenn ein zusätzlicher Schreibbefehl für die Adresse
Y ausgegeben worden ist, wird auf die Schreibzeigerinformation des
CBP-2 Bezug genommen. Dadurch wird ein zusätzliches Schreiben für die nichtflüchtige Speichervorrichtung
freigegeben.
-
Insbesondere
kann dann, wenn die Anzahl von Reinigungsblockzeigern, die vorzusehen
sind, erhöht
wird, Schreibzeigerinformation über
mehrere Speicherbereiche gespeichert werden. Somit können zusätzliche
Schreiboperationen in Verbindung mit Schreibadressen effizient ausgeführt werden,
die mit einem höheren
Maß an
Zufälligkeit
ausgegeben werden.
-
In
Bezug auf das Beispiel der 6B bis 6C ist
dann, wenn ein Reinigungsblockzeiger vorgesehen ist, die Anzahl
von zu verwendenden Bereichen vier, und sechs Schreiboperationen
sind in dem Fall der in 6B gezeigten
Schreibbefehle nötig.
Andererseits ist dann, wenn zwei Reinigungsblockzeiger vorgesehen
sind, die Anzahl von zu verwendenden Bereichen zwei, und vier Schreiboperationen
werden durchgeführt.
-
Bei
den oben beschriebenen Ausführungsbeispielen
ist der Reinigungsblockzeiger im temporären Speichermedium vorgesehen.
Alternativ dazu kann der Reinigungsblockzeiger in der nichtflüchtigen
Speichervorrichtung vorgesehen sein.
-
Gemäß einem
Ablaufdiagramm der 7 wird nun die Operation in
dem Fall beschrieben, in welchem der Reinigungsblockzeiger in der
nichtflüchtigen
Speichervorrichtung vorgesehen ist.
-
Es
soll angenommen sein, dass der Reinigungsblockzeiger zusammen mit
Schreibdaten in der nichtflüchtigen
Speichervorrichtung vorgesehen ist. 7 ist das
Ablaufdiagramm der Schreiboperation.
-
Dieses
Beispiel unterscheidet sich von dem Fall, in welchem der Reinigungsblockzeiger
in dem temporären
Speichermedium vorgesehen ist, dadurch, dass der Reinigungsblockzeiger
in der nichtflüchtigen
Speichervorrichtung das erste Mal zu der Zeit eines Beginnens der
Schreiboperation gelesen wird und dass Reinigungsblockzeigerinformation
zu derselben Zeit wie das Schreiben von Daten in die nichtflüchtige Speichervorrichtung
geschrieben wird.
-
Zu
Beginn des Schreibens von Daten wird der Reinigungsblockzeiger aus
der Adresse in der nichtflüchtigen
Speichervorrichtung entsprechend einer vom Host ausgegebenen Schreibblockadresse gelesen
(S21). Es wird verstanden, dass dann, wenn keine Daten bei der Adresse
geschrieben werden, Werte nach einem Löschen, wie beispielsweise "0" oder "1",
in allen Bereichen gespeichert sind und dass der Wert des Reinigungsblockzeigers
nach einem Schreiben gespeichert wird. Basierend auf dem Wert des
Reinigungsblockzeigers kann bestätigt
werden, ob Daten bei der Adresse geschrieben sind oder nicht.
-
Auf
diese Weise wird bestimmt, ob der Wert des Reinigungsblockzeigers
effektiv ist oder nicht (S22). Wenn der Wert nicht effektiv ist,
das heißt dann,
wenn der Wert nach einem Löschen
nicht gespeichert wird, wird ein neuer Schreibbereich reserviert
(S23) und wird ein Löschprozess
für den
neuen Schreibbereich ausgeführt
(S24).
-
Als
nächstes
wird die Adresse des neuen Schreibbereichs als die im Reinigungsblockzeiger enthaltene
Löschblockadresse
gespeichert (S25), und ein Wert von "0" wird
als der Schreibfreigabezeiger im Reinigungsblockzeiger gespeichert
(S26).
-
Darauf
folgend werden Daten (für
ein neues Schreiben) und der Reinigungsblockzeiger geschrieben (S27),
und der Schreibfreigabezeiger wird aktualisiert.
-
Andererseits
wird dann, wenn im Schritt S22 bestimmt wird, dass der Wert des
Reinigungsblockzeigers effektiv ist, die Schreibadresse analysiert, und
die Möglichkeit/Unmöglichkeit
eines zusätzlichen
Schreibens wird bestimmt, was gleich zu dem Fall ist, bei welchem
der Reinigungsblockzeiger im temporären Speichermedium gespeichert
ist (S28).
-
Insbesondere
wird die Schreibadresse mit der Löschblockadresse des Reinigungsblockzeigers verglichen.
Wenn diese Adressen nicht übereinstimmen,
wird bestimmt, dass ein zusätzliches
Schreiben unmöglich
ist, und der Prozess im Schritt S23 wird ausgeführt.
-
Wenn
die Adressen im Schritt S28 übereinstimmen,
wird bestimmt, dass ein zusätzliches Schreiben
möglich
ist, und Daten (für
ein zusätzliches
Schreiben) und der Reinigungsblockzeiger werden geschrieben (S29),
und der Schreibfreigabezeiger wird aktualisiert. Der Reinigungsblockzeiger
wird gelesen und es wird auf ihn Bezug genommen, wenn die nächste Schreiboperation
bei dieser Adresse durchgeführt
wird.
-
Wie
es oben beschrieben worden ist, können deshalb, weil die Reinigungsblockzeiger
in der nichtflüchtigen
Speichervorrichtung gespeichert sind, alle Löschblockadressen mit derselben
Anzahl von Reinigungsblockzeigern versehen sein. Dadurch gibt es selbst
dann, wenn ein zusätzliches
Schreiben bei irgendeiner Löschblockadresse
durchgeführt
wird, keine Notwendigkeit zum Verschieben der existierenden Daten,
und eine Verarbeitung hoher Geschwindigkeit wird realisiert.