DE112015002881T5 - Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm - Google Patents

Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm Download PDF

Info

Publication number
DE112015002881T5
DE112015002881T5 DE112015002881.1T DE112015002881T DE112015002881T5 DE 112015002881 T5 DE112015002881 T5 DE 112015002881T5 DE 112015002881 T DE112015002881 T DE 112015002881T DE 112015002881 T5 DE112015002881 T5 DE 112015002881T5
Authority
DE
Germany
Prior art keywords
block
write
data
processing
written
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.)
Granted
Application number
DE112015002881.1T
Other languages
English (en)
Other versions
DE112015002881B4 (de
Inventor
Takeshi Asai
Tsuneo Yamamoto
Yasushi Kanda
Nobuya Uematsu
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 DE112015002881T5 publication Critical patent/DE112015002881T5/de
Application granted granted Critical
Publication of DE112015002881B4 publication Critical patent/DE112015002881B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

Eine Speichervorrichtung ist mit einem Flash-Speicher (21), der mehrere Blöcke beinhaltet, in denen Löschen von Daten in Einheiten eines Blocks und Schreiben von Daten in Einheiten, die kleiner als der Block sind, ausgeführt wird, und einer Steuereinheit (11) versehen, die die in dem Block geschriebenen Daten liest und die Daten in den Block schreibt. Der Flash-Speicher beinhaltet mindestens einen Block (37). Schreibdaten und ein Schreib-Flag können in jedem Block BRi geschrieben werden, der in dem Blockschutz beinhaltet ist. Die Steuereinheit führt eine Löschverarbeitung (S5), die die Daten einschließlich der Schreibdaten und des Schreib-Flags, die in einem Block BRl geschrieben sind, löscht, eine erste Schreibverarbeitung (S6), die neue Daten in den Block BRi schreibt, und eine zweite Schreibverarbeitung (S7) aus, die ein Schreib-Flag in einen Block BRm schreibt.

Description

  • QUERVERWEIS AUF ZUGEHÖRIGE ANMELDUNGEN
  • Die vorliegende Anmeldung basiert auf der am 19. Juni 2014 eingereichten japanischen Patentanmeldung mit der Nummer 2014-126658 auf deren Offenbarung vollinhaltlich Bezug genommen wird.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft eine Speichervorrichtung mit einem Flash-Speicher.
  • HINTERGRUND
  • Ein Flash-Speicher wird in Kommunikationsinstrumenten, AV(audiovisuellen)-Instrumenten und anderen Instrumenten in unterschiedlichen Gebieten verwendet. Daten in einem Flash-Speicher werden in Blockeinheiten gelöscht, was eine Gruppe von mehreren Speicherzellen ist. In manchen Fällen können sich demnach eine Schreibeinheitgröße und eine Löscheinheitgröße voneinander unterscheiden. Beispielsweise wird ein Schreiben in Einheiten eines Blocks, der mehrere Bytes aufweist, ausgeführt, während ein Löschen in Einheiten eines Blocks ausgeführt wird, der mehrere zehn Bytes bis mehrere Kilobytes aufweist.
  • Aufgrund einer Eigenschaft, dass ein Flash-Speicher nicht überschrieben werden kann, werden Daten zusätzlich in einen Block auf sequenzielle Weise für Datenverwaltungszwecke geschrieben. In so einem Fall, wenn beispielsweise ein Block als ein Ergebnis wiederholten zusätzlichen Beschreibens des Blocks gefüllt ist, wird ein nicht belegter Block (ein leerer Block) durch Löschen von Daten von einem Block außer dem gefüllten Block zum Zweck des Kopierens valider Daten vorbereitet (diese Verarbeitung wird nachfolgend als die Umorganisierungsverarbeitung bezeichnet).
  • Während der Ausführung der Umorganisierungsverarbeitung werden eine Datenlöschverarbeitung und eine Kopierverarbeitung intensiv bezüglich der Blöcke ausgeführt. Eine Verarbeitungslast für das gesamte Speichersystem, das einen Flash-Speicher aufweist, kann zunehmen. Somit ist es wahrscheinlich, dass Zugriff auf Daten während der Umorganisierungsverarbeitung blockiert wird.
  • Eine vorhergehend beispielsweise in Patentdokument 1 vorgeschlagene Speichervorrichtung führt die Umorganisierungsverarbeitung in einem Bereitschaftszustand aus, in dem kein Zugriff geschieht. Wird auf Daten während der Umorganisierungsverarbeitung zugegriffen, unterbricht die Speichervorrichtung die Umorganisierungsverarbeitung und nimmt dann die Umorganisierungsverarbeitung ausgehend von der Beendigung des Zugriffs auf. Auf diese Weise reduziert die Speichervorrichtung die Möglichkeit eines Zugriffs auf Daten, die während der Umorganisierungsverarbeitung blockiert werden.
  • Die Erfinder der vorliegenden Anmeldung haben das Folgende herausgefunden. Die Speichervorrichtung, die in Patentdokument 1 vorgeschlagen wird, muss die Umorganisierungsverarbeitung selbst ausführen. Demnach, wenn eine Zeitperiode, in der eine Verarbeitungslast aufgrund der Umorganisierungsverarbeitung zunimmt, länger wird, kann sich eine Gesamtsystemleistung verschlechtern.
  • LITERATUR DES STANDS DER TECHNIK
  • PATENTLITERATUR
    • Patentdokument 1: JP 5162846 B2
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Es ist eine Aufgabe der vorliegenden Offenbarung eine Speichervorrichtung, eine Flash-Speicher-Steuervorrichtung und ein Programm bereitzustellen, die eine Zunahme einer Verarbeitungslast unterdrücken können.
  • Gemäß einem Aspekt der vorliegenden Offenbarung beinhaltet eine Speichervorrichtung: einen Flash-Speicher, der mehrere Blöcke beinhaltet, wobei ein Löschen von Daten in Blockeinheiten und ein Schreiben von Daten in Einheiten kleiner als der Block ausgeführt wird; und einen Steuerabschnitt, der die in dem Block geschriebenen Daten liest und die Daten in den Block schreibt.
  • Der Flash-Speicher in der Speichervorrichtung beinhaltet mindestens einen Blocksatz, der n Stücke der Blöcke einschließlich BR1–BRN aufweist (n ist eine Ganzzahl größer oder gleich 2).
  • Ein Schreibdatum und ein Schreib-Flag können in jeden der Blöcke BRi geschrieben werden können, die in dem Blocksatz beinhaltet sind (i ist eine Ganzzahl zwischen 1 und n). Die Schreibdaten werden gemäß einer Anfrage von einer Hostvorrichtung geschrieben. Das Schreib-Flag gibt an, dass die Schreibdaten in einen Zielblock BRj geschrieben wurden, der jedem der Blöcke BRi des Blocksatzes vorab zugeordnet ist (j ist eine Ganzzahl von 1 bis n und nicht i und variiert bezüglich einem Wert von i).
  • Gemäß einer Schreibanfrage neuer Schreibdaten von der Hostvorrichtung führt der Steuerabschnitt eine Löschverarbeitung, eine erste Schreibverarbeitung und eine zweite Schreibverarbeitung aus. Die Löschverarbeitung löscht die Daten einschließlich der Schreibdaten und des Schreib-Flags, die in einem Block BRl geschrieben sind (I ist eine Ganzzahl von 1 bis n), der Block BRl ist als der Block festgelegt, in den Schreibdaten nachfolgend auf einen Block BRk zu schreiben sind (k ist eine Ganzzahl von 1 bis n), der Block BRk ist der Block, in den die Schreibdaten als Letztes geschrieben wurden, unter den Blöcken, die in dem Blocksatz beinhaltet sind. Die erste Schreibverarbeitung schreibt die neuen Schreibdaten in den Block BRl. Die zweite Schreibverarbeitung schreibt das Schreib-Flag in einen Block BRm, für den der Block BRl als der Zielblock zugeordnet ist.
  • Bei Empfang einer Schreibanfrage von der Hostvorrichtung löscht die Speichervorrichtung Daten, die in einem Block in einem Blocksatz geschrieben sind, die am frühesten geschrieben wurden, und schreibt dann neue Schreibdaten in den Block.
  • Welcher Block zu löschen oder zu beschreiben ist, kann durch Überprüfen eines Schreib-Flags jedes Blocks bestätigt werden, das ein Bestandteil eines Blocksatzes ist. Der Grund ist, dass Bedingungen, unter denen Schreib-Flags in dem Blocksatz geschrieben sind, sich abhängig davon ändern, welcher Block als Letztes beschrieben wurde.
  • Demzufolge erfordert die Speichervorrichtung keine Kopierverarbeitung, die während einer Umorganisierungsverarbeitung auszuführen ist. Es kann möglich sein, eine Verarbeitungslastzunahme, die durch die Umorganisierungsverarbeitung verursacht wird, zu unterdrücken, das heißt, das Auftreten eines Overheads zu unterdrücken. Es kann möglich sein, eine Verschlechterung einer Gesamtsystemleistung und eine Verzögerung bei einer Antwort auf einen Datenzugriff zu unterdrücken, die durch das Auftreten des Overheads verursacht werden.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung beinhaltet eine Flash-Speicher-Steuervorrichtung: einen Steuerabschnitt, der Daten, die in einem Block mehrerer Blöcke, die in einem Flash-Speicher beinhaltet sind, liest und den Block mit Daten beschreibt, wobei ein Löschen der Daten in Blockeinheiten ausgeführt wird und ein Schreiben der Daten in Einheiten ausgeführt wird, die kleiner als der Block sind; und einen Festlegungsabschnitt, der mindestens einen Blocksatz beinhaltet, der n Stücke der Blöcke BR1–BRn aufweist, die in den Flash-Speicher beinhaltet sind (n ist eine Ganzzahl größer gleich 2).
  • Der Steuerabschnitt führt eine erste Schreibverarbeitung und eine zweite Schreibverarbeitung aus. Die erste Schreibverarbeitung schreibt Schreibdaten, die in einen Block BRi zu schreiben sind, der in dem Blocksatz beinhaltet ist, gemäß einer Anfrage von einer Hostvorrichtung (i ist eine Ganzzahl von 1 bis n). Die zweite Schreibverarbeitung schreibt ein Schreib-Flag, um dem Block BRi anzugeben, dass ein Schreiben der Schreibdaten in einen Zielblock BRj ausgeführt wurde, der dem Block BRi, der in dem Blocksatz beinhaltet ist, vorab zugeordnet ist (j ist eine Ganzzahl von 1 bis n ist und nicht i und variiert mit einem Wert von i).
  • Gemäß einer Schreibanfrage neuer Schreibdaten von der Hostvorrichtung führt der Steuerabschnitt eine Löschverarbeitung, die erste Schreibverarbeitung und die zweite Schreibverarbeitung aus. Die Löschverarbeitung löscht die Daten einschließlich der Schreibdaten und des Schreib-Flags, die in einem Block BRl geschrieben sind (I ist eine Ganzzahl von 1 bis n), wobei der Block BRl als ein Block festgelegt ist, in den die Schreibdaten nachfolgend auf einen Block BRk zu schreiben sind (k ist eine Ganzzahl von 1 bis n), der Block BRk ein Block, in den die Schreibdaten als Letztes geschrieben wurden, unter den Blöcken, die in dem Blocksatz beinhaltet sind. Die erste Schreibverarbeitung wird bezüglich des Blocks BRl ausgeführt. Die zweite Schreibverarbeitung wird bezüglich des Blocks BRm ausgeführt, für den der Block BRl als der Zielblock zugeordnet ist.
  • Wie im Fall der Speichervorrichtung erfordert die Flash-Speicher-Steuervorrichtung keine Kopierverarbeitung, die während einer Umorganisierungsverarbeitung auszuführen ist. Es kann möglich sein, eine Verarbeitungslastzunahme, die durch die Umorganisierungsverarbeitung verursacht wird, zu unterdrücken, das heißt, das Auftreten eines Overheads unterdrücken. Somit kann es möglich sein, eine Verschlechterung einer Gesamtsystemleistung und eine Verzögerung bei einer Antwort auf einen Datenzugriff zu unterdrücken, die durch das Auftreten des Overheads verursacht werden.
  • Gemäß einem weiteren Aspekt der vorliegenden Offenbarung wird ein Programm bereitgestellt, das einem Computer ermöglicht, als ein Steuerabschnitt und Festlegungsabschnitt für die Flash-Speicher-Steuervorrichtung zu funktionieren.
  • Gemäß dem Programm kann es für den Computer möglich sein, als die Flash-Speicher-Steuervorrichtung zu funktionieren.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorstehenden und weiteren Aspekte, Merkmale und Vorteile der vorliegenden Offenbarung werden aus der nachfolgenden detaillierten Beschreibung in Zusammenschau mit den Zeichnungen ersichtlicher.
  • Es zeigen:
  • 1 ein Blockschaltbild, das eine Gesamtkonfiguration einer Speichervorrichtung illustriert;
  • 2 ein schematisches Diagramm, das illustriert, wie Schreibsteuerung für einen Flash-Speicher ausgeführt wird;
  • 3 ein schematisches Diagramm, das einen Speicherbereich eines Blocks illustriert;
  • 4 ein Ablaufdiagramm, das eine Sequenz einer Datenschreibverarbeitung illustriert;
  • 5 ein schematisches Diagramm, das eine Sequenz von Datenschreiben in einem Blocksatz illustriert;
  • 6 ein schematisches Diagramm, das eine Sequenz von Datenschreiben in einem Blocksatz illustriert;
  • 7 ein Ablaufdiagramm, das eine Sequenz einer Datenwiederherstellungsverarbeitung illustriert;
  • 8A ein schematisches Diagramm, das eine Sequenz von Datenwiederherstellung in einem Blocksatz illustriert;
  • 8B ein schematisches Diagramm, das eine Sequenz von Datenwiederherstellung in einem Blocksatz illustriert;
  • 9 ein Diagramm, das Statuskombinationen einzelner Blöcke und Prozeduren, die in der Datenwiederherstellungsverarbeitung ausgeführt werden, illustriert;
  • 10 ein schematisches Diagramm, das eine Sequenz von Datenschreiben in einem Blocksatz in einem modifizierten Beispiel illustriert.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Ausführungsformen der vorliegenden Offenbarung werden mit Bezug auf die Zeichnungen geschrieben.
  • (Ausführungsform)
  • (1) Gesamtkonfiguration
  • 1 ist ein Blockschaltbild, das eine Gesamtkonfiguration einer Speichervorrichtung 1 mit einem Flash-Speicher illustriert. Die Speichervorrichtung 1 beinhaltet eine CPU 11, ein RAM 13, ein ROM 15, einen Flash-Controller 17 und eine Eingabe-/Ausgabeschnittstelle (I/O) 19 und einen Flash-Speicher 21. Die Speichervorrichtung 1 überträgt und empfängt Daten durch einen internen BUS 23. Eine Energieversorgung 25 versorgt die vorstehenden Komponenten mit elektrischer Energie.
  • Die Speichervorrichtung 1 konfiguriert einen Teil eines Informationsverarbeitungssystems, das in einem Fahrzeug zur Verwendung angebracht ist. In Antwort auf eine Zugriffs (Schreiben oder Lesen von Daten)-Anfrage von einer Tür-ECU eines Fahrzeugs, die ein Beispiel einer Hostvorrichtung 3 ist, erlangt die Speichervorrichtung 1 Daten, die die Anzahl von Türöffnungen/-schließungen von der Tür-ECU angeben, und speichert die erlangten Daten. Es ist zu beachten, dass unterschiedliche andere ECUs des Fahrzeugs als die Hostvorrichtung 3 verwendet werden können. Offensichtlich muss die Speichervorrichtung 1 nicht in einem Fahrzeug zur Verwendung angebracht sein. Unterschiedliche Informationsverarbeitungsvorrichtungen außer der fahrzeuggebundenen Vorrichtung können als die Eigenvorrichtung 3 verwendet werden.
  • Die CPU 11 stellt integrierte Steuerung der Speichervorrichtung 1 gemäß mehreren Programmen 15a (ein Flashtreibersoftwareprogramm und mehrere Anwendungssoftwareprogramme) bereit, die in dem ROM 15 gespeichert sind. Gemäß einer Zugriffsanfrage von der Hostvorrichtung 3 bezüglich des Flash-Speichers 21 steuert die CPU 11 ein Datenschreiben in den Flash-Speicher 21 und ein Datenlesen von dem Flash-Speicher 21.
  • Der Einfachheit halber werden Daten, die in den Flash-Speicher 21 gemäß einer Anfrage von der Hostvorrichtung 3 geschrieben werden, als Schreibdaten bezeichnet. Die Schreibdaten können gemäß einer Anfrage von der Hostvorrichtung 3 gelesen werden. Eine Hostvorrichtung, die eine Anfrage für ein Schreiben tätigt, muss nicht identisch zu einer Hostvorrichtung sein, die eine Anfrage für ein Lesen tätigt.
  • Das RAM 13 ist ein Arbeitsbereich, der durch die CPU 11 verwendet wird. Das RAM 13 funktioniert ebenso als ein Puffer, der temporär Schreibdaten, die von dem Flash-Speicher 21 gelesen werden, und Schreibdaten, die in den Flash-Speicher 21 zu schreiben sind, speichert.
  • Der Flash-Controller 17 führt beispielsweise eine Schreibverarbeitung, eine Leseverarbeitung oder eine Löschverarbeitung bezüglich des Flash-Speichers 21 basierend auf einer Anweisung von der CPU 11 aus.
  • Der Flash-Speicher 21 hat 1.024 Blöcke 31, die jeweils eine minimale Löscheinheit repräsentieren.
  • Jeder der Blöcke 31 ist ein relativ kleiner Block, der durch 32 Bytes ausgebildet ist. Eine minimale Datenspeichereinheit für zusätzliches Schreiben ist zwei Byte. Da die Anzahl von Blöcken 1.024 ist, ist der gesamte Speicherbereich 32 Kilobyte groß. Im Übrigen sind die Speicherkapazität und Schreibgröße der Blöcke 31 und die Anzahl von Blöcken 31, die in dem Flash-Speicher 21 beinhaltet sind, nicht auf das Vorstehende beschränkt.
  • Ein Verfahren einer Schreibsteuerung, die für den Flash-Speicher 21 der vorliegenden Ausführungsform ausgeführt wird, wird gemäß 2 beschrieben. 2 illustriert schematisch die Blöcke 31.
  • Der Flash-Speicher 21 beinhaltet mehrere Blocksätze 37, von denen jeder drei Blöcke 31 (BR1–BR3, einschließlich BR1, BR2 und BR3) beinhaltet. Die Blöcke BR1–BR3 sind so gekennzeichnet, um die Blöcke 31 in einem Blocksatz 37 zu identifizieren. Die mehreren Blocksätze 37 beinhalten jeweils Blöcke BR1–BR3.
  • Jeder Block BRi (i ist eine Ganzzahl von 1 bis 3) in einem Blocksatz 37 beinhaltet einen Datenabschnitt 33 und einen Flag-Abschnitt 35. Der Datenabschnitt 33 ist ein Speicherbereich, in den die Schreibdaten geschrieben werden können. Der Flag-Abschnitt 35 ist ein Speicherbereich, in den ein Schreib-Flag und ein Löschen-in-Verarbeitung-Flag geschrieben werden kann.
  • Das Schreib-Flag gibt an, das Schreiben von Schreibdaten in einem Zielblock BRj (j ist eine Ganzzahl, die durch Addieren von 1 zum Rest erlangt wird, der durch Teilen von i durch 3 erlangt wird) ausgeführt wurde, der vorab einen Block BRi zugeordnet ist, der in einem Blocksatz 37 beinhaltet ist. Das Löschen-in-Verarbeitung-Flag gibt an, dass eine Löschverarbeitung zum Löschen von Daten gestartet wurde, die in dem Zielblock BRl geschrieben sind (kann nachfolgend einfach als ein Zielblock bezeichnet werden). Das Schreib-Flag und das Löschen-in-Verarbeitung-Flag können nachfolgend als ein Verwaltungs-Flag bezeichnet werden.
  • Bezüglich des Zielblocks BRj ist j eine Ganzzahl von 1 bis n und ist nicht i. Dies kennzeichnet, dass Blöcke in einem Blocksatz jeweils als ein Zielblock für einen anderen Block in dem Blocksatz zugeordnet sind.
  • Bei einem spezifischen Beispiel eines Zielblocks kann die Variable j eine Ganzzahl sein, die durch Addieren von 1 zu dem Rest erlangt wird, der durch Teilen von i + a durch n erlangt wird. Im Übrigen ist a eine Ganzzahl von 0 bis n–2. In anderen Worten ist a eine Ganzzahl zwischen 0 und n–2 oder ist eine Ganzzahl nicht kleiner als 0 und nicht größer als n–2.
  • In der vorliegenden Ausführungsform wird die Beziehung zwischen den Blöcken durch Verwenden von Variablen wie beispielsweise i, j, k, l, m, p und q erläutert. Jedoch werden numerische Werte selbst zu Erläuterungszwecken verwendet. Es ist alles richtig, sofern die einzelnen Blöcke im Wesentlichen unter Verwendung der vorstehenden Variablen erläutert werden.
  • Informationen über einen Zielblock BRj, der durch ein Verwaltungs-Flag angegeben ist, das in einem Block BRi geschrieben ist, werden beschrieben.
  • Wie durch Pfeile für einen Blocksatz 37, der IDx aufweist, angegeben ist, der in 2 illustriert ist, repräsentiert ein Verwaltungs-Flag, das in dem Flag-Abschnitt 35 eines Blocks BRi geschrieben ist, Informationen bezüglich eines Zielblocks (in anderen Worten überwacht das Verwaltungs-Flag, das in dem Fleckabschnitt 35 eines Blocks BRi geschrieben ist, den Status des Zielblocks BRj). Das Verwaltungs-Flag, das Informationen bezüglich eines spezifischen Typblocks BRj angibt, kann in dem Block BRi geschrieben sein. Dieses Schema ist geplant, so dass sequentielle Rotation zyklisch ausgeführt wird.
  • Wie in 3 illustriert ist, beinhaltet der Block 31 einen Datenbereich als den Flag-Abschnitt 35, in dem das Schreib-Flag (F) und das Löschen-in-Verarbeitung-Flag (M) zu schreiben sind. Informationen bezüglich Schreibdaten in einem Zielblock sind durch eine Kombination der vorstehenden Flags (des Schreib-Flags und des Löschen-in-Verarbeitung-Flags) angegeben. Der Block 31 kann als eine Eigenschaft nicht umgeschrieben werden. Demnach Ist es unmöglich nur die Flags zu aktualisieren. Jeder Block ist eine minimale Löscheinheit. Demnach löscht Löschen von Daten, die in einem Block gespeichert sind, ebenso das Flag.
  • Die Informationen, die durch ein Verwaltungs-Flag angegeben sind, können drei unterschiedliche Zustände repräsentieren: einen Anfangszustand, einen Löschen-in-Verarbeitung-Zustand und einen „Geschrieben”-Zustand. Der Anfangszustand (kann nachfolgend durch „-” angegeben sein), ist ein Zustand, in dem kein Verwaltungs-Flag geschrieben ist. Der Löschen-in-Verarbeitung-Zustand ist ein Zustand, in dem eine Zielblocklöschverarbeitung gestartet ist, aber Schreiben von Schreibdaten noch nicht vervollständigt ist. Der Geschrieben-Zustand ist ein Zustand, in dem das Schreiben der Schreibdaten in einen Zielblock abgeschlossen ist.
  • Insbesondere, wenn M = leer und F = leer (der Ausdruck „leer” ist ein Anfangswert in einem Zustand, in dem ein Blocklöschen durch den Flash-Controller 17 ausgeführt wird) gilt, gilt der „-”-Zustand. In einer Situation, in der nur das Löschen-in-Verarbeitung-Flag (M) geschrieben ist, das heißt, wenn M = nicht leer und F = leer gilt, gilt der Löschen-in-Verarbeitung-Zustand.
  • In einer Situation, in der das Löschen-in-Verarbeitung-Flag (M) und das Schreib-Flag (F) beide geschrieben sind, das heißt, wenn M = nicht leer und F = nicht leer gilt, gilt der Geschrieben-Zustand. Es ist zu beachten, dass ein Verwaltungs-Flag durch mindestens eine Schreibeinheit jeweils aus M und F, das heißt, eine Gesamtheit von vier Bytes (zwei Bytes + zwei Bytes) angegeben sein kann.
  • Gemäß 2 wird jeder Blocksatz 37 mit einer ID versehen. Drei Blöcke 31, die einem Blocksatz 37 beinhaltet sind, sind mit der ID verknüpft. In 2 existieren beispielsweise Blocksätze 37 mit einer ID1 bis IDx. Jeder Blocksatz 37 beinhaltet drei Blöcke 31.
  • Drei Blöcke 31 existieren in einem Blocksatz 37. Demnach existieren ebenso drei Datenabschnitte 33. Die Hostvorrichtung 3 handhabt einen Blocksatz 37 als einen Speicherbereich, in dem Schreibdaten die gleiche Größe wie ein Block 31 haben, geschrieben werden können. Basierend auf ID-Informationen, die in einer Schreib- oder Leseanfrage von der Hostvorrichtung 3 beinhaltet sind, identifiziert die CPU 11 einen Blocksatz 37 und führt dann ein Schreiben von Schreibdaten oder Lesen von Schreibdaten bezüglich einem der Blöcke 31 in dem Blocksatz 37 aus.
  • Eine Konversationstabelle (nicht dargestellt) speichert die Beziehung zwischen Identifikationsinformationen bezüglich jedes Blocks 31 (ID-Informationen über einen Blocksatz 37, zu dem jeder Block 31 gehört und Informationen zum Identifizieren jedes Blocks in dem Blocksatz) und der physikalischen Adresse jedes Blocks 31. Die Beziehung zwischen den Identifikationsinformationen und der physikalischen Adresse können abhängig von beispielsweise dem Status von Blöcken variabel sein.
  • (2) Durch CPU 11 ausgeführte Verarbeitung
  • (2.1) Datenschreibverarbeitung
  • Eine Sequenz einer Datenschreibverarbeitung, die durch die CPU 11 zum Schreiben von Daten in einen Blocksatz 37 ausgeführt wird, wird mit Bezug auf das Ablaufdiagramm von 4 beschrieben.
  • Bei S1 bestimmt die CPU 11, ob eine Aktualisierungsanfrage erzeugt wird. Insbesondere, wenn die CPU 11 eine Datenschreibanfrage von der Hostvorrichtung 3 empfängt, das heißt, wenn ein Schreibzugriff getätigt wird, bestimmt die CPU 11, dass eine Aktualisierungsanfrage erzeugt wird.
  • Bei S2 sucht die CPU 11 nach einem Blocksatz 37, der mit einer ID (beispielsweise IDx) der bei S1 erzeugten Aktualisierungsanfrage verknüpft ist. Da ID-Informationen in einem Datenschreibanfragebefehl von der Hostvorrichtung 3 beinhaltet sind, sucht die CPU 11 nach einem Blocksatz 37 mit einer ID, die durch die ID-Informationen angegeben ist. Alternativ kann der Befehl ohne die ID-Informationen ausgebildet werden. In so einem alternativen Fall kann die CPU 11 nach einem Blocksatz mit einer vorbestimmten ID auf der Basis des Typs einer Schreibanfrage suchen (der Typ der Hostvorrichtung oder der Typ von Schreibdaten).
  • Bei S3 identifiziert die CPU 11 einen Block 31, der am frühesten in den Blocksatz 37, der bei S2 abgerufen wird, aktualisiert wurde. Ein am frühesten aktualisierter Block, das heißt ein Block, in den die Schreibdaten am Frühesten geschrieben wurden, kann durch Überprüfen der Verwaltungs-Flags, die in all den Blöcken 31 geschrieben sind, die in dem Blocksatz 37 beinhaltet sind, identifiziert werden.
  • In 5 und 6 illustriert ein Zustand (i) einen normalen Zustand, in dem keine Aktualisierungsanfrage erzeugt wird, und Zustände (ii) bis (vi) illustrieren eine Änderung gemäß einem Ablauf einer Zeit ausgehend von dem Zustand (i). Zeichnungen, die durch die gleichen Bezugszeichen (i)–(vi) in 5 und 6 gekennzeichnet sind, repräsentieren die gleichen Zustände. In den Zeichnungen geben schattierte Abschnitte an, dass Daten vorliegen, und weiße Abschnitte geben an, dass keine Daten vorliegen.
  • In dem Zustand (i) von 5 geben Verwaltungs-Flags, die in die Blöcke BR1 und BR2 geschrieben sind, den „Geschrieben”-Zustand an und das Verwaltungs-Flag, das in dem Block BR3 geschrieben ist, gibt den „-”-Zustand an. Ein Block mit dem Verwaltungs-Flag, das „-” angibt, ist ein Block, der am Letzten aktualisiert wurde, das heißt, ein Block, in den Schreibdaten als Letztes geschrieben wurden. Der Block BR1, der turnusgemäß auf den Block BR3 folgt, der als Letztes aktualisiert wurde, ist ein Block, der am Frühesten (das heißt ein Block, in dem ein Schreiben von Schreibdaten folgend auf den Block BR3 auszuführen ist) aktualisiert wurde. Der Grund, warum die vorstehende Bestimmung getätigt werden kann, wird später beschrieben.
  • Zur Erläuterung werden die nachfolgenden Verarbeitungsschritte mit Bezug auf die in 5 und 6 illustrierten Zustände beschrieben.
  • Bei S4 wird das Verwaltungs-Flag, das in dem Block BR2 geschrieben ist, zu Löschen-in-Verarbeitung aktualisiert, wie in dem Zustand (ii) von 5 angegeben ist. Insbesondere wird das Löschen-in-Verarbeitung-Flag (M) wie in dem Zustand (ii) von 6 angegeben geschrieben, so dass M = nicht leer gilt.
  • Bei S5 werden Daten, die in dem Block BR1 gespeichert sind, gelöscht, wie in einem Zustand (ii) von 5 und 6 angegeben ist. Der Block BR1 ist ein Zielblock für das in dem Block BR3 geschriebene Verwaltungs-Flag. Da Schreibdaten und ein Verwaltungs-Flag in dem Block BR1 gespeichert sind, werden sie gelöscht.
  • Bei S6 werden Daten in den Block BR1 geschrieben. Insbesondere werden neue Schreibdaten geschrieben, wie in einem Zustand (iv) von 5 und 6 angegeben ist. Da kein Verwaltungs-Flag beziehungsweise da noch kein Verwaltungs-Flag geschrieben ist, wird eine „-” markierung angegeben.
  • Bei S7 wird das Verwaltungs-Flag, das in dem Block BR3 geschrieben ist, zu „geschrieben” aktualisiert, wie in einem Zustand (v) von 5 angegeben ist. Insbesondere wird das Schreib-Flag (F), wie in dem Zustand (v) von 6 angegeben ist, geschrieben, so dass F = nicht leer gilt.
  • Ausgehend von einer Vervollständigung der vorstehenden Schritte schließt die Datenschreibverarbeitung zum Schreiben von Daten in einen Blocksatz mit IDx ab. Wie vorstehend beschrieben ist, wenn Daten in dem Zustand (ii) gelöscht werden, wird das Verwaltungs-Flag des Blocks BR1 in den Anfangszustand („-”) versetzt. Dies ermöglicht es, zu bestimmen, dass der Block mit dem Verwaltungs-Flag, das „-” angibt, ein Block ist, in den neue Daten zuletzt beziehungsweise als Letztes geschrieben wurden. Ferner werden der Block BR1, der Block BR2, der Block BR3, der Block BR1 und so weiter turnusmäßig in der angegebenen Reihenfolge geschrieben. Demnach, wenn der Block BR1 als letztes aktualisiert wurde, kann bestimmt werden, dass der Block BR2 am Frühesten aktualisiert wurde.
  • In der nächsten Datenschreibverarbeitung werden Daten in den Block BR2 geschrieben. Ausgehend vom Abschluss der Datenschreibverarbeitung wird der Block BR2 in den Zustand (vi) versetzt.
  • Für richtige Datenverwaltung ist wichtig, dass die Verarbeitung zum Ändern des Verwaltungs-Flags bei S7 in „geschrieben”, nämlich das Schreiben des Schreib-Flags (F) normal abgeschlossen wird. Demnach ist es denkbar, dass möglicherweise ein Halteabschnitt zum Halten einer Spannung während der Schreibperiode des Schreib-Flags (F) enthalten ist. Beispielsweise kann ein Kondensator als der Halteabschnitt verwendet werden. Alternativ kann jedoch eine andere Einrichtung zu Spannungshaltezwecken verwendet werden.
  • Wenn beispielsweise kein Verwaltungs-Flag in irgendeinem Block 31 in einem Blocksatz 37, nachdem der Flash-Speicher 21 initialisiert ist, existiert, werden Daten in einem Block 31 gelöscht, um Schreibdaten in irgendeinen der Blöcke 31 zu schreiben. Zusätzlich wird ein Verwaltungs-Flag, das „geschrieben” angibt, in einen anderen Block 31 geschrieben. Dies stellt sicher, dass nur der Block 31, in den die Schreibdaten geschrieben sind, ein Block wird, der ein Verwaltungs-Flag aufweist, das „-” angibt. Demnach kann die vorstehend beschriebene Schreibverarbeitung ausgeführt werden, wenn die nächste Schreibanfrage erzeugt wird.
  • (2.2) Datenwiederherstellungsverarbeitung
  • Eine Sequenz einer Datenwiederherstellungsverarbeitung, die durch die CPU 11 ausgeführt wird, wird gemäß dem Ablaufdiagramm von 7 beschrieben. Die Datenwiederherstellungsverarbeitung startet zu einer Zeit, wenn eine Wiederherstellung von einem Energieverlust erreicht wird, das heißt, zu einer Zeit, wenn Energiezufuhr wieder eingeschaltet wird, um die Vorrichtung zu starten und der CPU 11 zu erlauben, die Datenwiederherstellungsverarbeitung auszuführen.
  • Bei S11 bestätigt die CPU 11 jedes der Verwaltungs-Flags der Blöcke 31 in den Blocksätzen 37, die mit allen IDs verknüpft sind.
  • Bei S12 wird bestimmt, ob ein Verwaltungs-Flag, das „Löschen-in-Verarbeitung” angibt, existiert oder nicht, basierend auf dem Ergebnis der Bestätigung bei S11. Wie vorstehend erwähnt ist, gibt das Verwaltungs-Flag „Löschen-in-Verarbeitung” in einem Fall an, wenn für das Löschen-in-Verarbeitung-Flag (M) = nicht leer gilt und für das Schreib-Flag (F) = leer gilt. Das heißt, S12 erfasst einen Block (einen Block, der Löschen-in-Verarbeitung angibt), in dem das Schreib-Flag nicht geschrieben ist, sondern das Löschen-in-Verarbeitung-Flag geschrieben ist. Existiert kein derartiges Verwaltungs-Flag (S12: Nein), das heißt, kein Block, der Löschen-in-Verarbeitung angibt, ist erfasst, endet die Datenwiederherstellungsverarbeitung ohne Ausführen irgendeines weiteren Verarbeitungsschrittes, da es denkbar ist, dass all die Blocksätze 37 in einem normalen Zustand sind.
  • Wenn im Gegensatz ein Verwaltungs-Flag, das Löschen-in-Verarbeitung angibt, bei S12 existiert (S12: Ja), das heißt, wenn der Block, der Löschen-in-Verarbeitung angibt, erfasst ist, werden S13 und Nachfolgende ausgeführt, da es denkbar ist, dass eine Datenschreibverarbeitung in einem Zustand (vii) bis zu einem Zustand (ix) von 8a unterbrochen wird. Die Zustände vii) bis ix) von 8a sind in dem gleichen Verwaltungs-Flag-Status wie die Zustände (ii) bis (iv) von 5 Zur Erläuterung werden die folgenden Verarbeitungsschritte mit Bezug auf die in 8a und 8b illustrierten Zustände beschrieben.
  • Bei S13 werden Daten in einem Zielblock BR1 wie in einem Zustand (x) von 8b illustriert gelöscht. Der Zielblock BR1 wird durch ein Verwaltungs-Flag überwacht, das in einem Block BR3 geschrieben ist und „Löschen-in-Verarbeitung” angibt.
  • Bei S14 wird Datenwiederherstellung erreicht, wie in einem Zustand (xi) von 8b illustriert ist. Die Datenwiederherstellung wird durch Beschreiben jüngster Daten des Blocksatzes 37 in dem Zielblock BR1 erreicht, von dem die Daten bei S13 gelöscht wurden. Im Übrigen sind die jüngsten bzw. letzten Daten, die Schreibdaten, die in dem Block BR3, in dem das Verwaltungs-Flag, das Löschen-in-Verarbeitung angibt, geschrieben ist, geschrieben sind.
  • Bei S15 wird das in dem Block BR3 geschriebene Verwaltungs-Flag zu „geschrieben” aktualisiert, wie in einem Zustand (xii) von 8b illustriert ist. Insbesondere wird das Schreib-Flag (F) in den Block BR3 geschrieben. Die Datenwiederherstellungsverarbeitung schließt dann ab.
  • Indessen, wenn bei S12 bestimmt wird, dass das Verwaltungs-Flag, das Löschen-in-Verarbeitung angibt, existiert, ist eine derartige Situation nicht auf in 8a und 8b illustrierte Fälle beschränkt, sondern kann durch eine in 9 dargestellte Tabelle repräsentiert sein. Hinsichtlich der Kombinationen von Zuständen, die in der Tabelle von 9 angegeben sind, repräsentiert F den „Geschrieben”-Zustand, in dem das Schreib-Flag (F) und das Löschen-in-Verarbeitung-Flag (B) beide geschrieben sind, und M repräsentiert den „Löschen-in-Verarbeitung”-Zustand, in dem nur das Löschen-in-Verarbeitung-Flag (M) geschrieben ist.
  • Bei Zustandsnummern 1, 5 und 9, die normale Zustände sind, wird die Datenwiederherstellungsverarbeitung nicht ausgeführt. In den anderen Zuständen, das heißt, in denen M existiert, werden S13 bis S15 ausgeführt, um Schreibdaten wiederherzustellen.
  • Bei Zustandsnummern 3, 7 und 11, existieren zwei M. Wie in 5 und 6 illustriert ist, kann ein Zustand, in denen zwei Verwaltungs-Flags, die Löschen-in-Verarbeitung angeben, existieren, nicht wahrscheinlich aus einer erwarteten Sequenz entstehen. Jedoch, wenn die Energiezufuhr unterbrochen wird, während ein Block 31 gelöscht wird, werden Daten instabil, so dass ein M-Zustand fälschlicherweise auftritt, wenn beispielsweise nur das Schreib-Flag (M) gelöscht wird. Demnach ist ein Zustand, in dem zwei M existieren, ebenso in der Tabelle angegeben.
  • (2.3) Datenleseverarbeitung
  • Wenn eine Datenleseanfrage von der Hostvorrichtung 3 empfangen wird, das heißt, wenn ein Lesezugriff getätigt wird, überprüft die CPU 11 die Verwaltungs-Flags, die in all die Blöcke 31 in einem Blocksatz 37, der durch die Datenleseanfrage gekennzeichnet ist, geschrieben sind, und erfasst einen Block, in dem das Schreib-Flag nicht geschrieben ist und das Verwaltungs-Flag den „-”-Zustand angibt. Die CPU 11 liest dann Schreibdaten, die in den erfassten Block geschrieben sind, und gibt die Schreibdaten an die Hostvorrichtung 3 aus.
  • Hierbei kann die Hostvorrichtung 3 ein Computersystem sein, das Fahrzeuginformationen beispielsweise von der Speichervorrichtung 1 erlangt. Nämlich muss die Hostvorrichtung 3, die eine Schreibanfrage für Schreibdaten an die Speichervorrichtung 1 abgibt, nicht identisch zur Hostvorrichtung 3 sein, die eine Schreibdatenleseanfrage bezüglich der Schreibdaten, die in dem Flash-Speicher 21 der Speichervorrichtung 1 geschrieben sind, abgibt.
  • (3) Vorteile
  • Die Speichervorrichtung 1 gemäß der vorliegenden Ausführungsform beinhaltet den Flash-Speicher 21 mit mehreren Blöcken 31, in denen Löschen von Daten in Einheiten eines Blocks ausgeführt wird und Schreiben von Daten in Einheiten ausgeführt wird, die kleiner als der Block sind. Die CPU 11 (entspricht einem Beispiel eines Steuerabschnitts) steuert den Flash-Controller 17, um Daten, die in den Blöcken 31 geschrieben sind, zu lesen und Daten in die Blöcke 31 zu schreiben.
  • Mindestens ein Blocksatz 37 in dem Flash-Speicher 21 festgelegt. Der Blocksatz 37 beinhaltet n Blöcke BR1 bis BRn (n = 3 in der vorliegenden Ausführungsform). Insbesondere legt die CPU (entspricht einem Beispiel eines Festlegungsabschnitts) die einzelnen Blöcke 31 als einen Blocksatz 37 auf der Basis der Konversationstabelle fest, die die Beziehung zwischen den Identifikationsinformationen über jeden Block 31 und der physikalischen Adresse jedes Blocks 31 angibt.
  • Schreibdaten, die die Daten sind, die gemäß einer Anfrage von der Hostvorrichtung 3 zu schreiben sind, und das Schreib-Flag, das angibt, dass die Schreibdaten in dem Zielblock BRj geschrieben sind (j ist eine Ganzzahl, die durch Addieren von 1 zum Rest erlangt wird, der durch Teilen von i durch n erlangt wird), kann in die Blöcke BRi (i ist eine Ganzzahl von 1 bis n) geschrieben werden, die in dem Blocksatz 37 beinhaltet sind.
  • Gemäß einer Schreibanfrage für neue Schreibdaten von der Hostvorrichtung 3 führt die CPU 11 eine Löschverarbeitung (S5), eine erste Schreibverarbeitung (S6) und eine zweite Schreibverarbeitung (S7) aus. Die Löschverarbeitung (S5) wird ausgeführt, um Daten einschließlich Schreibdaten und eines Schreib-Flags zu löschen, die in einem Block BRl geschrieben sind (l ist eine Ganzzahl von 1 bis n), der als der Block festgelegt ist, in den Schreibdaten nachfolgend auf einem Block BRk zu schreiben sind (k ist eine Ganzzahl von 1 bis n), der ein Block 31 ist, in den Schreibdaten als Letztes von den Blöcken geschrieben wurde, die in dem Blocksatz 37 beinhaltet sind. Die erste Schreibverarbeitung (S6) wird ausgeführt, um neue Schreibdaten in den Block BRl zu schreiben. Die zweite Schreibverarbeitung (S7) wird ausgeführt, um ein Schreib-Flag in einen Block BRm zu schreiben, für den der Block BRl als ein Zielblock zugeordnet ist.
  • In der vorliegenden Ausführungsform ist die Variable I des Blocks BRl insbesondere eine Ganzzahl, die durch Addieren von 1 zu dem Rest erlangt wird, der durch Teilen von k durch n erlangt wird.
  • Der Block BRn ist ein Block, für den der vorhergehend erwähnte „Block, der als Nächstes zu beschreiben ist” als ein Zielblock zugeordnet wird.
  • Wenn neue Schreibdaten in den Blocksatz 37 geschrieben werden, löscht die Speichervorrichtung 1 gemäß der vorliegenden Ausführungsform in einem Block 31 geschriebene Daten, der am frühesten von den Blöcken beschrieben wurde, die in dem Blocksatz 37 beinhaltet sind, und schreibt die neuen Schreibdaten in diesen Block 31.
  • Somit muss im Vergleich zu einer herkömmlichen Speichervorrichtung, die eine Kopierverarbeitung zum Kopieren von Daten in einen anderen Block während einer Umorganisierungsverarbeitung ausführen muss, die Speichervorrichtung 1 die Kopierverarbeitung während der Umorganisierungsverarbeitung nicht ausführen. Es kann möglich sein, eine Verarbeitungslastzunahme aufgrund der Umorganisierungsverarbeitung zu unterdrücken, das heißt, das Auftreten eines Overheads zu unterdrücken. Es kann möglich sein, die Degradierung der Gesamtsystemleistung zu unterdrücken und eine Verzögerung in Antwort auf Datenzugriff zu unterdrücken, die durch das Auftreten des Overheads verursacht werden.
  • Welcher Block zu löschen oder zu beschreiben ist, kann durch Überprüfung der Verwaltungs-Flags von den Blöcken bestätigt werden, die in dem Blocksatz 37 beinhaltet sind. In der vorliegenden Ausführungsform ist ein Block, der turnusmäßig auf einen Block folgt, in den kein Verwaltungs-Flag geschrieben ist, zu löschen und zu beschreiben.
  • Gemäß einer Datenleseanfrage von der Hostvorrichtung 3 führt die CPU 11 eine Leseverarbeitung zum Lesen von Schreibdaten aus, die einem Block BRk geschrieben sind, in dem Schreibdaten als Letztes geschrieben wurden. Demnach kann es möglich sein, die letzten beziehungsweise jüngsten Daten an die Hostvorrichtung 3 auszugeben.
  • Die Speichervorrichtung 1 gemäß der vorliegenden Ausführungsform kann das Löschen-in-Verarbeitung-Flag in jeden der Blöcke BRl, die in dem Blocksatz 37 beinhaltet sind, schreiben, um anzugeben, dass die Löschverarbeitung bezüglich des Zielblocks BRj gestartet ist.
  • Wenn eine Löschverarbeitung bezüglich des Blocks BRl gemäß einer Schreibanfrage neuer Schreibdaten von der Hostvorrichtung 3 gestartet wird, führt die CPU 11 eine dritte Schreibverarbeitung (S4) zum Schreiben des Löschen-in-Verarbeitung-Flags in den Block BRm aus, führt die Löschverarbeitung (S5) bezüglich des Blocks BRl nach der dritten Schreibverarbeitung aus, führt eine erste Schreibverarbeitung (S6) bezüglich des Blocks BRl nach der Löschverarbeitung aus und führt eine zweite Schreibverarbeitung (S7) bezüglich des Blocks BRm nach der ersten Schreibverarbeitung aus.
  • Somit kann es für die Speichervorrichtung 1 gemäß der vorliegenden Ausführungsform möglich sein, den Fortschritt einer Verarbeitung zu erkennen, die gemäß einer Schreibanfrage von der Hostvorrichtung ausgeführt wird, durch Überprüfen des Löschen-in-Verarbeitung-Flags und des Schreib-Flags. Insbesondere kann es, wenn nur das Löschen-in-Verarbeitung-Flag geschrieben ist, möglich sein, zu bestimmen, dass eine Schreibverarbeitung in Bearbeitung ist, und wenn das Löschen-in-Verarbeitung-Flag und das Schreib-Flag beide geschrieben sind, kann es möglich sein, zu bestimmen, dass eine Schreibverarbeitung abgeschlossen ist.
  • Wird bestimmt, während keine Schreibverarbeitung ausgeführt wird, dass eine Schreibverarbeitung in Bearbeitung ist, kann es möglich sein, dass eine Schreibverarbeitung möglicherweise nicht richtig abgeschlossen wird. In so einem Fall kann es möglich sein, die Anwesenheit möglicherweise abnormaler Daten durch Erfassen eines Blocks, in dem eine Schreibverarbeitung nicht richtig abgeschlossen ist, zu bestimmen.
  • Wird eine Energiezufuhr erneut eingeschaltet, erfasst die CPU 11 (entspricht einem Beispiel eines Erfassungsabschnitts) in der Speichervorrichtung 1 gemäß der vorliegenden Ausführungsform einen Block 31 (entspricht einem Beispiel eines Blocks, der Löschen-in-Verarbeitung angibt), in dem das Schreib-Flag nicht geschrieben, jedoch das Löschen-in-Verarbeitung-Flag geschrieben ist (S11, S12).
  • Wenn der Block, der der Block ist, der Löschen-in-Verarbeitung angibt, erfasst wird und der erfasste Block als ein Block BRp angenommen wird (p ist eine Ganzzahl von 1 bis 3), führt die CPU 11 eine Verarbeitung (S13) zum Löschen von Daten einschließlich Schreibdaten, Schreib-Flag und Löschen-in-Verarbeitung-Flag, die in einem Block BRq geschrieben sind, aus, der ein Zielblock für den Block BRP ist, schreibt Schreibdaten, die in einem Block geschrieben sind, der in einem Blocksatz beinhaltet ist und ein anderer als der Block BRq ist, in den Block BRq (S14) und führt eine zweite Schreibverarbeitung (S15) bezüglich des Blocks BRp aus. In der vorliegenden Ausführungsform werden die Schreibdaten, die in dem Block geschrieben sind, der Löschen-in-Verarbeitung angibt, das heißt, die letzten Schreibdaten in den Block BRq bei S14 geschrieben.
  • Wird Energiezufuhr erneut eingeschaltet, bestimmt die Speichervorrichtung 1 gemäß der vorliegenden Ausführungsform, ob ein Block, dessen Verwaltungs-Flag Löschen-in-Verarbeitung angibt, existiert. Existiert ein derartiger Block, bewegt die Speichervorrichtung 1 Schreibdaten, die einem Block geschrieben sind, in dem das Verwaltungs-Flag geschrieben ist, das Löschen-in-Verarbeitung angibt, zu einem Zielblock. Demzufolge kann es, sogar wenn eine Schreibverarbeitung aufgrund eines Energieverlustes unterbrochen wird, möglich sein zu verhindern, dass die Schreibdaten selbst verloren gehen, obwohl neue Schreibdaten, die durch die unterbrochene Schreibverarbeitung geschrieben werden, nicht erlangt werden können.
  • Ferner, da der vorstehend beziehungsweise die vorstehend beschriebene Verarbeitung ausgeführt wird, wenn die Energiezufuhr erneut eingeschaltet wird, ist die Wahrscheinlichkeit, dass abnormale Daten verwendet werden, gering. Dies stellt erhöhte Zuverlässigkeit bereit.
  • Bei S14 können Schreibdaten, die in einem Block außer dem Block BRq geschrieben sind (ein Block, der Löschen-in-Verarbeitung angibt) in den Block BRq geschrieben werden. Jedoch, wenn die Schreibdaten, die in dem Block BRp geschrieben sind, wie vorstehend erwähnt verwendet werden, kann es möglich sein, Schreibdaten, die später in dem Block BRq geschrieben werden, wiederherzustellen.
  • (Weitere Ausführungsformen)
  • Während eine Ausführungsform der vorliegenden Offenbarung vorstehend beschrieben wurde, ist die vorliegend Offenbarung nicht auf die vorstehend beschriebene Ausführungsform beschränkt. Die vorliegende Offenbarung kann in unterschiedlichen anderen Ausführungsformen implementiert sein, solange sie innerhalb den technischen Umfang der vorliegenden Offenbarung fallen.
  • In der Ausführungsform ist eine Konfiguration, dass der Blocksatz 37 drei Blöcke 31 beinhaltet, beispielhaft dargestellt. Der Blocksatz kann zwei oder mehr Blöcke beinhalten und die Anzahl von Blöcken, die in dem Blocksatz beinhaltet ist, ist nicht auf drei beschränkt.
  • Wenn der Blocksatz 37 zwei Blöcke 31 beinhaltet, wird die Unterbrechung einer Schreibverarbeitung mit niedrigerer Genauigkeit erfasst als wenn der Blocksatz 37 drei oder mehr Blöcke 31 beinhaltet. Der Grund wird nachfolgend beschrieben.
  • Wenn die Löschverarbeitung, die für den Zielblock BRl bei S5 ausgeführt wird, aufgrund beispielsweise eines Energieverlustes nachdem das Verwaltungs-Flag des Blocks BRk zu Löschen-in-Verarbeitung bei S4 von 4 aktualisiert ist, unterbrochen wird, wird möglicherweise nur das Schreib-Flag (F) des Blocks BRl gelöscht, ohne das Löschen-in-Verarbeitung-Flag (M) zu löschen. In so einem Fall gibt das Verwaltungs-Flag, das in den Block BRi geschrieben ist, Löschen-in-Verarbeitung an.
  • Wenn der Blocksatz 37 in dem vorstehenden Fall zwei Blöcke beinhaltet, gibt das Verwaltungs- beziehungsweise geben die Verwaltungs-Flags, die in den zwei Blöcken geschrieben sind, Löschen-in-Verarbeitung an. Somit ist es schwierig zu bestimmen, welcher Block normale Daten hat.
  • Wenn der Blocksatz 37 drei oder mehr Blöcke 31 beinhaltet, gibt das Verwaltungs-Flag mindestens eines Blocks 31 „geschrieben” an. Somit kann ein Block, dessen Verwaltungs-Flag sich von „geschrieben” zu Löschen-in-Verarbeitung ändert, wenn die Blöcke in einer turnusmäßigen Sequenz überprüft werden, als ein Block bestimmt werden, der letzte Daten speichert, die vor einer unterbrochenen Schreibverarbeitung erlangt werden beziehungsweise wurden.
  • In der vorstehend beschriebenen Ausführungsform wird angenommen, dass ein Schreib-Flag, das in den Blöcke BRl zu schreiben ist, die in einem Blocksatz 37 beinhaltet sind, angibt, dass ein Schreiben von Schreibdaten in einem Zielblock BRj ausgeführt wird (j ist eine Ganzzahl, die durch Addieren von 1 zu dem Rest erlangt wird, der durch Teilen von i durch n erlangt wird).
  • Jedoch ist der Zielblock BRj nicht auf die vorstehende Regel beschränkt. Alternativ kann j eine Ganzzahl von 1 bis n sein, ist anders als i und variiert mit dem Wert I. Wird dieses Schema eingesetzt, wird jeder der Blöcke, die in dem Blocksatz beinhaltet sind, als ein Zielblock für einen anderen Block, der in dem Blocksatz beinhaltet ist, zugeordnet. Dies ermöglicht es, den Schreibstatus jedes Blocks zu bestimmen.
  • Bezüglich des Zielblocks BRj kann j eine Ganzzahl sein, die durch Hinzufügen von 1 zu dem Rest erlangt wird, der durch Teilen von i + a durch n erlangt wird. Hierbei ist a eine Ganzzahl von 0 bis n–2. In der vorstehend beschriebenen Ausführungsform gilt a = 0. Ein Verfahren zur Bereitstellung einer Schreibsteuerung für einen Flash-Speicher, wenn a = 1 gilt, wird mit Bezug auf 10 beschrieben.
  • Der Flash-Speicher beinhaltet mehrere Blocksätze 37a, die jeweils fünf Blöcke 31a (BR1 bis BR5 beinhalten). Jeder Block beinhaltet einen Datenabschnitt 33a und einen Flag-Abschnitt 35a.
  • In einem Zustand (i) von 10, geben die Verwaltungs-Flags, die in dem Block BR3 und dem Block BR4 geschrieben sind, „-” an. Das nächste Datenschreiben ist dem Block BR5 auszuführen. Ein Block, für den der Block BR5 als ein Zielblock zugeordnet ist, das heißt ein Block, in den ein Verwaltungs-Flag, das den Block BR5 überwacht, zu schreiben ist, ist der Block BR3. Das letzte Schreiben wurde in dem Block BR4 ausgeführt.
  • Wenn ein Schreiben auszuführen ist, wird das Verwaltungs-Flag, das in den Block BR3 geschrieben ist, als Erstes zu Löschen-in-Verarbeitung aktualisiert, wie in einem Zustand (ii) angegeben ist. Als nächstes werden Daten, die in dem Block BR5 gespeichert sind, gelöscht, wie in einem Zustand (iii) angegeben ist. Der Block BR5 ist ein Zielblock für das Verwaltungs-Flag, das in den Block BR3 geschrieben ist. Anschließend werden neue Schreibdaten geschrieben, wie in einem Zustand (iv) angegeben ist. Da das Verwaltungs-Flag noch nicht geschrieben ist, wird der „-”-Zustand angegeben.
  • Das Verwaltungs-Flag, das in dem Block BR3 geschrieben ist, wird dann zu „geschrieben” aktualisiert, wie in einem Zustand (v) angegeben ist. Ausgehend vom Vervollständigen der vorstehenden Schritte, schließt die Datenschreibverarbeitung für den Blocksatz ab. In dem Zustand (v) das nächste Datenschreiben in dem Block BR1 auszuführen, ein Block, für den der Block BR1 als ein Zielblock zugeordnet ist, ist der Block BR4 und das letzte Schreiben wurde in dem Block BR5 ausgeführt.
  • Wenn, wie vorstehend beschrieben ist, der Block BRj derart ist, dass j eine Ganzzahl ist, die durch Addieren von 1 zu dem Rest erlangt wird, der durch Teilen von i + a durch n erlangt wird, kann ein Schreiben sequentiell in den Blöcken ausgeführt werden, die in dem Blocksatz beinhaltet sind.
  • In der vorstehend beschriebenen Ausführungsform wird das Vervollständigen eines Datenschreibens unter Verwendung des Löschen-in-Verarbeitung-Flags und des Schreib-Flags bestimmt. Die Datenwiederherstellungsverarbeitung wird ausgeführt, wenn das Datenschreiben nicht vervollständigt ist. Alternativ muss das Löschen-in-Verarbeitung-Flag nicht verwendet werden und die Datenwiederherstellungsverarbeitung muss nicht ausgeführt werden. Wird eine derartige Alternative adaptiert, kann ein Zeitpunkt, bei dem Schreibdaten in dem Block BRl geschrieben werden, entweder früher oder später als ein Zeitpunkt sein, bei dem das Schreib-Flag in dem Block BRm geschrieben wird.
  • In der vorstehend beschriebenen Ausführungsform überprüft die CPU11 für einen Block, dessen Verwaltungs-Flag „Löschen-in-Verarbeitung” angibt, zu einer Zeit, bei der eine Energiezufuhr wieder eingeschaltet wird. Jedoch muss eine derartige Überprüfung nicht zu einer Zeit ausgeführt werden, bei der Energiezufuhr wieder eingeschaltet wird, sondern kann bei unterschiedlichen anderen Zeitpunkten ausgeführt werden. Ein Verwaltungs-Flag, das Löschen-in-Verarbeitung angibt, wird während des Zeitintervalls zwischen dem Moment, bei dem die dritte Schreibverarbeitung (S4) startet, und dem Moment, bei dem die zweite Schreibverarbeitung (S7) abschließt, erzeugt, sogar wenn eine Schreibverarbeitung nicht unterbrochen wird. Demzufolge ist es denkbar, dass die vorstehend erwähnte Überprüfung bei einer Zeit ausgeführt wird, die außerhalb des vorstehenden Zeitintervalls ist.
  • In der vorstehend beschriebenen Ausführungsform kann die Anzahl n von Blöcken, die in einem Blocksatz 37 beinhaltet sind, von einem Blocksatz 37 zum nächsten variieren. Beispielsweise kann ein Blocksatz 37, der mit ID 1 verknüpft ist, so konfiguriert sein, dass n = 3 gilt, und ein Blocksatz 37, der mit ID 2 verknüpft ist, kann so konfiguriert sein, dass n = 5 gilt.
  • Ferner muss der Blocksatz beziehungsweise müssen die Blocksätze bezüglich der Beziehung zwischen beispielsweise BRi, BRj und BRk nicht ähnlich beziehungsweise gleich zueinander sein. Die Blocksätze können sich voneinander in einer derartigen Beziehung unterscheiden. Beispielsweise können der Blocksatz 37, der mit ID1 verknüpft ist, und der Blocksatz 37, der mit ID 2 verknüpft ist, beide so konfiguriert sein, dass n = 5 gilt, Schreibsteuerung kann für den Blocksatz 37, der mit ID 1 verknüpft ist, ausgeübt werden, so dass die Variable a = 1 ist, wie in 10 angegeben ist, und Schreibsteuerung kann für den Blocksatz 37, der mit ID 2 verknüpft ist, ausgeübt werden, so dass die Variable a = 0 ist.
  • Die Hostvorrichtung 3 muss nicht außerhalb der Speichervorrichtung 1 existieren. Alternativ kann die Hostvorrichtung 3 in der Speichervorrichtung 1 beinhaltet sein. Ferner kann die Speichervorrichtung 1 als die Hostvorrichtung funktionieren. Insbesondere kann die CPU11 eine Verarbeitung ausführen, die keine Beziehung zur Steuerung des Flash-Speichers 21 hat, um Schreibdaten zu erlangen oder zu erzeugen und die Schreibdaten in den Flash-Speicher 21 zu schreiben, oder kann geschriebene Schreibdaten lesen und die Schreibdaten für eine andere Verarbeitung verwenden.
  • Die vorstehend beschriebenen Funktionen, die in der Speichervorrichtung 1 enthalten sind, können durch eine Flash-Speichervorrichtung implementiert sein, die die CPU 11, das RAM13, das ROM 15, den Flash-Controller 17 und die Eingabe-Ausgabe-Schnittstelle (I/O) 19 beinhaltet.
  • Die vorstehend beschriebenen Funktionen, die in der Speichervorrichtung 1 enthalten sind, können durch einen Computer implementiert werden, der durch ein Programm betrieben wird.
  • Das Programm ist durch eine Sequenz von Anweisungen ausgebildet, die zur Computerverarbeitung geeignet sind. Das Programm kann beispielsweise in einem ROM oder RAM, die in den Computer eingebaut sind, gespeichert werden, und in den Computer zur Verwendung geladen werden oder kann in den Computer durch unterschiedliche Speichermedien oder eine Kommunikationsleitung zur Verwendung geladen werden.
  • Beispielsweise können eine CD-ROM, eine DVD-ROM oder eine andere optische Scheibe, eine magnetische Scheibe und ein Halbleiterspeicher als das vorstehend erwähnte Speichermedium verwendet werden, das das Programm in den Computer lädt.
  • Es ist zu beachten, dass ein Ablaufdiagramm oder die Verarbeitung des Ablaufdiagramms in der vorliegenden Anmeldung mehrere Schritte (ebenso als Abschnitte bezeichnet) beinhaltet, von denen jeder beispielsweise als S1 repräsentiert ist. Ferner kann jeder Schritt in mehrere Unterschritte unterteilt werden, während mehrere Schritte zu einem einzelnen Schritt kombiniert werden können.
  • Während unterschiedliche Ausführungsformen, Konfigurationen und Aspekte einer Speichervorrichtung, einer Flash-Speicher-Steuervorrichtung und eines Programms beispielhaft dargestellt wurden, sind die Ausführungsformen, Konfigurationen und Aspekte der vorliegenden Offenbarung nicht auf diese beschränkt. Beispielsweise sind Ausführungsformen, Konfigurationen und Aspekte, die aus einer angemessenen Kombination technischer Elemente erlangt werden, die in unterschiedlichen Ausführungsformen, Konfigurationen und Aspekten offenbart sind, ebenso innerhalb des Umfangs der Ausführungsformen, Konfigurationen und Aspekten gemäß der vorliegenden Offenbarung beinhaltet.

