JP2017117099A - Information management device, information management method, and information management program - Google Patents

Information management device, information management method, and information management program Download PDF

Info

Publication number
JP2017117099A
JP2017117099A JP2015250220A JP2015250220A JP2017117099A JP 2017117099 A JP2017117099 A JP 2017117099A JP 2015250220 A JP2015250220 A JP 2015250220A JP 2015250220 A JP2015250220 A JP 2015250220A JP 2017117099 A JP2017117099 A JP 2017117099A
Authority
JP
Japan
Prior art keywords
data
recorded
record
value
flag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015250220A
Other languages
Japanese (ja)
Other versions
JP6512091B2 (en
Inventor
洋平 藤田
Yohei Fujita
洋平 藤田
康志 神田
Koji Kanda
康志 神田
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
Priority to JP2015250220A priority Critical patent/JP6512091B2/en
Publication of JP2017117099A publication Critical patent/JP2017117099A/en
Application granted granted Critical
Publication of JP6512091B2 publication Critical patent/JP6512091B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To suppress a deterioration in recording efficiency of a flash memory.SOLUTION: An information management device configured to manage the update of data to a flash memory including a plurality of records each of which is a set of a data block and a management block as an area for recording a flag indicating whether a data value recorded in the data block is valid or invalid comprises; a search part for performing processing to search the reusable record as the record whose management block is recorded with the flag indicating invalidity from among the plurality of records; a validation part for performing validation processing as processing to change the flag recorded in the management block of the reusable record from a state indicating invalidity to a state indicating validity; and an invalidation part for performing invalidation processing as processing to change the flag recorded in the management block of the record before update from the state indicating validity to the state indicating invalidity.SELECTED DRAWING: Figure 10

Description

本開示は、フラッシュメモリに対するデータの更新を管理する情報管理装置に関する。   The present disclosure relates to an information management apparatus that manages update of data to a flash memory.

フラッシュメモリは、データの消去及び書き込みが可能な記録媒体であり、広く利用されている。フラッシュメモリの記録領域は、1ビットの値であるビット値を記録可能なセルが多数集まって構成されている。フラッシュメモリのセルは、ビット値「1」が書き込まれたセルにビット値「0」を直接書き込むことが可能である一方、ビット値「0」が書き込まれたセルにビット値「1」を直接書き込むことができないという特性を有する。このため、フラッシュメモリにおいて、セルに記録されたビット値「0」をビット値「1」に書き換えるには、セルに記録されたビット値をいったん消去する必要がある。また、このような特性を有するフラッシュメモリ以外に、消去状態(ビット値が「0」にも「1」にも確定していない)に対して書き込みが行われると、非消去状態(ビット値が「0」又は「1」に確定している)になる特性を有するフラッシュメモリがある。このようなフラッシュメモリの場合、非消去状態のビット値を書き換えるには、いったん消去して非消去状態を消去状態にする必要がある。ただし、フラッシュメモリは、ビット値の消去が、セル単位ではなく、複数のセルで構成されたブロック単位でしか行えないという特性を有する。ブロック単位での消去には時間を要することや、データの書き込み及び消去の回数には制限があることなどから、データを消去する頻度をできるだけ減らすことが求められる。   A flash memory is a recording medium on which data can be erased and written, and is widely used. The recording area of the flash memory is composed of a large number of cells capable of recording a bit value which is a 1-bit value. The cell of the flash memory can directly write the bit value “0” to the cell where the bit value “1” is written, while the bit value “1” is directly written to the cell where the bit value “0” is written. It has the characteristic that it cannot be written. Therefore, in the flash memory, in order to rewrite the bit value “0” recorded in the cell to the bit value “1”, it is necessary to once erase the bit value recorded in the cell. In addition to a flash memory having such characteristics, if writing is performed in an erased state (bit value is not fixed to “0” or “1”), a non-erased state (bit value is There is a flash memory having a characteristic of being “0” or “1”. In the case of such a flash memory, in order to rewrite a bit value in a non-erased state, it is necessary to erase the non-erased state to an erased state. However, the flash memory has a characteristic that the bit value can be erased only in units of blocks constituted by a plurality of cells, not in units of cells. It is required to reduce the frequency of erasing data as much as possible because erasing in units of blocks requires time and the number of times data is written and erased is limited.

特許文献1には、記録されるデータごとに、そのデータが有効であるか無効であるかを示すフラグが記録され、フラグの書き換えによりデータの更新を行う構成が提案されている。すなわち、この構成では、データ更新の際、既に記録されている更新前のデータについてのフラグが無効を示すように書き換えられるとともに、更新後のデータが有効を示すフラグとともに空き領域に新たに書き込まれる。したがって、更新前のデータを消去することなくデータの更新が可能となる。   Patent Document 1 proposes a configuration in which a flag indicating whether the data is valid or invalid is recorded for each data to be recorded, and the data is updated by rewriting the flag. That is, in this configuration, at the time of data update, the flag for the pre-update data already recorded is rewritten so as to indicate invalidity, and the updated data is newly written into the free area together with the flag indicating validity. . Therefore, the data can be updated without erasing the data before the update.

特開2004−213263号公報JP 2004-213263 A

前述したような構成では、データが更新されるたびに無効化されたデータが増加するため、記録領域における無効化されたデータの割合が高くなり、記録効率が低下してしまう。   In the configuration as described above, invalidated data increases each time data is updated, so the proportion of invalidated data in the recording area increases and recording efficiency decreases.

本開示の一側面は、フラッシュメモリの記録効率の低下を抑制することを目的としている。   One aspect of the present disclosure aims to suppress a decrease in recording efficiency of a flash memory.

本開示の一側面は、複数種類のデータを識別するための識別子であるデータ識別子及びデータ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、データ部に記録されているデータ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理装置(1)であって、検索部(5、S110、S710)、有効化部(5、S120〜S130、S720〜S730)及び無効化部(5、S140〜S160、S740〜S760)を備える。検索部は、特定のデータ識別子のデータ値を第1の値から第2の値に更新する際、データ部に特定のデータ識別子及び第2の値が記録され、管理部に無効を示すフラグが記録されているレコードである再利用可能レコードを、複数のレコードから検索する処理を行う。有効化部は、検索部により再利用可能レコードが検索された場合、再利用可能レコードの管理部に記録されているフラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理を行う。無効化部は、データ部に特定のデータ識別子及び第1の値が記録され、管理部に有効を示すフラグが記録されているレコードである更新前レコードの管理部に記録されているフラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理を行う。   One aspect of the present disclosure includes a data section (70, 600) that is an area for recording a data identifier that is an identifier for identifying a plurality of types of data and a data value that is a data value for each data identifier; A plurality of records (30) as a group of data management units (80, 610), which is an area for recording a flag indicating whether a data value recorded in the data part is valid or invalid, is used as a data management unit. An information management device (1) for managing data update with respect to a flash memory (3) provided, which includes a search unit (5, S110, S710), and an validation unit (5, S120 to S130, S720 to S730) And an invalidating unit (5, S140 to S160, S740 to S760). When the search unit updates the data value of the specific data identifier from the first value to the second value, the specific data identifier and the second value are recorded in the data unit, and a flag indicating invalidity is set in the management unit. A process for retrieving a reusable record, which is a recorded record, from a plurality of records is performed. The validation unit is a process for changing the flag recorded in the management unit of the reusable record from the state indicating invalid to the state indicating valid when the reusable record is searched by the search unit. Process. The invalidation unit records the flag recorded in the management unit of the pre-update record, which is a record in which a specific data identifier and a first value are recorded in the data unit, and a flag indicating validity is recorded in the management unit, An invalidation process, which is a process of changing from a state indicating validity to a state indicating invalidity, is performed.

また、本開示の別の側面は、複数種類のデータを識別するための識別子であるデータ識別子及びデータ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、データ部に記録されているデータ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理方法である。この情報管理方法では、特定のデータ識別子のデータ値を第1の値から第2の値に更新する際、データ部に特定のデータ識別子及び第2の値が記録され、管理部に無効を示すフラグが記録されているレコードである再利用可能レコードを、複数のレコードから検索する処理(5、S110、S710)を行い、検索部により再利用可能レコードが検索された場合、再利用可能レコードの管理部に記録されているフラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理(5、S120〜S130、S720〜S730)を行い、データ部に特定のデータ識別子及び第1の値が記録され、管理部に有効を示すフラグが記録されているレコードである更新前レコードの管理部に記録されているフラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理(5、S140〜S160、S740〜S760)を行う。   Another aspect of the present disclosure provides a data portion (70, 600) that is an area for recording a data identifier that is an identifier for identifying a plurality of types of data and a data value that is a data value for each data identifier. ) And a management unit (80, 610) which is a region for recording a flag indicating whether the data value recorded in the data unit is valid or invalid, and a record (30) is a data management This is an information management method for managing data update for a plurality of flash memories (3) provided as a unit. In this information management method, when the data value of the specific data identifier is updated from the first value to the second value, the specific data identifier and the second value are recorded in the data portion, indicating invalidity in the management portion. When a reusable record that is a record in which a flag is recorded is searched from a plurality of records (5, S110, S710), and the reusable record is searched by the search unit, The validation process (5, S120 to S130, S720 to S730), which is a process of changing the flag recorded in the management unit from the invalid state to the valid state, is performed, and a specific data identifier and From the state indicating validity, the flag recorded in the management part of the record before update, which is the record in which the first value is recorded and the flag indicating validity is recorded in the management part It is a process of changing the state indicating effective invalidation processing (5, S140~S160, S740~S760) performs.

さらに、本開示の別の側面は、複数種類のデータを識別するための識別子であるデータ識別子及びデータ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、データ部に記録されているデータ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理装置(1)としてコンピュータを機能させるための情報管理プログラムであって、検索部(5、S110、S710)、有効化部(5、S120〜S130、S720〜S730)及び無効化部(5、S140〜S160、S740〜S760)としてコンピュータを機能させる。検索部は、特定のデータ識別子のデータ値を第1の値から第2の値に更新する際、データ部に特定のデータ識別子及び第2の値が記録され、管理部に無効を示すフラグが記録されているレコードである再利用可能レコードを、複数のレコードから検索する処理を行う。有効化部は、検索部により再利用可能レコードが検索された場合、再利用可能レコードの管理部に記録されているフラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理を行う。無効化部は、データ部に特定のデータ識別子及び第1の値が記録され、管理部に有効を示すフラグが記録されているレコードである更新前レコードの管理部に記録されているフラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理を行う。   Further, according to another aspect of the present disclosure, a data portion (70, 600) that is an area for recording a data identifier that is an identifier for identifying a plurality of types of data and a data value that is a data value for each data identifier. ) And a management unit (80, 610) which is a region for recording a flag indicating whether the data value recorded in the data unit is valid or invalid, and a record (30) is a data management An information management program for causing a computer to function as an information management device (1) for managing data updates for a plurality of flash memories (3) as a unit, and a search unit (5, S110, S710), effective The computer functions as an enabling unit (5, S120 to S130, S720 to S730) and an invalidating unit (5, S140 to S160, S740 to S760). . When the search unit updates the data value of the specific data identifier from the first value to the second value, the specific data identifier and the second value are recorded in the data unit, and a flag indicating invalidity is set in the management unit. A process for retrieving a reusable record, which is a recorded record, from a plurality of records is performed. The validation unit is a process for changing the flag recorded in the management unit of the reusable record from the state indicating invalid to the state indicating valid when the reusable record is searched by the search unit. Process. The invalidation unit records the flag recorded in the management unit of the pre-update record, which is a record in which a specific data identifier and a first value are recorded in the data unit, and a flag indicating validity is recorded in the management unit, An invalidation process, which is a process of changing from a state indicating validity to a state indicating invalidity, is performed.

