DE102017215856B4 - information management device - Google Patents

information management device Download PDF

Info

Publication number
DE102017215856B4
DE102017215856B4 DE102017215856.5A DE102017215856A DE102017215856B4 DE 102017215856 B4 DE102017215856 B4 DE 102017215856B4 DE 102017215856 A DE102017215856 A DE 102017215856A DE 102017215856 B4 DE102017215856 B4 DE 102017215856B4
Authority
DE
Germany
Prior art keywords
data
area
state
write
memory
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.)
Expired - Fee Related
Application number
DE102017215856.5A
Other languages
German (de)
Other versions
DE102017215856A1 (en
Inventor
Yohei Fujita
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 DE102017215856A1 publication Critical patent/DE102017215856A1/en
Application granted granted Critical
Publication of DE102017215856B4 publication Critical patent/DE102017215856B4/en
Expired - Fee Related 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

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

Abstract

Informationsmanagementvorrichtung umfassend:
einen nichtflüchtigen Speicher (6), welcher einen Speicherbereich hat, in welchen Daten schreibbar sind und aus welchem Daten löschbar sind; und
einen Schreiber (2, S32, S36, S92, S94), welcher ausgestaltet ist, Daten in einen leeren Bereich in dem Speicherbereich des nichtflüchtigen Speichers zu schreiben, wobei
das Löschen von Daten aus dem Speicherbereich den Speicherbereich von einem zweiten Zustand in einen ersten Zustand schaltet, wobei der erste Zustand ein Vor-Schreib-Zustand des Speicherbereichs ist,
das Schreiben von Daten in den Speicherbereich den Speicherbereich von dem ersten Zustand in den zweiten Zustand schaltet, wobei der zweite Zustand ein Nach-Schreib-Zustand des Speicherbereichs ist, und wobei
der Schreiber ausgestaltet ist, den Speicherbereich mittels des leeren Bereichs aufzuteilen, um eine Vielzahl von Datenstücken von Daten in Folge in den Speicherbereich zu schreiben.

Figure DE102017215856B4_0000
Information management device comprising:
a non-volatile memory (6) having a memory area in which data is writable and from which data is erasable; and
a writer (2, S32, S36, S92, S94) configured to write data to an empty area in the storage area of the non-volatile memory, wherein
deleting data from the memory area switches the memory area from a second state to a first state, the first state being a pre-write state of the memory area,
writing data to the memory area switches the memory area from the first state to the second state, the second state being an after-write state of the memory area, and wherein
the writer is configured to divide the memory area by means of the empty area to write a plurality of data pieces of data in the memory area in sequence.
Figure DE102017215856B4_0000

Description

Die vorliegende Erfindung betrifft generell eine Informationsmanagementvorrichtung.The present invention generally relates to an information management device.

Generell hält, d. h. speichert, ein Flash-Speicher Daten auf eine beschreibbare und löschbare Weise. Während die Daten in Einheiten von 2 Bytes oder 4 Bytes in den Flash-Speicher geschrieben werden, werden Daten aus dem Flash-Speicher in einer Einheit von Blöcken, das heißt, einer Einheit von mehreren zehn Bytes bis mehreren Kilobytes gelöscht. Der Flash-Speicher ist auf eine bestimmte Anzahl von Datenlöschungen begrenzt, das heißt ein Flash-Speicher hat eine endliche Anzahl von Programmier-/Lösch(P/E)-Zyklen. Basierend auf den oben erwähnten Eigenschaften eines Flash-Speichers verwendet ein Flash-Speicher ein Verfahren zum Speichern von Daten, indem die Daten in Blöcke geschrieben werden.Generally holds, i. H. Flash memory stores data in a writable and erasable manner. While the data is written in the flash memory in units of 2 bytes or 4 bytes, data is erased from the flash memory in a unit of blocks, that is, a unit of tens of bytes to kilobytes. Flash memory is limited to a certain number of data erases, i.e. flash memory has a finite number of program/erase (P/E) cycles. Based on the characteristics of a flash memory mentioned above, a flash memory uses a method of storing data by writing the data in blocks.

Wenn solch ein Verfahren zum Speichern von Daten verwendet wird, muss ein Identifizierer an einem Kopfteil von jedem Datenstück ermittelt werden, um ein gewünschtes Datenstück in einer Vielzahl von Datenstücken zu finden.When such a method of storing data is used, an identifier at a header of each piece of data must be determined in order to find a desired piece of data in a plurality of pieces of data.

Jedoch kann es, mit einem durch einen Bitwert repräsentierten Identifizierer, d. h. unter Verwendung eines Werts von „1“ oder „0“, manchmal schwierig sein, den Identifizierer von einem Datenbitwert zu unterscheiden, der ebenfalls von einem „1“- oder „0“-Bitwert repräsentiert wird. Das heißt, die Identifikation mittels solch einer Identifikationsmaßnahme kann schwierig und anfällig für Fehler sein.However, with an identifier represented by a bit value, i. H. using a value of "1" or "0", it can sometimes be difficult to distinguish the identifier from a data bit value, which is also represented by a "1" or "0" bit value. That is, identification using such an identification measure can be difficult and prone to error.

Deshalb verwendet die JP H05 - 119 777 A eine unterschiedliche Maßnahme, bei welcher ein Speicherbereich in eine Vielzahl von Abschnitte voraufgeteilt ist und der Kopfteil von jedem der jeweiligen Abschnitte einen fixierten Adresswert hat, um die Daten in jeden der voraufgeteilten Abschnitte zu schreiben.Therefore uses the JP H05 - 119 777 A a different measure in which a memory area is pre-divided into a plurality of sections and the header of each of the respective sections has a fixed address value to write the data in each of the pre-divided sections.

Das oben beschriebene Datenschreibverfahren kann jedoch Speicher verschwenden, wenn zum Beispiel die Datenlänge der Daten, die in einen bestimmten voraufgeteilten Speicherabschnitt geschrieben werden soll, kürzer ist als die Kapazität oder die Länge des voraufgeteilten Speicherabschnitts. Das heißt, umso kürzer die Länge der geschriebenen Daten in Bezug auf die Kapazität des voraufgeteilten Speicherbereichs ist, umso weniger effizient ist die Verwendung des Speicherbereichs.However, the data writing method described above may waste memory when, for example, the data length of the data to be written in a certain pre-divided memory section is shorter than the capacity or the length of the pre-divided memory section. That is, the shorter the length of the written data is relative to the capacity of the pre-divided memory area, the less efficient is the use of the memory area.

Es wird ferner auf die US 2014 / 0 136 765 A1 verwiesen, die als Stand der Technik ermittelt wurde. Die US 2014/0 136 765 A1 zeigt eine Informationsmanagementvorrichtung umfassend: einen nichtflüchtigen Speicher, welcher einen Speicherbereich hat, in welchen Daten schreibbar sind und aus welchem Daten löschbar sind; und einen Schreiber, welcher ausgestaltet ist, Daten in einen leeren Bereich in dem Speicherbereich des nichtflüchtigen Speichers zu schreiben, wobei das Löschen von Daten aus dem Speicherbereich den Speicherbereich von einem zweiten Zustand in einen ersten Zustand schaltet, wobei der erste Zustand ein Vor-Schreib- Zustand des Speicherbereichs ist, das Schreiben von Daten in den Speicherbereich den Speicherbereich von dem ersten Zustand in den zweiten Zustand schaltet, wobei der zweite Zustand ein Nach-Schreib-Zustand des Speicherbereichs ist. Es ist eine Aufgabe der vorliegenden Erfindung, eine Informationsmanagementvorrichtung bereitzustellen, welche die ineffiziente Verwendung von Speicherbereichen in einem Speichermedium wie beispielsweise einem Flash-Speicher oder Ähnlichem begrenzt.It will also refer to the U.S. 2014/0 136 765 A1 referenced, which has been identified as prior art. the US 2014/0 136 765 A1 Fig. 11 shows an information management device comprising: a non-volatile memory having a storage area in which data is writable and from which data is erasable; and a writer configured to write data to an empty area in the memory area of the non-volatile memory, wherein erasing data from the memory area switches the memory area from a second state to a first state, the first state being a pre-write - state of the memory area, writing data to the memory area switches the memory area from the first state to the second state, the second state being a post-write state of the memory area. It is an object of the present invention to provide an information management device which limits inefficient use of storage areas in a storage medium such as a flash memory or the like.

Gemäß einem Aspekt der vorliegenden Erfindung umfasst die Informationsmanagementvorrichtung: einen nichtflüchtigen Speicher und einen Schreiber.According to an aspect of the present invention, the information management device includes: a non-volatile memory and a writer.

Der nichtflüchtige Speicher (6) hat einen Speicherbereich, in welchen Daten schreibbar sind und aus welchem Daten löschbar sind, und der Schreiber (2, S32, S36, S92, S94) ist ausgestaltet, Daten in einen leeren Bereich in dem Speicherbereich des nichtflüchtigen Speichers zu schreiben.The non-volatile memory (6) has a memory area to which data is writable and from which data is erasable, and the writer (2, S32, S36, S92, S94) is designed to write data to an empty area in the memory area of the non-volatile memory to write.

Das Löschen von Daten aus dem Speicherbereich schaltet den Speicherbereich von einem zweiten Zustand in einen ersten Zustand, das heißt einen Vor-Schreib-Zustand des Speicherbereichs, und das Schreiben von Daten in den Speicherbereich schaltet den Speicherbereich von dem ersten Zustand in den zweiten Zustand, das heißt einen Nach-Schreib-Zustand des Speicherbereichs, und der Schreiber teilt den Speicherbereich mittels des leeren Bereichs auf, um eine Vielzahl von Datenstücken in Folge (d. h. auf eine geordnete Weise/eines nach dem anderen) in den Speicherbereich zu schreiben.Deleting data from the memory area switches the memory area from a second state to a first state, i.e. a pre-write state of the memory area, and writing data to the memory area switches the memory area from the first state to the second state, that is, an after-write state of the memory area, and the writer divides the memory area by means of the empty area to write a plurality of pieces of data in sequence (i.e., in an ordered manner/one after another) in the memory area.

Gemäß der Informationsmanagementvorrichtung der vorliegenden Erfindung werden Daten unter Verwendung des leeren Bereichs als einen „Datenteiler“ in den Speicherbereich geschrieben. Deshalb ist der Verlust an Speicherkapazität, d. h. an nicht verwendete Bereiche, begrenzt. Das heißt, die ineffiziente Verwendung des Speicherbereichs ist begrenzt.According to the information management device of the present invention, data is written in the storage area using the empty area as a “data divider”. Therefore, the loss of storage capacity, i. H. to unused areas. That is, inefficient use of memory space is limited.

Die Ziffern in Klammern in dem obigen Abschnitt und in den Ansprüchen dienen nur dazu, Beziehungen zwischen den Anspruchsmerkmalen und den Komponenten in den später beschriebenen Ausführungsbeispielen zu zeigen und sollen den technischen Schutzbereich der vorliegenden Erfindung in keiner Weise beschränken.The numbers in parentheses in the above paragraph and in the claims only serve to indicate relationships between the claim features and the components in the later described to show embodiments and are not intended to limit the technical scope of the present invention in any way.

Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden von der folgenden detaillierten Beschreibung, die mit Bezug auf die begleitenden Zeichnungen gemacht wird, deutlicher werden, in welchen:

  • 1 ein Blockdiagramm einer Informationsmanagementvorrichtung gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung darstellt;
  • 2 Speicherbereiche in einem Flash-Speicher darstellt;
  • 3 Prozesse darstellt, wie ein Zustand einer Zelle detektiert wird;
  • 4 eine Darstellung eines Datenformats zum Speichern von Daten in dem Speicherbereich darstellt;
  • 5 eine Vielzahl von in einer ersten Region gespeicherten Datenstücken darstellt;
  • 6 ein Flussdiagramm eines Schreibprozesses gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung darstellt;
  • 7 ein Flussdiagramm eines Datenschreibprozesses gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung darstellt;
  • 8 Schreibzieldaten, die in den Speicherbereich geschrieben sind, darstellt;
  • 9 das Sichern von Daten basierend auf den hier beschriebenen Prozessen darstellt;
  • 10 Datenungültigerklärung basierend auf den hier beschriebenen Prozessen darstellt;
  • 11 ein Flussdiagramm eines Leseprozesses gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung darstellt;
  • 12 ein Flussdiagramm des Schreibprozesses gemäß dem zweiten Ausführungsbeispiel der vorliegenden Erfindung darstellt;
  • 13 ein Flussdiagramm des Datenschreibprozesses gemäß dem zweiten Ausführungsbeispiel der vorliegenden Erfindung darstellt; und
  • 14 das Bewegen von Daten basierend auf den hier beschriebenen Prozessen darstellt.
Objects, features and advantages of the present invention will become more apparent from the following detailed description made with reference to the accompanying drawings, in which:
  • 1 Fig. 14 is a block diagram of an information management device according to a first embodiment of the present invention;
  • 2 represents storage areas in a flash memory;
  • 3 processes depicts how a state of a cell is detected;
  • 4 Figure 12 illustrates a data format for storing data in the storage area;
  • 5 represents a plurality of pieces of data stored in a first region;
  • 6 Fig. 14 is a flow chart of a writing process according to the first embodiment of the present invention;
  • 7 Fig. 14 is a flowchart of a data writing process according to the first embodiment of the present invention;
  • 8th represents write target data written in the storage area;
  • 9 depicts backing up data based on the processes described herein;
  • 10 represents data invalidation based on the processes described herein;
  • 11 Fig. 12 is a flow chart of a reading process according to the first embodiment of the present invention;
  • 12 Fig. 14 is a flow chart of the writing process according to the second embodiment of the present invention;
  • 13 Fig. 14 is a flowchart of the data writing process according to the second embodiment of the present invention; and
  • 14 depicts moving data based on the processes described herein.

Nachstehend werden Ausführungsbeispiele der vorliegenden Erfindung mit Bezug auf die Zeichnungen beschrieben.Embodiments of the present invention will be described below with reference to the drawings.

[1. Erstes Ausführungsbeispiel][1. First embodiment]

[1-1. Konfiguration][1-1. Configuration]

Eine Informationsmanagementvorrichtung 1 wird mit Bezug auf 1 beschrieben. Die Informationsmanagementvorrichtung 1 ist eine Vorrichtung, welche Daten in einen Flash-Speicher 6 schreiben kann, der als ein Speicher oder Speichermedium agiert, und auch in den Speicher 6 geschriebene Daten löschen kann.An information management device 1 is described with reference to FIG 1 described. The information management device 1 is a device that can write data in a flash memory 6 acting as a memory or storage medium and also delete data written in the memory 6 .

Die Informationsmanagementvorrichtung 1 ist mit einer CPU 2, einem ROM 3, einem RAM 4, einer Flash-Steuerung 5, dem Flash-Speicher 6 und einer Eingabe/Ausgabe (I/O) 7 versehen. Elektrische Energie wird jedem Teil der Informationsmanagementvorrichtung 1 von einer Energiequelle 11 bereitgestellt. Die I/O 7 dient als eine Eingabe-/Ausgabe-Schnittstelle, die als ein Eingabe-Ausgabe-Abschnitt mit einer externen Vorrichtung fungiert.The information management device 1 is provided with a CPU 2, a ROM 3, a RAM 4, a flash controller 5, the flash memory 6, and an input/output (I/O) 7. FIG. Electric power is supplied to each part of the information management device 1 from a power source 11 . The I/O 7 serves as an input/output interface functioning as an input-output section with an external device.

Die CPU 2 führt eine Gesamtsteuerung der Informationsmanagementvorrichtung 1 durch Ausführen einer Flash-Treiber-Software 8 und einer Anwendungssoftware 9 durch, die in dem ROM 3 gespeicherte Programme sein können.The CPU 2 performs overall control of the information management device 1 by executing flash driver software 8 and application software 9 which may be programs stored in the ROM 3 .

Insbesondere steuert die CPU 2 das Lesen und Schreiben von Daten aus und in den Flash-Speicher 6 über die Flash-Steuerung 5 durch Ausführung der Flash-Treiber-Software 8 basierend auf einer Zugriffsanforderung an den Flash-Speicher 6 von der Anwendungssoftware 9.Specifically, the CPU 2 controls reading and writing of data from and to the flash memory 6 via the flash controller 5 by executing the flash driver software 8 based on an access request to the flash memory 6 from the application software 9.

Der RAM 4 ist ein flüchtiger Speicher, der einen von der CPU 2 verwendeten Arbeitsbereich bereitstellt. Der RAM 4 stellt eine Funktion bereit, temporär die aus dem Flash-Speicher 6 gelesenen Daten und die in den Flash-Speicher 6 zu schreibenden Daten zu halten.The RAM 4 is a volatile memory that provides a work area used by the CPU 2 . The RAM 4 provides a function of temporarily holding the data read from the flash memory 6 and the data to be written into the flash memory 6 .

Die Flash-Steuerung 5 führt einen Schreibprozess, einen Leseprozess, einen Löschprozess und Ähnliches durch, um die Daten in den und/oder aus dem Flash-Speicher 6 basierend auf einer Instruktion von der CPU 2 zu schreiben, zu lesen und zu löschen.The flash controller 5 performs a writing process, a reading process, an erasing process, and the like to write, read, and erase the data in and/or from the flash memory 6 based on an instruction from the CPU 2 .

Der Flash-Speicher 6 ist ein nichtflüchtiger Speicher, der einen von der CPU 2 verwendeten Speicherbereich hat. Der Speicherbereich des Flash-Speichers 6 umfasst eine Vielzahl von Blöcken 10, und jeder der Blöcke 10 dient als eine Einheit zum Löschen.The flash memory 6 is a non-volatile memory that has a storage area used by the CPU 2 . The storage area of the flash memory 6 includes a plurality of blocks 10, and each of the blocks 10 serves as a unit for erasing.

Der Flash-Speicher 6 speichert Daten durch Schreiben eines Bitwerts von „0“ oder „1“ in eine Zelle. Wie in 2 gezeigt, werden die Daten in den Speicher 6 in einer Einheit von „Wörtern“ geschrieben, die mehrere Bytes des Speicherbereichs sind.The flash memory 6 stores data by writing a bit value of "0" or "1" into a cell. As in 2 shown, the data in memory 6 is in a unit of "words" written, which are multiple bytes of memory area.

Auf der anderen Seite werden die Daten von dem Flash-Speicher 6, d. h. von dem Speicherbereich, in einer Einheit von Blöcken 10, die größere Einheiten als Wörter sind, gelöscht. Das heißt, der Block 10 kann eine Größe haben, die von mehreren zehn Bytes zu mehreren Kilobytes reicht.On the other hand, the data from the flash memory 6, i. H. deleted from the memory area in a unit of blocks 10 larger units than words. That is, the block 10 can have a size ranging from several tens of bytes to several kilobytes.

Das heißt, das Datenschreiben wird in Einheiten von Wörtern (d. h. Wort für Wort) durchgeführt, und das Datenlöschen wird in Einheiten von Blöcken (d. h. Block für Block) durchgeführt.That is, data writing is performed in units of words (i.e., word by word), and data erasing is performed in units of blocks (i.e., block by block).

Ein Zustand des Speicherbereichs nach dem Löschen von Daten wird als „leer“ bezeichnet, und ein Speicherbereich in einem leeren Zustand wird als ein „leerer Bereich“ bezeichnet.A state of the memory area after deleting data is referred to as “empty”, and a memory area in an empty state is referred to as an “empty area”.

Da die Daten nicht in einen schon beschriebenen Speicherbereich schreibbar sind (d. h. Überschreiben der schon in den Speicherbereich geschriebenen Daten ist nicht erlaubt), werden die Daten in den leeren Bereich geschrieben. In anderen Worten ist der leere Bereich ein Speicherbereich in einem ersten Zustand, oder in einem Vor-Schreib-Zustand, bevor die Daten da reingeschrieben werden. Somit wird, wenn ein Prozess zum Schreiben von Daten in einen leeren Bereich (d. h., in den Speicherbereich in dem ersten Zustand) durchgeführt wird, der Speicherbereich in einen zweiten Zustand umgewandelt, oder in einen Nach-Schreib-Zustand geschaltet, nachdem die Daten da reingeschrieben worden sind.Since the data is not writable in a memory area already written (i.e. overwriting the data already written in the memory area is not allowed), the data is written in the empty area. In other words, the empty area is a storage area in a first state, or in a pre-write state, before the data is written therein. Thus, when a process of writing data to an empty area (i.e., to the memory area in the first state) is performed, the memory area is converted to a second state, or switched to an after-write state, after the data there have been written in.

Insbesondere bleibt der Flash-Speicher 6, nach dem Löschen der Daten, in dem ersten Zustand, d. h. bleibt in einem nicht bestimmbaren Zustand (d. h. „NON-DET“ in 3), in welchem der Bitwert des Speichers weder als „0“ noch als „1“ festgelegt ist, und, nach dem Schreiben von Daten in den in dem ersten Zustand bleibenden Flash-Speicher 6, schaltet der Flash-Speicher 6 in den zweiten Zustand, oder einen bestimmten Zustand, in welchem der Bitwert entweder als „0“ oder „1“ festgelegt ist.In particular, after erasing the data, the flash memory 6 remains in the first state, ie remains in a non-determinable state (ie "NON-DET" in 3 ) in which the bit value of the memory is fixed as neither "0" nor "1", and, after writing data to the flash memory 6 remaining in the first state, the flash memory 6 switches to the second state , or a particular state in which the bit value is fixed as either "0" or "1".

Wie in 3 dargestellt, ist mittels eines „Leer-Prüfung“ genannten Befehls detektierbar, ob ein bestimmter Speicherbereich ein leerer Bereich ist. Die Leer-Prüfung wird für eine Zelle durchgeführt.As in 3 shown, a command called “empty check” can be used to detect whether a specific memory area is an empty area. The empty check is performed for one cell.

Wenn eine Zelle durch die Leer-Prüfung festgestellt wird, in dem ersten Zustand zu sein (d. h. wenn ein Speicherbereich ermittelt wird, ein leerer Bereich zu sein), kann jedweder der Bitwerte „0“ oder „1“ ausgelesen werden, aber ein tatsächlich Ausgelesener von den zwei Bitwerten „0“ oder „1“ ist nicht feststellbar.If a cell is determined by the empty check to be in the first state (i.e. if a memory area is determined to be an empty area), any of the bit values "0" or "1" can be read, but an actually read one from the two bit values "0" or "1" cannot be determined.

Wenn eine Zelle durch die Leer-Prüfung ermittelt wird, in dem zweiten Zustand zu sein (d. h. wenn ein Speicherbereich nicht als ein leerer Bereich ermittelt wird: „NICHT LEER“ in 3), kann ein Bitwert von entweder „0“ oder „1“ daraus ausgelesen werden.If a cell is determined by the empty check to be in the second state (i.e. if a memory area is determined not to be an empty area: "NOT EMPTY" in 3 ), a bit value of either "0" or "1" can be read from it.

[1-2. Schreibprozess][1-2. writing process]

Das Format der in dem Speicherbereich des Flash-Speichers 6 gespeicherten Daten wird mit Bezug auf 4 beschrieben. Die in dem Speicherbereich gespeicherten Daten sind in einer geordneten Kombination eines Kopfteils 12, eines Managementteils 13 und eines Datenteils 14 organisiert, wobei eine Kombination davon (d. h. der drei Teile 12 bis 14) als eine Einheit zum Datenspeichern dient. Die Einheit einer solchen Kombination der oben beschriebenen Teile kann auch als eine Kombinationseinheit 15 bezeichnet werden. Das heißt, die Kombinationseinheit 15 dient als eine Einheit zum Datenspeichern und eine Vielzahl von Datenstücken werden in dem Speicherbereich als aufeinanderfolgende Kombinationseinheiten 15 gespeichert, die in den Speicherbereich angefangen von dem Kopf des Speicherbereichs geschrieben werden.The format of the data stored in the storage area of the flash memory 6 will be described with reference to FIG 4 described. The data stored in the storage area is organized in an ordered combination of a header 12, a management part 13 and a data part 14, a combination of which (ie the three parts 12 to 14) serves as a unit for data storage. The unit of such a combination of the parts described above can also be referred to as a combination unit 15. That is, the combination unit 15 serves as a unit for storing data, and a plurality of pieces of data are stored in the storage area as consecutive combination units 15 written in the storage area starting from the head of the storage area.

Wie in 5 gezeigt, speichert zum Beispiel eine erste Region 200, welche ein spezifischer Block 10 unter den Speicherbereichen des Flash-Speichers 6 ist, eine Vielzahl von Datenstücken als mehrere Kombinationseinheiten 15. Beachte, dass, in den Zeichnungen, der Kopfteil 12 als „S“ bezeichnet sein kann, ein im Folgenden beschriebenes Flag als „F“ bezeichnet sein kann und ein ebenfalls im Folgenden beschriebener Identifizierer als „ID“ bezeichnet sein kann.As in 5 1, for example, a first region 200, which is a specific block 10 among the storage areas of the flash memory 6, stores a plurality of pieces of data as a plurality of combination units 15. Note that, in the drawings, the header 12 is denoted as "S". can be, a flag described below can be referred to as “F” and an identifier also described below can be referred to as “ID”.

Die durch den Datenteil 14 gespeicherten Daten können (i) den Identifizierer zum Identifizieren von einem der Vielzahl von Datentypen und (ii) einen Datenwert, der einen Wert der Daten des spezifizierten Identifizierers repräsentiert, umfassen.The data stored by the data portion 14 may include (i) the identifier for identifying one of the plurality of data types, and (ii) a data value representing a value of the data of the specified identifier.

Der Identifizierer kann an einem/einen Kopf des Datenteils 14 gespeichert/geschrieben sein und kann einen Namen einer Variabel spezifizieren.The identifier may be stored/written at a head of the data part 14 and may specify a name of a variable.

Der Datenwert kann ein Wert der Variabel sein.The data value can be a value of the variable.

Die Datenlänge des Identifizierers und die Datenlänge des Datenwerts kann jeweils eine beliebige Länge sein. Das heißt, sowohl der Identifizierer als auch der Datenwert können irgendeine Datenlänge haben.Each of the data length of the identifier and the data length of the data value can be an arbitrary length. That is, both the identifier and the data value can have any data length.

Der Kopfteil 12 ist ein Kopf der Einheitskombination 15, welcher als ein „Header“ dient und eine Ein-Wort-Länge hat. Dieser Bereich ist immer in dem ersten Zustand, d. h. ein leerer Bereich.The header 12 is a header of the unit combination 15, which serves as a "header" and a is one word in length. This area is always in the first state, ie an empty area.

Da zwei oder mehr Datenstücke gespeichert werden, indem zwei oder mehr Kombinationseinheiten 15 fortlaufend, d. h. in Reihe, gespeichert werden, ist ein Ort der gespeicherten Daten durch jeden der Kopfteile 12 identifiziert.Since two or more pieces of data are stored by using two or more combination units 15 consecutively, i. H. in series, a location of the stored data is identified by each of the headers 12 .

Der Managementteil 13 ist ein Bereich zum Speichern eines Flags, das zeigt, ob die von dem Datenteil 14 gespeicherten Daten gültig oder ungültig sind, und der Managementteil 13 hat eine Ein-Wort-Länge.The management part 13 is an area for storing a flag showing whether the data stored by the data part 14 is valid or invalid, and the management part 13 has a one-word length.

Wenn der Managementteil 13 ein leerer Bereich ist, d. h. in dem ersten Zustand ist, zeigt das Flag in dem Managementteil 13, dass die Daten gültig sind. Wenn der Managementteil 13 in dem zweiten Zustand ist, zeigt das Flag in dem Managementteil 13, dass die Daten ungültig sind. In der folgenden Beschreibung können Daten, die gültig sind, einfach als „gültige Daten“ bezeichnet sein, und Daten, die ungültig sind, können einfach als „ungültige Daten“ bezeichnet sein.If the management part 13 is an empty area, i. H. is in the first state, the flag in the management part 13 shows that the data is valid. When the management part 13 is in the second state, the flag in the management part 13 shows that the data is invalid. In the following description, data that is valid may be simply referred to as “valid data”, and data that is invalid may be simply referred to as “invalid data”.

Wenn die Daten gültig sind, ist der Datenwert der gültigen Daten der Neueste unter den Datenwerten, die den gleichen Identifizierer haben. Wenn die Daten ungültig sind, ist der Datenwert der ungültigen Daten nicht der neueste Wert unter den Datenwerten, die den gleichen Identifizierer haben.If the data is valid, the data value of the valid data is the newest among the data values having the same identifier. When the data is invalid, the data value of the invalid data is not the newest value among the data values having the same identifier.

Das heißt, selbst wenn es viele Datenwerte gibt, die den gleichen Identifizierer haben, hat grundsätzlich nur ein Datenwert das Flag, welches zeigt, dass der Datenwert gültig ist. Ferner werden durch Umschalten der Daten, entweder einen gültigen/ungültigen Zustand zu haben, d. h. durch Wechseln/Schalten des Flags entweder in den ersten Zustand oder in den zweiten Zustand, die Daten, die einen spezifischen Identifizierer haben, aktualisiert.That is, even if there are many data values having the same identifier, basically only one data value has the flag showing that the data value is valid. Furthermore, by toggling the data to have either a valid/invalid state, i. H. by changing/switching the flag to either the first state or the second state, updating data having a specific identifier.

Als Nächstes wird der Schreibprozess, der Daten in die erste Region 200 des Speicherbereichs des Flash-Speichers 6 schreibt, mit Bezug auf 6 beschrieben.Next, the writing process that writes data in the first region 200 of the storage area of the flash memory 6 will be described with reference to FIG 6 described.

Der Schreibprozess wird gestartet, wenn die CPU 2 eine Schreibaufforderung zum Schreiben von Schreibzieldaten (d. h. zu schreibenden Daten) empfängt.The writing process is started when the CPU 2 receives a write request for writing write target data (i.e., data to be written).

In Schritt 21 (d. h. S21) führt die CPU 2 einen Prozess, d. h. eine Leer-Prüfung, ausgehend von dem Kopf der ersten Region 200 durch und detektiert einen leeren Bereich. Wenn ein leerer Bereich, der eine Ein-Wort-Länge hat, detektiert wird, schreitet der Prozess zu Schritt 22 fort.In step S21 (i.e., S21), the CPU 2 executes a process, i.e., H. performs an empty check starting from the head of the first region 200 and detects an empty area. If an empty area having a one-word length is detected, the process proceeds to step 22.

In Schritt 22 führt die CPU 2 einen Prozess durch, der ermittelt, ob der in Schritt 21 detektierte Bereich die Daten hat. Das heißt, insbesondere ermittelt, ob der in Schritt 21 detektierte Bereich als der Kopfteil 12 einer Kombinationseinheit 15 dient, die irgendwelche Daten in dem Datenteil 14 hat. In anderen Worten erachtet die CPU 2 den detektierten Ein-Wort-Bereich als einen ersten Bereich einer Kombinationseinheit 15 und erachtet den nächsten (d. h. den zweiten) Ein-Wort-Bereich als den Managementteil 13 und erachtet den nächsten (d. h. den dritten) Ein-Wort-Bereich als den Kopf des Datenteils 14, um zu ermitteln, ob es irgendwelche Daten in dieser Kombinationseinheit 15 gibt.In step 22, the CPU 2 performs a process that determines whether the area detected in step 21 has the data. That is, specifically, determines whether the area detected in step 21 serves as the header 12 of a combination unit 15 having any data in the data part 14 . In other words, the CPU 2 regards the detected one-word area as a first area of a combination unit 15, and regards the next (i.e., the second) one-word area as the management part 13, and considers the next (i.e., the third) one-word area word area as the head of the data part 14 to determine whether there is any data in this combination unit 15.

Insbesondere führt die CPU 2 eine Leer-Prüfung für den dritten Ein-Wort-Bereich durch. Da die Daten schon in den Kopf des Datenteils 14 geschrieben sind, wenn der dritte Ein-Wort-Bereich in dem zweiten Zustand ist, stellt die CPU 2 fest, dass eine Kombinationseinheit 15, welche den in Schritt 21 detektierten Bereich als den Kopfteil 12 hat, die Daten hat.Specifically, the CPU 2 performs an empty check for the third one-word area. Since the data is already written in the head of the data part 14 when the third one-word area is in the second state, the CPU 2 determines that a combination unit 15 having the area detected in step 21 as the head part 12 , which has data.

Da das Schreiben in den Kopf des Datenteils 14 noch nicht durchgeführt worden ist, wenn der dritte Ein-Wort-Bereich in dem ersten Zustand, d. h. ein leerer Bereich, ist, stellt die CPU 2 fest, dass eine Kombinationseinheit 15, welche den in Schritt 21 detektierten Bereich als den Kopfteil 12 hat, in solch einem Fall nicht irgendwelche Daten hat, das heißt, wenn der dritte Ein-Wort-Bereich in dem ersten Zustand ist.Since the writing to the head of the data part 14 has not yet been performed when the third one-word area is in the first state, i. H. is an empty area, the CPU 2 determines that a combining unit 15 having the area detected in step 21 as the header 12 does not have any data in such a case, that is, when the third one-word area is in the first state.

Eine Kombinationseinheit 15, die den in Schritt 21 detektierten leeren Bereich als den Kopfteil 12 hat, hat keine Daten, was bedeutet, dass ein „beschreibbarer“ leerer Bereich gefunden worden ist. In anderen Worten ist die Kombinationseinheit 15 die letzte Kombinationseinheit 15 an einem Ende von aufeinanderfolgenden Speicherungen der Kombinationseinheiten 15 (d. h., an einem Ende einer Reihe von Kombinationseinheiten 15), die ausgehend von dem Kopf der ersten Region 200 geschrieben worden sind.A combination unit 15 having the blank area detected in step 21 as the header 12 has no data, which means that a "writable" blank area has been found. In other words, the combining unit 15 is the last combining unit 15 at an end of consecutive storing of combining units 15 (i.e., at an end of a series of combining units 15) written from the head of the first region 200.

Wenn eine bejahende Ermittlung in Schritt 22 gemacht worden ist, schreitet der Prozess zu Schritt 23 fort.If an affirmative determination is made in step 22, the process proceeds to step 23.

In Schritt 23 führt die CPU 2 einen Prozess durch, der ermittelt, ob die als existierend in Schritt 22 ermittelten Daten gültige Daten sind.In step 23, the CPU 2 performs a process of determining whether the data determined to exist in step 22 is valid data.

Insbesondere führt die CPU 2 einen Prozess durch, der ermittelt, ob die in Schritt 22 festgestellten Daten gültige Daten sind, indem sie eine Leer-Prüfung für den zweiten Ein-Wort-Bereich vor dem dritten Ein-Wort-Bereich, der in Schritt 22 verarbeitet worden ist, durchführt.Specifically, the CPU 2 performs a process that determines whether the data detected in step 22 is valid data by performing an empty check for the second one-word area before the third one-word area identified in step 22 has been processed.

Wenn der zweite Ein-Wort-Bereich, d. h. das Flag, festgestellt wird, in dem ersten Zustand zu sein, stellt die CPU 2 fest, dass die als existierend in Schritt 22 ermittelten Daten gültige Daten sind.When the second one-word area, ie, the flag, is determined to be in the first state, the CPU 2 determines that the data determined to exist in step 22 is valid data.

Wenn auf der anderen Seite der zweite Ein-Wort-Bereich, d. h. das Flag, ermittelt wird, in dem zweiten Zustand zu sein, stellt die CPU 2 fest, dass die als existierend in Schritt 22 ermittelten Daten ungültige Daten sind.On the other hand, if the second one-word area, i. H. the flag is determined to be in the second state, the CPU 2 determines that the data determined to exist in step 22 is invalid data.

Wenn eine negative Feststellung in Schritt 23 gemacht wird, kehrt der Prozess zu Schritt 21 zurück.If a negative determination is made in step 23, the process returns to step 21.

In Schritt 21 führt die CPU 2 einen Prozess durch, der einen leeren Bereich detektiert, welcher als der Kopfteil 12 der nächsten Kombinationseinheit 15 dient, die als nächste auf die Kombinationseinheit 15 folgt, die den im vorherigen Schritt 21 detektierten Kopfteil 12 hat.In step 21, the CPU 2 performs a process that detects an empty area serving as the header 12 of the next combining unit 15 next following the combining unit 15 having the header 12 detected in the previous step 21.

Wenn eine bejahende Feststellung in Schritt 23 gemacht wird, schreitet der Prozess zu Schritt 24 fort.If an affirmative determination is made in step 23, the process proceeds to step 24.

Im Schritt 24 führt die CPU 2 einen Prozess durch, der feststellt, ob der Identifizierer der Kombinationseinheit 15, die in Schritt 23 ermittelt worden ist, die gültigen Daten zu haben, der gleiche Identifizierer wie der Identifizierer der Schreibzieldaten ist.In step 24, the CPU 2 performs a process that determines whether the identifier of the combining unit 15 determined in step 23 to have the valid data is the same identifier as the identifier of the write target data.

Insbesondere führt die CPU 2 einen Prozess durch, der den Identifizierer basierend auf dem in den Bereich nach dem dritten Ein-Wort-Bereich, nächstfolgend auf den in Schritt 23 verarbeiteten zweiten Ein-Wort-Bereich, geschriebenen Bitwert erm ittelt.Specifically, the CPU 2 performs a process that obtains the identifier based on the bit value written in the area after the third one-word area next to the second one-word area processed in step 23 .

Wenn eine negative Feststellung in Schritt 24 gemacht wird, kehrt der Prozess zu Schritt 21 zurück.If a negative determination is made in step 24, the process returns to step 21.

In Schritt 21 führt die CPU 2, genau wie bei dem negativen Feststellungsvorgang in Schritt 23, einen Prozess durch, der einen leeren Bereich detektiert, der als der Kopfteil 12 der nächsten Kombinationseinheit 15 dient, die auf die in dem vorherigen Schritt 21 detektierte Kombinationseinheit 15 als Nächstes folgt.In step 21, just like the negative determination process in step 23, the CPU 2 performs a process that detects a vacant area serving as the header 12 of the next combination unit 15 which follows the combination unit 15 detected in the previous step 21 next follows.

Wenn eine bejahende Feststellung in Schritt 24 gemacht wird, schreitet der Prozess zu Schritt 25 fort.If an affirmative determination is made in step 24, the process proceeds to step 25.

In Schritt 25 führt die CPU 2 einen Datenschreibprozess durch.In step 25, the CPU 2 performs a data writing process.

Der konkrete Inhalt des Datenschreibprozesses wird mit Bezug auf 7 beschrieben.The concrete content of the data writing process will be described with reference to 7 described.

In Schritt 31 (d. h. S31) führt die CPU 2 einen Prozess durch, der ermittelt, ob es irgendeinen beschreibbaren Bereich, d. h. den leeren Bereich, gibt, in welchen die Schreibzieldaten von der Kombinationseinheit 15 schreibbar sind.In step S31 (i.e., S31), the CPU 2 performs a process that determines whether there is any writable area, i.e., H. the vacant area, into which the write target data from the combination unit 15 is writable.

Wenn eine bejahende Feststellung in Schritt 31 gemacht wird, schreitet der Prozess zu Schritt 32 fort.If an affirmative determination is made in step 31, the process proceeds to step 32.

In Schritt 32 führt die CPU 2 den Datenschreibprozess durch, der die Schreibzieldaten, d. h. den Identifizierer und den Datenwert, in die leeren Bereiche beginnend an dem dritten Ein-Wort-Bereich des leeren Bereichs schreibt. Das heißt, indem die zwei leeren Bereiche nach der letzten Kombinationseinheit 15 an einem Ende von einer Reihe von aufeinanderfolgenden Kombinationseinheit-15-Speicherungen beginnend von dem Kopf der ersten Region 200 unbeschrieben gelassen beibehalten werden, beginnt das Schreiben der Schreibzieldaten in dem dritten Ein-Wort-Bereich, in Richtung auf die nachfolgenden leeren Bereiche.In step 32, the CPU 2 performs the data writing process which writes the write target data, i. H. writes the identifier and the data value into the empty areas starting at the third one-word area of the empty area. That is, by keeping the two blank areas left unwritten after the last combination unit 15 at one end of a series of consecutive combination unit 15 stores starting from the head of the first region 200, writing of the write target data begins in the third one-word -area, towards the following blank areas.

Die Situation kann klarer mit Bezug auf 8 verstanden werden, welche einen Zustand der ersten Region 200 zeigt, nachdem der Prozess von Schritt 32 für die in 5 gezeigte erste Region 200 durchgeführt worden ist.The situation can be clearer with reference to 8th be understood, which shows a state of the first region 200 after the process of step 32 for the in 5 shown first region 200 has been performed.

Wie in 8 gezeigt, schreibt die CPU 2 die Schreibzieldaten, indem der Kopfteil 12 und der Managementteil 13 in leere Bereiche 51 und 52, d. h. in einen Zwei-Wortlängen-Bereich, geschrieben werden und indem der Datenteil 14 in einen Bereich 53 geschrieben wird, der in dem dritten Ein-Wort-Bereich beginnt und sich dahinter erstreckt, wobei alle davon eine Kombinationseinheit 15 eines Datenschreibens bilden.As in 8th shown, the CPU 2 writes the write target data by writing the header part 12 and the management part 13 in empty areas 51 and 52, that is, in a two-word-length area, and by writing the data part 14 in an area 53 that is in the third one-word area and extends thereafter, all of which constitute a combination unit 15 of data writing.

Da der Managementteil 13 der geschriebenen Kombinationseinheit 15 der leere Bereich 52 ist, werden die Schreibzieldaten als gültige Daten geschrieben. Ferner wird, indem die Schreibzieldaten als eine Kombinationseinheit 15 an eine Position unmittelbar nach der in der ersten Region 200 gespeicherten letzten Kombinationseinheit 15 geschrieben werden, die Vielzahl von Kombinationseinheiten 15 als aufeinanderfolgende Kombinationseinheiten 15 gespeichert.Since the management part 13 of the written combination unit 15 is the vacant area 52, the write target data is written as valid data. Further, by writing the write target data as one combination unit 15 to a position immediately after the last combination unit 15 stored in the first region 200, the plurality of combination units 15 are stored as consecutive combination units 15.

Nach Schritt 32 beendet die CPU 2 den Datenschreibprozess, und der Prozess schreitet zu Schritt 26 fort.After step 32, the CPU 2 ends the data writing process, and the process proceeds to step 26.

Wenn jedoch eine negative Feststellung in Schritt 31 gemacht wird, schreitet der Prozess zu Schritt 33 fort.However, if a negative determination is made in step 31, the process proceeds to step 33.

In Schritt 33 führt die CPU 2 einen Prozess durch, der die durch den Datenteil 14 gespeicherten gültigen Daten in dem RAM 4 sichert. Ein Beispiel eines Sicherns von gültigen Daten ist in 9 (A) bis (C) gezeigt.In step 33, the CPU 2 performs a process that saves the valid data stored by the data part 14 in the RAM 4. FIG. An example of saving valid data is in 9 (A) to (C) shown.

Wie in 9 (A) gezeigt, sichern, wenn es keinen beschreibbaren Bereich gibt, in welchen die Schreibzieldaten in der ersten Region 200 geschrieben werden können, Kombinationseinheiten 61, 62, 63, die jeweils ein Flag in dem ersten Zustand haben, ihre gültigen Daten in dem Datenteil 14 in dem RAM 4, wie durch einen Pfeil A1 gezeigt.As in 9 (A) shown, when there is no writable area to which the write target data can be written in the first region 200, combining units 61, 62, 63 each having a flag in the first state save their valid data in the data part 14 in the RAM 4 as shown by an arrow A1.

In Schritt 34 führt die CPU 2 einen Prozess durch, der die in der ersten Region 200 gespeicherten Daten löscht, die schon in Schritt 33 gesichert worden sind. Wie in 9 (B) gezeigt, wandelt sich der Bereich nach dem Löschen in einen leeren Bereich um, der in dem ersten Zustand ist.In step 34, the CPU 2 performs a process that deletes the data stored in the first region 200 that has already been saved in step 33. As in 9 (B) shown, after erasing, the area turns into an empty area that is in the first state.

In Schritt 35, der auf Schritt 34 folgt, führt die CPU 2 einen Prozess durch, der die in Schritt 33 gesicherten gültigen Daten in die/der erste/n Region 200, an welcher das Löschen der Daten in Schritt 34 durchgeführt worden ist, zurückbringt/wiederherstellt. Zum Beispiel wird ein durch einen Pfeil A2 in 9 (A)/(B) gezeigter Prozess durchgeführt.In step 35 following step 34, the CPU 2 performs a process that returns the valid data saved in step 33 to the first region 200 on which the deletion of the data in step 34 has been performed /restored. For example, an A2 in 9 (A) /(B) shown process performed.

In Schritt 36 schreibt die CPU 2 die Schreibzieldaten, d. h. den Identifizierer und den Datenwert, beginnend bei dem dritten Ein-Wort-Bereich in die leeren Bereiche, indem sie die zwei leeren Bereiche nach der letzten Kombinationseinheit 15 an einem Ende einer sukzessiven Speicherung der Kombinationseinheiten 15 in Reihe beginnend von dem Kopf der ersten Region 200 unbeschrieben gelassen beibehält. Das heißt, wie in 9 (C) gezeigt, werden die Schreibzieldaten als eine Kombinationseinheit 66 in dem leeren Bereich gespeichert.In step 36, the CPU 2 writes the write target data, ie, the identifier and the data value, into the vacant areas starting from the third one-word area by locating the two vacant areas after the last combination unit 15 at an end of successive storage of the combination units 15 in series starting from the head of the first region 200 left unwritten. That is, as in 9 (c) 1, the write target data is stored as a combination unit 66 in the vacant area.

Nach Schritt 36 beendet die CPU 2 den Datenschreibprozess, und der Prozess schreitet zu Schritt 26 fort.After step 36, the CPU 2 ends the data writing process, and the process proceeds to step 26.

In Schritt 26 wird ein Ungültigerklärungsprozess durchgeführt, der die Daten der Kombinationseinheit 15, die den gleichen Identifizierer hat, wie in Schritt 24 bestätigend festgestellt worden ist, ungültig erklärt. Ein Beispiel von Schritt 26 ist in 10 gezeigt.In step 26, an invalidation process is performed which invalidates the data of the combination unit 15 having the same identifier as has been affirmatively determined in step 24. An example of step 26 is in 10 shown.

10 ist eine Darstellung einer Situation nach einem Durchführen eines Prozesses von Schritt 26 in der in 8 gezeigten ersten Region 200. Wie in 10 gezeigt, führt die CPU 2 einen Ungültigerklärungsprozess durch, der die Daten für ungültig erklärt, indem er in einen Flag-Bereich 54 einer Kombinationseinheit 15, die den gleichen Identifizierer wie die Schreibzieldaten hat, schreibt („ERKLÄRE DATEN GLEICHER ID UNGÜLTIG“ in S26 von 6). Auf solche Weise werden die neuesten Daten in alte Daten umgewandelt zu einer Zeit unmittelbar nach dem Schreiben. 10 Fig. 12 is an illustration of a situation after performing a process of step 26 in Fig 8th shown first region 200. As in 10 1, the CPU 2 performs an invalidation process that invalidates the data by writing to a flag area 54 of a combination unit 15 having the same identifier as the write target data ("INVALID DATA OF SAME ID" in S26 of 6 ). In such a manner, the newest data is converted into old data at a time immediately after writing.

Somit werden die Schreibzieldaten als die neuesten Daten von dem Prozess in Schritt 25 und von dem Prozess in Schritt 26 geschrieben, und die Daten der Kombinationseinheit 15, welche den gleichen Identifizierer wie die Schreibzieldaten haben, werden in alte Daten umgewandelt, und dadurch wird eine Aktualisierung der Daten abgeschlossen. Die CPU 2 beendet den Schreibprozess nach Schritt 26.Thus, the write target data is written as the newest data by the process in step 25 and by the process in step 26, and the data of the combining unit 15 having the same identifier as the write target data is converted into old data, and thereby an update is performed of data completed. The CPU 2 ends the writing process after step 26.

Wenn eine negative Feststellung in Schritt 22 gemacht wird, schreitet der Prozess zu Schritt 27 fort.If a negative determination is made in step 22, the process proceeds to step 27.

In Schritt 27 führt die CPU 2 den Datenschreibprozess genau wie in Schritt 25 durch. Das heißt, ein Prozess von Schritt 32 oder ein Prozess der Schritte 33-36 wird durchgeführt. Nach Schritt 32 oder Schritt 36 beendet die CPU 2 den Datenschreibprozess und beendet den Schreibprozess.In step 27, the CPU 2 performs the data writing process just as in step 25. That is, a process of step 32 or a process of steps 33-36 is performed. After step 32 or step 36, the CPU 2 ends the data writing process and ends the writing process.

[1-3. Leseprozess][1-3. reading process]

Der Leseprozess, der die in der ersten Region 200 des Speicherbereichs des Flash-Speichers 6 gespeicherten Daten liest, wird mit Bezug auf 11 beschrieben.The reading process that reads the data stored in the first region 200 of the storage area of the flash memory 6 is described with reference to FIG 11 described.

Der Leseprozess wird gestartet, wenn die CPU 2 eine Leseaufforderung empfängt, Lesezieldaten (d. h. zu lesende Daten) zu lesen.The read process is started when the CPU 2 receives a read request to read read target data (i.e., data to be read).

In Schritt 71 (d. h. S71) führt die CPU 2 einen Prozess, d. h. eine Leer-Prüfung, beginnend von dem Kopf der ersten Region 200 durch und detektiert einen leeren Bereich. Wenn ein leerer Bereich, der eine Ein-Wort-Länge hat, detektiert wird, schreitet der Prozess zu Schritt 72 fort.In step 71 (i.e., S71), the CPU 2 executes a process, i.e., H. performs an empty check starting from the head of the first region 200 and detects an empty area. If an empty area that is one word in length is detected, the process proceeds to step 72 .

In Schritt 72 führt die CPU 2 einen Prozess durch, der feststellt, ob der in Schritt 71 detektierte Bereich die Daten hat. Das heißt, es wird insbesondere ermittelt, ob der in Schritt 71 detektierte Ein-Wort-Bereich als der Kopfteil 12 einer Kombinationseinheit 15 dient. Dies kann auch als eine Situation verstanden werden, in welcher die CPU 2 den detektierten Ein-Wort-Bereich als einen ersten Bereich in einer Kombinationseinheit 15 erachtet und den nächsten (d. h. den zweiten) Ein-Wort-Bereich als den Managementteil 13 erachtet und den noch nächsten (d. h. den dritten) Ein-Wort-Bereich als den Kopf des Datenteils 14 erachtet, um zu ermitteln, ob es irgendwelche Daten in dieser Kombinationseinheit 15 gibt.In step 72, the CPU 2 performs a process of judging whether the area detected in step 71 has the data. That is, it is specifically determined whether the one-word area detected in step 71 serves as the header 12 of a combination unit 15 . This can also be understood as a situation in which the CPU 2 regards the detected one-word area as a first area in a combining unit 15 and considers the next (i.e. the second) one-word area as the management part 13 and the next (i.e., the third) one-word area is considered the head of the data part 14 to determine whether there is any data in this combination unit 15.

Insbesondere führt die CPU 2 eine Leer-Prüfung an dem dritten Ein-Wort-Bereich durch. Wenn der dritte Ein-Wort-Bereich in dem zweiten Zustand ist, stellt die CPU 2 fest, dass eine Kombinationseinheit 15, die den in Schritt 71 detektierten Bereich als den Kopfteil 12 hat, die Daten hat.Specifically, the CPU 2 performs an empty check on the third one-word area. When the third one-word area is in the second state, the CPU 2 determines that a combining unit 15 having the area detected in step 71 as the header 12 has the data.

Wenn auf der anderen Seite der dritte Ein-Wort-Bereich in dem ersten Zustand ist, d. h. ein leerer Bereich ist, stellt die CPU 2 fest, dass eine Kombinationseinheit 15, welche als den Kopfteil 12 den in Schritt 71 detektierten Bereich hat, keine Daten hat.On the other hand, when the third one-word area is in the first state, i. H. is an empty area, the CPU 2 determines that a combination unit 15 having as the header 12 the area detected in step 71 has no data.

Beachte, dass, wenn eine Kombinationseinheit 15, die den in Schritt 71 detektierten leeren Bereich als den Kopfteil 12 hat, keine Daten hat, das bedeutet, dass ein „beschreibbarer“ leerer Bereich gefunden worden ist, das heißt, dass die ermittelte Kombinationseinheit 15 die letzte Kombinationseinheit 15 an einem Ende einer sukzessiven Speicherung der Kombinationseinheiten 15 geschrieben beginnend von dem Kopf der ersten Region 200 ist.Note that if a combination unit 15 that has the blank area detected in step 71 as the header 12 has no data, it means that a "writable" blank area has been found, i.e. that the detected combination unit 15 has the last combination unit 15 is written at an end of a successive storage of the combination units 15 starting from the head of the first region 200.

Wenn eine bejahende Feststellung in Schritt 72 gemacht wird, schreitet der Prozess zu Schritt 73 fort.If an affirmative determination is made in step 72, the process proceeds to step 73.

In Schritt 73 führt die CPU 2 einen Prozess durch, der ermittelt, ob die als existierend in Schritt 72 ermittelten Daten gültige Daten sind.In step 73, the CPU 2 performs a process of determining whether the data determined to exist in step 72 is valid data.

Insbesondere führt die CPU 2 einen Prozess durch, der ermittelt, ob die in Schritt 72 ermittelten Daten gültige Daten sind, indem sie eine Leer-Prüfung an dem zweiten Ein-Wort-Bereich vor dem dritten Ein-Wort-Bereich, der in Schritt 72 verarbeitet worden ist, durchführt.Specifically, the CPU 2 performs a process that determines whether the data determined in step 72 is valid data by performing an empty check on the second one-word area before the third one-word area obtained in step 72 has been processed.

Wenn der zweite Ein-Wort-Bereich, d. h. das Flag, in dem ersten Zustand ist, stellt die CPU 2 fest, dass die in Schritt 72 ermittelten Daten gültige Daten sind.If the second one-word area, i. H. the flag is in the first state, the CPU 2 determines that the data obtained in step 72 is valid data.

Wenn auf der anderen Seite der zweite Ein-Wort-Bereich, d. h. das Flag, in dem zweiten Zustand ist, stellt die CPU 2 fest, dass die in Schritt 72 ermittelten Daten ungültige Daten sind.On the other hand, if the second one-word area, i. H. the flag is in the second state, the CPU 2 determines that the data obtained in step 72 is invalid data.

Wenn eine negative Feststellung in Schritt 73 gemacht wird, kehrt der Prozess zu Schritt 71 zurück.If a negative determination is made in step 73, the process returns to step 71.

In Schritt 71 führt die CPU 2 einen Prozess durch, der einen leeren Bereich detektiert, welcher als der Kopfteil 12 der nächsten Kombinationseinheit 15 dient, die als Nächstes auf die Kombinationseinheit 15 folgt, die den im vorherigen Schritt 71 detektierten Kopfteil 12 hat.In step 71, the CPU 2 performs a process that detects an empty area serving as the header 12 of the next combining unit 15 next following the combining unit 15 having the header 12 detected in the previous step 71.

Wenn eine bejahende Feststellung in Schritt 73 gemacht wird, schreitet der Prozess zu Schritt 74 fort.If an affirmative determination is made in step 73, the process proceeds to step 74.

In Schritt 74 führt die CPU 2 einen Prozess durch, der ermittelt, ob der Identifizierer einer Kombinationseinheit 15, die die in Schritt 73 ermittelten gültigen Daten hat, ein Identifizierer der Lesezieldaten ist.In step 74, the CPU 2 performs a process of determining whether the identifier of a combination unit 15 having the valid data determined in step 73 is an identifier of the read target data.

Insbesondere führt die CPU 2 einen Prozess durch, der basierend auf den Bitwerten, die in den dritten und nachfolgende Ein-Wort-Bereiche, das heißt, in den Bereich nach dem zweiten Ein-Wort-Bereich, der in Schritt 73 verarbeitet worden ist, geschrieben sind, ermittelt, ob der Identifizierer derjenige für die Lesezieldaten ist.Specifically, the CPU 2 performs a process which, based on the bit values stored in the third and subsequent one-word areas, i.e., in the area after the second one-word area processed in step 73, are written, determines whether the identifier is that for the read target data.

Wenn eine negative Feststellung in Schritt 74 gemacht wird, kehrt der Prozess zu Schritt 71 zurück.If a negative determination is made in step 74, the process returns to step 71.

In Schritt 71, welcher ähnlich zu einer negativen Feststellung in Schritt 73 ist, führt die CPU 2 einen Prozess durch, der einen leeren Bereich detektiert, der als der Kopfteil 12 der nächsten Kombinationseinheit 15 dient, die als Nächstes auf die Kombinationseinheit 15 folgt, welche den im vorherigen Schritt 71 detektierten Kopfteil 12 hat.In step 71, which is similar to a negative determination in step 73, the CPU 2 performs a process that detects a blank area serving as the header 12 of the next combining unit 15 next following the combining unit 15 which has the header 12 detected in the previous step 71.

Wenn eine bejahende Feststellung in Schritt 74 gemacht wird, schreitet der Prozess zu Schritt 75 fort.If an affirmative determination is made in step 74, the process proceeds to step 75.

In Schritt 75 führt die CPU 2 einen Prozess durch, der die in dem Datenteil 14 der Kombinationseinheit 15, welche den Identifizierer hat, der in Schritt 74 als der Identifizierer der Lesezieldaten ermittelt worden ist, gespeicherten Daten liest.In step 75, the CPU 2 performs a process that reads the data stored in the data part 14 of the combining unit 15 having the identifier determined in step 74 as the identifier of the read target data.

Die CPU 2 beendet den Leseprozess nach Schritt 75.The CPU 2 ends the reading process after step 75.

Wenn eine negative Feststellung in Schritt 72 gemacht wird, stellt die CPU 2 fest, dass es keine Lesezieldaten gibt, und beendet den Leseprozess.If a negative determination is made in step 72, the CPU 2 determines that there is no read target data and ends the read process.

[1-4. Wirkungen][1-4. effects]

Basierend auf dem im Detail oben beschriebenen ersten Ausführungsbeispiel können die folgenden Wirkungen verwirklicht werden.Based on the first embodiment described in detail above, the following effects can be realized.

(1a) Die CPU 2 des ersten Ausführungsbeispiels führt einen Prozess durch, welcher Daten so in den Speicherbereich schreibt, dass die Vielzahl von Kombinationseinheiten 15 aufeinanderfolgend beginnend von dem Kopf der ersten Region 200 gespeichert werden. Das heißt, die CPU 2 führt einen Prozess durch, der eine Vielzahl von Datenstücken eines nach dem anderen in den Speicherbereich mittels Teilen des Speicherbereichs in Abschnitte (d. h. in eine Vielzahl von Speicherbereiche) unter Verwendung des leeren Bereichs schreibt.(1a) The CPU 2 of the first embodiment performs a process which writes data into the storage area so that the plurality of combination units 15 are stored sequentially starting from the head of the first region 200. That is, the CPU 2 performs a process which writes a plurality of pieces of data into the storage areas one by one writes richly by dividing the memory area into sections (ie, into a plurality of memory areas) using the empty area.

Deshalb ist der Nachteil, viele nicht verwendete Bereiche in dem Speicherbereich zu haben, die von der Datenlänge abhängen, was durch eine Speicherbereich-Vor-(Auf-)Teilungs-Maßnahme und eine Informationsmanagementvorrichtung, die eine solche Maßnahme implementiert, verursacht wird, überwunden. Das heißt, die Informationsmanagementvorrichtung gemäß dem ersten Ausführungsbeispiel der vorliegenden Erfindung verhindert oder begrenzt solche nicht verwendeten Bereiche, wodurch die Speicherverwendungseffizienz verbessert wird.Therefore, the disadvantage of having many unused areas in the storage area depending on the data length, which is caused by a storage area pre-dividing measure and an information management apparatus implementing such a measure, is overcome. That is, the information management device according to the first embodiment of the present invention prevents or limits such unused areas, thereby improving memory use efficiency.

(1b) Die CPU 2 des ersten Ausführungsbeispiels führt einen Prozess durch, der einen leeren Bereich in der ersten Region 200 detektiert.(1b) The CPU 2 of the first embodiment performs a process that detects a blank area in the first region 200. FIG.

Deshalb muss eine Adresse einer Kopfposition der Daten nicht zum Lesen oder Schreiben der Daten spezifiziert werden. Das heißt, eine Kopfposition der Daten, oder eine Speicherposition der Daten in dem Speicherbereich, ist durch Detektieren eines leeren Bereichs identifizierbar. Somit werden, basierend auf dem detektierten leeren Bereich, der eine Datenspeicherposition anzeigt, die Lesezieldaten gelesen.Therefore, an address of a head position of the data need not be specified for reading or writing the data. That is, a head position of the data, or a storage position of the data in the storage area is identifiable by detecting an empty area. Thus, based on the detected blank area indicating a data storage position, the read target data is read.

(1c) Die CPU 2 des ersten Ausführungsbeispiels führt einen Prozess durch, welcher einen Identifizierer in einen Kopf der Daten schreibt. Ferner führt die CPU 2 einen Prozess durch, der die Lesezieldaten basierend auf dem Identifizierer in dem Kopf der Daten liest.(1c) The CPU 2 of the first embodiment performs a process which writes an identifier in a head of the data. Further, the CPU 2 performs a process that reads the read target data based on the identifier in the head of the data.

Deshalb können Daten, die einen spezifischen Identifizierer haben, in den Speicherbereich geschrieben werden, und Daten, die einen spezifischen Identifizierer haben, können aus dem Speicherbereich ausgelesen werden. Somit können viele Arten von Daten unverwechselbar gespeichert und erkannt werden.Therefore, data having a specific identifier can be written into the storage area, and data having a specific identifier can be read from the storage area. Thus, many types of data can be uniquely stored and recognized.

(1d) Die CPU 2 des ersten Ausführungsbeispiels führt einen Prozess durch, der die Schreibzieldaten als eine Kombinationseinheit 15 an eine Endposition der letzten Kombinationseinheit 15 an ein Ende/einen Schwanz einer Reihe von Kombinationseinheiten 15, die aufeinanderfolgend beginnend von dem Kopf der ersten Region 200 memoriert worden sind, auf eine „anhängende“ Weise schreibt.(1d) The CPU 2 of the first embodiment performs a process which writes the write target data as a combination unit 15 to an end position of the last combination unit 15 to a tail/tail of a series of combination units 15 sequentially starting from the head of the first region 200 have been memorized writes in an "attached" manner.

Somit können, ungeachtet der Datenlänge, die Schreibzieldaten an eine Endposition hinter der letzten Kombinationseinheit 15 geschrieben werden.Thus, the write target data can be written to an end position after the last combining unit 15 regardless of the data length.

(1e) Die CPU 2 des ersten Ausführungsbeispiels führt einen Ungültigerklärungsprozess durch, der gültige Schreibzieldaten für ungültig erklärt, wenn der gleiche, d. h. gültige, Identifizierer in zwei unterschiedlichen Datenstücken verwendet wird. Das heißt, indem zwei Ein-Wort-Leerbereiche vor die, d. h. als ein Kopf von den, Schreibzieldaten geschrieben wird, werden die gültigen Daten für ungültig erklärt.(1e) The CPU 2 of the first embodiment performs an invalidation process that invalidates valid write target data when the same, i.e. H. valid identifier is used in two different pieces of data. That is, by inserting two one-word spaces before the, i. H. when a head of the write target data is written, the valid data is invalidated.

Deshalb werden die neuesten Daten in alte Daten umgewandelt unmittelbar, nachdem die Schreibzieldaten als die neuesten Daten geschrieben worden sind. Somit kann, ohne die alten Daten zu löschen, eine Aktualisierung der Daten durchgeführt werden.Therefore, the newest data is converted into old data immediately after the write target data is written as the newest data. This means that the data can be updated without deleting the old data.

Ferner führt die CPU 2 des ersten Ausführungsbeispiels einen Prozess durch, der ermittelt, ob Daten gültig oder ungültig sind, und ermittelt den Identifizierer der Daten. Deshalb wird ein Aktualisierungszustand der Daten für jeden der Datenzustände erkannt. Somit werden die neuesten Lesezieldaten ermittelt und gelesen.Furthermore, the CPU 2 of the first embodiment performs a process that determines whether data is valid or invalid and determines the identifier of the data. Therefore, an update state of the data is recognized for each of the data states. Thus, the latest read target data is determined and read.

(1f) Wenn die CPU 2 des ersten Ausführungsbeispiels die Schreibzieldaten nicht als eine Kombinationseinheit 15 in die leeren Bereiche in der ersten Region 200 schreiben kann, d. h. wenn die beschreibbaren Bereiche in der ersten Region 200 ungenügend sind, sichert die CPU 2 die gültigen Daten in dem RAM 4 und löscht all die Daten in der ersten Region 200.(1f) When the CPU 2 of the first embodiment cannot write the write target data as a combination unit 15 in the vacant areas in the first region 200, i. H. if the writable areas in the first region 200 are insufficient, the CPU 2 saves the valid data in the RAM 4 and erases all the data in the first region 200.

Deshalb sind, selbst wenn die erste Region 200 des Speicherbereichs vollständig von den Daten besetzt ist, d. h. selbst wenn die erste Region 200 mit den Daten „bis zum Hals“ gefüllt ist, beschreibbare Bereiche in dem Speicherbereich des Flash-Speichers 6 reservierbar, um das Schreiben von Daten in den Speicherbereich zu ermöglichen.Therefore, even if the first region 200 of the storage area is completely occupied by the data, i. H. even if the first region 200 is filled to the brim with the data, writable areas can be reserved in the storage area of the flash memory 6 to enable writing of data into the storage area.

Bei dem ersten Ausführungsbeispiel kann der Flash-Speicher 6 als ein nichtflüchtiger Speicher bezeichnet werden. Die CPU 2 kann, wenn sie die Schritte S32 und S36 durchführt, als ein „Schreiber“ bezeichnet werden, und die CPU 2 kann, wenn sie die Schritte S71-S75 durchführt, als ein Leser bezeichnet werden.In the first embodiment, the flash memory 6 can be referred to as a non-volatile memory. The CPU 2 when performing steps S32 and S36 can be referred to as a “writer”, and the CPU 2 when performing steps S71-S75 can be referred to as a reader.

Wenn die CPU 2 die Schritte S21 und S22 durchführt, kann sie als ein Leer-Detektor bezeichnet werden, die CPU 2 kann, wenn sie die Schritte S23 und S24 durchführt, als ein Datendetektor bezeichnet werden, und die CPU 2 kann, wenn sie Schritt S26 durchführt, als ein Ungültigerklärungsprozessor bezeichnet werden. Der Managementteil 13 kann als ein Flag-Bereich bezeichnet werden.When the CPU 2 performs steps S21 and S22, it can be referred to as an empty detector, when the CPU 2 performs steps S23 and S24, it can be referred to as a data detector, and when the CPU 2 performs step S26 performs may be referred to as an invalidation processor. The management part 13 can be referred to as a flag area.

Der RAM 4 kann als ein separater Speicher bezeichnet werden. Die CPU 2, die die Schritte S33-S35 durchführt, kann als ein Datensicherer bezeichnet werden.The RAM 4 can be called a separate memory. The CPU 2 performing steps S33- Performing S35 can be referred to as a data saver.

[2. Zweites Ausführungsbeispiel][2. second embodiment]

[Unterschied zum ersten Ausführungsbeispiel][Difference from the first embodiment]

Da die Konfiguration des zweiten Ausführungsbeispiels der vorliegenden Erfindung im Wesentlichen die gleiche wie diejenige des ersten Ausführungsbeispiels ist, konzentriert sich die folgende Beschreibung auf Unterschiede des zweiten Ausführungsbeispiels in Bezug auf das erste Ausführungsbeispiel. Die gleichen Bezugsziffern wie bei dem ersten Ausführungsbeispiel repräsentieren die gleiche Ausgestaltung oder Komponente, und insofern sind deren jeweilige Beschreibungen der Kürze halber weggelassen worden.Since the configuration of the second embodiment of the present invention is basically the same as that of the first embodiment, the following description focuses on differences of the second embodiment with respect to the first embodiment. The same reference numerals as in the first embodiment represent the same configuration or component, and as such their respective descriptions are omitted for brevity.

Gemäß dem oben erwähnten ersten Ausführungsbeispiel führt die CPU 2, in dem Schreibprozess, einen Prozess durch, der die in der ersten Region 200 gespeicherten gültigen Daten in dem RAM 4 sichert.According to the first embodiment mentioned above, in the writing process, the CPU 2 performs a process that saves the valid data stored in the first region 200 in the RAM 4 .

Bei dem zweiten Ausführungsbeispiel führt die CPU 2 jedoch einen unterschiedlichen Prozess durch, der die in der ersten Region 200 gespeicherten gültigen Daten in einer zweiten Region 300, die in einem unterschiedlichen Block 10 ist, sichert.However, in the second embodiment, the CPU 2 performs a different process that saves the valid data stored in the first region 200 in a second region 300 which is in a different block 10. FIG.

Die zweite Region 300 ist einer der Vielzahl von Blöcken 10 in dem Speicherbereich des Flash-Speichers 6 und ist ein zu dem Block 10, der die erste Region 200 hat, unterschiedlicher Block 10.The second region 300 is one of the plurality of blocks 10 in the storage area of the flash memory 6 and is a different block 10 from the block 10 having the first region 200.

[2-2. Schreibprozess][2-2. writing process]

Der von der CPU 2 des zweiten Ausführungsbeispiels durchgeführte Schreibprozess ist in weiteren Details unten beschrieben. Die CPU 2 bei dem zweiten Ausführungsbeispiel führt den Schreibprozess auf eine in den Flussdiagrammen der 12 und 13 detailliert dargestellte Weise durch, welche die Flussdiagramme in 6 und 7 des ersten Ausführungsbeispiels ersetzen.The writing process performed by the CPU 2 of the second embodiment is described in more detail below. The CPU 2 in the second embodiment performs the writing process in a manner shown in the flowcharts of FIGS 12 and 13 detailed manner by which the flowcharts in 6 and 7 replace the first embodiment.

Da ein Prozess von Schritt 81 - Schritt 84 in 12 der gleiche ist wie ein Prozess von Schritt 21 - Schritt 24 in 6, wird die Beschreibung von diesem Teil weggelassen.Since a process from Step 81 - Step 84 in 12 is the same as a process from step 21 - step 24 in 6 , the description of this part will be omitted.

Wenn eine bejahende Feststellung in Schritt 84 (d. h. S84) gemacht wird, schreitet der Prozess zu Schritt 85 fort.If an affirmative determination is made in step 84 (i.e., S84), the process proceeds to step 85.

In Schritt 85 führt die CPU 2 einen Datenschreibprozess durch. Der konkrete Inhalt des Datenschreibprozesses wird mit Bezug auf 13 beschrieben.In step 85, the CPU 2 performs a data writing process. The concrete content of the data writing process will be described with reference to 13 described.

In Schritt 91 (d. h. S91) führt die CPU 2 einen Prozess durch, der ermittelt, ob es irgendeinen beschreibbaren Bereich, d. h. einen leeren Bereich, gibt, in welchen die Schreibzieldaten durch die Kombinationseinheit 15 schreibbar sind. Wenn eine bejahende Feststellung in Schritt 91 gemacht wird, schreitet der Prozess zu Schritt 92 fort.In step 91 (i.e., S91), the CPU 2 performs a process that determines whether there is any writable area, i.e., H. an empty area, in which the write target data is writable by the combination unit 15. If an affirmative determination is made in step 91, the process proceeds to step 92.

In Schritt 92 führt die CPU 2 einen Datenschreibprozess durch, der die Schreibzieldaten, d. h. den Identifizierer und den Datenwert, in die leeren Bereiche beginnend an dem dritten leeren Ein-Wort-Bereich schreibt, d. h. indem die zwei leeren Bereiche beginnend von der letzten Kombinationseinheit 15, die an einem Ende von einer sukzessiven Speicherung von Kombinationseinheiten 15 in Reihe beginnend von dem Kopf der ersten Region 200 steht, unbeschrieben gelassen beibehalten werden.In step 92, the CPU 2 performs a data writing process which writes the write target data, i. H. writes the identifier and the data value into the empty areas starting at the third empty one-word area, d. H. by keeping the two blank areas left unwritten starting from the last combination unit 15 standing at one end of a successive storage of combination units 15 in series starting from the head of the first region 200.

Nach Schritt 92 beendet die CPU 2 den Datenschreibprozess, und der Prozess schreitet zu Schritt 86 fort.After step 92, the CPU 2 ends the data writing process, and the process proceeds to step 86.

Wenn auf der anderen Seite eine negative Feststellung in Schritt 91 gemacht wird, schreitet der Prozess zu Schritt 93 fort.On the other hand, if a negative determination is made in step 91, the process proceeds to step 93.

In Schritt 93 führt die CPU 2 einen Prozess durch, der die in dem Datenteil 14 gespeicherten gültigen Daten in der zweiten Region 300 sichert, d. h. führt einen Datenbewegungsprozess durch. Ein Beispiel eines solchen Prozesses ist in 14 (A) bis (F) gezeigt.In step 93, the CPU 2 performs a process that saves the valid data stored in the data part 14 in the second region 300, that is, performs a data movement process. An example of such a process is in 14 (A) to (F) shown.

Wie in 14 (A) gezeigt, werden, wenn es keinen beschreibbaren Bereich, in welchen die Schreibzieldaten schreibbar sind, in der ersten Region 200 gibt, die in dem Datenteil 14, d. h. in Kombinationseinheiten 101, 102, 103, welche jeweils das Flag in dem ersten Zustand haben, gespeicherten gültigen Daten in der zweiten Region 300 gesichert, wie durch einen Pfeil B1 gezeigt.As in 14 (A) shown, when there is no writable area in which the write target data is writable in the first region 200, the data stored in the data part 14, ie, in combination units 101, 102, 103 each having the flag in the first state valid data is saved in the second region 300 as shown by an arrow B1.

Die zweite Region 300 ist ein vor einem Durchführen des Datenbewegungsprozesses, wie er in 14 (B) gezeigt ist, leerer Bereich.The second region 300 is a prior to performing the data movement process as shown in FIG 14 (B) shown, blank area.

In Schritt 94 führt die CPU 2 einen Datenschreibprozess durch, der die Schreibzieldaten, d. h. den Identifizierer und den Datenwert, in die leeren Bereiche beginnend von dem dritten Ein-Wort-Bereich der leeren Bereiche schreibt, d. h. indem die zwei leeren Bereiche beginnend von der letzten Kombinationseinheit 15, die an einem Ende einer sukzessiven Speicherung der Kombinationseinheiten 15 in Reihe von dem Kopf der zweiten Region 300 steht, unbeschrieben gelassen beibehalten werden. Das heißt, wie in 14 (D) gezeigt, werden die Schreibzieldaten in die/der zweite/n Region 300 als eine Kombinationseinheit 105 geschrieben/gespeichert.In step 94, the CPU 2 performs a data writing process that writes the write target data, ie, the identifier and the data value, into the vacant areas starting from the third one-word area of the vacant areas, ie, by dividing the two vacant areas starting from the last Combination unit 15 standing at an end of successive storage of the combination units 15 in series from the head of the second region 300 can be kept unwritten. That is, as in 14 (D) shown, the write target data in the second region 300 is taken as a combination unit 105 is written/stored.

Im anschließenden Schritt 95 führt die CPU 2 einen Ungültigerklärungsprozess durch, der die in der ersten Region 200 gespeicherten Daten löscht. Wie in 14 (C) und (E) gezeigt, werden die in der ersten Region 200 memorierten Daten gelöscht.In the subsequent step 95, the CPU 2 performs an invalidation process that deletes the data stored in the first region 200. FIG. As in 14 (c) and (E), the data memorized in the first region 200 is deleted.

Nach Schritt 95 beendet die CPU 2 den Datenschreibprozess, und der Prozess schreitet zu Schritt 86 fort.After step 95, the CPU 2 ends the data writing process, and the process proceeds to step 86.

In Schritt 86 führt die CPU 2 einen Prozess durch, der die Daten der Kombinationseinheit 15, die den Identifizierer hat, der bestätigend in Schritt 84 ermittelt worden ist, für ungültig erklärt. Die CPU 2 beendet den Schreibprozess nach Schritt 86.In step 86, the CPU 2 performs a process which invalidates the data of the combination unit 15 having the identifier which has been affirmatively obtained in step 84. The CPU 2 ends the writing process after step 86.

Wenn eine negative Feststellung in Schritt 82 gemacht wird, schreitet der Prozess zu Schritt 87 fort.If a negative determination is made in step 82, the process proceeds to step 87.

In Schritt 87 führt die CPU 2 einen Datenschreibprozess, genau wie Schritt 85, durch. Das heißt, in Schritt 87, einen Prozess von Schritt 92 oder eineb Prozess der Schritte 93-95.In step 87, the CPU 2 performs a data writing process just like step 85. That is, in step 87, a process of step 92 or a process of steps 93-95.

Nach Schritt 92 oder Schritt 95 beendet die CPU 2 den Datenschreibprozess und beendet den Schreibprozess.After step 92 or step 95, the CPU 2 ends the data writing process and ends the writing process.

[2-3. Wirkungen][2-3. effects]

Gemäß dem oben im Detail beschriebenen zweiten Ausführungsbeispiel werden zusätzlich zu den oben erwähnten Wirkungen (1a) - (1e) des ersten Ausführungsbeispiels auch die folgenden Wirkungen erzielt.According to the second embodiment described in detail above, in addition to the above-mentioned effects (1a) - (1e) of the first embodiment, the following effects are also obtained.

(2a) Die CPU 2 des zweiten Ausführungsbeispiels sichert die Daten in der zweiten Region 300, wenn es ungenügende leere Bereiche, d. h. beschreibbare Bereiche, gibt, in welche die Schreibzieldaten durch die Kombinationseinheit 15 schreibbar sind. In solch einem Fall werden, weil die zweite Region 300 ein als ein nichtflüchtiger Speicher implementierter Speicherbereich ist, selbst wenn eine Energieversorgung der Informationsmanagementvorrichtung 1 während des Löschens der Daten unterbrochen wird, die Daten in der zweiten Region 300 beibehalten, d. h. unbeschädigt gehalten.(2a) The CPU 2 of the second embodiment saves the data in the second region 300 when there are insufficient vacant areas, i. H. writable areas, to which the write target data is writable by the combining unit 15. In such a case, because the second region 300 is a storage area implemented as a non-volatile memory, even if a power supply of the information management device 1 is cut off during erasing of the data, the data in the second region 300 is retained, i. H. kept undamaged.

Bei dem zweiten Ausführungsbeispiel kann die CPU 2, welche die Schritte S92 und S94 durchführt, als ein Schreiber bezeichnet werden, die CPU 2, welche die Schritte S81 und S82 durchführt, kann als ein Leer-Detektor bezeichnet werden, die CPU 2, welche die Schritte S83 und S84 durchführt, kann als ein Datendetektor bezeichnet werden, die CPU 2, die Schritt S86 durchführt, kann als ein Ungültigerklärungsprozessor bezeichnet werden, und die CPU 2, die die Schritte S93 und S95 durchführt, kann als ein Datenbeweger bezeichnet werden.In the second embodiment, the CPU 2 performing steps S92 and S94 can be referred to as a writer, the CPU 2 performing steps S81 and S82 can be referred to as an empty detector, the CPU 2 performing the performing steps S83 and S84 may be referred to as a data detector, the CPU 2 performing step S86 may be referred to as an invalidation processor, and the CPU 2 performing steps S93 and S95 may be referred to as a data mover.

[Andere Ausführungsbeispiele][Other embodiments]

Die oben beschriebenen Ausführungsbeispiele der vorliegenden Erfindung können weiter modifiziert werden, um verschiedene Ausgestaltungen zu haben, ohne auf das Obige beschränkt zu sein.The above-described embodiments of the present invention can be further modified to have various configurations without being limited to the above.

(3a) Obgleich die Kombinationseinheit 15 in den obigen Ausführungsbeispielen organisiert ist, den Managementteil 13 zu umfassen, muss eine Kombinationseinheit keinen Managementteil umfassen. Das heißt, eine Kombinationseinheit kann organisiert sein, nur einen Kopfteil und einen Datenteil zu haben.(3a) Although the combination unit 15 is organized to include the management part 13 in the above embodiments, a combination unit need not include a management part. That is, a combination unit can be organized to have only a header and a data part.

Eine CPU kann einen Datenschreibprozess durchführen, der die Schreibzieldaten beginnend bei dem zweiten Ein-Wort-Bereich des leeren Bereichs in die leeren Bereiche schreibt, indem sie einen leeren Bereich beginnend von der letzten Kombinationseinheit, die an einem Ende einer sukzessiven Speicherung der Kombinationseinheiten in Reihe beginnend von dem Kopf des Blocks unbeschrieben gelassen beibehält. Auf solch eine Weise können, selbst wenn eine Kombinationseinheit organisiert ist, nur einen Kopfteil und einen Datenteil zu umfassen, Daten geeignet in den Speicherbereich als eine Reihe von aufeinanderfolgend darin gespeicherten Kombinationseinheiten schreiben.A CPU can perform a data writing process that writes the write target data into the vacant areas starting from the second one-word area of the vacant area by creating an empty area starting from the last combination unit that is at an end of successive storage of the combination units in series starting from the head of the block left unwritten. In such a manner, even if a combination unit is organized to include only a header and a data part, data can be appropriately written into the memory area as a series of combination units sequentially stored therein.

Ferner liest, wenn die Lesezieldaten gelesen werden, die CPU die letzten geschriebenen Daten als gültige Daten, basierend auf einer Ermittlung, dass die an einer Position näher an einem Ende der Reihe von Kombinationseinheiten in der ersten Region gespeicherten Daten gültig sind. Auf solch eine Weise können, selbst wenn eine Kombinationseinheit organisiert ist, nur einen Kopfteil und einen Datenteil zu beinhalten, die neuesten Lesezieldaten gelesen werden.Further, when reading the read target data, the CPU reads the last written data as valid data based on a determination that the data stored at a position closer to an end of the row of combination units in the first region is valid. In such a way, even if a combination unit is organized to include only a header and a data part, the latest read target data can be read.

(3b) Obgleich die in dem Datenteil 14 gespeicherten Daten in dem oben erwähnten Ausführungsbeispiel als ein Identifizierer und ein Datenwert gezeigt sind, sind die Daten in dem Datenteil 14 nicht notwendigerweise auf solch eine Konfiguration beschränkt. Das heißt, die Daten in dem Datenteil können nur ein Datenwert sein.(3b) Although the data stored in the data part 14 is shown as an identifier and a data value in the above-mentioned embodiment, the data in the data part 14 is not necessarily limited to such a configuration. That is, the data in the data part can only be one data value.

(3c) Obgleich eine Schreibstartposition von Schreibzieldaten in den oben erwähnten Ausführungsbeispielen durch Durchführen eines Prozesses identifiziert wird, der drei leere Bereiche in einer Reihe, d. h. den ersten bis dritten leeren Bereich in Reihe, durch eine Detektion beginnend von dem Kopf der ersten oder zweiten Region 200 oder 300 detektiert, kann die Schreibstartposition durch andere Verfahren detektiert werden. Das heißt, die CPU kann einen Prozess durchführen, der zumindest drei leere Bereiche in einer Reihe durch eine an dem Kopf eines Blocks beginnende Detektion detektiert, um eine Schreibstartposition von Schreibzieldaten zu identifizieren.(3c) Although a write start position of write target data is identified in the above-mentioned embodiments by performing a process that includes three vacant areas in a row, ie, the first to third vacant areas in row detected by detection starting from the head of the first or second region 200 or 300, the write start position can be detected by other methods. That is, the CPU can perform a process that detects at least three blank areas in a row by detection starting from the head of a block to identify a write start position of write target data.

(3d) Obgleich der Kopfteil 12 und der Managementteil 13 in den oben erwähnten Ausführungsbeispielen jeweils als ein Ein-Wort-Bereich gezeigt sind, sind der Kopfteil 12 und der Managementteil 13 nicht notwendigerweise auf solch eine Konfiguration beschränkt. Das heißt, ein Kopfteil kann zwei Wortlängen oder länger sein, und ein Managementteil kann zwei Wortlängen oder länger sein.(3d) Although the header 12 and the management part 13 are each shown as a one-word area in the above-mentioned embodiments, the header 12 and the management part 13 are not necessarily limited to such a configuration. That is, a header can be two word lengths or longer, and a management part can be two word lengths or longer.

Ferner werden, bei dem oben erwähnten Ausführungsbeispiel, aufeinanderfolgende leere Bereiche als eine Reihe von zumindest drei „Ein-Wort“-Einheitsbereichen, oder als leere Bereiche von einer ersten Einheitsanzahl (d. h., aufeinanderfolgende leere Bereiche zumindest von einer ersten Einheitsanzahl), detektiert, indem eine Detektion an dem Kopf des Speicherbereichs beginnt. Jedoch können die aufeinanderfolgenden leeren Bereiche als eine Reihe von vier oder mehr Ein-Wort-Bereichen detektiert werden.Furthermore, in the above-mentioned embodiment, consecutive empty areas are detected as a series of at least three "one-word" unit areas, or as empty areas of a first unit number (i.e., consecutive empty areas of at least a first unit number) by detection starts at the head of the storage area. However, the consecutive blank areas can be detected as a series of four or more one-word areas.

Ferner werden, bei dem oben erwähnten Ausführungsbeispiel, die Daten in aufeinanderfolgende leere Bereiche geschrieben, die als eine Reihe von zwei Ein-Wort-Einheitsbereichen oder als leere Bereiche von einer zweiten Einheitsanzahl organisiert sind (d. h., geschrieben in die detektierten aufeinanderfolgenden leeren Bereiche in Reihe von einer zweiten Einheitsanzahl). Jedoch können die Daten in die aufeinanderfolgenden leeren Bereiche, die als eine Reihe von leeren Bereichen von der zweiten Einheitsanzahl, die kleiner als die erste Einheitsanzahl ist, organisiert sind, geschrieben werden. Die zweite Einheitsanzahl kann zumindest eine Wortlänge sein.Furthermore, in the above-mentioned embodiment, the data is written in consecutive empty areas organized as a series of two one-word unit areas or as empty areas of a second unit number (i.e., written in the detected consecutive empty areas in series from a second unit number). However, the data can be written in the consecutive empty areas organized as a series of empty areas of the second unit number smaller than the first unit number. The second unit number can be at least one word length.

(3e) Obgleich die CPU 2 in dem oben erwähnten ersten Ausführungsbeispiel einen Sicherungsprozess durchführt, der die in der ersten Region 200 gespeicherten gültigen Daten in dem RAM 4 speichert, ist das Sicherungsziel nicht auf den RAM 4 beschränkt. Das heißt, das Sicherungsziel kann ein anderer flüchtiger Speicher als der RAM 4 sein.(3e) Although the CPU 2 performs a backup process that saves the valid data stored in the first region 200 in the RAM 4 in the above-mentioned first embodiment, the backup destination is not limited to the RAM 4. That is, the backup destination may be a volatile memory other than the RAM4.

(3f) Obgleich ein nicht bestimmbarer Zustand, in welchem der Bitwert nicht als „0“ oder „1“ bestimmt ist, als der erste Zustand definiert ist, und ein bestimmter Zustand, in welchem der Bitwert entweder als „0“ oder „1“ bestimmt ist, als der zweite Zustand definiert ist, ist die Definition dieser Zustände nicht auf das Obige beschränkt. Der erste Zustand kann ein Vor-Schreib-Zustand sein, d. h. ein Zustand vor dem Schreiben von Daten, und der zweite Zustand kann ein Nach-Schreib-Zustand sein, d. h. ein Zustand nach dem Schreiben von Daten.(3f) Although an indeterminable state in which the bit value is not determined as "0" or "1" is defined as the first state, and a definite state in which the bit value is determined as either "0" or "1" is determined as the second state is defined, the definition of these states is not limited to the above. The first state may be a pre-write state, i. H. a state before writing data, and the second state may be a post-write state, i. H. a state after writing data.

(3g) Die Informationsmanagementvorrichtung 1 des oben erwähnten Ausführungsbeispiels kann in Fahrzeugen angeordnet und verwendet werden.(3g) The information management device 1 of the above-mentioned embodiment can be mounted and used in vehicles.

Zum Beispiel kann eine Informationsmanagementvorrichtung als eine Vorrichtung verwendet werden, die einen Speicher von bei einer Fahrzeugsteuerung, wie beispielsweise einer Verbrennungsmotorsteuerung oder Ähnlichem, gelernten Werten aktualisiert.For example, an information management device can be used as a device that updates a memory of values learned in a vehicle controller such as an engine controller or the like.

Eine Informationsmanagementvorrichtung kann zum Beispiel auch als eine Vorrichtung verwendet werden, welche Freeze-Frame-Daten oder Ähnliches speichert, die Fahrzeugbenutzungszustandsdaten zum Zeitpunkt eines Fehlers umfassen, um das Fahrzeug zu diagnostizieren.For example, an information management device can also be used as a device that stores freeze frame data or the like including vehicle usage status data at the time of failure to diagnose the vehicle.

Die Informationsmanagementvorrichtung der vorliegenden Erfindung ist unterschiedlich zu einer Informationsmanagementvorrichtung, die den Speicherbereich in mehrere Abschnitte zum Schreiben der Daten voraufteilt, wodurch nicht verwendete Bereiche in dem Speicherbereich verhindert werden oder weniger nicht verwendete Bereiche in dem Speicherbereich verursacht werden, selbst durch das Schreiben der Daten mit unterschiedlichen Datenlängen. Deshalb kann die Informationsmanagementvorrichtung der vorliegenden Erfindung geeignet und effektiv zum Speichern von Fahrzeugbenutzungszustandsdaten, die typischerweise ein großes Datenvolumen haben und unterschiedliche Datenlängen haben, sein.The information management device of the present invention is different from an information management device that predivides the memory area into multiple sections for writing the data, thereby preventing unused areas in the memory area or causing fewer unused areas in the memory area even by writing the data with different data lengths. Therefore, the information management device of the present invention can be suitable and effective for storing vehicle use status data, which typically has a large data volume and has different data lengths.

(3h) Zwei oder mehr, d. h. eine Vielzahl von, durch eine Komponente in den obigen Ausführungsbeispielen implementierte Funktionen können durch eine Vielzahl von Komponenten durchgeführt werden, oder eine durch eine Vielzahl von Komponenten in den obigen Ausführungsbeispielen implementierte Funktion kann nur durch eine Komponente implementiert werden. Eine „Vice versa“-Funktions-Implementierungsmaßnahme kann auch angewendet werden.(3h) Two or more, i. H. a plurality of functions implemented by one component in the above embodiments may be performed by a plurality of components, or a function implemented by a plurality of components in the above embodiments may be implemented by only one component. A "vice versa" function implementation measure can also be applied.

Ferner kann ein Teil des obigen Ausführungsbeispiels weggelassen sein, und/oder ein Teil eines Ausführungsbeispiels kann zu dem anderen Ausführungsbeispiel hinzugefügt oder mit dem anderen Ausführungsbeispiel ersetzt werden.Further, part of the above embodiment may be omitted, and/or part of one embodiment may be added to or replaced with the other embodiment.

Beachte, dass alle Modi des technischen Gedankens, der durch die Formulierung in den Ansprüchen beschrieben ist, als das Ausführungsbeispiel dienen und innerhalb des Schutzbereichs der vorliegenden Erfindung sind.Note that all modes of the technical thought described by the wording in the claims serve as the embodiment and are within the scope of the present invention.

(3i) Die vorliegende Erfindung kann, abgesehen von der oben beschriebenen CPU 2, auch als ein Informationsmanagementsystem, welche die CPU 2 als eine Komponente verwendet, oder ein Informationsmanagementprogramm zum Steuern eines Computers, um den oben erwähnten Schreib-/Leseprozess durchzuführen, oder ein nichtflüchtiges, materielles Speichermedium, welches solch ein Informationsmanagementprogramm speichert, oder ein Informationsmanagementverfahren oder Ähnliches verwirklicht werden.(3i) The present invention, apart from the CPU 2 described above, can also be used as an information management system using the CPU 2 as a component, or an information management program for controlling a computer to perform the above-mentioned writing/reading process, or a non-volatile tangible storage medium storing such an information management program, or an information management method, or the like can be realized.

Claims (7)

Informationsmanagementvorrichtung umfassend: einen nichtflüchtigen Speicher (6), welcher einen Speicherbereich hat, in welchen Daten schreibbar sind und aus welchem Daten löschbar sind; und einen Schreiber (2, S32, S36, S92, S94), welcher ausgestaltet ist, Daten in einen leeren Bereich in dem Speicherbereich des nichtflüchtigen Speichers zu schreiben, wobei das Löschen von Daten aus dem Speicherbereich den Speicherbereich von einem zweiten Zustand in einen ersten Zustand schaltet, wobei der erste Zustand ein Vor-Schreib-Zustand des Speicherbereichs ist, das Schreiben von Daten in den Speicherbereich den Speicherbereich von dem ersten Zustand in den zweiten Zustand schaltet, wobei der zweite Zustand ein Nach-Schreib-Zustand des Speicherbereichs ist, und wobei der Schreiber ausgestaltet ist, den Speicherbereich mittels des leeren Bereichs aufzuteilen, um eine Vielzahl von Datenstücken von Daten in Folge in den Speicherbereich zu schreiben.Information management device comprising: a non-volatile memory (6) having a memory area in which data is writable and from which data is erasable; and a writer (2, S32, S36, S92, S94) configured to write data to an empty area in the storage area of the non-volatile memory, wherein deleting data from the memory area switches the memory area from a second state to a first state, the first state being a pre-write state of the memory area, writing data to the memory area switches the memory area from the first state to the second state, the second state being an after-write state of the memory area, and wherein the writer is configured to divide the memory area by means of the empty area to write a plurality of data pieces of data in the memory area in sequence. Informationsmanagementvorrichtung nach Anspruch 1 weiter umfassend: einen Leser (2, S71-S75), welcher ausgestaltet ist, Lesezieldaten in dem Speicherbereich zu lesen, wobei der Leser weiter ausgestaltet ist, die Lesezieldaten durch Detektieren des leeren Bereichs in dem Speicherbereich zu lesen (2, S71).information management device claim 1 further comprising: a reader (2, S71-S75) configured to read read target data in the storage area, the reader being further configured to read the read target data by detecting the empty area in the storage area (2, S71). Informationsmanagementvorrichtung nach Anspruch 2, wobei der Schreiber ferner ausgestaltet ist, einen Identifizierer als einen Kopf der Daten zu schreiben, um die Daten zu identifizieren, und wobei der Leser weiter ausgestaltet ist, die Lesezieldaten basierend auf dem als der Kopf der Daten geschriebenen Identifizierer zu lesen (2, S74).information management device claim 2 , wherein the writer is further configured to write an identifier as a head of the data to identify the data, and wherein the reader is further configured to read the read target data based on the identifier written as the head of the data (2, S74 ). Informationsmanagementvorrichtung nach einem der Ansprüche 1 bis 3 weiter umfassend: einen Leer-Detektor (2, S21, S22, S81, S82), welcher ausgestaltet ist, den leeren Bereich in dem Speicherbereich als aufeinanderfolgende leere Bereiche in Reihe von zumindest einer ersten Einheitsanzahl zu detektieren, wobei die Detektion des leeren Bereichs an einem Kopfteil des Speicherbereichs beginnt und zu anschließenden Teilen des Speicherbereichs in Reihenfolge fortschreitet, und wobei der Schreiber weiter ausgestaltet ist, Daten in den leeren Bereich zu schreiben, indem er einen detektierten Ort der aufeinanderfolgenden leeren Bereiche als eine Datenschreibstartposition verwendet und Daten in die detektierten aufeinanderfolgenden leeren Bereiche in Reihe von einer zweiten Einheitsanzahl schreibt, wobei die zweite Einheitsanzahl kleiner als die erste Einheitsanzahl ist.Information management device according to one of Claims 1 until 3 further comprising: an empty detector (2, S21, S22, S81, S82), which is configured to detect the empty area in the storage area as consecutive empty areas in series of at least a first unit number, the detection of the empty area on a head part of the memory area and proceeds to subsequent parts of the memory area in order, and wherein the writer is further configured to write data in the empty area by using a detected location of the consecutive empty areas as a data writing start position and data in the detected consecutive ones writes blank areas in series of a second unit number, the second unit number being less than the first unit number. Informationsmanagementvorrichtung nach Anspruch 4 weiter umfassend: einen Datendetektor (2, S23, S24, S83, S84), welcher ausgestaltet ist, gültige Daten zu detektieren, die durch ein Schreiben von Schreibzieldaten ungültig erklärt werden; und einen Ungültigerklärungsprozessor (2, S26, S86), welcher ausgestaltet ist, die gültigen Daten ungültig zu erklären, wenn der Datendetektor die gültigen Daten detektiert, wobei ein Teil der aufeinanderfolgenden leeren Bereiche von der zweiten Einheitsanzahl als ein Flag-Bereich (13) dient, um eine Gültigkeit von in einen unmittelbar an den Flag-Bereich anschließenden Teil geschriebenen aufeinanderfolgenden Daten zu zeigen, wobei der erste Zustand des Flag-Bereichs zeigt, dass die anschließenden Daten gültig sind, und der zweite Zustand des Flag-Bereichs zeigt, dass die anschließenden Daten ungültig sind, und wobei der Ungültigerklärungsprozessor die gültigen Daten ungültig erklärt, indem er einen Wert dem Flag zuschreibt, der den gültigen Daten unmittelbar vorausgeht.information management device claim 4 further comprising: a data detector (2, S23, S24, S83, S84) configured to detect valid data invalidated by writing write target data; and an invalidation processor (2, S26, S86) adapted to invalidate the valid data when the data detector detects the valid data, wherein part of the consecutive empty areas of the second unit number serves as a flag area (13). to show a validity of consecutive data written in a portion immediately following the flag area, the first state of the flag area showing that the subsequent data is valid and the second state of the flag area showing that the subsequent data is invalid, and wherein the invalidation processor invalidates the valid data by ascribing a value to the flag immediately preceding the valid data. Informationsmanagementvorrichtung nach Anspruch 5 weiter umfassend: einen Datensicherer (2, S33-S35), welcher ausgestaltet ist, die gültigen Daten in dem Speicherbereich zu sichern, indem er (i) die gültigen Daten in einem separaten Speicher (4) sichert, der ein von dem nichtflüchtigen Speicher (6) separater Speicher ist, und (ii) die gesicherten gültigen Daten von dem separaten Speicher (4) zurück in den Speicherbereich rückspeichert, nachdem die Daten von dem Speicherbereich gelöscht worden sind, wenn der Speicherbereich keinen beschreibbaren Bereich hat, um die Schreibzieldaten zu schreiben, wobei der Schreiber ausgestaltet ist, die Schreibzieldaten in den Speicherbereich zu schreiben (2, S36), in welchen die gültigen Daten von dem Datensicherer rückgespeichert werden.information management device claim 5 further comprising: a data saver (2, S33-S35), which is designed to save the valid data in the memory area by (i) saving the valid data in a separate memory (4), which is one of the non-volatile memory ( 6) is separate storage, and (ii) restores the saved valid data from the separate storage (4) back to the storage area after deleting the data from the storage area if the storage area has no writable area to write the write target data , wherein the writer is configured, the writing target to write data (2, S36) into the memory area in which the valid data are restored by the data saver. Informationsmanagementvorrichtung nach Anspruch 5 weiter umfassend: einen Datenbeweger (2, S93, S95), welcher ausgestaltet ist, (i) die gültigen Daten in einer ersten Region (200) des Speicherbereichs zu einer zweiten Region (300) des Speicherbereichs zu bewegen und (ii) die gültigen Daten von der ersten Region (200) zu löschen, wenn die erste Region keinen beschreibbaren Bereich hat, in welchem die Schreibzieldaten schreibbar sind, und die zweite Region einen beschreibbaren Bereich hat, in welchen die Schreibzieldaten schreibbar sind, wobei der Schreiber weiter ausgestaltet ist, die Schreibzieldaten in die zweite Region zu schreiben (2, S94), in welche die gültigen Daten von dem Datensicherer bewegt worden sind.information management device claim 5 further comprising: a data mover (2, S93, S95) configured to (i) move the valid data in a first region (200) of the storage area to a second region (300) of the storage area and (ii) the valid data to erase from the first region (200) when the first region has no writable area in which the write target data is writable and the second region has a writable area in which the write target data is writable, the writer being further configured which write (2, S94) write target data in the second region to which the valid data has been moved from the data saver.
DE102017215856.5A 2016-09-16 2017-09-08 information management device Expired - Fee Related DE102017215856B4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-181757 2016-09-16
JP2016181757A JP6561951B2 (en) 2016-09-16 2016-09-16 Information management device

Publications (2)

Publication Number Publication Date
DE102017215856A1 DE102017215856A1 (en) 2018-03-22
DE102017215856B4 true DE102017215856B4 (en) 2023-01-12

Family

ID=61302603

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017215856.5A Expired - Fee Related DE102017215856B4 (en) 2016-09-16 2017-09-08 information management device

Country Status (2)

Country Link
JP (1) JP6561951B2 (en)
DE (1) DE102017215856B4 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05119777A (en) 1991-09-17 1993-05-18 Yamaha Corp Electronic musical instrument
US20140136765A1 (en) 2012-11-12 2014-05-15 Eun Chu Oh Memory system comprising nonvolatile memory device and related read method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009272028A (en) * 2008-04-07 2009-11-19 Renesas Technology Corp Semiconductor integrated circuit and operation method thereof
JP2015082166A (en) * 2013-10-22 2015-04-27 ルネサスエレクトロニクス株式会社 Method for managing data storage flash memory and program therefor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05119777A (en) 1991-09-17 1993-05-18 Yamaha Corp Electronic musical instrument
US20140136765A1 (en) 2012-11-12 2014-05-15 Eun Chu Oh Memory system comprising nonvolatile memory device and related read method

Also Published As

Publication number Publication date
JP2018045595A (en) 2018-03-22
JP6561951B2 (en) 2019-08-21
DE102017215856A1 (en) 2018-03-22

Similar Documents

Publication Publication Date Title
DE112010003650B4 (en) Container marking scheme for reducing write gain in semiconductor devices
DE60217883T2 (en) METHOD FOR WRITING DATA INTO A NON-VOLATILE MEMORY
DE112014004761B4 (en) Influencing wear leveling in storage systems
DE69839126T2 (en) MOVING ONE OF THE FOLLOWING SECTORS INSIDE A DATA BLOCK IN A FLASH MASS MEMORY
DE102012208141B4 (en) Compensation for decreasing functionality
DE102008057219B4 (en) Method of operating a solid state storage system, solid state storage system and computer system
DE60030876T2 (en) Scope management of a high-capacity non-volatile memory
DE60319407T2 (en) FOLLOW THE MOST CLEARED BLOCKS OF A NON-VOLATILE STORAGE SYSTEM
DE112015004873T5 (en) Processing of removal commands to improve the performance and durability of a storage device
DE102007006307A1 (en) Non volatile memory unit i.e. flash memory unit, operating method, involves determining log-block as reusable log block, without deleting updated version of data, and fulfilling pre-determined condition depending on determination
EP2923261B1 (en) Method for controlling a flash memory for mass storage, which is comprised by a communications device that can be connected to a host, and computer program product for carrying out said method
DE102005028827A1 (en) Flash memory device and method for defect block treatment
DE102005063250A1 (en) Data storage control system, storage and computer system and operating methods
DE112020002792B4 (en) WEAR-ORIENTED BLOCK MODE CONVERSION IN NON-VOLATILE MEMORIES
DE112020005695T5 (en) STORAGE CONTROLLER FOR SOLID-STATE STORAGE DEVICES
DE102016010276A1 (en) METHOD AND SYSTEMS FOR IMPROVING FLASH MEMORY EMPTYING
DE60317801T2 (en) METHOD AND DEVICE FOR DETECTING ERRORS DURING WRITING INTO A NON-VOLATILE MEMORY
DE102017215856B4 (en) information management device
EP2948894B1 (en) Method for securely erasing a non-volatile semiconductor mass memory, computer system, and computer program product
DE102016202684B4 (en) DATA MANAGEMENT DEVICE AND DATA MANAGEMENT PROGRAM
DE10321104B4 (en) Method for filing variable data
DE112017008201B4 (en) Information processing apparatus, information processing method and information processing program
DE102006057977A1 (en) Method and apparatus for updating a database and computer program product
DE102006013759B4 (en) Method and computing unit for operating a memory device
DE102006013762A1 (en) Memory device e.g. electrically erasable programmable read-only memory, operating method, involves using condition, which is provided through deletion and writing procedures of memory area, to reduce number of deletion and writing cycles

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
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee