-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die
Erfindung betrifft ein Verfahren und eine Vorrichtung zum Überwachen
von Daten eines nichtflüchtigen
Speichers, dessen Speicherbereich in eine Vielzahl von Blöcken unterteilt
ist, den nichtflüchtigen Speicher,
eine Speichereinrichtung mit dem nichtflüchtigen Speicher, und ein Datenverarbeitungssystem.
-
Beschreibung des verwandten
Standes der Technik
-
Typisch
bei einer externen Speichereinrichtung, die in einer Datenverarbeitungsvorrichtung,
wie beispielsweise einem Personal-Computer oder einer digitalen
Standbildkamera, verwendet wird, ist eine externe Speichereinrichtung
mit einem Flash-Speicher
versehen.
-
Bei
der externen Speichereinrichtung, die mit dem Flash-Speicher versehen
ist, ist der Speicherbereich in mehrere Blöcke aufgeteilt, und wird der
Datenbereich auf der Blockbasis überwacht.
Jeder Block ist die Einheit eines Löschens von Daten. Das heißt, dass
bei einem Löschen
von Daten der die Daten enthaltende Block in seiner Gesamtheit initialisiert
wird, so dass die in dem Block gespeicherten Daten in einem Stück gelöscht werden.
-
Falls
bei einer solchen externen Speichereinrichtung die Daten in einem
Block gespeichert werden, wird jedem derartigen Block eine einmalige logische
Adresse zugewiesen, welcher unter Verwendung dieser logischen Adresse überwacht
wird.
-
Die
in der externen Speichereinrichtung gespeicherten Daten werden üblicherweise
auf einer Dateibasis in der externen Speichereinrichtung gespeichert.
Falls eine einzige Datei über
mehrere Blöcke
hinweg gespeichert ist, wird für
diese Blöcke
eine Verknüpfungsinformation
benötigt.
Folglich wird dann, wenn die einzige Datei in den mehreren Blöcken gespeichert
ist, wird die logische Adresse des nächsten Blocks, die als die
Verknüpfungsadresse bezeichnet
wird, in jedem der Blöcke
gespeichert, in welchen die Datei gespeichert ist.
-
Bisher
wird bei dieser Art der externen Speichereinrichtung die Verarbeitung
zum Untersuchen, ob es irgendeinen Fehler in dem Speicherbereich gibt,
oder die Verarbeitung zum Verbergen von Fehlern, die aufgetreten
sind, jedes Mal ausgeführt, wenn
die externe Speichereinrichtung gebootet wird. In der folgenden
Erklärung
wird diese Verarbeitung als die Fehlererfassungs- und Korrektur-Verarbeitung
bezeichnet. Üblicherweise
ist die Fehlererfassungs- und Korrektur-Verarbeitung diejenige zeitaufwendige
Verarbeitung, die eine relativ große Last mit sich bringt. Daher
leidet die konventionelle externe Speichereinrichtung an einem Nachteil
dahingehend, dass sie aufgrund der Fehlererfassungs- und Korrektur-Verarbeitung
nicht schnell gebootet werden kann.
-
Es
sei angenommen, dass bei der externen Speichereinrichtung, in welcher
der Datenbereich auf der Blockbasis überwacht wird, die Daten neu
geschrieben werden, oder die in dem Block gespeicherten Daten aktualisiert
werden, und dass in einem solchen Fall die Leistungsversorgung plötzlich unterbrochen
wird oder die externe Speichereinrichtung erzwungen aus der Datenverarbeitungseinrichtung
entfernt wird. In diesem Fall können
Zustände
der Art entstehen, in welcher mehrere Blöcke mit derselben logischen
Adresse nebeneinander bestehen können, oder
in welchem es keinen durch die Verknüpfungsadresse angegebenen Block
gibt. Diese Zustände werden
nachstehend jeweils als der Zustand des Fehlers der logischen Adresse
oder der Zustand des Fehlers der Verknüpfungsadresse bezeichnet. In
einem solchen Fall kann die externe Speichereinrichtung nicht wie
gewöhnlich
verwendet werden, wobei die Datei zufällig mit einem unerwarteten
Block verknüpft
ist.
-
Die
konventionelle externe Speichereinrichtung verfügt jedoch nicht über die
Funktion des Erfassens von logischen Fehlern oder Verknüpfungsfehlern,
um die Fehler korrekt zu verbergen. Das Ergebnis ist das, dass wenn
die Leistungsversorgung plötzlich
unterbrochen wird oder die externe Speichereinrichtung erzwungen
aus der Datenverarbeitungseinrichtung entfernt wird, die externe
Speichereinrichtung ab einer solchen Zeit nicht länger wie
gewöhnlich
verwendbar ist.
-
Darüber hinaus
offenbart die Druckschrift
EP 0
887 732 A ein Verfahren zum Handhaben von Defektdaten gemäß dem Oberbegriff
der Patentansprüche
1 und 8.
-
Ferner
bezieht sich die Druckschrift
EP 0 887 735 A auf eine allgemeine Speicherverwaltung
für einen
Flash-Speicher.
-
KURZBESCHREIBUNG DER ERFINDUNG
-
In
Anbetracht des vorstehend aufgezeigten Standes der Technik liegt
der Erfindung als eine Aufgabe zugrunde, ein Verfahren und eine
Vorrichtung zum Überwachen
von Daten eines nichtflüchtigen Speichers,
dessen Speicherbereich in eine Vielzahl von Blöcke aufgeteilt ist, bereitzustellen.
-
Erfindungsgemäß wird diese
Aufgabe durch eine Datenverwaltungsvorrichtung, wie in Patentanspruch
1 definiert, und durch ein Datenverwaltungsverfahren, wie in Patentanspruch
8 definiert, gelöst.
-
Vorteilhafte
Weiterbildungen sind Gegenstand der beigefügten abhängigen Patentansprüche.
-
In Übereinstimmung
mit der vorstehend beschriebenen Erfindung werden die verteilten
Verwaltungsinformationen als die Verwaltungsinformationen für die jeweiligen
Blöcke
in dem redundanten Bereich jeder Seite gespeichert, werden die gesamten
Verwaltungsinformationen bzw. Anhäufungsverwaltungsinformationen,
die in jedem Block gespeicherte Daten überwachen, als Ganzes in Zuordnung
zu den verteilten Verwaltungsinformationen in einem nichtflüchtigen
Speicher gespeichert, wird zur Zeit des Bootens überprüft, ob die gesamten Verwaltungsinformationen
wirksam oder gültig
sind, werden die Daten auf der Grundlage der gesamten Verwaltungsinformationen überwacht,
wenn die gesamten Verwaltungsinformationen wirksam sind, und werden
die Daten auf der Grundlage der verteilten Verwaltungsinformationen überwacht,
wenn die gesamten Verwaltungsinformationen nicht wirksam sind. Das
heißt, dass
die gesamten Verwaltungsinformationen in den meisten Fällen wirksam
sind und zum Booten verwendet werden können, wodurch ein rasches Booten der
Speichereinrichtung ermöglicht
wird.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt
die Gesamtkonfiguration eines die Erfindung verkörpernden Systems.
-
2 ist
ein Blockdiagramm, das die Konfiguration einer die Erfindung verkörpernden
Speicherkarte zeigt.
-
3 ist
eine perspektivische Ansicht einer die Erfindung verkörpernden
Speicherkarte.
-
4A bis 4C zeigen
die Konfiguration eines Speicherbereichs einer die Erfindung verkörpernden
Speicherkarte.
-
5 zeigt
die Konfiguration der verteilten Verwaltungsinformationen.
-
6 zeigt
die Konfiguration der zusätzlichen
Verwaltungsinformationen.
-
7 zeigt
die Art und Weise des Aufbauens der gesamten Verwaltungsinformationen
aus den verteilten Verwaltungsinformationen jedes Blocks.
-
8 zeigt
die Konfiguration der gesamten Verwaltungsinformationen.
-
9 zeigt
eine Umwandlungstabelle.
-
10 zeigt
eine Verknüpfungstabelle.
-
11 stellt
ein Ablaufdiagramm dar, das die Abfolge von Betriebsabläufen bei
dem Booten einer Speicherkarte zeigt.
-
12 stellt
ein Ablaufdiagramm dar, das die Abfolge von Betriebsabläufen bei
einer Datenaktualisierungsverarbeitung zeigt.
-
13 stellt
ein Ablaufdiagramm dar, das die Abfolge von Betriebsabläufen bei
dem Beenden der Verarbeitung zeigt.
-
14 stellt
ein Ablaufdiagramm dar, das die Abfolge von Betriebsabläufen bei
dem Schreiben einer Datei mit einer bekannten Größe in eine Speicherkarte zeigt.
-
15 stellt
ein Ablaufdiagramm dar, das die Abfolge von Betriebsabläufen bei
dem Schreiben einer Datei mit einer unbekannten Größe in eine Speicherkarte
zeigt.
-
16A bis 16C sind
darstellende Ansichten, die in konkretes Beispiel der Dateiaktualisierungsverarbeitung
zeigen.
-
17 stellt
ein Ablaufdiagramm dar, das die Abfolge von Betriebsabläufen der
Dateiaktualisierungsverarbeitung zeigt.
-
18 zeigt
eine Fehlererfassungstabelle.
-
19 zeigt
ein konkretes Beispiel von Block-zu-Block-Kopplungszuständen.
-
20A bis 20E zeigen
den Verarbeitungsablauf, falls die Block-zu-Block-Kopplungszustände wie
in 19 gezeigt sind, als ein Beispiel einer Kopplungsadresse-Fehlererfassung.
-
21 ist
ein Ablaufdiagramm, das den Aufbau der gesamten Verwaltungsinformationen
und die Verarbeitung der Fehlererfassung und der Korrektur zeigt.
-
22,
fortsetzend von 21, ist ein Ablaufdiagramm,
das den Aufbau der gesamten Verwaltungsinformationen und der Verarbeitung
der Fehlererfassung und der Korrektur zeigt.
-
23,
fortsetzend von 22, ist ein Ablaufdiagramm,
das den Aufbau der gesamten Verwaltungsinformationen und die Verarbeitung
der Fehlererfassung und der Korrektur zeigt.
-
BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSBEISPIELE
-
Nunmehr
auf die Zeichnungen Bezug nehmend, werden bestimmte bevorzugte Ausführungsbeispiele
der Erfindung im Einzelnen erklärt.
-
1. Konfiguration des Gesamtsystems
-
1 zeigt
die Gesamtkonfiguration eines Systems gemäß einem Ausführungsbeispiel
der Erfindung. Dieses System besteht aus einer Datenverarbeitungsvorrichtung 1 als
einem hostseitigen System, und einer Speicherkarte 2 als
einer externen Speichereinrichtung, die mit der Datenverarbeitungsvorrichtung 1 über eine
serielle Schnittstelle verbunden ist.
-
Die
Datenverarbeitungsvorrichtung 1 beinhaltet eine zentrale
Verarbeitungseinheit (CPU) 3, einen internen Speicher 4,
eine Hilfs-Speichereinrichtung 5 und eine serielle Schnittstellenschaltung 6,
die miteinander über
einen Bus 7 verbunden sind. Die Datenverarbeitungsvorrichtung 1 liest
ein Programm aus, das in beispielsweise der Hilfs-Speichereinrichtung 5 gespeichert
ist, um das Programm mittels der CPU 3 auszuführen, unter
Verwendung des internen Speichers 4 als einem Arbeitsbereich.
Zu dieser Zeit werden Daten mit der Speicherkarte 2 über die
serielle Schnittstellenschaltung 6 ausgetauscht.
-
Es
besteht keine Beschränkung
für die
in dem erfindungsgemäßen System
verwendete Datenverarbeitungsvorrichtung 1. Das heißt, die
Erfindung kann auf eine breite Vielzahl von Datenverarbeitungsvorrichtungen
angewandt werden, wie beispielsweise auf einen Personal-Computer,
eine digitalen Standbildkamera oder eine digitalen Videokamera.
-
Die
Datenverarbeitungsvorrichtung 1 und die Speicherkarte 2 sind über eine
serielle Schnittstelle miteinander verbunden, speziell durch zumindest drei
Datenleitungen SCLK, Zustand und DIO. Das heißt, die Datenverarbeitungsvorrichtung 1 und
die Speicherkarte 2 sind zumindest über eine erste Datenleitung
SCLK miteinander verbunden, welche Taktsignale bei der Datenübertragung überträgt, eine zweite
Datenleitung Zustand verbunden, die Zustandssignale bei der Datenübertragung überträgt, und
eine dritte Datenleitung DIO verbunden, die seriell in die Speicherkarte 2 geschriebene
Daten oder aus der Speicherkarte 2 gelesene Daten überträgt, so dass
ein Datenaustausch über
diese Leitungen zwischen der Datenverarbeitungsvorrichtung 1 und der
Speicherkarte 2 ausgeführt
wird.
-
Der
Datenaustausch zwischen der Datenverarbeitungsvorrichtung 1 und
der Speicherkarte 2 wird üblicherweise im Hinblick auf
eine Datei ausgeführt, die
aus einen Vorspann und realen Daten besteht, als einer Einheit.
In dem Dateivorspann sind beispielsweise die Informationen gespeichert,
die bei dem Zugreifen auf eine Datei notwendig sind, und die Informationen,
die in dem in der Datenverarbeitungsvorrichtung 1 ausgeführten Programm
benötigt
werden.
-
2. Struktur der Speicherkarte
-
Bezug
nehmend auf 2 besteht die Speicherkarte 2 aus
einer Steuereinrichtung 11, bestehend aus einem so genannten
Steuer-IC, und einem Flash-Speicher 12, der durch die Steuereinrichtung 11 überwacht
wird.
-
Die
Steuereinrichtung 11 beinhaltet eine Seriell/Parallel-Parallel/Seriell-Schnittstellenablaufsteuerung 13,
die nachstehend als eine S/P-P/S-Schnittstellenablaufsteuerung 13 bezeichnet
wird, zur Seriell/Parallel-Parallel/Seriell-Umwandlung, eine Flash-Speicher-Schnittstellenablaufsteuerung 14, die
sich um die Schnittstelle zu dem Flash-Speicher 12 kümmert, einen
Seitenpuffer 15 zur vorübergehenden
Speicherung von zwischen der S/P-P/S-Schnittstellenablaufsteuerung 13 und
der Flash-Speicher-Schnittstellenablaufsteuerung 14 ausgetauschten
Daten, eine Fehlerkorrekturschaltung 16 zur Fehlerkorrektur,
und einen Befehlsgenerator 17 zum Erzeugen beispielsweise
eines Steuerbefehls zum Steuern des Zugriffs auf den Flash-Speicher 12.
Die Steuereinrichtung 11 beinhaltet darüber hinaus ein Konfigurations-ROM 18,
in dem beispielsweise die Versionsinformationen der Speicherkarte 2 oder
eine Vielzahl der Attributinformationen gespeichert sind, und einen
Oszillator 19 zum Liefern von Taktsignalen, wie sie für den Betrieb
der jeweiligen Schaltungen benötigt
werden.
-
Die
S/P-P/S-Schnittstellenablaufsteuerung 13 ist über zumindest
die vorstehend erwähnten
drei Datenleitungen SCLK, Zustand und DIO mit der seriellen Schnittstellenschaltung 6 der
Datenverarbeitungsvorrichtung 1 verbunden, um Daten über diese Datenleitungen
SCLK, Zustand, und DIO mit der Datenverarbeitungsvorrichtung 1 auszutauschen.
Das heißt,
die S/P-P/S-Schnittstellenablaufsteuerung 13 wandelt die
von dem Seitenpuffer 15 gesendeten parallelen Daten in
serielle Daten um, welche serielle Daten an die serielle Schnittstellenschaltung 6 der Datenverarbeitungsvorrichtung 1 gesendet
werden. Die S/P-P/S-Schnittstellenablaufsteuerung 13 wandelt
darüber
hinaus die von der seriellen Schnittstellenschaltung 6 der
Datenverarbeitungsvorrichtung 1 gesendeten Daten in parallele
Daten um, welche an den Seitenpuffer 15 gesendet werden.
-
Die
seriellen Daten werden zwischen der S/P-P/S-Schnittstellenablaufsteuerung 13 und
der Datenverarbeitungsvorrichtung 1 über die dritte Datenleitung
DIO unter Verwendung der Taktsignale übertragen, die von der Datenverarbeitungsvorrichtung 1 über die
erste Datenleitung SCLK zur Synchronisation gesendet werden. Die
Arten der über
die zweite Datenleitung Zustand ausgetauschten seriellen Daten können mittels
auf der zweiten Datenleitung Zustand übertragenen Zustandssignalen
unterschieden werden. Die Arten der seriellen Daten können beispielhaft
durch Daten, die in zum Beispiel den Flash-Speicher 12 zu
schreiben sind, durch Daten, die aus dem Flash-Speicher 12 ausgelesen
wurden, oder durch Steuerdaten zum Steuern des Betriebs der Speicherkarte 2 dargestellt
sein. Das Zustandssignal wird darüber hinaus zum Angeben des
Zustands der Speicherkarte 2 verwendet. Der Zustand der Spei cherkarte 2,
der durch das Zustandssignal angegeben wird, kann beispielhaft durch
einen Zustand, in welchem die Speicherkarte 2 in irgendeine
Verarbeitung involviert ist und keine Daten entgegennehmen kann,
die von der Datenverarbeitungsvorrichtung 1 zugeführt werden,
und einen Zustand, in welchem die Verarbeitung auf der Seite der
Speicherkarte 2 beendet wurde und die Speicherkarte 2 auf
eine Datenzufuhr von der Datenverarbeitungsvorrichtung 1 wartet, dargestellt
sein.
-
Falls
die von der Datenverarbeitungsvorrichtung 1 gesendeten
Daten Steuerdaten zum Steuern des Betriebs der Speicherkarte 2 sind,
sendet die S/P-P/S-Schnittstellenablaufsteuerung 13 die
Steuerdaten an einen Befehlsgenerator 17.
-
Der
Befehlsgenerator 17 erzeugt einen Steuerbefehl zum Steuern
des Zugriffs auf den Flash-Speicher 12, auf der Grundlage
der von der Datenverarbeitungsvorrichtung 1 über die S/P-P/S-Schnittstellenablaufsteuerung 13 gesendeten
Steuerdaten, um den Steuerbefehl an die Flash-Speicher-Schnittstellenablaufsteuerung 14 zu übertragen.
Die Flash-Speicher-Schnittstellenablaufsteuerung 14 schreibt
Daten in den Flash-Speicher 12 oder
liest Daten aus diesem auf der Grundlage des Steuerbefehls, wie
später
im Einzelnen erklärt werden
wird.
-
Mit
diesem Befehlsgenerator 17 ist ein Schalter 20 zum
Verhindern eines unbeabsichtigten Löschens verbunden. Falls dieser
Schalter 20 zum Verhindern eines unbeabsichtigten Löschens eingeschaltet
ist, erzeugt der Befehlsgenerator 17 keinen Steuerbefehl,
welcher in den Flash-Speicher 12 geschriebene Daten löschen wird,
und zwar auch dann, wenn Steuerdaten, die das Löschen der in den Flash-Speicher 12 geschriebenen
Daten befehlen, von der Datenverarbeitungsvorrichtung 1 gesendet werden.
Das heißt,
dass die Speicherkarte 2 durch diesen Schalter 20 zum
Verhindern eines unabsichtlichen Löschens zwischen einem Zustand,
in welchem die in dem Flash-Speicher 12 gesicherten
Daten nicht gelöscht
werden können,
und dem Zustand, in welchem die in dem Flash-Speicher 12 gesicherten Daten
gelöscht
werden können,
umgeschaltet wird.
-
Der
zwischen der S/P-P/S-Schnittstellenablaufsteuerung 13 und
der Flash-Speicher-Schnittstellenablaufsteuerung 14 angeordnete
Seitenpuffer 15 ist ein so genannter Pufferspeicher und
hält vorübergehend
die zwischen der S/P-P/S-Schnittstellenablaufsteuerung 13 und
der Flash-Speicher-Schnittstellenablaufsteuerung 14 ausgetauschten
Daten.
-
Das
heißt,
dass die von der S/P-P/S-Schnittstellenablaufsteuerung 13 an
die Flash-Speicher-Schnittstellenablaufsteuerung 14 gesendeten Daten
zunächst
von der S/P-P/S-Schnittstellenablaufsteuerung 13 an
den Seitenpuffer 15 gesendet werden, wo sie vorübergehend
gespeichert werden. Zu dieser Zeit wird ein Fehlerkorrekturcode
durch die Fehlerkorrekturschaltung 16 an die in den Seitenpuffer 15 gespeicherten
Daten angefügt.
Die Daten mit dem daran angefügten
Fehlerkorrekturcode werden von dem Seitenpuffer 15 zu der
Flash-Speicher-Schnittstellenablaufsteuerung 14 im Hinblick auf
eine voreingestellte Seite (zum Beispiel wird jede Seite durch 512
Bytes gebildet) als einer Einheit gesendet.
-
Alternativ
werden die von der Flash-Speicher-Schnittstellenablaufsteuerung 14 an
die S/P-P/S-Schnittstellenablaufsteuerung 13 gesendeten
Daten zunächst
von der Flash-Speicher-Schnittstellenablaufsteuerung 14 an
den Seitenpuffer 15 für eine
vorübergehende
Speicherung in diesem gesendet. Zu dieser Zeit werden die in dem
Seitenpuffer 15 gespeicherten Daten durch die Fehlerkorrekturschaltung 16 fehlerkorrigiert.
Die fehlerkorrigierten Daten werden von dem Seitenpuffer 15 an
die S/P-P/S-Schnittstellenablaufsteuerung 13 im Hinblick
auf eine voreingestellte Seite als einer Einheit gesendet.
-
Die
Flash-Speicher-Schnittstellenablaufsteuerung 14 schreibt
Daten in dem Flash-Speicher 12 von
dem Befehlsgenerator 17 oder liest Daten aus diesem aus,
unter der Steuerung eines Steuerbefehls von dem Befehlsgenerator 17.
Das heißt,
die Flash-Speicher-Schnittstellenablaufsteuerung 14 liest
Daten aus dem Flash-Speicher 12 aus, um Daten über den
Seitenpuffer 15 an die S/P-P/S-Schnittstellenablaufsteuerung 13 auszusenden.
Alternativ empfängt
die Flash-Speicher-Schnittstellenablaufsteuerung 14 Daten
von der S/P-P/S-Schnittstellenablaufsteuerung 13 über den
Seitenpuffer 15, wie vorstehend beschrieben wurde, auf
der Grundlage des Steuerbefehls von dem Befehlsgenerator 17,
um die Daten in dem Flash-Speicher 12 zu schreiben.
-
In
dem Konfigurations-ROM 18 sind beispielsweise die Versionsinformationen
und eine Vielzahl der Attributinformationen der Speicherkarte 2 gespeichert.
Die in dem Konfigurations-ROM-18 gespeicherten Informationen
werden so verwendet, wie sie bedarfsweise durch den Befehlsgenerator 17 über die
S/P-P/S-Schnittstellenablaufsteuerung 13 ausgelesen werden.
Das heißt,
der Befehlsgenerator 17 liest die in dem Konfigurations-ROM-18 gespeicherten
Informationen bedarfsweise aus, um Einstellungen verschiedenartiger
Arten, die für
die Speicherkarte 2 geeignet sind, auf der Grundlage der
so ausgelesenen Informationen zu bewirken.
-
Wenn
die in den Flash-Speicher 12 geschriebenen Daten als serielle
Daten von der Datenverarbeitungsvorrichtung 1 über die
drei Datenleitungen SCLK, Zustand und DIO an die Speicherkarte 2 gesendet
werden, wandelt die S/P-P/S-Schnittstellenablaufsteuerung 13 die
seriellen Daten in parallele Daten um, welche dann an den Seitenpuffer 15 gesendet
werden. Die von der S/P-P/S-Schnittstellenablaufsteuerung 13 gesendeten
Daten werden dann vorübergehend
in dem Seitenpuffer 15 gespeichert. Zu dieser Zeit wird
ein Fehlerkorrekturcode durch die Fehlerkorrekturschaltung 16 an
die in dem Seitenpuffer 15 gespeicherten Daten angefügt. Die
Daten mit dem daran angefügten
Fehlerkorrekturcode werden für
jede voreingestellte Seiteneinheit an die Flash-Speicher-Schnittstellenablaufsteuerung 14 ausgesendet.
Die Flash-Speicher-Schnittstellenablaufsteuerung 14 schreibt
von dem Seitenpuffer 15 gesendete Daten unter einem Steuerbefehl
von dem Befehlsgenerator 17 in den Flash-Speicher 12.
Durch die vorstehende Verarbeitung werden die von der Datenverarbeitungsvorrichtung 1 gesendeten
Daten in den Flash-Speicher 12 geschrieben.
-
Bei
dem Auslesen von Daten aus der vorstehend beschriebenen Speicherkarte 2 werden
Daten durch die Flash-Speicher-Schnittstellenablaufsteuerung 14 unter
einem Steuerbefehl von dem Befehlsgenerator 17 aus dem
Flash-Speicher 12 ausgelesen. Die Flash-Speicher-Schnittstellenablaufsteuerung 14 sendet
aus dem Flash-Speicher 12 ausgelesene Daten an den Seitenpuffer 15 aus.
Die von der Flash-Speicher-Schnittstellenablaufsteuerung 14 gesendeten
Daten werden vorübergehend
in dem Seitenpuffer 15 gespeichert. Die in dem Seitenpuffer 15 gespeicherten
Daten werden durch die Fehlerkorrekturschaltung 16 fehlerkorrigiert.
Die fehlerkorrigierten Daten werden im Hinblick auf eine voreingestellte Seite
als einer Einheit an die S/P-P/S-Schnittstellenablaufsteuerung 13 ausgesendet.
Die S/P-P/S-Schnittstellenablaufsteuerung 13 wandelt die
von dem Seitenpuffer 15 gesendeten Daten in serielle Daten
um, welche darin über
die vorstehend erwähnten
drei Datenleitungen SCLK, Zustand und DIO an die Datenverarbeitungsvorrichtung 1 gesendet
werden. Durch die vorstehende Verarbeitung werden die aus dem Flash-Speicher 12 ausgelesenen
Daten an die Datenverarbeitungsvorrichtung 1 ausgesendet.
-
Bei
dem Schreiben oder Auslesen von Daten werden nicht nur aus dem Flash-Speicher 12 ausgelesene
oder in diesen geschriebene Daten ausgetauscht, sondern werden Steuerdaten,
die zum Steuern des Austauschs verwendet werden, von der Datenverarbeitungsvorrichtung 1 an
die S/P-P/S-Schnittstellenablaufsteuerung 13 der Speicherkarte 2 gesendet.
Die Steuerdaten werden von der S/P-P/S-Schnittstellenablaufsteuerung 13 an
den Befehlsgenerator 17 gesendet. Auf der Grundlage der
von der S/P-P/S-Schnittstellenablaufsteuerung 13 gesendeten
Steuerdaten erzeugt der Be fehlsgenerator 17 einen Steuerbefehl,
welcher den Zugriff auf den Flash-Speicher 12 steuert.
Dieser Steuerbefehl wird an die Flash-Speicher-Schnittstellenablaufsteuerung 14 gesendet,
welche Flash-Speicher-Schnittstellenablaufsteuerung auf den Flash-Speicher 12 zugreift,
um die Daten zu schreiben oder auszulesen, auf der Grundlage des
Steuerbefehls.
-
Indessen
kann die Speicherkarte 2 nicht nur mit den vorstehend erwähnten drei
Datenleitungen SCLK, Zustand und DIO versehen sein, sondern darüber hinaus
mit einer Verdrahtung zum Zuführen
der Spannung oder mit einer Reserveverdrahtung, welche üblicherweise
nicht verwendet wird. Die 2 und 3 zeigen
einen Fall, in dem vier Leiter VSS1, VSS2, VCC und INT als Leiter
für die
Leistungsversorgungsleitungen und drei Reserveleitungen RSV1, RSV2
und RSV3 für
die Speicherkarte 2 zusätzlich
zu den drei Datenleitungen SCLK, Zustand und DIO, die vorstehend
beschrieben wurden, bereitgestellt sind.
-
3. Aussehen der Speicherkarte
-
Bezug
nehmend auf 3 wird nachstehend das bestimmte äußere Profil
der vorstehend beschriebenen Speicherkarte 2 erklärt.
-
Die
Speicherkarte 2 besteht aus einem Gehäuse 21 aus beispielsweise
einem Kunstharz, mit einer rechteckförmigen, ebenen Form, ausgestaltet als
ein dünnwandiges,
kartenförmiges
Gehäuse,
und der vorstehend erwähnten
Steuereinrichtung 11 oder dem vorstehend erwähnten Flash-Speicher 12,
die darin eingeschlossen sind. Diese Speicherkarte wird so wie sie
ist in die Datenverarbeitungsvorrichtung 1, die einen Lademechanismus
zum Laden der Speicherkarte 2 in diese beinhaltet, geladen.
-
Das
vorderseitige Ende des Gehäuses 21 der
Speicherkarte 2 ist mit einem hervorstehenden ausgeschnittenen
Abschnitt 22 und zehn Ausnehmungen 23 in diesem
hervorstehenden ausgeschnittenen Abschnitt 22 ausgebildet.
Innerhalb dieser Ausnehmungen 23 sind Anschlüsse für eine externe Verbindung
bereitgestellt, welche mit Verbindungsanschlüssen der Datenverarbeitungsvorrichtung 1 verbunden
werden, wenn die Speicherkarte 2 in Position auf der Ladeeinrichtung
der Datenverarbeitungsvorrichtung 1 geladen wird. Das heißt, die
vorliegende Speicherkarte 2 beinhaltet zehn Anschlüsse 24a bis 24j als
Anschlüsse
zur externen Verbindung, genauer ausgedrückt, drei Anschlüsse 24b, 24d und 24h für die Datenleitungen,
vier Leistungsversorgungsanschlüsse 24a, 24f, 24i, 24j,
und drei Reserveanschlüsse 24c, 24e und 24g.
-
Auf
der oberen Oberfläche
des Gehäuses 21 der
Speicherkarte 2 ist ein Element 25 zum Verhindern
eines unabsichtlichen Löschens
angebracht. Dieses Element 25 zum Verhindern eines unabsichtlichen
Löschens
steht mit dem Schalter 20 zum Verhindern eines unabsichtlichen
Löschens,
der in dem Gehäuse 21 untergebracht
ist, in Eingriff, so dass der Schalter 20 zum Verhindern
eines unabsichtlichen Löschens
durch Verschieben des Elements 25 zum Verhindern eines
unabsichtlichen Löschens
eingeschaltet oder ausgeschaltet werden kann.
-
Um
zu verhindern, dass die Speicherkarte 2 von der Datenverarbeitungsvorrichtung 1 gelöst wird, wird
bei dem Laden der Speicherkarte 2 in Position auf die Datenverarbeitungsvorrichtung 1 eine
bogenförmige
erste Verriegelungsausnehmung 26 auf einer Längsseite
des Gehäuses 20 ausgebildet,
während eine
rechteckförmige
zweite Verriegelungsausnehmung 27 auf der gegenüberliegenden
Längsseite derselben
ausgebildet ist. Wenn die Speicherkarte 2 in Position auf
der Ladeeinrichtung der Datenverarbeitungsvorrichtung 1 geladen
ist, stehen die Verriegelungsausnehmungen mittels der Ladeeinrichtung der
Datenverarbeitungsvorrichtung 1 in Eingriff.
-
Die
in 3 gezeigte Speicherkarte 2 ist lediglich
darstellend für
eine externe Speichereinrichtung gemäß der vorliegenden Erfindung.
Das heißt, dass
die vorliegende Erfindung auf eine externe Speichereinrichtung einer
beliebigen geeigneten äußeren Form
angewandet werden kann, ohne Abhängigkeit
von einer beliebigen bestimmten äußeren Form
der Speichereinrichtung.
-
4. Struktur des Speicherbereichs
-
Nun
wird die Struktur des Speicherbereichs des Flash-Speichers 12,
der auf der vorstehend beschriebenen Speicherkarte 2 geladen
ist, erklärt.
-
Der
Speicherbereich des Flash-Speichers 12 ist in mehrere Blöcke als
Datenlöscheinheiten
unterteilt, wie in 4A gezeigt ist. Diese Blöcke sind
in Bootblöcke,
in welchen Bootdaten zu speichern sind, als Daten, die von der Datenverarbeitungsvorrichtung 1 bei
dem Booten der Speicherkarte 2 geschrieben werden, und
in Datenblöcke,
in welche optionale Daten zu schreiben sind, klassifiziert. Jeder
Block ist mit einer intrinsischen physikalischen Adresse versehen.
Diese Blöcke
sind Datenlöscheinheiten,
während
sie die kleinsten Einheiten für
die Dateiverwaltung sind. Das heißt, eine einzige Datei wird
in einem oder in mehreren Blöcken
gespeichert, während
ein einzelner Block nicht von mehreren Dateien verwendet werden
kann.
-
Jeder
Block besteht aus mehreren Bits, die in der Lage sind, zwei Zustände '0' oder '1' anzunehmen.
In dem anfänglichen
Zustand sind alle Bits '1', und eine Bitbasierte Änderung
ist nur von '1' auf '0' möglich.
Das heißt,
dass bei den Schreiben von aus '1' und '0' bestehenden Daten Bits für '1' unverändert beibehalten werden, während Bits
für '0' von '1' auf '0' geändert
werden.
-
Falls
einmal geschriebene Daten gelöscht werden,
wird eine Initialisierungsverarbeitung als Ganzes ausgeführt, auf
der Blockbasis, um alle Bits des Blocks auf '1' zu
setzen. Dieses löscht
die Daten, die in den Block geschrieben sind, als Ganzes, so dass
der Block erneut in dem Zustand ist, in dem das Datenschreiben möglich ist.
-
Indessen
muss bei dem Ändern
von '0' auf '1' die Initialisierungsverarbeitung als
Ganzes auf der Blockbasis ausgeführt
werden, um alles Bits des Blocks auf '1' zu
setzen. Andererseits ist eine Änderung
von '1' nach '0' möglich,
ohne auf die blockbasierte, insgesamte Initialisierungsverarbeitung
zurückzugreifen.
In der folgenden Erklärung
wird in Änderung
von '1' auf '0', ohne auf die blockbasierte, insgesamte
Initialisierungsverarbeitung zurückzugreifen als 'Überschreiben' bezeichnet.
-
Es
wird angemerkt, dass die vorliegende Erfindung nicht nur auf einen
Flash-Speicher anwendbar ist, in welchem die jeweiligen Bits nur
zwei Zustände
annehmen können
(ein so genannter bivalenter Flash-Speicher), sondern auch auf einen Flash-Speicher,
in welchem die jeweiligen Bits drei oder mehr Zustände annehmen
können
(ein so genannter multivalenter Flash-Speicher).
-
Jeder
Block des Flash-Speichers 12 besteht aus mehreren Seiten,
von denen jede als eine Datenschreib- oder Datenauslese-Einheit
wirkt, wie in 4B gezeigt ist. Das heißt, dass
bei dem Schreiben von Daten in diesen Flash-Speicher 12 von
dem Seitenpuffer 15 auf der Seitenbasis gesendete Daten durch
die Flash-Speicher-Schnittstellenablaufsteuerung 14, erneut
auf der Seitenbasis, in den Flash-Speicher 12 geschrieben
werden. Bei dem Auslesen von Daten aus dem Flash-Speicher 12 werden
die Daten auf der Seitenbasis durch die Flash-Speicher-Schnittstellenablaufsteuerung 14 ausgelesen
und dann an den Seitenpuffer 15 gesendet.
-
Jede
Seite hat einen Datenbereich und einen redundanten Bereich. Der
Datenbereich ist ein Bereich, in welchem optionale Daten zu schreiben
sind, während
der redundante Bereich ein Bereich ist, in welchem die zum Überwachen
der in den Datenbereich geschriebenen Daten notwendigen Informationen
zu speichern sind.
-
Im
Einzelnen werden die so genannten verteilten Verwaltungsinformationen
in dem redundanten Bereich der führenden
Seite eines Blocks als die zum Überwachen
des Blocks notwendigen Informationen gespeichert, wie in 4C gezeigt
ist. In den redundanten Bereichen der zweiten und der nachfolgenden
Seiten des Blocks werden als Reserve-verteilte Verwaltungsinformationen
dieselben verteilten Verwaltungsinformationen wie die in dem redundanten
Bereich der führenden
Seite gespeicherten gespeichert. In den redundanten Bereichen der
letzten Seite werden jedoch nicht die verteilten Verwaltungsinformationen,
sondern die so genannten zusätzlichen
Verwaltungsinformationen als die zusätzlichen Informationen, die
jenseits des Vermögens
der verteilten Verwaltungsinformationen sein können, gespeichert.
-
Auf
diese Art und Weise werden die verteilten Verwaltungsinformationen
in dem redundanten Bereich jedes Blocks in diesem Flash-Speicher 12 gespeichert.
Die verteilten Verwaltungsinformationen sind die Informationen zum Überwachen
des Blocks, in welchem die verteilten Verwaltungsinformationen gespeichert
worden sind. Durch diese verteilten Verwaltungsinformationen ist
es möglich,
beispielsweise die Informationen dahingehend zu erhalten, ob der
in Frage stehende Block der führende
Block in der Datei ist, oder die Informationen zu erhalten, die
eine Blockverknüpfung
anzeigen, falls eine Datei aus mehreren Blöcken besteht. Diese verteilten
Verwaltungsinformationen werden nachfolgenden im Einzelnen erklärt werden.
-
In
dieser Speicherkarte 2 werden die verteilten Verwaltungsinformationen
der jeweiligen Blöcke gesammelt,
um die so genannten gesamten Verwaltungsinformationen als die Informationen
zum Überwachen
des gesamten Flash-Speichers zu erzeugen, um die gesamten Verwaltungsinformationen
als eine Datei in den Flash-Speicher 12 zu speichern.
-
Üblicherweise
werden die zum Zugreifen auf jeden Block notwendigen Informationen
durch die gesamten Verwaltungsinformationen erhalten. Das heißt, dass
bei dem Austauschen von Daten zwischen der Datenverarbeitungsvorrichtung 1 und
der Speicherkarte 2 die Datenverarbeitungsvorrichtung 1 die
gesamten Verwaltungsinformationen aus der Speicherkarte 2 ausliest
und eine Verwaltungstabelle in dem internen Speicher 4 formuliert,
um auf der Grundlage dieser Verwaltungstabelle auf die Speicherkarte 2 zuzugreifen.
Dies ermöglicht
einen schnelleren Datenzugriffsvorgang, weil keine Notwendigkeit
zum Zugreifen auf die in jedem Block gespeicherten verteilten Verwaltungsinformationen
bei jedem Datenzugriffsvorgang besteht.
-
5. Verteilte Verwaltungsinformationen
-
Die
verteilten Verwaltungsinformationen werden nun im Einzelnen erklärt.
-
Die
verteilten Verwaltungsinformationen sind die Informationen zum Überwachen
des Blocks, in welchem die verteilten Verwaltungsinformationen gespeichert
worden sind, und sind in einen 16 Byte großen redundanten Bereich geschrieben.
Im Einzelnen bestehen die verteilten Verwaltungsinformationen aus
einem 1 Byte langen Möglich/Nicht-Möglich-Kennzeichen,
einem 1 Byte langen Blockkennzeichen, einem 4 Bit langen Letzte-Kennzeichen,
einem 4 Bit langen Referenzkennzeichen, einem 1 Byte langen Verwaltungskennzeichen,
einer 2 Byte langen logischen Adresse, einer 2 Byte langen Verknüpfungsadresse,
einem 3 Byte großen
Reservebereich, einem 2 Byte langen Fehlerkorrekturkennzeichen für die verteilten
Verwalturigsinformationen, und einem 3 Byte langen Fehlerkorrekturcode
für Daten, wie
in 5 gezeigt ist.
-
Das
Möglich/Nicht-Möglich-Kennzeichen
ist ein Kennzeichen zum Anzeigen, ob der in Frage stehende Block
sich in dem verwendbaren Zustand oder in dem nicht verwendbaren
Zustand befindet. Im Einzelnen gibt das Kennzeichen die Zustände 'verwendbar' und "nicht verwendbar' an. 'Verwendbar' gibt an, dass der
in Frage stehende Block sich in dem verwendbaren Zustand befindet,
während 'nicht verwendbar' angibt, dass der
in Frage stehende Block sich in dem nicht verwendbaren Zustand befindet. Falls
zum Beispiel ein nicht behebbarer Fehler in dem Block erzeugt worden
ist, wird dieses Möglich/Nicht-Möglich-Kennzeichen
auf 'nicht verwendbar' gesetzt, und zeigt
somit an, dass der in Frage stehende Block nicht verwendbar ist.
-
Das
Blockkennzeichen ist ein Kennzeichen, das den Zustand des Blocks
anzeigt. Im Einzelnen gibt es die vier Zustände von 'noch nicht verwendet, 'verwendet an dem
führenden
Ende', 'verwendet und 'noch nicht gelöscht' an. Der Zustand 'noch nicht verwendet' gibt an, dass der
Block noch nicht verwendet oder gelöscht ist, sich in den initialisierten
Zustand (wobei alle Bits '1' sind) befindet,
derart, dass Daten sofort geschrieben werden können. Der Zustand 'verwendet an dem
führenden
Ende' gibt an, dass
der in Frage stehende Block an dem führenden Ende einer Datei benutzt
wird. Indessen ist in einem Bootblock, in dem Bootdaten gespeichert
sind, das Blockkennzeichen das 'verwendet
an dem führenden
Ende'-Kennzeichen.
Der Zustand 'verwendet' gibt an, dass der
in Frage stehende Block anderweitig als an dem führenden Ende einer Datei verwendet
wird. Falls das Blockkennzeichen 'verwendet ist, gibt dieses an, dass
der in Frage stehende Block ausgehend von einem anderen Block gekoppelt
ist. Der Zustand 'noch
nicht gelöscht' gibt an, dass die
in den in Frage stehenden Block geschriebenen Daten ungültig geworden
sind. Falls zum Beispiel Daten gelöscht werden, wird das Blockkennzeichen
auf 'noch nicht
gelöscht' gesetzt, und wenn
eine bestimmte Zeittoleranz vorhanden ist, wird der Block, dessen
Blockkennzeichen 'noch
nicht gelöscht' ist, gelöscht. Dies gewährleistet
effiziente Löschverarbeitungsbetriebsabläufe.
-
Das
Letzte-Kennzeichen ist ein Kennzeichen, das angibt, ob eine Datei
zum Ende gekommen ist oder nicht. Im Einzelnen gibt dieses Kennzeichen die
beiden Zustände
von 'Block fortgesetzt' und 'Blockende' an. Der Zustand 'Block fortgesetzt' gibt an, dass eine
in dem in Frage stehenden Block gespeicherte Datei nicht zu Ende
ist und sich zu einem anderen Block fortsetzt. Der Zustand 'Blockende' gibt an, dass der
Block der letzte Block ist. Das heißt, dass der Zustand 'Blockende' angibt, dass die
in dem Block gespeicherte Datei mit diesem Block zu einem Ende kommt.
-
Das
Referenzkennzeichen ist ein Kennzeichen zum Spezifizieren der Referenz
zu den zusätzlichen
Informationen. Im Einzelnen gibt das Kennzeichen die beiden Zustände 'es gibt keine Referenzinformationen' und 'es gibt Referenzinformationen' an. Der Zustand 'es gibt keine Referenzinformationen' gibt an, dass es
keine wirksamen zusätzlichen
Verwaltungsinformationen in dem redundanten Bereich der letzten
Seite des Blocks gibt, während
der Zustand 'es
gibt Referenzinformationen' angibt,
dass es die wirksamen zusätzlichen
Verwaltungsinformationen in dem redundanten Bereich der letzten
Seite des Blocks gibt.
-
Das
Verwaltungskennzeichen ist ein Kennzeichen, das beispielsweise die
Attribute eines Blocks angibt. Zum Beispiel gibt das Verwaltungskennzeichen
an, ob der in Frage stehende Block ein nur lesbarer Block oder ein
Block, welcher auch wiederbeschreibbar ist, ist. Dieses Verwaltungskennzeichen
gibt ebenfalls an, ob der Block ein Bootblock oder ein Datenblock
ist.
-
Die
logische Adresse gibt buchstäblich
die logische Adresse des Blocks an. Der Wert der logischen Adresse
wird bedarfsweise in dem Fall des Neuschreibens von Daten aktualisiert.
Indessen ist der Wert der logischen Adresse so festgelegt, dass derselbe
Wert derselben logischen Adresse nicht von mehreren Blöcken zur
gleichen Zeit besessen wird.
-
Indessen
muss dann, wenn in einen Flash-Speicher Daten in denselben Block
neu geschrieben bzw. zurückgeschrieben
werden müssen, zunächst ein
Blocklöschen
ausgeführt
werden, wie vorstehend diskutiert wurde. Es gibt jedoch eine obere
Grenze für die
zulässige
Anzahl von möglichen
Löschungen,
so dass es erforderlich ist, die Anzahl von Blocklöschungen
auf einen möglichst
kleinen Wert zu reduzieren. Folglich werden bei dem Aktualisieren von
Daten eines gegebenen Blocks neue Daten in einem anderen Block geschrieben,
ohne neue Daten unter Verwendung des gegebenen Blocks neu zu schreiben.
In diesem Fall wird das Blockkennzeichen des Blocks, in welchem
Daten gespeichert waren, auf 'noch
nicht gelöscht' gesetzt, um anzuzeigen,
dass die in den in Frage stehenden Block gespeicherten Daten ungültig geworden
sind. Falls bei dieser Speicherkarte 2 die Daten auf diese
Art und Weise aktualisiert wurden, wird die logische Adresse, welche
dynamisch geändert
werden kann, jedem Block zugewiesen, getrennt von der in jedem Block
voreingestellten physikalischen Adresse, so dass die den Block angebende
Adresse, in dem die in Frage stehenden Daten gespeichert sind, derselbe
sein wird, auf eine Art und Weise derart, dass der Block, in dem die
Daten gespeichert sind, durch diese logische Adresse repräsentiert
wird.
-
Die
Verknüpfungsadresse
gibt die logische Adresse eines mit dem in Frage stehenden Block
verknüpften
Blocks an. Das heißt,
dass dann, wenn es eine Fortsetzung zu einer in einem Block gespeicherten
Datei gibt, derart, dass die Datei sich zu einem anderen Block fortsetzt,
der Wert der logischen Adresse des nächsten Blocks, in welchem die
Fortsetzung der Datei gespeichert ist, als die Verknüpfungsadresse
festgelegt wird.
-
Der
Fehlerkorrekturcode für
die verteilten Verwaltungsinformationen ist ein Fehlerkorrektur-Kennzeichen
für Daten
in den verteilten Verwaltungsinformationen, welche in den Bereich
des Verwaltungskennzeichens, der logischen Adresse, der Verknüpfungsadresse
und der Reserve geschrieben wurden. Indessen sind das Möglich/Nicht-Möglich-Kennzeichen, das Blockkennzeichen,
das Letzte-Kennzeichen und das Referenzkennzeichen nicht der Gegenstand
der Fehlerkorrektur durch den Fehlerkorrekturcode für die verteilten
Verwaltungsinformationen. Demzufolge können das Möglich/Nicht-Möglich-Kennzeichen,
das Blockkennzeichen, das Letzte-Kennzeichen und das Referenzkennzeichen
neu geschrieben werden, ohne den Fehlerkorrekturcode für die verteilten
Verwaltungsinformationen zu aktualisieren.
-
Der
Fehlerkorrekturcode für
Daten ist der Fehlerkorrekturcode für Daten, die in den Datenbereich
der Seite geschrieben sind, in dem der Fehlerkorrekturcode für Daten
gespeichert ist.
-
Der
Fehlerkorrekturcode für
die verteilten Verwaltungsinformationen und der Fehlerkorrekturcode
für Daten
werden von der Fehlerkorrekturschaltung 16, die in der
Spei cherkarte 2 angeordnet ist, verwendet. Demzufolge kann
zur Fehlerkorrektur unter Verwendung dieser Fehlerkorrekturcodes
eine beliebige optionale Technik verwendet werden, welche nicht
von der Datenverarbeitungsvorrichtung 1 abhängt, sondern
von der Speicherkarte 2 abhängt.
-
6. Zusätzliche Verwaltungsinformationen
-
Die
zusätzlichen
Verwaltungsinformationen sind die Informationen, die in dem 16 Byte
großen
redundanten Bereich der letzten Seite des Blocks gespeichert sind,
und umfassen die zusätzlichen
Informationen, die außerhalb
des Vermögens
der verteilten Verwaltungsinformationen sein können.
-
Im
Einzelnen bestehen die zusätzlichen
Verwaltungsinformationen aus einem 1 Byte langen Möglich/Nicht-Möglich-Kennzeichen,
einem 1 Byte langen Blockkennzeichen, einem 4 Bit langen Letzte-Kennzeichen,
einem 4 Bit langen Referenzkennzeichen, einer 1 Byte langen Unterscheidungszahl, einer
2 Byte langen effektiven Datengröße, einem
5 Byte großen
Reservebereich, einem 2 Byte langem Fehlerkorrekturkennzeichen für die zusätzlichen
Verwaltungsinformationen, und einem 2 Byte langem Fehlerkorrekturcode
für Daten,
wie in 6 gezeigt ist.
-
Das
Möglich/Nicht-Möglich-Kennzeichen, das
Blockkennzeichen, das Letzte-Kennzeichen, das Referenzkennzeichen,
der Reservebereich und der Fehlerkorrekturcode für Daten sind dieselben wie diejenigen
der verteilten Verwaltungsinformationen. Der Fehlerkorrekturcode
für die
zusätzlichen
Verwaltungsinformationen ist äquivalent
zu dem Fehlerkorrekturcode für
die verteilten Verwaltungsinformationen in den verteilten Verwaltungsinformationen,
und ist der Fehlerkorrekturcode für Daten, die in die Unterscheidungszahl,
die effektive Datengröße und den Reservebereich
der zusätzlichen
Verwaltungsinformationen geschrieben sind.
-
Die
Unterscheidungszahl und die effektive Datengröße sind in den zusätzlichen
Verwaltungsinformationen als die zusätzlichen Informationen enthalten,
die außerhalb
des Vermögens
der verteilten Verwaltungsinformationen sein können.
-
Die
Unterscheidungszahl ist die Information zur Fehlerverarbeitung,
und ihr Wert wird jedes Mal dann inkrementiert, wenn Blockdaten
neu geschrieben werden. Diese Unterscheidungszahl wird zum Unterscheiden
der zeitlichen Abfolge von Daten verwendet, die in mehrere Blöcke mit
derselben logischen Adresse geschrieben sind, falls irgendein Fehler
aufgetreten ist und diese mehreren Blöcke zur selben logischen Adresse
gelangt sind. Für
diese Unterscheidungszahl wird ein 1 Byte großer Bereich verwendet, und
sie hat einen Wertebereich von '0' bis '255', wobei der Anfangswert '0' ist. Falls die Unterscheidungszahl
255 überschritten
hat, wird sie auf '0' zurückgesetzt.
Sollte es mehrere Datenblöcke
derselben logischen Adresse geben, ist der Datenblock mit dem kleineren
Wert der Unterscheidungszahl der gültige welche. Falls jedoch
in dem Fall von Bootblöcken
mehrere Reserve-Bootblöcke
vorhanden sind, haben die Unterscheidungszahlen dieser Bootblöcke normalerweise
denselben Wert. Falls in gewissen ungewöhnlichen Zuständen diese
Bootblöcke
verschiedene Werte haben, sind die Bootblöcke mit größeren Unterscheidungswerten
die gültigen
welchen.
-
Die
effektive Datengröße gibt
die Größen der effektiven
Daten in dem Block an. Das heißt,
dass dann, wenn es irgendeinen freien Abschnitt in dem Datenbereich
eines gegebenen Blocks gibt, ein Wert, der die Größe von in
den Datenbereich geschriebenen Daten angibt, in der effektiven Datengröße festgelegt
wird. In diesem Fall wird das Referenzkennzeichen der verteilten
Verwaltungsinformationen auf 'es gibt
Referenzinformationen' gesetzt.
Falls es keinen freien Abschnitt in dem Datenbereich des Blocks
gibt, wird '0xffff' in dem effektiven
Datenbereich als ein Wert festgelegt, der angibt, dass es in dem
Datenbereich keinen freien Abschnitt gibt.
-
Die
verteilten Verwaltungsinformationen und die zusätzlichen Verwaltungsinformationen,
die vorstehend beschrieben wurden, werden jedes Mal dann, wenn Blockdaten
aktualisiert werden, auf die neuesten Informationen aktualisiert.
-
7. Gesamte Verwaltungsinformationen
-
Die
gesamten Verwaltungsinformationen bzw. Anhäufungsverwaltungsinformationen
werden nun im Einzelnen erklärt.
Die gesamten Verwaltungsinformationen sind die Informationen, die
beim Sammeln der verteilten Verwaltungsinformationen der jeweiligen
Informationen erzeugt wurden, wie vorstehend beschrieben wurde,
und werden als eine Datei in dem Flash-Speicher 12 gespeichert.
Das heißt, dass
eine Datei der gesamten Verwaltungsinformationen als die Informationen
zum kollektiven Überwachen
der jeweiligen Blöcke
aus den verteilten Verwaltungsinformationen der jeweiligen Blöcke gebildet wird,
wie in 7 gezeigt ist, und in einem Datenbereich eines
voreingestellten Blocks gespeichert wird. Indessen können die
gesamten Verwaltungsinformationen in einem Block oder in mehreren
Blöcken
gespeichert sein. Die Datenverarbeitungsvorrichtung 1 gewinnt üblicherweise
die Informationen, wie sie zum Zugreifen auf jeweilige Blöcke benötigt werden, durch
diese gesamten Verwaltungsinformationen.
-
Das
heißt,
dass dann, wenn die gesamten Verwaltungsinformationen, die für die Speicherkarte 2 wirksam
sind, als eine Datei in der Speicherkarte 2 gespeichert
sind, die Datenverarbeitungsvorrichtung 1 eine Datei der
gesamten Verwaltungsinformationen ausliest, um die so ausgelesene
Datei in den internen Speicher 4 zu speichern, um eine
Verwaltungstabelle zum Überwachen
der Speicherkarte 2 zu formulieren. Indessen ist die physikalische
Adresse des Blocks, in dem der führende
Teil der Datei der gesamten Verwaltungsinformationen gespeichert
ist, in den Bootdaten enthalten, so dass die Datenverarbeitungsvorrichtung 1 auf
die Datei der gesamten Verwaltungsinformationen auf der Grundlage
dieser physikalischen Adresse zugreift.
-
Bezug
nehmend auf 8 beinhalten diese gesamten
Verwaltungsinformationen einen Vorspann für die gesamten Verwaltungsinformationen,
eine Bitmap-Tabelle, die den Zustand der jeweiligen Blöcke zeigt,
eine Umwandlungstabelle zum Umwandeln der spezifizierten logischen
Adresse in die physikalische Adresse, bei dem Zugreifen auf den
Block, und eine Verknüpfungstabelle,
die den zu einem gegebenen Block nächsten Block angibt.
-
In
der Bitmap-Tabelle sind die Informationen gespeichert, die aus den
verteilten Verwaltungsinformationen für jeden Block extrahiert wurden,
wie beispielsweise ein Möglich/Nicht-Möglich-Kennzeichen, ein
Blockkennzeichen, ein Letzte-Kennzeichen, ein Referenzkennzeichen
und ein Verwaltungskennzeichen.
-
Bezug
nehmend auf 9 ist die Umwandlungstabelle
eine Tabelle, die die der logischen Adresse zugeordnete physikalische
Adresse angibt. Ein Bereich, in welchem die physikalische Adresse zu
speichern ist, ist zwei Byte pro Eintrag groß. Falls diese Umwandlungstabelle
aus dieser Umwandlungstabelle erzeugt wird, werden die logische
Adresse, die in die verteilten Verwaltungsinformationen eines Zielblocks
geschrieben ist, und die physikalische Adresse des Blocks in der
entsprechenden Position der Tabelle eingetragen. Falls die logische
Adresse nicht verwendet wird, wird die entsprechende physikalische
Adresse auf '0xffff' gesetzt.
-
Bezug
nehmend auf 10 gibt die Verknüpfungstabelle
Verknüpfungsadressen
für die
physikalischen Adressen an. Der Bereich, in welchem die Verknüpfungsadressen
zu speichern sind, ist zwei Bytes pro Eintrag groß. Wenn
diese Verknüpfungstabelle
aus den verteilten Verwaltungsinformationen erzeugt wird, wird die
Verknüpfungsadresse, die
in die verteilten Verwaltungsinformationen des Zielblocks geschrieben
ist, geprüft,
und wird die Verknüpfungsadresse
des Blocks in die entsprechende Position der Tabelle eingetragen.
-
8. Abfolge von Betriebsabläufen bei
dem Booten der Speicherkarte
-
Nun
wird die Abfolge von Betriebsabläufen bei
dem Booten der Speicherkarte 2 unter Bezugnahme auf das
Ablaufdiagramm von 11 erklärt.
-
Bei
dem Booten der Speicherkarte 2 liest die Datenverarbeitungsvorrichtung 1 in
einem Schritt S1 in 11 Bootdaten aus einem Bootblock
der Speicherkarte 2 ein. Die Datenverarbeitungsvorrichtung 1 schreitet
dann zu einem Schritt S2 fort.
-
In
diesem Schritt S2 prüft
die Datenverarbeitungsvorrichtung 1, um zu erkennen, dass
das Einlesen der Bootdaten aus dem Bootblock normal ausgeführt worden
ist. Falls die Bootdaten normal eingelesen worden sind, schreitet
die Datenverarbeitungsvorrichtung 1 zu einem Schritt S3
fort. Andernfalls schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S8 fort.
-
In
dem Schritt S3 ermittelt die Datenverarbeitungsvorrichtung 1 auf
der Grundlage der eingelesenen Bootdaten, ob die Speicherkarte in
die Datenverarbeitungsvorrichtung 1 eingesetzt ist oder
nicht. Falls die Speicherkarte 2 in die Datenverarbeitungsvorrichtung 1 eingesetzt
ist, schreitet die Datenverarbeitungsvorrichtung 1 zu einem
Schritt S4 fort. Andernfalls schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S8 fort.
-
In
dem Schritt S4 liest die Datenverarbeitungsvorrichtung 1 die
gesamten Verwaltungsinformationen aus der Speicherkarte 2 ein.
Indessen ist die physikalische Adresse des Blocks, in dem die gesamten
Verwaltungsinformationen gespeichert sind, in den Bootdaten spezifiziert.
Die Datenverarbeitungsvorrichtung 1 schreitet dann zu einem
Schritt S5 fort.
-
In
diesem Schritt S5 prüft
die Datenverarbeitungsvorrichtung 1, um zu sehen, ob die
wirksamen gesamten Verwaltungsinformationen wie regelmäßig eingelesen
worden sind oder nicht. Falls die wirksamen gesamten Verwaltungsinformationen
wie regelmäßig eingelesen
worden sind, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S6 fort. Andernfalls schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S7 fort.
-
In
dem Schritt S6 veranlasst die Datenverarbeitungsvorrichtung 1,
dass die eingelesenen gesamten Verwaltungsinformationen in dem internen Speicher 4 gespeichert
werden, um die Verwaltungstabelle zum Überwachen der Speicherkarte 2 zu
formulieren.
-
Die
vorstehend beschriebene Verarbeitung vervollständigt die Initialisierungsverarbeitung
bei dem Anlaufen der Speicherkarte 2, so dass die Speicherkarte 2 nun
verwendet werden kann.
-
Falls
in dem Schritt S5 verifiziert wird, dass die wirksamen gesamten
Verwaltungsinformationen nicht normal eingelesen worden sind, schreitet
die Datenverarbeitungsvorrichtung 1 zu dem Schritt S7 fort,
wie vorstehend beschrieben wurde. In dem Schritt S7 liest die Datenverarbeitungsvorrichtung 1 die
verteilten Verwaltungsinformationen der jeweiligen Blöcke aus,
um die gesamten Verwaltungsinformationen zu rekonstruieren. Die
gesamten Verwaltungsinformationen werden in dem internen Speicher 4 expandiert,
um die Verwaltungstabelle zum Überwachen
der Speicherkarte 2 zu formulieren. Die vorstehende Verarbeitung
vervollständigt
die Initialisierungsverarbeitung bei dem Anlaufen der Speicherkarte 2,
so dass die Speicherkarte 2 nun verwendbar ist.
-
Falls
in dem Schritt S2 ermittelt wird, dass ein Fehler bei dem Einlesen
der Bootdaten produziert worden ist, oder falls in dem Schritt S3
ermittelt wird, dass die Speicherkarte 2 nicht in die Datenverarbeitungsvorrichtung 1 eingesetzt
ist, schreitet die Datenverarbeitungsvorrichtung 1 zu dem
Schritt S8 fort, wie vorstehend beschrieben wurde.
-
Es
ist dann, wenn die Speicherkarte 2 nicht verwendbar ist,
dass die Datenverarbeitungsvorrichtung 1 zu dem Schritt
S8 fortschreitet. Daher führt
in diesem Schritt S8 die Datenverarbeitungsvorrichtung 1 eine
voreingestellte Fehlerverarbeitung durch, wie beispielsweise das
Anzeigen einer Nachricht 'nicht verwendbar', um die Bootverarbeitung
für die
Speicherkarte 2 zu beenden.
-
9. Handhaben einer Gesamtverwaltungsverarbeitung bei
einer Datenaktualisierungsverarbeitung
-
Jedes
Mal dann, wenn die Datenverarbeitungsvorrichtung 1 die
Verarbeitung des Schreibens von Daten in die Speicherkarte 2 oder
des Löschens der
Daten aus derselben durchführt,
aktualisiert die Datenverarbeitungsvorrichtung 1 nebenbei
die Verwaltungstabelle, die in dem internen Speicher 4 gehalten
wird, in eine Übereinstimmung
mit dem tatsächlichen
Zustand der Speicherkarte 2, das heißt, in eine Übereinstimmung
mit den Inhalten der verteilten Verwaltungsinformationen. Die Verarbeitung
des Schreibens von Daten in die oder des Löschens der Daten aus der Speicherkarte 2 wird
nachstehend als 'Datenaktualisierungsverarbeitung' bezeichnet. Anderer seits
werden die gesamten Verwaltungsinformationen, die als eine Datei
in der Speicherkarte 2 gespeichert sind, nicht bei jeder
Datenverarbeitungsoperation aktualisiert, sondern Änderungsinhalte
derselben werden insgesamt zu einem geeigneten Zeitpunkt aktualisiert.
-
Im
Allgemeinen gibt es eine obere Grenze für die Anzahl möglicher
Neuschreibvorgänge
für den Flash-Speicher 12.
Durch Ausführen
des Neuschreibens der gesamten Verwaltungsinformationen als Ganzes,
und kollektiv in einem mehr oder weniger großem Ausmaß, kann die Anzahl von Neuschreibvorgängen des
Blocks, in dem die gesamten Verwaltungsinformationen gespeichert
sind, verringert werden, wodurch die Lebensdauer der Speicherkarte 2 verlängert wird.
-
Es
wird angemerkt, dass vor dem Datenaktualisieren eine Ungültigmachung
der Datei der in der Speicherkarte 2 gespeicherten gesamten
Verwaltungsinformationen erfolgen muss, um die Integrität der verteilten
Verwaltungsinformationen und der gesamten Verwaltungsinformationen
nicht zu beeinträchtigen.
Bei der Datenaktualisierung werden die verteilten Verwaltungsinformationen
eines verarbeiteten Blocks gleichzeitig aktualisiert. Die Inhalte
der gesamten Verwaltungsinformationen werden jedoch nicht gleichzeitig
aktualisiert, so dass daher die verteilten Verwaltungsinformationen
und die gesamten Verwaltungsinformationen nicht miteinander übereinstimmen.
Folglich wird in einem solchen Fall die Datei der gesamten Verwaltungsinformationen,
die in der Speicherkarte 2 gespeichert ist, ungültig gemacht.
-
Im
Einzelnen verifiziert bei der Aktualisierung der Daten die Datenverarbeitungsvorrichtung 1 in
einem Schritt S11 in 12, ob die in der Speicherkarte 2 gespeicherten
gesamten Verwaltungsinformationen gültig sind oder nicht. Falls
die gesamten Verwaltungsinformationen bereits ungültig sind,
schreitet die Datenverarbeitungsvorrichtung 1 direkt zu
der Datenaktualisierung fort. Falls demgegenüber die gesamten Verwaltungsinformationen
gültig
sind, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S12 fort.
-
In
dem Schritt S12 macht die Datenverarbeitungsvorrichtung 1 die
gesamten Verwaltungsinformationen ungültig. Im Einzelnen wird das
Blockkennzeichen des Blocks, in dem die Datei der gesamten Verwaltungsinformationen
gespeichert ist, auf 'noch nicht
gelöscht' gesetzt, oder wird
der Block einer Löschverarbeitung
unterzogen, um die Daten zu löschen.
Nach dem Ungültigmachen
der gesamten Verwaltungsinformationen schreitet die Datenverarbeitungsvorrichtung 1 zu
der Datenaktualisierungsverarbeitung fort.
-
Die
Datei der gesamten Verwaltungsinformationen, die in der Speicherkarte 2 gespeichert
ist, wird während
der Datenaktualisierungsverarbeitung ungültig gemacht. Die Inhalte der
Verwaltungstabelle, die in dem internen Speicher 4 der
Datenverarbeitungsvorrichtung 1 gespeichert ist, werden
jedoch von Zeit zu Zeit aktualisiert, um zu allen Zeiten den neuesten
Zustand beizubehalten. Die Datenverarbeitungsvorrichtung 1 überwacht üblicherweise
die jeweiligen Blöcke
auf der Grundlage dieser Verwaltungstabelle.
-
Die
gesamten Verwaltungsinformationen, die während der Datenaktualisierungsverarbeitung
ungültig
gemacht wurden, werden zu einem geeigneten Zeitpunkt neu in die
Speicherkarte 2 geschrieben, um erneut gültige Daten
zu sein. Der geeignete Zeitpunkt hier bedeutet beispielsweise den
Zeitpunkt, wenn die Verwendung der Speicherkarte 2 zu einem
Ende gekommen ist und die Leistungsversorgung ausgeschaltet wird,
den Zeitpunkt, zu dem ein Zugriff auf die Speicherkarte 2 für länger als
eine voreingestellte Zeit nicht erfolgte, oder den Zeitpunkt, wenn
für länger als
eine vorbestimmte Zeit kein Datenneuschreibvorgang ausgeführt worden
ist.
-
Im
Einzelnen wird die in 13 gezeigte Ende-Verarbeitung
ausgeführt,
bevor die Verwendung der Speicherkarte 2 zu einem Ende
gekommen ist, um die Leistungsversorgung auszuschalten, um die gesamten
Verwaltungsinformationen wirksam zu machen.
-
Bei
dieser Ende-Verarbeitung verifiziert die Datenverarbeitungsvorrichtung 1 zunächst, ob
die in der Speicherkarte 2 gespeicherten gesamten Verwaltungsinformationen
gültig
sind oder nicht. Falls die gesamten Verwaltungsinformationen gültig sind,
wird die Verarbeitung direkt beendet. Falls die gesamten Verwaltungsinformationen
gültig
sind, geht die Verarbeitung zu einem Schritt S22 über.
-
In
dem Schritt S22 verifiziert die Datenverarbeitungsvorrichtung 1 zunächst, ob
der Block, in dem die gesamten Verwaltungsinformationen gespeichert sind,
gelöscht
worden ist oder nicht. Falls die Datei gelöscht worden ist, geht die Verarbeitung
zu einem Schritt S23 über,
und andernfalls geht die Verarbeitung zu einem Schritt S24 über.
-
In
dem Schritt S23 löscht
die Datenverarbeitungsvorrichtung 1 den Block, in dem die
Datei der gesamten Verwaltungsinformationen gespeichert ist. Die
Datenverarbeitungsvorrichtung 1 schreitet dann zu einem
Schritt S24 fort.
-
In
dem Schritt S24 schreibt die Datenverarbeitungsvorrichtung 1 die
gesamten Verwaltungsinformationen in die Speicherkarte 2.
Die Datenverarbeitungsvorrichtung 1 formuliert darüber hinaus
eine Datei der neuen gesamten Verwaltungsinformationen auf der Grundlage
der Inhalte der Verwaltungstabelle, die in dem internen Speicher 4 gehalten
wird, und schreibt die Datei der neuen gesamten Verwaltungsinformationen
in die Speicherkarte 2. Dies bewirkt, dass die wirksamen
gesamten Verwaltungsinformationen, die den neuesten Zustand der
Speicherkarte 2 angeben, in der Speicherkarte 2 gespeichert
werden.
-
Das
Vorstehende vervollständigt
die Ende-Verarbeitung derart, dass die wirksamen gesamten Verwaltungsinformationen
nun in der Speicherkarte 2 gespeichert worden sind.
-
10. Schreiben einer neuen
Datei
-
Nun
wird die Abfolge von Betriebsabläufen bei
dem Schreiben einer neuen Datei in die Speicherkarte 2 erklärt. Die
Abfolge von Betriebsabläufen
bei dem Schreiben einer Datei in die Speicherkarte 2 unterscheidet
sich in Abhängigkeit
davon, ob die Dateigröße von Anfang
an bekannt war oder nicht.
-
10-1 Der Fall, in dem die Datei Größe von Anfang
an bekannt war.
-
Falls
die Dateigröße von Anfang
an bekannt war, wird, wann immer die Daten der Datei in einen neuen
Block geschrieben werden, geprüft,
ob die Daten in dem in Frage stehenden Block untergebracht werden
können
oder nicht. Falls die Daten nicht in dem Block untergebracht werden
können,
wird die logische Adresse des nächsten
folgenden Blocks beschafft, werden die Daten in den Datenbereich
geschrieben, und werden die verteilten Verwaltungsinformationen
geschrieben, mit der logischen Adresse des nächsten folgenden Blocks als
der Verknüpfungsadresse.
Zu dieser Zeit wird das Letzte-Kennzeichen auf 'Blockfortsetzung' gesetzt. Falls andererseits die Daten
in dem Block untergebracht werden können, wird der Bruchteilszahlabschnitt
der Daten, das heißt,
der freie Bereich des Datenbereichs, auf '0xffff' gesetzt. Zu dieser Zeit wird das Letzte-Kennzeichen
auf 'letzter Block' gesetzt, und wird
die effektive Datengröße in die
zusätzlichen
Verwaltungsinformationen geschrieben.
-
Die
Abfolge von Betriebsabläufen
des Schreibens der Datei, deren Größe von Anfang an bekannt war,
in die Speicherkarte 2, wird im Einzelnen unter Bezugnahme
auf das in 14 gezeigte Ablaufdiagramm erklärt. In dem
in 14 gezeigten Ablaufdia gramm und in den in den 15 und 17 gezeigten
Ablaufdiagrammen ist die Untersuchung des Schalters 20 zum
Verhinderns des unabsichtlichen Löschens der Speicherkarte 2 oder
die Verarbeitung, falls irgendein Fehler aufgetreten ist, weggelassen.
-
Bei
dem Schreiben einer Datei, deren Größe von Anfang an bekannt war,
in die Speicherkarte 2 stellt die Datenverarbeitungsvorrichtung 1 in
einem Schritt S31 reale in die Speicherkarte 2 geschriebene Daten
und einen Vorspann für
die realen Daten bereit. Anders ausgedrückt stellt die Datenverarbeitungsvorrichtung 1 in
dem Schritt S31 eine in den Datenbereich der Speicherkarte 2 zu
schreibende Datei bereit. Die Informationen über die Dateigröße ist in dem
Dateivorspann enthalten. Die Datenverarbeitungsvorrichtung 1 schreitet
dann zu einem Schritt S32 fort.
-
In
dem Schritt S32 setzt die Datenverarbeitungsvorrichtung 1 das
Blockkennzeichen des Blocks, in dem die Datei zuerst gespeichert
ist, auf 'an dem
führenden
Ende verwendet'.
Die Datenverarbeitungsvorrichtung 1 beschafft dann die
freie logische Adresse, bevor sie zu einem Schritt S34 fortschreitet.
-
In
dem Schritt S33 holt die Datenverarbeitungsvorrichtung 1 eine
freie physikalische Adresse, bevor sie zu einem Schritt S34 fortschreitet.
-
In
dem Schritt S34 prüft
die Datenverarbeitungsvorrichtung 1, um zu erkennen, ob
die Datei in den verarbeiteten Block untergebracht werden kann oder
nicht. Falls die Datei nicht in dem Block untergebracht werden kann,
und es eine Fortsetzung der Datei gibt, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S35 fort, und falls die Datei in dem Block untergebracht
werden kann und es keine Fortsetzung der Datei gibt, schreitet die
Datenverarbeitungsvorrichtung 1 zu einem Schritt S36 fort.
-
In
dem Schritt S35 beschafft die Datenverarbeitungsvorrichtung 1 die
logische Adresse des nächsten
folgenden Blocks und legt diese logische Adresse als die Verknüpfungsadresse
fest. Die Datenverarbeitungsvorrichtung 1 schreitet dann
zu dem nächsten
Schritt S37 fort.
-
In
dem Schritt S36 setzt die Datenverarbeitungsvorrichtung 1 das
Letzte-Kennzeichen auf 'letzter
Block', während sie
die Verknüpfungsadresse
auf '0xffff' setzt, bevor sie
zu einem Schritt S37 fortschreitet.
-
In
dem Schritt S37 formuliert die Datenverarbeitungsvorrichtung 1 die
verteilten Verwaltungsinformationen, die zu dem Block gehören, der
verarbeitet wird, auf der Grundlage von beispielsweise den Informationen
wie in den Schritten bis zu dem gegenwärtigen Schritt festgelegt,
bevor sie zu einem Schritt S38 fortschreitet.
-
In
dem Schritt S38 schreibt die Datenverarbeitungsvorrichtung 1 sequenzielle
Daten in den Block, der verarbeitet wird, auf der Seitenbasis. Falls die
Datei nicht in dem Block, der verarbeitet wird, untergebracht werden
kann, werden 1-Block-Daten auf der Seitenbasis geschrieben. Falls
die Datei in dem Block, der verarbeitet wird, untergebracht werden kann,
werden nur benötigte
Seiten der Daten auf der Seitenbasis beschrieben. Indessen handelt
es ich um Daten einer neu geschriebenen Datei und die verteilten
Verwaltungsinformationen, die in dem Schritt S37 erzeugt wurden,
die in den Block geschrieben werden. Die Datenverarbeitungsvorrichtung 1 schreitet dann
zu einem Schritt S39 fort.
-
In
dem Schritt S39 prüft
die Datenverarbeitungsvorrichtung 1, um zu erkennen, ob
die Gesamtheit von Daten der Datei in die Speicherkarte 2 geschrieben
worden ist oder nicht. Falls das Schreiben nicht beendet worden
ist, und es noch zu schreibende Daten gibt, kehrt die Verarbeitung
zu dem Schritt S33 zurück,
um die Verarbeitung zu wiederholen. Falls das Schreiben zu einem
Ende gekommen ist, geht die Verarbeitung zu einem Schritt S40 über.
-
In
dem Schritt S40 verifiziert die Datenverarbeitungsvorrichtung 1,
ob die geschriebenen Daten in einem Block teilweise zu einem Ende
gekommen sind. Falls die geschriebenen Daten in einem Block teilweise
zu einem Ende gekommen sind, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S41 fort, und falls Daten bis hin zu dem Ende des Blocks
gespeichert worden sind, kommt die Verarbeitung zu einem Ende.
-
In
dem Schritt S41 schreibt die Datenverarbeitungsvorrichtung 1 die
effektive Datengröße in die zusätzlichen
Verwaltungsinformationen, die in dem redundanten Bereich der letzten
Seite gespeichert sind. Das heißt,
die Datenverarbeitungsvorrichtung 1 schreibt einen Wert,
der die Größe von Daten
angibt, die in den Datenbereich des Blocks geschrieben wurden, in
den der letzte Teil der Datei gespeichert ist, in die zusätzlichen
Verwaltungsinformationen des Blocks, als effektive Datengröße.
-
Das
Vorstehende vervollständigt
die Verarbeitung des Schreibens in die Speicherkarte 2 der Datei,
deren Größe von Anfang
an bekannt war.
-
10-2 Der Fall, in welchem die Dateigröße nicht
bekannt war
-
Falls
die Dateigröße nicht
im Voraus bekannt war, wird die logische Adresse des nächsten folgenden
Blocks immer beschafft, und zu einem Zeitpunkt, an dem die Daten
zu einem Ende gekommen sind, wird das Letzte-Kennzeichen des letzten
Blocks durch Überschreiben
gesetzt. Die verteilten Verwaltungsinformationen und die zusätzlichen
Verwaltungsinformationen werden auf eine Art und Weise ähnlich zu
einem Fall festgelegt, in dem die Dateigröße von Anfang an bekannt ist.
-
Bezug
nehmend auf das Ablaufdiagramm von 15 wird
nun die Abfolge von Betriebsabläufen
zum Schreiben der Datei, deren Größe am Anfang nicht bekannt
ist, im Einzelnen erklärt.
-
Bei
dem Schreiben der Datei, deren Größe nicht von Anfang an bekannt
ist, formuliert die Datenverarbeitungsvorrichtung 1 in
einem Schritt S51 einen vorläufigen
Vorspann einer in die Speicherkarte 2 geschriebenen Datei.
Da die Dateigröße in dieser Stufe
nicht bekannt ist, sind die Informationen über die Dateigröße in dem
vorläufigen
Vorspann nicht enthalten. Die Datenverarbeitungsvorrichtung 1 schreitet
dann zu einem Schritt S52 fort.
-
In
diesem Schritt S52 setzt die Datenverarbeitungsvorrichtung 1 das
Blockkennzeichen des Blocks, in dem die Datei anfänglich gespeichert
wird, auf 'an dem
führenden
Ende verwendet'.
Die Datenverarbeitungsvorrichtung 1 beschafft darüber hinaus eine
freie logische Adresse, bevor sie zu einem Schritt S53 fortschreitet.
-
In
dem Schritt S53 stellt die Datenverarbeitungsvorrichtung 1 in
die Speicherkarte 2 geschriebene Daten bereit, bevor sie
zu einem Schritt S54 fortschreitet.
-
In
dem Schritt S54 verifiziert die Datenverarbeitungsvorrichtung 1,
ob es irgendwelche in die Speicherkarte 2 zu schreibende
Daten gibt oder nicht. Falls die Daten nicht erschöpft sind,
und übrig bleiben,
schreitet die Datenverarbeitungsvorrichtung 1 zu einem
Schritt S55 fort. Falls die Daten erschöpft sind und nicht übrig bleiben,
schreitet die Datenverarbeitungsvorrichtung 1 zu einem
Schritt S61 fort.
-
In
dem Schritt S55 holt die Datenverarbeitungsvorrichtung 1 eine
freie physikalische Adresse, bevor sie zu einem Schritt S56 fortschreitet.
-
In
dem Schritt S56 beschafft die Datenverarbeitungsvorrichtung 1 die
logische Adresse des nächsten
folgenden Blocks, und setzt diese logische Adresse als die Verknüpfungsadresse,
bevor sie zu einem Schritt S57 fortschreitet.
-
In
dem Schritt S57 formuliert die Datenverarbeitungsvorrichtung 1 die
verteilten Verwaltungsinformationen für den verarbeiteten Block auf
der Grundlage der Informationen, wie sie in den Schritten bis hin
zu dem gegenwärtigen
Schritt festgelegt wurden, bevor sie zu einem Schritt S58 fortschreitet.
-
In
dem Schritt S58 schreibt die Datenverarbeitungsvorrichtung 1 sequentiell
Daten auf der Seitenbasis in den Block, der verarbeitet wird. Falls
eine Datei in dem Block, der verarbeitet wird, nicht untergebracht
werden kann, wird ein Block von Daten auf der Seitenbasis geschrieben.
Falls eine Datei in dem Block, der verarbeitet wird, untergebracht
werden kann, werden nur benötigte
Seiten der Daten auf der Seitenbasis geschrieben. Indessen handelt
es sich um die Daten einer neu geschriebenen Datei und die in dem
Schritt S57 erzeugten verteilten Verwaltungsinformationen, die in
diesem Schritt S58 in den Block geschrieben werden. Die Datenverarbeitungsvorrichtung 1 schreitet
dann zu einem Schritt S59 fort.
-
In
diesem Schritt S59 verifiziert die Datenverarbeitungsvorrichtung 1,
ob die geschriebenen Daten teilweise in den Datenbereich des Blocks
zu einem Ende gekommen sind oder nicht. Falls Daten bis hin zu dem
Ende des Datenbereichs gespeichert sind, kehrt die Verarbeitung
zu dem Schritt S53 zurück,
um die Verarbeitung zu wiederholen. Falls Daten in dem Datenbereich
teilweise erschöpft
sind, geht die Verarbeitung zu einem Schritt S60 über.
-
In
dem Schritt S60 schreibt die Datenverarbeitungsvorrichtung 1 die
effektive Datengröße in die zusätzlichen
Verwaltungsinformationen, die in dem redundanten Bereich der letzten
Seite des Blocks, der verarbeitet wird, gespeichert sind. Das heißt, die Datenverarbeitungsvorrichtung 1 schreibt
einen Wert, der die Größe von in
den Datenbereich des Blocks, in dem der letzte Teil der Datei gespeichert ist,
geschriebenen Daten angibt, als die effektive Datengröße in die
zusätzlichen
Verwaltungsinformationen des in Frage stehenden Blocks. Die Datenverarbeitungsvorrichtung 1 schreitet
dann zu einem Schritt S61 fort.
-
In
diesem Schritt S61 setzt die Datenverarbeitungsvorrichtung 1 das
Letzte-Kennzeichen des Blocks, der verarbeitet wird, auf durch Überschreiben auf 'letzter Block', bevor sie zu einem
Schritt S62 fortschreitet.
-
In
dem Schritt S62 aktualisiert die Datenverarbeitungsvorrichtung 1 den
Dateivorspann. Das heißt,
dass, da die Dateigröße in dieser
Stufe klar geworden ist, die Datenverarbeitungsvorrichtung 1 neu einen
Vorspann formuliert, einschließlich
der Dateigrößeninformation,
um den vorstehend erwähnten vorläufigen Vorspann
auf den neuen Vorspann einschließlich der Dateigrößeninformation
neu zu schreiben.
-
Das
Vorstehende vervollständig
die Verarbeitung des Schreibens der Datei, deren Größe im Voraus
nicht bekannt war, in die Speicherkarte 2.
-
11. Dateiaktualisierung
-
Die
Verarbeitungsabfolge bei dem Aktualisieren der in der Speicherkarte 2 gespeicherten
Datei wird nun erklärt.
-
Bei
der Dateiaktualisierung wird die logische Adresse, welche dieselbe
ist wie die des Blocks, dessen Daten neu zu schreiben sind, einem
anderen Block zugeteilt, und werden neue Daten in den in Frage stehenden
Block geschrieben. Der Block, in den alte Daten geschrieben sind,
wird zu dieser Zeit, ohne geöffnet
zu werden, gehalten, bis die Dateiaktualisierungsverarbeitung zu
einem Ende kommt. Dieses ermöglicht,
dass der Voraktualisierungszustand der Datei wiederhergestellt werden
kann, selbst wenn angenommen wird, dass eine Fehlfunktion während der
Dateiaktualisierungsverarbeitung aufgetreten ist.
-
Ein
bestimmtes Beispiel der Abfolge von Betriebsabläufen zum Aktualisieren einer
Datei wird nun unter Bezugnahme auf 16 erklärt.
-
Es
wird angenommen, dass das führende Ende
der Datei in einem Block der logischen Adresse '1' gespeichert
ist, ein nächster
Abschnitt der Datei in einem Block der logischen Adresse '2' gespeichert ist, und ein weiterer nächster Abschnitt
derselben in einem Block der logischen Adresse '3' gespeichert ist,
wie in 16A gezeigt ist. Es wird darüber hinaus angenommen,
dass die Unterscheidungszahl des Blocks mit der logischen Adresse '1' '6' ist, die Unterscheidungszahl
des Blocks mit der logischen Adresse '2' '4' ist, und die Unterscheidungszahl des
Blocks mit der logischen Adresse '3' '1' ist.
-
Es
wird ferner angenommen, dass in einem derartigen Zustand, die Daten
des Blocks der logischen Adresse '2' neu
geschrieben werden. In einem solchen Fall wird die logische Adresse '2' einem anderen freien Block zugeteilt,
und werden neue Daten in diesem Block geschrieben, wie in 16B gezeigt ist. Für die Unterscheidungszahl des
Blocks, in welchem neue Daten zu schreiben sind, wird ein Wert '5' entsprechend der Unterscheidungszahl
des Blocks, in welchen neue Daten zu schreiben sind, und welche
um Eins inkrementiert ist, festgelegt.
-
In
dieser Stufe existieren zwei Blöcke
mit derselben logischen Adresse. Die Daten, die in einem dieser
zwei Blöcke
gespeichert sind, der eine größere Unterscheidungszahl
trägt,
sind neue Daten, und die Daten, die in dem anderen Block gespeichert sind,
der eine kleinere Unterscheidungszahl trägt, sind alte Daten.
-
Wenn
das Schreiben neuer Daten regelmäßig zu einem
Ende gekommen ist, wird der Block mit den darin geschriebenen alten
Daten gelöscht,
wie in 16C gezeigt ist. Es wird angemerkt,
dass einfach das Blockkennzeichen des in Frage stehenden Blocks
auf 'noch nicht
gelöscht' gesetzt wird, ohne den
Block, in dem die alten Daten geschrieben sind, zu löschen, wobei
der Block später
zu einem geeigneten Zeitpunkt gelöscht wird.
-
Nun
auf das Ablaufdiagramm von 17 Bezug
nehmend, wird die vorstehend beschriebene Abfolge von Betriebsabläufen im
Einzelnen erklärt.
-
Bei
dem Aktualisieren einer Datei wählt
die Datenverarbeitungsvorrichtung 1 in einem Schritt S71
einen zu aktualisierenden Block, bevor sie zu dem nächsten Schritt
S72 fortschreitet.
-
In
diesem Schritt S72 liest die Datenverarbeitungsvorrichtung 1 die
Unterscheidungszahl des zu aktualisierenden Blocks aus und legt
einen dieser Unterscheidungszahl entsprechenden Wert, der um Eins
inkrementiert ist, als die Unterscheidungszahl des Blocks fest,
in welchen neue Daten zu schreiben sind. Die Datenverarbeitungsvorrichtung 1 legt
darüber
hinaus einen Wert gleich der logischen Adresse des Blocks, der aktualisiert
wird, als eine logische Adresse des Blocks, in welchem neue Daten
zu schreiben sind, fest, bevor sie zu dem nächsten Schritt S73 fortschreitet.
-
In
diesem Schritt S73 stellt die Datenverarbeitungsvorrichtung 1 neue
Daten, die in den Block zu schreiben sind, bereit, bevor sie zu
dem nächsten Schritt
S74 fortschreitet.
-
In
diesem Schritt S74 holt die Datenverarbeitungsvorrichtung 1 eine
freie physikalische Adresse, bevor sie zu dem nächsten Schritt S75 fortschreitet.
-
In
diesem Schritt S75 verifiziert die Datenverarbeitungsvorrichtung 1,
ob die Datenänderungen alle
abgeschlossen worden sind oder nicht. Falls die Datenänderungen
nicht abgeschlossen worden sind, geht die Verarbeitung zu einem
Schritt S76 über,
und andernfalls geht die Verarbeitung zu einem Schritt S79 über.
-
In
dem Schritt S76 beschafft die Datenverarbeitungsvorrichtung 1 die
logische Adresse des nächsten
folgenden Blocks und legt diese logische Adresse als die Verknüpfungsadresse
fest, bevor sie zu dem nächsten
Schritt S77 fortschreitet.
-
In
dem Schritt S77 formuliert die Datenverarbeitungsvorrichtung 1 die
verteilten Verwaltungsinformationen, die zu einem Block gehören, in
welchem neue Daten zu schreiben sind, auf der Grundlage von zum
Beispiel den Information wie in den Schritten bis hin zu dem gegenwärtigen Schritt
festgelegt, bevor sie zu dem nächsten
Schritt S78 fortschreitet.
-
In
diesem Schritt S78 schreibt die Datenverarbeitungsvorrichtung 1 sequenzielle
neue Daten auf der Seitenbasis in den Block der in dem Schritt S74 geholten
physikalischen Adresse. Falls die Datei in dem Block, der verarbeitet
wird, nicht untergebracht werden kann, werden Ein-Block-Daten auf
der Seitenbasis geschrieben. Falls die Datei in dem Block, der verarbeitet
wird, untergebracht werden kann, werden nur benötigte Seiten der Daten auf
der Seitenbasis geschrieben. Indessen handelt es sich um Daten einer
neuen Datei und die verteilten Verwaltungsinformationen, die in
dem Schritt S77 erzeugt wurden, die in den Block geschrieben werden.
Nach diesem Schritt S78 kehrt die Verarbeitung zu dem Schritt S73
zurück,
um die Verarbeitung zu wiederholen.
-
In
dem Schritt S79 prüft
die Datenverarbeitungsvorrichtung 1, um zu erkennen, ob
eine Verknüpfungsadresse
für den
Block, welcher als Letztes aktualisiert wurde, festgelegt worden
ist oder nicht. Falls die Verknüpfungsadresse
nicht festgelegt worden ist, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S80 fort, und falls die Verknüpfungsadresse festgelegt worden
ist, schreitet die Datenverarbeitungsvorrichtung 1 zu einem
Schritt S81 fort.
-
In
dem Schritt S80 setzt die Datenverarbeitungsvorrichtung 1 das
Letzte-Kennzeichen des Blocks, in welchen neue Daten als Letztes
geschrieben wurden, auf 'letzter
Block', bevor sie
zu dem nächsten
Schritt S81 fortschreitet.
-
In
dem Schritt S81 setzt die Datenverarbeitungsvorrichtung 1 den
Wert der Verknüpfungsadresse,
wie in dem Block, welcher als letzter aktualisiert wurde, festgelegt,
in die Verknüpfungsadresse
des Blocks, in welchen als Letztes neue Daten geschrieben wurden.
Die Datenverarbeitungsvorrichtung 1 schreitet dann zu einem
Schritt S82 fort.
-
In
diesem Schritt S82 aktualisiert die Datenverarbeitungsvorrichtung 1 den
Dateivorspann. Das heißt,
dass, da eine Möglichkeit
besteht, dass sich die Dateigröße geändert hat,
aufgrund der Dateiaktualisierung, ein Vorspann einschließlich der
Information über
die neue Dateigröße neu erzeugt
wird, um den Dateivorspann zu aktualisieren. Die Datenverarbeitungsvorrichtung 1 schreitet
dann zu einem Schritt S83 fort.
-
In
diesem Schritt S83 löscht
die Datenverarbeitungsvorrichtung 1 den Block, in den alte
Daten geschrieben waren. Es wird angemerkt, dass einfach das Block-Kennzeichen des in
Frage stehenden Blocks auf 'noch
nicht gelöscht' gesetzt wird, ohne den
Block, in den die alten Daten geschrieben sind, zu löschen, wobei
der Block später
zu einem geeigneten Zeitpunkt gelöscht wird.
-
Das
Vorstehende vervollständigt
die Dateiaktualisierungsverarbeitung.
-
12. Fehlererfassungs- und
Korrektur-Verarbeitung
-
Falls
in dem vorstehenden beschriebenen System die Leistungsversorgung
plötzlich
ausgeschaltet wird, oder falls die Speicherkarte 2 erzwungen
aus der Datenverarbeitungsvorrichtung 1 entnommen wurde,
wenn eine neue Datei in die Speicherkarte 2 geschrieben
wird oder eine in der Speicherkarte 2 gespeicherte Datei
aktualisiert wird, ist es wahrscheinlich, dass mehrere Blöcke mit
derselben logischen Adresse nebeneinander existieren (logischer
Adressfehler), oder dass es keinen durch die Verknüpfungsadresse
spezifizierten Block gibt (Verknüpfungsadressfehler).
-
Folglich
werden in dem erfindungsgemäßen System
eine Fehlererfassungs- und Korrektur-Verarbeitung zum Erfassen und
Korrigieren des logischen Adressfehlers oder des Verknüpfungsadressfehlers bei
dem Aufbau der gesamten Verwaltungsinformationen ausgeführt. Diese
Fehlererfassungs- und Korrektur-Verarbeitung wird nachstehend erklärt.
-
12-1 Fehlererfassungstabelle
-
In
dem erfindungsgemäßen System
werden die logischen Adressfehler oder die Verknüpfungsadressfehler bei dem
Aufbau der gesamten Verwaltungsinformationen erfasst. Als die zum
Erfassen der Verknüpfungsadressfehler
verwendete Tabelle wird eine Fehlererfassungstabelle verwendet.
Die Fehlererfassungstabelle wird nur zum Erfassen der Verknüpfungsadressfehler
verwendet, und wird vorübergehend
in dem internen Speicher 4 der Datenverarbeitungsvorrichtung 1 beschafft.
Der für
die Fehlererfassungstabelle bereitgestellte Bereich wird nach dem
Ende der Fehlererfassungs- und
Korrektur-Verarbeitung freigegeben.
-
Bezug
nehmend auf 18 ist die Fehlererfassungstabelle
eine Tabelle mit einem 1 Bit großen Bereich, der den Verknüpfungszustand
der jeweiligen Blöcke
angibt. Anders ausgedrückt
ist die Fehlererfassungstabelle eine Ein-Bit-für-Einen-Eintrag-Tabelle, wobei jeder
Eintrag den Verknüpfungszustand der
logischen Adresse durch '0' oder '1' repräsentiert. Falls es N Blöcke gibt,
die verarbeitet werden, nimmt diese Fehlererfassungstabelle einen
Bereich von N/8 Bytes ein.
-
Bei
dieser Fehlererfassungstabelle haben die Werte, die die Verknüpfungszustände der
jeweiligen Blöcke
zeigen, wenn die gesamten Verwaltungsinformationen aufgebaut werden,
andere Bedeutungen als diejenigen dann, wenn der Aufbau der gesamten
Verwaltungsinformationen zu einem Ende gekommen ist.
-
Falls
dann, wenn die gesamten Verwaltungsinformationen aufgebaut werden,
der den Kopplungszustand angebende Wert '0' ist,
gibt dieses an, dass sich der Eintrag in einem normalen Zustand
befindet, oder gibt an, dass die dem Eintrag entsprechende logische
Adresse nicht durch die Verknüpfungsadresse
eines anderen Blocks bis hin zu dem verarbeiteten Block spezifiziert
wird. In diesem Fall kann der den Kopplungszustand angebende Wert
mit fortschreitender Verarbeitung '1' werden,
so dass es nicht definiert ist, ob ein Verknüpfungsfehler besteht oder nicht.
-
Falls
dann, wenn die gesamten Verwaltungsinformationen aufgebaut werden,
der den Kopplungszustand angebende Wert '1' ist,
gibt dieses an, dass die logische Adresse, die dem Eintrag entspricht,
durch die Verknüpfungsadresse
eines anderen Blocks bis hin zu dem verarbeiteten Block spezifiziert
wird, aber nicht der physikalischen Adresse entspricht. In einem
derartigen Zustand kann der den Kopplungszustand angebende Wert
mit fortschreitender Verarbeitung '0' werden,
so dass es unbestimmt ist, ob ein Verknüpfungsadressfehler besteht oder
nicht.
-
Falls
andererseits der den Verknüpfungszustand
angebende Wert in der Stufe '1' ist, in der der Aufbau
der gesamten Verwaltungsinformationen zu einem Ende gekommen ist,
gibt ein derartiger Zustand an, dass auch obwohl die dem Eintrag
entsprechende logische Adresse als die Verknüpfungsadresse spezifiziert
wird, die entsprechende physikalische Adresse fehlt.
-
Folglich
gibt dieser Zustand einen Verknüpfungsadressfehler
an.
-
Falls
der den Verknüpfungszustand
angebende Wert in der Stufe '0' ist, in der der
Aufbau der gesamten Verwaltungsinformationen zu einem Ende gekommen
ist, gibt ein derartiger Zustand an, dass die Verknüpfung, die
zu der logischen Adresse passt, die dem Eintrag entspricht, in dem
normalen Zustand ist.
-
12-2 Erfassung eines Verknüpfungsadressfehlers
-
Ein
bestimmtes Beispiel der Erfassung des Verknüpfungsadressfehlers, der unter
Verwendung der vorstehend beschriebenen Fehlererfassungstabelle
ausgeführt
wird, wird nachstehend erklärt.
-
Es
wird zum Beispiel angenommen, dass bei einem Block mit einer physikalischen
Adresse '10' die logische Adresse '1' ist, und die Verknüpfungsadresse '3' ist, und bei einem Block mit einer
physikalischen Adresse '17' die logische Adresse '3' ist, und die Verknüpfungsadresse '2' ist. Es wird darüber hinaus angenommen, dass
es keinen Block mit der logischen Adresse '2' gibt.
-
Falls
die Verarbeitung des Wiederaufbauens der gesamten Verwaltungsinformationen
zu dieser Zeit ausgeführt
wird, wird eine Verknüpfungsadresse-Fehlererfassung
bei dem Wiederaufbau der gesamten Verwaltungsinformationen ausgeführt, wie
in 20 gezeigt ist.
-
Es
wird angenommen, dass in der anfänglichen
Stufe die Werte der Fehlererfassungstabelle für die logischen Adressen '1', '2' und '3' alle der anfängliche Wert '0' sind, wie in 20A gezeigt
ist, dass die Umwandlungstabelle der gesamten Verwaltungsinformationen
sämtlich
von dem anfänglichen
Wert '0xffff' ist, und dass es
keinen in die Verknüpfungstabelle
der gesamten Verwaltungsinformationen eingegebenen Wert gibt.
-
Die
Informationen des Blocks mit der logischen Adresse '1' werden dann gelesen. Der Wert der Umwandlungstabelle,
entsprechend zu der logischen Adresse '1',
ist der Wert der physikalischen Adresse des Blocks der logischen
Adresse '1', das heißt, '10'. Der Wert der Verknüpfungstabelle
für die logische
Adresse '1' ist der Wert der
Verknüpfungsadresse
des Blocks der logischen Adresse '1',
das heißt '3'.
-
Der
durch den Wert der Verknüpfungstabelle spezifizierte
Eintrag der logischen Adresse '3', entsprechend zu
der logischen Adresse '1', wird überprüft. Da dem
Eintrag der logischen Adresse '3' kein physikalischer
Block zugewiesen ist, wird der Wert der Fehlerkorrekturtabelle,
entsprechend zu der logischen Adresse '3',
auf '1' gesetzt, wie in 20C gezeigt ist. Der Wert der Umwandlungstabelle
entsprechend zu der logischen Adresse '3' ist
der Wert der logischen Adresse der Quelle der Verknüpfung, das heißt '1'.
-
Die
Informationen des Blocks der logischen Adresse '3' mit
dem Wert der Fehlererfassungstabelle von '1' wird
gelesen. Der Block mit der logischen Adresse '3' ist
vorhanden, und die Informationen desselben können wie regelmäßig gelesen
werden. Daher ist der Wert der Fehlererfassungstabelle, entsprechend
zu der logischen Adresse '3', '0', wie in 20D gezeigt
ist. Der Wert der Umwandlungstabelle, entsprechend zu der logischen
Adresse '3', ist der Wert der
physikalischen Adresse des Blocks mit der logischen Adresse '3', das heißt '17'.
Der Wert der Verknüpfungstabelle,
entsprechend zu der logischen Adresse '3',
ist der Wert der Verknüpfungsadresse des
Blocks mit der logischen Adresse '3',
das heißt, '2'.
-
Dann
wird der Eintrag der logischen Adresse '2',
angegeben durch den Wert der Verknüpfungstabelle, entsprechend
zu der logischen Adresse '3', überprüft. Da dem
Eintrag der logischen Adresse '2' kein physikalischer
Block zugewiesen ist, ist der Wert der Fehlererfassungstabelle,
entsprechend zu der logischen Adresse '2', '1', wie in 20E gezeigt
ist. Der Wert der Umwandlungstabelle, entsprechend zu der logischen
Adresse '2', ist der Wert der
logischen Adresse der Verknüpfungsquelle,
das heißt, '3'.
-
Es
wird dann versucht, die Informationen des Blocks der logischen Adresse '2' mit dem Wert der Fehlererfassungstabelle
von '1' einzulesen. Da des jedoch
keinen Block mit der logischen Adresse von '2' gibt,
wird in dieser Stufe ersichtlich, dass ein Verknüpfungsadressfehler aufgetreten
ist.
-
12-3 Fehlerkorrekturverarbeitung
-
In
dem System der vorliegenden Erfindung wird die Fehlerkorrekturverarbeitung
für den
logischen Adressfehler wie folgt ausgeführt:
Sollte der logische
Adressfehler erzeugt worden sein, werden die Blöcke mit derselben logischen
Adresse geprüft.
Falls es nur einen vollständigen
Block gibt, wird der vollständige
Block gehalten, und werden die verbleibenden Blöcke ungültig gemacht.
-
Falls
es mehrere vollständige
Blöcke
mit derselben logischen Adresse (mit Ausnahme des Bootblocks) gibt,
werden die Unterscheidungszahlen miteinander verglichen, und wird
der Block mit der kleineren Unterscheidungszahl gehalten. Indessen
wird dann, falls die Unterscheidungszahl eines der Blöcke '255' ist, wobei die Unterscheidungszahl
eines anderen '0' ist, der Block mit
der Unterscheidungszahl von '255' ausgewertet.
-
Es
wird angemerkt, dass dann, wenn es mehrere Blöcke mit derselben logischen
Adresse gibt, der Unterschied der Unterscheidungszahlen derselben üblicherweise
1 ist. Falls diese Bedingung nicht erfüllt ist, wird die manuelle
Wiederherstellungsbetriebsart bzw. der manuelle Wiederherstellungsmodus
festgelegt, anstelle dessen, dass die Systemseite eine automatische
Fehlerkorrekturverarbeitung ausführt.
-
Falls
in dem System der vorliegenden Erfindung der Verknüpfungsadressfehler
aufgetreten ist, wird eine beliebige geeignete Fehlerkorrekturverarbeitung
in Übereinstimmung
mit der die Speicherkarte 2 benutzenden Anwendungssoftware
oder mit in der Speicherkarte 2 gespeicherten Daten ausgeführt. Im
Einzelnen wird in wünschenswerter
Weise die nachstehend als ein Beispiel wiedergegebene Fehlerkorrekturverarbeitung
ausgeführt.
-
Das
heißt,
dass ein neuer Block als ein durch die letzte Verknüpfungsadresse
angegebener Block belegt wird. Eingelesene Daten werden bis zu einer Seite
fortgesetzt, deren Daten der letzten Seite korrekt gelesen werden
können,
und Daten bis zu der Seite werden in einen neuen Block kopiert.
Das Letzte-Kennzeichen des neuen Blocks wird auf 'letzter Block' gesetzt. Diese Fehlerkorrektur
ist insbesondere wünschenswert,
falls die Zieldaten derartige Daten sind, welche auch teilweise
bedeutungsvoll sind, wie beispielsweise Musikdaten.
-
12-4 Aufbau der gesamten Verwaltungsinformationen
und Fehlerkorrekturverarbeitung
-
Es
ist dann der Fall, wenn irgendeine Fehlfunktion während der
Dateiaktualisierungsverarbeitung aufgetreten ist, dass physikalische
Adressfehler oder Verknüpfungsadressfehler
in dem System gemäß der vorliegenden
Erfindung produziert werden. In dem vorliegenden System werden die
in der Speicherkarte 2 gespeicherten gesamten Verwaltungsinformationen
vor der Dateiaktualisierungsverarbeitung ungültig gemacht, wie vorstehend
beschrieben wurde. Folglich sind dann, wenn physikalische Adressfehler
oder Verknüpfungsadressfehler
erzeugt werden, die gesamten Verwaltungsinformationen ungültig. Falls
die gesamten Verwaltungsinformationen ungültig sind, wird die Verarbeitung
des erneuten Prüfens
der verteilten Verwaltungsinformationen der Gesamtheit der Blöcke zum
Wiederaufbauen der gesamten Verwaltungsinformationen bei dem nächsten Booten
der Speicherkarte 2 notwendigerweise ausgeführt.
-
Folglich
wird in dem vorliegenden System Aufmerksamkeit auf die Tatsache
gerichtet, dass, bei dem Wiederaufbauen der gesamten Verwaltungsinformationen,
die Gesamtheit der Blöcke
erneut geprüft
wird, und die Fehlererfassungs- und Korrektur-Verarbeitung zu dieser Zeit gleichzeitig
ausgeführt
wird. Anders ausgedrückt,
besteht keine Wahrscheinlichkeit, dass die physikalischen Adressfehler oder
die Verknüpfungsadressfehler
erzeugt werden, wenn die gesamten Verwaltungsinformationen gültig sind,
so dass keine Fehlererfassungs- und Korrektur-Verarbeitung zu dieser
Zeit ausgeführt
wird. Das heißt,
dass mit diesem Verfahren die Fehlererfassungs- und Korrektur-Erfassung
nur dann ausgeführt wird,
wenn die gesamten Verwaltungsinformationen wieder aufgebaut werden.
Durch Verfahren derart ist es unnötig, auf die Speicherkarte 2 redundant
zur Fehlererfassung und Korrektur zuzugreifen, so dass die Speicherkarte 2 rasch
gebootet werden kann.
-
Diese
Fehlererfassungs- und Korrektur-Verarbeitung wird durch die folgende
Abfolge von Betriebsabläufen
ausgeführt:
- (1) Die Umwandlungstabelle des internen Speichers 4 der
Datenverarbeitungsvorrichtung 1 wird in ihrer Gesamtheit
auf '0xffff' initialisiert. Ein
Bereich der Fehlererfassungstabelle wird in dem internen Speicher 4 bereitgestellt,
und die Fehlererfassungstabelle in ihrer Gesamtheit wird auf '0' initialisiert.
- (2) Die Verarbeitung geht zu dem führenden Ende des Blocks über.
- (3) Die verteilten Verwaltungsinformationen werden aus dem Block
eingelesen, und die Bitmap-Tabelle wird unter Verwendung der verteilten
Verwaltungsinformationen aufgebaut. Falls das 'Möglich/Nicht
Möglich'-Kennzeichen 'nicht verwendbar' anzeigt, oder falls
das Blockkennzeichen 'noch
nicht benutzt' oder 'noch nicht gelöscht' ist, geht die Verarbeitung
zu dem nächsten Block über, um
die Verarbeitung zu wiederholen, wenn die Formulierung der Bitmap-Tabelle
zu einem Ende gekommen ist.
- (4) Die logische Adresse des Blocks, die nachstehend als eine
logische Adresse A bezeichnet wird, und die Verknüpfungsadresse
derselben, die nachstehend als logische Adresse B bezeichnet wird,
werden geprüft.
- (5) Falls die logische Adresse A '0xffff' ist, geht die Verarbeitung zu dem nächsten Block über und kehrt
zu (3) zurück,
um die Verarbeitung zu wiederholen.
- (6) Die Spalte der logischen Adresse A der Fehlererfassungstabelle
wird geprüft.
Falls die Spalte der logischen Adresse A der Fehlererfassungstabelle '1' ist, wird sie auf '0' neu
geschrieben, und die physikalische Adresse des Blocks der logischen
Adresse A wird in die Spalte der logischen Adresse A der Fehlererfassungstabelle
geschrieben. Falls die Spalte der logischen Adresse A der Fehlererfassungstabelle '0' ist, wird die Spalte der logischen
Adresse A der Umwandlungstabelle geprüft. Falls der Wert der logischen
Adresse A der Umwandlungstabelle '0xffff' ist, wird die physikalische Adresse
des Blocks der logischen Adresse A in diese geschrieben. Falls ein
anderer Wert als '0xffff' bereits als der
Wert der logischen Adresse A der Umwandlungstabelle eingetragen
wurde, gibt dieses an, dass der logische Adressfehler aufgetreten
ist, so dass eine Fehlerkorrekturverarbeitung für den logischen Adressfehler
ausgeführt wird.
- (7) Der Wert der logischen Adresse B wird in die Spalte der
logischen Adresse A der Verknüpfungstabelle
eingetragen.
- (8) Es wird geprüft,
ob das Letzte-Kennzeichen 'letzter
Block' ist. Falls
das Letzte-Kennzeichen 'letzter
Block' ist, ist
die Verknüpfungsadresse
ungültig.
Folglich geht die Verarbeitung zu dem nächsten Block über und
kehrt zu (3) zurück,
um die Verarbeitung zu wiederholen.
- (9) Dann wird unter Verwendung der Umwandlungstabelle geprüft, ob die
physikalische Adresse der logischen Adresse B entspricht oder nicht. Falls
der Wert der logischen Adresse B der Umwandlungstabelle sich von '0xffff' unterscheidet, entspricht
die physikalische Adresse der logischen Adresse B. Falls demgegenüber der
Wert der logischen Adresse B der Umwandlungstabelle '0xffff' ist, entspricht
die physikalische Adresse nicht der logischen Adresse B in den Stufen
bis bin zu der gegenwärtigen
Stufe. In diesem Fall wird '1' in die Spalte der
logischen Adresse B der Fehlerkorrekturtabelle geschrieben, zur
selben Zeit, zu der der Wert der logischen Adresse A in die Spalte
der logischen Adresse B der Umwandlungstabelle eingetragen wird.
Dann geht die Verarbeitung zu dem nächsten Block über, um
zu (3) zurückzukehren,
um die Verarbeitung zu wiederholen.
Obwohl der Wert der logischen
Adresse B der Umwandlungstabelle '0xffff' ist, ist es in einer Stufe, in der
die Verarbeitung nur zu einem mittleren Teil des Blocks fortgeschritten
ist, nicht klar, ob die physikalische Adresse wirklich der logischen Adresse
B entspricht oder nicht. Das heißt, dass die physikalische
Adresse nicht wirklich der logischen Adresse B entsprechen kann,
oder dass ein entsprechender Block mit fortschreitender Verarbeitung
erscheinen kann.
- (10) Nachdem die Verarbeitung für die Gesamtheit der Blöcke erfolgte,
wird Bezug auf die Fehlerkorrekturtabelle genommen. Die physikalische Adresse
entspricht nicht der logischen Adresse, deren Wert der Fehlerkorrekturtabelle '1' ist. Das heißt, dass ein Verknüpfungsadressfehler
aufgetreten ist. Da die logische Adresse des Blocks der Quelle der
Verknüpfung
in der Umwandlungstabelle gespeichert ist, wird diese logische Adresse dazu
verwendet, den Quellblock zu spezifizieren, um eine korrekte Fehlerkorrekturverarbeitung auszuführen. Indessen
wird auf die Fehlerkorrektur folgend der Wert der Fehlerkorrekturtabelle
auf '0' gesetzt, und wird
der entsprechende Wert der Umwandlungstabelle auf '0xffff' gesetzt.
-
Bei
dem Aufbau der gesamten Verwaltungsinformationen wird in dem System
gemäß der vorliegenden
Erfindung die Fehlererfassungs- und Korrektur-Verarbeitung ausgeführt, wie
vorstehend beschrieben wurde. Ein bestimmtes Verfahren zum Aufbauen
der gesamten Verwaltungsinformationen und der Fehlererfassungs-
und Korrektur-Verarbeitung wird
nun genauer unter Bezugnahme auf die Ablaufdiagramme der 21 bis 23 erklärt.
-
Hierbei
werden I, A, B, C, D und T(I) als Variablen verwendet, und wird
N als eine Konstante verwendet. Die Variable I ist eine Variable,
in welche eine physikalische Adresse eingetragen wird, die Variable
A ist eine Variable, in welche eine logische Adresse eingetragen
wird, die Variable B ist eine Variable, in welche eine Verknüpfungsadresse
eingetragen wird, die Variablen C, D sind Variablen, in welche die
Werte der Unterscheidungszahlen eingetragen werden, und die Variable
T(I) ist eine Variable, die den Wert der Fehlererfassungstabelle
entsprechend zu der logischen Adresse 'I' angibt.
Die Konstante N ist eine Konstante, die die Gesamtanzahl von Blöcken angibt.
-
Bei
dem Aufbauen der gesamten Verwaltungsinformationen initialisiert
die Datenverarbeitungsvorrichtung 1 in einem Schritt S101
von 21 die Umwandlungstabelle, um alle Werte auf '0xffff' zu setzen. Die Datenverarbeitungsvorrichtung 1 schreitet
dann zu einem Schritt S102 fort.
-
In
diesem Schritt S102 initialisiert die Datenverarbeitungsvorrichtung 1 die
Fehlererfassungstabelle und setzt alle Werte auf '0', bevor sie zu einem Schritt S103 fortschreitet.
-
In
dem Schritt S103 ersetzt die Datenverarbeitungsvorrichtung 1 '0' in der Variablen I, bevor sie zu einem
Schritt S104 fortschreitet.
-
In
dem Schritt S104 liest die Datenverarbeitungsvorrichtung 1 die
verteilten Verwaltungsinformationen des Blocks der physikalischen
Adresse 'I' aus der Speicherkarte 2 ein,
bevor sie zu einem Schritt S105 fortschreitet.
-
In
dem Schritt S105 nimmt die Datenverarbeitungsvorrichtung 1 Bezug
auf das Möglich/Nicht-Möglich-Kennzeichen
der verteilten Verwaltungsinformationen, wie in dem Schritt S104
gelesen, um zu verifizieren, ob der Block der physikalischen Adresse 'I' verwendbar ist oder nicht. Falls der Block
verwendbar ist, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S106 fort, und andernfalls schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S129 fort.
-
In
dem Schritt S106 nimmt die Datenverarbeitungsvorrichtung 1 auf
das Blockkennzeichen der verteilten Verwaltungsinformationen wie
in dem Schritt S104 gelesen Bezug, um zu prüfen, ob der Block der physikalischen
Adresse in Verwendung ist oder nicht. Im Einzelnen wird geprüft, ob das
Blockkennzeichen 'an
dem führenden
Ende verwendet' oder 'verwendet' ist. Falls das Blockkennzeichen 'an dem führenden
Ende verwendet' oder 'verwendet' ist, und der Block
in Verwendung ist, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S107 fort, und falls der Block nicht in Verwendung
ist, schreitet die Datenverarbeitungsvorrichtung 1 zu einem
Schritt S129 fort.
-
In
dem Schritt S107 fügt
die Datenverarbeitungsvorrichtung 1 die zu dem Block der
physikalischen Adresse 'I' gehörenden Informationen
zu der Bitmap-Tabelle hinzu, bevor sie zu einem Schritt S108 fortschreitet.
-
In
dem Schritt S108 ersetzt die Datenverarbeitungsvorrichtung 1 die
logische Adresse des Blocks der physikalischen Adresse 'I' in die Variable A, während sie
die Verknüpfungsadresse
des Blocks der physikalischen Adresse 'I' in
die Variable B ersetzt. Die Datenverarbeitungsvorrichtung 1 schreitet dann
zu einem Schritt S109 fort.
-
In
dem Schritt S109 verifiziert die Datenverarbeitungsvorrichtung 1,
ob der Wert von A '0xffff' ist oder nicht.
Falls der Wert von A nicht '0xffff' ist, schreitet die
Datenverarbeitungsvorrichtung 1 zu einem Schritt S110 fort,
und falls er '0xffff' ist, schreitet die
Datenverarbeitungsvorrichtung 1 zu einem Schritt S120 von 22 fort.
-
In
dem Schritt S110 prüft
die Datenverarbeitungsvorrichtung 1 den Wert der logischen
Adresse 'A' der Fehlererfassungstabelle,
bevor sie zu einem Schritt S111 fortschreitet.
-
In
dem Schritt S111 verifiziert die Datenverarbeitungsvorrichtung 1,
ob der Wert der logischen Adresse 'A' der
Fehlererfassungstabelle '1' ist oder nicht.
Falls er '1' ist, schreitet die
Datenverarbeitungsvorrichtung 1 zu einem Schritt S112 fort,
und andernfalls schreitet die Datenverarbeitungsvorrichtung 1 zu einem
Schritt S130 fort.
-
In
dem Schritt S112 schreibt die Datenverarbeitungsvorrichtung 1 den
Wert der logischen Adresse 'A' der Fehlererfassungstabelle
auf '0' neu, bevor sie zu
einem Schritt S113 fortschreitet.
-
In
dem Schritt S113 schreibt die Datenverarbeitungsvorrichtung 1 die
Variable 'I' (das heißt, den physikalischen
Block 'I') in eine Spalte
der logischen Adresse 'A' der Umwandlungstabelle,
bevor sie zu einem Schritt S114 fortschreitet.
-
In
dem Schritt S114 schreibt die Datenverarbeitungsvorrichtung 1 die
Variable 'B' (das heißt, den Verknüpfungsblock 'B') in eine Spalte der logischen Adresse 'A' der Verknüpfungstabelle, bevor sie zu
einem Schritt S115 fortschreitet.
-
In
dem Schritt S115 verifiziert die Datenverarbeitungsvorrichtung 1,
ob das Letzte-Kennzeichen 'letzter Block' ist oder nicht.
Falls das Letzte-Kennzeichen nicht 'letzter Block' ist, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S160 fort, und andernfalls schreitet die Datenverarbeitungsvorrichtung 1 zu
dem Schritt S120 fort.
-
In
dem Schritt S116 prüft
die Datenverarbeitungsvorrichtung 1 auf den Wert der Umwandlungstabelle
entsprechend zu der logischen Adresse 'B', bevor
sie zu einem Schritt S117 fortschreitet.
-
In
dem Schritt S117 verifiziert die Datenverarbeitungsvorrichtung 1,
ob der Wert der Umwandlungstabelle entsprechend zu der logischen
Adresse 'B' '0xffff' ist. Falls er '0xffff' ist, schreitet die Datenverarbeitungsvorrichtung
zu einem Schritt S118 fort, und andernfalls schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S120 von 22 fort.
-
In
dem Schritt S118 schreibt die Datenverarbeitungsvorrichtung 1 die
Spalte der logischen Adresse 'B' der Fehlerkorrekturtabelle
auf '1' neu, bevor sie zu
einem Schritt S119 fortschreitet.
-
In
dem Schritt S119 schreibt die Datenverarbeitungsvorrichtung 1 die
logische Adresse 'A' in eine Spalte der
logischen Adresse 'B' der Fehlerkorrekturtabelle,
bevor sie zu dem Schritt S120 von 22 fortschreitet.
-
In
dem Schritt S120 von 22 vergleicht die Datenverarbeitungsvorrichtung 1 den
Wert der Variablen I mit dem Wert der Konstanten N, die die Anzahl
der gesamten Anzahl von Blöcken
spezifiziert. Mit Ausnahme von 1 < N
schreitet die Datenverarbeitungsvorrichtung 1 zu einem
Schritt S121 fort, und schreitet dann, wenn 1 < N ist, die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S128 fort.
-
In
dem Schritt S121 ersetzt die Datenverarbeitungsvorrichtung 1 '0' in die Variable I, bevor sie zu einem
Schritt S122 fortschreitet.
-
In
dem Schritt S122 verifiziert die Datenverarbeitungsvorrichtung 1,
ob die Variable T(I), die den Wert der logischen Adresse 'I' der Fehlerkorrekturtabelle spezifiziert, '1' ist, oder nicht. Falls er nicht '1' ist, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S123 fort, und falls er '1' ist,
schreitet die Datenverarbeitungsvorrichtung 1 zu einem
Schritt S125 fort.
-
In
dem Schritt S123 vergleicht die Datenverarbeitungsvorrichtung 1 den
Wert der Variablen I mit dem Wert der Konstanten N, der die Gesamtanzahl von
Blöcken
angibt. Falls I = N, kommt die Verarbeitung zu einem Ende. Mit Ausnahme
von I = N geht die Verarbeitung zu einem Schritt S124 über.
-
In
dem Schritt S124 inkrementiert die Datenverarbeitungsvorrichtung 1 den
Wert der Variablen I um Eins. Die Datenverarbeitungsvorrichtung 1 kehrt dann
zu dem Schritt S122 zurück,
um die Verarbeitung zu wiederholen.
-
Falls
in dem Schritt S122 die Variable T(I) '1' ist,
schreitet die Datenverarbeitungsvorrichtung 1 zu dem Schritt
S125 fort. Es ist dann der Fall, wenn der Verknüpfungsadressfehler aufgetreten
ist, dass die Datenverarbeitungsvorrichtung 1 zu dem Schritt S125
fortschreitet. Somit führt
in diesem Schritt S125 die Datenverarbeitungsvorrichtung 1 eine
voreingestellte Fehlerkorrekturverarbeitung für Verknüpfungsadressfehler durch. Hierbei
führt die
Datenverarbeitungsvorrichtung 1 eine korrekte Fehlerkorrekturverarbeitung
in Abhängigkeit
von beispielsweise in der Speicherkarte 2 gespeicherten
Daten oder der die Speicherkarte 2 verwendenden Anwendungssoftware
durch. Bei Beendigung der Fehlerkorrekturverarbeitung schreitet
die Datenverarbeitungsvorrichtung 1 zu einem Schritt S126
fort.
-
In
dem Schritt S126 setzt die Datenverarbeitungsvorrichtung 1 den
Wert der logischen Adresse der Fehlererfassungstabelle auf '0', bevor sie zu einem Schritt S127 fortschreitet.
-
In
dem Schritt S27 schreibt die Datenverarbeitungsvorrichtung 1 die
Spalte der logischen Adresse 'I' der Umwandlungstabelle
auf '0xffff' neu. Die Datenverarbeitungsvorrichtung 1 schreitet
dann zu dem Schritt S123 fort, um die vorstehende Verarbeitung durchzuführen.
-
Falls
in dem Schritt S120 I < N,
schreitet die Datenverarbeitungsvorrichtung 1 zu dem Schritt S128
fort, wie vorstehend beschrieben wurde. Es ist dann der Fall, wenn
das Auslesen der verteilten Verwaltungsinformationen für die Gesamtheit
der Blöcke nicht
zu einem Ende gekommen ist, dass die Datenverarbeitungsvorrichtung 1 zu
dem Schritt S128 fortschreitet. In diesem Schritt S128 inkrementiert
die Datenverarbeitungsvorrichtung 1 den Wert der Variablen
I um 1 und kehrt dann zu dem Schritt S104 von 21 zurück, um die
Verarbeitung zu wiederholen.
-
Falls
der Block der physikalischen Adresse 'I' in
dem Schritt S105 von 21 nicht verwendbar ist, oder
falls der Block der physikalischen Adresse 'I' in den
Schritt S106 nicht in Verwendung ist, schreitet die Datenverarbeitungsvorrichtung 1 zu
dem Schritt S129 fort, wie vorstehend beschrieben wurde.
-
In
dem Schritt S129 fügt
die Datenverarbeitungsvorrichtung 1 die zu dem Block der
physikalischen Adresse 'I' gehörenden Informationen
zu der Bitmap-Tabelle hinzu. Die Datenverarbeitungsvorrichtung schreitet
dann zu dem Schritt S120 von 22 fort,
um die vorstehende Verarbeitung auszuführen.
-
Falls
in dem Schritt S111 von 21 der Wert
der logischen Adresse 'A' der Fehlererfassungstabelle
nicht '1' war, schreitet die
Datenverarbeitungsvorrichtung zu dem Schritt S130 fort, wie vorstehend
beschrieben wurde. In diesem Schritt S130 prüft die Datenverarbeitungsvorrichtung 1 auf
den Wert der logischen Adresse 'A' der Umwandlungstabelle,
bevor sie zu einem Schritt S131 fortschreitet.
-
In
diesem Schritt S131 prüft
die Datenverarbeitungsvorrichtung 1, um zu erkennen, ob
der Wert der logischen Adresse 'A' der Umwandlungstabelle '0xffff' ist. Falls er '0xffff' ist, schreitet die
Datenverarbeitungsvorrichtung 1 zu einem Schritt S113 fort,
um die vorstehende Verarbeitung auszuführen, und andernfalls schreitet
die Datenverarbeitungsvorrichtung 1 zu einem Schritt S132
von 23 fort.
-
Es
ist dann, wenn der logische Adressfehler erzeugt wird, derart, dass
es zwei Blöcke
mit der logischen Adresse 'A' gibt, dass die Datenverarbeitungsvorrichtung 1 zu
dem Schritt S132 von 23 fortschreitet. Folglich liest
in dem Schritt S132 die Datenverarbeitungsvorrichtung 1 die
Unterscheidungszahlen von zwei Blöcken mit der logischen Adresse 'A' aus. Falls die Datenverarbeitungsvorrichtung 1 die Unterscheidungszahl
eines der Blöcke
ausgelesen hat, wird der Wert in die Variable C ersetzt. Falls die Datenverarbeitungsvorrichtung 1 die
Unterscheidungszahl des anderen Blocks ausgelesen hat, wird der
Wert in die Variable B ersetzt. Die Datenverarbeitungsvorrichtung 1 schreitet
dann zu einem Schritt S133 fort.
-
In
dem Schritt S133 verifiziert die Datenverarbeitungsvorrichtung 1,
ob die Unterscheidungszahl in dem Schritt S132 wie regelmäßig ausgelesen
wurde oder nicht. Falls nur die in die Variable C ersetzte Unterscheidungszahl
ausgelesen wurde, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S134 fort, und andernfalls schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S137 fort.
-
In
dem Schritt S134 setzt die Datenverarbeitungsvorrichtung 1 das
Blockkennzeichen des Blocks entsprechend zu der Variablen D auf 'noch nicht gelöscht', bevor sie zu einem
Schritt S135 fortschreitet.
-
In
dem Schritt S135 prüft
die Datenverarbeitungsvorrichtung 1, um zu erkennen, ob
die Verarbeitung des Schritts S134, das heißt, die Verarbeitung des Setzens
des Blockkennzeichens des Blocks entsprechend zu der Variablen D
auf 'noch nicht
gelöscht', erfolgreich war.
Falls die Verarbeitung erfolgreich war, kehrt die Datenverarbeitungsvorrichtung 1 zu
dem Schritt S113 von 21 zurück, um die vorstehende Verarbeitung
auszuführen.
Falls die Verarbeitung nicht erfolgreich war, schreitet die Datenverarbeitungsvorrichtung
zu einem Schritt S136 fort.
-
In
dem Schritt S136 setzt die Datenverarbeitungsvorrichtung 1 das 'Möglich/Nicht-Möglich-Kennzeichen' des Blocks entsprechend
zu der Variablen D auf 'nicht
verwendbar'. Die
Datenverarbeitungsvorrichtung 1 kehrt dann zu dem Schritt
S113 von 21 zurück, um die vorstehende Verarbeitung auszuführen.
-
In
dem Schritt S137 verifiziert die Datenverarbeitungsvorrichtung 1,
ob das Auslesen der Unterscheidungszahl in dem Schritt S132 wie
regelmäßig ausgeführt wurde.
Falls nur die Unterscheidungszahl, die in die Variable D ersetzt
wurde, ausgelesen wurde, geht die Verarbeitung zu einem Schritt
S138 über,
und geht andernfalls die Verarbeitung zu einem Schritt S141 über.
-
In
dem Schritt S138 setzt die Datenverarbeitungsvorrichtung 1 das
Blockkennzeichen des Blocks entsprechend zu der Variablen C auf 'noch nicht gelöscht', bevor sie zu einem
Schritt S139 fortschreitet.
-
In
dem Schritt S139 prüft
die Datenverarbeitungsvorrichtung 1, um zu erkennen, ob
die Verarbeitung des Schritts S138, das heißt, die Verarbeitung des Setzens
des Block-Kennzeichens des Blocks entsprechend zu der Variablen
C auf 'noch nicht
gelöscht', erfolgreich war.
Falls die Verarbeitung erfolgreich war, kehrt die Datenverarbeitungsvorrichtung 1 zu
dem Schritt S113 von 21 zurück, um die vorstehende Verarbeitung
auszuführen.
Falls die Verarbeitung nicht erfolgreich war, schreitet die Datenverarbeitungsvorrichtung 1 zu
einem Schritt S140 fort.
-
In
dem Schritt S140 setzt die Datenverarbeitungsvorrichtung 1 das 'Möglich/Nicht-Möglich-Kennzeichen' des Blocks entsprechend
zu der Variablen C auf 'nicht
ver wendbar. Die Datenverarbeitungsvorrichtung 1 kehrt dann
zu dem Schritt S113 von 21 zurück, um die
vorstehende Verarbeitung auszuführen.
-
In
dem Schritt S141 verifiziert die Datenverarbeitungsvorrichtung 1,
ob das Auslesen der Unterscheidungszahl in dem Schritt S132 wie
regelmäßig ausgeführt wurde.
Falls sowohl die in die Variable C ersetzte Unterscheidungszahl
als auch die in die Variable D ersetzte Unterscheidungszahl wie
regelmäßig ausgelesen
wurden, schreitet die Verarbeitung zu einem Schritt S142 fort. Falls
beide nicht lesbar waren, geht die Verarbeitung auf eine manuelle
Wiederherstellungsbetriebsart zum Durchführen einer geeigneten manuellen
Verarbeitung, die zur Fehlerkorrektur notwendig ist, über.
-
In
dem Schritt S142 vergleicht die Datenverarbeitungsvorrichtung 1 den
Wert der Variablen C mit einem Wert entsprechend zu dem Wert der
Variablen D plus 1. Falls diese Werte gleich sind, schreitet die Datenverarbeitungsvorrichtung 1 zu
dem Schritt S134 fort, um die vorstehende Verarbeitung auszuführen, und
geht andernfalls die Verarbeitung zu einer manuellen Wiederherstellungsbetriebsart
zum Ausführen
einer geeigneten manuellen Verarbeitung, die zur Fehlerkorrektur
notwendig ist, über.
-
Mit
der vorstehenden Verarbeitung wird die Fehlererfassungs- und Korrektur-Verarbeitung gleichzeitig
mit dem Wiederaufbau der gesamten Verwaltungsinformationen ausgeführt, so
dass es nicht notwendig ist, verschwenderisch auf die Speicherkarte 2 zuzugreifen,
um die Fehlererfassungs- und Korrektur-Verarbeitung auszuführen. Das
heißt, dass
mit dem System der vorliegenden Erfindung keine Fehlererfassungs-
Korrektur-Verarbeitung ausgeführt
wird, falls der Datenschreibvorgang zu einem Ende wie regelmäßig gekommen
ist und die wirksamen gesamten Verwaltungsinformationen auf die Speicherkarte 2 zurückgeschrieben
worden sind.
-
Somit
wird mit dem System der vorliegenden Erfindung keine unnötige Erfassung/Korrektur
ausgeführt,
so dass die Zugriffseffizienz auf die Speicherkarte 2 erhöht wird.
Insbesondere kann, da die Fehlererfassungs- und Korrektur-Verarbeitung gleichzeitig
mit dem Vorgang des Aufbauens der gesamten Verwaltungsinformationen
aus den verteilten Verwaltungsinformationen ausgeführt wird,
das Zugreifen auf die Speicherkarte 2 minimiert werden.
-
Darüber hinaus
wird bei dem System der vorliegenden Erfindung die Unterscheidungszahl
jedem Block der Speicherkarte 2 zugewiesen und dazu verwendet,
mit dem logischen Adressfehler umzugehen, so dass die Datenaktualisierungsverarbeitung
sicher ausgeführt
werden kann. Das heißt,
dass auch unter der Annahme, dass ir gendwelche Fehler während einer
Dateiaktualisierungsverarbeitung erzeugt werden, so dass es mehrere
Blöcke
mit derselben logischen Adresse gibt, können Daten vor der Aktualisierungsverarbeitung
durch Verwenden der Unterscheidungszahl wiederhergestellt werden.
Ferner kann bei dem System der vorliegenden Erfindung der Verknüpfungsadressfehler
durch Verwenden der Fehlererfassungstabelle erfasst werden, während der
Block ohne Verknüpfungsbestimmung
ebenfalls erfasst werden kann.