このような構成によれば、特定のデータ識別子のデータ値を更新する際、フラグを無効を示す状態から有効を示す状態に変更する処理を行うことで、無効を示すフラグが記録されていたレコードを再利用することができる。そのため、データ値を更新するたびに、無効を示すフラグが記録されているレコードが増加することを抑制することができる。したがって、フラッシュメモリに記録されている全データ中において、有効を示すフラグが記録されているレコードの割合が増加し、記録効率の低下を抑制することができる。   According to such a configuration, when the data value of a specific data identifier is updated, the record in which the flag indicating invalidity is recorded by performing the process of changing the flag from the invalid state to the valid state. Can be reused. Therefore, it is possible to suppress an increase in the number of records in which a flag indicating invalidity is recorded every time the data value is updated. Therefore, the ratio of records in which a flag indicating validity is recorded in all data recorded in the flash memory is increased, and a decrease in recording efficiency can be suppressed.

なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。   Note that the reference numerals in parentheses described in this column and in the claims indicate the correspondence with the specific means described in the embodiment described later as one aspect, and the technical scope of the present disclosure It is not limited.

第1実施形態の情報管理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information management apparatus of 1st Embodiment. 第1実施形態のフラッシュメモリにおける複数の仮想ブロックを示す図である。It is a figure which shows the some virtual block in the flash memory of 1st Embodiment. 第1実施形態のフラッシュメモリにおける仮想ブロックを示す図である。It is a figure which shows the virtual block in the flash memory of 1st Embodiment. 第1実施形態のフラッシュメモリにおけるレコードを示す図である。It is a figure which shows the record in the flash memory of 1st Embodiment. 第1実施形態のフラッシュメモリにおけるレコードの具体例を示す図である。It is a figure which shows the specific example of the record in the flash memory of 1st Embodiment. 第1実施形態のフラッシュメモリにおける消去動作を示す図である。FIG. 6 is a diagram showing an erasing operation in the flash memory according to the first embodiment. 第1実施形態のフラッシュメモリにおけるフラグの書き換えを示す図である。It is a figure which shows rewriting of the flag in the flash memory of 1st Embodiment. 第1実施形態のフラッシュメモリにおけるデータの更新処理を示すフローチャートである。It is a flowchart which shows the update process of the data in the flash memory of 1st Embodiment. 第1実施形態のフラッシュメモリにおけるデータの更新処理の具体的事例である。It is a specific example of data update processing in the flash memory of the first embodiment. 本開示及び従来技術のフラッシュメモリにおける更新処理を示す図である。It is a figure which shows the update process in the flash memory of this indication and a prior art. 第2実施形態のフラッシュメモリにおける消去動作を示す図である。It is a figure which shows the erase operation in the flash memory of 2nd Embodiment. 第2実施形態のフラッシュメモリにおけるフラグの書き換えを示す図である。It is a figure which shows rewriting of the flag in the flash memory of 2nd Embodiment. 第2実施形態のフラッシュメモリにおけるデータの更新処理を示すフローチャートである。It is a flowchart which shows the update process of the data in the flash memory of 2nd Embodiment. 第2実施形態のフラッシュメモリにおけるデータの更新処理の具体的事例である。It is a specific example of data update processing in the flash memory of the second embodiment.

以下、図面を参照しながら、本開示を実施するための形態を説明する。
[1.第1実施形態]
[1−1.構成]
図1に示す情報管理装置1は、記録媒体であるフラッシュメモリ3にデータを書き込んだり、そのデータを消去したりすることができる装置である。情報管理装置1は、各種の演算処理を行う周知のCPU5と、外部装置との入出力部として機能するI/O7と、フラッシュメモリ3へのデータの書き込みやデータの消去を行うフラッシュコントローラ9と、各種のソフトウェア等を記録しているROM11と、周知のRAM13と、を備えている。
Hereinafter, embodiments for carrying out the present disclosure will be described with reference to the drawings.
[1. First Embodiment]
[1-1. Constitution]
An information management apparatus 1 shown in FIG. 1 is an apparatus that can write data to a flash memory 3 that is a recording medium and erase the data. The information management apparatus 1 includes a well-known CPU 5 that performs various arithmetic processes, an I / O 7 that functions as an input / output unit with an external apparatus, and a flash controller 9 that writes data to and erases data from the flash memory 3. A ROM 11 storing various kinds of software and the like, and a well-known RAM 13.

このうち、ROM11には、フラッシュコントローラ9の動作を制御するソフトウェアであるフラッシュドライバのプログラムや各種のアプリケーションソフトウェアのプログラムが記録されている。   Among these, the ROM 11 stores a flash driver program which is software for controlling the operation of the flash controller 9 and various application software programs.

なお、情報管理装置1やフラッシュメモリ3等へは、電源15から電力が供給されている。
[1−2.ブロック構造]
フラッシュメモリ3のデータ記録領域は、図2に示すように、複数の仮想ブロック20に区分される。図3に示すように、各仮想ブロック20は、フラッシュメモリ3におけるデータの消去単位であるブロックが複数集まって構成された仮想的なブロックである。換言すれば、第1実施形態は、データの消去単位としてのブロックのサイズが比較的小さいフラッシュメモリ3が用いられることを前提としている。図2に示すように、仮想ブロック20は、データの管理単位として複数のレコード30を備える。
Note that power is supplied from the power supply 15 to the information management apparatus 1 and the flash memory 3.
[1-2. Block structure]
The data recording area of the flash memory 3 is divided into a plurality of virtual blocks 20 as shown in FIG. As shown in FIG. 3, each virtual block 20 is a virtual block configured by collecting a plurality of blocks as data erasing units in the flash memory 3. In other words, the first embodiment assumes that the flash memory 3 having a relatively small block size as a data erasing unit is used. As shown in FIG. 2, the virtual block 20 includes a plurality of records 30 as a data management unit.

図4に示すように、レコード30は、それぞれがブロック1つ分の領域であるデータブロック70と管理ブロック80とに区分される。つまり、レコード30は、データブロック70と管理ブロック80との組である。具体的には、データブロック70は、複数種類のデータを識別するための識別子であるデータ識別子と、データ識別子ごとのデータの値であるデータ値と、を記録するための領域である。図5に示すように、データ識別子は、例えば変数の名前であり、データ値は、例えば変数の値である。また、管理ブロック80は、データブロックに記録されているデータ値が有効か無効かを示すフラグを記録するための領域である。   As shown in FIG. 4, the record 30 is divided into a data block 70 and a management block 80, each of which is an area for one block. That is, the record 30 is a set of the data block 70 and the management block 80. Specifically, the data block 70 is an area for recording a data identifier that is an identifier for identifying a plurality of types of data and a data value that is a data value for each data identifier. As shown in FIG. 5, the data identifier is, for example, the name of a variable, and the data value is, for example, the value of a variable. The management block 80 is an area for recording a flag indicating whether the data value recorded in the data block is valid or invalid.

あるデータ識別子のデータのデータ値は、そのデータがとり得る複数種類のデータ値のうちの1つに選択的に定まる。換言すれば、同じデータ識別子を有するレコード30が複数存在する場合にも、後述する更新処理の途中の状態を除き、有効を示すフラグを有するレコード30は1つである。つまり、特定のデータ識別子のデータのデータ値は、そのデータ識別子を有するレコードに記録されているフラグを有効又は無効に切り替えることにより更新される。具体的には、フラグが有効を示していることは、当該フラグを有するレコード30のデータ値が、同じデータ識別子を有するレコード30のうち、最新のデータ値であることを意味している。逆に、フラグが無効を示していることは、当該フラグを有するレコード30のデータ値が、同じデータ識別子を有するレコード30のうち、最新のデータ値でないことを意味している。   The data value of data of a certain data identifier is selectively determined as one of a plurality of types of data values that the data can take. In other words, even when there are a plurality of records 30 having the same data identifier, there is only one record 30 having a flag indicating validity, except for a state in the middle of update processing described later. That is, the data value of the data of a specific data identifier is updated by switching the flag recorded in the record having the data identifier to valid or invalid. Specifically, the fact that the flag indicates that the data value of the record 30 having the flag is the latest data value of the records 30 having the same data identifier. On the contrary, the fact that the flag indicates invalid means that the data value of the record 30 having the flag is not the latest data value of the records 30 having the same data identifier.

[1−3.消去動作]
第1実施形態におけるフラッシュメモリ3の消去動作について説明する。第1実施形態で用いられるフラッシュメモリ3は、ビット値を消去する処理が行われた領域が、ビット値が確定しない状態である消去状態となり、消去状態の領域に「0」又は「1」のビット値が書き込まれると、ビット値が確定した状態である非消去状態となるように構成されている。なお、このような消去状態はブランクと呼ばれる。
[1-3. Erase operation]
An erase operation of the flash memory 3 in the first embodiment will be described. In the flash memory 3 used in the first embodiment, the area where the processing for erasing the bit value is performed is an erasing state in which the bit value is not fixed, and the area in the erasing state is “0” or “1”. When the bit value is written, it is configured to be in a non-erased state in which the bit value is determined. Such an erased state is called a blank.

