-
Gebiet der Erfindung
-
Die
Erfindung bezieht sich auf eine Speichereinrichtung zur Datenspeicherung.
Spezieller betrifft die Erfindung eine Speichereinrichtung, welche
Daten in Speichermedien, wie einem Flash-Speicher, speichern kann.
-
Stand der Technik
-
Bei
Speichereinrichtungen für
tragbare Geräte,
welche Musik- oder Videodaten verarbeiten, benutzt man üblicherweise
Speichermedien, wie Flasch-Speicher, aus folgenden Gründen:
- 1. Daten lassen sich neu einschreiben,
- 2. das Speichermedium ist leicht transportabel, und
- 3. es wird keine Stromversorgung mit Batterien oder dergleichen
benötigt.
-
Jedoch
besteht bei den derzeit verwendeten Flash-Speichern das Problem,
dass beim Neueinschreiben von Daten eine Wartezeit erforderlich
ist, und zwar aus folgendem Grund: Es dauert wesentlich länger, die
vom Puffer im Flash-Speicher übertragenen
Daten zu schreiben, als die den Gegenstand des Schreibens bildenden
Daten in den Speicher innerhalb der Speichereinrichtung zu übertragen.
-
Ein
Versuch zur Lösung
dieses Problems findet sich in der ungeprüften
japanischen Patentanmeldung Nr. 2000-132982 ,
welche eine mit einer Mehrzahl von Flash-Speichern versehene Speichereinrichtung
beschreibt. Bei dieser Speichereinrichtung tritt kein Wartezeitproblem
auf, weil die Daten parallel in eine Mehrzahl von Flash-Speichern
eingeschrieben werden könne.
-
Allgemein
wird die als Standard benutzte Einheit oder Menge, in welcher Daten
in den Flash-Speicher eingeschrieben werden, als Sektor bezeichnet,
und die Einheit, in welcher Daten aus dem Flash-Speicher gelöscht werden,
was später noch
beschrieben wird, wird Block genannt. Wie 9(a) zeigt,
werden Daten innerhalb des Flash-Speichers blockweise verarbeitet,
wobei jeder Block aus 32 Sektoren besteht (die Datenlänge des Sektors
beträgt
512 Bytes, und die Datenlänge
des Blocks 16 Kilobytes).
-
Ein
Flash-Speicher hat die Eigenschaft, dass ein Wiedereinschreiben
von Daten nur in einer Richtung möglich ist. Mit anderen Worten
ist es unmöglich,
den Wert von Daten von 1–0
(oder von 0–1)
neu einzuschreiben. Ehe Daten eingeschrieben werden, ist es daher
erforderlich, alle Werte von Daten am Schreibzielort auf 1 (oder
0) zu ändern.
(Im Folgenden wird dieses Ändern
als „Löschen" bezeichnet). Ein
Bereich, wo dieses Löschen
vollständig
erfolgt ist, wird als „gelöschter Bereich" bezeichnet, während ein
Bereich, wo das Löschen
nicht vollständig erfolgt
ist, als „ungelöschter Bereich" bezeichnet wird.
Wenn bei diesen Verhältnissen
Daten 0–15
innerhalb Block A gemäß 9(b) neu eingeschrieben werden sollen,
werden Daten 16–31,
die nicht neu eingeschrieben werden müssen, zuerst aus dem Puffer
B aus dem Flash-Speicher F1 ausgelesen, wie 9(c) zeigt.
Dann werden die so aus dem Puffer B ausgelesenen Daten 16–31 neu
in einen gelöschten Bereich
E eines anderen Flash-Speichers F2 eingeschrieben, und dann wird
der Datenbereich des Blocks A gelöscht.
-
Die
Folge der Schritte (also die vorzunehmenden Schritte, damit die
Daten 16–31,
welche nicht neu eingeschrieben werden müssen, beim Neueinschreiben
nicht berührt
werden) wird Datenevakuierung genannt und ist ein Hauptgrund für die Verringerung
der Dateneinschreibgeschwindigkeit in einen Flash-Speicher. Nach
dem in 9(d) gezeigten Neueinschreiben
werden Daten 0–15
von außerhalb zur
Speichereinrichtung übertragen.
Für diesen Schritt
erfolgt keine detaillierte Beschreibung.
-
Bei
der in der ungeprüften
japanischen Patentanmeldung Nr.
2000-132982 beschriebenen Speichereinrichtung können Daten
parallel in mehrere Flash-Speicher
eingeschrieben werden, und dabei besteht kein Wartezeitproblem.
Jedoch besteht das Problem, dass beim parallelen Einschreiben von
Daten in mehrere Flash-Speicher die Evakuierungsfrequenz beim Neueinschreiben
zunimmt.
-
Wenn
also bestimmte Musikdaten M1 in die Flash-Speicher eingeschrieben
werden sollen, dann entstehen in den letzten Blocks (wie noch erläutert wird)
B1–B4
der Flash-Speicher F1–F4
leere Bereiche, wie in 10 gezeigt ist, sofern die Datengröße ein ganzzahliges
Vielfaches von (Größe eines
Blocks des Flash-Speichers) × (Anzahl
von Flash-Speichern) ist. Wenn dann andere Musikdaten M2 in die Flash-Speicher
F1–F4
eingeschrieben werden, dann werden diese Musikdaten M2 in die freien
Bereiche, beginnend mit den letzten Blocks B1–B4 eingeschrieben, mit dem
Ergebnis, dass in den selben Blocks verschiedene Musikdaten M1,
M2 vorhanden sind. Wenn es dann notwendig wird, alle Musikdaten
M1 zu löschen,
dann wird es erforderlich, die in die letzten Blocks B1– B4 eingeschriebenen
Musikdaten M2 zu evakuieren.
-
Es
sei erwähnt,
dass der oben genannte letzte Block ein Block ist, in welchem einzuschreibende Daten
zuletzt eingeschrieben werden, d. h., wenn die Daten in m Exemplaren
von Flash-Speichern eingeschrieben werden, s. 6,
dann entstehen keine freien Bereich in den schraffierten Blocks,
die auf der linken Seite der strichpunktierten Linie gezeigt sind, jedoch
besteht eine Möglichkeit,
dass ein freier Bereich in dem schraffierten Blocks auf der rechten
Seite der strichpunktierten Linie entsteht. Die Blocks, wo ein freier
Bereich auftreten kann, sind Blocks, wo einzuschreibende Daten zuletzt
eingeschrieben werden, und aus diesem Grunde sollen diese Blocks
als „letzte
Blocks" bezeichnet
werden.
-
Zusammenfassung der Erfindung
-
Die
Erfindung ist im Hinblick auf die oben geschilderten Verhältnisse
erfolgt, und ihre Aufgabe besteht in der Verringerung der Evakuierungsfrequenz, die
beim Neueinschreiben in die Speichereinrichtung benötigt ist,
bei dem Daten parallel in eine Mehrzahl von Flash-Speichern eingeschrieben
werden.
-
Zur
Lösung
dieser Aufgabe bedient sich die Erfindung der folgenden Mittel:
Die
Erfindung basiert auf einer Speichereinrichtung, bei welcher gemäß 1 Daten
in Speicherbereiche eingeschrieben werden, wo eine vollständig Löschung erfolgt
ist, und Daten, deren Einschreiben von außerhalb gefordert wird, parallel
in eine Mehrzahl von Speichermedien 21, 22, 23, 24 eingeschrieben
werden, wo Daten Block für
Block von dem „Lump" gelöscht worden
sind, wobei jeder Block aus einer Mehrzahl von Speicherbereichen
besteht.
-
Bezeichnet
man die Größe aller
Daten, deren Einschreiben von außen gefordert wird, mit q,
die Anzahl der Speichermedien mit m und die Größe des Blockes mit p, dann
dividiert die Adressenmanagementeinheit 42 zuerst die Größe q aller
Daten, deren Einschreiben von außerhalb gefordert wird, durch
die Größe p des Blocks
und erhält
einen Quotienten zm + w + y (z:0 ≤ z
(ganze Zahl); w:0 ≤ w < m (ganze Zahl);
y:0 ≤ y 1).
Die Adressenmanagementeinheit 42 steuert dann den Datentransfer
so, dass Daten für zm
Blocks in m Exemplaren von Speichermedien parallel eingeschrieben
werden und dann Daten für
(q/p – zm)
Daten auf w + 1 (w im Falle von y = 0) Exemplaren von Speichermedien
einschreibt.
-
Beispielsweise
steuert die Adressenmanagementeinheit 42 den Datentransfer
so, dass die Daten für
(q/p – zm)
Blocks in w + 1 Exemplaren von Speichermedien parallel eingeschrieben
werden, wie es 8(a) zeigt. Verglichen
mit dem Stand der Technik reduziert sich damit die Anzahl der Blocks, wo
leere Bereiche entstehen. Es braucht nicht erwähnt zu werden, dass damit die
Frequenz abnimmt, welche für
die Evakuierung beim Neueinschreiben erforderlich ist.
-
Wie 8(b) zeigt, kann natürlich der Datenverkehr so gesteuert
werden, dass dann, wenn Daten für
(q/p – zm)
Blocks eingeschrieben werden, die Verarbeitung der Schreibdaten
für y Blocks
in einem Exemplar von Speichermedien parallel für w + 1 Exemplare von Speichermedien
durchgeführt
wird und danach die Verarbeitung der Schreibdaten für (1 – y) Blocks
in einem Exemplar der Speichermedien in w Exemplaren von Speichermedien
parallel durchgeführt
wird. Dies bringt die Anzahl von Blocks, wo veranlasst wird (where
is caused) höchstens
auf 1, und damit nimmt die Frequenz weiterhin ab, welche für die Evakuierung
beim Einschreiben erforderlich ist.
-
Oder
der Datenverkehr kann so gesteuert werden, dass die Daten für (q/p – zm) Blocks
w + 1 Exemplaren von Speichermedien zugeordnet werden und in entsprechende
Speichermedien in einer bestimmten Reihenfolge eingeschrieben werden,
wie es 8(c) zeigt. Diese Steuermethode
ist speziell dann effektiv, wenn es „Daten, die nicht neu einschrieben
werden müssen" gibt, und zwar in Blocks, zu
welcher der Speicherbereich, also der als Schreibzielort geforderte,
gehört.
D. h., dass in einem solchen Fall die Adressenmanagementeinheit 42 den Datentransfer
steuert unter Betrachtung der Summe der nicht notwendigerweise einzuschreibenden
Daten und der Daten, für
welche ein Einschreiben gefordert wird, als Daten für (q – zm) Blocks.
-
Kurze Beschreibung der Zeichnungen
-
1 ist
ein Blockdiagramm einer Speichereinrichtung, auf welche die Erfindung
angewendet wird.
-
2 ist
ein erläuterndes
Diagramm der ersten Dateneinschreibsteuermethode.
-
3 ist
eine Blocksteuertabelle zum Zeitpunkt der ersten Dateneinschreibsteuerung.
-
4 ist
ein erläuterndes
Diagramm der zweiten Dateneinschreibsteuermethode.
-
5 ist
eine Blockmanagementtabelle zum Zeitpunkt der zweiten Dateneinschreibsteuerung.
-
6 ist
ein erläuterndes
Diagramm einer Technik zur Beurteilung der Dateneinschreibsteuermethode.
-
7 ist
ein Diagramm der Datenneueinschreibung.
-
8 ist
ein Diagramm, bei welchem Daten für (q – zm) Blocks neu eingeschrieben
werden.
-
9 ist
ein erläuterndes
Diagramm eines Blocks, Sektors und Evakuierung beim Neueinschreiben.
-
10 ist
ein erläuterndes
Diagramm der Blocks, in welchen andere Daten vorhanden sind.
-
Beschreibung der bevorzugten
Ausführungsformen
-
1 ist
ein Blockschaltbild einer Speichereinrichtung, bei welcher die Erfindung
angewendet wird, und ihre Konfiguration sei nun beschrieben. In der
folgenden Beschreibung wird angenommen, dass die Datenlänge des
Sektors 512 Bytes und die Datenlänge
des Blocks 16 Kilobytes beträgt.
-
Nach
Empfang einer Aufforderung zum Schreiben, Lesen, Löschen von
Daten oder dergleichen von außerhalb
gibt die Eingangs/Ausgangs-Steuereinheit 41 Befehle zum
Beginnen mit der Verarbeitung der Anforderung an die Adressenmanagementeinheit 42 und
steuert die Eingabe und Ausgabe von Daten in folgender Weise.
-
Bei
Erhalt einer Anforderung zum Einschreiben von Daten schreibt die
Eingabe/Ausgabe-Steuereinheit 41 von außen eingegebene Daten nacheinander
in eine Mehrzahl von Speichern 31, 32, 33, 34 in
512 Bytes. Bei Erhalt einer Anforderung zum Auslesen von Daten liest
andererseits die Eingabe/Ausgabe-Steuereinheit 41 Daten
in 512 Bytes von einer Mehrzahl von Speichern 31, 32, 33, 34 aus
und gibt sie in 512 Bytes nacheinander nach außen aus.
-
In Übereinstimmung
mit einem Verarbeitungsstartbefehl von der Eingabe/Ausgabe-Einheit 41 steuert
die Adressenmanagementeinheit 42 den Datentransfer zwischen
einer Mehrzahl von Flash-Speichern 21, 22, 23, 24 und
einer Mehrzahl von Puffer 31, 32, 33, 34,
steuert das Löschen
von Daten aus einer Mehrzahl von Flash-Speichern 21, 22, 23, 24 und
managt die in eine Mehrzahl von Flash-Speichern 21, 22, 23, 24 geschriebenen
Daten (was später
noch im Einzelnen beschrieben wird).
-
Entsprechend
einem Verbindungsumschaltsignal von der Adressenmanagementeinheit 42 schaltet
weiterhin der Selektor 43 die Verbindung von Datenbussen
zwischen einer Mehrzahl von Flash-Speichern 21, 22, 23, 24 und
einer Mehrzahl von Puffer 31, 32, 33, 34.
-
Es
gibt zwei Methoden zum Steuern des Einschreibens von Daten durch
die Adressmanagementeinheit 42. Eine ist eine Steuermethode,
die angewandt wird, wenn eine Anforderung zum Schreiben von Daten
in einen Logikadressenbereich erhalten wird, wo noch keine Daten
eingeschrieben sind (im Folgenden als „erste Datenschreibsteuermethode" bezeichnet), und
die andere ist eine Steuermethode, die angewandt wird, wenn eine
Anforderung zum Einschreiben von Daten in einem Logikadressbereich
erhalten wird, wo bereits Daten eingeschrieben sind (im Folgenden
als „zweite
Datenschreibsteuermethode" bezeichnet).
-
Es
seien nun diese Dateneinschreibsteuermethoden im Einzelnen beschrieben.
-
[Erste Dateneinschreibsteuermethode]
-
Zunächst werden
bei Erhalt einer Anforderung zum Einschreiben von Daten in einen
Logikadressenbereich, wo noch keine Daten eingeschrieben sind, die
Daten parallel in vier Flash-Speicher 21, 22, 23, 24 eingeschrieben
wie beim Stand der Technik. Bei der Erfindung ist jedoch die Art
der Steuerung des Dateneinschreibens in die jeweiligen letzten Blocks
der Flash-Speicher 21, 22, 23, 24 gemäß 2(a)–(c)
abhängig
von der Größe der den
Gegenstand des Schreibens bildenden Daten unterschiedlich.
-
Wenn
die Größe der den
Gegenstand des Schreibens bildenden Daten beispielsweise 64 Kilobyte
beträgt,
hat selbst dann, wenn die Daten in vier Flash- Speicher 21, 22, 23, 24 parallel
eingeschrieben werden, keiner der letzten Blocks B21, B22, B23, B24
freie Bereiche, weil die Daten von 64 Kilobytes vier Blocks entsprechen,
und dies ist identisch mit der Summe der letzten Blocks B21, B22,
B23 und B24.
-
Daher
steuert die Adressenmanagementeinheit 42 in diesem Falle
den Datentransfer so, dass die Daten 0–127 parallel in die letzten
Blocks B21, B22, B23, B23 eingeschrieben werden, wie es 2(a) zeigt. (Im Folgenden wird dieser
Schreibmodus „4-Block-Schreiben" genannt).
-
Falls
die Größe der den
Gegenstand des Einschreibens bildenden Daten 32 Kilobytes beträgt und diese
Daten in vier Flash-Speicher 21, 22, 23, 24 eingeschrieben
werden, bleibt ein halber Bereich jedes der letzten Blocks B21,
B22, B23, B24 frei, weil Daten von 32 Kilobytes zwei Blocks entsprechen, und
dies ist gleich der Hälfte
der Summe der letzten Blocks B21, B22, B23, B24.
-
Daher
steuert die Adressenmanagementeinheit 42 in diesem Falle
den Datentransfer so, dass Daten 0–63 nur in die letzten beiden
Blocks B21, B22 eingeschrieben werden. Um zu verhindern, dass Blocks
freie Bereiche haben, steuert die Adressenmanagementeinheit 42 den
Datentransfer so, das der Parallelitätsgrad zum Einschreiben in
den letzten Block B21, B22, B23, B24 begrenzt wird von vier auf zwei
(im Folgenden wird dieser Schreibmodus „2-Block-Schreiben" genannt).
-
Wenn
hier die Größe der den
Gegenstand des Schreibens bildenden Daten 24 Kilobytes beträgt, kann
unmöglich
verhindert werden, dass die letzten Blocks freie Bereiche haben,
selbst wenn der Parallelitätsgrad
begrenzt wird, wie im Fall der Datengröße von 32 Kilobytes, weil die
24 Kilobyte Daten 1,5 Blocks entsprechen und dies nicht gleich einem ganzen
Vielfachen des Blocks ist.
-
Daher
steuert die Adressenmanagementeinheit 42 in diesem Falle
den Datentransfer so, dass nur der letzte eine Block einen freien
Bereich hat (s. Block B22), wie in 2(c) gezeigt
ist, und steuert somit die Daten 0–47 derart, dass soweit wie
möglich Daten
parallel eingeschrieben werden.
-
Mit
anderen Worten, nachdem Daten 0–31 für einen
Block in mindestens zwei letzte Blocks B21, B22 parallel eingeschrieben
sind, werden Bruchteilsdaten 32–37
für den
verbleibenden 0,5 Block allein in dem letzten Block B21 eingeschrieben
(im Folgenden wird dieser Schreibmodus als „1,5-Block-Schreiben" bezeichnet). Der hier verwendete Ausdruck „allein
Schreiben (to Write singly)" bedeutet
ein paralleles Einschreiben mit einem Parallelitätsgrad von 1.
-
Wie
erwähnt,
wählt die
Adressenmanagementeinheit 42 eine der Steuermethoden in
Abhängigkeit
von der Größe der den
Gegenstand des Schreibens bildenden Daten aus. Diese Auswahltechnik
wird im Folgenden erläutert.
-
Bezeichnet
man zunächst
die Größe all der Daten,
für die
ein Einschreiben angefordert wird als q, die Anzahl der Flash-Speicher
mit m, die Anzahl der Blocks mit p, dann wird die Größe q all
der Daten durch die Blockgröße p dividiert,
und man erhält
als Quotient zm + w + y (z:0 ≤ z
(ganze Zahl); w:0 ≤ w (ganze
Zahl) < m; y:0 < y < 1). In dieser Formel
ist zm die Anzahl von Blocks mit einem Parallelitätsgrad von m,
und die Formel w + y gibt die Anzahl von Blocks an, wo der Parallelitätsgrad nicht
m erreicht. D. h., mit Bezug auf 6, die Anzahl
der schraffierten Blocks links von der strichpunktierten Linie entspricht
zm, während
die Anzahl der schraffierten Blocks rechts der strichpunktierten
Linie w + y entspricht (w entspricht Block B1, während y Block B2 entspricht).
-
Somit
steuert die Adressenmanagementeinheit 42 den Datentransfer
so, dass Daten für
zm Blocks in m Exemplare von Flash-Speichern parallel eingeschrieben
werden und danach Daten für
(q/p – zm)
Blocks in w + 1 Exemplare (im Falle von y = 0, w) Flash-Speicher
eingeschrieben werden. Wenn aber Daten für (q/p – zm) Blocks eingeschrieben
werden, dann erfolgt die Verarbeitung des Dateneinschreibens für y Blocks
in einem Flash-Speicher parallel in w + 1 Exemplare von Flash-Speichern,
und danach erfolgt die Verarbeitung des Dateneinschreibens für (1 – y) Blocks
in einem Flash-Speicher parallel in w Exemplaren von Flash-Speichern.
-
Als
ein konkretes Beispiel für
die Auswähltechnik
sei ein Steuerverfahren erläutert,
bei welchem ein Block 16 Kilobytes groß ist und 152 Kilobytes von
Daten in vier Flash-Speicher eingeschrieben werden (p = 16, m =
4, q = 152).
-
Zunächst, weil
q/p = zm + w + y = 152/16 = 2 × 4
+ 1 + 0,5 hat sich gezeigt, dass z = 2, w = 1 und y = 0,5 ist.
-
Daher
werden Daten für
zwei Blocks in vier Exemplare von Flash-Speichern parallel eingeschrieben,
und danach werden Daten für
1,5 Blocks in zwei Exemplare von Flash-Speichern eingeschrieben. Wenn
aber Daten für
1,5 Blocks eingeschrieben werden, dann wird die Verarbeitung des
Dateneinschreibens für
0,5 Block in einem halben Flash-Speicher in zwei Exemplaren von
Flash-Speichern
durchgeführt, und
danach erfolgt das Dateneinschreiben für (1–0,5) Blocks in ein Exemplar
von Flash-Speichern parallel in einem Exemplar Flash-Speicher. D. h.,
mit Bezug auf 6 werden Daten für 0,5 Block
in Block B1 bzw. Block B2 eingeschrieben, und danach werden Daten
für 0,5
Block nur allein in Block B1 eingeschrieben.
-
In
der obigen Beschreibung war die Größe p aller Daten, für die ein
Einschreiben gefordert wurde, 152 Kilobytes, und die Größe q des
Blocks 16 Kilobytes. Die Einheit der Größe p und der Größe q ist nicht
auf Byte beschränkt.
Selbst wenn beispielsweise die Größe p aller Daten, für die ein
Einschreiben gefordert wird, 304 Sektoren groß ist und die Größe q des
Blocks 32 Sektoren groß ist,
kann man dieselben Ergebnisse erhalten.
-
Gemäß der Erfindung
ist, wie oben gesagt, die Anzahl der Blocks, welche einen freien
Bereich haben, höchstens
1. Damit verringert sich die Frequenz, mit welcher die Evakuierung
beim Neueinschreiben abnimmt. Insgesamt ist es möglich, das Einschreibeerhalten
im Flash-Speicher zu verbessern.
-
Gemäß der Erfindung
ist jedoch der Parallelismusgrad manchmal begrenzt, und dies verringert die
Schreibgeschwindigkeit. Jedoch ist der Parallelismus nur auf die
letzten Blocks begrenzt, und bei den letzten Blocks erfolgt das
Einschreiben soweit möglich
auch parallel. Selbst wenn der Parallelismus, wie oben beschrieben,
begrenzt ist, ist seine Auswirkung auf die Schreibgeschwindigkeit
sehr klein.
-
Bei
der vorstehenden Beschreibung wird die Schreibprozedur parallel
in Flash-Speicher
in dieser Reihenfolge, Flash-Speicher 21 → 22 → 23 → 24 → 21 → ..., erläutert, jedoch
ist die Erfindung nicht darauf beschränkt. D. h., die jeweiligen
Flash-Speicher variieren in Hardware-Performance, und die erforderliche
Zeit des jeweiligen Einschreibens ist nicht die gleiche. Es ist
daher erwünscht,
dass der Datentransfer so gesteuert wird, dass die Daten nacheinander
in Flash-Speicher eingeschrieben werden, wenn diese Flash-Speicher
schreibbereit sind, anstatt wie oben erläutert parallel einzuschreiben.
-
In
der vorstehenden Beschreibung ist mit „schreibbereit" Folgendes gemeint:
Wenn spezifische Daten in einen spezifischen Sektor eines spezifischen
Blocks eingeschrieben werden, dann ist es dem spezifischen Sektor
des spezifischen Blocks verboten, nächste neue Daten einzuschreiben.
Das Einschreiben in diesen spezifischen Sektor sollte effektiv sein
nach der Vollendung des Einschreibens der spezifischen Daten in
den spezifischen Sektor. Daher bedeutet „schreibbereit" den Zustand nach
der Vollendung des Einschreibens der früheren Daten.
-
Wenn
die Größe der den
Gegenstand des Schreibens bildenden Daten, wie in den 2(b), (c) gezeigt ist 32 Kilobyte oder
34 Kilobyte beträgt,
dann tritt eine Periode auf, wo der Parallelismusgrad auf 2 begrenzt
ist, d. h. eine Periode zum parallelen Einschreiben in zwei Flash-Speicher 21, 22.
Wenn also ein ungelöschter
Bereich in den verbleibenden Flash-Speichern 23, 24 existiert,
dann ist es erwünscht,
das Löschen
dieses Bereiches zusammen mit dem Schreiben in die Flash-Speicher 21, 22 durchzuführen.
-
Wenn
bei der vorstehenden Beschreibung weiterhin Daten für (q/p – zm) Blocks
eingeschrieben werden, dann erfolgt der Vorgang des Einschreibens von
Daten für
y Blocks in einem Exemplar von Flash-Speicher parallel in w + 1
Exemplaren von Flash-Speichern, und danach erfolgt der Vorgang des
Einschreibens von Daten für
(1 – y)
Blocks in einem Exemplar von Flash-Speicher parallel in w Exemplaren
von Flash-Speichern. Die Erfindung ist jedoch nicht hierauf beschränkt. D.
h., wie 8(a) zeigt, können (q/p – zm) Blocks
parallel in w + 1 Flash-Speicher eingeschrieben werden.
-
In
diesem Fall besteht jedoch eine Möglichkeit, dass die Anzahl
von Blocks mit freien Bereichen 2 oder mehr beträgt. Es erübrigt sich jedoch zu sagen,
dass die Anzahl kleiner ist als wenn man den Stand der Technik,
der m Blocks freie Bereiche hat, benutzt wird. Inzwischen hat die
Adressenmanagementeinheit 42 zum Lesen oder neu Einschreiben von
Daten, die wie oben beschrieben parallel eingeschrieben sind, den
Zustand des Dateneinschreibens in die Flash-Speicher 21, 22, 23 und 24 zu
steuern und zu managen. Die Adressenmanagementeinheit 42 ist
also so eingerichtet, dass sie eine Blockmanagementtabelle (s. 3)
erstellt, welche mit den folgenden Feldern für jeden Logikadressenblock
versehen ist, zu dem von außerhalb
Zugang gefordert wird.
-
Unter
dem Ausdruck Parallelismusgradfeld ist ein Feld zu verstehen, um
zu zeigen, in wie viele Flash-Speicher Daten eingeschrieben werden.
D. h., in dem Parallelismusgradfeld eines Logikadressenblocks, in
welchem, wie oben beschrieben, vier Blocks eingeschrieben werden,
wird „4" besetzt, wie in 3(a) gezeigt ist. Inzwischen wird in dem
Parallelismusgradfeld des Logikadressenblocks, wo zwei Blocks eingeschrieben
werden und 1,5 Blocks eingeschrieben werden, „2" gesetzt, wie in den 3(b), (c)
zu sehen ist. In dem Parallelismusgradfeld für den Logikadressenblock, wo
keine Blocks eingeschrieben werden, wird „0" gesetzt.
-
Weiterhin
bedeutet das Feld für
die Anzahl nicht paralleler Sektoren ein Feld, das bei 32 in dem Logikadressenblock
enthaltenen Exemplaren von Sektoren die Anzahl der Sektoren zeigt,
wo kein Parallelismusschreiben ausgeführt wird. D. h., in dem Feld
für die
Anzahl von nicht Parallelismussektoren, wo vier Blocks und zwei
Blocks eingeschrieben werden, wird „0" gesetzt, wie die 3(a),
(b) zeigen. Inzwischen werden in das Feld für das Anzahl-von-Nichtparallelismussektoren-Feld,
wo 1,5 Blocks eingeschrieben sind, „16" gesetzt, wie 3(c) zeigt.
-
Weiterhin
ist das flashspeicherbezeichnete Feld ein Feld, welches einen Flash-Speicher angibt, wo
der Adressenblock vorhanden ist. Beispielsweise wird in dem flashspeicherbezeichneten
Feld des Logikadressenblocks, welcher im Flash- Speicher 21 vorhanden ist, „0" eingestellt und
im flashspeicherbezeichneten Feld des Logikadressenblocks, der innerhalb
des Flash-Speichers 22 vorhanden ist, wird „1" gesetzt. In dem
flashspeicherbezeichneten Feld des Logikadressenblocks, der sich
innerhalb des Flash-Speichers 23 befindet, wird „2" eingestellt, und in
dem flashspeicherbezeichneten Feld des Logikadressenblocks, der
sich im Flash-Speicher 24 befindet, wird „3" gesetzt.
-
Weiterhin
ist das Feld für
die physische Adresse ein Feld, welches die dem Logikadressenblock
entsprechende physische Adresse angibt. Es erübrigt sich zu sagen, dass die
in dem Feld gesetzte physische Adresse innerhalb des Flash-Speichers ist, der
in dem flashspeicherbezeichneten Feld angegeben ist.
-
Schließlich ist
das Sektorreihensteuerfeld ein Feld, das die parallele Schreibordnung
in den Sektoren angibt. Wenn beispielsweise ein paralleles Einschreiben
in dieser Reihenfolge erfolgt: Flash-Speicher 21 → 22 → 23 → 24 → 21 → ..., gilt
gemäß 3(a) der Rang „0" als erste Sektorreihensteuerinformation
entsprechend einer Logikadresse A, „1" als Sektorreihensteuerinformation entsprechend
der Logikadresse A + 1, „2" als Sektorreihensteuerinformation
entsprechend der Logikadresse A + 2, „3" als Sektorreihensteuerinformation entsprechend
der Logikadresse A + 3.
-
[Zweite Dateneinschreibsteuermethode]
-
Die
in den Flash-Speicher einzuschreibenden Daten sind üblicherweise
eine Serie von Bilddaten oder Musikdaten (ein Film oder eine Musikdatei). Auch
wenn die in den Flash-Speicher eingeschriebenen Daten gelöscht werden,
besteht eine Möglichkeit,
dass eine Reihe von Bilddaten oder Musikdaten (also kontinuierlich
eingeschriebene Daten) durch das „Lump" gelöscht
werden. Bei der ersten Dateneinschreibsteuerung werden Daten prinzipiell
so weit wie möglich
parallel eingeschrieben, damit die Schreibgeschwindigkeit nicht
verringert wird.
-
Anstelle
eines so weit wie möglich
Paralleleinschreibens von Daten wie bei der ersten Datenschreibsteuermethode
verbessert ein Einzeleinschreiben manchmal die Effektivität des Datenschreibens
in dem Flash-Speicher insgesamt gesehen in einigen Fällen.
-
Bei
Editierarbeiten von in den Flach-Speicher eingeschriebenen Musikdaten
muss beispielsweise ein Teil der kontinuierlich eingeschriebenen Daten
neu eingeschrieben werden. In diesem Fall ist es besser, dass die
den Gegenstand des Einschreibens bildenden Daten in einem Block
eingeschrieben werden, wie der schraffierte Bereich in 7(b), anstatt dass sie über eine
Mehrzahl von Blocks eingeschrieben werden, wie die schraffierten
Bereiche zeigen, weil in dem in 7(a) (Stand
der Technik) gezeigten Fall vier Blocks beim Neueinschreiben evakuiert
werden müssen,
während
in dem in 7(b) gezeigten Fall ein
Block beim Neueinschreiben evakuiert werden muss.
-
Aus
diesem Grunde wird vorzugsweise die folgende Steuermethode gewählt, wenn
nach dem Einschreiben kontinuierlicher Daten parallel in eine Mehrzahl
von Flash-Speicher mit Hilfe der ersten Dateneinschreibsteuermethode
ein Teil dieser kontinuierlichen Daten geschrieben werden muss.
-
Bei
Erhalt einer Forderung Daten einzuschreiben greift die Adressenmanagementeinheit 42 auf
den Inhalt der Blocksteuertabelle zu und entscheidet, ob die Anfrage
zum Einschreiben von Daten eine Anfrage zum Neueinschreiben eines
Teils der kontinuierlichen Daten ist (im Folgenden als Neueinschreibdatenforderungen
bezeichnet) oder eine Forderung nach neuen kontinuierlichen Daten
ist (im Folgenden als neue Datenschreibforderung bezeichnet). Mit
anderen Worten, im Fall einer Aufforderung Daten in einen Logikadressbereich
einzuschreiben, wo bereits Daten eingeschrieben sind, wird diese
Anforderungen Daten einzuschreiben beurteilt als Aufforderung Daten
neu einzuschreiben, während
im Fall einer Anforderung Daten in einen logischen Adressbereich
einzuschreiben, wo noch keine Daten eingeschrieben sind, die Anforderung
zum Dateneinschreiben als Anforderung neue Daten einzuschreiben
beurteilt wird.
-
Wird
die Anforderung Daten einzuschreiben als Anforderung neue Daten
einzuschreiben angesehen, dann wählt
die Adressenmanagementeinheit 42 die erste Datenschreibsteuermethode.
Andererseits entscheidet sich die Adressenmanagementeinheit 42,
welche die Aufforderung zum Dateneinschreiben als Aufforderung zum
Neueinschreiben von Daten ansieht, weiterhin, ob Daten vorhanden
sind, welche nicht in den Block eingeschrieben werden sollen, zu dem
die den Gegenstand des Einschreibens bildenden Daten gehört.
-
Beispielsweise
zeigt 4, dass dann, wenn Daten 0–47 in Flash-Speicher 21, 22 in
der 1,5-Block-Schreibmethode eingeschrieben sind und eine Aufforderung
zum Neueinschreiben von Daten 32–47 vorliegt, Daten 0–31 (außer für ungerade
Zahl) vorhanden sind, die nicht in die Blocks einzuschreiben sind,
zu welchen die Daten 32–37
gehören.
In diesem Fall entscheidet die Adressenmanagementeinheit 42 daher,
dass „Daten
vorhanden sind, die nicht einzuschreiben sind" und führt die folgende Steuerung
aus.
-
Zuerst
nimmt die Adressenmanagementeinheit 42 Daten für den 1,5
Block als Daten für
(q – zm) Blocks,
wobei die Daten für
den 1,5 Block die Summe ist aus den Daten 0–31 (32 Exemplare von Sektordaten),
die nicht neu einzuschreiben sind, und den Daten 32–47 (16
Exemplare von Sektordaten) für
die ein Schreiben gefordert ist, ist. Es erübrigt sich zu sagen, dass hier
w 1 und y 0,5 ist.
-
Die
Adressenmanagementeinheit 42 steuert weiterhin den Datentransfer
so, dass, während
Daten für
(q/p – z)
Blocks w + 1 Exemplaren von Flash-Speichern 23, 24 zugeordnet
werden, die jeweiligen Flash-Speicher 23, 24 in
einer spezifischen Reihenfolge (in diesem Falle 23 → 24)
beschrieben werden. Der Datentransfer wird also so gesteuert, dass
Daten 0–31,
die parallel in zwei Exemplaren von Blocks eingeschrieben worden
sind, zuerst aus dem Puffer ausgelesen und dann einzeln in einen
gelöschten
Bereich des Flash-Speichers 23 neu eingeschrieben werden,
und dann Daten 42–47
einzeln in den gelöschten
Bereich des Flash-Speichers 24 eingeschrieben
werden. Es sei darauf hingewiesen, dass die Daten 23–47 von
außen
durch die Eingangs-/Ausgangssteuereinheit 41, Puffer 34,
auf die Adressenmanagementeinheit 42 bezogen werden.
-
Gemäß der obigen
zweiten Dateneinschreibsteuerung besteht in den Blocks in den Flash-Speichern 23, 24 soweit
wie möglich
eine kontinuierliche Datenrangfolge. Wenn es bei dieser Anordnung
notwendig wird, Daten 0–31
oder Daten 32–37
neu einzuschreiben, dann erfolgt beim Neueinschreiben keine Evakuierung.
-
Vorstehend
wurde der Betrieb beschrieben, wenn die Adressenmanagementeinheit 42 entscheidet,
dass „Daten
vorhanden sind, die nicht neu einzuschreiben sind". Unerwähnt blieb
der Betrieb, wenn die Adressenmanagementeinheit 42 entscheidet, dass „es keine
Daten gibt, die nicht neu einzuschreiben sind". Bei einer solchen Entscheidung wird
die Anordnung so getroffen, dass die Adressenmanagementeinheit 42 die
erste Datenschreibsteuermethode wählt.
-
Der
Grund ist, dass „es
gibt keine Daten, die nicht neu einzuschreiben sind", bedeutet, dass
alle Daten neu eingeschrieben werden müssen. Beispielsweise dass eine
Anforderung vorliegt, Daten für zwei
Blocks in den 1,5 Block-Bereich einzuschreiben, bedeutet, dass Daten
für die
vorigen 1,5 Blocks nicht benötigt werden.
Es ist daher vernünftig,
eine solche Anforderung zum Einschreiben von Daten als Anforderung
aufzufassen, kontinuierliche Daten neu einzuschreiben.
-
Schließlich ist
in 5 gezeigt, wie der Inhalt der Blocksteuertabelle
sich ändert
durch ein Beispiel der zweiten Dateneinschreibsteuerung. Die Anordnung
der Felder und Setzinformation sind dieselben wie bei der ersten
Dateneinschreibmethode und werden nicht erläutert.