PatentDe  


Dokumentenidentifikation DE602004005939T2 17.01.2008
EP-Veröffentlichungsnummer 0001524603
Titel Vorrichtung und Verfahren zur Datenverwaltung nichtflüchtiger Speicher
Anmelder Sony Corp., Tokio/Tokyo, JP
Erfinder Fuse, Hiroaki, Shinagawa-ku, Tokyo, JP;
Sassa, Akira, Shinagawa-ku, Tokyo, JP;
Onoe, Atsushi, Shinagawa-ku, Tokyo, JP
Vertreter Müller - Hoffmann & Partner Patentanwälte, 81667 München
DE-Aktenzeichen 602004005939
Vertragsstaaten DE, FR
Sprache des Dokument EN
EP-Anmeldetag 13.10.2004
EP-Aktenzeichen 040244212
EP-Offenlegungsdatum 20.04.2005
EP date of grant 18.04.2007
Veröffentlichungstag im Patentblatt 17.01.2008
IPC-Hauptklasse G06F 12/02(2006.01)A, F, I, 20051017, B, H, EP
IPC-Nebenklasse G06F 11/14(2006.01)A, L, I, 20051017, B, H, EP   

Beschreibung[de]
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 Speicherkarte 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 Befehlsgenerator 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 Speicherkarte 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. Andererseits 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 Ablaufdiagramm 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 verwendbar. 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 irgendwelche 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.


Anspruch[de]
Datenverwaltungsvorrichtung zum Überwachen eines nichtflüchtigen Speichers mit einer Vielzahl von in einem Stück löschbaren Blöcken, wobei jeder der Blöcke durch eine Vielzahl von Seiten gebildet wird und jede der Seiten einen redundanten Bereich beinhaltet, umfassend:

eine Verwaltungseinrichtung (3) zum Speichern verteilter Verwaltungsinformationen, als die Verwaltungsinformationen für die jeweiligen Blöcke, in dem redundanten Bereich jeder Seite, und zum Speichern von Anhäufungsverwaltungsinformationen, die durch Sammeln der in redundanten Seitenbereichen der Vielzahl von Blöcken des nichtflüchtigen Speichers (12) gespeicherten verteilten Verwaltungsinformationen gebildet wurden, in dem nichtflüchtigen Speicher (12), in Verbindung mit den verteilten Verwaltungsinformationen, wobei die Anhäufungsverwaltungsinformationen Daten überwachen, die in dem nichtflüchtigen Speicher (12) gespeichert sind, in einem Stück, wobei

die Verwaltungseinrichtung (3) zur Zeit des Startens auf der Grundlage eines Blockkennzeichens eines Blocks mit einer darin gespeicherten Datei der Anhäufungsverwaltungsinformationen überprüft, ob die Anhäufungsverwaltungsinformationen gültig sind, wobei das Blockkennzeichen in Abhängigkeit davon gesetzt wird, ob die Anhäufungsverwaltungsinformationen aktualisiert wurden, um allen Modifikationen der Dateninhalte des nichtflüchtigen Speichers (12) zu entsprechen,

die Verwaltungseinrichtung (3) die Daten auf der Grundlage der Anhäufungsverwaltungsinformationen überwacht, wenn die Anhäufungsverwaltungsinformationen gültig sind, und

die Verwaltungseinrichtung (3) die Daten auf der Grundlage der verteilten Verwaltungsinformationen überwacht, wenn die Anhäufungsverwaltungsinformationen nicht gültig sind,

gekennzeichnet durch