以下、第1実施形態におけるフラッシュメモリ3の消去動作の具体例を図6を用いて説明する。
例えば図6の(A)のように「00001111」という8つのビット値が書き込まれた非消去状態のブロックに対し、データを消去する処理が行われると、図6の(B)のように、当該ブロック内のビット値が不定の状態になる。なお、上述したように、消去状態は、ビット値が「0」にも「1」にも確定せず、読み出すタイミングによっていずれのビット値が読み出されるか分からない状態であり、図6の(B)に示した8つのビット値「10110011」は、ある時点におけるビット値の一例を示している。消去状態か否かは、CPU5に付随するブランクチェックという機能を用いることで特定することができる。この状態から例えば図6の(C)のように「11110000」という8つのビット値が書き込まれると、書き込まれたビット値に確定し、非消去状態になる。
Hereinafter, a specific example of the erase operation of the flash memory 3 in the first embodiment will be described with reference to FIG.
For example, when a process for erasing data is performed on a non-erased block in which eight bit values “00001111” are written as shown in FIG. 6A, as shown in FIG. The bit value in the block becomes indefinite. As described above, the erase state is a state in which the bit value is not determined to be “0” or “1”, and it is not known which bit value is read out according to the read timing. The eight bit values “10110011” shown in () indicate an example of the bit values at a certain point in time. Whether or not it is in the erased state can be specified by using a function called blank check attached to the CPU 5. When eight bit values “11110000” are written from this state, for example, as shown in FIG. 6C, the written bit value is determined and a non-erased state is entered.

[1−4.データの更新処理]
図7を用いて、第1実施形態におけるフラグの書き換えについて説明する。フラグの書き換えは、[1−3]項で示したような第1実施形態におけるフラッシュメモリ3の特性を活用して行う。
[1-4. Data update process]
The rewriting of the flag in the first embodiment will be described with reference to FIG. The rewriting of the flag is performed by utilizing the characteristics of the flash memory 3 in the first embodiment as shown in [1-3].

図7に示すように、管理ブロック80は、複数の領域、本実施形態では8つの領域に区分される。これらの領域のうち、非消去状態の領域の数である非消去領域数が偶数のとき、フラグは有効を示し、非消去領域数が奇数のとき、フラグは無効を示す。   As shown in FIG. 7, the management block 80 is divided into a plurality of areas, in this embodiment, eight areas. Among these areas, when the number of non-erased areas, which is the number of non-erased areas, is even, the flag indicates valid, and when the number of non-erasable areas is odd, the flag indicates invalid.

次に図8を用いて、CPU5がROM11に記録されているフラッシュドライバのプログラムに従い実行する更新処理(更新方法)について説明する。更新処理とは、更新対象データのデータ識別子について、データ値を第1の値から第2の値に更新することである。以下の説明では、データブロック70に更新対象データのデータ識別子及び第1の値が記録され、管理ブロック80に有効を示すフラグが記録されているレコード30を、更新前レコードと称する。また、データブロック70に更新対象データのデータ識別子及び第2の値が記録され、管理ブロック80に無効を示すフラグが記録されているレコード30を、再利用可能レコードと称する。   Next, update processing (update method) executed by the CPU 5 in accordance with the flash driver program recorded in the ROM 11 will be described with reference to FIG. The update process is to update the data value from the first value to the second value for the data identifier of the update target data. In the following description, the record 30 in which the data identifier and the first value of the update target data are recorded in the data block 70 and the flag indicating validity is recorded in the management block 80 is referred to as a pre-update record. In addition, the record 30 in which the data identifier and the second value of the update target data are recorded in the data block 70 and the invalid flag is recorded in the management block 80 is referred to as a reusable record.

更新処理は、CPU5が、データの更新要求を受け取ることにより開始される。ステップ110では、再利用可能レコードを検索し、検索された再利用可能レコードの管理ブロック80に対し、データを消去する処理を行う必要があるか否かを判断する。ここで肯定判断されるとステップ120に進む。一方、否定判断されると、ステップ130に進む。なお、再利用可能レコードが検索されなかった場合には、更新後のデータ値のレコードを追記してステップ130に進み、再利用可能レコードに対する処理を、追記したレコードに対して行う。   The update process is started when the CPU 5 receives a data update request. In step 110, a reusable record is searched, and it is determined whether or not it is necessary to perform processing for deleting data for the management block 80 of the searched reusable record. If a positive determination is made here, the routine proceeds to step 120. On the other hand, if a negative determination is made, the process proceeds to step 130. If no reusable record is found, the record of the updated data value is added and the process proceeds to step 130, and the process for the reusable record is performed on the added record.

再利用可能レコードの管理ブロック80のデータを消去する必要がある場合とは、データを消去しない限り、当該管理ブロック80の非消去領域数を、更新前レコードの管理ブロック80の非消去領域数の次の偶数にすることができない場合である。すなわち、第1実施形態では、再利用可能レコードの非消去領域数を、更新前レコードの非消去領域数の次の偶数となるように更新する。非消去領域数の最大値は8であるため、ここでいう「次の偶数」は、2→4→6→8→2→…の順で循環的に連続すると考える。例えば、再利用可能レコードの非消去領域数が、更新前レコードの非消去領域数の次の偶数よりも大きな値である場合、いったんデータを消去する必要がある。このため、更新前レコードを検索し、検索された更新前レコードの非消去領域数に基づいて、再利用可能レコードの管理ブロック80のデータを消去する必要があるか否かを判断する。   When the data in the management block 80 of the reusable record needs to be erased, unless the data is erased, the number of non-erased areas in the management block 80 is equal to the number of non-erased areas in the management block 80 of the record before update. This is the case when the next even number cannot be set. In other words, in the first embodiment, the number of non-erasable areas of the reusable record is updated to be the next even number after the number of non-erasable areas of the record before update. Since the maximum value of the number of non-erased areas is 8, it is considered that the “next even number” here is cyclically continuous in the order of 2 → 4 → 6 → 8 → 2 →. For example, if the number of non-erasable areas in the reusable record is larger than the next even number after the number of non-erasable areas in the pre-update record, it is necessary to erase the data once. Therefore, the pre-update record is searched, and it is determined whether or not the data in the reusable record management block 80 needs to be deleted based on the number of non-erased areas of the searched pre-update record.

ステップ120では、再利用可能レコードの管理ブロック80のデータを消去する。これにより、再利用可能レコードの管理ブロック80を構成する領域はすべて消去領域になる。ステップ120の後、ステップ130に進む。   In step 120, the data in the reusable record management block 80 is erased. As a result, all areas constituting the reusable record management block 80 are erased areas. After step 120, the process proceeds to step 130.

ステップ130では、再利用可能レコードの非消去領域数が、更新前レコードの管理ブロック80の非消去領域数の次の偶数となるように、データの書き込みを行う。つまり、管理ブロック80における必要数の消去領域を非消去領域にする。例えば、更新前レコードの非消去領域数が2であり、再利用可能レコードの非消去領域数が1である場合、再利用可能レコードの非消去領域数が4になるように、3つの消去領域を非消去領域にする。これにより、再利用可能レコードの非消去領域数が偶数となり、再利用可能レコードのフラグを無効を示す状態から有効を示す状態に変更する処理である有効化処理が行われる。   In step 130, data is written so that the number of non-erasable areas in the reusable record is the next even number after the number of non-erasable areas in the management block 80 of the record before update. That is, the required number of erase areas in the management block 80 is made non-erasable. For example, when the number of non-erasable areas of the record before update is 2 and the number of non-erasable areas of the reusable record is 1, three erase areas so that the number of non-erasable areas of the reusable record is 4 To the non-erased area. As a result, the number of non-erasable areas of the reusable record becomes an even number, and an enabling process is performed, which is a process of changing the flag of the reusable record from the invalid state to the valid state.

続くステップ140では、更新前レコードの管理ブロック80に消去領域があるか、換言すれば、管理ブロック80を構成する領域がすべて非消去領域であるか判断する。ここで否定判断されるとステップ150に進む。一方、肯定判断されるとステップ160に進む。   In subsequent step 140, it is determined whether or not there is an erase area in the management block 80 of the pre-update record, in other words, whether or not all areas constituting the management block 80 are non-erased areas. If a negative determination is made here, the routine proceeds to step 150. On the other hand, if an affirmative determination is made, the routine proceeds to step 160.

ステップ150では、更新前レコードの管理ブロック80のデータを消去する。これにより、更新前レコードの管理ブロック80を構成する領域はすべて消去領域になる。ステップ150の後、ステップ160に進む。   In step 150, the data in the management block 80 of the pre-update record is erased. As a result, all areas constituting the management block 80 of the pre-update record become erase areas. After step 150, the process proceeds to step 160.

ステップ160では、更新前レコードの管理ブロック80の消去領域の1つの領域に対して、データの書き込みを行い、非消去領域にする。これにより、更新前レコードの非消去領域数が奇数となり、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更する処理である無効化処理が行われる。   In step 160, data is written into one area of the erase area of the management block 80 of the pre-update record to make it a non-erasable area. As a result, the number of non-erased areas in the pre-update record becomes an odd number, and an invalidation process, which is a process of changing the flag of the pre-update record from a valid state to a invalid state, is performed.

ステップ160の後、データの更新処理は終了する。
以下、図9を用いて、データの更新処理の具体的事例について説明する。
更新対象データのデータ識別子であるデータAが、3種類のデータ値“0”、“1”、“2”をとり得るとし、“0”、“2”、“1”の順にデータ値を更新する処理について説明する。
After step 160, the data update process ends.
Hereinafter, specific examples of the data update process will be described with reference to FIG.
Assuming that data A, which is the data identifier of the update target data, can take three types of data values “0”, “1”, “2”, and the data values are updated in the order of “0”, “2”, “1”. Processing to be performed will be described.

まず、データA“0”からデータA“2”に更新する場合について説明する。この場合、図9の(A)に示すように、データブロック70にデータA“0”が記録され、管理ブロック80Aの非消去領域数が6である、つまり有効を示すフラグが記録されたレコードが更新前レコードに該当する。また、データブロック70にデータA“2”が記録され、管理ブロック80Cの非消去領域数が3である、つまり無効を示すフラグが記録されたレコードが再利用可能レコードに該当する。   First, a case where data A “0” is updated to data A “2” will be described. In this case, as shown in FIG. 9A, the data A “0” is recorded in the data block 70, and the number of non-erased areas in the management block 80A is 6, that is, a record in which a flag indicating validity is recorded. Corresponds to the pre-update record. A record in which data A “2” is recorded in the data block 70 and the number of non-erased areas in the management block 80C is 3, that is, a record in which a flag indicating invalidity is recorded corresponds to a reusable record.