Claims (7)

  1. Speichervorrichtung, aufweisend: einen Flash-Speicher (21), der mehrere Blöcke (31) beinhaltet, wobei ein Löschen von Daten in Blockeinheiten und ein Schreiben von Daten in Einheiten kleiner als der Block ausgeführt wird; einen Steuerabschnitt (11), der die in dem Block geschriebenen Daten liest und die Daten in den Block schreibt; wobei: der Flash-Speicher mindestens einen Blocksatz (37) beinhaltet, der n Stücke der Blöcke einschließlich BR1-BRN aufweist, wobei n eine Ganzzahl größer oder gleich 2 ist; ein Schreibdatum und ein Schreib-Flag in jeden der Blöcke BRl geschrieben werden können, die in dem Blocksatz beinhaltet sind, wobei i eine Ganzzahl zwischen 1 und n ist, die Schreibdaten gemäß einer Anfrage von einer Hostvorrichtung (3) geschrieben werden, das Schreib-Flag angibt, dass die Schreibdaten in einen Zielblock BRj geschrieben wurden, der jedem der Blöcke BRi des Blocksatzes vorab zugeordnet ist, j eine Ganzzahl von 1 bis n und nicht i ist und bezüglich einem Wert von i variiert; und gemäß einer Schreibanfrage neuer Schreibdaten von der Hostvorrichtung der Steuerabschnitt eine Löschverarbeitung (S5), eine erste Schreibverarbeitung (S6) und eine zweite Schreibverarbeitung (S7) ausführt, die Löschverarbeitung die Daten einschließlich der Schreibdaten und des Schreib-Flags, die in einem Block BRl geschrieben sind, löscht, I eine Ganzzahl von 1 bis n ist, der Block BRl als der Block festgelegt ist, in den Schreibdaten nachfolgend auf einen Block BRk zu schreiben sind, k eine Ganzzahl von 1 bis n ist, der Block BRk der Block, in den die Schreibdaten als Letztes geschrieben wurden, unter den Blöcken ist, die in dem Blocksatz beinhaltet sind, die erste Schreibverarbeitung die neuen Schreibdaten in den Block BRl schreibt, die zweite Schreibverarbeitung das Schreib-Flag in einen Block BRm, schreibt, für den der Block BRl als der Zielblock zugeordnet ist.
  2. Speichervorrichtung gemäß Anspruch 1, wobei: gemäß einer Datenleseanfrage von der Hostvorrichtung der Steuerabschnitt die Schreibdaten, die in einem Block, in dem die Schreibdaten als Letztes geschrieben wurden, in dem Blocksatz geschrieben sind, liest.
  3. Speichervorrichtung gemäß Anspruch 1 oder Anspruch 2, wobei: ein Löschen-in-Verarbeitung-Flag in jeden der Blöcke BRi, die in dem Blocksatz beinhaltet sind, geschrieben werden kann, um anzugeben, dass die Löschverarbeitung bezüglich des Zielblocks BRj gestartet wird; und wenn die Löschverarbeitung bezüglich des Blocks BRl gemäß einer Schreibanfrage neuer Schreibdaten von der Hostvorrichtung gestartet wird, der Steuerabschnitt eine dritte Schreibverarbeitung (S4) zum Schreiben des Löschen-in-Verarbeitung-Flags in den Block BRm ausführt, die Löschverarbeitung bezüglich des Blocks BRl nach der dritten Schreibverarbeitung ausführt, die erste Schreibverarbeitung bezüglich des Blocks BRl nach der Löschverarbeitung ausführt und die zweite Schreibverarbeitung bezüglich des Blocks BRm nach der ersten Schreibverarbeitung ausführt.
  4. Speichervorrichtung gemäß Anspruch 3, ferner aufweisend: einen Erfassungsabschnitt (11), der einen Block, der Löschen-in-Verarbeitung angibt, bei einer vorbestimmten Zeit ausschließlich eines Zeitintervalls zwischen einem Moment, bei dem die dritte Schreibverarbeitung startet, und einen Moment, bei dem die zweite Schreibverarbeitung abschließt, erfasst, wobei der Block, der Löschen-in-Verarbeitung angibt, der Block ist, in dem das Schreib-Flag nicht geschrieben ist und das Löschen-in-Verarbeitung-Flag geschrieben ist; wobei, wenn der Erfassungsabschnitt den Block erfasst, ein erfasster Block als ein Block BRp angenommen wird, p eine Ganzzahl von 1 bis n ist, der Steuerabschnitt Daten einschließlich der Schreibdaten und des Schreib-Flags löscht, die in einem Block BRq geschrieben sind, der der Zielblock für den Block BRp ist, der Steuerabschnitt die Schreibdaten, die in irgendeinen der Blöcke in dem Blocksatz außer dem Block BRq geschrieben sind, in den Block BRq nach einem Löschen der Daten schreibt und der Steuerabschnitt das Schreib-Flag in den Block BRp schreibt.
  5. Flash-Speicher-Steuervorrichtung, aufweisend: einen Steuerabschnitt (11), der Daten, die in einem Block mehrerer Blöcke (31), die in einem Flash-Speicher (21) beinhaltet sind, liest und den Block mit Daten beschreibt, wobei ein Löschen der Daten in Blockeinheiten ausgeführt wird und ein Schreiben der Daten in Einheiten ausgeführt wird, die kleiner als der Block sind; einen Festlegungsabschnitt (11), der mindestens einen Blocksatz beinhaltet, der n Stücke der Blöcke BR1–BRn aufweist, die in dem Flash-Speicher beinhaltet sind, wobei n eine Ganzzahl größer gleich 2 ist, wobei: der Steuerabschnitt eine erste Schreibverarbeitung (S6) und eine zweite Schreibverarbeitung (S7) ausführt, wobei die erste Schreibverarbeitung Schreibdaten, die in einen Block BRi zu schreiben sind, der in dem Blocksatz beinhaltet ist, gemäß einer Anfrage von einer Hostvorrichtung schreibt, wobei i eine Ganzzahl von 1 bis n ist, die zweite Schreibverarbeitung ein Schreib-Flag schreibt, um dem Block BRi anzugeben, dass ein Schreiben der Schreibdaten in einen Zielblock BRj ausgeführt wurde, der dem Block BRi, der in dem Blocksatz beinhaltet ist, vorab zugeordnet ist, wobei j eine Ganzzahl von 1 bis n ist und nicht i ist und mit einem Wert von i variiert; gemäß einer Schreibanfrage neuer Schreibdaten von der Hostvorrichtung der Steuerabschnitt eine Löschverarbeitung (S5), die erste Schreibverarbeitung (S6) und die zweite Schreibverarbeitung ausführt, die Löschverarbeitung die Daten einschließlich der Schreibdaten und des Schreib-Flags, die in einem Block BRl geschrieben sind, löscht, I eine Ganzzahl von 1 bis n ist, der Block BRl als ein Block festgelegt ist, in den die Schreibdaten nachfolgend auf einen Block BRk zu schreiben sind, k eine Ganzzahl von 1 bis n ist, der Block BRk ein Block, in den die Schreibdaten als Letztes geschrieben wurden, unter den Blöcken ist, die in dem Blocksatz beinhaltet sind, die erste Schreibverarbeitung bezüglich des Blocks BRl ausgeführt wird, die zweite Schreibverarbeitung bezüglich des Blocks BRm ausgeführt wird, für den der Block BRl als der Zielblock zugeordnet ist.
  6. Programm, das einen Computer veranlasst, als der Steuerabschnitt und der Festlegungsabschnitt der Flash-Speicher-Steuervorrichtung gemäß Anspruch 5 zu funktionieren.
  7. Nicht flüchtiges computerlesbares Speichermedium, das das Programm gemäß Anspruch 6 speichert.