eine Fehlerkorrektureinrichtung (3, 16), die dazu angeordnet ist, eine Fehlerkorrektur für die Seitendaten unter Verwendung eines innerhalb der Seiten gespeicherten Fehlerkorrekturcodes durchzuführen, wenn die Verwaltungseinrichtung (3) zur Zeit des Startens ermittelt, dass die Anhäufungsverwaltungsinformationen nicht gültig sind, bei gleichzeitigem Aufbau der Anhäufungsverwaltungsinformationen aus den verteilten Verwaltungsinformationen durch die Verwaltungseinrichtung (3), und die Fehlerkorrektur nicht durchzuführen, wenn die Verwaltungseinrichtung zur Zeit des Startens ermittelt, dass die Anhäufungsverwaltungsinformationen gültig sind.
Datenverwaltungsvorrichtung nach Anspruch 1, bei der, wenn die Anhäufungsverwaltungsinformationen nicht gültig sind, die Verwaltungseinrichtung (3) die Anhäufungsverwaltungsinformationen aus den verteilten Verwaltungsinformationen aufbaut, die in einem Speicherbereich für verteilte Verwaltungsinformationen gespeichert sind, um die aufgebauten Anhäufungsverwaltungsinformationen in den nichtflüchtigen Speicher (12) zu schreiben. Datenverwaltungsvorrichtung nach Anspruch 1, bei der, wenn ein Teil der Anhäufungsverwaltungsinformationen durch Schreiben von neuen Daten in einen Datenspeicherbereich des nichtflüchtigen Speichers (12) geändert wird, die Verwaltungseinrichtung (3) die Anhäufungsverwaltungsinformationen auf der Grundlage der verteilten Verwaltungsinformationen der neu geschriebenen Daten aktualisiert und die aktualisierten Anhäufungsverwaltungsinformationen in den nichtflüchtigen Speicher (12) schreibt. Datenverwaltungsvorrichtung nach Anspruch 3, bei der, wenn eine voreingestellte Datenverarbeitung durchgeführt wird, die Verwaltungseinrichtung (3) die aktualisierten Anhäufungsverwaltungsinformationen in den nichtflüchtigen Speicher (12) schreibt, nachdem die voreingestellte Datenverarbeitung zu einem Abschluss gekommen ist. Datenverwaltungsvorrichtung nach Anspruch 1, bei der Verwaltungskennzeichen zum Überwachen des Speicherzustands der Daten der Blöcke als die verteilten Verwaltungsinformationen gespeichert werden, und bei der die Verwaltungskennzeichen der jeweiligen Blöcke gesammelt und als die Anhäufungsverwaltungsinformationen gespeichert werden; wobei die Verwaltungseinrichtung den Datenspeicherzustand des nichtflüchtigen Speichers (12) auf der Grundlage der Anhäufungsverwaltungsinformationen überwacht. Datenverwaltungsvorrichtung nach Anspruch 1, bei der logische Adressen der Blöcke als die verteilten Verwaltungsinformationen gespeichert werden, und bei der Verwaltungskennzeichen der jeweiligen Blöcke gesammelt und als die Anhäufungsverwaltungsinformationen gespeichert werden; wobei die Verwaltungseinrichtung (3) die physikalischen Adressen und die logischen Adressen der Blöcke auf der Grundlage der Anhäufungsverwaltungsinformationen umwandelt, um in dem nichtflüchtigen Speicher (12) gespeicherte Daten zu überwachen. Datenverwaltungsvorrichtung nach Anspruch 1, bei der die Verknüpfungsinformationen als eine logische Adresse eines mit einem gegebenen Block verknüpften Blocks als die verteilten Verwaltungsinformationen gespeichert werden, und bei der Verknüpfungsadressen der jeweiligen Blöcke gesammelt und als die Anhäufungsverwaltungsinformationen gespeichert werden; wobei die Verwaltungseinrichtung in dem nichtflüchtigen Speicher (12) gespeicherte Daten auf der Grundlage der Anhäufungsverwaltungsinformationen überwacht. Datenverwaltungsverfahren zum Überwachen eines nichtflüchtigen Speichers mit einer Vielzahl von in einem Stück löschbaren Blöcken, wobei jeder der Blöcke durch eine Vielzahl von Seiten gebildet wird und jede der Seiten einen redundanten Bereich beinhaltet, umfassend:

ein Speichern verteilter Verwaltungsinformationen, als die Verwaltungsinformationen für die jeweiligen Blöcke, in dem redundanten Bereich jeder Seite;

ein Speichern von Anhäufungsverwaltungsinformationen, die durch Sammeln der in redundanten Seitenbereichen der Vielzahl von Blöcken des nichtflüchtigen Speichers (12) gespeicherten verteilten Verwaltungsinformationen gebildet wurden, in dem nichtflüchtigen Speicher (12), in Verbindung mit den verteilten Verwaltungsinformationen, wobei die Anhäufungsverwaltungsinformationen Daten überwachen, die in dem nichtflüchtigen Speicher (12) gespeichert sind, in einem Stück;