まず、再利用可能レコードの管理ブロック80Cに対して、有効化処理を行う。有効化処理は、図9の(B)に示すように、再利用可能レコードの管理ブロック80Cの消去領域に、更新前レコードの管理ブロック80Aの非消去領域数(6つ)の次の偶数(8つ)まで書き込み、非消去領域にする。これにより、再利用可能レコードの管理ブロック80Cの非消去領域数は偶数となり、再利用可能レコードのフラグを無効を示す状態から有効を示す状態に変更される。次に、更新前レコードの管理ブロック80Aに対して、無効化処理を行う。無効化処理は、図9の(C)に示すように、更新前レコードの管理ブロック80Aの消去領域の1つの領域に対して、書き込みを実施し、非消去領域にする。これにより、更新前レコードの管理ブロック80Aの非消去領域数は奇数(7つ)となり、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更される。このような処理により、データA“0”からデータA“2”に更新される。   First, the validation process is performed on the reusable record management block 80C. As shown in FIG. 9B, the validation processing is performed by adding an even number (6) next to the number of non-erased areas (6) in the management block 80A of the record before update in the erase area of the management block 80C of the reusable record. Eight)), write to non-erasable area. As a result, the number of non-erasable areas in the reusable record management block 80C becomes an even number, and the flag of the reusable record is changed from the invalid state to the valid state. Next, invalidation processing is performed on the management block 80A of the record before update. In the invalidation process, as shown in FIG. 9C, writing is performed on one area of the erasure area of the management block 80A of the pre-update record to make it a non-erasure area. As a result, the number of non-erased areas in the management block 80A of the record before update becomes an odd number (seven), and the flag of the record before update is changed from a valid state to a invalid state. By such processing, data A “0” is updated to data A “2”.

次に、データA“2”からデータA“1”に更新する場合について説明する。この場合、図9の(C)に示すように、データブロック70にデータA“2”が記録され、管理ブロック80Cの非消去領域数が8つである、つまり有効を示すフラグが記録されたレコードが更新前レコードに該当する。また、データブロック70にデータA“1”が記録され、管理ブロック80Bの非消去領域数が5である、つまり無効を示すフラグが記録されたレコードが再利用可能レコードに該当する。   Next, a case where data A “2” is updated to data A “1” will be described. In this case, as shown in FIG. 9C, data A “2” is recorded in the data block 70, and the number of non-erasable areas in the management block 80C is 8, that is, a flag indicating validity is recorded. The record corresponds to the record before update. A record in which data A “1” is recorded in the data block 70 and the number of non-erasable areas in the management block 80B is 5, that is, a record in which a flag indicating invalidity is recorded corresponds to a reusable record.

まず、再利用可能レコードの管理ブロック80Bの非消去領域数を、更新前レコードの管理ブロック80Cの非消去領域数(8つ)の次の偶数(2個)にするため、再利用可能レコードの管理ブロック80Bをいったん消去する。そして、図9の(D)に示すように、すべて消去領域となった再利用可能レコードの管理ブロック80Bのうち2つの消去領域に書き込みを行い、非消去領域にする。これにより、再利用可能レコードの管理ブロック80Bの非消去領域数は偶数(2つ)となり、再利用可能レコードのフラグを無効を示す状態から有効を示す状態に変更される。次に、更新前レコードの管理ブロック80Cに消去領域がないため、更新前レコードの管理ブロック80Cを消去する。図9の(E)に示すように、すべて消去領域となった更新前レコードの管理ブロック80Cの消去領域の1つの領域に対して、書き込みを実施し、非消去領域にする。これにより、更新前レコードの管理ブロック80Cの非消去領域数(1つ)は奇数となり、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更される。このような処理により、データA“2”からデータA“1”に更新される。   First, in order to set the number of non-erasable areas in the management block 80B of the reusable record to the next even number (two) of the number of non-erasable areas (eight) in the management block 80C of the pre-update record, The management block 80B is once erased. Then, as shown in (D) of FIG. 9, writing is performed to two erasure areas in the management block 80B of the reusable record that has become all erasure areas, thereby making non-erasure areas. As a result, the number of non-erased areas in the reusable record management block 80B becomes an even number (two), and the flag of the reusable record is changed from the invalid state to the valid state. Next, since there is no erase area in the management block 80C of the record before update, the management block 80C of the record before update is erased. As shown in FIG. 9E, writing is performed to one area of the erasure area of the management block 80C of the record before update, which is all the erasure area, to make a non-erasure area. As a result, the number of non-erased areas (one) in the management block 80C of the record before update becomes an odd number, and the flag of the record before update is changed from a valid state to a invalid state. By such processing, data A “2” is updated to data A “1”.

[1−5.効果]
以上詳述した第1実施形態によれば、以下の効果が得られる。
(1a)第1実施形態のフラグは、管理ブロック80を構成する複数の領域のうち、非消去領域数が偶数のとき、データブロック70に記録されているデータ値が有効であることを示す。第1実施形態のフラグは、管理ブロック80を構成する複数の領域のうち、非消去領域数が奇数のとき、データブロック70に記録されているデータ値が無効であることを示す。
[1-5. effect]
According to the first embodiment described in detail above, the following effects can be obtained.
(1a) The flag of the first embodiment indicates that the data value recorded in the data block 70 is valid when the number of non-erased areas is an even number among the plurality of areas constituting the management block 80. The flag of the first embodiment indicates that the data value recorded in the data block 70 is invalid when the number of non-erased areas is an odd number among the plurality of areas constituting the management block 80.

このような構成によれば、更新対象のデータのデータ識別子のデータ値を更新する際、管理ブロック80の非消去領域数が奇数の無効を示す状態から、書き込みを実施することで、非消去領域数が偶数になり、有効を示す状態になる。そのため、無効を示すフラグが記録されていたレコード30を再利用することができる。   According to such a configuration, when the data value of the data identifier of the data to be updated is updated, writing is performed from a state in which the number of non-erased areas in the management block 80 indicates an odd number of invalid areas, thereby The number becomes an even number, indicating that it is valid. Therefore, the record 30 in which the flag indicating invalidity is recorded can be reused.

図10の(B)に示すように、データA“0”からデータA“1”に更新する場合、従来の手法では、データA“1”のレコード30をフラッシュメモリ3に追記する必要があった。しかし、図10の(A)に示すように、本開示の手法を用いると、レコード30を追記することなく、フラグを無効から有効に変更することにより、無効を示すフラグが記録されていたレコード30を再利用することができる。したがって、データ値を更新するたびに、無効を示すフラグが記録されているレコード30が増加することを抑制することができる。その結果、フラッシュメモリ3に記録されている全データ中において、有効を示すフラグが記録されているレコード30の割合が増加し、記録効率の低下を抑制することができる。   As shown in FIG. 10B, when data A “0” is updated to data A “1”, it is necessary to add a record 30 of data A “1” to the flash memory 3 in the conventional method. It was. However, as shown in FIG. 10A, when the method of the present disclosure is used, the record indicating the invalid flag is recorded by changing the flag from invalid to valid without adding the record 30. 30 can be reused. Therefore, it is possible to suppress an increase in the number of records 30 in which a flag indicating invalidity is recorded each time the data value is updated. As a result, the ratio of records 30 in which a flag indicating validity is recorded in all the data recorded in the flash memory 3 is increased, and a decrease in recording efficiency can be suppressed.

(1b)第1実施形態のフラグは、データブロック70に記録されているデータ値が有効か無効かを複数のビット値で管理されている。このような構成によれば、更新対象データのデータ識別子のデータ値を更新するたびに、管理ブロック80のデータを消去する必要はなく、データの更新が複数回できる。   (1b) The flag of the first embodiment manages whether the data value recorded in the data block 70 is valid or invalid with a plurality of bit values. According to such a configuration, it is not necessary to delete the data in the management block 80 every time the data value of the data identifier of the update target data is updated, and the data can be updated a plurality of times.

(1c)第1実施形態のフラグは、管理ブロック80を構成する複数の領域のうち非消去状態となっている領域の数によって、データブロック70に記録されているデータ値が有効か無効かを示す。このような構成によれば、レコード30を追記することなく、フラグを無効から有効に変更することにより、無効を示すフラグが記録されていたレコード30を再利用することができる。   (1c) The flag of the first embodiment indicates whether the data value recorded in the data block 70 is valid or invalid depending on the number of non-erased areas among the plurality of areas constituting the management block 80. Show. According to such a configuration, the record 30 in which the flag indicating invalidity is recorded can be reused by changing the flag from invalid to valid without adding the record 30.

(1d)第1実施形態の更新処理は、有効化処理の後に無効化処理を行う。具体的には、有効化処理では、再利用可能レコードの管理ブロック80の非消去領域数を、更新前レコードの管理ブロック80の非消去領域数の次の偶数にする。このような更新処理によれば、更新対象データのデータ識別子を有するレコード30について、フラグが有効を示すレコード30がどのタイミングにも必ず存在する。しかも、再利用可能レコードの非消去領域数と更新前レコードの非消去領域数とが同数になることがない。例えば、図10の(A)に示す本開示の手法では、データA“0”からデータA“1”に更新する場合、有効化処理後に、データA“1”が有効を示すフラグのレコード30とデータA“0”が有効を示すフラグのレコード30とが生じる。このタイミングで電源断等で更新処理が止まってしまった時、それぞれのレコード30の非消去領域数が同数ではないため、前に有効であったデータA“0”又は次に有効にすべきデータA“1”を判別することができる。   (1d) The update process of the first embodiment performs an invalidation process after the validation process. Specifically, in the validation process, the number of non-erased areas in the management block 80 of the reusable record is set to an even number next to the number of non-erased areas in the management block 80 of the record before update. According to such an update process, for the record 30 having the data identifier of the update target data, the record 30 whose flag is valid always exists at any timing. Moreover, the number of non-erasable areas of the reusable record and the number of non-erasable areas of the record before update are not the same. For example, in the method of the present disclosure shown in FIG. 10A, when updating from data A “0” to data A “1”, after the validation process, a record 30 of a flag indicating that data A “1” is valid And a flag record 30 indicating that the data A “0” is valid are generated. When the update process is stopped at this timing due to power interruption or the like, the number of non-erased areas in each record 30 is not the same, so the previously valid data A “0” or the next valid data A “1” can be discriminated.

したがって、第1実施形態の更新処理によれば、電源断等で更新処理が止まってしまったとしても、どのデータ値が更新処理の停止前に有効であったデータなのか、あるいは、次に有効にすべきデータなのかを特定することができる。   Therefore, according to the update process of the first embodiment, even if the update process is stopped due to power interruption or the like, which data value is the data that was valid before the update process was stopped, or the next valid value It is possible to specify whether the data should be made.

なお、第1実施形態では、データブロック70がデータ部に相当し、管理ブロック80が管理部に相当する。また、S110が検索部としての処理に相当し、S120〜S130が有効化部としての処理に相当し、S140〜S160が無効化部としての処理に相当する。また、フラッシュドライバのプログラムが情報管理プログラムに相当し、更新処理に従った更新方法が情報管理方法に相当する。   In the first embodiment, the data block 70 corresponds to a data part, and the management block 80 corresponds to a management part. Further, S110 corresponds to processing as a search unit, S120 to S130 correspond to processing as an enabling unit, and S140 to S160 correspond to processing as an invalidating unit. The flash driver program corresponds to the information management program, and the update method according to the update process corresponds to the information management method.

