DE102016202684B4 - Datenmanagementvorrichtung und datenmanagementprogramm - Google Patents

Datenmanagementvorrichtung und datenmanagementprogramm Download PDF

Info

Publication number
DE102016202684B4
DE102016202684B4 DE102016202684.4A DE102016202684A DE102016202684B4 DE 102016202684 B4 DE102016202684 B4 DE 102016202684B4 DE 102016202684 A DE102016202684 A DE 102016202684A DE 102016202684 B4 DE102016202684 B4 DE 102016202684B4
Authority
DE
Germany
Prior art keywords
data
block
write request
blocks
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102016202684.4A
Other languages
English (en)
Other versions
DE102016202684A1 (de
Inventor
Yohei Fujita
Yasushi Kanda
Tsuneo Yamamoto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Publication of DE102016202684A1 publication Critical patent/DE102016202684A1/de
Application granted granted Critical
Publication of DE102016202684B4 publication Critical patent/DE102016202684B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Abstract

Datenmanagementvorrichtung umfassend:eine Speichervorrichtung (30), welche drei oder mehr Blöcke (40) hat, wobei die Speichervorrichtung von einer wiederbeschreibbaren nicht-flüchtigen Speichervorrichtung bereitgestellt wird und eine Löschoperation von Daten von den drei oder mehr Blöcken auf einer blockweisen Basis durchgeführt wird, wobei die drei oder mehr Blöcke der Speichervorrichtung (30) in einer Schleife in einer vorbestimmten Logik entlang einer Kombinationsrichtung kombiniert sind; undeine Steuerung (10, 16, S400, S402, S404, S406, S408, S420) zum Steuern einer Ausleseoperation zum Auslesen von Daten aus der Speichervorrichtung (30) und zum Steuern einer Schreiboperation zum Schreiben von Daten in die Speichervorrichtung (30), wobei die Steuerung (10, 16) eine oder mehrere Schreibanforderungsdaten über eine Schreibanforderung empfängt, wobeijeder der drei oder mehr Blöcke ein Managementsegment (46) und ein Datensegment (44) beinhaltet, wobei das Managementsegment (46) Managementinformation speichert, welche einen Schreibzustand des nächsten Blocks, welcher in der Kombinationsrichtung hinter dem die Managementinformation speichernden Block verbunden ist, angibt, und das Datensegment (44) die entsprechenden von der Steuerung (10, 16) empfangenen Schreibanforderungsdaten speichert, unddie Steuerung (10, 16) die einen oder mehreren Schreibanforderungsdaten in entsprechende Zielblöcke, welche unter den drei oder mehr Blöcken definiert sind, basierend auf einer spezifischen Schreibreihenfolge und der Kombinationsrichtung schreibt, und die Steuerung (10, 16) die spezifische Schreibreihenfolge vorab definiert, um eine Reihenfolge zum Schreiben der einen oder mehreren Schreibanforderungsdaten in die entsprechenden Zielblöcke zu definieren.

Description

  • Die vorliegende Erfindung betrifft eine Datenmanagementvorrichtung und ein Datenmanagementprogramm, die jeweils eine Datenschreiboperation auf eine wiederbeschreibbare nicht-flüchtige Speichervorrichtung, welche drei oder mehr Blöcke hat, managen bzw. verwalten und Daten in Einheiten von Blöcken löschen.
  • Wiederbeschreibbare nicht-flüchtige Speichervorrichtungen werden umfangreich in verschiedenen Arten von elektronischen Vorrichtungen, welche Kommunikationsvorrichtungen und Informationsverarbeitungsvorrichtungen umfassen, verwendet. Während einer Datenschreiboperation auf die wiederbeschreibbare nicht-flüchtige Speichervorrichtung wird, wenn die Energieversorgung ausgeschaltet wird, die Datenschreiboperation unterbrochen werden und ein Datenverlust kann bei den Daten während der Schreiboperation auftreten.
  • JP 2007 - 328 438 A offenbart eine Datenschreibtechnologie. Bei dieser Technologie werden, bevor angeforderte Daten in einen Zielbereich geschrieben werden, die Daten, welche momentan in dem Zielbereich gespeichert sind, in einem vorbestimmten Bereich gesichert, und die angeforderten Daten werden in den Zielbereich geschrieben, nachdem einem Flag, welches einen Schreibzustand des Zielbereichs angibt, auf „Schreiben im Gang“ gesetzt ist. Nachdem ein Schreiben der angeforderten Daten in den Zielbereich erfolgreich abgeschlossen ist, wird das Flag gelöscht, um anzuzeigen, dass sich der Schreibzustand des Zielbereichs zu „Schreiben abgeschlossen“ ändert.
  • Wenn eine Energieversorgung während eines Schreibens der angeforderten Daten in den Zielbereich ausgeschaltet wird, behält das Flag, welches den Schreibzustand des Zielbereichs angibt, „Schreiben im Gang“ bei. Daher können die Daten, welche in dem vorbestimmten Bereich gesichert sind, für eine Wiederherstellung der Daten des Zielbereichs in dem Datenwiederherstellungsprozess verwendet werden.
  • Die in JP 2007 - 328 438 A offenbarte Technologie kann auf eine wiederbeschreibbare nicht-flüchtige Speichervorrichtung, welche Daten in Einheiten von Blöcken löscht und Daten schreibt, welche angefordert werden, geschrieben zu werden, angewendet werden. Nachstehend werden die Daten, welche angefordert werden, geschrieben zu werden, als Schreibanforderungsdaten bezeichnet, und das Löschen von Daten in Einheiten von Blöcken wird auch als ein Löschen von Daten auf einer blockweisen Basis bezeichnet. Diese Art einer wiederbeschreibbaren nicht-flüchtigen Speichervorrichtung kann einen Flash-Speicher beinhalten. In diesem Fall kann das Flag, welches den Schreibzustand von Daten angibt, in demselben Block wie die Daten beinhaltet sein. D.h. das Flag kann in demselben Block mit den Daten gesetzt sein, ohne einen individuellen Block zum Setzen des Flags unabhängig von den Daten vorzusehen.
  • In einem Datenschreibprozess wird ein Wert des Flags unbestimmt, wenn die Energieversorgung während der Datenlöschoperation ausgeschaltet wird. Wenn der Wert des Flags unbestimmt wird, kann der Schreibzustand des Zielblocks, in welchen die Daten geschrieben werden sollen, nicht korrekt ermittelt werden.
  • In dem obigen Fall kann, wenn die Schreiboperation der angeforderten Daten nicht erfolgreich abgeschlossen wird, aber der Schreibzustand des Zielblocks, in welchen die Daten geschrieben werden sollen, inkorrekt Schreiben abgeschlossen angibt, die Datenwiederherstellungsoperation nicht mittels der in dem vorbestimmten Bereich gespeicherten gesicherten Daten ausgeführt werden.
  • Aus der US 2013 / 0 332 660 A1 sind ferner Vorrichtungen, Systeme, Verfahren und Computerprogrammprodukte für hybride Checkpoint-Speicher bekannt. Ein Verfahren umfasst die Referenzierung von Daten eines Bereichs des virtuellen Speichers eines Host. Die referenzierten Daten sind bereits auf einem nichtflüchtigen Medium gespeichert. Ein Verfahren umfasst das Schreiben von Daten eines Bereichs des virtuellen Speichers, die nicht auf dem nichtflüchtigen Medium gespeichert sind, auf ein nichtflüchtiges Medium. Ein Verfahren umfasst die Bereitstellung des Zugriffs auf Daten eines Bereichs des virtuellen Speichers von einem nichtflüchtigen Medium aus unter Verwendung eines dauerhaften Identifikators, der mit referenzierten Daten und geschriebenen Daten verknüpft ist.
  • Die US 2013 / 0 198 453 A1 lehrt eine Speichervorrichtung, die einen Speicherbereich aufweist, der in einer Ringstruktur konfiguriert ist, und ist in einen Lese-Cache-Bereich und einen Schreib-Cache-Bereich unterteilt, um so einen Energieverbrauch zu senken und eine Geschwindigkeit der Speichervorrichtung zu erhöhen.
  • Es ist Aufgabe der vorliegenden Erfindung, eine Datenmanagementvorrichtung und ein Datenmanagementprogramm bereitzustellen, die jeweils für eine wiederbeschreibbare nicht-flüchtige Speichervorrichtung, welche Daten auf einer blockweisen Basis löscht, eine verbesserte Datenwiederherstellung ermöglichen, wenn eine Energieversorgung während einer Löschoperation eines Blocks ausgeschaltet wird.
  • Die Aufgabe wird durch eine Datenmanagementvorrichtung nach dem Anspruch 1 und ein Datenmanagementprogramm nach dem Anspruch 7 gelöst. Vorteilhafte Weiterbildungen sind Gegenstand der Unteransprüche.
  • Gemäß einem Aspekt der vorliegenden Erfindung beinhaltet eine Datenmanagementvorrichtung eine Speichervorrichtung und eine Steuerung. Die Speichervorrichtung hat drei oder mehr Blöcke, und die Speichervorrichtung ist durch eine wiederbeschreibe nicht-flüchtige Speichervorrichtung bereitgestellt. Eine Löschoperation von Daten von den drei oder mehr Blöcken wird auf einer blockweisen Basis durchgeführt, und die drei oder mehr Blöcke der Speichervorrichtung sind in einer Schleife in einer vorbestimmten Logik entlang einer Kombinationsrichtung kombiniert. Die Steuerung steuert eine Ausleseoperation zum Auslesen von Daten aus der Speichervorrichtung und steuert eine Schreiboperation zum Schreiben von Daten in die Speichervorrichtung. Die Steuerung empfängt eine oder mehrere Schreibanforderungsdaten bzw. - datensätze via eine Schreibanforderung. Jeder der drei oder mehr Blöcke beinhaltet ein Managementsegment und ein Datensegment. Das Managementsegment speichert Managementinformation, welche einen Schreibzustand des nächsten Blocks, welcher in der Kombinationsrichtung hinter dem Block, welcher die Managementinformation speichert, kombiniert ist, und das Datensegment speichert die entsprechenden von der Steuerung empfangenen Schreibanforderungsdaten. Die Steuerung schreibt die einen oder mehr Schreibanforderungsdaten basierend auf einer spezifischen Schreibreihenfolge und der Kombinationsrichtung in entsprechende Zielblöcke, welche unter den drei oder mehr Blöcken definiert sind. Die Steuerung definiert ferner vorab die spezifische Schreibreihenfolge, um eine Reihenfolge zum Schreiben der einen oder mehreren Schreibanforderungsdaten in die entsprechenden Zielblöcke zu definieren.
  • Mit der obigen Vorrichtung kann für eine Speichervorrichtung, welche jeweils einen ganzen Datenblock schreibt oder löscht, eine Datenwiederherstellung, wenn eine Energieversorgung während eines Löschens eines Datenblocks ausgeschaltet wird, in einer effektiven und verbesserten Weise ausgeführt werden.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung beinhaltet ein Datenmanagementprogramm von einem Computer auszuführende Instruktionen, wobei der Computer eine Steuerung verwendet. Die Instruktionen sind zum Verwirklichen eines Steuerns einer Ausleseoperation zum Auslesen von Daten aus einer Speichervorrichtung und eines Steuerns einer Schreiboperation zum Schreiben von Daten in die Speichervorrichtung. Die Speichervorrichtung hat drei oder mehr Blöcke und wird durch eine wiederbeschreibbare nicht-flüchtige Speichervorrichtung bereitgestellt. Eine Löschoperation von Daten von den drei oder mehr Blöcken wird auf einer blockweisen Basis durchgeführt, und die drei oder mehr Blöcke der Speichervorrichtung sind in einer Schleife in einer vorbestimmten Logik entlang einer Kombinationsrichtung verbunden. Die Steuerung empfängt eine oder mehrere Schreibanforderungsdaten bzw. - datensätze über eine Schreibanforderung. Jeder der drei oder mehr Blöcke der Speichervorrichtung beinhaltet ein Managementsegment und ein Datensegment, das Managementsegment speichert Managementinformation, welche einen Schreibzustand des nächsten Blocks angibt, welcher in der Kombinationsrichtung hinter dem Block, welcher die Managementinformation speichert, verbunden ist, und das Datensegment speichert die von der Steuerung empfangenen entsprechenden Schreibanforderungsdaten. Die Steuerung schreibt die einen oder mehreren Schreibanforderungsdaten in entsprechende Zielblöcke, welche unter den drei oder mehr Blöcken definiert sind, basierend auf einer spezifischen Schreibreihenfolge und der Kombinationsrichtung, und die Steuerung definiert vorher die spezifische Schreibreihenfolge, um eine Reihenfolge zum Schreiben der einen oder mehreren Schreibanforderungsdaten in die entsprechenden Zielblöcke zu definieren.
  • Mit dem obigen Programm kann für eine Speichervorrichtung, welche jeweils einen ganzen Datenblock schreibt oder löscht, eine Datenwiederherstellung, wenn eine Energieversorgung während eines Löschens eines Datenblocks ausgeschaltet wird, in einer effektiven, verbesserten Weise ausgeführt werden.
  • Die Aufgabe, Merkmale und Vorteile der vorliegenden Erfindung sind aus der folgenden detaillierten Beschreibung unter Bezugnahme auf die begleitenden Zeichnungen näher ersichtlich. In den Zeichnungen zeigt:
    • 1 ein Blockdiagramm, welches eine Konfiguration einer Datenmanagementvorrichtung gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung zeigt;
    • 2 ein Diagramm, welches eine Kombination von Blöcken gemäß einer Managementinformation zeigt;
    • 3 ein Diagramm, welches eine Konfiguration eines Managementsegments, welches in einem Block beinhaltet ist, zeigt;
    • 4 ein Flussdiagramm, welches einen Datenschreibprozess zeigt;
    • 5 ein Diagramm, welches Daten und Managementinformation, welche in Blöcken gespeichert sind, während eines Datenschreibprozesses zeigt;
    • 6 ein Diagramm, welches Daten und Managementinformation, welche in Blöcken gespeichert sind, während eines Datenschreibprozesses zeigt;
    • 7 ein Flussdiagramm, welches einen Datenwiederherstellungsprozess zeigt;
    • 8 ein Flussdiagramm, welches einen Datenausleseprozess zeigt;
    • 9 ein Diagramm, welches Daten und Managementinformation, welche in Blöcken gespeichert sind, während eines Datenschreibprozesses gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung zeigt;
    • 10 ein Diagramm, welches einen Datenschreibprozess gemäß einem dritten Ausführungsbeispiel der vorliegenden Erfindung zeigt; und
    • 11 ein Diagramm, welches Daten und Managementinformation, welche in Blöcken gespeichert sind, während eines Datenschreibprozesses gemäß einem vierten Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • Nachstehend sind Ausführungsbeispiele der vorliegenden Erfindung mit Bezug auf die begleitenden Zeichnungen beschrieben.
  • (Erstes Ausführungsbeispiel)
  • 1 ist ein Blockdiagramm, welches eine Konfiguration einer Datenmanagementvorrichtung 2 zeigt. Die Datenmanagementvorrichtung 2 beinhaltet einen Flash-Speicher 30 als eine wiederbeschreibbare nicht-flüchtige Speichervorrichtung. Der Flash-Speicher 30 beinhaltet drei oder mehr Datenblöcke, von welchen jeder jeweils als Ganzes auf einer blockweisen Basis gelöscht wird. Die Datenmanagementvorrichtung 2 beinhaltet eine zentrale Prozessoreinheit (CPU) 10, einen Schreib-Lese-Speicher (RAM) 12, einen Festwertspeicher (ROM) 14, eine Flash-Steuerung 20, den Flash-Speicher 30 und eine Eingabe-Ausgabe-Schnittstelle (I/O) 50. Eine Energiequelle (PW) 60 stellt jeder in der Datenmanagementvorrichtung 2 beinhalteten Schaltungskomponente elektrische Energie zur Verfügung.
  • Zum Beispiel bildet die Datenmanagementvorrichtung 2 einen Teil eines Informationsverarbeitungssystems, mit welchem ein Fahrzeug ausgestattet ist. Das Datenmanagementsystem 2 kann auch einen Teil eines Informationsverarbeitungssystems von einem anderen als einem Fahrzeugverwendungszweck bilden.
  • Die CPU 10 steuert die Datenmanagementvorrichtung 2 durch Ausführen einer Flash-Treibersoftware (Flash-Treiber) 16 und einer Anwendungssoftware (APP) 18, welche in dem ROM 14 gespeichert sind. Die CPU 10 steuert durch Ausführen der Flash-Treibersoftware 16 ein Schreiben von Daten in den Flash-Speicher 30 oder ein Löschen von Daten aus dem Flash-Speicher 30 als Antwort auf eine von einer anderen Vorrichtung an den Flash-Speicher übertragenen Zugriffsanforderung. Dabei ist eine andere Vorrichtung, welche nicht gezeigt ist, eine andere Vorrichtung als die Anwendungssoftware 18 oder die Datenmanagementvorrichtung 2. Bei der vorliegenden Erfindung fungiert die CPU 10 zusammen mit der Flash-Treibersoftware 16 als eine Steuerung.
  • Die CPU 10 verwendet das RAM 12 als einen Arbeitsbereich. Das RAM 12 fungiert auch als ein Sicherheitsspeicher, welcher temporär von dem Flash-Speicher 30 ausgelesene Daten und Daten, welche angefordert sind, in den Flash-Speicher 30 geschrieben zu werden, speichert.
  • Die Flash-Steuerung 20 führt basierend auf einem von der CPU 10 zugewiesenen Befehl einen Schreibprozess, einen Leseprozess und einen Löschprozess des Flash-Speichers 30 aus. Der Flash-Speicher 30 hat drei oder mehr Datenblöcke 40. Dabei ist ein Datenblock eine minimale Dateneinheit in einem Datenlöschprozess, und die Anzahl der Datenblöcke 40, welche in dem Flash-Speicher 30 beinhaltet sind, wird durch m repräsentiert. Nachstehend wird ein Datenblock auch der Einfachheit halber als ein Block bezeichnet. Eine Kapazität des Blocks und eine minimale Einheit von in den Block 40 geschriebenen Daten werden durch eine Spezifikation des Flash-Speichers 30 definiert. Daher können unterschiedliche Flash-Speicher unterschiedliche Blockkapazitäten und unterschiedliche minimale Einheiten eines Datenschreibens haben.
  • Wie in 2 gezeigt, sind die Blöcke 40 des Flash-Speichers 30 miteinander in einer Schleife entlang einer Richtung in einer vorbestimmten Logik kombiniert. In 2 sind drei Blöcke 40 als ein Beispiel für die einfache Beschreibung gezeigt.
  • Jeder Block 40 beinhaltet ein ID-Segment 42, ein Datensegment 44 und ein Managementsegment 46. Das ID-Segment 42 speichert Identifikationsinformation, welche einen Datentyp der in dem betreffenden Block 40 gespeicherten Daten angibt. Das Datensegment 44 speichert Daten, welche als Antwort auf eine Datenschreibanforderung in den betreffenden Block 40 geschrieben werden. Das Managementsegment 46 speichert Managementinformation. In 2 ist eine gleiche ID A, welche den gleichen Datentyp angibt, für die Daten A und die Daten A1 in den jeweiligen ID-Segmenten 42 eingestellt.
  • Die in dem Managementsegment 46 des betreffenden Blocks 40 gespeicherte Managementinformation gibt einen Schreibzustand des nächsten Blocks 40, welcher in einer Kombinationsrichtung der Blöcke 40 hinter dem betreffenden Block verbunden ist, an.
  • Wie in 2 gezeigt speichert der Block 40, welcher die Daten A speichert, als die Managementinformation den Schreibzustand des Blocks 40, welcher die Daten A1 speichert. Der Block 40, welcher die Daten A1 speichert, speichert als die Managementinformation den Schreibzustand des Blocks 40, welcher die Daten B speichert. Der Block 40, welcher die Daten B speichert, speichert als die Managementinformation den Schreibzustand des Blocks 40, welcher die Daten A speichert. Wie oben beschrieben sind die Blöcke 40 in einer Schleife entlang einer Richtung kombiniert.
  • Die Managementinformation beinhaltet drei Schreibzustände wie beispielsweise „Schreiben abgeschlossen“, „noch nicht geschrieben“ und „Schreiben im Gang“. Der Schreibzustand „Schreiben abgeschlossen“ gibt an, dass ein Schreiben von Daten in einen Zielblock 40 erfolgreich abgeschlossen worden ist. Wie in 2 gezeigt, sind die Blöcke 40, welche die Daten A1 und die Daten B speichern, die Blöcke, bei welchen die Schreiboperationen von Daten erfolgreich abgeschlossen worden sind.
  • Der Schreibzustand „noch nicht geschrieben“ gibt an, dass der entsprechende Block 40 ein Zielblock ist, in welchen die Daten in dem nächsten Schritt geschrieben werden sollen, aber die Daten momentan noch nicht geschrieben werden. Wie in 2 gezeigt ist der Block 40, welcher die Daten A speichert, der Zielblock, in welchen die Daten in dem nächsten Schritt geschrieben werden sollen.
  • Die mehreren Blöcke sind in einer Schleife entlang einer Richtung als eine Blockgruppe kombiniert. In dieser Blockgruppe ist der Block 40, welcher die Managementinformation „noch nicht geschrieben“ beinhaltet, der Block 40, in welchen die neuesten Daten geschrieben worden sind. Ferner ist in dieser Blockgruppe der Block 40, welcher der von der Managementinformation „noch nicht geschrieben“ spezifizierte Zielblock ist, der Block 40, in welchen die ältesten Daten geschrieben worden sind. Daher sind für den gleichen Datentyp von ID = A die Daten A1 neuer als die Daten A.
  • In dem vorliegenden Ausführungsbeispiel wird die Anzahl von Datentypen durch n repräsentiert und die Anzahl von Blocken wird durch m repräsentiert, und m und n erfüllen eine Beziehung m = n+1. D.h. die Anzahl der Blöcke ist um eins größer als die Anzahl von Datentypen. Zum Beispiel ist, wie in 2 gezeigt, wenn die Anzahl von Datentypen als ID = A und ID = B zwei ist, die Anzahl von Blöcken 40 als drei eingestellt.
  • Ungeachtet der von der Schreibanforderung definierten Schreibanforderungsreihenfolge werden mehrere Zieldaten, welche gefordert werden, geschrieben zu werden, gemäß einer spezifischen Schreibreihenfolge, welche vorab definiert ist, ID = A und ID = B entlang der Richtung, in welcher die Blöcke 40 in einer Schleife verbunden sind, zu erfüllen, in die jeweiligen entsprechenden Blöcke 40 geschrieben.
  • Mit der oben beschriebenen Konfiguration werden, wie in 2 gezeigt, in der Kombinationsrichtung der Blöcke 40 Daten, welche den gleichen Datentyp wie die vorher in dem Zielblock 40 gespeicherten Daten haben, in dem Block gespeichert, welcher hinter dem Zielblock 40 angeordnet ist.
  • Wie in 2 gezeigt, speichert der Block 40, welcher hinter dem Zielblock 40 ist, der durch die Managementinformation „noch nicht geschrieben“ spezifiziert ist und die Daten A speichert, die Daten A1.
  • Obgleich nicht in 2 gezeigt, gibt die Managementinformation „Schreiben im Gang“ an, dass ein Löschen von Daten von dem Zielblock 40 ausgeführt wird oder dass ein Schreiben von Schreibanforderungsdaten in den Zielblock 40 ausgeführt wird.
  • Wie in 3 gezeigt, beinhaltet das Managementsegment 46 ein erstes Flag (1. FLAG) und ein zweites Flag (2. FLAG). Wenn die in dem Block 40 gespeicherten Daten gelöscht werden, werden sowohl das erste Flag als auch das zweite Flag gelöscht, um in gelöschte Zustände verschoben zu werden. Wenn sowohl das erste Flag als auch das zweite Flag in den gelöschten Zuständen sind, wird die in dem Managementsegment 46 gespeicherte Managementinformation als „noch nicht geschrieben“ eingestellt. Wenn bestimmte Werte in das erste Flag und das zweite Flag geschrieben werden, werden das erste und das zweite Flag in nicht gelöschte Zustände geändert.
  • In einem Fall, in welchem das Managementsegment 46 den Schreibzustand „noch nicht geschrieben“ hat, ändert sich, wenn entweder das erste oder das zweite Flag von dem gelöschten Zustand auf den nicht gelöschten Zustand gesetzt wird, die in dem Managementsegment 46 gespeicherte Managementinformation zu „Schreiben im Gang“. In diesem Fall ist zum Beispiel das erste Flag auf einen gelöschten Zustand gesetzt und das zweite Flag wird von dem gelöschten Zustand auf den nicht gelöschten Zustand gesetzt.
  • In einem Fall, in welchem das Managementsegment 46 den Schreibzustand „Schreiben im Gang“ hat, ändert sich, wenn sowohl das erste als auch das zweite Flag auf den nicht gelöschten Zustand eingestellt sind, die in dem Managementsegment 46 gespeicherte Managementinformation zu „Schreiben abgeschlossen“. In diesem Fall sind zum Beispiel sowohl das erste Flag als auch das zweite Flag von irgendwelchen Zuständen auf die nicht gelöschten Zustände eingestellt.
  • Wie oben beschrieben ändert sich die in dem Managementsegment 46 gespeicherte Managementinformation zwischen „noch nicht geschrieben“, „Schreiben im Gang“ und „Schreiben abgeschlossen“ in einem Zyklus. Dabei ist ein Zyklus eine Periode, nachdem ein Datenlöschen und ein Datenschreiben ausgeführt worden sind, und bevor das nächste Datenlöschen ausgeführt werden soll.
  • Das Folgende wird einen Datenschreibprozess, welcher von der CPU 10 ausgeführt wird, mit Bezug auf 4 beschreiben.
  • Der in 4 gezeigte Prozess wird ausgeführt, wenn die von der CPU 10 ausgeführte Flash-Treibersoftware 16 von einer anderen Vorrichtung eine Zugriffsanforderung auf den Flash-Speicher 30 empfängt. Dabei ist eine andere Vorrichtung eine Vorrichtung abgesehen von der Anwendungssoftware 18 oder der Datenmanagementvorrichtung 2.
  • In den in 4, 7 und 8 gezeigten Flussdiagrammen gibt „S“ einen Schritt an. In 5, 6, 9 und 11 ist das ID-Segment 42 des Blocks 40 der Einfachheit halber weggelassen.
  • Wie in 4 gezeigt, spezifiziert die CPU 10 in S400, wenn die CPU 10 den Schreibprozess startet, den Zielblock, in welchen die Daten bei dem nächsten Schreiben geschrieben werden sollen, basierend auf der in dem momentanen Block 40 gespeicherten Managementinformation.
  • In 5 sind Datenblöcke in einer Schleife entlang einer Richtung von Block #1, Block #2 und Block #3 kombiniert und die spezifische Schreibreihenfolge ist vorab definiert, ID = A und ID = B in einer beschriebenen Reihenfolge entlang der Richtung, in welcher die Blöcke in einer Schleife kombiniert sind, zu erfüllen. Wie in 5 gezeigt, ist in Schritt (1) die Managementinformation von Block #2 „Schreiben abgeschlossen“ und die Managementinformation von Block #3 ist „noch nicht geschrieben“. Für die Blöcke #2 und #3 ist deren Managementinformation in einer Reihenfolge von „Schreiben abgeschlossen“ und „noch nicht geschrieben“. Der durch die Managementinformation „noch nicht geschrieben“ des Blocks #3 spezifizierte Block #1 wird somit als der Zielblock ermittelt, in welchen die Daten in dem nächsten Schritt geschrieben werden sollen.
  • In S402 ermittelt die CPU 10 die Daten-ID der Daten, welche in dem nächsten Schritt in den Zielblock geschrieben werden sollen, basierend auf der Reihenfolge der in die Blöcke 40 geschriebenen Managementinformation, der Reihenfolge der in die Blöcke 40 geschriebenen Daten-ID und der vorher festgelegten spezifischen Schreibreihenfolge.
  • Zum Beispiel ist in dem Schritt (1) von 5 die Reihenfolge der Daten-ID der Blöcke #2 und #3, deren Managementinformation in einer Reihenfolge von „Schreiben abgeschlossen“ und „noch nicht geschrieben“ eingestellt sind, in einer Reihenfolge von ID = A und ID = B. Ferner ist die spezifische Reihenfolge in einer Reihenfolge von ID = A und ID = B eingestellt. Daher wird in S402 die Daten-ID der in den Zielblock #1 zu schreibenden Daten als „A“ ermittelt.
  • In S404 ermittelt die CPU 10, ob die ermittelte Daten-ID der Daten, welche in den Zielblock zu schreiben sind, gleich der Daten-ID der Schreibanforderungsdaten ist. Die in S402 ermittelte Daten-ID ist „A“. Wie in 5 gezeigt werden die Daten A2, welche die Daten-ID von „A“ haben, zuerst in der Schreibanforderungsreihenfolge für ein Schreiben angefordert. Somit ist die ermittelte Daten-ID der Daten, welche in den Zielblock geschrieben werden sollen, gleich zu der Daten-ID der Schreibanforderungsdaten (S404: JA).
  • In dem obigen Fall schreibt die CPU 10 die Managementinformation des Blocks #3 in Schritt (2) in „Schreiben im Gang“ um, wie in 5 gezeigt. Dann löscht die CPU 10 in Schritt (3) die in den Block #1 geschriebenen Daten, und setzt dann die Managementinformation des Blocks #1 in Schritt (4) auf „noch nicht geschrieben“. Mit dieser Operation wird der Zielblock, in welchen die Daten in dem nächsten Schritt geschrieben werden sollen, als der Block #2 gesetzt.
  • In Schritt (4) schreibt die CPU 10 auch die Daten A2, welche die Schreibanforderungsdaten sind, in den Block #1. In Schritt (4) von 5 sind die Daten A2 mit Klammern als (Daten A2) in Block #1 gezeigt. Dies gibt an, dass die Daten A2 in den Block #1 geschrieben werden.
  • In Schritt (5) ändert die CPU 10, wenn das Schreiben der Daten A2 in den Block #1 erfolgreich abgeschlossen ist, die Managementinformation von Block #3 von „Schreiben im Gang“ zu „Schreiben abgeschlossen“ in Schritt (6). Mit den obigen Operationen ist das Schreiben der Schreibanforderungsdaten A2 in den Block #1 abgeschlossen (S408).
  • In Schritt (6) beendet die CPU 10 das Schreiben der Schreibanforderungsdaten A2 in dem Block #1 erfolgreich und empfängt die Schreibanforderung für ein Schreiben von Daten B1. Dann ermittelt die CPU 10 die Daten-ID der Daten B1, welche in den nächsten Zielblock geschrieben werden sollen, als „B“ basierend auf der Reihenfolge der Managementinformation, der ID-Reihenfolge der in die Blocks geschriebenen Daten und der spezifischen Schreibreihenfolge, welche vorab festgelegt ist. Diese Ermittlung von in den Zielblock zu schreibenden Daten ist ähnlich zu der vorher beschriebenen Ermittlung der Zieldaten A2.
  • Da die Daten-ID der Daten, welche basierend auf der spezifischen Schreibreihenfolge in den nächsten Zielblock geschrieben werden sollen, mit „B“ gleich zu der Daten-ID der Schreibanforderungsdaten ist, werden die Schreibanforderungsdaten B1 wie in Schritten (7) bis (11) gezeigt in den Block #2 geschrieben. Wie oben beschrieben ist der Zielblock durch die Managementinformation „noch nicht geschrieben“ spezifiziert, wenn die Managementinformation „noch nicht geschrieben“ der Managementinformation „Schreiben abgeschlossen“ folgt. Die Daten, welche basierend auf der Managementinformationsreihenfolge, der spezifischen Schreibreihenfolge und der ID-Reihenfolge der Blöcke ermittelt werden, in den spezifizierten Zielblock geschrieben zu werden, werden auch als Zieldaten bezeichnet, und die Zieldaten können unterschiedlich zu den Schreibanforderungsdaten sein.
  • 6 zeigt einen Fall, in welchem die Daten-ID der nächsten Zieldaten, welche basierend auf der spezifischen Schreibreihenfolge ermittelt wird, nicht gleich der Daten-ID der Schreibanforderungsdaten ist (S404: NEIN).
  • Schritte (1) bis (6) in 6 sind ähnlich zu den Schritten (1) bis (6) in 5. Beim Empfangen einer Schreibanforderung für Daten A2 schreibt die CPU 10 erfolgreich die Daten A2 in den Block #1 ähnlich zu den Schritten (1) bis (6) in 5.
  • Beim Empfangen der Schreibanforderung für die Daten A3 nach den Daten A2 ermittelt die CPU 10 in S404, dass die Managementinformationsreihenfolge und die ID-Reihenfolge der in den Blöcken 40 geschriebenen Daten nicht die Daten-ID „B“, welche von der spezifischen Schreibreihenfolge festgelegt ist, bestätigen (S404: NEIN). In diesem Fall ermittelt die CPU 10 nach einem Schreiben der Daten A2, dass die Daten-ID der in den nächsten Zielblock #2 zu schreibenden Zieldaten, welcher durch die Managementinformation „noch nicht geschrieben“ spezifiziert ist, „B“ ist, obgleich die Schreibanforderung für die Schreibanforderungsdaten A3 empfangen wird.
  • Dann liest die CPU 10 die gespeicherten Daten von dem Block #3 aus, in welchem die neuesten Daten, welche die Daten-ID „B“ haben, gespeichert sind, indem sie die Daten-ID von jedem in der Blockgruppe enthaltenen Block sucht. Dann schreibt die CPU 10 in Schritten (7) bis (11) von 6 in S406 die Daten, welche die Daten-ID von „B“ haben und welche von dem Block #3 ausgelesen worden sind, in den Block #2, sodass eine Schreibausführungsreihenfolge gleich zu der spezifischen Schreibreihenfolge ist. D.h. die CPU 10 schreibt die Daten, welche die Daten-ID von „B“ haben, als eingefügte Daten zwischen die Daten A2 und die Daten A3, um die spezifische Schreibreihenfolge zu erfüllen. Mit dieser Operation wird die Daten-ID der Blöcke #2 und #3 in Schritt (11) zu „B“.
  • Wie in Schritt (11) von 5 gezeigt ist die Managementinformation von Block #1 „Schreiben abgeschlossen“ und die Managementinformation vom Block #2 „noch nicht geschrieben“. Ferner ist die Daten-ID von Block #1 „A“, und die Daten-ID von Block #2 ist „B“. Da die spezifische Schreibreihenfolge in der Reihenfolge von ID = A und ID = B ist, ist die nächste Daten-ID der in Block #3 zu schreibenden Zieldaten „A“.
  • Somit ist die ermittelte Daten-ID von „A“ gleich zu der Daten-ID der Schreibanforderungsdaten A3, welche nach den Schreibanforderungsdaten A2 empfangen werden (S404: JA). Dann schreibt die CPU 10 die Daten A3 in Schritten (12) bis (16) in den Block #3.
  • Das Folgende wird einen Datenwiederherstellungsprozess gemäß dem vorliegenden Ausführungsbeispiel mit Bezug auf 7 beschreiben. Der Datenwiederherstellungsprozess wird von der CPU 10 ausgeführt. Der in 7 gezeigte Prozess wird ausgeführt, wenn die Energieversorgung von einem Ausschaltzustand wiederhergestellt ist. D.h. der in 7 gezeigte Prozess wird ausgeführt, wenn die Datenmanagementvorrichtung 2 durch eine Energieversorgung von der Energiequelle 60 nach einem Abschalten der Energieversorgung neu gestartet wird.
  • In S410 von 7 sucht die CPU 10 nach zwei benachbarten Blöcken 40, deren Managementinformationen in einer Reihenfolge von „Schreiben abgeschlossen“ zu „Schreiben im Gang“ sind. Zum Beispiel werden, wenn die Energieversorgung in Schritt (3) von 5 ausgeschaltet wird, d.h. wenn die Energieversorgung während des Datenlöschens in einem Im-Gang-Zustand von Block #1 abgeschaltet wird, die Daten in Block #1 unbestimmt. In diesem Fall kann die Managementinformation von Block #1 auf irgendeine von „Schreiben abgeschlossen“, „noch nicht geschrieben“ oder „Schreiben im Gang“ gesetzt sein. Wenn die Managementinformation von Block #1 zufällig auf „Schreiben im Gang“ gesetzt ist, beinhalten die Blöcke, welche die Managementinformation „Schreiben im Gang“ haben, den Block #1 und den Block #3.
  • Gewöhnlich sollte, wenn die Managementinformation „Schreiben im Gang“ korrekt den Zustand des nächsten Blocks in der Blockkombinationsrichtung angibt, der Block vor dem Block, welcher die Managementinformation „Schreiben im Gang“ hat, die Managementinformation „Schreiben abgeschlossen“ haben.
  • Daher wird, wenn die Managementinformation vom Block #1 „Schreiben im Gang“ ist und die Managementinformation von Block #3 in der Kombinationsrichtung vor dem Block #1 auch „Schreiben im Gang“ ist, die Managementinformation von Block #1 ermittelt, inkorrekt zu sein.
  • In der Kombinationsrichtung sind die Blöcke, welche die Managementinformation in einer korrekten Reihenfolge von „Schreiben abgeschlossen“ und „Schreiben im Gang“ haben, die Blöcke #2 und #3. Somit ermittelt die CPU 10, dass die Managementinformation „Schreiben im Gang“ von dem Block #3 die korrekte Managementinformation ist.
  • Wie oben beschrieben ermittelt die CPU 10, wenn zwei benachbarte Blöcke, welche die Managementinformation in einer Reihenfolge von „Schreiben abgeschlossen“ und „Schreiben im Gang“ haben, existieren (S412: JA), dass der Schreibprozess in den durch die Managementinformation „Schreiben im Gang“ spezifizierten Block aus irgendwelchen Gründen unterbrochen worden ist. Dann führt die CPU 10 den Datenwiederherstellungsprozess an dem Block durch, bei welchem der Schreibprozess unterbrochen worden ist.
  • In S414 löscht die CPU 10 die in dem Block gespeicherten Daten, welcher durch die Managementinformation „Schreiben im Gang“ spezifiziert ist, welche nach der Managementinformation „Schreiben abgeschlossen“ angeordnet ist. Dann wird die Managementinformation des Blocks, von welchem die Daten gelöscht sind, auf „noch nicht geschrieben“ gesetzt. Zum Beispiel löscht die CPU 10, wenn die Energieversorgung 60 in Schritt (3) von 5 ausgeschaltet wird, die in dem Block #1 gespeicherten Daten, welcher durch die Managementinformation „Schreiben im Gang“ des Blocks #3 spezifiziert ist.
  • In S416 ermittelt die CPU 10 die Daten-ID von in dem Block wiederherzustellenden Daten, welcher durch die Managementinformation „Schreiben im Gang“ spezifiziert ist, basierend auf der Reihenfolge der Daten-ID der Blöcke, welche die Managementinformation in einer Reihenfolge von „Schreiben abgeschlossen“ und „Schreiben im Gang“ haben, und der spezifischen Schreibreihenfolge. Dabei wird die Wiederherstellung der Daten in dem Block, welcher durch die Managementinformation „Schreiben im Gang“ spezifiziert ist, durch Schreiben der der ermittelten Daten-ID entsprechenden Daten in den spezifizierten Block ausgeführt.
  • In S418 liest die CPU 10 die neuesten Daten, welche die ermittelte Daten-ID haben, von den verbleibenden Blöcken aus, welche andere sind als der Block, bei welchem der Schreibprozess unterbrochen ist.
  • Zum Beispiel ist, wenn die Energieversorgung in Schritt (3) von 5 ausgeschaltet wird, die Reihenfolge der Daten-ID von Blöcken #2 und #3, in welchen die Managementinformation in der Reihenfolge „Schreiben abgeschlossen“ und „Schreiben im Gang“ geschrieben ist, ID = A und ID = B. Die vorab definierte spezifische Schreibreihenfolge ist auch ID = A und ID = B.
  • Somit werden die in dem Block, welcher durch die Managementinformation „Schreiben im Gang“ spezifiziert ist, wiederherzustellenden Daten ermittelt, die Daten-ID „A“ zu haben. Die CPU 10 liest die neuesten Daten A1, welche die Daten-ID „A“ haben, von dem Block #2 unter den verbleibenden Blöcken, welche andere sind als der Block #1, in welchem der Schreibprozess unterbrochen worden ist, aus.
  • In S420 schreibt die CPU 10 die in S418 ausgelesenen Daten in den durch die Managementinformation „Schreiben im Gang“ spezifizierten Block, welche in der Kombinationsrichtung nach der Managementinformation „Schreiben abgeschlossen“ angeordnet ist. In S420 ändert die CPU 10 auch die Managementinformation des Blocks, in welchen „Schreiben im Gang“ geschrieben ist, zu „Schreiben abgeschlossen“.
  • Das Folgende wird einen Datenausleseprozess mit Bezug auf 8 beschreiben. Der Datenausleseprozess wird von der CPU 10 ausgeführt. Die CPU 10 führt den Datenausleseprozess aus, wenn die Flash-Treibersoftware 16 eine Ausleseanforderung für in dem Flash-Speicher 30 gespeicherte Daten von einer anderen Vorrichtung als der Anwendungssoftware 18 oder der Datenmanagementvorrichtung 2 empfängt. In dem in 8 gezeigten Flussdiagramm gibt „S“ einen Schritt an.
  • Wie in 8 gezeigt, liest die CPU 10 in S430 Daten von dem Block, welcher die Daten-ID gleich zu der Daten-ID der Ausleseanforderungsdaten hat, aus.
  • Wenn die Blockgruppe mehrere Blöcke hat, welche jeweils die Daten-ID gleich zu der Daten-ID der Ausleseanforderungsdaten haben, durchsucht die Datenmanagementvorrichtung 2 die Blockgruppe in einer umgekehrten Richtung zu der Kombinationsrichtung der Blöcke von dem Block, in welchen die Managementinformation „noch nicht geschrieben“ geschrieben ist. In diesem Fall kann die Datenmanagementvorrichtung 2 die Daten von dem zuerst durchsuchten Block, welcher die Daten-ID gleich zu der Daten-ID der Ausleseanforderungsdaten hat, auslesen. Da der Block, welcher die Managementinformation „noch nicht geschrieben“ hat, die neuesten Daten speichert, können die neuesten Daten, welche die gleiche Daten-ID wie die Daten-ID der Ausleseanforderungsdaten haben, effektiv durch ein Suchen in der umgekehrten Richtung mit Bezug auf die Kombinationsrichtung gesucht werden.
  • Bei der oben beschriebenen Konfiguration verbleibt, wenn die Energieversorgung während der Löschoperation des Zielblocks ausgeschaltet wird, der Schreibzustand des Zielblocks in dem vorherigen Block, ohne gelöscht zu werden. D.h. der Block in der Kombinationsrichtung der Blöcke vor dem Zielblock behält die Managementinformation, welche den Schreibzustand des Zielblocks anzeigt. Deshalb kann basierend auf der in dem Block um einen vor dem Zielblock verbleibenden Managementinformation der Schreibzustand des Zielblocks als „Schreiben im Gang“ ermittelt werden.
  • Nimm in einem Vergleichsbeispiel an, dass die Managementinformation, welche den Schreibzustand der in demselben Block gespeicherten Daten angibt, zusammen mit den Daten in demselben Block gespeichert ist. In diesem Vergleichsbeispiel wird, wenn die Energieversorgung während der Löschoperation des Zielblocks zum Schreiben der Schreibanforderungsdaten in den Zielblock ausgeschaltet wird, die Managementinformation des Zielblocks, welche den Schreibzustand des Zielblocks angibt, unbestimmt. Zum Beispiel kann, wenn die Managementinformation des Zielblocks „Schreiben abgeschlossen“ wird, was angibt, dass das Schreiben von Daten erfolgreich abgeschlossen ist, die CPU inkorrekt ermitteln, dass das Schreiben von Daten in den Zielblock erfolgreich abgeschlossen ist.
  • Da verbleibende Blöcke, welche andere als der Zielblock sind, die erfolgreich geschriebenen Daten haben, sind die Managementinformationen der verbleibenden Blöcke „Schreiben abgeschlossen“. In diesem Fall wird die Managementinformation von allen Blöcken einschließlich des Zielblocks „Schreiben abgeschlossen“. Somit verbleibt das Abschalten der Energieversorgung während der Datenlöschoperation des Zielblocks nicht als irgendeine Managementinformation. Als ein Ergebnis verbleiben die in dem Zielblock gespeicherten Daten als der Schreibunterbrechungszustand, ohne wiederhergestellt zu werden.
  • In dem vorliegenden Ausführungsbeispiel verbleibt, wenn die Energieversorgung während der Löschoperation des Zielblocks abgeschaltet wird, der Schreibzustand „Schreiben im Gang“ des Zielblocks als die Managementinformation des Blocks, welcher unmittelbar vor dem Zielblock in der Kombinationsrichtung verbunden ist.
  • Ferner sind die drei oder mehr Blöcke in einer Schleife entlang einer Richtung kombiniert. Somit existieren in der Kombinationsrichtung zwei oder mehr Blöcke vor dem Zielblock. Der zwei Blöcke vor dem Zielblock verbundene Block speichert die Managementinformation, welche den Schreibzustand „Schreiben abgeschlossen“ des unmittelbar vor dem Zielblock verbundenen Blocks angibt. Dabei gibt das „Schreiben abgeschlossen“ an, dass die Daten in dem unmittelbar vor dem Zielblock verbundenen Block erfolgreich geschrieben worden sind.
  • Wenn die Energieversorgung während der Löschoperation des Zielblocks ausgeschaltet wird, sind die Managementinformationen der zwei benachbarten Blöcke, welche vor dem Zielblock verbunden sind, in der Kombinationsrichtung in einer Reihenfolge von „Schreiben abgeschlossen“ und „Schreiben im Gang“. Jede der oben beschriebenen zwei Managementinformationen gibt korrekt den Schreibzustand des in der Kombinationsrichtung kombinierten nächsten Blocks an. D.h. die in einer Reihenfolge von „Schreiben abgeschlossen“ und „Schreiben im Gang“ angeordneten Managementinformationen werden als die korrekte Managementinformationsreihenfolge ermittelt.
  • Wenn die Energieversorgung während der Löschoperation des Zielblocks abgeschaltet wird und die Managementinformation des Zielblocks unbestimmt wird, kann die Managementinformation des Zielblocks „Schreiben im Gang“ oder „Schreiben abgeschlossen“ werden. Somit können die Managementinformation des Blocks unmittelbar vor dem Zielblock und die Managementinformation des Zielblocks in einer Reihenfolge von „Schreiben im Gang“ und „Schreiben im Gang“ oder in einer Reihenfolge von „Schreiben im Gang“ und „Schreiben abgeschlossen“ werden. In jeder der zwei Arten von Managementinformationsreihenfolgen ist die frühere Managementinformation „Schreiben im Gang“ die korrekt geschriebene Managementinformation, und die spätere Managementinformation von „Schreiben im Gang“ und „Schreiben abgeschlossen“, welche in instabilen Zuständen geschrieben werden, kann die inkorrekte Managementinformation sein.
  • Somit kann basierend auf der korrekten Managementinformationsreihenfolge in der Kombinationsrichtung der Block, in welchem die Energieversorgung ausgeschaltet wird, während die Löschoperation im Gange ist, spezifiziert werden. D.h. basierend auf der korrekten Managementinformationsreihenfolge in der Kombinationsrichtung kann der Zielblock korrekt ermittelt werden.
  • Die einen oder mehreren Schreibanforderungsdaten werden in die entsprechenden Blöcke, welche in einer Schleife entlang einer Richtung kombiniert sind, basierend auf der spezifischen Schreibreihenfolge und der Kombinationsreihenfolge geschrieben. D.h., das Schreiben von Daten in den Zielblock wird unter einer Bedingung ausgeführt, dass Daten, welche den gleichen Datentyp wie die vorher in dem Zielblock gespeicherten Daten haben, welcher in dem nächsten Schritt beschrieben werden soll, redundant in zumindest einem der verbleibenden Blöcke abgesehen von dem Zielblock existieren.
  • Bei der oben beschriebenen Konfiguration können, wenn die Energieversorgung während der Datenlöschoperation des Zielblocks ausgeschaltet wird, die vorher in dem Zielblock 40 gespeicherten Daten durch die Daten wiederhergestellt werden, welche den gleichen Typ wie die vorher in dem Zielblock gespeicherten Daten haben und in zumindest einem der verbleibenden Blöcke gespeichert sind.
  • Ferner sind für n Datentypen (n+1) Blöcke für einen Speicherzweck vorbereitet. Die n Datentypen können in entsprechende Blöcke in Abhängigkeit von der spezifischen Schreibreihenfolge in der Kombinationsrichtung geschrieben werden. Bei dieser Konfiguration existieren die Daten, welche den gleichen Datentyp wie die Daten in dem Zielblock haben, in dem Block unmittelbar nach dem Zielblock. Bei nachfolgendem Schreiben von Daten in den entsprechenden Block in Abhängigkeit von der spezifischen Schreibreihenfolge in der Kombinationsrichtung wird die Kombination der Blöcke, welche den gleichen Typ haben, in der Kombinationsrichtung der Blöcke bewegt.
  • Bei der oben beschriebenen Konfiguration kann, wenn die Energieversorgung während der Datenlöschoperation des Zielblocks ausgeschaltet wird, der Zielblock basierend auf der Managementinformationsreihenfolge wie oben beschrieben ermittelt werden. Dann können die Daten in dem Zielblock unter Verwendung der in dem Block in der Kombinationsrichtung unmittelbar hinter dem Zielblock gespeicherten Daten wiederhergestellt werden. Die in den verbleibenden Blöcken abgesehen von den Zielblock gespeicherten Daten verbleiben, ohne gelöscht zu werden. Da die Daten nicht gelöscht werden, selbst wenn die Energieversorgung in einem Ausschaltzustand ist, sind keine zusätzlichen Blöcke notwendig, um die in den verbleibenden Blöcken abgesehen von dem Zielblock gespeicherten Daten wiederherzustellen.
  • Bei der oben beschriebenen Konfiguration kann durch Vorbereiten von (n+1) Blöcken für die n Datentypen die Datenredundanz des Zielblocks sichergestellt werden und der Nutzungsgrad der Speichervorrichtungskapazität kann verbessert werden.
  • Die Daten werden in die Schleifen-kombinierten Blöcke in der Kombinationsrichtung der Blöcke geschrieben. Somit werden die Daten in jeden Block bei einer gleichen Frequenz geschrieben. Dadurch kann eine Erhöhung einer Schreibfrequenz in einen spezifischen Block unter den drei oder mehr Blöcken begrenzt werden, und eine Lebensdauer des Flash-Speichers kann verlängert werden.
  • Das Folgende wird Vorteile beschreiben, welche durch die oben beschriebene Konfiguration des vorliegenden Ausführungsbeispiels bereitgestellt werden.
  • (1) In dem vorliegenden Ausführungsbeispiel werden drei oder mehr Blöcke 40 in einer Schleife entlang einer Richtung kombiniert, und die Managementinformation von jedem Block gibt den Schreibzustand des nächsten in der Kombinationsrichtung verbundenen Blocks an. Wie in 5 gezeigt ist in Schritt (3) die Managementinformation, welche in Block #2 geschrieben ist, „Schreiben abgeschlossen“ und die Managementinformation, welche in Block #3 geschrieben ist, ist „Schreiben im Gang“. Somit ist der Schreibzustand des Blocks #1 „Schreiben im Gang“, wie er durch die in Block #3 geschriebene Managementinformation spezifiziert ist.
  • Bei der oben beschriebenen Konfiguration kann, wenn die Energieversorgung während der Datenlöschoperation von Block #1 zum Schreiben von neuen Daten ausgeschaltet wird und die in dem Managementsegment 46 des Blocks #1 gespeicherte Managementinformation unbestimmt wird, der Schreibzustand des Blocks #1 unter Verwendung der in dem Block #3 gespeicherten Managementinformation als „Schreiben im Gang“ ermittelt werden.
  • (2) Bei dem vorliegenden Ausführungsbeispiel wird die spezifische Schreibreihenfolge von einer oder mehreren Schreibanforderungsdaten in die in einer Schleife entlang einer Richtung kombinierten Blöcke 40 vorher festgelegt. Zum Beispiel ist die Reihenfolge festgelegt, eine Daten-ID-Reihenfolge von „A“ und „B“ in der Kombinationsrichtung der Blöcke 40 zu erfüllen. Ferner wird das Schreiben von Daten in den Zielblock 40 unter einer Bedingung ausgeführt, dass Daten, welche den gleichen Datentyp wie die vorher in dem Zielblock 40 gespeicherten Daten, welcher in dem nächsten Schritt beschrieben werden soll, redundant in zumindest einem der verbleibenden Blöcke 40 abgesehen von dem Zielblock 40 existieren.
  • Bei der oben beschriebenen Konfiguration können, wenn die Energieversorgung während der Datenlöschoperation des Zielblocks 40, in welchen die Daten geschrieben werden sollen, ausgeschaltet wird, die vorher in dem Zielblock 40 gespeicherten Daten durch die Daten, welche den gleichen Typ wie die vorher in dem Zielblock 40 gespeicherten Daten haben und in zumindest einem der verbleibenden Blöcke 40 abgesehen von dem Zielblock gespeichert sind, wiederhergestellt werden.
  • (3) Bei dem vorliegenden Ausführungsbeispiel kann ein Datenverlust an den vorher in dem Zielblock gespeicherten Daten, in welchen die neuen Daten in dem nächsten Schritt geschrieben werden sollen, auftreten. Daher sind nur die vorab in dem Zielblock gespeicherten Daten redundant in einem anderen Block gespeichert, und verbleibende Blöcke abgesehen von dem Zielblock haben nicht die redundant gespeicherten Sicherungszweck-Daten. D.h. duplizierte Daten sind abgesehen von dem Zielblock nicht für die verbleibenden Blöcke vorgesehen. Bei dem vorliegenden Ausführungsbeispiel ist die Anzahl von Datentypen als n definiert, und die Anzahl der Blöcke 40 ist um eins größer eingestellt als die Anzahl der Datentypen. Das heißt, die Anzahl der Blöcke 40 ist definiert als m, welches m = n + 1 erfüllt. Jeder Datentyp, welcher zum Schreiben angefordert wird, wird in Abhängigkeit von der vorab festgelegten Schreibreihenfolge in der Kombinationsrichtung der Blöcke 40 in einen Block geschrieben.
  • Bei der oben beschriebenen Konfiguration existieren die Daten, welche den gleichen Datentyp wie die vorab in den Zielblock gespeicherten Daten haben, in dem nächsten oder einem anderen Block 40. Somit kann die Datenredundanz des Zielblocks, in welchen die neuen Daten in dem nächsten Schritt geschrieben werden sollen, sichergestellt werden und ein Nutzungsgrad der Kapazität des Flash-Speichers 30 kann verbessert werden.
  • (4) Wie oben beschrieben werden die Daten in die Schleifen-kombinierten Blöcke 40 in der Kombinationsrichtung der Blöcke 40 geschrieben und die Daten werden in jeden Block 40 in einer gleichen Frequenz geschrieben. Dadurch kann eine Lebensdauer des Flash-Speichers 30 verlängert werden.
  • (Zweites Ausführungsbeispiel)
  • Das Folgende wird eine Managementvorrichtung 2 gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung beschreiben. In diesem Ausführungsbeispiel ist die Konfiguration der Managementvorrichtung 2 ähnlich zu dem ersten Ausführungsbeispiel.
  • Bei dem vorliegenden Ausführungsbeispiel wird die Anzahl der Blöcke als 2n eingestellt, wenn die Anzahl der Datentypen als n definiert ist. D.h. 2n Blöcke werden zum Speichern der n Datentypen verwendet. Bei dem vorliegenden Ausführungsbeispiel werden für einen Wiederherstellungszweck alle Daten redundant in zwei Blöcke geschrieben.
  • Zum Beispiel werden, wie in 9 gezeigt, vier Blöcke bei einem Speicherzweck verwendet, wenn es zwei Arten von Datentypen „A“ und „B“ gibt. Die spezifische Schreibreihenfolge ist ähnlich zu dem ersten Ausführungsbeispiel in einer Reihenfolge von „A“ und „B“.
  • In 9 sind vier Blöcke #1, #2, #3 und #4 in der beschriebenen Reihenfolge in einer Schleife entlang einer Richtung kombiniert. In Schritten (1) bis (6) löscht die CPU 10 die in dem Block #1 gespeicherten Daten, welcher durch die Managementinformation „noch nicht geschrieben“ von Block #4 spezifiziert ist, stellt die Managementinformation des Blocks #1 als „noch nicht geschrieben“ ein und schreibt die Schreibanforderungsdaten A2 in den Block #1.
  • Wenn die Schreibanforderungsdaten nach den Daten A2 die Daten A3 sind, wird die Ermittlung in S404 in 4 „NEIN“. In Abhängigkeit von der spezifischen Schreibreihenfolge wird die Daten-ID der in dem nächsten Schritt zu schreibenden Daten als „B“ ermittelt. Daher schreibt die CPU 10 in Schritten (7) bis (11) die Daten B1, welche von dem Block #4, welcher die neuesten Daten hat, welche die Daten-ID „B“ haben, ausgelesen werden, in den Block #2, um die vorab festgelegte spezifische Schreibreihenfolge zu erfüllen. Das heißt, die CPU 10 fügt die Daten B1 ein, sodass die Schreibausführungsreihenfolge gleich zu der spezifischen Schreibreihenfolge wird.
  • In Schritten (12) bis (16) schreibt die CPU 10 die Schreibanforderungsdaten A3, welche nach den Schreibanforderungsdaten A2 angefordert werden, in den Block #3.
  • Gemäß dem vorliegenden Ausführungsbeispiel können ähnliche Vorteile wie die Vorteile (1), (2) und (4) des ersten Ausführungsbeispiels bereitgestellt werden.
  • Zusätzlich zu den obigen Vorteilen kann, da jeder Datentyp redundant in einem individuellen Block für den Wiederherstellungszweck gespeichert ist, die Datenwiederherstellung für alle der Datentypen ausgeführt werden, wenn einer der Daten bzw. Datensätze, welcher einen bestimmten Datentyp hat, aus irgendwelchen Gründen verloren wird.
  • (Drittes Ausführungsbeispiel)
  • Das Folgende wird eine Managementvorrichtung 2 gemäß einem dritten Ausführungsbeispiel der vorliegenden Erfindung beschreiben. Bei diesem Ausführungsbeispiel ist die Konfiguration der Managementvorrichtung 2 ähnlich zu dem ersten Ausführungsbeispiel.
  • Bei dem vorliegenden Ausführungsbeispiel führt die CPU 10 nicht die Ermittlung, ob die Reihenfolge der empfangenen Schreibanforderungsdaten mit der spezifischen Reihenfolge übereinstimmt, beim Empfangen von jeweiligen Schreibanforderungsdaten bzw. -datensätzen durch. Stattdessen empfängt die CPU 10 alle der Schreibanforderungsdaten und speichert die empfangenen Schreibanforderungsdaten temporär in dem RAM 12. Dann passt die CPU 10 die Reihenfolge der empfangenen Schreibanforderungsdaten an, mit der spezifischen Schreibreihenfolge übereinzustimmen, wenn die Reihenfolge der empfangenen Daten nicht gleich der spezifischen Schreibreihenfolge ist. Nach einem Anpassen der Datenreihenfolge schreibt die CPU 10 die neu geordneten Daten in die Blöcke 40. Nimm zum Beispiel, wie in 3 gezeigt, an, dass die CPU 10 die Schreibanforderungsdaten in einer Reihenfolge von Daten A2, Daten A3 und Daten B1 empfängt. Dann speichert die CPU 10 die empfangenen Daten in dem RAM 12 in der Reihenfolge der Daten A2, Daten A3 und Daten B1. Dann ordnet die CPU 10 die Reihenfolge der empfangenen Daten neu in einer Reihenfolge der Daten A2, Daten B1 und Daten A3 und schreibt die neu geordneten Daten bzw. Datensätze eine/n nach der/dem anderen in die Blöcke 40.
  • Gemäß dem vorliegenden Ausführungsbeispiel können ähnliche Vorteile wie die Vorteile (1) bis (4) des ersten Ausführungsbeispiels erreicht werden.
  • Bei dem vorliegenden Ausführungsbeispiel werden alle der Schreibanforderungsdaten bzw. -datensätze temporär in dem RAM 12 gespeichert, und die Datenreihenfolge wird neu geordnet, wenn die empfangene Reihenfolge unterschiedlich zu der vorab festgelegten spezifischen Schreibreihenfolge ist. Dann werden die neu geordneten Daten in der spezifischen Schreibreihenfolge in die Blöcke 40 geschrieben. Deshalb kann das Einfügen von Daten, um die spezifische Schreibreihenfolge zu erfüllen, weggelassen werden.
  • (Viertes Ausführungsbeispiel)
  • Das Folgende wird eine Managementvorrichtung 2 gemäß einem vierten Ausführungsbeispiel der vorliegenden Erfindung beschreiben. Bei diesem Ausführungsbeispiel ist die Konfiguration der Managementvorrichtung 2 ähnlich wie bei dem ersten Ausführungsbeispiel.
  • Bei dem vorliegenden Ausführungsbeispiel schreibt die CPU 10 beim Empfangen der Schreibanforderungsdaten die empfangenen Daten in den Zielblock und einen nachfolgenden Block in einer Kombinationsrichtung hinter dem Zielblock als der spezifischen Schreibreihenfolge.
  • Wie in 11 gezeigt schreibt die CPU 10 in Schritten (1) bis (6) die Daten A2 in den Zielblock #1, welcher durch die Managementinformation „noch nicht geschrieben“ des Blocks #3 spezifiziert ist. Nach dem Schreiben von Daten in Block #1 wird die Managementinformation des Blocks #1 auf „noch nicht geschrieben“ gesetzt. Dann werden die gleichen Schreibanforderungsdaten A2 in den Block #2 geschrieben, welcher durch die Managementinformation „noch nicht geschrieben“ des Blocks #1 spezifiziert wird.
  • Gemäß dem vorliegenden Ausführungsbeispiel können Vorteile ähnlich wie die Vorteile (1), (2) und (4) des ersten Ausführungsbeispiels bereitgestellt werden.
  • Zusätzlich zu den obigen Vorteilen kann, da ein Datentyp redundant für den Wiederherstellungszweck redundant in zwei aufeinanderfolgenden Blöcken, welche in einer Richtung verbunden sind, gespeichert wird, die Datenwiederherstellung für einen der zwei redundant gespeicherten Daten bzw. Datensätze durchgeführt werden, wenn der andere der zwei redundant gespeicherten Daten bzw. Datensätze aus irgendwelchen Gründen verloren wird.
  • (Andere Ausführungsbeispiele)
  • Während die ausgewählten beispielhaften Ausführungsbeispiele ausgewählt worden sind, die vorliegende Erfindung zu veranschaulichen, wird es für die Fachleute von dieser Offenbarung deutlich werden, dass verschiedene Änderungen und Modifikationen darin wie folgt gemacht werden können.
  • Bei den oben stehenden Ausführungsbeispielen hat die Blockgruppe drei oder vier Blöcke 40 als Beispiele. Die Anzahl der Blöcke 40 ist nicht auf drei oder vier begrenzt. Die Anzahl der Blöcke kann in einem Bereich von drei oder mehr frei eingestellt werden. Ferner kann die Anzahl der Blockgruppen, welche drei oder mehr Blöcke in einer Richtung in einer Schleife kombiniert haben, eine oder mehr als eine sein.
  • Bei dem vierten Ausführungsbeispiel speichern in der Blockgruppe die drei Blöcke Daten eines einzigen Datentyps einer Daten-ID „A“. Als ein anderes Beispiel können, unter zwei oder mehr Datentypen, Blöcke, welche Daten speichern, die zumindest einen Datentyp haben, in einer Schleife in einer Richtung kombiniert werden, und die empfangenen Schreibanforderungsdaten können in zwei aufeinanderfolgende Blöcke in der Blockgruppe geschrieben werden.
  • Bei den oben stehenden Ausführungsbeispielen ist als die wiederbeschreibbare nicht-flüchtige Speichervorrichtung, welche drei oder mehr Datenblöcke hat, wobei der ganze Block auf einmal gelöscht wird, der Flash-Speicher als ein Beispiel beschrieben. Als ein anderes Beispiel kann die vorliegende Erfindung auf andere Speichervorrichtungen, welche die obige Eigenschaft haben, abgesehen von dem Flash-Speicher angewandt werden.
  • Bei den oben stehenden Ausführungsbeispielen wird die vorliegende Erfindung auf die Datenmanagementvorrichtung angewandt. Als ein anderes Beispiel kann die vorliegende Erfindung auf ein Informationsverarbeitungssystem, welches die Datenmanagementvorrichtung beinhaltet, ein Computerprogramm, welches einen generellen Computer steuert, als die Datenmanagementvorrichtung zu fungieren, eine Speichervorrichtung zum Speichern des Computerprogramms angewandt werden, oder die vorliegende Erfindung kann auch als ein Datenmanagementverfahren bereitgestellt werden.

Claims (7)

  1. Datenmanagementvorrichtung umfassend: eine Speichervorrichtung (30), welche drei oder mehr Blöcke (40) hat, wobei die Speichervorrichtung von einer wiederbeschreibbaren nicht-flüchtigen Speichervorrichtung bereitgestellt wird und eine Löschoperation von Daten von den drei oder mehr Blöcken auf einer blockweisen Basis durchgeführt wird, wobei die drei oder mehr Blöcke der Speichervorrichtung (30) in einer Schleife in einer vorbestimmten Logik entlang einer Kombinationsrichtung kombiniert sind; und eine Steuerung (10, 16, S400, S402, S404, S406, S408, S420) zum Steuern einer Ausleseoperation zum Auslesen von Daten aus der Speichervorrichtung (30) und zum Steuern einer Schreiboperation zum Schreiben von Daten in die Speichervorrichtung (30), wobei die Steuerung (10, 16) eine oder mehrere Schreibanforderungsdaten über eine Schreibanforderung empfängt, wobei jeder der drei oder mehr Blöcke ein Managementsegment (46) und ein Datensegment (44) beinhaltet, wobei das Managementsegment (46) Managementinformation speichert, welche einen Schreibzustand des nächsten Blocks, welcher in der Kombinationsrichtung hinter dem die Managementinformation speichernden Block verbunden ist, angibt, und das Datensegment (44) die entsprechenden von der Steuerung (10, 16) empfangenen Schreibanforderungsdaten speichert, und die Steuerung (10, 16) die einen oder mehreren Schreibanforderungsdaten in entsprechende Zielblöcke, welche unter den drei oder mehr Blöcken definiert sind, basierend auf einer spezifischen Schreibreihenfolge und der Kombinationsrichtung schreibt, und die Steuerung (10, 16) die spezifische Schreibreihenfolge vorab definiert, um eine Reihenfolge zum Schreiben der einen oder mehreren Schreibanforderungsdaten in die entsprechenden Zielblöcke zu definieren.
  2. Datenmanagementvorrichtung gemäß Anspruch 1, wobei die Steuerung (10, 16) als die Managementinformation eines von Schreiben abgeschlossen, Schreiben im Gang oder noch nicht geschrieben einstellt, das Schreiben-abgeschlossen angibt, dass die Schreibanforderungsdaten erfolgreich in den entsprechenden Zielblock geschrieben sind, das Schreiben-im-Gang angibt, dass die Schreibanforderungsdaten in den entsprechenden Zielblock geschrieben werden, und das Noch-nicht-geschrieben angibt, dass die nächsten Schreibanforderungsdaten in den entsprechenden Zielblock geschrieben werden sollen, aber noch nicht geschrieben werden.
  3. Datenmanagementvorrichtung gemäß Anspruch 1 oder 2, wobei die Steuerung (10, 16, S404, S406, S408) beim Empfangen der einen oder mehreren Schreibanforderungsdaten in einer Schreibanforderungsreihenfolge, wobei die Schreibanforderungsreihenfolge unterschiedlich zu der spezifischen Schreibreihenfolge ist, zumindest die einen Daten bei den einen oder mehreren Schreibanforderungsdaten ergänzt, um die Schreibanforderungsreihenfolge anzupassen, gleich zu der spezifischen Schreibreihenfolge zu werden, und die Steuerung (10, 16) die ergänzten Schreibanforderungsdaten, welche an die spezifische Schreibreihenfolge angepasst sind, in die entsprechenden Zielblöcke schreibt.
  4. Datenmanagementvorrichtung gemäß Anspruch 2, wobei die Steuerung (10, 16, S404, S406, S408) beim Empfangen der einen oder mehreren Schreibanforderungsdaten in einer Schreibanforderungsreihenfolge, wobei die Schreibanforderungsreihenfolge unterschiedlich zu der spezifischen Schreibreihenfolge ist, zumindest die einen Daten als Ergänzungsdaten bei den einen oder mehreren Schreibanforderungsdaten ergänzt, um die Schreibanforderungsreihenfolge anzupassen, gleich zu der spezifischen Schreibreihenfolge zu werden, und die Steuerung (10, 16) die ergänzten Schreibanforderungsdaten, welche an die spezifische Schreibreihenfolge angepasst sind, in die entsprechenden Zielblöcke schreibt, die Steuerung (10, 16) basierend auf der in den drei oder mehr Blöcken gespeicherten Managementinformation und einem Datentyp von jedem der einen oder mehreren Schreibanforderungsdaten einen Datentyp der in den Zielblock zu schreibenden Daten so ermittelt, dass die in den Zielblock zu schreibenden Daten die spezifische Schreibreihenfolge erfüllen, die Steuerung (10, 16), wenn der ermittelte Datentyp der in den Zielblock zu schreibenden Daten gleich dem Datentyp der Schreibanforderungsdaten, welche angefordert werden, in den Zielblock geschrieben zu werden, ist, die Schreibanforderungsdaten in den Zielblock schreibt, welcher von der Managementinformation als noch nicht geschrieben spezifiziert wird, und die Steuerung (10, 16), wenn der ermittelte Datentyp der in den Zielblock zu schreibenden Daten unterschiedlich zu dem Datentyp der Schreibanforderungsdaten, welche angefordert sind, in den Zielblock geschrieben zu werden, ist, als die Ergänzungsdaten die Daten, welche den gleichen Datentyp wie die Daten haben, welche in den Zielblock geschrieben werden sollen, von den drei oder mehr Blöcken ausliest, und die Steuerung (10, 16) die ausgelesenen Daten in den Zielblock schreibt, welcher von der Managementinformation als noch nicht geschrieben spezifiziert wird, und die Steuerung (10, 16) dann die Schreibanforderungsdaten in den Block hinter dem Block, in welchen die Ergänzungsdaten geschrieben sind, schreibt.
  5. Datenmanagementvorrichtung gemäß Anspruch 1 oder 2, wobei die Steuerung (10, 16) beim Empfangen der einen oder mehreren Schreibanforderungsdaten in einer Schreibanforderungsreihenfolge, wobei die Schreibanforderungsreihenfolge unterschiedlich zu der spezifischen Schreibreihenfolge ist, die einen oder mehreren Schreibanforderungsdaten in der spezifischen Schreibreihenfolge neu anordnet und die neu angeordneten einen oder mehreren Schreibanforderungsdaten in die entsprechenden Zielblöcke schreibt.
  6. Datenmanagementvorrichtung gemäß einem der Ansprüche 1 bis 5, wobei die Steuerung (10, 16) beim Empfangen der einen oder mehreren Schreibanforderungsdaten jede der einen oder mehreren Schreibanforderungsdaten in die aufeinanderfolgenden zwei Zielblöcke, welche in der Schleife entlang der Kombinationsrichtung verbunden sind, schreibt.
  7. Datenmanagementprogramm, welches von einem eine Steuerung (10, 16) verwendenden Computer auszuführende Instruktionen umfasst, die Instruktionen zum Implementieren von: einem Steuern einer Ausleseoperation zum Auslesen von Daten aus einer Speichervorrichtung (30), wobei die Speichervorrichtung (30) drei oder mehr Blöcke (40) hat und von einer wiederbeschreibbaren nicht-flüchtigen Speichervorrichtung bereitstellt wird, wobei eine Löschoperation von Daten von den drei oder mehr Blöcken auf einer blockweisen Basis durchgeführt wird und die drei oder mehr Blöcke der Speichervorrichtung (30) in einer Schleife in einer vorbestimmten Logik entlang einer Kombinationsrichtung kombiniert sind; und einem Steuern einer Schreiboperation zum Schreiben von Daten in die Speichervorrichtung (30), wobei die Steuerung (10, 16) eine oder mehrere Schreibanforderungsdaten über eine Schreibanforderung empfängt, jeder der drei oder mehr Blöcke der Speichervorrichtung ein Managementsegment (46) und ein Datensegment (44) beinhaltet, wobei das Managementsegment (46) Managementinformation speichert, welche einen Schreibzustand des nächsten Blocks, welcher in der Kombinationsrichtung hinter dem die Managementinformation speichernden Blocks verbunden ist, angibt, und das Datensegment (44) die entsprechenden von der Steuerung (10, 16) empfangenen Schreibanforderungsdaten speichert, und die Steuerung (10, 16) die einen oder mehreren Schreibanforderungsdaten in entsprechende Zielblöcke, welche unter den drei oder mehr Blöcken definiert sind, basierend auf einer spezifischen Schreibreihenfolge und der Kombinationsrichtung schreibt, und die Steuerung (10, 16) die spezifische Schreibreihenfolge vorab definiert, um eine Reihenfolge zum Schreiben der einen oder mehreren Schreibanforderungsdaten in die entsprechenden Zielblöcke zu definieren.
DE102016202684.4A 2015-02-23 2016-02-22 Datenmanagementvorrichtung und datenmanagementprogramm Active DE102016202684B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-033147 2015-02-23
JP2015033147A JP6332077B2 (ja) 2015-02-23 2015-02-23 データ管理装置およびプログラム

Publications (2)

Publication Number Publication Date
DE102016202684A1 DE102016202684A1 (de) 2016-08-25
DE102016202684B4 true DE102016202684B4 (de) 2022-09-29

Family

ID=56577727

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016202684.4A Active DE102016202684B4 (de) 2015-02-23 2016-02-22 Datenmanagementvorrichtung und datenmanagementprogramm

Country Status (2)

Country Link
JP (1) JP6332077B2 (de)
DE (1) DE102016202684B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7089423B2 (ja) * 2018-07-12 2022-06-22 ルネサスエレクトロニクス株式会社 情報処理装置及び制御方法
WO2023190210A1 (ja) * 2022-03-30 2023-10-05 ローム株式会社 電源管理回路および電子機器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007328438A (ja) 2006-06-06 2007-12-20 Seiko Epson Corp 情報処理装置、そのデータバックアップ及び復旧方法
US20130198453A1 (en) 2012-01-26 2013-08-01 Korea Electronics Technology Institute Hybrid storage device inclucing non-volatile memory cache having ring structure
US20130332660A1 (en) 2012-06-12 2013-12-12 Fusion-Io, Inc. Hybrid Checkpointed Memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4419752B2 (ja) * 2004-08-25 2010-02-24 株式会社デンソー データ記憶装置
JP2012123733A (ja) * 2010-12-10 2012-06-28 Seiko Epson Corp 情報処理装置及び情報処理装置におけるデータ管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007328438A (ja) 2006-06-06 2007-12-20 Seiko Epson Corp 情報処理装置、そのデータバックアップ及び復旧方法
US20130198453A1 (en) 2012-01-26 2013-08-01 Korea Electronics Technology Institute Hybrid storage device inclucing non-volatile memory cache having ring structure
US20130332660A1 (en) 2012-06-12 2013-12-12 Fusion-Io, Inc. Hybrid Checkpointed Memory

Also Published As

Publication number Publication date
JP6332077B2 (ja) 2018-05-30
DE102016202684A1 (de) 2016-08-25
JP2016157186A (ja) 2016-09-01

Similar Documents

Publication Publication Date Title
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE102009019271A1 (de) Übertragen von Sequenzzahlen für das Wiederherstellen nach Stromausfall bei einem nichtflüchtigen Speicher
DE602005001041T2 (de) Speicherauszugssystem
DE60318687T2 (de) Herstellen einer gespiegelten kopie unter verwendung inkrementeller divergenz
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE4210126C2 (de) Verfahren zur dynamischen Dateierweiterung in einem Online-Datenbanksystem und Vorrichtung zur Durchführung des Verfahrens
DE112017003641T5 (de) Datenüberschreibvorrichtung und Datenüberschreibprogramm
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE69821426T2 (de) Speicheranordung, und Datenverarbeitungssystem und -Verfahren
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE102007006307A1 (de) Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, Aufzeichnungsmedium und nichtflüchtigen Speicherelement
DE69930439T2 (de) Elektrische Vorrichtung mit integriertem Flashspeicher
DE112013004400T5 (de) Herstellen einer Zeitpunktkopie-Beziehung zwischen logischen Quellenadressen und logischen Zieladressen
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE102004014227A1 (de) Steuervorrichtung für einen nicht flüchtigen Speicher
DE102017124188A1 (de) Verfahren und Vorrichtung zum Steuern eines Speichersystems zum Zwecke eines sicheren Herunterfahrens eines flüchtigen Speichers eines Hosts
DE112011102139B4 (de) Bandspeichereinheit und Schreibverfahren dafür
DE102016202684B4 (de) Datenmanagementvorrichtung und datenmanagementprogramm
EP1067460B1 (de) Datenträger mit wiederherstellbarem Basisdatengrundzustand und Verfahren zu dessen Herstellung
EP1514171B1 (de) Verfahren zur wiederherstellung von verwaltungsdatensätzen eines blockweise löschbaren speichers
DE102017104698A1 (de) Elektroniksteuervorrichtung und Informationsspeicherverfahren dafür
DE102021127286A1 (de) Benachrichtigung über den abschluss einer schreibanforderung als reaktion auf die teilweise härtung von schreibdaten
WO2014114388A1 (de) Verfahren zum sicheren löschen eines nichtflüchtigen halbleiter-massenspeichers, computersystem sowie computerprogrammprodukt
DE102016213610A1 (de) Elektronische Fahrzeugsteuereinrichtung und Überschreibsystem
DE112015002881B4 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012160000

Ipc: G06F0012080000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final