ein Überprüfen, zur Zeit des Startens, auf der Grundlage eines Blockkennzeichens eines Blocks mit einer darin gespeicherten Datei der Anhäufungsverwaltungsinformationen, ob die Anhäufungsverwaltungsinformationen gültig sind, wobei das Blockkennzeichen in Abhängigkeit davon gesetzt wird, ob die Anhäufungsverwaltungsinformationen aktualisiert wurden, um allen Modifikationen der Dateninhalte des nichtflüchtigen Speichers (12) zu entsprechen;

ein Überwachen der Daten auf der Grundlage der Anhäufungsverwaltungsinformationen, wenn die Anhäufungsverwaltungsinformationen gültig sind; und

ein Überwachen der Daten auf der Grundlage der verteilten Verwaltungsinformationen, wenn die Anhäufungsverwaltungsinformationen nicht gültig sind,

gekennzeichnet durch

ein Durchführen einer Fehlerkorrektur für die Seitendaten unter Verwendung eines mit den Seiten gespeicherten Fehlerkorrekturcodes, wenn zur Zeit des Startens ermittelt wird, dass die Anhäufungsverwaltungsinformationen nicht gültig sind, bei gleichzeitigem Aufbauen der Anhäufungsverwaltungsinformationen aus den verteilten Verwaltungsinformationen, und ein Nichtdurchführen der Fehlerkorrektur, wenn zur Zeit des Startens ermittelt wird, dass die Anhäufungsverwaltungsinformationen gültig sind.
Datenverwaltungsverfahren nach Anspruch 8, bei dem, wenn die Anhäufungsverwaltungsinformationen nicht gültig sind, die Anhäufungsverwaltungsinformationen aus den verteilten Verwaltungsinformationen aufgebaut werden, die in einem Speicherbereich für verteilte Verwaltungsinformationen gespeichert sind, um die aufgebauten Anhäufungsverwaltungsinformationen zu speichern. Datenverwaltungsverfahren nach Anspruch 8, bei dem, wenn ein Teil der Anhäufungsverwaltungsinformationen durch Schreiben von neuen Daten in den Datenspeicherbereich geändert wird, die Anhäufungsverwaltungsinformationen auf der Grundlage der verteilten Verwaltungsinformationen der neu geschriebenen Daten aktualisiert und die aktualisierten Anhäufungsverwaltungsinformationen gespeichert werden. Datenverwaltungsverfahren nach Anspruch 9, bei dem, wenn eine voreingestellte Datenverarbeitung durchgeführt wird, die aktualisierten Anhäufungsverwaltungsinformationen gespeichert werden, nachdem die voreingestellte Datenverarbeitung zu einem Abschluss gekommen ist. Datenverwaltungsverfahren nach Anspruch 8, bei dem Verwaltungskennzeichen zum Überwachen des Speicherzustands der Daten der Blöcke als die verteilten Verwaltungsinformationen gespeichert werden, und bei dem die Verwaltungskennzeichen der jeweiligen Blöcke gesammelt und als die Anhäufungsverwaltungsinformationen gespeichert werden; und wobei der Datenspeicherzustand des Datenspeicherbereichs auf der Grundlage der Anhäufungsverwaltungsinformationen überwacht wird. Datenverwaltungsverfahren nach Anspruch 8, bei dem logische Adressen der Blöcke als die verteilten Verwaltungsinformationen gespeichert werden, und bei dem physikalische Adressen der jeweiligen Blöcke gesammelt und als die Anhäufungsverwaltungsinformationen gespeichert werden; wobei die physikalischen Adressen und die logischen Adressen der Blöcke auf der Grundlage der Anhäufungsverwaltungsinformationen umgewandelt werden, um gespeicherte Daten zu überwachen. Datenverwaltungsverfahren nach Anspruch 8, bei dem die Verknüpfungsinformationen als eine logische Adresse eines mit einem gegebenen Block verknüpften Blocks als die verteilten Verwaltungsinformationen gespeichert werden, und bei dem Verknüpfungsadressen der jeweiligen Blöcke gesammelt und als die Anhäufungsverwaltungsinformationen gespeichert werden; und wobei gespeicherte Daten auf der Grundlage der Anhäufungsverwaltungsinformationen überwacht werden.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com