DE112015002881.1T 2014-06-19 2015-05-29 Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm Active DE112015002881B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014-126658 2014-06-19
JP2014126658A JP6241373B2 (ja) 2014-06-19 2014-06-19 記憶装置、フラッシュメモリ制御装置、及びプログラム
PCT/JP2015/002719 WO2015194100A1 (ja) 2014-06-19 2015-05-29 記憶装置、フラッシュメモリ制御装置、及びプログラム

Publications (2)

Publication Number Publication Date
DE112015002881T5 true DE112015002881T5 (de) 2017-03-09
DE112015002881B4 DE112015002881B4 (de) 2022-02-03

Family

ID=54935114

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015002881.1T Active DE112015002881B4 (de) 2014-06-19 2015-05-29 Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm

Country Status (5)

Country Link
US (1) US9773562B2 (de)
JP (1) JP6241373B2 (de)
CN (1) CN106415505B (de)
DE (1) DE112015002881B4 (de)
WO (1) WO2015194100A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6645225B2 (ja) * 2016-02-04 2020-02-14 株式会社デンソー データ保全装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0398545A1 (de) * 1989-05-19 1990-11-22 Delco Electronics Corporation Verfahren und Vorrichtung zur Datenspeicherung in einem nichtflüchtigen Speicher
US5848026A (en) * 1997-12-08 1998-12-08 Atmel Corporation Integrated circuit with flag register for block selection of nonvolatile cells for bulk operations
JP4037605B2 (ja) * 2000-12-04 2008-01-23 株式会社東芝 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
JP4133166B2 (ja) * 2002-09-25 2008-08-13 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP4031693B2 (ja) * 2002-09-26 2008-01-09 株式会社ルネサステクノロジ 不揮発性メモリおよびこれを有したデータ記憶装置
JP2005222202A (ja) * 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd 不揮発性記憶装置のデータ保護方法
JP2005258851A (ja) * 2004-03-12 2005-09-22 Renesas Technology Corp メモリカード
WO2006011186A1 (ja) * 2004-07-23 2006-02-02 Spansion Llc コントローラ、データ記憶システム、データ書き換え方法及びコンピュータプログラムプロダクト
JP4584044B2 (ja) * 2005-06-20 2010-11-17 ルネサスエレクトロニクス株式会社 半導体装置
JP5162846B2 (ja) 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
JP4734110B2 (ja) * 2005-12-14 2011-07-27 株式会社東芝 不揮発性半導体記憶装置
KR100849221B1 (ko) * 2006-10-19 2008-07-31 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
JP2008123473A (ja) * 2006-10-20 2008-05-29 Toshiba Corp 記憶装置及びその制御方法
CN100476758C (zh) * 2007-08-14 2009-04-08 北京佳讯飞鸿电气股份有限公司 一种基于nor flash芯片的数据存储实现方法
CN100555246C (zh) * 2007-09-24 2009-10-28 中兴通讯股份有限公司 一种在闪存上存取数据的系统及方法
US8566505B2 (en) * 2008-04-15 2013-10-22 SMART Storage Systems, Inc. Flash management using sequential techniques
JP2010108436A (ja) * 2008-10-31 2010-05-13 Hochiki Corp フラッシュメモリを備えた制御装置及びフラッシュメモリへのデータ書込み方法
JP2013061799A (ja) * 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、記憶装置の制御方法およびコントローラ
JP2014126658A (ja) 2012-12-26 2014-07-07 Brother Ind Ltd プロセスカートリッジおよび画像形成装置
JP5695112B2 (ja) * 2013-03-18 2015-04-01 富士通テン株式会社 データ記憶装置、データの記憶方法および車載用制御装置