[2.第2実施形態]
[2−1.第1実施形態との相違点]
第2実施形態は、基本的な構成は第1実施形態と同様であるため、共通する構成については説明を省略し、相違点を中心に説明する。なお、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
[2. Second Embodiment]
[2-1. Difference from the first embodiment]
Since the basic configuration of the second embodiment is the same as that of the first embodiment, the description of the common configuration will be omitted, and the description will focus on the differences. Note that the same reference numerals as those in the first embodiment indicate the same configuration, and the preceding description is referred to.

前述した第1実施形態では、非消去領域数によりフラグの書き換えを行う。これに対し、第2実施形態では、複数ビットの値によりフラグの書き換えを行う点で第1実施形態と相違し、その相違点に伴い更新処理等が異なる。以下、異なる点を説明する。   In the first embodiment described above, the flag is rewritten according to the number of non-erased areas. On the other hand, the second embodiment is different from the first embodiment in that the flag is rewritten with a value of a plurality of bits, and the update processing and the like are different with the difference. Hereinafter, different points will be described.

[2−2.ブロック構造]
第2実施形態におけるフラッシュメモリ3は、図12に示すように、レコード30がデータ部600及び管理部610に区分されている。なお、第1実施形態では、データブロック70及び管理ブロック80のそれぞれが、消去単位としてのブロック1つ分で構成されていたが、第2実施形態では、データ部600及び管理部610は同一ブロックの一部で構成されている。つまり、第2実施形態における消去単位としてのブロックのサイズは、第1実施形態におけるブロックのサイズよりも大きいことが前提とされている。具体的には、第2実施形態のブロックのサイズは、第1実施形態における仮想ブロック20のサイズに相当する。
[2-2. Block structure]
In the flash memory 3 according to the second embodiment, the record 30 is divided into a data part 600 and a management part 610, as shown in FIG. In the first embodiment, each of the data block 70 and the management block 80 is configured by one block as an erasing unit. However, in the second embodiment, the data unit 600 and the management unit 610 are the same block. It consists of a part of. That is, it is assumed that the block size as the erase unit in the second embodiment is larger than the block size in the first embodiment. Specifically, the block size in the second embodiment corresponds to the size of the virtual block 20 in the first embodiment.

[2−3.消去動作]
第2実施形態におけるフラッシュメモリ3の消去動作について説明する。第2実施形態で用いられるフラッシュメモリ3は、ビット値「1」が書き込まれた領域にビット値「0」を書き込むことが可能である一方、ビット値「0」が書き込まれた領域にビット値「1」を書き込むことができず、データを消去する必要がある。データを消去すると、ブロック内のビットの値がすべて「1」になる。
[2-3. Erase operation]
An erase operation of the flash memory 3 in the second embodiment will be described. The flash memory 3 used in the second embodiment can write the bit value “0” in the area where the bit value “1” is written, while the bit value “0” is written in the area where the bit value “0” is written. “1” cannot be written, and data must be erased. When data is erased, the values of all bits in the block become “1”.

例えば図11の(A)のように「00000000」という8つのビット値が書き込まれた状態で、データの消去が行われると、図11の(B)のように8つのビット値がすべて「1」になる。次に、図11の(C)のように、左端の1ビットの領域にビット値「0」が書き込まれると、ビット値は「01111111」になる。   For example, when data is erased in a state where eight bit values “00000000” are written as shown in FIG. 11A, all eight bit values are “1” as shown in FIG. "become. Next, as shown in FIG. 11C, when the bit value “0” is written in the leftmost 1-bit area, the bit value becomes “01111111”.

[2−4.データの更新処理]
図12を用いて、第2実施形態におけるフラグの書き換えについて説明する。フラグの書き換えは、[2−3]項で示したような第2実施形態におけるフラッシュメモリ3の特性を活用して行う。まず、管理部610の複数ビットの値、本実施形態では8ビットの値が「11111111」のとき、フラグはデータ値が無効であることを示す。次に、「11111111」の左端の1ビットに書き込みを実施すると、「01111111」になり、フラグはデータ値が有効であることを示す。次に、「01111111」の書き込みが行われていない複数ビットの値「1111111」の左端の1ビットに書き込みを実施すると、「00111111」となり、フラグはデータ値が無効であることを示す。つまり、管理部610の8つのビット値のうち、「0」の数が奇数のとき、フラグは有効を示し、「0」の数が偶数のとき、フラグは無効を示す。このように管理部610の複数ビットの値に書き込みを繰り返し実施することにより、フラグは循環的に有効無効を切り替えることができる。有効無効を8回書き換えて、「00000000」になったら、管理部610の複数ビットの値が「11111111」のレコードを追記する。
[2-4. Data update process]
The flag rewriting in the second embodiment will be described with reference to FIG. The rewriting of the flag is performed by utilizing the characteristics of the flash memory 3 in the second embodiment as shown in the section [2-3]. First, when the multi-bit value of the management unit 610, in this embodiment, the 8-bit value is “11111111”, the flag indicates that the data value is invalid. Next, when writing is performed on the leftmost 1 bit of “11111111”, it becomes “01111111”, and the flag indicates that the data value is valid. Next, when writing is performed on the leftmost 1 bit of the multi-bit value “1111111” to which “01111111” has not been written, “00111111” is obtained, and the flag indicates that the data value is invalid. That is, among the eight bit values of the management unit 610, the flag indicates valid when the number of “0” is an odd number, and the flag indicates invalid when the number of “0” is an even number. As described above, by repeatedly writing to the multi-bit value of the management unit 610, the flag can be cyclically switched between valid and invalid. When the valid / invalid is rewritten 8 times and becomes “00000000”, a record in which the multi-bit value of the management unit 610 is “11111111” is added.

次に図13を用いて、CPU5がROM11に記録されているフラッシュドライバのプログラムに従い実行する更新処理(更新方法)について説明する。更新処理とは、更新対象データのデータ識別子について、データ値を第1の値から第2の値に更新することである。以下の説明では、データ部600に更新対象データのデータ識別子及び第1の値が記録され、管理部610に有効を示すフラグが記録されているレコード30を、更新前レコードと称する。また、データ部600に更新対象データのデータ識別子及び第2の値が記録され、管理部610に無効を示すフラグが記録されているレコード30を、再利用可能レコードと称する。   Next, update processing (update method) executed by the CPU 5 in accordance with the flash driver program recorded in the ROM 11 will be described with reference to FIG. The update process is to update the data value from the first value to the second value for the data identifier of the update target data. In the following description, the record 30 in which the data identifier and the first value of the update target data are recorded in the data unit 600 and the flag indicating validity is recorded in the management unit 610 is referred to as a pre-update record. In addition, the record 30 in which the data identifier and the second value of the update target data are recorded in the data unit 600 and the invalid flag is recorded in the management unit 610 is referred to as a reusable record.

更新処理は、CPU5が、データの更新要求を受け取ることにより開始される。ステップ710では、再利用可能レコードを検索し、データ値を更新するために更新後のデータ値のレコード30を追記する必要があるか否かを判断する。ここで肯定判断されるとステップ720に進む。一方、否定判断されると、ステップ730に進む。   The update process is started when the CPU 5 receives a data update request. In step 710, it is determined whether or not a reusable record is searched and it is necessary to add a record 30 of the updated data value in order to update the data value. If a positive determination is made here, the process proceeds to step 720. On the other hand, if a negative determination is made, the process proceeds to step 730.

更新後のデータ値のレコードを追記する必要がある場合とは、再利用可能レコードが検索されなかった場合、又は、検索された再利用可能レコードの管理部610の「0」の数を、更新前レコードの管理部610の「0」の数の次の奇数にすることができない場合である。すなわち、第2実施形態では、再利用可能レコードの管理部610の「0」の数を、更新前レコードの管理部610の「0」の数の次の奇数となるように更新する。「0」の数の最大値は8であるため、ここでいう「次の奇数」は、1→3→5→7→1…の順で循環的に連続すると考える。例えば、再利用可能レコードの管理部610のビット値がすべて「0」で埋まっている場合、再利用可能レコードの管理部610に更新前レコードの管理部610の「0」の数の次の奇数まで書き込むことができない。また例えば、再利用可能レコードの管理部610の「0」の数が、更新前レコードの管理部610の「0」の数の次の奇数よりも大きな値である場合も該当する。   The case where it is necessary to add the record of the updated data value is the case where the reusable record is not searched or the number of “0” in the management unit 610 of the searched reusable record is updated. This is a case where the next odd number after the number of “0” in the management unit 610 of the previous record cannot be set. That is, in the second embodiment, the number of “0” s in the reusable record management unit 610 is updated to be an odd number next to the number of “0” s in the management unit 610 of the record before update. Since the maximum value of the number of “0” is 8, it is considered that the “next odd number” here is cyclically continuous in the order of 1 → 3 → 5 → 7 → 1. For example, when the bit values of the reusable record management unit 610 are all filled with “0”, the reusable record management unit 610 includes an odd number next to the number “0” of the management unit 610 of the record before update. Can't write until. Further, for example, the case where the number of “0” in the reusable record management unit 610 is larger than the next odd number of the number of “0” in the management unit 610 of the pre-update record is also applicable.

ステップ720では、更新後のデータ値のレコードを追記する。具体的には、データ部600に更新対象データのデータ識別子及び第2の値が記録され、管理部610のビット値がすべて「1」のレコード30を追記する。ステップ720の後、ステップ730に進み、再利用可能レコードに対する処理を、追記したレコードに対して行う。   In step 720, a record of the updated data value is added. Specifically, the data identifier and the second value of the update target data are recorded in the data unit 600, and the record 30 in which all the bit values of the management unit 610 are “1” is added. After step 720, the process proceeds to step 730, and processing for the reusable record is performed on the added record.

ステップ730では、再利用可能レコードの管理部610の「0」の数が、更新前レコードの管理部610の「0」の数の次の奇数となるように書き込みを行う。これにより、再利用可能レコードのフラグを無効を示す状態から有効を示す状態に変更する処理である有効化処理が行われる。具体的には、更新前レコードの管理部610の「0」の数が2であり、再利用可能レコードの管理部610の「0」の数が3の場合、再利用可能レコードの管理部610の「0」の数が5になるように、3つのビット値を書き込む。   In step 730, writing is performed so that the number of “0” s in the reusable record management unit 610 is the next odd number after the number of “0” s in the management unit 610 of the pre-update record. As a result, the validation process, which is a process for changing the flag of the reusable record from the invalid state to the valid state, is performed. Specifically, when the number of “0” s in the management unit 610 of the pre-update record is 2 and the number of “0” s in the management unit 610 of the reusable record is 3, the management unit 610 of the reusable record Three bit values are written so that the number of “0” s in the table is 5.

