-
Die
vorliegende Erfindung bezieht sich auf einen nichtflüchtigen
Speicher, der eine Steuertabelle für logische/physikalische Adressen
zur Steuerung des nichtflüchtigen
Speichers enthält,
in welchem Daten diskret aufgezeichnet werden bzw. sind. Der betreffende
nichtflüchtige
Speicher besteht aus einer Vielzahl von Blöcken, deren jeder als Datenlöscheinheit
dient und eine Vielzahl von benachbarten Seiten umfasst, deren jede
eine feste Länge
besitzt und als Daten-Lese-/Schreibeinheit dient. Die vorliegende Erfindung
bezieht sich ferner auf eine Aufzeichnungsvorrichtung sowie auf
ein Aufzeichnungsverfahren zur Erzeugung von Steuerdaten, die in
der Steuertabelle für
logische/physikalische Adressen katalogisiert sind und die bei der
Vornahme eines Zugriffs auf den nichtflüchtigen Speicher benutzt werden.
-
In
den vergangenen Jahren ist eine kompakte Speichervorrichtung (oder
ein kompaktes Speichermedium) entwickelt worden, welches eine Festspeichervorrichtung,
wie einen Flash-Speicher enthält
und welches in verschiedenen Arten von Geräten, wie einer Videokamera,
untergebracht ist, um Video-, Audio- und Computerdaten zu speichern.
-
Da
eine derartige Speichervorrichtung kompakter ist als das typische
Speichermedium, wie eine 3,5-Zoll-Floppydisk bzw. Diskette und eine
Ansteuereinrichtung von geringer Größe benötigt, kann die Vorrichtung
in geeigneter Weise in einem Gerät,
wie einem Aufzeichnungsgerät
und einem tragbaren Computergerät
untergebracht werden.
-
Nebenbei
sei angemerkt, dass ein Flash-Speicher eine Eigenschaft zeigt, gemäß der dessen
Lebensdauer durch die Anzahl von wiederholten Schreib- und Löschoperationen
beeinflusst wird. Im Hinblick auf ein Dateisystem zum Schreiben und
Lesen von Daten in eine bzw. aus einer Speichervorrichtung, die
einen Flash-Speicher,
wie oben beschriebenen, verwendet, ist das Konzept von logischen
und physikalischen Adressen eingeführt worden. Bei einem mit diesem
eingeführten
Konzept erfolgten Aufbau werden Operationen zum Schreiben und Auslesen
von Daten in die bzw. aus der Speichervorrichtung unter Heranziehung
von logischen und physikalischen Adressen ausgeführt.
-
Bei
einem solchen in einem System angewandten Aufbau ist es zur Vornahme
eines Zugriffs auf die durch einen Flash-Speicher in dem System ausgeführte Speichervorrichtung
bei einer Operation zum Schreiben oder Lesen von Daten in den bzw. aus
dem Speicher notwendig, eine Tabelle bereitzustellen, welche Beziehungen
zwischen logischen Adressen und physikalischen Adressen zeigt. Eine derartige
Tabelle wird nachstehend als Steuertabelle für logische/physikalische Adressen
bezeichnet.
-
Im
konventionellen System ist eine Steuertabelle für logische/physikalische Adressen
im Hauptgerät
bzw. in der Hauptvorrichtung vorgesehen, das bzw. die die Speichervorrichtung
verwendet.
-
Eine
große
Steuertabelle für
logische/physikalische Adressen weist übrigens eine typische Datengröße von etwa
16KB auf, und zwar in Abhängigkeit
von der Speicherkapazität
des Flash-Speichers. Andererseits beträgt die Speicherkapazität eines RAM-Speichers
(das ist ein Schreib-Lese-Speicher mit wahlfreiem Zugriff), der
in einem 1-Chip-Mikroprozessor eingebettet ist, welcher in der Hauptvorrichtung
verwendet wird, höchstens
lediglich mehrere 10KB. Falls die Steuertabelle für logische/physikalische
Adressen in dem RAM-Speicher enthalten ist, der in einem in der
Hauptvorrichtung verwendeten Mikroprozessor eingebettet ist, dann
wird der meiste Speicherbereich des RAM-Speichers durch die Steuertabelle
für logische/physikalische
Adressen belegt. Damit ist es ziemlich schwierig, die Steuertabelle
für logische/physikalische
Adressen in dem RAM-Speicher zu speichern, der in dem Mikroprozessor
eingebettet ist, ohne die Verarbeitungsleistung des Mikroprozessors
zu opfern. Überdies
kann ein billiger Mikroprozessor eine RAM-Kapazität von lediglich etwa 10KB aufweisen.
In diesem Fall ist es unmöglich,
die Steuertabelle für
logische/physikalische Adressen in dem eingebetteten RAM-Speicher
eines derartigen Mikroprozessors zu speichern, und zwar aufgrund der
Tatsache, dass die Größe der Steuertabelle
für logische/physikalische
Adressen größer ist
als die RAM-Kapazität.
-
Um
die obigen Probleme zu lösen,
ist die Hauptvorrichtung, die eine durch einen Flash-Speicher aufgebaute
Speichervorrichtung verwendet, mit einem externen RAM-Speicher versehen,
der zur Speicherung einer Steuertabelle für logische/physikalische Adressen
genutzt werden kann.
-
Ein
extern bereitgestellter RAM-Speicher ruft jedoch Probleme durch
steigende Kosten und erhöhten
Leistungsverbrauch infolge von zusätzlicher Leistung hervor, die
zur Steuerung des externen RAM-Speichers benötigt wird. Insbesondere dann, wenn
die Hauptvorrichtung ein tragbares Gerät ist, welches batterie- bzw.
akkumulatorgespeist ist, ruft das Problem des erhöhten Leistungsverbrauchs
ein weiteres ernsthaftes Problem hervor, welches die Lebensdauer
der Batterie bzw. des Akkumulators beeinflusst.
-
Darüber hinaus
werden Informationen, die in der in dem externen RAM-Speicher gespeicherten Steuertabelle
für logische/physikalische
Adressen aufgezeichnet sind, gelöscht,
wenn die betreffende Speichervorrichtung von der Hauptvorrichtung
weggenommen wird. Informationen werden in einer Steuertabelle für logische/physikalische
Adressen normalerweise jedes Mal aufgezeichnet, wenn die Speichervorrichtung
an die Hauptvorrichtung angebracht ist.
-
Bei
der Erzeugung einer Steuertabelle für logische/physikalische Adressen überprüft der Mikroprozessor
des Hauptgeräts
den internen Zustand der an der Hauptvorrichtung angebrachten Speichervorrichtung
und bildet Informationen in der Steuertabelle für logische/physikalische Adressen
als Teil eines Dateiverwaltungs- bzw. Dateimanagementsystems. Sodann
wird die Steuertabelle für
logische/physikalische Adressen in dem externen RAM-Speicher gespeichert.
-
Die
Zeit, die für
die Ausführung
einer derartigen Vorbereitungsverarbeitung gebraucht wird, beträgt zumindest
etwa mehrere Sekunden. Im Falle eines billigen Mikroprozessors mit
einer geringen Verarbeitungsfähigkeit
ist eine Verarbeitungszeit von einer Dauer eines Mehrfachen dieser
mehreren Sekunden erforderlich. Da ein Zugriff für das Schreiben oder Lesen
von Daten in die oder aus der Speichervorrichtung lediglich nach
Abschluss der Vorbereitungsverarbeitung erfolgen kann, erscheint
die Dauer, die für
die Ausführung
der Vorbereitungsverarbeitung gebraucht wird, für den Benutzer beispielsweise als
Wartezeit. Falls der Gebrauch des Geräts in einer Weise, die der
Benutzer mag, in Betracht gezogen wird, ist die Zeitspanne, die
für die
Ausführung
einer derartigen Vorbereitungsverarbeitung gebraucht wird, so stark
wie möglich
zu verkürzen.
In
EP 0 887 732 A1 ist
die Anwendung eines Flash-Speichers zum Vergleichen von gesammelten
und verteilten Managementdaten unter Heranziehung von logischen
Adressen der Daten und einer Kettungsinformation beschrieben, um
zu bestimmen, ob Fehler in den Daten vorhanden sind, und um redundante
Daten zu nutzen, falls Fehler ermittelt werden.
-
In
GB 2 251 323 A ist
ein nichtflüchtiger
Halbleiterspeicher mit einer Lese-/Schreibeinheit und einer Daten-Detektiereinheit
sowie mit einer Abbildungstabelle zum Abbilden von physikalischen Adressen
auf logische Adressen beschrieben; die Merkmale dieses Dokuments
bilden den Oberbegriff der unabhängigen
Ansprüche.
-
In
US 5,404,485 ist die Abbildung
von physikalischen Adressen auf logische Adressen innerhalb eines
Flash-Speichers beschrieben.
-
Eine
Aufgabe der vorliegenden Erfindung besteht darin, einen nichtflüchtigen
Speicher mit einer Steuertabelle für logische/physikalische Adressen
sowie eine Aufzeichnungsvorrichtung und ein Aufzeichnungsverfahren
zur Erzeugung von Steuerdaten bereitzustellen, die in der Steuertabelle
für logische/physikalische
Adressen katalogisiert werden bzw. sind und bei der Vornahme eines
Zugriffs auf den nichtflüchtigen
Speicher herangezogen werden, wobei der nichtflüchtige Speicher einem Mikroprozessor,
der lediglich einen kleinen Arbeitsspeicher aufweist, ermöglicht,
die Steuertabelle für
logische/physikalische Adressen bei einem Zugriff auf den nichtflüchtigen
Speicher zu nutzen.
-
Ein
nichtflüchtiger
Speicher, der eine Vielzahl von Blöcken aufweist, deren jeder
als Datenlöscheinheit
dient, und eine Vielzahl von benachbarten Seiten umfasst, deren
jede eine feste Länge
besitzt und als Daten-Lese-/-Schreibeinheit dient, umfasst einen Speicherbereich
des betreffenden nichtflüchtigen Speichers,
wobei der betreffende nichtflüchtige
Speicher einen Hauptdatenbereich, der zumindest einen der betreffenden
Blöcke
mit einer Vielzahl der benachbarten Seiten aufweist, deren jede
für die
Speicherung eines Identifikators zur Unterscheidung von Hauptdaten
und Speicherdaten voneinander und für die Speicherung der Hauptdaten
benutzt wird, und einen Steuerdatenbereich umfasst, der irgendeinen anderen
Block der betreffenden Blöcke
mit einer Vielzahl der benachbarten Seiten aufweist, deren jede
für die
Speicherung eines Identifikators zur Unterscheidung von Hauptdaten
und Steuerdaten voneinander und für die Speicherung von Steuerdaten
benutzt wird, welche Beziehungen der Zuordnung von logischen Adressen
zu physikalischen Adressen repräsentieren,
wobei die betreffenden logischen Adressen Teilen von Daten zugeordnet
sind, die in die betreffenden Blöcke
geschrieben sind, und wobei die betreffenden physikalischen Adressen
eine physikalische Anordnungsreihenfolge der betreffenden Blöcke festlegen.
-
Der
betreffende nichtflüchtige
Speicher ist dadurch gekennzeichnet, dass die physikalische Adresse
eines als nicht benutzter Block behandelten Blockes einer logischen
Adresse zugehörig
ist, die dem betreffenden nichtflüchtigen Block zugewiesen ist.
-
Gemäß einem
zweiten Aspekt der vorliegenden Erfindung ist eine Speichervorrichtung
zur Speicherung von Daten in einem nichtflüchtigen Speicher bereitgestellt,
der eine Vielzahl von Blöcken
aufweist, deren jeder als Datenlöscheinheit
dient und eine Vielzahl von benachbarten Seiten umfasst, deren jede eine
feste Länge
besitzt und als Daten-Lese-/-Schreibeinheit dient, wobei ein Speicherbereich
des nichtflüchtigen
Speichers einen Hauptdatenbereich, der zumindest einen Block der
betreffenden Blöcke
mit einer Vielzahl der benachbarten Seiten aufweist, deren jede
für die
Speicherung eines Identifikators zur Unterscheidung von Hauptdaten
und Speicherdaten voneinander und für die Speicherung der Hauptdaten genutzt
wird, und einen Steuerdatenbereich umfasst, der irgendeinen anderen
Block der betreffenden Blöcke
mit einer Vielzahl der benachbarten Seiten umfasst, deren jede für die Speicherung
eines Identifikators zur Unterscheidung von Hauptdaten und Steuerdaten
voneinander und für
die Speicherung von Steuerdaten benutzt wird, welche Beziehungen
in der Zuordnung von logischen Adressen zu physikalischen Adressen
repräsentieren,
wobei die betreffenden logischen Adressen Teilen von Daten zugeordnet
sind, die in die betreffenden Blöcke
geschrieben sind, und wobei die betreffenden physikalischen Adressen
eine physikalische Anordnungsreihenfolge der betreffenden Blöcke festlegen.
-
Diese
Speichervorrichtung ist dadurch gekennzeichnet, dass der physikalischen
Adresse eines als nicht benutzter Block behandelten Blockes eine
logische Adresse zugehörig
ist, die dem betreffenden nicht benutzten Block zugewiesen ist,
dass die betreffende Speichervorrichtung eine Attribut-Bestimmungseinrichtung
zur Bestimmung, ob in den betreffenden nichtflüchtigen Speicher zu schreibende Daten
Hauptdaten oder Steuerdaten sind, eine Identifikator-Erzeugungseinrichtung
zur Erzeugung eines Identifikators, der entsprechend einem von der
genannten Attribut-Bestimmungseinrichtung
abgegebenen Bestimmungsergebnis angibt, ob die in dem betreffenden
nichtflüchtigen
Speicher zu schreibenden Daten Hauptdaten oder Steuerdaten sind,
und eine Speichersteuereinrichtung zum Zusammensetzen der in den
betreffenden nichtflüchtigen
Speicher zu schreibenden Daten und des von der Identifikator-Erzeugungseinrichtung
abgegebenen Identifikators sowie zum Einschreiben der zusammengesetzten
Daten in den betreffenden nichtflüchtigen Speicher umfasst.
-
Gemäß einem
dritten Aspekt der vorliegenden Erfindung wird ein Speicherungsverfahren
zum Speichern von Daten in einem nichtflüchtigen Speicher bereitgestellt,
der eine Vielzahl von Blöcken
aufweist, deren jeder als Datenlöscheinheit
dient und eine Vielzahl von benachbarten Seiten aufweist, deren
jede eine feste Länge
besitzt und als Daten-Lese-/-Schreibeinheit dient; dabei umfasst
ein Speicherbereich des betreffenden nichtflüchtigen Speichers einen Hauptdatenbereich,
der zumindest einen der genannten Blöcke mit einer Vielzahl der
benachbarten Seiten aufweist, deren jede für die Speicherung eines Identifikators
zur Unterscheidung von Hauptdaten und Steuerdaten voneinander und
für die Speicherung
von Hauptdaten genutzt wird, und einen Steuerdatenbereich, der irgendeinen
anderen Block der betreffenden Blöcke mit einer Vielzahl der
benachbarten Seiten enthält,
deren jede für
die Speicherung eines Identifikators zur Unterscheidung von Hauptdaten
und Steuerdaten voneinander und für die Speicherung von Steuerdaten
genutzt wird, welche Beziehungen in der Zuordnung von logischen
Adressen zu physikalischen Adressen repräsentieren, wobei die betreffenden
logischen Adressen Teilen von Daten zugewiesen sind, die in die
betreffenden Blöcke
geschrieben sind, und wobei die genannten physikalischen Adressen
eine physikalische Anordnungsreihenfolge der betreffenden Blöcke festlegen.
-
Dieses
Speicherungsverfahren ist dadurch gekennzeichnet, dass die physikalische
Adresse eines als nicht benutzter Block behandelten Blockes einer
dem betreffenden nicht benutzten Block zugehörigen bzw. zugewiesenen logischen
Adresse zugeordnet wird, wobei das betreffende Speicherungsverfahren
einen Attribut-Bestimmungsschritt zur Bestimmung, ob in den betreffenden
nichtflüchtigen
Speicher zu schreibende Daten Hauptdaten oder Steuerdaten sind,
einen Identifikator-Erzeugungsschritt zur Erzeugung eines Identifikators,
der entsprechend einem bei dem betreffenden Attribut-Bestimmungsschritt
abgegebenen Bestimmungsergebnis angibt, ob die in den nichtflüchtigen
Speicher zu schreibenden Daten Hauptdaten oder Steuerdaten sind,
und einen Schritt zum Zusammensetzen der in den betreffenden nichtflüchtigen
Speicher zu schreibenden Daten und des bei dem Identifikator-Erzeugungsschritt
abgegebenen Identifikators sowie zum Einschreiben der zusammengesetzten
Daten in den nichtflüchtigen
Speicher umfasst.
-
Unter
Bezugnahme auf die beigefügten Zeichnungen
werden nunmehr Ausführungsformen der
Erfindung lediglich beispielhaft beschrieben. In den Zeichnungen
zeigen:
-
1 in
einem Blockdiagramm den Aufbau eines konventionellen Systems mit
einer Hauptvorrichtung und einem flachen Speicher zum Zwecke eines
Vergleichs mit einer Ausführungsform
der vorliegenden Erfindung,
-
2 ein
erläuterndes
Diagramm, in welchem konzeptionell ein Interface zwischen einem
in einer Hauptvorrichtung verwendeten Mikroprozessor und dem flachen
Speicher in dem konventionellen System zum Zwecke eines Vergleichs
mit der Ausführungsform
veranschaulicht ist,
-
3 ein
Blockdiagramm, welches den Aufbau eines Systems mit einer Hauptvorrichtung
und dem flachen Speicher in der Realisierung durch die Ausführungsform
der vorliegenden Erfindung veranschaulicht,
-
4 ein
erläuterndes
Diagramm, in welchem konzeptionell ein Interface zwischen einem
in der Hauptvorrichtung verwendeten Mikroprozessor und dem flachen
Speicher bei der Ausführungsform veranschaulicht
ist,
-
5A ein
Diagramm, in welchem eine Vorderseite der äußeren Form des flachen Speichers veranschaulicht
ist,
-
5B ein Diagramm, welches eine Draufsicht
auf die äußere Form
des flachen Speichers veranschaulicht,
-
5C ein Diagramm, in welchem eine Seitenansicht
der äußeren Form
des flachen Speichers veranschaulicht ist,
-
5D ein Diagramm, in welchem eine Unteransicht
der äußeren Form
des flachen Speichers veranschaulicht ist,
-
6 ein
erläuterndes
Diagramm, in welchem eine Verarbeitungshierarchie eines durch die Ausführungsform
bereitgestellten Dateisystems veranschaulicht ist,
-
7A ein
erläuterndes
Diagramm, in welchem ein Segment in einer physikalischen Datenstruktur
eines Flash-Speichers veranschaulicht ist,
-
7B ein
erläuterndes
Diagramm, in welchem ein Start- bzw. Boot-Block in der physikalischen Datenstruktur
des Flash-Speichers veranschaulicht ist,
-
7C ein
erläuterndes
Diagramm, in welchem eine Sicherung eines Boot-Blocks in der physikalischen Datenstruktur
des Flash-Speichers veranschaulicht ist,
-
7D ein
erläuterndes
Diagramm, in welchem ein Block in der physikalischen Datenstruktur des
Flash-Speichers veranschaulicht ist,
-
7E ein
erläuterndes
Diagramm, in welchem eine Seite in der physikalischen Datenstruktur des
Flash-Speichers veranschaulicht ist,
-
7F ein
erläuterndes
Diagramm, in welchem ein redundanter Bereich der Seite in der physikalischen
Datenstruktur des Flash-Speichers veranschaulicht ist,
-
8 ein
erläuterndes
Diagramm, in welchem der Inhalt eines Management-Flags veranschaulicht ist,
-
9A ein
erläuterndes
Diagramm, in welchem ein Vorverarbeitungszustand bei der Beschreibung
des Konzepts der Verarbeitung zur Aktualisierung von Daten in einem
Flash-Speicher, eine logische Adresse und eine physikalische Adresse
veranschaulicht sind,
-
9B ein
erläuterndes
Diagramm, in welchem ein Nachverarbeitungszustand bei der Beschreibung
des Konzepts der Verarbeitung veranschaulicht ist, um Daten in einem
Flash-Speicher zu aktualisieren, sowie eine logische Adresse und
eine physikalische Adresse,
-
10 ein
erläuterndes
Diagramm, welches zur konzeptionellen Beschreibung des Konzepts
der Verwaltung einer Steuertabelle für logische/physikalische Adressen
benutzt wird,
-
11A ein Diagramm, in welchem die gesamte Datenstruktur
der durch diese Ausführungsform
bereitgestellten Steuertabelle für
logische/physikalische Adressen veranschaulicht ist,
-
11B ein Diagramm, in welchem eine Datenstruktur
eines Segments der durch diese Ausführungsform bereitgestellten
Steuertabelle für
logische/physikalische Adressen veranschaulicht ist,
-
12A ein erläuterndes
Diagramm, welches zur Beschreibung der Verwaltung von nicht benutzten
Blöcken
durch Nutzung der durch die Ausführungsform
bereitgestellten Steuertabelle für
logische/physikalische Adressen herangezogen wird,
-
12B ein erläuterndes
Diagramm, welches zur Beschreibung der Verwaltung von nicht benutzten
Blöcken
durch Nutzung der Steuertabelle für logische/physikalische Adressen
in dem konventionellen System herangezogen wird,
-
13 ein
erläuterndes
Diagramm, welches Beziehungen zwischen der Speicherkapazität eines Flash-Speichers,
der Anzahl von Blöcken,
der Größe eines
Blocks, der Größe einer
Seite und der Größe der Steuertabelle
für logische/physikalische
Adressen veranschaulicht,
-
14A ein erläuterndes
Diagramm, welches die physikalische Datenstruktur eines Segments
in einem durch die Ausführungsform
bereitgestellten Flash-Speicher veranschaulicht,
-
14B ein erläuterndes
Diagramm, welches die physikalische Datenstruktur eines Hauptdatenblockes
in dem durch die Ausführungsform
bereitgestellten Flash-Speicher veranschaulicht,
-
14C ein erläuterndes
Diagramm, welches die physikalische Datenstruktur eines Steuerdatenblocks
in dem durch die Ausführungsform
bereitgestellten Flash-Speicher veranschaulicht,
-
14D ein erläuterndes
Diagramm, welches die Struktur der Steuertabelle für logische/physikalische
Adressen in dem durch die Ausführungsform
bereitgestellten Flash-Speicher veranschaulicht,
-
15 ein
Ablaufdiagramm, in welchem ein Aufzeichnungsverfahren dargestellt
ist, welches in einer durch die Ausführungsform realisierten Aufzeichnungsvorrichtung
angewandt ist,
-
16 ein
Ablaufdiagramm, in welchem ein Verfahren zur Bestimmung eines zu
benutzenden Blocks in einer Operation zum Neuschreiben von Daten
und bei der verwandten Verarbeitung dargestellt ist, die in der
Steuertabelle für
logische/physikalische Adressen in der durch die Ausführungsform
realisierten Aufzeichnungsvorrichtung ausgeführt wird,
-
17 ein
Ablaufdiagramm, in welchem ein Verfahren zum Neuschreiben von Hauptdaten
bei der durch die Ausführungsform
realisierten Aufzeichnungsvorrichtung veranschaulicht ist, und
-
18 ein
Ablaufdiagramm, in welchem ein Verfahren zum Neuschreiben von Steuerdaten
in der durch die Ausführungsform
realisierten Aufzeichnungsvorrichtung veranschaulicht ist.
-
Nachstehend
wird eine Ausführungsform
der vorliegenden Erfindung beschrieben. Es sei darauf hingewiesen,
dass eine durch die Ausführungsform bereitgestellte
Speichervorrichtung ein durch die Ausführungsform bereitgestellter
flacher bzw. planarer Speicher mit einer ebenen äußeren Form ist.
-
Die
Ausführungsform
wird in folgender Reihenfolge beschrieben:
-
- 1
- Äußere Form
des Speichers,
- 2
- Speicherformat
- 2-1
- Verarbeitungshierarchie
eines Speicher-Dateisystems,
- 2-2
- physikalische
Datenstruktur,
- 2-3
- Konzept
von physikalischen und logischen Adressen,
- 2-4
- Steuertabelle
für logische/physikalische Adressen
gemäß der Ausführungsform,
- 3
- Systemkonfiguration.
-
1. Äußere Form des Speichers
-
Die
Beschreibung beginnt unter Bezugnahme auf die 5A, 5B, 5C und 5D mit der Planaren bzw. ebenen Form eines
flachen Speichers 1, bei dem es sich um eine Speichervorrichtung
handelt, die durch eine Ausführungsform
der vorliegenden Erfindung bereitgestellt wird.
-
Der
flache Speicher 1 ist durch eine Speichervorrichtung realisiert,
die in einem ebenen Gehäuse
eingeschlossen ist, wie dies in 5A, 5B, 5C und 5D veranschaulicht ist. Die betreffende
Speichervorrichtung weist in typischerweise eine bestimmte Speicherkapazität auf. Bei
dieser Ausführungsform ist
die Speichervorrichtung ein Flash-Speicher.
-
5A, 5B, 5C und 5D veranschaulichen in Diagrammen eine
Draufsicht, eine Vorderansicht, eine Seitenansicht bzw. eine Unteransicht
des Gehäuses,
welches beispielsweise als Kunststoffformteil mit einer typischen
Länge W11
von 60mm und einer typischen Breite W12 von 20mm, wie in 5B veranschaulicht, und einer typischen
Höhe W13
von 2,8mm, wie in 5A veranschaulicht, gebildet
ist.
-
Die
Anschlusseinheit 2, die auf der Oberfläche des Gehäuses gebildet ist, weist neun
Elektroden auf, die in einer solchen Art und Weise angeordnet sind,
dass sie sich von dem unteren Bereich der Vorderseite zur Unter-
bzw. Bodenseite hin erstrecken. Daten werden durch diese Anschlusseinheit 2 in
die interne Speichervorrichtung geschrieben oder aus dieser ausgelesen.
-
Ein
Einschnitt 3 ist an der oberen linken Ecke in dem die Draufsicht
des Gehäuses
veranschaulichenden Diagramm gebildet. Der Einschnitt 3 verhindert
beispielsweise, dass der flache Speicher 1 in einer falschen
Einführrichtung
in einen Gehäuseanbringungs-/-abnahmemechanismus
eines Laufwerks bzw. einer Steuervorrichtung der Hauptvorrichtung eingeführt wird.
-
An
der Unterseite des Gehäuses
ist eine wellige Fläche 4 gebildet,
um ein Durchrutschen des Gehäuses
zu verhindern, was die Benutzerfreundlichkeit des Gehäuses verbessert.
-
Ferner
ist an der Unterseite ein Schiebeschalter 5 gebildet, um
ein unabsichtliches Löschen von
in der internen Speichervorrichtung gespeicherten Daten zu verhindern.
-
2. Speicherformat
-
2-1. Verarbeitungshierarchie eines Speicher-Dateisystems
-
Anhand
der anschließenden
Beschreibung wird ein Format erläutert,
welches in dem System angewandt wird, wobei der flache Speicher 1 als
Aufzeichnungsträger
bzw. – medium
verwendet wird.
-
6 veranschaulicht
in einem erläuternden Diagramm
eine Dateisystem-Verarbeitungshierarchie
des Systems, in welchem der flache Speicher 1 als Aufzeichnungsträger verwendet
wird.
-
Wie
in 6 gezeigt, umfasst die Dateisystem-Verarbeitungshierarchie
an der Oberseite eine Anwendungsverarbeitungsschicht, gefolgt aufeinanderfolgend
von einer Datei-Verwaltungs-Verarbeitungsschicht, einer logischen
Adressenschicht, einer physikalischen Adressenschicht und einer Flash-Speicher-Zugriffsschicht
an der Unterseite der Hierarchie. Die Datei-Verwaltungs-Verarbeitungsschicht
in der betreffenden Hierarchie wird FAT (Datei-Zuweisungstabelle)
genannt. Wie aus 6 auch ersichtlich ist, führt das
Dateisystem gemäß der Ausführungsform
das Konzept der logischen und physikalischen Adressen ein, was später beschrieben wird.
-
2-2. Physikalische Datenstruktur
-
7A bis 7F veranschaulichen
in Diagrammen eine physikalische Datenstruktur eines Flash-Speichers,
der als Speichervorrichtung des flachen Speichers 1 verwendet
wird.
-
Der
Speicherbereich des Flash-Speichers ist in Segmente unterteilt,
d.h. in Grund-Dateneinheiten, die
jeweils eine feste Länge
aufweisen. Die Größe eines
Segments ist mit 4MB oder 8MB vorgeschrieben. Somit variiert die
Anzahl der einen Flash-Speicher bildenden
Segmente in Abhängigkeit
von der Kapazität
des Flash-Speichers.
-
Wie
in 7A veranschaulicht, ist ein Segment weiter in
Blöcke
unterteilt, deren jeder eine Dateneinheit darstellt, die eine vorgeschriebene
Länge von
8KB oder 16KB aufweist. Grundsätzlich
ist ein Segment in 512 Blöcke
unterteilt, nämlich
in Blöcke
0 bis n, wobei n=511 ist, wie dies in 7A veranschaulicht
ist. Einem Flash-Speicher ist indessen erlaubt, einen defekten Bereich
aufzuweisen, der Blöcke
bis zu einer bestimmten Anzahl umfasst. Ein defekter Bereich ist
ein beschädigter
Bereich, in den Daten nicht eingeschrieben werden können. Somit
ist die Anzahl der effektiven Blöcke,
in die Daten tatsächlich
eingeschrieben werden können,
geringer als 512, d.h. tatsächlich
ist n kleiner als 511.
-
Wie
in 7A veranschaulicht, werden zwei Blöcke am Kopfende
der Blöcke
0 bis n, nämlich
die Blöcke
0 und 1, Boot-Blöcke
genannt. Tatsächlich werden
jedoch die beiden Blöcke
am Kopfende der effektiven Blöcke
als Boot-Blöcke
genutzt. Somit besteht keine Gewähr
dafür,
dass Boot-Blöcke
stets die Blöcke
0 und 1 sind.
-
Die übrigen Blöcke stellen
Benutzerblöcke zur
Speicherung von Benutzerdaten dar.
-
Wie
in 7D veranschaulicht, ist ein Block weiter in Seiten
0 bis m unterteilt. Wie in 7E gezeigt,
umfasst eine Seite einen Datenbereich aus 512 Bytes sowie einen redundanten
Bereich bzw. Teil aus 16 Bytes, was eine feste Größe von 528
Bytes ergibt. Es sei darauf hingewiesen, dass die Struktur des redundanten
Bereiches später
unter Bezugnahme auf 7F erläutert wird.
-
Die
Anzahl der Seiten in einem Block beträgt 16 bei einer Blockgröße von 8KB,
und sie beträgt
32 für
eine Blockgröße von 16KB.
-
Die
in 7D gezeigte Blockstruktur und die in 7E gezeigte
Seitenstruktur trifft für
die Boot-Blöcke
und die Benutzerblöcke
zu.
-
Daten
werden in Seiteneinheiten in einen Flash-Speicher geschrieben und
aus diesem ausgelesen. Daten werden jedoch aus einem Flash-Speicher
in Blockeinheiten gelöscht.
Ein Flash-Speicher ist dadurch gekennzeichnet, dass Daten nicht
in einen Bereich geschrieben werden können, in welchem bereits zuvor
andere Daten eingeschrieben worden sind. Somit sind neue oder Ersatzdaten
in eine Seite zu schreiben, die durch das Dateiverwaltungssystem
als nicht benutzter Bereich angezeigt wird. Das Dateiverwaltungssystem ändert den
Status eines Blocks vom „benutzten" Status in einen „nicht benutzten" Status, indem lediglich
bestimmte Daten für
den Block in der Tabelle geändert
werden, die den Status von Blöcken
steuert, und zwar in einen neuen Wert, der angibt, dass der Block
ein nicht benutzter Block ist, ohne dass der Inhalt des Blocks gelöscht wird.
Aus diesem Grund ist es vor dem Einschreiben von Daten in diesen
nicht benutzten Block notwendig, dessen Inhalt zu löschen. Da
Inhalte, wie zuvor beschrieben, lediglich in Blockeinheiten gelöscht werden
können,
werden neue oder Ersatzdaten tatsächlich in den Flash-Speicher
in Blockeinheiten anstatt in Seiteneinheiten geschrieben.
-
Wie
in 7B veranschaulicht, ist auf der Seite 0 des ersten
Boot-Blocks ein Header gespeichert. Auf der Seite 1 ist eine Information
gespeichert, die eine Adresse angibt, welche die Position des Beginns
von schlechten bzw. fehlerhaften Daten anzeigt. Auf der Seite 2
ist eine Information gespeichert, die als CIS/IDI-Information bezeichnet
ist (das ist eine Karteninformationsstruktur-/Identifizierungs-Laufwerksinformation).
-
Wie
in 7C veranschaulicht, wird der zweite Boot-Block
als Sicherungsbereich genutzt.
-
Der
in 7E dargestellte redundante 16-Byte-Bereich weist
eine Struktur auf, wie sie in 7F veranschaulicht
ist.
-
Wie
in 7F gezeigt, stellen die ersten drei Bytes des
redundanten Bereiches, nämlich
die Bytes 0 bis 2, einen Überschreibbereich
dar, in welchem in Abhängigkeit
von der Aktualisierung des Inhalts des Datenbereichs neu geschrieben
werden kann. Genauer gesagt wird das Byte 0 zur Speicherung des Blockstatus
herangezogen, und das Byte 1 wird zur Speicherung des Datenstatus
(Block-Flag-Daten) benutzt. Eine bestimmte Anzahl von höherwertigen
Bits im Byte 2 wird zur Speicherung eines Aktualisierungsstatus
(Aktualisierungs-Status) genutzt.
-
Grundsätzlich liegen
die Inhalte der Bytes 3 bis 15 entsprechend den auf der Seite gespeicherten Daten
fest. Dies bedeutet, dass diese Bytes sich in einem Bereich zur
Speicherung von Informationen befinden, die nicht umgeschrieben
werden können.
-
Genauer
gesagt ist ein Verwaltungs- bzw. Management-Flag (Block-Info) im
Byte 3 gespeichert, und eine logische Adresse (Logik-Adresse) ist in
einem Bereich gespeichert, der den folgenden 2-Byte-Bereich, nämlich die
Bytes 4 und 5 umfasst.
-
Der
folgende 5-Byte-Bereich, der die Bytes 6 bis 10 umfasst, wird als
Format-Reservebereich
genutzt. Der folgende 2-Byte-Bereich, der die Bytes 11 und 12 umfasst,
wird zur Speicherung einer verteilten Information ECC (das ist ein
Fehlerkorrekturcode) zur Fehlerkorrektur für die Formatreserve genutzt.
-
Die übrigen Bytes
13 bis 15 werden zur Speicherung von ECC-Daten für eine Fehlerkorrektur bezüglich der
in dem in 7E gezeigten Datenbereich gespeicherten
Daten genutzt.
-
Wie
in 8 veranschaulicht, sind die Inhalte der Bits 7
bis 0 des in dem Byte 3 des in 7F veranschaulichten
redundanten Bereichs gespeicherten Management-Flags individuell
festgelegt.
-
Die
Bits 7, 6, 1 und 0 sind nicht festgelegte reservierte Bits.
-
Das
Bit 5 enthält
ein Flag, welches angibt, ob eine Zulässigkeit für einen Zugriff auf den Block
gültig oder
ungültig
ist. Genauer gesagt gibt ein Wert von 1 an, dass ein Zugriff auf
den Block frei vorgenommen werden kann, während ein Wert von 0 angibt,
dass der Block lese-geschützt
ist. Das Bit 4 enthält
ein ein Kopieren unterbindendes Spezifikations-Flag, dessen Wert
1 bedeutet, dass eine Kopieroperation zugelassen ist, während ein
Wert von 0 bedeutet, dass eine Kopieroperation verboten ist.
-
Das
Bit 3 stellt ein Steuertabellen-Flag dar, welches angibt, ob es
sich bei dem Block um einen Block zur Speicherung einer später zu beschreibenden
Steuertabelle für
logische/physikalische Adressen handelt oder nicht. Genauer gesagt
gibt ein Wert von 0 im Bit 3 an, dass der Block ein Block zur Speicherung
einer Steuertabelle für
logische/physikalische Adressen ist. Bin im Bit 3 festgelegter Wert
von 1 gibt andererseits eine Ablehnung an, d.h., dass der Block
nicht einen Block zur Speicherung einer Steuertabelle für logische/physikalische
Adressen darstellt.
-
Das
Bit 2 ist ein System-Flag. Ein Wert von 1 gibt an, dass der Block
ein Benutzerblock ist, während
ein Wert von 0 angibt, dass der Block ein Boot-Block ist.
-
Anschließend wird
unter Bezugnahme auf 13 eine Beziehung zwischen der
Speicherkapazität
eines Flash-Speichers und der Anzahl von Blöcken oder der Anzahl von Segmenten
erläutert.
-
Wie
in der betreffenden Zeichnungsfigur veranschaulicht, ist die Speicherkapazität des Flash-Speichers
des flachen Speichers 1 vorgeschrieben mit 4MB, 8MB, 16MB,
32MB, 64MB oder 128MB.
-
Im
Falle der minimalen Speicherkapazität von 4MB ist die Blockgröße mit 8KB
vorgeschrieben, und die Anzahl der Blöcke beträgt 512. Dies bedeutet, dass
die Speicherkapazität
von 4MB gerade gleich der Größe eines
Segments ist. Ein flacher Speicher 1 mit einem Flash-Speicher,
der eine Speicherkapazität
von 8MB besitzt, umfasst 1024 Blöcke, deren
jeder eine vorgeschriebene Größe von 8KB aufweist,
wie dies oben beschrieben worden ist. Die 1024 Blöcke stellen
zwei Segmente dar. Überdies umfasst,
wie oben beschrieben, ein 8KB-Block 16 Seiten.
-
Im
Falle eines flachen Speichers 1 mit einem Flash-Speicher,
der eine Speicherkapazität
von 16MB besitzt, kann die Größe eines
Blocks indessen 8KB oder 16KB betragen. Hierbei kann der flache Speicher 1 somit
2048 8KB-Blöcke
(oder vier Segmente) oder 1024 16KB-Blöcke (oder zwei Segmente) umfassen.
Ein 16KB-Block umfasst 32 Seiten.
-
Im
Falle eines flachen Speichers 1 mit einem Flash-Speicher,
der eine Speicherkapazität
von 32MB, 64MB oder 128MB aufweist, beträgt die Größe eines Blocks in vorgeschriebener
Weise lediglich 16KB. Somit umfasst ein flacher Speicher 1 mit
einem Flash-Speicher, der eine Speicherkapazität von 32MB aufweist, 2048 Blöcke (oder
vier Segmente), und ein flacher Speicher 1 mit einem Flash-Speicher, der
eine Speicherkapazität
von 64MB aufweist, umfasst 4096 Blöcke (oder acht Segmente). Demgegenüber umfasst
ein flacher Speicher 1 mit einem Flash-Speicher, dessen
Speicherkapazität
128MB beträgt,
8192 Blöcke
(oder 16 Segmente).
-
2-3. Konzept von physikalischen und logischen Adressen
-
Im
Zuge der folgenden Beschreibung wird ein Konzept von physikalischen
und logischen Adressen erläutert,
die in einem durch diese Ausführungsform
bereitgestellten Dateisystem angewandt werden, indem eine Operation
veranschaulicht wird, wie sie in 9A und 9B verdeutlicht
ist, um Daten in der zuvor erwähnten
physikalischen Datenstruktur eines Flash-Speichers zu aktualisieren.
-
9A veranschaulicht
in einem Diagramm vier Blöcke,
die als Modell aus einem Segment extrahiert sind.
-
Eine
physikalische Adresse ist jedem der Blöcke zugewiesen. Wie in der
Zeichnungsfigur dargestellt, nimmt die physikalische Adresse entsprechend
der physikalischen Anordnung der Blöcke im Speicher zu. Die Beziehung
zwischen einem Block und einer physikalischen Adresse, die dem Block
zugewiesen ist, liegt fest. Die Werte der physikalischen Adressen,
die den in 9A dargestellten vier Blöcken zugewiesen
sind, betragen 105 für
den oberen Block sowie 106, 107 und 108 in
der Reihenfolge darauffolgend. Es sei darauf hingewiesen, dass eine tatsächliche
physikalische Adresse eine Länge
von zwei Bytes besitzt.
-
Bei
dem in 9A gezeigten Beispiel werden
die Blöcke
mit den physikalischen Adressen 105 und 106 als
Blöcke
genutzt, in denen Daten gespeichert werden bzw. sind. Andererseits
sind die Blöcke mit
den physikalischen Adressen 107 und 108 nicht genutzte
Blöcke
oder Bereiche ohne Aufzeichnung, aus denen Daten gelöscht wurden.
-
Eine
logische Adresse ist eine Adresse, die Daten zugewiesen ist, welche
in einen Block geschrieben werden bzw. sind. Eine logische Adresse ist
eine Adresse, die durch das FAT-Dateisystem benutzt wird.
-
Bei
dem in 9A gezeigten Beispiel sind die
Werte der logischen Adressen, die Teilen von Daten in den vier Blöcken zugewiesen
sind, gegeben mit 102 für
die Daten in dem oberen Block sowie mit 103, 104 und 105 in
der folgenden Reihenfolge. Es sei darauf hingewiesen, dass eine
tatsächliche
logische Adresse ebenfalls eine Länge von 2 Bytes aufweist.
-
In
dem in 9A beispielsweise gezeigten Zustand
werden unter der physikalischen Adresse 105 gespeicherte
Daten aktualisiert, was bedeutet, dass die Inhalte unter der betreffenden
Adresse neu geschrieben oder zum Teil gelöscht werden.
-
In
einem solchen Fall werden in dem Dateisystem des Flash-Speichers
aktualisierte Daten nicht in denselben zu aktualisierenden Block
wieder eingeschrieben. Vielmehr werden die aktualisierten Daten in
einen nicht benutzten Block geschrieben.
-
Dies
bedeutet, dass, wie in 9B veranschaulicht, bei der
Verarbeitung (1) die unter der physikalischen Adresse 105 gespeicherten
Daten gelöscht
werden und dass sodann die aktualisierten Daten in einen Block unter
der physikalischen Adresse 107 geschrieben werden, der
soweit ein nicht benutzter Block gewesen ist.
-
Sodann
wird bei der Verarbeitung (2) die Zuweisung von logischen
Adressen derart geändert, dass
die logische Adresse 102, welche der physikalischen Adresse 105 im
Zustand vor dem in 9A dargestellten Datenaktualisierungsprozess
zugewiesen worden ist, der physikalischen Adresse 107 neu zugewiesen
wird, die dem Block zugeordnet ist, in den die aktualisierten Daten
geschrieben wurden, wie dies in 9B veranschaulicht
ist. Dadurch wird die logische Adresse 104, die vor dem
Datenaktualisierungsprozess der physikalischen Adresse 107 zugeordnet
worden war, der physikalischen Adresse 105 neu zugeordnet
bzw. zugewiesen.
-
Dies
bedeutet, dass eine physikalische Adresse einem Block dauerhaft
zugeordnet ist, während
eine logische Adresse als eine Adresse betrachtet werden kann, die
Daten permanent zugewiesen ist, welche die Größe einer Blockeinheit aufweisen und
einmal in einen Block geschrieben sind.
-
Durch
Tauschen von Blöcken,
wie oben beschrieben, wird ein Zugriff nicht in einer konzentrierten
Art und Weise wiederholt auf denselben Speicherbereich (Block) vorgenommen,
was es ermöglicht,
die Lebensdauer des Flash-Speichers zu verlängern, die durch die Anzahl
der Schreiboperationen bestimmt ist, welche in ihm ausgeführt werden.
-
Beim
Tauschen von logischen Adressen zwischen Blöcken durch Behandeln einer
logischen Adresse bei der Verarbeitung (2) in der oben
beschriebenen Weise werden Daten von der physikalischen Adresse
eines Blockes, der von den Daten vor dem Datenaktualisierungsprozess
belegt ist, zu der physikalischen Adresse eines Blockes verschoben, der
durch die aktualisierten Daten belegt ist. Dem FAT-Dateisystem erscheinen
die Daten jedoch als unter derselben logischen Adresse verblieben,
was anschließende
Zugriffe darauf richtig und korrekt vorzunehmen erlaubt.
-
Es
sei darauf hingewiesen, dass zur Vereinfachung der Steuerung der
Aktualisierung von in der Steuertabelle für logische/physikalische Adressen gespeicherten
Informationen die Verarbeitung des Tauschens von logischen Adressen
zwischen Blöcken
als Verarbeitung vorgeschrieben ist, um logische Adressen lediglich
zwischen Blöcken
zu tauschen, die dasselbe Segment betreffen. Anders dargestellt
heißt
dies, dass logische Adressen nicht zwischen Blöcken unterschiedlicher Segmente
getauscht werden.
-
2-4. Steuertabelle gemäß der Ausführungsform für logische/physikalische
Adressen
-
Wie
aus der Erläuterung
unter Bezugnahme auf 9A und 9B ersichtlich
sein dürfte, ändert das
Tauschen von logischen Adressen zwischen Blöcken die Zuordnung einer logischen
Adresse zu einer physikalischen Adresse. Eine Steuertabelle für logische/physikalische
Adressen wird zur Speicherung von Informationen bezüglich Zuordnungen
von logischen Adressen zu physikalischen Adressen benutzt. Um einen
Zugriff auf den Flash-Speicher zu realisieren, damit Daten in den
Flash-Speicher geschrieben oder aus diesem gelesen werden, ist somit die
Steuertabelle für
logische/physikalische Adressen erforderlich. Um dies im Einzelnen
darzulegen, bezieht sich das FAT-Dateisystem
auf die Steuertabelle für
logische/physikalische Adressen, um eine physikalische Adresse zu
identifizieren, die der logischen Adresse zugeordnet ist, welche
bei dem Zugriff durch das FAT-Dateisystem spezifiziert ist. Der Zugriff
erfolgt dann auf einen Block unter der identifizierten physikalischen
Adresse. Anders ausgedrückt heißt dies,
dass ein Zugriff durch das FAT-Dateisystem auf den Flash-Speicher nicht ohne
die Steuertabelle für
logische/physikalische Adressen vorgenommen werden kann.
-
Wenn
in dem konventionellen System der flache Speicher 1 an
dem Hauptgerät
bzw. der Hauptvorrichtung angebracht ist, ist eine Steuertabelle
für logische/physikalische
Adressen durch einen Mikroprozessor gebildet, der in dem Hauptgerät verwendet
wird, indem logische Adressen von redundanten Bereichen, wie in 7F veranschaulicht,
für sämtliche
Seiten in dem flachen Speicher 1 geprüft und dann in einem RAM-Speicher gespeichert
werden, der ebenfalls in dem Hauptgerät verwendet ist. Dies bedeutet,
dass der flache Speicher 1 keine in der Steuertabelle für logische/physikalische
Adressen gespeicherte Information enthält.
-
Im
Falle der Ausführungsform
ist demgegenüber
eine Steuertabelle für
logische/physikalische Adressen in dem flachen Speicher 1 gespeichert,
wie dies später
beschrieben wird.
-
10 veranschaulicht
in einem Diagramm konzeptionell den Aufbau einer Steuertabelle für logische/physikalische
Adressen, die in dem durch die vorliegende Erfindung bereitgestellten
flachen Speicher 1 zu speichern ist.
-
Bei
dieser Ausführungsform
werden logische Adressen, die in typischer Weise in steigender Reihenfolge
festgelegt werden bzw. sind, den physikalischen 2-Byte-Adressen zugeordnet,
wie dies durch Informationen in der Zuordnung angegeben wird, die in
der gebildeten Steuertabelle für
logische/physikalische Adressen gespeichert wird bzw. ist.
-
Es
sei darauf hingewiesen, dass tatsächlich die logischen und physikalischen
Adressen jeweils, wie zuvor beschrieben, durch zwei Bytes ausgedrückt werden.
Die Anzahl der Bits in den zwei Bytes ist groß genug, um 8192 Blöcke abzudecken,
aus denen ein Flash-Speicher mit einer maximalen Speicherkapazität von 128MB
besteht.
-
In
entsprechender Weise wie die physikalischen Adressen weisen die
logischen Adressen, wie in 10 veranschaulicht,
jeweils tatsächlich
eine Länge
von zwei Bytes auf. Überdies
sind die logischen/physikalischen 2-Byte-Adressen jeweils in einem
hexadezimalen Format dargestellt. Dies bedeutet, dass die der Angabe „0x" folgende Zahl hexadezimale
Ziffern umfasst. Es sei darauf hingewiesen, dass die hexadezimale
Darstellung unter Heranziehung der Schreibweise „0x" dazu herangezogen wird, eine Hexadezimalzahl
in derselben Weise während
des übrigen
Teiles der Beschreibung auszudrücken.
-
11A und 11B veranschaulichen
in Diagrammen eine typische Struktur der Steuertabelle für logische/physikalische
Adressen auf der Grundlage des in 10 veranschaulichten
Konzepts, wie es durch diese Ausführungsform bereitgestellt wird. Zum
leichteren Verständnis
der Beschreibung ist hier der in 7E und 7F dargestellte
redundante 16-Byte-Bereich weggelassen.
-
Die
durch diese Ausführungsform
bereitgestellte Steuertabelle für
logische/physikalische Adressen ist in einem bestimmten Block des Flash-Speichers
gespeichert, wie dies in 11A und 11B veranschaulicht ist. Es sei darauf hingewiesen,
dass ein Block zur Speicherung der Steuertabelle für logische/physikalische
Adressen stets als ein Block im letzten Segment vorgeschrieben ist.
-
Wie
in 11A gezeigt, werden die ersten zwei Seiten des
Blockes, nämlich
die Seiten 0 und 1 als ein Bereich zur Speicherung von Informationen der
Steuertabelle für
logische/physikalische Adressen für das Segment 0 genutzt. Im
Falle eines Flash-Speichers
mit einer Speicherkapazität
von 4MB, wie in 13 veranschaulicht, werden lediglich die
Seiten 0 und 1 als ein Bereich zur Speicherung von Informationen
der Steuertabelle für
logische/physikalische Adressen für das alleinige 1-Segment genutzt,
welches in dem Flash-Speicher existiert.
-
Ein
Flash-Speicher mit einer Speicherkapazität von 8MB umfasst zwei Segmente.
In diesem Fall werden die Seiten 0 und 1 als ein Bereich zur Speicherung
von Informationen der Steuertabelle für logische/physikalische Adressen
für das
Segment 0 genutzt, während
die Seiten 2 und 3 als ein Bereich zur Speicherung von Informationen
der Steuertabelle für logische/physikalische
Adressen für
das Segment 1 genutzt werden.
-
Da
die Speicherkapazität
des Flash-Speichers danach zunimmt, werden die folgenden zwei Seiten
als ein Bereich zur Speicherung von Informationen der Steuertabelle
fit logische/physikalische Adressen bezüglich eines zusätzlichen
Segments des Flash-Speichers
genutzt. Schließlich
umfasst ein Flash-Speicher mit der maximalen Speicherkapazität von 128MB
damit 16 Segmente. In diesem Fall werden sämtliche Seiten als Bereiche
zur Speicherung von Informationen der Steuertabelle für logische/physikalische
Adressen bezüglich
sämtlicher
Segmente genutzt, die im letzten Segment, das ist das Segment 15,
enthalten sind. In einem Flash-Speicher mit der maximalen Speicherkapazität von 128MB
werden somit alle 32 Seiten des Blockes genutzt. In 11A ist die letzte Seite des Blockes die Seite
N, wobei N gegeben ist mit 31.
-
Wie
aus der obigen Erläuterung
ersichtlich sein dürfte,
wird die Information der Steuertabelle für logische/physikalische Adressen
in Segmenteinheiten gesteuert.
-
11B veranschaulicht in einem Diagramm die Struktur
einer 2-Seiten-Information, die aus der Steuertabelle für logische/physikalische Adressen
bezüglich
eines Segments extrahiert ist. Da der Datenbereich einer Seite eine
Größe von 512 Bytes
besitzt, wie dies in 7E veranschaulicht ist, weist
die in 11B dargestellte Information
eine Länge
von 1024 (= 512 × 2)
Bytes auf.
-
Wie
in 11B veranschaulicht, ist der 1024 Bytes umfassende
2-Seiten-Datenbereich in Unterbereiche abgegrenzt, die jeweils aus
zwei Bytes bestehen. Die mit dem Byte 0 beginnenden und mit dem Byte 991 endenden
Unterbereiche sind als Unterbereiche vorgeschrieben, die dauerhaft
der logischen Adresse 0, der logischen Adresse 1, usw.
bis zur logischen Adresse 495 zugeordnet sind. Somit ist
die logische Adresse 495 den letzten zwei Bytes, nämlich dem
Byte 990 und dem Byte 991 zugeordnet. Jeder dieser
2-Byte-Unterbereiche wird zur Speicherung einer physikalischen Adresse
herangezogen, die einer logischen Adresse zugeordnet ist, der der Unterbereich
zugeordnet ist. Somit werden logische Adressen zwischen Blöcken als
Teil einer Operation zur Aktualisierung von tatsächlichen Daten getauscht, denen
eine der logischen Adressen, wie zuvor beschrieben, zugeordnet ist,
indem Zuordnungen der logischen Adressen zu physikalischen Adressen geändert werden,
die als Informationen in der durch diese Ausführungsform bereitgestellten
Steuertabelle für
logische/physikalische Adressen gespeichert sind. Um konkret zu
werden, werden die Zuordnungen der logischen Adressen zu physikalischen Adressen
durch Tauschen der physikalischen Adressen in dem in 11B gezeigten 2-Seiten-Datenbereich zwischen 2-Byte-Unterbereichen
geändert,
die den logischen Adressen dauerhaft zugeordnet sind.
-
Der
verbleibende 32-Byte-Bereich in dem 2-Seiten-Datenbereich vom Byte
992 bis zum Byte 1023 wird zur Speicherung von physikalischen Adressen
der verbleibenden 16 Blöcke
in dem Segment genutzt. Damit können
die physikalischen Adressen der übrigen
16 Blöcke
gesteuert werden. Ein verbleibender Block dient in typischer Weise
als sogenannter Arbeitsblock, der beispielsweise zur temporären Sicherung
von Daten benutzt wird, die bei einer Operation zur Aktualisierung
von Daten in Blockeinheiten neu zu schreiben sind.
-
Nebenbei
sei angemerkt, dass in Anbetracht des Umstandes, dass ein Segment
512 Blöcke
umfasst, wie dies früher
beschrieben worden ist, in der in 11A und 11B gezeigten Tabellenstruktur lediglich 496 Blöcke als
steuerbare Blöcke
dargestellt sind, denen die logischen Adressen 0 bis 495 zugeordnet
sind. Der Grund hierfür
liegt darin, dass der Rest zur Speicherung von physikalischen Adressen der
verbleibenden Blöcke,
wie oben beschrieben, genutzt wird und dass in einem Flash-Speicher
das Vorhandensein von einigen fehlerhaften Blöcken, die als nicht nutzbare
Blöcke
behandelt werden, unvermeidbar ist. Tatsächlich enthalten die verbleibenden
Blöcke
eine ziemlich große
Zahl von fehlerhaften Blöcken.
-
Tatsächlich sind
496 steuerbare Blöcke
ausreichend für
die Verwendung als gültige
Blöcke,
in die Daten geschrieben oder aus denen Daten gelöscht werden
können.
-
Wie
oben beschrieben, umfasst der Block zur Speicherung der Steuertabelle
für logische/physikalische
Adressen Seiten, deren jede einen redundanten Bereich zur Speicherung
eines Management- bzw. Verwaltungs-Flags aufweist, wie dies in 8 veranschaulicht
ist. Das Bit 3 des Management-Flags ist auf 0 gesetzt, um anzugeben,
dass der Block zur Speicherung einer Steuertabelle für logische/physikalische
Adressen genutzt wird.
-
Wenn
der die Steuertabelle für
logische/physikalische Adressen enthaltende Block aktualisiert wird,
d.h. dann, wenn die Inhalte der Steuertabelle für logische/physikalische Adressen
geändert
werden, wird die Verarbeitung zum Tauschen von logischen Adressen
zwischen Blöcken,
wie dies früher
unter Bezugnahme auf die 9A und 9B erläutert worden
ist, ohne Ausnahme durchgeführt.
Dies bedeutet, dass der Block zur Speicherung der Steuertabelle
für logische/physikalische
Adressen nicht festgelegt bzw. begrenzt ist oder dass es unmöglich ist, einen
Block vorzuschreiben, der für
die Speicherung der Steuertabelle für logische/physikalische Adressen
zweckbestimmt ist.
-
Somit
nimmt das FAT-Dateisystem Zugriffe auf den Flash-Speicher vor, um
den Speicher nach einem Block mit einer 0 abzusuchen, die im Bit
3 seines Management-Flags
gesetzt ist, und es erfolgt eine Erkennung eines derartigen Blocks
als Block zur Speicherung der Steuertabelle für logische/physikalische Adressen.
Um es für
das FAT-Dateisystem zu erleichtern, den Flash-Speicher nach einem
Block zur Speicherung der Steuertabelle für logische/physikalische Adressen
abzusuchen, ist es bezüglich
der Steuertabelle für
logische/physikalische Adressen bei dieser Ausführungsform vorgeschrieben,
dass sie stets in einem Block betreffend das letzte Segment des
Flash-Speichers zu speichern ist, d.h. in einem Segment, welches
durch die letzte Segmentnummer identifiziert ist. Demgemäß braucht
die FAT-Datei lediglich das letzte Segment nach einem Block zur Speicherung
der Steuertabelle für
logische/physikalische Adressen abzusuchen. Dies bedeutet, dass
es für
die FAT-Datei nicht notwendig ist, sämtliche Segmente in dem Flash-Speicher
nach einem Block zur Speicherung der Steuertabelle für logische/physikalische
Adressen abzusuchen.
-
Die
in 11A und 11B dargestellte Steuertabelle
für logische/physikalische
Adressen wird in einem Block in typischer Weise während eines Herstellungsprozesses
zur Herstellung des flachen Speichers 1 gespeichert.
-
In
der folgenden Beschreibung wird ein Beispiel unter Bezugnahme auf
die 14A, 14B, 14C und 14D erläutert, um
dem Leser Hilfe für
ein besseres Verständnis
darüber
zu vermitteln, was soweit beschrieben worden ist. Die 14A, 14B, 14C und 14D veranschaulichen
in Diagrammen einen Flash-Speicher mit einer Speicherkapazität von 4MB.
Wie früher
unter Bezugnahme auf 13 erläutert, enthalt der 4MB-Flash-Speicher lediglich
ein Segment mit 512 Blöcken,
deren jeder 16 Seiten aufweist.
-
Wie
in 14A veranschaulicht, ist das Segment des Flash-Speichers
das Segment 0 mit den Blöcken
0 und 1, die jeweils als Boot-Block dienen. Da das Segment 0 außerdem das
letzte Segment ist, sind darin sowohl Hauptdaten als auch Steuerdaten gespeichert.
Die physikalische Adresse des Blocks 0 ist gegeben mit 0x0000, die
keiner logischen Adresse zugeordnet ist. Durch dasselbe Merkmal
ist die physikalische Adresse des Blocks 1 gegeben mit 0x0001, die
ebenfalls keiner logischen Adresse zugeordnet ist.
-
Der
Block 2 unter einer physikalischen Adresse von 0x0002 wird zur Speicherung
von Hauptdaten genutzt; der betreffenden physikalischen Adresse
ist die logische Adresse 0x0001 zugeordnet. In entsprechender Weise
wird der Block 3 unter einer physikalischen Adresse 0x0003 zur Speicherung
von Hauptdaten genutzt, wobei der betreffenden physikalischen Adresse
eine logische Adresse 0x0000 zugeordnet ist. In entsprechender Weise
wird der Block 4 unter einer physikalischen Adresse 0x0004 zur Speicherung
von Hauptdaten genutzt, wobei der betreffenden physikalischen Adresse
eine logische Adresse 0x0004 zugeordnet ist. Der Block 5 wird unter
einer physikalischen Adresse 0x0005 zur Speicherung von Hauptdaten
genutzt, und der betreffenden physikalischen Adresse ist eine logische
Adresse 0x0003 zugeordnet. Nach demselben Merkmal wird der Block
6 unter einer physikalischen Adresse 0x0006 zur Speicherung von
Hauptdaten genutzt, und der betreffenden physikalischen Adresse
ist eine logische Adresse 0x0002 zugeordnet. Der Block 511 unter
einer physikalischen Adresse 0x01FF wird zur Speicherung von Hauptdaten
genutzt, und der betreffenden physikalischen Adresse ist eine logische Adresse
0x1FD zugeordnet. Andererseits wird der Block 123 unter einer physikalischen
Adresse 0x007B zur Speicherung von Steuerdaten benutzt, und der
betreffenden physikalischen Adresse ist eine logische Adresse 0x0005
zugeordnet.
-
14B veranschaulicht in einem Diagramm den Block
2, der für
die Speicherung von Hauptdaten genutzt wird, und 14C veranschaulicht in einem Diagramm den Block 123,
der für
die Speicherung von Steuerdaten genutzt wird. Wie in 14B und 14C gezeigt,
gibt es überhaupt
keinen Unterschied um Aufbau bzw. der Konfiguration zwischen Blöcken, die
zur Speicherung von Hauptdaten und zur Speicherung von Steuerdaten
genutzt werden. Der Unterschied zwischen den beiden Blöcken ist
der Wert des Steuertabellen-Flags, welches in dem redundanten Teil
bzw. Bereich der Seite 0 jedes der Blöcke gespeichert ist. Die in 14B und 14C dargestellten
Blöcke
seien als Beispiel herangezogen. Der Wert des Steuertabellen-Flags
im Block 2 beträgt,
wie in 14B angegeben, 1, um anzuzeigen,
dass dieser Block zur Speicherung von Hauptdaten genutzt wird. Demgegenüber beträgt der Wert
des Steuertabellen-Flags im Block 123, wie in 14C angegeben, 0, um anzuzeigen, dass dieser Block
zur Speicherung von Steuerdaten genutzt wird. Wie in 14B und 14C veranschaulicht,
wird ein logisches Adressenfeld des redundanten Bereiches in einem Block
zur Speicherung einer logischen Adresse genutzt, die in dem Block
gespeicherte Daten zugeordnet ist.
-
Um
die Zeichnungsfiguren zu vereinfachen, sind die logische Adresse
in dem in 14B dargestellten redundanten
Teil bzw. Bereich, die logische Adresse in dem in 14C dargestellten redundanten Teil bzw. Bereich
und die physikalischen Adressen in der in 14D gezeigten
Steuertabelle für
logische/physikalische Adressen jeweils im Hexadezimalformat unter
Weglassung des Codes 0x ausgedrückt.
Nicht speziell genutzt sind die schraffierten Bereiche in den redundanten
Teilen bzw. Bereichen innerhalb der in 14B und 14C gezeigten Blöcke jeweils mit unbestimmten
Inhalten.
-
Wie
oben beschrieben, wird der in 14C gezeigte
Block zur Speicherung von Steuerdaten genutzt, und zwar bei diesem
Beispiel in einem Flash-Speicher von 4MB. Wie in 14C veranschaulicht, sind lediglich zwei Seiten
des Blockes für die
Speicherung von Steuerdaten erforderlich, welche die Beziehungen
zwischen logischen Adressen und physikalischen Adressen bezüglich des
Segments 0 des 4MB-Flash-Speichers
darstellen, der die Extrablöcke
enthält.
Die übrigen
Seiten des Blockes sind nicht benutzt. Die Datenstruktur der in
diesen zwei Seiten gespeicherten Steuertabelle für logische/physikalische Adressen
ist in 14D veranschaulicht. Zwei Seiten
sind erforderlich zur Speicherung von Steuerdaten, welche Beziehungen
zwischen logischen Adressen und physikalischen Adressen bezüglich eines
Segments angeben. Im Falle eines Flash-Speichers, der mehr Segmente umfasst,
werden somit mehr Seiten in dem Block sogar dann genutzt, obwohl
unbenutzte Seiten in dem Block, wie in 14C veranschaulicht,
stets vorhanden sind, allerdings mit Ausnahme eines Flash-Speichers mit einer
Speicherkapazität
von 128MB, wie in 13 gezeigt.
-
14D veranschaulicht in einem Diagramm die Steuertabelle
für logische/physikalische Adressen,
in der Steuerdaten in den Seiten 0 und 1 des in 14C gezeigten Blockes gespeichert sind. Es sei
darauf hingewiesen, dass die logische Adresse 0x0000 abgekürzt einfach
die logische Adresse 0 ist, um 14D einfacher
zu gestalten, wobei diese Abkürzung
bei den anderen logischen Adressen eingewandt ist, die in 14D angegeben sind. 14D zeigt
nicht explizit, welches der beiden Bytes zur Speicherung des höherwertigen
Bytes der physikalischen Adresse genutzt wird und welches der beiden
Bytes zur Speicherung des niederwertigen Bytes der physikalischen
Adresse genutzt wird.
-
Physikalisch
umfasst ein Flash-Speicher mit einer Speicherkapazität von 4MB
512 Blöcke,
wie in 13 veranschaulicht. Da fehlerhafte
Blöcke
in dem Flash-Speicher vorhanden sind, werden maximal lediglich 493
Blöcken
ausschließlich
der beiden Boot-Blöcke
logische Adressen zugeordnet, wie dies in 14D veranschaulicht
ist.
-
Wie
in 14A veranschaulicht, ist die logische Adresse
0x0000 Daten zugeordnet, die in einem Block unter der physikalischen
Adresse 0x0003 gespeichert sind. In diesem Fall wird die physikalische
Adresse 0x0003 in zwei Bytes der Steuertabelle gemäß 14D für
logische/physikalische Adressen gespeichert, wobei diese beiden
Bytes der logischen Adresse 0 zugeordnet sind. Nach demselben Merkmal
wird bzw. ist die physikalische Adresse 0x0002 in der Steuertabelle
für logische/physikalische
Adressen gespeichert, wobei die betreffende physikalische Adresse
der logischen Adresse 1 zugeordnet ist. Die physikalische Adresse
0x0006 ist in der Steuertabelle für logische/physikalische Adressen
gespeichert, wobei diese physikalische Adresse der logischen Adresse
2 zugeordnet ist. In entsprechender Weise ist die physikalische
Adresse 0x0005 in der Steuertabelle für logische/physikalische Adressen
gespeichert, wobei die betreffende physikalische Adresse der logischen
Adresse 3 zugeordnet ist. Die physikalische Adresse 0x0004 ist in
der Steuertabelle für
logische/physikalische Adressen gespeichert, wobei diese physikalische
Adresse der logischen Adresse 4 zugeordnet ist. In entsprechender
Weise ist die physikalische Adresse 0x007B in der Steuertabelle
für logische/physikalische
Adressen gespeichert, wobei die betreffende physikalische Adresse
der logischen Adresse 5 zugeordnet ist. die physikalische Adresse 0x01FF
ist in der Steuertabelle für
logische/physikalische Adressen gespeichert, wobei der betreffenden physikalischen
Adresse die logische Adresse 493 zugeordnet ist.
-
Bei
einem Zugriff auf Daten in dem flachen Speicher 1 setzt
das Dateisystem eine bei dem Zugriff spezifizierte logische Adresse
in eine physikalische Adresse des die Daten enthaltenden Blocks
um, indem die Steuertabelle für
logische/physikalische Adressen herangezogen wird. Es sei beispielsweise angenommen,
dass ein Anwendungsprogramm einen Befehl zum sequenziellen Auslesen
von Daten aus den logischen Adressen 0x0002, 0x0003 und 0x0004 an
das Dateisystem abgibt. In diesem Fall verarbeitet das Dateisystem
den Befehl entsprechend der folgenden Prozedur.
-
Zunächst wird
der flache Speicher 1, wie in 14A veranschaulicht,
nach einem Block mit einem Null-Steuertabellen-Flag im redundanten
Teil bzw. Bereich seiner Seite 0 abgesucht. Als Ergebnis der Suche
wird der Block 123 zur Speicherung der Steuertabelle für logische/physikalische
Adressen ermittelt. Da in diesem Fall die logischen Adressen 0x0002,
0x0003 und 0x0004 offensichtlich dem ersten Teil der Steuertabelle
für logische/physikalische Adressen
zugehörig
sind und da die Größe eines
eingebetteten RAM-Speichers zur temporären Speicherung von Steuerdaten
der Steuertabelle für
logische/physikalische Adressen klein ist, werden lediglich Steuerdaten
der Seite 1 des Blockes 123 ausgelesen. Durch Heranziehen
der Steuerdaten werden sodann die logischen Adressen 0x0002, 0x0003
und 0x0004 in die physikalischen Adressen 0x0006, 0x0005 bzw. 0x0004
umgesetzt. Schließlich
liest das Dateisystem Teile der Daten sequenziell aus Blöcken unter
den physikalischen Adressen 0x0006, 0x0005 und 0x0004 aus, wie dies
durch den von dem Anwendungsprogramm abgegebenen Befehl gefordert
ist.
-
Zurückkommend
auf 13 werden nunmehr Beziehungen zwischen der Speicherkapazität eines
Flash-Speichers und der Größe einer
Steuertabelle für
logische/physikalische Adressen erläutert.
-
Wie
früher
unter Bezugnahme auf die 11A und 11B erläutert,
beträgt
die in der Steuertabelle für
logische/physikalische Adressen gespeicherte Informationsmenge zur
Steuerung eines Segments 1024 Bytes (oder 1KB), was zwei Seiten
entspricht. Zur Steuerung eines Flash-Speichers von einem Segment
mit einer Speicherkapazität
von 4MB, wie in 13 veranschaulicht, beträgt somit die
Größe der Steuertabelle
für logische/physikalische
Adressen 1KB. Zur Steuerung eines Flash-Speichers aus zwei Segmenten
mit einer Speicherkapazität
von 8MB belegt die Steuertabelle für logische/physikalische Adressen
einen Bereich von 2KB, was vier Seiten entspricht.
-
Zur
Steuerung eines Flash-Speichers mit bzw. aus vier Segmenten (=2048
Blöcken)
mit einer Speicherkapazität
von 16MB belegt die Steuertabelle für logische/physikalische Adressen
einen Bereich von 4KB, was acht Seiten entspricht. Zur Steuerung eines
Flash-Speichers mit zwei Segmenten (= 1024 Blöcke) mit einer Speicherkapazität von 16MB
belegt die Steuertabelle für
logische/physikalische Adressen einen Bereich von 2KB, was vier
Seiten entspricht.
-
Zur
Steuerung eines Flash-Speichers aus vier Segmenten mit einer Speicherkapazität von 32MB
belegt die Steuertabelle für
logische/physikalische Adressen einen Bereich von 4KB, was acht
Seiten entspricht. Zur Steuerung eines Flash-Speichers aus acht
Segmenten mit einer Speicherkapazität von 64MB belegt die Steuertabelle
für logische/physikalische
Adressen einen Bereich von 8KB, was 16 Seiten entspricht. Zur Steuerung
eines Flash-Speichers aus 16 Segmenten mit einer Speicherkapazität von 128MB
belegt die Steuertabelle für
logische/physikalische Adressen einen Bereich von 16KB, was 32 Seiten
entspricht.
-
Nebenbei
sei angemerkt, dass in der Steuertabelle für logische/physikalische Adressen
eines Dateisystems mit dem konventionellen Aufbau für einen
Flash-Speicher ein scheinbar unbestimmter Wert als physikalische
Adresse genutzt wird, die einer nicht benutzten logischen Adresse
zugeordnet ist.
-
Um
konkreter zu werden, sei eine Steuertabelle für logische/physikalische Adressen,
wie in 12B veranschaulicht, als Beispiel
herangezogen. Bei diesem Beispiel werden die logischen Adressen
0x0000, 0x0001, 0x0002 und 0x0003 bereits genutzt, und sie sind
den physikalischen Adressen 0x0002, 0x0006, 0x0007 bzw. 0x0008 zugeordnet.
Dies heißt,
dass die physikalischen Adressen 0x0002, 0x0006, 0x0007 und 0x0008,
unter denen Teile von Daten bereits gespeichert worden sind, den logischen
Adressen 0x0000, 0x0001, 0x0002 bzw. 0x0003 zugeordnet sind.
-
Wenn
andererseits die logische Adresse 0x0004 nicht benutzt wird, wird
ein ungültiger
Wert von 0xFFFF als physikalische Adresse genutzt, die der logischen
Adresse 0x0004 zugeordnet ist. Der ungültige Wert 0xFFFF, der als
physikalische Adresse festgelegt ist, zeigt an, dass ein Speicherbereich unter
diesen physikalischen Adresse nicht benutzt wird.
-
In
einem Versuch, neuerlich Daten in den nicht benutzten Speicherbereich
zu schreiben, der der logischen Adresse 0x0004 zugeordnet ist, indem auf
die in 12B gezeigte Steuertabelle für logische/physikalische
Adressen Bezug genommen wird, sucht das FAT-Dateisystem somit in
typischer Weise nach einem physikalisch nicht benutzten Block in
einer hierarchischen Ebene, die von der Steuertabelle für logische/physikalische
Adressen verschieden ist, bevor eine Operation zum Einschreiben
der Daten in den bei der Suche gefundenen Block ausgeführt wird.
Sodann werden die Inhalte der Steuertabelle für logische/physikalische Adressen
durch Katalogisierung der physikalischen Adresse des Blocks, in
den die Daten neuerlich geschrieben wurden, in der Steuertabelle
für logische/physikalische
Adressen unter einem Tabelleneintrag aktualisiert, der der logischen
Adresse 0x0004 zugeordnet ist.
-
Bei
einer solchen Ausführung
der Steuertabelle für
logische/physikalische Adressen wird jedoch das Auftreten des folgenden
Problems erwartet.
-
Es
sei angenommen, dass durch das Hauptgerät bzw. die Hauptvorrichtung
verarbeitete Daten sogenannte Echtzeitdaten sind, die längs der
Zeitachse betrachtet werden, wie Bewegtbilddaten oder Audiodaten
eines Musikstücks
oder dergleichen.
-
In
dem Hauptgerät
werden die längs
der Zeitachse festgestellten Eingabe- bzw. Eingangsdaten einer Signalverarbeitung
unterzogen, die in einer Echtzeitweise ausgeführt wird, bevor die betreffenden
Daten in dem flachen Speicher 1 als Aufzeichnungsdaten
aufgezeichnet werden.
-
Wenn
die Ausführung
der Steuertabelle für logische/physikalische
Adressen, wie früher
unter Bezugnahme auf 12B erläutert, angewandt wird, dann
muss bei der Operation zur Aufzeichnung der Daten in dem flachen
Speicher 1 der betreffende flache Speicher 1 natürlich nach
einem nicht benutzten Block abgesucht werden, wie dies oben beschrieben worden
ist. Bei einer Operation zur Aufzeichnung von Daten, die längs der
Zeitachse festgestellt worden sind, wie dies oben beschrieben worden
ist, ist es notwendig, die Eingangsdaten in den flachen Speicher 1 mit
bzw. unter einer solchen mittleren Geschwindigkeit einzuschreiben,
dass kein Datenüberlauf
auftritt. Die Suche, die zu dieser Zeit nach einem nicht benutzten
Block durchgeführt
wird, ist eine durch den Mikroprozessor 109 äußerst schwierig auszuführende Verarbeitung.
-
Dies
heißt,
dass es beim derzeitigen Stand der Technik sehr schwierig ist, Echtzeitdaten
in dem flachen Speicher 1 aufzuzeichnen. Praktisch werden solche
Daten lediglich in einer Standbilddatei oder in einer Textdatei
aufgezeichnet, die keine Echtzeitanforderungen auferlegt.
-
Um
das oben beschriebene Problem zu lösen, ist in der durch diese
Ausführungsform
bereitgestellten Steuertabelle für
logische/physikalische Adressen die physikalische Adresse eines
Blockes, der als nicht benutzter Bereich gesteuert ist, einer nicht
benutzten logischen Adresse zugeordnet. Ein Beispiel der durch diese
Ausführungsform
bereitgestellten Steuertabelle für
logische/physikalische Adressen ist in 12A veranschaulicht.
-
Bei
diesem Beispiel werden die logischen Adressen 0x0000, 0x0001, 0x0002
und 0x0003 bereits benutzt, und sie sind den physikalischen Adressen
0x0002, 0x0006, 0x0007 bzw. 0x0008 zugeordnet. Dies bedeutet, dass
die physikalischen Adressen 0x0002, 0x0006, 0x0007 und 0x0008, unter
denen Teile von Daten bereits gespeichert worden sind, den logischen
Adressen 0x0000, 0x0001, 0x0002 bzw. 0x0003 zugeordnet sind, und
zwar wie im Falle des in 12B gezeigten
Beispiels. Überdies
ist eine logische Adresse 0x0004, wie im Falle des in 12B gezeigten Beispiels, nicht benutzt.
-
Wie
in 12A veranschaulicht, ist bei dieser Ausführungsform
indessen eine physikalische Adresse 0x0009 eines typischen nicht
benutzten Blockes, welche die physikalische Adresse 0xFFFF ersetzt,
der nicht benutzten logischen Adresse 0x0004 zugeordnet. Bei diesem
Beispiel ist lediglich ein nicht benutzter Block dargestellt, der
einer nicht benutzten logischen Adresse zugeordnet ist. Es sei jedoch
darauf hingewiesen, dass andere bzw. weitere nicht benutzte Blöcke weiteren
bzw. anderen nicht benutzten logischen Adressen zugeordnet sein
können
und dass die physikalischen Adressen der betreffenden weiteren bzw.
anderen nicht benutzten Blöcke
den weiteren bzw. anderen nicht benutzten logischen Adressen in
derselben Weise zugeordnet sind wie die physikalische Adresse 0x0009
der logischen Adresse 0x0004 zugeordnet ist.
-
In
einer auf diese Art und Weise aufgebauten Steuertabelle für logische/physikalische
Adressen kann ein Bereich unter einer physikalischen Adresse, die
einer logischen Adresse zugeordnet ist, als der logischen Adresse
zugeordneter freier Bereich interpretiert werden.
-
Somit
ist das FAT-Dateisystem imstande, vor einer Bezugnahme auf die Steuertabelle
für logische/physikalische
Adressen in einer Aufzeichnungsoperation eine physikalische Adresse
eines nicht benutzten Blockes zu bestimmen, der einer logischen
Adresse zugeordnet ist, und es ist nicht länger notwendig, eine Verarbeitung
zur Suche nach einem nicht benutzten Block auszuführen, wie
im Falle der Ausführung
der in 12B gezeigten Steuertabelle
für logische/physikalische
Adressen. Dies bedeutet, dass es unter Bezugnahme auf die Steuertabelle
für logische/physikalische
Adressen möglich
ist, eine physikalische Adresse, die einer logischen Adresse zugeordnet
ist, für
einen freien Bereich durch das FAT-Dateisystem zu erhalten. Sodann
werden Daten in einem nicht benutzten Block unter der physikalischen
Adresse eingeschrieben, indem ein Zugriff auf den Block erfolgt.
Infolgedessen ist die von dem Mikroprozessor, der in dem Hauptgerät verwendet
ist, getragene Verarbeitungslast nennenswert herabgesetzt, und es
kann ohne Weiteres beispielsweise einen Operation zur Aufzeichnung
von Daten, die längs
der Zeitachse festgestellt werden, wie oben beschrieben, ausgeführt werden.
Außerdem
kann bei einer Operation zur Aufzeichnung von Daten, die keine Echtzeitverarbeitung
benötigen,
wie Textdateidaten oder Standbilddaten, die Zeit, die zum Einschreiben
der Daten in den Flash-Speicher gebraucht wird, selbstverständlich verkürzt werden,
indem das durch die Ausführungsform,
wie in 12A veranschaulicht, bereitgestellte
System im Vergleich zu dem konventionellen System angewandt wird.
-
Nunmehr
wird unter Bezugnahme auf ein in 15 dargestelltes
Ablaufdiagramm eine Prozedur zur Aufzeichnung von Daten erläutert, die
durch eine gemäß der Ausführungsform
ausgeführte
Aufzeichnungs-/Wiedergabevorrichtung ausgeführt wird.
-
Wie
in 15 veranschaulicht, beginnt das Ablaufdiagramm
mit einem Schritt S1, bei dem der als flacher Speicher 1 ausgeführte nichtflüchtige Speicher
zur Durchführung
einer Aufzeichnungsoperation nach einem Block abgesucht wird, der
als Steuerdatenbereich zur Speicherung von Steuerdaten der Steuertabelle
für logische/physikalische Adressen
genutzt wird, bevor die Aufzeichnungsoperation begonnen wird. Tatsächlich wird
lediglich das letzte Segment des die Steuertabelle für logische/physikalische
Adressen enthaltenden nichtflüchtigen
Speichers nach einem Block mit einem Null-Steuertabellen-Flag im
redundanten Teil bzw. Bereich der ersten Seite oder der Seite 0
des betreffenden Blockes abgesucht, wie dies in 14C veranschaulicht ist.
-
Der
Ablauf der Prozedur geht dann weiter zu einem Schritt S2, bei dem
eine Entscheidung darüber getroffen
wird, ob der lokale Speicher der Aufzeichnungs-/Wiedergabevorrichtung bereits einige
Steuerdaten der Steuertabelle für
logische/physikalische Adressen in einer Menge enthält, die
groß genug
ist, um einen Zugriff auf den nichtflüchtigen Speicher vorzunehmen.
Falls das Ergebnis der Entscheidung anzeigt, dass der lokale Speicher
bereits einige Steuerdaten der Steuertabelle für logische/physikalische Adressen
in einer Menge enthält,
die groß genug
ist, um einen Zugriff auf den nichtflüchtigen Speicher vorzunehmen,
geht der Verarbeitungsablauf weiter zu einem Schritt S5. Wenn das
Ergebnis der Entscheidung beim Schritt S2 anzeigt, dass der lokale
Speicher keine Steuerdaten der Steuertabelle für logische/physikalische Adressen
enthält,
die notwendig sind für
die Vornahme eines Zugriffs auf den nichtflüchtigen Speicher, dann geht
der Verarbeitungsablauf andererseits weiter zu einem Schritt S17.
Bei den Schritten S17, S18 und S19 wird ein Teil der derzeit in
dem lokalen Speicher gespeicherten Steuerdaten mit anderen Steuerdaten
getauscht. Beim Schritt S17 wird ein redundanter Bereich der derzeit
in dem lokalen Speicher gespeicherten Steuerdaten mit dem Steuertabelle-Flag
im Falle dieser Ausführungsform erzeugt,
um anzugeben, dass es sich bei den einzuschreibenden Daten um Steuerdaten
der Steuertabelle für
logische/physikalische Adressen handelt.
-
Die
Steuerdaten bilden einen Teil der Steuertabelle für logische/physikalische
Adressen. Eine logische Adresse, die vorab der Steuertabelle für logische/physikalische
Adressen zugeordnet ist, wird ebenfalls in dem redundanten Bereich
aufgezeichnet.
-
Beim
Schritt S18 werden die Steuerdaten der Steuertabelle für logische/physikalische
Adressen, die derzeit in dem lokalen Speicher gespeichert sind, und
der redundante Bereich, der beim Schritt S17 erzeugt worden ist,
unter der logischen Adresse in den nichtflüchtigen Speicher geschrieben.
Wie früher
beschrieben, wird die logische Adresse durch das Dateisystem unter
Heranziehung der Steuertabelle für
logische/physikalische Adressen in eine physikalische Adresse in
dem nichtflüchtigen
Speicher umgesetzt, in welchem die Steuerdaten und der redundante
Bereich tatsächlich
gespeichert werden bzw. sind.
-
Beim
Schritt S19 werden einige Steuerdaten aus der Steuertabelle für logische/physikalische Adressen,
die für
die Vornahme eines Zugriffs auf den nichtflüchtigen Speicher benötigt werden,
wie dies beim Schritt S2 bestimmt ist, aus dem nichtflüchtigen
Speicher zu dem lokalen Speicher übertragen. Nach Abschluss der
Verarbeitung gemäß dem Schritt S19
geht der Prozedurablauf weiter zum Schritt S5.
-
Beim
Schritt S5 wird ein Attribut der in den nichtflüchtigen Speicher einzuschreibenden
Daten überprüft, um eine
Entscheidung darüber
zu treffen, ob die Daten Steuerdaten oder Hauptdaten sind. Falls
das Ergebnis der Entscheidung ein Attribut von Hauptdaten anzeigt,
geht der Prozedurablauf weiter zu einem Schritt S8. Falls demgegenüber das
Ergebnis der Entscheidung ein Attribut von Steuerdaten anzeigt,
geht der Prozedurablauf weiter zu einem Schritt S3.
-
Beim
Schritt S3 wird ein redundanter Bereich der beim Schritt S5 erkannten
Steuerdaten mit dem Steuertabellen-Flag des redundanten Bereichs
im Falle dieser Ausführungsform
erzeugt, um anzuzeigen, dass die einzuschreibenden Daten Steuerdaten der
Steuertabelle für
logische/physikalische Adressen sind. Die Steuerdaten bilden einen
Teil der Steuertabelle für
logische/physikalische Adressen. Außerdem wird in dem redundanten
Bereich eine logische Adresse aufgezeichnet, die vorab der Steuertabelle
für logische/physikalische
Adressen zugeordnet worden ist.
-
Der
Prozedurablauf geht dann weiter zu einem Schritt S4, bei dem die
beim Schritt S5 erkannten Steuerdaten und der beim Schritt S3 erzeugte
redundante Bereich unter der logischen Adresse in den nichtflüchtigen
Speicher geschrieben werden. Wie früher beschrieben, wird die logische
Adresse durch das Dateisystem unter Heranziehung der Steuertabelle
für logische/physikalische
Adressen in eine physikalische Adresse in dem nichtflüchtigen
Speicher umgesetzt, unter der die Steuerdaten und der redundante
Bereich tatsächlich
gespeichert werden.
-
Beim
Schritt S8 wird ein nächster
Block, in den die Hauptdaten zu schreiben sind, bestimmt, indem
ein Teil der derzeit in dem lokalen Speicher gespeicherten Steuertabelle
für logische/physikalische Adressen
herangezogen wird. Der Prozedurablauf geht dann weiter zu einem
Schritt S9, bei dem eine Anzahl von Seiten, in die die Hauptdaten
zu schreiben sind, bei 0 initialisiert wird.
-
Der
Prozedurablauf geht dann weiter zu einem Schritt S10, bei dem Hauptdaten
einer Seite von dem digitalen Signalprozessor DSP 102 eingegeben werden.
-
Bei
einem Schritt S11 wird eine Entscheidung darüber getroffen, ob die Nummer
einer Seite, in die die Hauptdaten zu schreiben sind, gegeben ist mit
0 oder nicht. Falls die Seitennummer gegeben ist mit 0, geht der
Prozedurablauf weiter zu einem Schritt S12. Falls demgegenüber die
Seitennummer nicht gegeben ist mit 0, geht der Prozedurablauf weiter
zu einem Schritt S13. Bei dieser Ausführungsform weist eine Nicht-Null-Flag-Nummer
einen Wert im Bereich von 1 bis 15 auf.
-
Beim
Schritt S12 wird ein redundanter Bereich der erkannten Hauptdaten
erzeugt, wobei das Steuertabellen-Flag des redundanten Bereichs
im Falle dieser Ausführungsform
auf 1 gesetzt wird bzw. ist, um anzuzeigen, dass die zu schreibenden
Daten Hauptdaten sind. Vorab wird der Steuertabelle für logische/physikalische
Adressen eine logische Adresse zugewiesen, die ebenfalls in dem
redundanten Bereich aufgezeichnet wird.
-
Der
Schritt S13 ist dem Schritt S12 ähnlich, allerdings
mit der Ausnahme, dass die Inhalte eines erzeugten redundanten Bereichs
beliebig sind. Die Inhalte können
die Werte sein, die beim Schritt S12 festgelegt worden sind.
-
Nach
Abschluss der Verarbeitung gemäß dem Schritt
S12 oder S13 geht der Prozedurablauf weiter zu einem Schritt S14,
bei der der beim Schritt S12 oder S13 erzeugte redundante Teil und
die beim Schritt S10 erhaltenen 1-Seite-Hauptdaten in eine Seite
des Blockes in den nichtflüchtigen
Speicher geschrieben werden. Der Block wurde beim Schritt S8 bestimmt,
und die Seite wird durch eine Seitennummer angezeigt, die beim Schritt
S9 initialisiert wurde.
-
Der
Prozedurablauf geht dann weiter zum Schritt S15, bei dem die Seitennummer
inkrementiert wird.
-
Der
Prozedurablauf geht dann weiter zu einem Schritt S16, um eine Entscheidung
darüber
zu treffen, ob die beim Schritt S15 inkrementierte Seitennummer
die Nummer bzw. Anzahl der Seiten pro Block im nichtflüchtigen
Speicher erreicht hat oder nicht. Bei dieser Ausführungsform
ist die Anzahl der Seiten pro Block im nichtflüchtigen Speicher gegeben mit
16. Somit zeigt eine Seitennummer, die gleich 16 ist, an, dass die
Operation zum Einschreiben von Daten in eine Blockeinheit abgeschlossen worden
ist. In diesem Fall geht der Prozedurablauf zurück zum Schritt S2. Falls demgegenüber beim Schritt
S16 festgestellt wird, dass die Seitennummer kleiner ist als 16,
geht der Prozedurablauf zurück zum
Schritt S10.
-
Durch
Ausführen
der oben beschriebenen Operationen ist die Aufzeichnungs-/Wiedergabevorrichtung
imstande, Hauptdaten in dem flachen Speicher 1 aufzuzeichnen.
-
In
der folgenden Beschreibung wird unter Bezugnahme auf die 16, 17 und 18 eine
Operation zum Neuschreiben von Hauptdaten oder Steuerdaten erläutert. In
der folgenden Beschreibung werden die Hauptdaten und die Steuerdaten
einfach als Daten bezeichnet.
-
Bei
dieser Ausführungsform,
bei der der durch einen nichtflüchtigen
Flash-Speicher realisierte flache Speicher 1 angewandt
wird, werden Daten erneut in Blockeinheiten geschrieben. Der Grund
hierfür
liegt darin, dass im Unterschied zu einer Operation des Schreibens
von neuen Daten in einen Flash-Speicher Daten bereits in einen Block
neu geschrieben worden sind, aus dem zuvor Daten gelöscht worden
sind. Als eine Charakteristik eines Flash-Speichers werden die kleinsten
physikalischen Speichereinheiten von gelöschten Daten, die jeweils eine
Zelle genannt werden, alle auf „1" gesetzt. Somit kann die kleinste physikalische
Speichereinheit als ein Bit von logischen Daten betrachtet werden.
Bei einer Operation zum Einschreiben von Daten in einen Flash-Speicher
werden lediglich Nullen in Zellen eingeschrieben, die 0-Bits der
Daten entsprechen. Genauer gesagt werden derartige Zellen jeweils
in einen elektrischen Zustand 0 gebracht. Nachdem eine Zelle in
einen elektrischen Zustand 0 gebracht ist, kann die Zelle nicht
wieder in einen elektrischen Zustand 1 gebracht werden, und zwar
auch dann nicht, wenn ein Bit mit einem Wert 1 in die Zelle geschrieben
wird. Eine derartige Zelle kann in den elektrischen Zustand 1 lediglich
in einer Block-Löschoperation
zurückgebracht
werden. Außerdem
werden, wie früher
beschrieben, bei dieser Ausführungsform
aktualisierte Daten nicht wieder in denselben Bereich geschrieben,
um die Lebensdauer des Flash-Speichers zu verlängern, die sonst durch wiederholte
Operationen des Schreibens von Daten in denselben Bereich verkürzt werden
kann. Vielmehr werden aktualisierte Daten in einen Block neu geschrieben,
der derzeit nicht benutzt ist. Dies heißt, dass bei einer Neuschreiboperation
die aktualisierten Daten von dem durch Daten soweit belegten Block
zu dem nicht benutzten Block verschoben oder in diesen kopiert werden.
-
Wie
zuvor beschrieben, weist die Steuertabelle für logische/physikalische Adressen
einen Aufbau auf, bei dem jede logische Adresse dauerhaft einem
Tabelleneintrag zugeordnet ist und bei dem eine dynamisch veränderbare
physikalische Adresse, die der logischen Adresse zugeordnet ist,
in dem Tabelleneintrag gespeichert wird bzw. ist. Bei einer Operation
zum Neuschreiben von Daten in einen nicht benutzten Block ist es
notwendig, die physikalische Adresse des nicht benutzten Blocks
zu kennen. Wie in 11B veranschaulicht, umfasst
ein Teil der Steuertabelle für
logische/physikalische Adressen bezüglich des Segments 1 2Byte-Tabelleneinträge von 0
bis 495, die dauerhaft logischen Adressen von 0 bis 495 zugeordnet
sind. Eine einer logischen Adresse zugehörige physikalische Adresse
ist einem aufgezeichneten Tabelleneintrag zugeordnet. Tabelleneinträge nach
dem Tabelleneintrag 495 werden jeweils zur Speicherung der physikalischen
Adresse eines Extrablockes genutzt. Der Kopfteil der Tabelleneinträge zur Speicherung
von physikalischen Adressen von Extrablöcken wird eindeutig durch eine
Segmentnummer bestimmt.
-
16 veranschaulicht
in einem Ablaufdiagramm ein Verfahren zum Bestimmen eines Blockes, der
bei einer Operation zum Neuschreiben von Daten als Schreib-Zielblock zu verwenden
ist, sowie die zugehörige
Verarbeitung, die in der Steuertabelle für logische/physikalische Adressen
ausgeführt
wird.
-
Wie
in der betreffenden Zeichnungsfigur veranschaulicht, beginnt das
Ablaufdiagramm beim Schritt S21, bei dem eine physikalische Adresse
beliebig aus den Tabelleneinträgen
für Extrablöcke, wie in 11B veranschaulicht, als physikalische Adresse
eines Schreib-Zielblockes ausgewählt
wird. Ein Schreib-Zielblock
stellt einen Block dar, in den Daten tatsächlich einzuschreiben sind.
-
Beim
Schritt S22 wird die physikalische Adresse, welche der logischen
Adresse zugehörig ist,
die einem Block zugeordnet ist, der der Neuschreiboperation unterzogen
wird, aus der in 11B gezeigten Steuertabelle
für logische/physikalische
Adressen ermittelt. Es sei darauf hingewiesen, dass Daten tatsächlich in
einen Schreib-Zielblock anstatt in den Block geschrieben werden,
der der Schreiboperation unterzogen wird.
-
Beim
Schritt S23 wird die physikalische Adresse des beim Schritt S21
ausgewählten Schreib-Zielblocks
in einen Tabelleneintrag katalogisiert, aus dem die physikalische
Adresse des Blocks, der der Neuschreiboperation unterzogen wird,
beim Schritt S22 ermittelt wurde. Beim Schritt S24 wird die beim
Schritt S22 ermittelte physikalische Adresse des Blockes, der der
Neuschreiboperation unterzogen wird, in einen Tabelleneintrag für einen
Extrablock katalogisiert, aus dem die physikalische Adresse des
Schreib-Zielblocks beim Schritt S21 ermittelt wurde.
-
Anschließend wird
unter Bezugnahme auf ein in 17 gezeigtes
Ablaufdiagramm eine Prozedur zum Neuschreiben von Hauptdaten erläutert.
-
Wie
in der betreffenden Zeichnungsfigur veranschaulicht, beginnt das
Ablaufdiagramm beim Schritt S31, bei dem ein Schreib-Zielblock in
derselben Weise ermittelt wird, wie beim Schritt S21 gemäß dem in 16 gezeigten
Ablaufdiagramm. Beim Schritt S32 werden Daten aus dem Schreib-Zielblock gelöscht. Daten
müssen
aus dem Schreib-Zielblock angesichts des früher bereits beschriebenen Grundes
gelöscht
werden.
-
Beim
Schritt S33 wird ein Aktualisierungs-Status-Flag des in 7F gezeigten Schreib-Quellblocks
gesetzt. Der Schreib-Quellblock stellt einen Block dar, welcher
der Neuschreiboperation unterzogen wird. Die Verarbeitung gemäß dem Schritt
S33 wird ausgeführt,
um mit einem Störfall, wie
einem Spannungsversorgungsausfall, fertig zu werden. Im Falle eines
Spannungsversorgungsausfalls kann sogar dann, wenn es Blöcke gibt,
die dieselbe logische Adresse im selben Segment aufweisen, bei gesetztem
Aktualisierungs-Status-Flag
der Schreib-Quellblock mit Leichtigkeit identifiziert werden. Nachdem
der Schreib-Quellblock identifiziert ist, wird es leicht, den Schreib-Zielblock
wieder zu bestimmen.
-
Beim
Schritt S34 werden die Inhalte der Steuertabelle für logische/physikalische
Adressen in derselben Weise wie bei den Schritten S22, S23 und S24
in dem in 16 gezeigten Ablaufdiagramm
aktualisiert. Auf diese Weise wird die physikalische Adresse des
Schreib-Zielblocks in einem Tabelleneintrag der Steuertabelle für logische/physikalische Adressen
als physikalische Adresse katalogisiert, die einer logischen Adresse
zugehörig
ist, welche dem Tabelleneintrag zugeordnet ist.
-
Beim
Schritt S35 werden die ursprünglichen Daten
aktualisiert, während
die aktualisierten Daten in den Schreib-Zielblock neu geschrieben
werden.
-
Anschließend wird
unter Bezugnahme auf ein in 18 gezeigtes
Ablaufdiagramm eine Prozedur zum Neuschreiben der Steuerdaten selbst,
das heißt
der Steuertabelle für
logische/physikalische Adressen erläutert.
-
Wie
in der betreffenden Zeichnungsfigur veranschaulicht, beginnt das
Ablaufdiagramm beim Schritt S41, bei dem ein Schreib-Zielblock in
derselben Weise wie beim Schritt S21 in dem in 16 gezeigten
Ablaufdiagramm ermittelt wird. Beim Schritt S42 werden Daten aus
dem Schreib-Zielblock gelöscht.
Daten müssen
aus dem Schreib-Zielblock angesichts des bereits früher beschriebenen
Grundes gelöscht
werden.
-
Beim
Schritt S43 wird ein Aktualisierungs-Status-Flag des in 7F gezeigten Schreib-Quellblocks
gesetzt. Die Verarbeitung gemäß dem Schritt
S43 wird ausgeführt,
um mit einem Störfall,
wie mit einem Spannungsversorgungsausfall, fertig zu werden. Im
Falle eines Spannungsversorgungsausfalls kann sogar in dem Fall,
dass Blöcke,
die dieselbe logische Adresse im selben Segment besitzen, bei gesetztem
Aktualisierungs-Status-Flag der Schreib-Quellblock mit Leichtigkeit
identifiziert werden. Nachdem der Schreib-Quellblock identifiziert
ist, ist es ein Leichtes, den Schreib-Zielblock wieder zu bestimmen.
-
Beim
Schritt S44 wird ein Steuertabellen-Flag im redundanten Teil der
Seite 0 des Schreib-Zielblocks auf 0 zurückgesetzt, um anzuzeigen, dass
dieser Schreib-Zielblock ein Block zur Speicherung der Steuertabelle
für logische/physikalische
Adressen ist. Wie früher
beschrieben, ist ein Flash-Speicher dadurch gekennzeichnet, dass
nach erfolgter Rücksetzung
einer Zelle des Flash-Speichers auf 0 diese solange nicht wieder
auf 1 zurückgebracht
werden kann, bis Daten in dem die Zelle enthaltenden Block durch
ein Blocklöschen
gelöscht wird.
Auf diese Weise wird der Schreib-Zielblock als Block zur Speicherung
der Steuertabelle für
logische/physikalische Adressen erkannt, bis die Tabelle aus dem
Block gelöscht
wird.
-
Beim
Schritt S45 werden die Inhalte der Steuertabelle für logische/physikalische
Adressen in derselben Weise aktualisiert wie bei den Schritten S22,
S23 und S24 in dem in 16 gezeigten Ablaufdiagramm.
Auf diese Weise wird die physikalische Adresse des Schreib-Zielblocks
in einem Tabelleneintrag in der Steuertabelle für logische/physikalische Adressen
als physikalische Adresse katalogisiert, die einer logischen Adresse
zugehörig
ist, welche dem Tabelleneintrag zugeordnet ist.
-
Beim
Schritt S546 werden die ursprünglichen
Daten aktualisiert, während
die aktualisierten Daten in den Schreib-Zielblock neu bzw. umgeschrieben
werden.
-
3. Systemkonfiguration
-
3 veranschaulicht
in einem Blockdiagramm den Aufbau bzw. die Konfiguration eines Hauptgeräts, welches
imstande ist, Daten in den durch die soweit beschriebene Ausführungsform
der vorliegenden Erfindung bereitgestellten flachen Speicher 1 zu
schreiben und aus diesem auszulesen. Das Hauptgerät 100,
wie es in 3 dargestellt ist, und der flache
Speicher 1 bilden ein elektronisches Gerätesystem,
welches durch die Ausführungsform
realisiert ist. In diesem Fall ist das Hauptgerät bzw. die Hauptvorrichtung 100 imstande,
zumindest Audiodaten in den flachen Speicher 1 zu schreiben
und aus diesem auszulesen.
-
Der
Aufbau des Hauptgeräts 100 umfasst
einen Gehäuse-Anbringungs-/-Loslösungsmechanismus 120 zum
Anbringen und Lösen
des flachen Speichers 1 an bzw. von dem Hauptgerät 100.
Daten werden zwischen dem flachen Speicher 1, der an dem Gehäuse-Anbringungs-/-Loslösungsmechanismus 120 angebracht
ist, und dem Mikroprozessor 109 durch ein Host-Interface-IC 101 ausgetauscht.
-
Darüber hinaus
weist das Hauptgerät 100 in typischer
Weise auch ein Mikrofon 103 zur Eingabe eines Audiosignals
auf, welches durch Sprache oder Schall repräsentiert ist. Das analoge Audiosignal
wird dann einem digitalen Signalprozessor (DSP) 102 mittels
eines Mikrofonverstärkers 104 zugeführt. In
dem DSP-Prozessor 102 wird das eingangsseitige analoge
Audiosignal in digitale Audiodaten umgesetzt, die einer notwendigen
Signalverarbeitung unterzogen werden, wie einem Codierungsprozess,
bevor sie an den Mikroprozessor 109 als Aufzeichnungsdaten
abgegeben werden.
-
Der
Mikroprozessor 109 ist imstande, eine Verarbeitung zur
Aufzeichnung der Aufzeichnungsdaten in dem flachen Speicher 1 mittels
des Host-Interface-IC 101 auszuführen.
-
Überdies
liest der Mikroprozessor 109 in dem flachen Speicher 1 aufgezeichnete
Audiodaten über
das Host-Interface-IC 101 aus und gibt die Daten an den
DSP-Prozessor 102 ab.
-
In
dem DSP-Prozessor 102 werden die von dem Mikroprozessor 109 her
empfangenen Daten einer notwendigen Signalverarbeitung, wie einer
Demodulation, unterzogen. Der DSP-Prozessor 102 gibt schließlich ein
analoges Audiosignal, welches als Ergebnis der Verarbeitung erhalten
wird, an einen Lautsprecherverstärker 105 ab.
Der Lautsprecherverstärker 105 verstärkt das
von dem DSP-Prozessor 104 her erhaltene analoge Audiosignal
und gibt ein verstärktes
Signal an einen Lautsprecher 106 ab. Auf diese Weise wird
ein Wiedergabe-Audiosignal abgegeben.
-
Durch
Steuern eines Anzeige- bzw. Display-Treibers 107 ist der
Mikroprozessor 109 imstande, ein gewünschtes Bild auf einer Display-
bzw. Anzeigeeinheit 108 anzuzeigen. Es sei angenommen, dass
Bilddaten, die ein Bewegtbild oder ein Standbild darstellen, in
dem flachen Speicher 1 gespeichert worden sind. In diesem
Falle ist der Mikroprozessor imstande, die aus dem flachen Speicher 1 ausgelesenen
Bilddaten auf der Anzeige- bzw. Displayeinheit 108 anzuzeigen.
-
Eine
Bedienungseinheit 112 ist mit einer Vielzahl von Tasten
versehen, die vom Benutzer zu nutzen sind, um eine Vielfalt von
Operationen für
das Hauptgerät 100 auszuführen. Der
Mikroprozessor 109 empfangt einen Befehl, der durch den
Benutzer per Bedienung der Bedienungseinheit 112 eingegeben
ist, und er führt
die notwendige Steuerungsverarbeitung entsprechend dem Befehl aus.
-
Es
sei darauf hingewiesen, dass der Aufbau des Hauptgerätes 100,
wie es in 3 veranschaulicht ist, letztlich
typisch ist. Dies heißt,
dass das Hauptgerät 100 nicht
auf den in der Figur gezeigten typischen Aufbau beschränkt ist.
Mit anderen Worten ausgedrückt
heißt
dies, dass das Hauptgerät 100 als elektronisches
Gerät irgendeines
Typs realisiert sein kann, solange das elektronische Gerät imstande
ist, Daten mit dem durch die Ausführungsform bereitgestellten
flachen Speicher 1 auszutauschen.
-
Um
Operationen zum Aufzeichnen und Wiedergeben (oder Schreiben und
Lesen) von Daten in den bzw. aus dem zuvor erwähnten flachen Speicher 1 mittels
des Hauptgeräts 100,
welches den in 3 gezeigten Aufbau besitzt,
zu realisieren, ist es erforderlich, dass auf die Steuertabelle
für logische/physikalische
Adressen durch das FAT-Dateisystem, wie es oben beschrieben worden
ist, Bezug genommen wird.
-
4 veranschaulicht
in einem erläuternden Diagramm
konzeptionell ein Interface zwischen dem Mikroprozessor 109,
der in dem Hauptgerät 100 aufgrund
des in 3 gezeigten Aufbaus verwendet ist, und der in
dem flachen Speicher 1 gespeicherten Steuertabelle für logische/physikalische
Adressen.
-
Wenn
der durch die Ausführungsform
bereitgestellte flache Speicher 1 beispielsweise an dem Hauptgerät 100 angebracht
ist, liest der Mikroprozessor 109 notwendige Daten in der
Steuertabelle TB für logische/physikalische
Adressen aus dem flachen Speicher 1 durch das Host-Interface-IC 101 aus
und speichert die Daten in einem internen RAM-Speicher 111.
-
Der
Aufbau des konventionellen Systems ist in 1 zum Vergleich
mit dem System veranschaulicht, das durch die in 3 gezeigte
Ausführungsform
bereitgestellt wird. In dem konventionellen System ist die Steuertabelle
für logische/physikalische Adressen
nicht in dem flachen Speicher 1A gespeichert, wie im Falle
des in 1 gezeigten Aufbaus. Es sei darauf hingewiesen,
dass Komponenten des in 1 gezeigten Aufbaus, die mit
jenen identisch sind, welche in 3 gezeigt
sind, durch dieselben Bezugszeichen wie dort bezeichnet sind und
dass ihre Erläuterung
nicht wiederholt wird.
-
Der
in 1 gezeigte Systemaufbau unterscheidet sich von
dem in 3 gezeigten Systemaufbau dadurch, dass im Falle
des erstgenannten Aufbaus ein externer RAM- Speicher 113 in dem Hauptgerät 100A vorgesehen
ist. Der RAM-Speicher 113 ist mit dem Mikroprozessor 109 verbunden.
-
Zum
Zwecke eines Vergleichs mit dem Interface der in 4 dargestellten
Ausführungsform zeigt 2 ein
Interface zwischen dem Mikroprozessor 109, der in dem Hauptgerät 100A verwendet
ist, und dem flachen Speicher 1A bei dem in 1 gezeigten
konventionellen Systemaufbau.
-
Der
RAM-Speicher 113 wird zur Speicherung der Steuertabelle
für logische/physikalische
Adressen benutzt. Wenn der flache Speicher 1A ohne die in
ihm gespeicherte Steuertabelle für
logische/physikalische Adressen angebracht ist, nimmt der Mikroprozessor 109 einen
Zugriff mittels des Host-Interface-IC 101 auf den flachen
Speicher 1A vor, um Dateninhalte des Speichers 1A im
Hinblick auf die Ausführung
einer Verarbeitung zum Aufbau einer Steuertabelle für logische/physikalische
Adressen zu überprüfen. Die
auf diese Weise aufgebaute Steuertabelle TB für logische/physikalische Adressen
wird dann in dem RAM-Speicher 113 gespeichert.
-
Der
RAM-Speicher 111, der in typischer Weise im Mikroprozessor 109 eingebettet
ist, verfügt über eine
Speicherkapazität
von höchstens
etwa mehreren 10KB. Es ist somit absolut unmöglich, die Steuertabelle für logische/physikalische
Adressen mit einer Größe bis zu
16KB in dem RAM-Speicher 111 zu speichern, da das Vorhandensein
der Steuertabelle für
logische/physikalische Adressen in dem RAM-Speicher 111 ein
Hindernis für
eine weitere Verarbeitung bereitstellt. Einige Mikroprozessoren 109 weisen
sogar einen RAM-Speicher 111 mit einer Größe auf,
die kleiner ist als die Steuertabelle für logische/physikalische Adressen.
Dies heißt,
dass es im Falle eines Aufbaus, bei dem eine Steuertabelle für logische/physikalische
Adressen in dem Hauptgerät aufgebaut
und gesichert ist, nicht realistisch ist, die Steuertabelle für logische/physikalische
Adressen in dem RAM-Speicher 111 zu speichern. Dies ist
der Grund dafür,
weshalb der externe RAM-Speicher 113 erforderlich ist.
-
Andererseits
wendet die Ausführungsform einen
Aufbau an, bei dem die Steuertabelle für logische/physikalische Adressen
in dem flachen Speicher 1 gespeichert ist. In diesem Fall
werden lediglich einige notwenige Daten der Steuertabelle für logische/physikalische
Adressen einfach aus dem flachen Speicher 1 ausgelesen
und in dem eingebetteten RAM-Speicher 111 gespeichert,
wie dies früher unter
Bezugnahme auf 4 erläutert worden ist. Der Mikroprozessor 109 benötigt lediglich
Daten der Steuertabelle für
logische/physikalische Adressen bezüglich eines Segments, welches
einen Bereich von 1024 Bytes in der Steuertabelle für logische/physikalische
Adressen belegt, wie dies in 11 gezeigt
ist. Die Größe derartiger
Daten wird kaum einen irgendwelche Probleme hervorrufenden Einfluss
auf den RAM-Speicher 111 haben.
-
Aus
diesem Grunde kann der externe RAM-Speicher 113 bei der
in 3 gezeigten Ausführungsform eliminiert bzw.
weggelassen werden. Infolgedessen können die Kosten des Hauptgeräts 100 gesenkt
werden, und außerdem
kann der Leistungsverbrauch durch die Energiemenge verringert werden,
die für
die Ansteuerung des externen RAM-Speichers 113 erforderlich
ist.
-
Darüber hinaus
ist im Falle der Ausführungsform
der in dem Hauptgerät 100 verwendete
Mikroprozessor 109 von der Verarbeitung entlastet, eine Steuertabelle
für logische/physikalische
Adressen aufzubauen. Es ist nicht länger eine Zeitspanne erforderlich,
um auf die Verarbeitung zu warten, den Aufbau einer Steuertabelle
für logische/physikalische Adressen
abzuschließen.
Infolgedessen nimmt die Ausführungsform
eine solche Verwaltung vor, dass sie beispielsweise mit einer Verkürzung der
Zeitspanne, die zur Ausführung
der Aufbauverarbeitung des Dateisystems bezüglich des flachen Speichers 1 gebraucht
wird, im Vergleich zu dem konventionellen System auskommt.
-
Ferner
ist in der durch die Ausführungsform bereitgestellten
Steuertabelle für
logische/physikalische Adressen die physikalische Adresse des jeweiligen
nicht benutzten Blocks einer nicht benutzten logischen Adresse zugehörig, wie
dies früher
unter Bezugnahme auf 12A und 12B beschrieben worden
ist. Somit kann ein Zugriff auf einen nicht benutzten Block durch
das FAT-Dateisystem in einer einfachen Verarbeitung und innerhalb
einer kurzen Zeitspanne im Vergleich zu dem konventionellen System
vorgenommen werden. Diese schnelle Verarbeitung ist besonders effektiv
bezüglich
eines Aufbaus gemäß 3,
der durch das Hauptgerät 100 zur
Aufzeichnung von Daten angewandt ist, die eine Echtzeitverarbeitung
benötigen,
wie Audiodaten.
-
Es
sei darauf hingewiesen, dass die Ausführungsform der vorliegenden
Erfindung nicht auf die oben beschriebene Ausführungsform beschränkt ist. Falls
erforderlich, können Änderungen
und Modifikationen bezüglich
der Ausführungsform
vorgenommen werden. So ist beispielsweise die durch die vorliegende
Erfindung bereitgestellte Speichervorrichtung nicht auf die in 5A, 5B, 5C und 5D gezeigte äußere Form beschränkt. Die
Speichervorrichtung kann in irgendeiner anderen äußeren Form ausgelegt sein. Darüber hinaus
können
beispielsweise detaillierte Vorschriften bezüglich des oben beschriebenen
Formats des Dateisystems ebenfalls entsprechend aktuellen Anwendungen
geändert
werden. Überdies
sind Änderungen
in der Speicherkapazität
des Flash-Speichers nicht auf die in 13 gezeigten Daten
beschränkt.
-
Wie
oben beschrieben, ist die Steuertabelle für logische/physikalische Adressen
in der Speichervorrichtung gespeichert.
-
Somit
ist es nicht notwendig, eine Verarbeitung zur Bildung einer Steuertabelle
für logische/physikalische
Adressen auszuführen.
Infolgedessen kann zumindest die Zeitspanne, die zur Beendigung des
Aufbauprozesses bezüglich
des Dateisystems gebraucht wird, verkürzt werden. Während der
Benutzer normalerweise warten muss, damit das Hauptgerät in einen
Zustand eintritt, in welchem es imstande ist, Daten in die Speichervorrichtung
zu schreiben und aus dieser zu lesen, nachdem die Speichervorrichtung
beispielsweise an dem Hauptgerät
angebracht ist, kann die Zeitspanne, die beim Warten auf einen solchen
Zustand gebraucht wird, genauer gesagt im Falle der Ausführungsform
daher verkürzt
werden bzw. sein. Infolgedessen ist es dem Benutzer ermöglicht,
das elektronische Gerät
mehr in einer Weise zu nutzen, die er mag.
-
Darüber hinaus
braucht bei einem solchen Aufbau das Hauptgerät beispielsweise lediglich
einige notwendige Daten der Steuertabelle für logische/physikalische Adressen
aus der Speichervorrichtung zu lesen und die Daten in typischer
Weise in einem Speicherbereich des RAM-Speichers zu speichern, der
in dem in dem Hauptgerät
verwendeten Mikroprozessor eingebettet ist. Die Tabelle nimmt dabei
lediglich einen kleinen Bereich des eingebetteten RAM-Speichers
in Anspruch, so dass die Operation zur Erzielung der notwendigen
Daten nahezu keine zusätzliche
Belastung für
den Mikroprozessor schafft.
-
Da
es nicht notwendig ist, das Hauptgerät mit einem externen RAM-Speicher
zu versehen, der über
einen Speicherbereich verfügt,
welcher sämtlichen
Daten der Steuertabelle für
logische/physikalische Adressen zugeordnet ist, können somit
die Kosten des Hauptgeräts
entsprechend verringert werden. Überdies
kann auch der Leistungsverbrauch um den Betrag der elektrischen
Leistung gesenkt werden, der für
die Ansteuerung des externen RAM-Speichers erforderlich ist.
-
Bei
der vorliegenden Erfindung werden Daten in eine Seite geschrieben,
die eine der Speichereinheiten eines Flash-Speichers darstellt,
und zwar in einem gleichmäßigen Format
ohne Bezug auf den Datentyp. Jede Seite enthält stets Daten, die darin aufgezeichnet
sind, und einen redundanten Teil, der Attribute der Daten als Paar
zeigt. Eine Vielzahl von benachbarten Seiten stellt einen Block
dar. Teile der Daten, die in Seiten gespeichert sind, welche einen Block
darstellen, weisen dieselben Attribute auf. Durch Überprüfen lediglich
des redundanten Teiles bzw. Bereiches zur Speicherung von Datenattributen in
der Seite 0, welche die erste Seite eines Blocks darstellt, ist
es somit möglich,
die Attribute sämtlicher Teile
der Daten im Block zu kennen. Da das Datenformat unabhängig von
den Datenattributen gleichmäßig ist,
ist es überdies
nicht notwendig, eine Einrichtung und ein Verfahren zur Erzeugung
einer Seite für
jedes Datenattribut bereitzustellen. Im Hinblick auf die Erzeugung
eines redundanten Bereiches bzw. Teiles, der in einer Seite zu speichern
ist, ist es darüber
hinaus nicht notwendig, eine Einrichtung und ein Verfahren zur Erzeugung
eines redundanten Teiles bezüglich
jeder Datenattribute bereitzustellen, die ein Paar mit den Daten
bilden, da das Format des redundanten Teiles gleichmäßig ist.
Ganz oben davon steht, dass die Datenstrukturen von Blöcken und
Seiten unabhängig
von den Attributen der darin gespeicherten Daten gleichmäßig sind.
Es ist somit nicht notwendig, eine Vielzahl von Leseinrichtungen
und Leseverfahren bereitzustellen, die jeweils für einen Block geeignet sind,
wenn eine Wiedergabevorrichtung zur Wiedergabe der Daten von Seiten
und Blöcken
ausgebildet wird. Dies bedeutet außerdem, dass die Anzahl von
Schaltungsblöcken
und die Anzahl von Programmverarbeitungsschritten nennenswert reduziert
werden kann. Somit zeigt sich ein Effekt der Hinzufügung von
Funktionen zu einer Wiedergabevorrichtung in einem Gerät, welches
so aufgebaut ist, dass es eine geringe Größe, ein geringes Gewicht und
einen geringen Leistungsverbrauch aufweist, wie die durch die vorliegende
Erfindung bereitgestellte Vorrichtung bzw. das betreffende Gerät.
-
Gemäß der vorliegenden
Erfindung ist überdies
eine Information zum Identifizieren der Steuertabelle für logische/physikalische
Adressen ebenfalls in einem Block der Speichervorrichtung zur Speicherung
der Steuertabelle für
logische/physikalische Adressen aufgezeichnet. Somit kann bei einer
Operation zum Absuchen der Speichervorrichtung nach einem die Steuertabelle
für logische/physikalische Adressen
enthaltenden Block die betreffende Steuertabelle für logische/physikalische
Adressen aus den in der Speichervorrichtung gespeicherten Daten identifiziert
werden.
-
Darüber hinaus
wird gemäß der vorliegenden
Erfindung eine nicht benutzte logische Adresse in der in der Speichervorrichtung
gespeicherten Steuertabelle für
logische/physikalische Adressen dadurch katalogisiert, dass eine
Zuordnung der nicht benutzten logischen Adresse zu der physikalischen Adresse
eines nicht benutzten Blocks erfolgt, das heißt eines Blockes, in dem keine
Daten aufgezeichnet sind. Somit kann die Stelle bzw. Lage eines
nicht benutzten Blocks dadurch leicht bestimmt werden, dass auf
die physikalische Adresse des Blocks Bezug genommen wird, ohne nach
einem nicht benutzten Block in einer anderen hierarchischen Schicht
suchen zu müssen.
Da die Verarbeitung zum Suchen eines nicht benutzten Blocks bei
einer Operation zum Schreiben von Daten nicht erforderlich ist,
heißt
dies, dass die Daten in einen nicht benutzten Block mit einer hohen
Geschwindigkeit unter einer geringen Verarbeitungsbelastung geschrieben
werden können. Die
schnelle Verarbeitung ist insbesondere in einem Fall wirksam, in
welchem aufzuzeichnende Daten gegeben sind durch Daten, die längs der
Zeitachse festgestellt werden, wie Audiodaten oder Bewegtbilddaten,
welche eine Echtzeitverarbeitung benötigen.