DE102017215856B4 - information management device - Google Patents
information management device Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details 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.
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.
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
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
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.
-
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
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
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
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
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
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
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
Der Flash-Speicher 6 speichert Daten durch Schreiben eines Bitwerts von „0“ oder „1“ in eine Zelle. Wie in
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
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
Wie in
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
[1-2. Schreibprozess][1-2. writing process]
Das Format der in dem Speicherbereich des Flash-Speichers 6 gespeicherten Daten wird mit Bezug auf
Wie in
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
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
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
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
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
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
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
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
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
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
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
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
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
Wenn eine bejahende Ermittlung in Schritt 22 gemacht worden ist, schreitet der Prozess zu Schritt 23 fort.If an affirmative determination is made in
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
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
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
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
Wenn eine negative Feststellung in Schritt 23 gemacht wird, kehrt der Prozess zu Schritt 21 zurück.If a negative determination is made in
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
Wenn eine bejahende Feststellung in Schritt 23 gemacht wird, schreitet der Prozess zu Schritt 24 fort.If an affirmative determination is made in
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
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
Wenn eine negative Feststellung in Schritt 24 gemacht wird, kehrt der Prozess zu Schritt 21 zurück.If a negative determination is made in
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
Wenn eine bejahende Feststellung in Schritt 24 gemacht wird, schreitet der Prozess zu Schritt 25 fort.If an affirmative determination is made in
In Schritt 25 führt die CPU 2 einen Datenschreibprozess durch.In
Der konkrete Inhalt des Datenschreibprozesses wird mit Bezug auf
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
Wenn eine bejahende Feststellung in Schritt 31 gemacht wird, schreitet der Prozess zu Schritt 32 fort.If an affirmative determination is made in
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
Die Situation kann klarer mit Bezug auf
Wie in
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
Nach Schritt 32 beendet die CPU 2 den Datenschreibprozess, und der Prozess schreitet zu Schritt 26 fort.After step 32, the
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
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
Wie in
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
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
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
Nach Schritt 36 beendet die CPU 2 den Datenschreibprozess, und der Prozess schreitet zu Schritt 26 fort.After
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
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
Wenn eine negative Feststellung in Schritt 22 gemacht wird, schreitet der Prozess zu Schritt 27 fort.If a negative determination is made in
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
[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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Die CPU 2 beendet den Leseprozess nach Schritt 75.The
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
[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
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
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
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
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
(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
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
(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
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
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
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
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
[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
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
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
[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
Da ein Prozess von Schritt 81 - Schritt 84 in
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
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
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
Nach Schritt 92 beendet die CPU 2 den Datenschreibprozess, und der Prozess schreitet zu Schritt 86 fort.After
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
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
Wie in
Die zweite Region 300 ist ein vor einem Durchführen des Datenbewegungsprozesses, wie er in
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
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
Nach Schritt 95 beendet die CPU 2 den Datenschreibprozess, und der Prozess schreitet zu Schritt 86 fort.After
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
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
Nach Schritt 92 oder Schritt 95 beendet die CPU 2 den Datenschreibprozess und beendet den Schreibprozess.After
[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
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
[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
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
(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
(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
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
(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
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
Claims (7)
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)
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)
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 |
-
2016
- 2016-09-16 JP JP2016181757A patent/JP6561951B2/en not_active Expired - Fee Related
-
2017
- 2017-09-08 DE DE102017215856.5A patent/DE102017215856B4/en not_active Expired - Fee Related
Patent Citations (2)
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 |