続くステップ740では、更新前レコードの管理部610にビット値「1」が存在するか判断する。ここで否定判断されるとステップ750に進む。一方、肯定判断されるとステップ760に進む。   In subsequent step 740, it is determined whether or not the bit value “1” exists in the management unit 610 of the record before update. If a negative determination is made here, the routine proceeds to step 750. On the other hand, if a positive determination is made, the process proceeds to step 760.

ステップ750では、更新前レコードを追記する。ただし、第2実施形態では、管理部610の8つのビット値のうち、「0」の数が奇数のときフラグが有効を示すことを前提としており、更新前レコードの管理部610にビット値「1」が存在しない場合がないため、ステップ750は実施せずにステップ760に進むことになる。換言すれば、例えば「0」の数が偶数のときフラグが有効を示すことを前提とした構成であれば、ステップ750の処理が実行され得る。ステップ750の後、ステップ760に進む。   In step 750, the pre-update record is added. However, in the second embodiment, it is assumed that the flag indicates valid when the number of “0” is an odd number among the eight bit values of the management unit 610, and the bit value “ Since there is no case where “1” does not exist, step 750 is not performed and the process proceeds to step 760. In other words, for example, if the configuration is based on the premise that the flag is valid when the number of “0” is an even number, the process of step 750 can be executed. After step 750, the process proceeds to step 760.

ステップ760では、更新前レコードの管理部610の最小書き込み単位の「1」を「0」にする。具体的には、更新前レコードの管理部610「00011111」に、最小の書き込み単位の「1」を「0」にして、「00001111」にする。その結果、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更する処理である無効化処理が行われる。   In step 760, “1” as the minimum writing unit of the management unit 610 of the pre-update record is set to “0”. Specifically, in the management unit 610 “00011111” of the pre-update record, “1” as the minimum writing unit is set to “0” to “000011111”. As a result, an invalidation process, which is a process of changing the flag of the pre-update record from the valid state to the invalid state, is performed.

ステップ760の後、データの更新処理は終了する。
以下、図14を用いて、データの更新処理の具体的事例について説明する。
更新対象データのデータ識別子であるデータAが、3種類のデータ値“0”、“1”、“2”をとり得るとし、“0”、“2”、“1”の順にデータ値を更新する処理について説明する。
After step 760, the data update process ends.
Hereinafter, a specific example of the data update process will be described with reference to FIG.
Assuming that data A, which is the data identifier of the update target data, can take three types of data values “0”, “1”, “2”, and the data values are updated in the order of “0”, “2”, “1”. Processing to be performed will be described.

まず、データA“0”からデータA“2”に更新する場合について説明する。この場合、図14の(A)に示すように、データ部600にデータA“0”が記録され、管理部610Aに「00000111」が記録されている、つまり有効を示すフラグが記録されたレコードが更新前レコードに該当する。また、データ部600にデータA“2”が記録され、管理部610Cに「00111111」が記録されている、つまり無効を示すフラグが記録されたレコードが再利用可能レコードに該当する。   First, a case where data A “0” is updated to data A “2” will be described. In this case, as shown in FIG. 14A, data A “0” is recorded in the data portion 600 and “00000111” is recorded in the management portion 610A, that is, a record in which a flag indicating validity is recorded. Corresponds to the pre-update record. Further, a record in which data A “2” is recorded in the data part 600 and “00111111” is recorded in the management part 610C, that is, a record in which a flag indicating invalidity is recorded corresponds to a reusable record.