Also Published As

Publication number Publication date
US20170200503A1 (en) 2017-07-13
WO2015194100A1 (ja) 2015-12-23
CN106415505B (zh) 2019-06-18
US9773562B2 (en) 2017-09-26
JP6241373B2 (ja) 2017-12-06
DE112015002881B4 (de) 2022-02-03
CN106415505A (zh) 2017-02-15
JP2016004558A (ja) 2016-01-12

Similar Documents

Publication Publication Date Title
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE102014201682A1 (de) Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem
WO2013171122A2 (de) Funktional erweiterbares fahrzeugsteuergerät und verfahren zum ergänzen der funktionalität eines fahrzeugsteuergeräts
DE102005040916A1 (de) Speicheranordnung und Betriebsverfahren dafür
WO2019242970A1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102012101405B4 (de) Steuervorrichtung zum Steuern eines Datenlesens und - schreibens von und zu einem Flash-Speicher
DE112015002881B4 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm
EP2948894B1 (de) Verfahren zum sicheren löschen eines nichtflüchtigen halbleiter-massenspeichers, computersystem sowie computerprogrammprodukt
DE10131577A1 (de) Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation seines Programms
EP3588340B1 (de) Computerimplementiertes verfahren zum betreiben einer datenspeichereinrichtung
DE102016202684A1 (de) Datenmanagementvorrichtung und datenmanagementprogramm
DE10257861A1 (de) Speichersystem mit einem nichtflüchtigen Speicherelement, das direkt ohne Redundanz überschreibt, sowie das dazugehörige Schreibverfahren
DE102015218589A1 (de) Verfahren und Vorrichtung zum Betreiben eines Many-Core-System
DE112017008201T5 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Informationsverarbeitungsprogramm
DE102008010556A1 (de) Verfahren und Vorrichtung zum Speichern von Informationsdaten
DE202021102316U1 (de) Vorrichtung zur Speicherverwaltung
DE102018218628A1 (de) Verfahren zum Verwalten von Zugriffen auf einen Speicherbereich
EP4083775A1 (de) Vorrichtung und verfahren zur speicherverwaltung
DE102008002494A1 (de) Verfahren zum Aktualisieren eines Speichersegments, Datenverarbeitungsschaltung und Speichersegment
DE102021204690A1 (de) Programmerzeugungseinrichtung und Vorrichtung für eine parallele Arithmetik
DE102022003674A1 (de) Verfahren zum statischen Allozieren von lnformationen zu Speicherbereichen, informationstechnisches System und Fahrzeug
DE102014108417B4 (de) Verfahren zur Sicherung von Daten
EP4266175A1 (de) Verfahren zum rechnergestützten betreiben einer speichereinheit und ausführen von applikationsprogrammen mit speicherüberprüfung auf speicherfehler

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final