まず、再利用可能レコードの管理部610Cに対して、有効化処理を行う。有効化処理は、図14の(B)に示すように、再利用可能レコードの管理部610Cの「0」の数(2つ)が、更新前レコードの管理部610Aの「0」の数(5つ)の次の奇数(7つ)となるように、5つのビット値に「0」を書き込む。これにより、再利用可能レコードのフラグを無効を示す状態から有効を示す状態に変更される。次に、更新前レコードの管理部610Aに対して、無効化処理を行う。無効化処理は、図14の(C)に示すように、更新前レコードの管理部610Aの最小書き込み単位の「1」を「0」にする。これにより、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更される。このような処理により、データA“0”からデータA“2”に更新される。   First, the validation process is performed on the reusable record management unit 610C. As shown in FIG. 14B, the validation process is performed by changing the number of “0” s (two) in the reusable record management unit 610C to the number of “0” s in the management unit 610A of the pre-update record ( “0” is written in the five bit values so as to be the next odd number (seven) of five. As a result, the flag of the reusable record is changed from the invalid state to the valid state. Next, invalidation processing is performed on the management unit 610A of the record before update. In the invalidation process, as shown in FIG. 14C, the minimum write unit “1” of the management unit 610A of the pre-update record is set to “0”. As a result, the flag of the pre-update record is changed from a valid state to a invalid state. By such processing, data A “0” is updated to data A “2”.

次に、データA“2”からデータA“1”に更新する場合について説明する。この場合、図14の(C)に示すように、データ部600にデータA“2”が記録され、管理部610Cに「00000001」が記録されている、つまり有効を示すフラグが記録されたレコードが更新前レコードに該当する。また、データ部600にデータA“1”が記録され、管理部610Bに「00001111」が記録されている、つまり無効を示すフラグが記録されたレコードが再利用可能レコードに該当する。   Next, a case where data A “2” is updated to data A “1” will be described. In this case, as shown in FIG. 14C, data A “2” is recorded in the data part 600 and “00000001” is recorded in the management part 610C, that is, a record in which a flag indicating validity is recorded. Corresponds to the pre-update record. A record in which data A “1” is recorded in the data part 600 and “000011111” is recorded in the management part 610B, that is, a record in which a flag indicating invalidity is recorded corresponds to a reusable record.

まず、再利用可能レコードの管理部610Bの「0」の数(4つ)を、更新前レコードの管理部610Cの「0」の数(7つ)の次の奇数(1つ)にすることができないため、更新後のデータ値“1”のレコードを追記する。つまり、データ部600にデータA“1”が記録され、管理部610Dのビット値がすべて「1」のレコード30を追記する。そして、図14の(D)に示すように、更新後のデータ値のレコードの管理部610Dの「0」の数が、更新前レコードの管理部610Cの「0」の数(7つ)の次の奇数(1つ)となるように書き込む。これにより、更新後のデータ値“1”のレコードのフラグを無効を示す状態から有効を示す状態に変更される。次に、更新前レコードの管理部610Cの最小書き込み単位の「1」を「0」にする。これにより、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更される。このような処理により、データA“2”からデータA“1”に更新される。   First, the number (4) of “0” in the management unit 610B of the reusable record is set to an odd number (1) next to the number (7) of “0” in the management unit 610C of the record before update. Therefore, the record with the updated data value “1” is added. That is, data A “1” is recorded in the data portion 600, and a record 30 in which the bit values of the management portion 610D are all “1” is added. Then, as shown in FIG. 14D, the number of “0” s in the management unit 610D of the record of the data value after the update is the number (seven) of “0” s in the management unit 610C of the record before the update. Write to the next odd number (one). As a result, the flag of the record having the updated data value “1” is changed from the invalid state to the valid state. Next, “1” as the minimum writing unit of the management unit 610C of the pre-update record is set to “0”. As a result, the flag of the pre-update record is changed from a valid state to a invalid state. By such processing, data A “2” is updated to data A “1”.

[2−5.効果]
以上詳述した第2実施形態によれば、前述した第1実施形態の効果に加え、以下の効果が得られる。
[2-5. effect]
According to the second embodiment described in detail above, the following effects are obtained in addition to the effects of the first embodiment described above.

(2a)第2実施形態のフラグは、管理部610の8つのビット値のうち、「0」の数が奇数のとき有効を示し、「0」の数が偶数のとき無効を示す。このような構成によれば、フラグを無効から有効に変更することにより、無効を示すフラグが記録されていたレコード30を複数回再利用することができる。したがって、データ値を更新するたびに、無効を示すフラグが記録されているレコード30が増加することを抑制することができる。その結果、フラッシュメモリ3に記録されている全データ中において、有効を示すフラグが記録されているレコード30の割合が増加し、記録効率の低下を抑制することができる。   (2a) The flag of the second embodiment indicates valid when the number of “0” is odd among the eight bit values of the management unit 610, and indicates invalid when the number of “0” is even. According to such a configuration, the record 30 in which the flag indicating invalidity is recorded can be reused a plurality of times by changing the flag from invalid to valid. Therefore, it is possible to suppress an increase in the number of records 30 in which a flag indicating invalidity is recorded each time the data value is updated. As a result, the ratio of records 30 in which a flag indicating validity is recorded in all the data recorded in the flash memory 3 is increased, and a decrease in recording efficiency can be suppressed.

(2b)第2実施形態の更新処理は、有効化処理の後に無効化処理を行う。具体的には、有効化処理では、再利用可能レコードの管理部610に更新前レコードの管理部610の「0」の数の次の奇数にする。このような更新処理によれば、更新対象データのデータ識別子を有するレコード30について、フラグが有効を示すレコード30がどのタイミングにも必ず存在する。しかも、再利用可能レコードの「0」の数と更新前レコードの「0」の数とが同数になることがない。例えば、図10の(A)に示す本開示の手法では、データA“0”からデータA“1”に更新する場合、有効化処理後に、データA“1”が有効を示すフラグのレコード30とデータA“0”が有効を示すフラグのレコード30とが生じる。このタイミングで電源断等で更新処理が止まってしまった時、それぞれのレコード30の「0」の数が同数ではないため、前に有効であったデータA“0”又は次に有効にすべきデータA“1”を判別することができる。   (2b) The update process of the second embodiment performs an invalidation process after the validation process. Specifically, in the validation process, the reusable record management unit 610 is set to an odd number next to the number “0” of the management unit 610 of the record before update. According to such an update process, for the record 30 having the data identifier of the update target data, the record 30 whose flag is valid always exists at any timing. Moreover, the number of “0” s in the reusable record and the number of “0” s in the pre-update record are never the same. For example, in the method of the present disclosure shown in FIG. 10A, when updating from data A “0” to data A “1”, after the validation process, a record 30 of a flag indicating that data A “1” is valid And a flag record 30 indicating that the data A “0” is valid are generated. When the updating process is stopped at this timing due to power interruption or the like, the number of “0” in each record 30 is not the same, so the previously valid data A “0” or the next valid data A Data A “1” can be discriminated.

したがって、第2実施形態の更新処理によれば、電源断等で更新処理が止まってしまったとしても、どのデータ値が更新処理の停止前に有効であったデータなのか、あるいは、次に有効にすべきデータなのかを特定することができる。   Therefore, according to the update process of the second embodiment, even if the update process is stopped due to a power failure or the like, which data value is the data that was valid before the update process was stopped, or the next valid value It is possible to specify whether the data should be made.

なお、第2実施形態では、S710が検索部としての処理に相当し、S720〜S730が有効化部としての処理に相当し、S740〜S760が無効化部としての処理に相当する。   In the second embodiment, S710 corresponds to processing as a search unit, S720 to S730 correspond to processing as an enabling unit, and S740 to S760 correspond to processing as an invalidating unit.

[3.他の実施形態]
以上、本開示を実施するための形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
[3. Other Embodiments]
As mentioned above, although the form for implementing this indication was demonstrated, this indication is not limited to the above-mentioned embodiment, and can carry out various modifications.

(3a)上記第1実施形態において、フラグは、管理ブロック80を構成する複数の領域のうち、非消去領域数が偶数のとき、データブロック70に記録されているデータ値が有効であり、非消去領域数が奇数のとき、データブロック70に記録されているデータ値が無効である例を示したが、これに限定されるものではない。例えば、フラグは、管理ブロック80を構成する複数の領域のうち、非消去領域数が奇数のとき、データブロック70に記録されているデータ値が無効であり、非消去領域数が偶数のとき、データブロック70に記録されているデータ値が有効であってもよい。また、非消去領域数により、データブロック70に記録されているデータ値が有効か無効かを示すことができればよい。   (3a) In the first embodiment, when the number of non-erased areas is an even number among the plurality of areas constituting the management block 80, the flag indicates that the data value recorded in the data block 70 is valid, Although an example in which the data value recorded in the data block 70 is invalid when the number of erase areas is an odd number is shown, the present invention is not limited to this. For example, when the number of non-erased areas is an odd number among the plurality of areas constituting the management block 80, the flag indicates that the data value recorded in the data block 70 is invalid and the number of non-erased areas is an even number. The data value recorded in the data block 70 may be valid. Further, it is only necessary that the number of non-erasable areas can indicate whether the data value recorded in the data block 70 is valid or invalid.

(3b)上記第1実施形態において、管理ブロック80は8つの領域に区分される例を示したが、これに限定されるものではなく、7つ以下の領域や9つ以上の領域に区分されていてもよい。   (3b) In the first embodiment, the management block 80 is divided into eight areas. However, the management block 80 is not limited to this, and is divided into seven areas or less and nine or more areas. It may be.

(3c)上記第2実施形態において、フラグは、管理部610の8つのビット値のうち、「0」の数が奇数のとき有効を示し、「0」の数が偶数のとき無効を示す例を示したが、これに限定されるものではない。例えば、フラグは、管理部610の8つのビット値のうち、「0」の数が偶数のとき有効を示し、「0」の数が奇数のとき無効を示してもよい。   (3c) In the second embodiment, the flag indicates valid when the number of “0” is odd among the eight bit values of the management unit 610, and indicates invalid when the number of “0” is even. However, the present invention is not limited to this. For example, the flag may indicate valid when the number of “0” is an even number among the eight bit values of the management unit 610, and may indicate invalid when the number of “0” is an odd number.

(3d)上記第2実施形態において、管理部610は8ビットの値である例を示したが、これに限定されるものではなく、7ビット以下の値や9ビット以上の値であってもよい。   (3d) In the second embodiment, the management unit 610 has shown an example of an 8-bit value. However, the management unit 610 is not limited to this, and may be a value of 7 bits or less or a value of 9 bits or more. Good.

(3e)上記実施形態の構成は、ボデー系車両制御システムに適用されてもよい。例えば、車両に装備されたエアコン及びメータのうち少なくとも一方の有する機能がオン状態であるかオフ状態であるかを表す値が、データ値としてフラッシュメモリに記録されていてもよい。   (3e) The configuration of the above embodiment may be applied to a body system vehicle control system. For example, a value indicating whether a function of at least one of an air conditioner and a meter installed in the vehicle is in an on state or an off state may be recorded in the flash memory as a data value.

(3f)上記第1実施形態において、レコード30はデータブロック70と管理ブロック80の組である例を示したが、これに限定されるものではない。レコード30に少なくとも、データブロック70と管理ブロック80が記録されていればよい。   (3f) In the first embodiment, the record 30 is a set of the data block 70 and the management block 80. However, the present invention is not limited to this. It is sufficient that at least the data block 70 and the management block 80 are recorded in the record 30.

同様に、上記第2実施形態において、レコード30はデータ部600及び管理部610の組である例を示したが、これに限定されるものではない。レコード30に少なくとも、データ部600及び管理部610が記録されていればよい。   Similarly, in the second embodiment, an example in which the record 30 is a set of the data unit 600 and the management unit 610 is shown, but the present invention is not limited to this. It is sufficient that at least the data part 600 and the management part 610 are recorded in the record 30.

(3g)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。   (3g) A plurality of functions of one constituent element in the above embodiment may be realized by a plurality of constituent elements, or a single function of one constituent element may be realized by a plurality of constituent elements. . Further, a plurality of functions possessed by a plurality of constituent elements may be realized by one constituent element, or one function realized by a plurality of constituent elements may be realized by one constituent element. Moreover, you may abbreviate | omit a part of structure of the said embodiment. In addition, at least a part of the configuration of the above embodiment may be added to or replaced with the configuration of the other embodiment. In addition, all the aspects included in the technical idea specified only by the wording described in the claim are embodiment of this invention.

1…情報管理装置、3…フラッシュメモリ、5…CPU、7…I/O、9…フラッシュコントローラ、11…ROM、13…RAM、15…電源、20…仮想ブロック、30…レコード、70…データブロック、80,80A,80B,80C…管理ブロック、600…データ部、610,610A,610B,610C,610D…管理部 DESCRIPTION OF SYMBOLS 1 ... Information management apparatus, 3 ... Flash memory, 5 ... CPU, 7 ... I / O, 9 ... Flash controller, 11 ... ROM, 13 ... RAM, 15 ... Power supply, 20 ... Virtual block, 30 ... Record, 70 ... Data Block, 80, 80A, 80B, 80C ... management block, 600 ... data part, 610, 610A, 610B, 610C, 610D ... management part

Claims (10)

複数種類のデータを識別するための識別子であるデータ識別子及び前記データ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、前記データ部に記録されている前記データ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理装置(1)であって、
特定のデータ識別子の前記データ値を第1の値から第2の値に更新する際、前記データ部に前記特定のデータ識別子及び前記第2の値が記録され、前記管理部に無効を示す前記フラグが記録されている前記レコードである再利用可能レコードを、複数の前記レコードから検索する処理を行う検索部(5、S110、S710)と、
前記検索部により前記再利用可能レコードが検索された場合、前記再利用可能レコードの前記管理部に記録されている前記フラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理を行う有効化部(5、S120〜S130、S720〜S730)と、
前記データ部に前記特定のデータ識別子及び前記第1の値が記録され、前記管理部に有効を示す前記フラグが記録されている前記レコードである更新前レコードの前記管理部に記録されている前記フラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理を行う無効化部(5、S140〜S160、S740〜S760)と、
を備える情報管理装置。
A data identifier (70, 600) that is an area for recording a data identifier that is an identifier for identifying a plurality of types of data and a data value for each data identifier, and is recorded in the data portion A flash memory having a plurality of records (30) as a data management unit, which is a set of a management unit (80, 610) that is an area for recording a flag indicating whether the data value is valid or invalid. 3) is an information management device (1) for managing data updates,
When updating the data value of a specific data identifier from a first value to a second value, the specific data identifier and the second value are recorded in the data portion, and the management unit indicates invalidity A search unit (5, S110, S710) that performs a process of searching for a reusable record, which is the record in which the flag is recorded, from the plurality of records;
Validation, which is a process of changing the flag recorded in the management unit of the reusable record from a state indicating invalid to a state indicating valid when the reusable record is retrieved by the retrieval unit An enabling unit (5, S120 to S130, S720 to S730) that performs processing;
The specific data identifier and the first value are recorded in the data portion, and are recorded in the management portion of the pre-update record that is the record in which the flag indicating validity is recorded in the management portion An invalidation unit (5, S140 to S160, S740 to S760) that performs an invalidation process, which is a process of changing the flag from a valid state to a invalid state;
An information management device comprising:
請求項1に記載の情報管理装置であって、
前記フラグは、前記データ部に記録されている前記データ値が有効か無効かを複数のビット値で管理されている、情報管理装置。
The information management device according to claim 1,
The information management apparatus, wherein the flag manages whether the data value recorded in the data portion is valid or invalid with a plurality of bit values.
請求項1又は請求項2に記載の情報管理装置であって、
前記フラッシュメモリは、ビット値を消去する処理が行われた領域が、ビット値が確定しない状態である消去状態となり、前記消去状態の領域に「0」又は「1」のビット値が書き込まれると、ビット値が確定した状態である非消去状態となるように構成され、
前記管理部(80)は、複数の領域に区分され、
前記フラグは、前記管理部を構成する複数の領域のうち、前記非消去状態である領域の数である非消去領域数により、前記データ部(70)に記録されている前記データ値が有効か無効かを示す、情報管理装置。
The information management device according to claim 1 or 2,
In the flash memory, when the area where the bit value is erased is in an erased state where the bit value is not fixed, a bit value of “0” or “1” is written in the erased area. , Configured to be in a non-erased state where the bit value is confirmed,
The management unit (80) is divided into a plurality of areas,
The flag indicates whether the data value recorded in the data part (70) is valid according to the number of non-erased areas, which is the number of areas in the non-erased state among a plurality of areas constituting the management unit. An information management device indicating whether it is invalid.
請求項3に記載の情報管理装置であって、
前記無効化部(5、S140〜S160)は、前記有効化処理の後に前記無効化処理を行い、
前記有効化部(5、S120、S130)は、前記有効化処理で変更される前記フラグの前記有効化処理後の前記非消去領域数が、前記有効化処理の後の前記無効化処理で変更される前記フラグの前記無効化処理前の前記非消去領域数と同数にならないように、前記非消去領域数を変更する、情報管理装置。
The information management device according to claim 3,
The invalidation unit (5, S140 to S160) performs the invalidation process after the validation process,
The validation unit (5, S120, S130) changes the number of non-erased areas after the validation process of the flag changed by the validation process in the invalidation process after the validation process. An information management device that changes the number of non-erased areas so that the number of the non-erased areas before the invalidation process of the flag to be used is not the same.
請求項1又は請求項2に記載の情報管理装置であって、
前記管理部(610)は、複数ビットの値を前記フラグとして記録し、
前記フラグは、前記管理部に記録されている前記複数ビットの値により、前記データ部(600)に記録されている前記データ値が有効か無効かを示す、情報管理装置。
The information management device according to claim 1 or 2,
The management unit (610) records a value of a plurality of bits as the flag,
The information management apparatus, wherein the flag indicates whether the data value recorded in the data part (600) is valid or invalid based on a value of the plurality of bits recorded in the management part.
請求項1、請求項2又は請求項5に記載の情報管理装置であって、
前記管理部は、複数のビット値を前記フラグとして記録し、
前記フラグは、前記管理部に記録されている前記複数のビット値のうち、特定のビット値の数である特定ビット数により、前記データ部に記録されている前記データ値が有効か無効かを示す、情報管理装置。
The information management device according to claim 1, claim 2, or claim 5,
The management unit records a plurality of bit values as the flag,
The flag indicates whether the data value recorded in the data part is valid or invalid according to a specific bit number that is the number of specific bit values among the plurality of bit values recorded in the management part. Information management device shown.
請求項6に記載の情報管理装置であって、
前記無効化部(5、S740〜S760)は、前記有効化処理の後に前記無効化処理を行い、
前記有効化部(5、S720、S730)は、前記有効化処理で変更される前記フラグの前記有効化処理後の前記特定ビット数が、前記有効化処理の後の前記無効化処理で変更される前記フラグの前記無効化処理前の前記特定ビット数と同数にならないように、前記特定ビット数を変更する、情報管理装置。
The information management device according to claim 6,
The invalidation unit (5, S740 to S760) performs the invalidation process after the validation process,
In the validation unit (5, S720, S730), the number of specific bits after the validation process of the flag changed by the validation process is changed by the invalidation process after the validation process. An information management device that changes the number of specific bits so that the number of the specific bits before the invalidation processing of the flag is not the same.
請求項1から請求項7までのいずれか1項に記載の情報管理装置であって、
前記フラッシュメモリには、車両に装備されたエアコン及びメータのうち少なくとも一方の有する機能がオン状態であるかオフ状態であるかを表す値が、前記データ値として記録される、情報管理装置。
The information management device according to any one of claims 1 to 7,
An information management device in which a value indicating whether a function of at least one of an air conditioner and a meter installed in a vehicle is in an on state or an off state is recorded in the flash memory as the data value.
複数種類のデータを識別するための識別子であるデータ識別子及び前記データ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、前記データ部に記録されている前記データ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理方法であって、
特定のデータ識別子の前記データ値を第1の値から第2の値に更新する際、前記データ部に前記特定のデータ識別子及び前記第2の値が記録され、前記管理部に無効を示す前記フラグが記録されている前記レコードである再利用可能レコードを、複数の前記レコードから検索する処理(5、S110、S710)を行い、
前記検索部により前記再利用可能レコードが検索された場合、前記再利用可能レコードの前記管理部に記録されている前記フラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理(5、S120〜S130、S720〜S730)を行い、
前記データ部に前記特定のデータ識別子及び前記第1の値が記録され、前記管理部に有効を示す前記フラグが記録されている前記レコードである更新前レコードの前記管理部に記録されている前記フラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理(5、S140〜S160、S740〜S760)を行う、情報管理方法。
A data identifier (70, 600) that is an area for recording a data identifier that is an identifier for identifying a plurality of types of data and a data value for each data identifier, and is recorded in the data portion A flash memory having a plurality of records (30) as a data management unit, which is a set of a management unit (80, 610) that is an area for recording a flag indicating whether the data value is valid or invalid. 3) is an information management method for managing data updates,
When updating the data value of a specific data identifier from a first value to a second value, the specific data identifier and the second value are recorded in the data portion, and the management unit indicates invalidity A process (5, S110, S710) for searching for a reusable record, which is the record in which the flag is recorded, is performed from the plurality of records,
Validation, which is a process of changing the flag recorded in the management unit of the reusable record from a state indicating invalid to a state indicating valid when the reusable record is retrieved by the retrieval unit Process (5, S120 to S130, S720 to S730)
The specific data identifier and the first value are recorded in the data portion, and are recorded in the management portion of the pre-update record that is the record in which the flag indicating validity is recorded in the management portion An information management method for performing invalidation processing (5, S140 to S160, S740 to S760), which is processing for changing a flag from a valid state to a invalid state.
複数種類のデータを識別するための識別子であるデータ識別子及び前記データ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、前記データ部に記録されている前記データ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理装置(1)としてコンピュータを機能させるための情報管理プログラムであって、
特定のデータ識別子の前記データ値を第1の値から第2の値に更新する際、前記データ部に前記特定のデータ識別子及び前記第2の値が記録され、前記管理部に無効を示す前記フラグが記録されている前記レコードである再利用可能レコードを、複数の前記レコードから検索する処理を行う検索部(5、S110、S710)、
前記検索部により前記再利用可能レコードが検索された場合、前記再利用可能レコードの前記管理部に記録されている前記フラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理を行う有効化部(5、S120〜S130、S720〜S730)、及び、
前記データ部に前記特定のデータ識別子及び前記第1の値が記録され、前記管理部に有効を示す前記フラグが記録されている前記レコードである更新前レコードの前記管理部に記録されている前記フラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理を行う無効化部(5、S140〜S160、S740〜S760)、
としてコンピュータを機能させる情報管理プログラム。
A data identifier (70, 600) that is an area for recording a data identifier that is an identifier for identifying a plurality of types of data and a data value for each data identifier, and is recorded in the data portion A flash memory having a plurality of records (30) as a data management unit, which is a set of a management unit (80, 610) that is an area for recording a flag indicating whether the data value is valid or invalid. 3) An information management program for causing a computer to function as an information management device (1) for managing data updates,
When updating the data value of a specific data identifier from a first value to a second value, the specific data identifier and the second value are recorded in the data portion, and the management unit indicates invalidity A search unit (5, S110, S710) that performs a process of searching for a reusable record, which is the record in which the flag is recorded, from the plurality of records;
Validation, which is a process of changing the flag recorded in the management unit of the reusable record from a state indicating invalid to a state indicating valid when the reusable record is retrieved by the retrieval unit An enabling unit (5, S120 to S130, S720 to S730) that performs processing, and
The specific data identifier and the first value are recorded in the data portion, and are recorded in the management portion of the pre-update record that is the record in which the flag indicating validity is recorded in the management portion An invalidation unit (5, S140 to S160, S740 to S760) that performs an invalidation process that is a process of changing the flag from a valid state to a invalid state;
Information management program that makes a computer function as a computer.
JP2015250220A 2015-12-22 2015-12-22 INFORMATION MANAGEMENT DEVICE, INFORMATION MANAGEMENT METHOD, AND INFORMATION MANAGEMENT PROGRAM Expired - Fee Related JP6512091B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015250220A JP6512091B2 (en) 2015-12-22 2015-12-22 INFORMATION MANAGEMENT DEVICE, INFORMATION MANAGEMENT METHOD, AND INFORMATION MANAGEMENT PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015250220A JP6512091B2 (en) 2015-12-22 2015-12-22 INFORMATION MANAGEMENT DEVICE, INFORMATION MANAGEMENT METHOD, AND INFORMATION MANAGEMENT PROGRAM

Publications (2)

Publication Number Publication Date
JP2017117099A true JP2017117099A (en) 2017-06-29
JP6512091B2 JP6512091B2 (en) 2019-05-15

Family

ID=59234453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015250220A Expired - Fee Related JP6512091B2 (en) 2015-12-22 2015-12-22 INFORMATION MANAGEMENT DEVICE, INFORMATION MANAGEMENT METHOD, AND INFORMATION MANAGEMENT PROGRAM

Country Status (1)

Country Link
JP (1) JP6512091B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664195B2 (en) 2017-10-25 2020-05-26 Samsung Electronics Co., Ltd. Memory devices and methods for controlling the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250846A (en) * 2007-12-28 2010-11-04 Toshiba Corp Semiconductor storage device
JP2014215628A (en) * 2013-04-22 2014-11-17 株式会社デンソー Data storage device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250846A (en) * 2007-12-28 2010-11-04 Toshiba Corp Semiconductor storage device
JP2014215628A (en) * 2013-04-22 2014-11-17 株式会社デンソー Data storage device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10664195B2 (en) 2017-10-25 2020-05-26 Samsung Electronics Co., Ltd. Memory devices and methods for controlling the same

Also Published As

Publication number Publication date
JP6512091B2 (en) 2019-05-15

Similar Documents

Publication Publication Date Title
KR100725390B1 (en) Apparatus and method for storing data in nonvolatile cache memory considering update ratio
JP4766240B2 (en) File management method, apparatus, and program
KR101473344B1 (en) Apparatus using flash memory as storage and operation method for the same
CN102693184B (en) Handling dynamic and static data for a system having a non-volatile memory
US6865658B2 (en) Nonvolatile data management system using data segments and link information
JP2006235960A (en) Method for increasing speed of garbage collection
JP2004013895A (en) File system for flash memory
JP3827682B2 (en) Flash memory, mapping control apparatus and method therefor
KR100370893B1 (en) Flash memory unit and control method of flash memory
JP2007012058A (en) File system for storing transaction records in flash-like media
JP2005242897A (en) Flash disk drive
JP2007012056A (en) File system having authentication of postponed data integrity
JP2007012054A (en) Startup authentication of optimized file system integrity
KR101336258B1 (en) Apparatus and method of processing data of non-volatile memory
JP6008325B2 (en) Data storage system and control method thereof
JP5874525B2 (en) Control device, storage device, and storage control method
CN113094372A (en) Data access method, data access control device and data access system
JP2016062319A (en) Data reading device, program and data reading method
KR20110046118A (en) Adaptive logging apparatus and method
US7055083B2 (en) Method and apparatus for allocating CRC codes in a flash ROM
JP6512091B2 (en) INFORMATION MANAGEMENT DEVICE, INFORMATION MANAGEMENT METHOD, AND INFORMATION MANAGEMENT PROGRAM
Lee et al. RMSS: an efficient recovery management scheme on NAND flash memory based solid state disk
JP2011227802A (en) Data recording device
JP2007122419A (en) Non-volatile data update system, non-volatile data update method and program
KR100801072B1 (en) Flash memory device, mapping apparatus and method for the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190325

R151 Written notification of patent or utility model registration

Ref document number: 6512091

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees