JP2018045595A - 情報管理装置 - Google Patents

情報管理装置 Download PDF

Info

Publication number
JP2018045595A
JP2018045595A JP2016181757A JP2016181757A JP2018045595A JP 2018045595 A JP2018045595 A JP 2018045595A JP 2016181757 A JP2016181757 A JP 2016181757A JP 2016181757 A JP2016181757 A JP 2016181757A JP 2018045595 A JP2018045595 A JP 2018045595A
Authority
JP
Japan
Prior art keywords
data
area
unit
writing
written
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016181757A
Other languages
English (en)
Other versions
JP6561951B2 (ja
Inventor
洋平 藤田
Yohei Fujita
洋平 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2016181757A priority Critical patent/JP6561951B2/ja
Priority to DE102017215856.5A priority patent/DE102017215856B4/de
Publication of JP2018045595A publication Critical patent/JP2018045595A/ja
Application granted granted Critical
Publication of JP6561951B2 publication Critical patent/JP6561951B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

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

Abstract

【課題】記憶効率の低下を抑制する情報管理装置を提供すること。【解決手段】情報管理装置は、フラッシュメモリと書込部とを備える。フラッシュメモリは、データの消去及び書き込みが可能な第1の領域200において、データを消去する処理が行われた領域が、データが書き込まれる前の状態である第1の状態となり、第1の状態であるブランク領域にデータを書き込む処理が行われると、データが書き込まれた後の状態である第2の状態になるように構成される。書込部は、複数のデータをブランク領域で区分して第1の領域200に順に書き込むように構成される。【選択図】図5

Description

本開示は、情報管理装置に関する。
一般的にフラッシュメモリは、データの書き込み及び消去が可能であり、データの書き込み単位は2バイト或いは4バイトであるのに対して、データの消去単位は数十バイト〜数Kバイトのブロック単位である。また、フラッシュメモリにおいて、データの消去回数は限られている。このようなフラッシュメモリの特性により、データをできるだけ長く保持するために、1ブロックに複数のデータを記憶する手法がとられている。
この手法を用いた場合、複数のデータの中から所望のデータを検出するためには、各データの先頭の識別子を確実に判断する必要がある。しかし、先頭の識別子が「1」及び「0」のビット値で表現されていると、同じようにビット値で表現されているデータと混同してしまうおそれがあり、その誤判断を防止することが難しい。
そのため、特許文献1では、記憶領域をあらかじめ複数に分割することで、各分割領域の先頭のアドレスを固定値とし、各分割領域にデータを書き込む技術が提案されている。
特開平5−119777号公報
上述の特許文献1では、例えばある分割領域において当該分割領域の長さよりも短いデータ長のデータを書き込む場合、使用されない領域が発生してしまい、記憶効率が低下してしまう。
本開示の一側面は、こうした問題に鑑みてなされたものであり、記憶効率の低下を抑制する情報管理装置を提供することを目的とする。
本開示の一態様は、情報管理装置(1)であって、不揮発性メモリ(6)と、書込部(2,S32,S36,S92,S94)と、を備える。不揮発性メモリは、データの消去及び書き込みが可能な記憶領域において、データを消去する処理が行われた領域が、データが書き込まれる前の状態である第1の状態となり、第1の状態の領域であるブランク領域にデータを書き込む処理が行われると、データが書き込まれた後の状態である第2の状態になるように構成される。書込部は、複数のデータをブランク領域で区分して記憶領域に順に書き込むように構成される。
本開示の情報管理装置によれば、複数のデータをブランク領域で区分して記憶領域に順に書き込むため、使用されない領域が発生しにくい。そのため、記憶効率の低下を抑制することができる。
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
情報管理装置の構成を示すブロック図である。 フラッシュメモリの記憶領域を示す図である。 セルの状態の検出方法を示す図である。 記憶されるデータの様式を示す図である。 第1の領域に複数のデータが記憶される例を示した図である。 第1実施形態における書込処理を示すフローチャートである。 第1実施形態におけるデータ書込処理を示すフローチャートである。 書込対象のデータを書き込む処理の一例を示す図である。 退避処理の一例を示す図である。 データを無効にする処理の一例を示す図である。 読出処理を示すフローチャートである。 第2実施形態における書込処理を示すフローチャートである。 第2実施形態におけるデータ書込処理を示すフローチャートである。 移動処理の一例を示す図である。
以下、図面を参照しながら、本開示を実施するための形態を説明する。
[1.第1実施形態]
[1−1.構成]
図1を用いて情報管理装置1について説明する。情報管理装置1は、記憶媒体であるフラッシュメモリ6にデータを書き込んだり、そのデータを消去したりすることができる装置である。情報管理装置1は、CPU2と、ROM3と、RAM4と、フラッシュコントローラ5と、フラッシュメモリ6と、I/O7と、を備えている。情報管理装置1の各部へは、電源11から電力が供給されている。I/O7は、外部装置との入出力部として機能する入出力インターフェースである。
CPU2は、ROM3に記憶されているプログラムであるフラッシュドライバソフト8及びアプリケーションソフト9を実行することにより、情報管理装置1を統括制御する。具体的には、CPU2は、アプリケーションソフト9からのフラッシュメモリ6へのアクセス要求に応じてフラッシュドライバソフト8を実行することにより、フラッシュコントローラ5を介して、フラッシュメモリ6に対するデータの読み出し及び書き込みを制御する。
RAM4は、CPU2により使用される作業領域を有する揮発性メモリである。RAM4は、フラッシュメモリ6から読み出されたデータと、フラッシュメモリ6に書き込むデータと、を一時的に保持する機能を有する。
フラッシュコントローラ5は、CPU2から与えられる指令に基づいてフラッシュメモリ6に対する書込処理、読出処理、消去処理等を実行する。
フラッシュメモリ6は、CPU2により使用される記憶領域を有する不揮発性メモリである。フラッシュメモリ6の記憶領域は、消去単位であるブロック10を複数有している。
フラッシュメモリ6は、セルに「0」又は「1」のビット値を書き込むことでデータを記憶する。図2に示すように、データの書き込みは、数バイトのワードという単位で行われる。一方、データの消去は、書込単位であるワード単位よりも大きく、数十バイト〜数Kバイトのブロック10という単位で行われる。つまり、データの書き込みは、1ワードを1単位とするワード単位で行われ、データの消去は、1ブロックを1単位とするブロック単位で行われる。
データの消去が行われた後の状態をブランクといい、ブランクである領域をブランク領域という。データが書き込み済みの領域には、更なるデータの書き込み、つまり上書きができないため、データの書き込みはブランク領域に対して行われる。したがって、ブランク領域はデータが書き込まれる前の状態である第1の状態である。第1の状態であるブランク領域にデータを書き込む処理が行われると、書き込まれた後の状態である第2の状態の領域になる。
具体的には、フラッシュメモリ6は、データを消去するとビット値が「0」にも「1」にも確定しない第1の状態となり、第1の状態に対して書き込みが行われると、ビット値が「0」又は「1」に確定する第2の状態になる。
図3に示すように、ブランク領域であるか否かはブランクチェックというコマンドにより検出可能である。ブランクチェックはセルに対して行われる。ブランクチェックによって第1の状態であると判定された場合、つまりブランク領域である場合、「0」及び「1」のビット値のいずれかが読み出せるが、どちらが読み出せるかは定まらない。一方、ブランクチェックによって第2の状態であると判定された場合、つまりブランクでない場合、「0」又は「1」のビット値を読み出すことができる。
[1−2.書込処理]
図4を用いて、フラッシュメモリ6の記憶領域に記憶されるデータの様式について説明する。記憶されるデータは、先頭部12、管理部13、データ部14の順序の組み合わせを単位として記憶領域に記憶される。組み合わせ単位15は、先頭部12、管理部13、及びデータ部14の組み合わせを1単位とする。複数の組み合わせ単位15が記憶領域の先頭から連続して記憶されることにより、複数のデータが記憶される。例えば、図5に示すように、フラッシュメモリ6の記憶領域のうち特定のブロック10である第1の領域200に複数のデータが組み合わせ単位15として記憶される。なお、図中では、先頭部をS、後述するフラグをF、及び後述する識別子をIDで示している。
データ部14に記憶されるデータは、複数種類のデータを識別するための識別子、及び、識別子ごとのデータの値であるデータ値である。識別子は、データ部14の先頭に記憶され、例えば変数の名前である。データ値は、例えば変数の値である。識別子のデータ長及びデータ値のデータ長は任意の長さである。
先頭部12は、組み合わせ単位15の先頭に位置する、ワード単位1個分の領域である。この領域は常に第1の状態、つまりブランク領域である。複数の組み合わせ単位15が連続して記憶されることにより複数のデータが記憶されるため、それぞれの先頭部12によりデータの記憶位置が特定可能となる。
管理部13は、データ部14に記憶されているデータが有効か無効かを示すフラグを記憶するための領域であり、ワード単位1個分の領域である。管理部13が第1の状態であるブランク領域の場合フラグはデータが有効であることを示し、管理部13が第2の状態である場合フラグはデータが無効であることを示す。以下、データが有効であることを単に有効なデータともいい、データが無効であることを単に無効なデータともいう。
ここで、データが有効であるとは、当該有効なデータのデータ値が、同じ識別子を有するデータ値のうち、最新のデータ値であることを意味している。逆に、データが無効であるとは、当該無効なデータのデータ値が、同じ識別子を有するデータ値のうち、最新のデータ値でないことを意味している。つまり、同じ識別子を有するデータ値が複数存在する場合でも、原則、有効なデータを示すフラグを有するデータ値は一つである。そして、データを有効又は無効に切り替えること、つまり、フラグを第1の状態又は第2の状態に切り替えることにより、特定の識別子のデータは更新される。
次に図6を用いて、フラッシュメモリ6の記憶領域の第1の領域200にデータを書き込む書込処理について説明する。書込処理はCPU2が書込対象のデータを書き込む要求を受け取ることにより開始される。
ステップ21では、CPU2は、第1の領域200の先頭からブランクチェックを行い、ブランク領域を検出する処理を行う。ワード単位1個分のブランク領域が検出されると、ステップ22に進む。
ステップ22では、CPU2は、ステップ21で検出された領域を先頭部12とする組み合わせ単位15にデータが存在するか否を判定する処理を行う。換言すれば、CPU2は、ステップ21で検出されたワード単位の領域を1番目の領域とし、それに続く2番目のワード単位の領域を管理部13とみなし、3番目のワード単位の領域をデータ部14の先頭部分とみなして、データが存在するか否かの判定をする処理を行う。
具体的には、CPU2は、3番目のワード単位の領域に対してブランクチェックを行う。CPU2は、3番目のワード単位の領域が第2の状態である場合、データ部14の先頭に書き込みが行われているため、ステップ21で検出された領域を先頭部12とする組み合わせ単位15にデータが存在すると判定する処理を行う。一方、CPU2は、3番目のワード単位の領域が第1の状態、つまりブランク領域である場合、データ部14の先頭に書き込みが行われていないため、ステップ21で検出された領域を先頭部12とする組み合わせ単位15にデータが存在しないと判定する処理を行う。ここで、ステップ21で検出された領域を先頭部12とする組み合わせ単位15にデータが存在しないことは、第1の領域200の先頭から連続して記憶されている組み合わせ単位15のうち末尾の組み合わせ単位15に続くブランク領域、つまり空き領域であることを意味する。
ステップ22で肯定判定されると、ステップ23に進む。ステップ23では、CPU2は、ステップ22で判定されたデータが有効なデータであるか否かを判定する処理を行う。具体的には、CPU2は、ステップ22で処理された3番目のワード単位の領域の前の2番目のワード単位の領域に対してブランクチェックを行うことにより、ステップ22で判定されたデータが有効なデータであるか否かを判定する処理を行う。CPU2は、2番目のワード単位の領域つまりフラグが第1の状態である場合、ステップ22で判定されたデータが有効であると判定する処理を行う。一方、CPU2は、2番目のワード単位の領域つまりフラグが第2の状態である場合、ステップ22で判定されたデータが無効であると判定する処理を行う。
ステップ23で否定判定されると、ステップ21に戻る。ステップ21では、CPU2は、1つ前のステップ21で検出された領域を先頭部12とする組み合わせ単位15の次の組み合わせ単位15の先頭部12としてのブランク領域を検出する処理を行う。ステップ23で肯定判定されると、ステップ24に進む。
ステップ24では、CPU2は、ステップ23で判定された有効なデータを有する組み合わせ単位15の識別子が書込対象の識別子と同じ識別子であるか否かを判定する処理を行う。具体的には、CPU2は、ステップ23で処理された2番目のワード単位の領域の次の3番目のワード単位の領域以降の領域に書き込まれたビット値に基づいて、識別子を判定する処理を行う。
ステップ24で否定判定されると、ステップ21に戻る。ステップ21では、ステップ23で否定判定された場合と同様に、CPU2は、1つ前のステップ21で検出された領域を先頭部12とする組み合わせ単位15の次の組み合わせ単位15の先頭部12としてのブランク領域を検出する処理を行う。ステップ24で肯定判定されると、ステップ25に進む。
ステップ25では、CPU2はデータ書込処理を行う。データ書込処理の具体的内容は、図7を用いて説明する。
まず、ステップ31では、CPU2は、空き領域に書込対象のデータを組み合わせ単位15として書き込む領域があるか否かを判定する処理を行う。ステップ31で肯定判定されると、ステップ32に進む。
ステップ32では、CPU2は、第1の領域200の先頭から連続して記憶されている組み合わせ単位15のうち末尾の組み合わせ単位15からワード単位2個分のブランク領域を空けて、3個目のワード単位のブランク領域から書込対象の識別子及びデータ値を書き込む処理を行う。具体例として、図5に記載した第1の領域200に対してステップ32の処理を行った後の図である図8を用いて説明する。図8に示すように、CPU2は、書込対象のデータを、ワード単位2個分のブランク領域51,52を先頭部12及び管理部13とし、3個目のワード単位以降の領域53をデータ部14とする組み合わせ単位15として、書き込む処理を行う。書き込まれた組み合わせ単位15の管理部13がブランク領域52であるため、書込対象のデータは有効なものとして書き込まれる。また、第1の領域200に記憶されている末尾の組み合わせ単位15の直後に書込対象の組み合わせ単位15が書き込まれることにより、複数の組み合わせ単位15が連続して記憶される。ステップ32の後、CPU2はデータ書込処理を終了し、ステップ26に進む。
一方、ステップ31で否定判定されると、ステップ33に進む。ステップ33では、CPU2は、データ部14に記憶されている有効なデータをRAM4に退避する処理を行う。具体例を図9に示す。図9の(A)に示すように第1の領域200に書込対象のデータを書き込む領域がない場合、矢印A1に示すようにフラグが第1の状態である組み合わせ単位61,62,63のデータ部14に記憶されている有効なデータをRAM4に退避する処理を行う。
ステップ33に続くステップ34では、CPU2は、ステップ33で退避する処理が行われた第1の領域200に記憶されているデータを消去する処理を行う。図9の(B)に示すように、消去後の領域は第1の状態であるブランク領域になる。
ステップ34に続くステップ35では、CPU2は、ステップ33で退避した有効なデータを、ステップ34でデータの消去が行われた第1の領域200に戻す処理を行う。例えば、図9に示す矢印A2に示すような処理が行われる。
ステップ35に続くステップ36では、CPU2は、ステップ35でデータが戻された第1の領域200の先頭から連続して記憶されている組み合わせ単位15のうち末尾の組み合わせ単位15からワード単位2個分のブランク領域を空けて、3個目のワード単位のブランク領域から書込対象の識別子及びデータ値を書き込む処理を行う。つまり、図9の(C)に示すように、書込対象のデータを組み合わせ単位66として記憶する。ステップ36の後、CPU2はデータ書込処理は終了し、ステップ26に進む。
ステップ26では、ステップ24で肯定判定された識別子を有する組み合わせ単位15のデータを無効にする処理を行う。ステップ26の具体例を図10に示す。図10は、図8に記載した第1の領域200に対してステップ26の処理を行った後の図である。図10に示すように、CPU2は、書込対象と同じ識別子を有する組み合わせ単位15のフラグを有する領域54に書き込みを行うことにより、データを無効にする処理を行う。これにより、書込処理を実行した直後に最新であったデータを古いデータとする。
このように、ステップ25及びステップ26の処理によって、書込対象のデータを最新のデータとして書き込み、書込対象と同じ識別子を有する組み合わせ単位15のデータを古いデータとすることで、データが更新される。ステップ26の後、CPU2は書込処理を終了する。
ステップ22で否定判定されると、ステップ27に進む。ステップ27では、CPU2は、ステップ25と同様に、データ書込処理を行う。つまり、ステップ31に続くステップ32の処理、又は、ステップ31に続くステップ33〜ステップ36の処理が行われる。ステップ32又はステップ36の後、CPU2はデータ書込処理を終了し、書込処理を終了する。
[1−3.読出処理]
図11を用いて、フラッシュメモリ6の記憶領域の第1の領域200に記憶されたデータを読み出す読出処理について説明する。読出処理はCPU2が読出対象のデータを読み出す要求を受け取ることにより開始される。
ステップ71では、CPU2は、第1の領域200の先頭からブランクチェックを行い、ブランク領域を検出する処理を行う。ワード単位1個分のブランク領域が検出されると、ステップ72に進む。
ステップ72では、CPU2は、ステップ71で検出された領域を先頭部12とする組み合わせ単位15にデータが存在するか否を判定する処理を行う。換言すれば、CPU2は、ステップ71で検出されたワード単位の領域を1番目の領域とし、それに続く2番目のワード単位の領域を管理部13とみなし、3番目のワード単位の領域をデータ部14の先頭部分とみなして、データが存在するか否かの判定をする処理を行う。具体的には、CPU2は、3番目のワード単位の領域に対してブランクチェックを行う。CPU2は、3番目のワード単位の領域が第2の状態である場合、ステップ71で検出された領域を先頭部12とする組み合わせ単位15にデータが存在すると判定する処理を行う。一方、CPU2は、3番目のワード単位の領域が第1の状態、つまりブランク領域である場合、ステップ71で検出された領域を先頭部12とする組み合わせ単位15にデータが存在しないと判定する処理を行う。ここで、ステップ71で検出された領域を先頭部12とする組み合わせ単位15にデータが存在しないことは、第1の領域200の先頭から連続して記憶されている組み合わせ単位15のうち末尾の組み合わせ単位15に続くブランク領域、つまり空き領域であることを意味する。
ステップ72で肯定判定されると、ステップ73に進む。ステップ73では、CPU2は、ステップ72で判定されたデータが有効なデータであるか否かを判定する処理を行う。具体的には、CPU2は、ステップ72で処理された3番目のワード単位の領域の前の2番目のワード単位の領域に対してブランクチェックを行うことにより、ステップ72で判定されたデータが有効なデータであるか否かを判定する処理を行う。CPU2は、2番目のワード単位の領域つまりフラグが第1の状態である場合、ステップ72で判定されたデータが有効であると判定する処理を行う。一方、CPU2は、2番目のワード単位の領域つまりフラグが第2の状態である場合、ステップ72で判定されたデータが無効であると判定する処理を行う。
ステップ73で否定判定されると、ステップ71に戻る。ステップ71では、CPU2は、1つ前のステップ71で検出された領域を先頭部12とする組み合わせ単位15の次の組み合わせ単位15の先頭部12としてのブランク領域を検出する処理を行う。ステップ73で肯定判定されると、ステップ74に進む。
ステップ74では、CPU2は、ステップ73で判定された有効なデータを有する組み合わせ単位15の識別子が読出対象の識別子であるか否かを判定する処理を行う。具体的には、CPU2は、ステップ73で処理された2番目のワード単位の領域の次の3番目のワード単位の領域以降の領域に書き込まれたビット値に基づいて、読出対象の識別子であるか否かを判定する処理を行う。
ステップ74で否定判定されると、ステップ71に戻る。ステップ71では、ステップ73で否定判定された場合と同様に、CPU2は、1つ前のステップ71で検出された領域を先頭部12とする組み合わせ単位15の次の組み合わせ単位15の先頭部12としてのブランク領域を検出する処理を行う。ステップ74で肯定判定されると、ステップ75に進む。
ステップ75では、CPU2は、ステップ74で読出対象の識別子であると判定された識別子を有する組み合わせ単位15のデータ部14に記憶されているデータを読み出す処理を行う。ステップ75の後、CPU2は読出処理を終了する。
ステップ72で否定判定されると、CPU2は、読出対象のデータが無いと判定して読出処理を終了する。
[1−4.効果]
以上詳述した第1実施形態によれば、以下の効果が得られる。
(1a)第1実施形態のCPU2は、複数の組み合わせ単位15が第1の領域200の先頭から連続して記憶されるようにデータを書き込む処理を行う。つまり、CPU2は、複数のデータをブランク領域で区分して記憶領域に順に書き込む処理を行う。そのため、例えば、記憶領域をあらかじめ複数に分割し各分割領域にデータを書き込むような情報管理装置ではデータ長の長さによっては使用されない領域が発生してしまうが、第1実施形態の情報管理装置1ではこのような使用されない領域が発生しにくい。そのため、記憶領域を効率的に使用することができる。
(1b)第1実施形態のCPU2は、第1の領域200からブランク領域を検出する処理を行う。そのため、データの先頭にアドレスを定めなくても、ブランク領域を検出することにより、データの記憶位置が特定可能となる。したがって、データの記憶位置に基づいて、読出対象のデータを読み出すことができる。
(1c)第1実施形態のCPU2は、データの先頭に識別子を書き込む処理を行う。また、CPU2は、データの先頭の識別子に基づき読出対象のデータを読み出す処理を行う。そのため、特定の識別子のデータを書き込むことができ、また、特定の識別子のデータを読み出すことができる。したがって、複数種類のデータを識別することができる。
(1d)第1実施形態のCPU2は、第1の領域200の先頭から連続して記憶されている組み合わせ単位15のうち末尾の組み合わせ単位15から書込対象を組み合わせ単位15として書き込む処理を行う。このように末尾に書き込むことにより、データ長にとらわれずにデータを書き込むことができる。
(1e)第1実施形態のCPU2は、書込対象の識別子と同じ有効なデータが存在する場合には、書込対象のデータの先頭にワード単位2個分のブランク領域を空けて書き込み、当該有効なデータを無効にする処理を行う。そのため、書込対象のデータを最新のデータとして書き込み、書込処理を実行した直後に最新であったデータを古いデータとすることができる。したがって、古いデータを消去することなく、データを更新することができる。
また、第1実施形態のCPU2は、データの有効又は無効、及びデータの識別子を判定する処理を行う。そのため、複数種類のデータの更新状態を識別できる。したがって、読出対象の最新のデータを読み出すことができる。
(1f)第1実施形態のCPU2は、書込対象のデータを組み合わせ単位15として第1の領域200の空き領域に書き込むことができない場合、つまり書き込み可能な領域が第1の領域200に不足している場合、有効なデータをRAM4に退避し、当該第1の領域200のデータを消去する処理を行う。そのため、記憶領域の第1の領域200すべてがデータで満たされたとしてもフラッシュメモリ6の記憶領域に書き込み可能な領域を確保することができ、データの書き込みが可能になる。
なお、第1実施形態では、フラッシュメモリ6が不揮発性メモリに相当し、S32及びS36を行うCPU2が書込部に相当し、S71〜S75を行うCPU2が読出部に相当する。また、S21及びS22を行うCPU2がブランク検出部に相当し、S23及びS24を行うCPU2がデータ検出部に相当し、S26を行うCPU2が無効処理部に相当し、管理部13がフラグ用領域に相当する。また、RAM4が記憶部に相当し、S33〜S35を行うCPU2が退避処理部に相当する。
[2.第2実施形態]
[2−1.第1実施形態との相違点]
第2実施形態は、基本的な構成は第1実施形態と同様であるため、相違点について以下に説明する。なお、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
前述した第1実施形態では、書込処理においてCPU2は第1の領域200に記憶された有効なデータをRAM4に退避させる処理を行う。これに対し、第2実施形態では、CPU2が第1の領域200に記憶された有効なデータを別のブロック10である第2の領域300に退避する処理を行う点で、第1実施形態と相違する。なお、第2の領域300は、フラッシュメモリ6の記憶領域の複数のブロック10のうちの1つであり、かつ第1の領域200とは異なるブロック10である。
[2−2.書込処理]
第2実施形態のCPU2が、図6及び図7に示す第1実施形態の書込処理に代えて実行する書込処理について、図12及び図13のフローチャートを用いて説明する。なお、図12におけるステップ81〜ステップ84の処理は、図6におけるステップ21〜ステップ24の処理と同様であるため、説明を省略する。
ステップ84で肯定判定されると、ステップ85に進む。ステップ85では、CPU2はデータ書込処理を行う。データ書込処理の具体的内容は、図13を用いて説明する。
まず、ステップ91では、CPU2は、空き領域に書込対象のデータを組み合わせ単位15として書き込む領域があるか否かを判定する処理を行う。ステップ91で肯定判定されると、ステップ92に進む。
ステップ92では、CPU2は、第1の領域200の先頭から連続して記憶されている組み合わせ単位15のうち末尾の組み合わせ単位15からワード単位2個分のブランク領域を空けて、3個目のワード単位のブランク領域から書込対象の識別子及びデータ値を書き込む処理を行う。ステップ92の後、CPU2はデータ書込処理を終了し、ステップ86に進む。
一方、ステップ91で否定判定されると、ステップ93に進む。ステップ93では、CPU2は、データ部14に記憶されている有効なデータを第2の領域300に退避する処理、換言すれば移動する処理を行う。具体例を図14に示す。図14の(A)に示すように第1の領域200に書込対象のデータを書き込む領域がない場合、矢印B1に示すようにフラグが第1の状態である組み合わせ単位101,102,103のデータ部14に記憶されている有効なデータを第2の領域300に退避する処理を行う。なお、退避する処理を行う前の第2の領域300は、図12の(B)に示すように、ブランク領域である。
ステップ93に続くステップ94では、CPU2は、有効なデータを退避した後の第2の領域300の先頭から連続して記憶されている組み合わせ単位15のうち末尾の組み合わせ単位15からワード単位2個分のブランク領域を空けて、3個目のワード単位のブランク領域から書込対象の識別子及びデータ値を書き込む処理を行う。つまり、図14の(D)に示すように、書込対象のデータを組み合わせ単位105として記憶する。
続くステップ95では、CPU2は、第1の領域200に記憶されているデータを消去する処理を行う。図12の(C)及び(E)に示すように、第1の領域200に記憶されているデータは消去される。ステップ95の後、CPU2はデータ書込処理を終了し、ステップ86に進む。
ステップ86では、ステップ84で肯定判定された識別子を有する組み合わせ単位15のデータを無効にする処理を行う。ステップ86の後、CPU2は書込処理を終了する。
ステップ82で否定判定されると、ステップ87に進む。ステップ87では、CPU2は、ステップ85と同様に、データ書込処理を行う。つまり、ステップ91に続くステップ92の処理、又は、ステップ91に続くステップ93〜ステップ95の処理が行われる。ステップ92又はステップ95の後、CPU2はデータ書込処理を終了し、書込処理を終了する。
[2−3.効果]
以上詳述した第2実施形態によれば、前述した第1実施形態の効果(1a)〜(1e)効果を奏し、さらに、以下の効果を奏する。
(2a)第2実施形態のCPU2は、書込対象のデータを組み合わせ単位15として書き込み可能な領域が第1の領域200に不足している場合、第2の領域300に退避させる処理を行う。第2の領域300は不揮発性メモリの記憶領域であるため、データの消去中に情報管理装置1の電源が遮断されたとしても、第2の領域300に記憶されているデータを保持し続けることができる。
なお、第2実施形態では、S92及びS94を行うCPU2が書込部に相当し、S81及びS82を行うCPU2がブランク検出部に相当し、S83及びS84を行うCPU2がデータ検出部に相当し、S86を行うCPU2が無効処理部に相当し、S93及びS95を行うCPU2が移動処理部に相当する。
[3.他の実施形態]
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
(3a)上記実施形態では、組み合わせ単位15は管理部13を含む組み合わせで構成されているが、組み合わせ単位は管理部を含んでいなくてもよい。組み合わせ単位が先頭部及びデータ部の組み合わせで構成されていてもよい。例えば、CPUが、ブロックの先頭から連続して記憶されている組み合わせ単位のうち末尾の組み合わせ単位からワード単位1個分のブランク領域を空けて、2個目のワード単位のブランク領域から書込対象のデータを書き込む処理を行う。これにより、組み合わせ単位が先頭部及びデータ部で構成されていたとしても、複数の組み合わせ単位が連続して記憶されるようにデータを書き込むことができる。また、読出対象のデータを読み出す場合、CPUは、後から書き込んだデータ、つまり第1の領域に記憶されている組み合わせ単位の末尾に近い側のデータを有効なデータと判断して、当該データを読み出す処理を行う。これにより、組み合わせ単位が先頭部及びデータ部で構成されていたとしても、読出対象の最新のデータを読み出すことができる。
(3b)上記実施形態では、データ部14に記憶されるデータが識別子及びデータ値である例を示したが、これに限定されるものではない。例えば、データ部に記憶されるデータがデータ値のみであってもよい。
(3c)上記実施形態では、CPU2が第1の領域200又は第2の領域300の先頭から検出されたブランク領域を1番目の領域とし更に3番目の領域を検出する処理を行うことにより、書込対象の書き込み開始位置を特定するが、書き込み開始位置の特定はこれに限定されるものではない。例えば、CPUがあるブロックの先頭からブランク領域が3つ以上連続している部分を検出する処理を行うことにより、書込対象の書き込み開始位置を特定してもよい。
(3d)上記実施形態では、先頭部12及び管理部13はワード単位1個分の領域である例を示したが、これに限定されるものではない。例えば、先頭部はワード単位2個以上としてもよく、管理部はワード単位2個以上としてもよい。
また、上記実施形態では、ブランク領域が第1の単位数としてワード単位3個連続している部分を記憶領域の先頭から順に検出する例を示したが、ワード単位4個以上連続している部分を検出してもよい。
また、上記実施形態では、第2の単位数としてワード単位2個分のブランク領域に続けてデータを書き込む例を示したが、第1の単位数よりも少ない第2の単位数のブランク領域に続けてデータを書き込んでもよい。なお、第2の単位数は少なくともワード単位1個分である。
(3e)上記第1実施形態では、CPU2は第1の領域200に記憶された有効なデータをRAM4に退避させる処理を行う例を示したが、退避先はRAM4に限定されるものではない。例えば、RAM4以外の揮発性メモリであってもよい。
(3f)上記実施形態では、ビット値が「0」にも「1」にも確定しない状態を第1の状態、ビット値が「0」又は「1」に確定した状態を第2の状態としたが、これに限定されるものではない。第1の状態はデータが書き込まれる前の状態であり、第2の状態はデータが書き込まれた後の状態であってもよい。
(3g)上記実施形態の情報管理装置1は、車両に搭載されて用いられてもよい。例えば、情報管理装置は、エンジン制御等の車両制御における学習値の記憶を更新する装置として使用してもよい。また、例えば、情報管理装置は、ダイアグ検出時に、故障時の自動車使用状況データであるフリーズフレームデータ等を記憶する装置として使用してもよい。本開示の情報管理装置は、例えば記憶領域をあらかじめ複数に分割し各分割領域にデータを書き込むような情報管理装置とは異なり、異なるデータ長の長さのデータを書き込んでも、使用されない領域が発生しにくい。そのため、異なるデータ長のデータを大量に有する当該自動車使用状況データを本開示の情報管理装置を用いて記憶するのは有効である。
(3h)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
(3i)上述したCPU2の他、当該CPU2を構成要素とする情報管理システム、上述した書込処理又は読出処理をコンピュータに実行させるための情報管理プログラム、この情報管理プログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、情報管理方法など、種々の形態で本開示を実現することもできる。
1…情報管理装置、2…CPU、6…フラッシュメモリ。

Claims (7)

  1. データの消去及び書き込みが可能な記憶領域において、データを消去する処理が行われた領域が、データが書き込まれる前の状態である第1の状態となり、前記第1の状態の領域であるブランク領域にデータを書き込む処理が行われると、データが書き込まれた後の状態である第2の状態になるように構成された不揮発性メモリ(6)と、
    複数のデータを前記ブランク領域で区分して前記記憶領域に順に書き込むように構成された書込部(2,S32,S36,S92,S94)と、
    を備えた情報管理装置(1)。
  2. 請求項1に記載の情報管理装置であって、
    前記記憶領域から読出対象のデータを読み出すように構成された読出部(2,S71〜S75)を更に備え、
    前記読出部は、前記記憶領域から前記ブランク領域を検出することにより、前記読出対象のデータを読み出すように構成された(2,S71)、情報管理装置。
  3. 請求項2に記載の情報管理装置であって、
    前記書込部は前記データの先頭にデータを識別する識別子を書き込むように構成され、
    前記読出部は前記データの先頭の前記識別子に基づき前記読出対象のデータを読み出すように構成された(2,S74)、情報管理装置。
  4. 請求項1から請求項3までのいずれか1項に記載の情報管理装置であって、
    前記記憶領域において、前記ブランク領域が第1の単位数以上連続している部分を前記記憶領域の先頭から順に検出するように構成されたブランク検出部(2,S21,S22,S81,S82)を更に備え、
    前記書込部は、前記ブランク検出部によって検出された部分を書き込み開始位置として、前記第1の単位数よりも少ない第2の単位数の前記ブランク領域に続けてデータを書き込むように構成された、情報管理装置。
  5. 請求項4に記載の情報管理装置であって、
    書込対象のデータを書き込むことにより矛盾することになる有効なデータを検出するように構成されたデータ検出部(2,S23,S24,S83,S84)と、
    前記データ検出部により前記有効なデータが検出された場合、前記書込対象のデータを書き込む代わりに前記有効なデータを無効にするように構成された無効処理部(2,S26,S86)と、
    を更に備え、
    前記第2の単位数の前記ブランク領域のうちの一部は前記第1の状態である場合に直後のデータが有効であることを示し、前記第2の状態である場合に直後のデータが無効であることを示すフラグ用領域(13)であり、
    前記無効処理部は、前記有効なデータの直前の前記フラグ用領域に値を書き込むことにより、前記有効なデータを無効にするように構成された、情報管理装置。
  6. 請求項5に記載の情報管理装置であって、
    前記書込対象を書き込み可能な領域が前記記憶領域に存在しない場合、前記記憶領域に記憶されている有効なデータを前記不揮発性メモリとは別の記憶部(4)に退避させた後に、前記記憶領域に記憶されているデータを消去し、退避させた有効なデータを消去した後の前記記憶領域に戻すように構成された退避処理部(2,S33〜S35)を更に備え、
    前記書込部は、前記退避処理部によって有効なデータが戻された前記記憶領域において、前記書込対象を書き込むように構成された(2,S36)、情報管理装置。
  7. 請求項5に記載の情報管理装置であって、
    前記記憶領域は消去単位である第1の領域(200)及び第2の領域(300)を有し、
    前記書込対象を書き込み可能な領域が前記第1の領域に存在しない場合、前記第1の領域に記憶されている有効なデータを、前記書込対象を書き込み可能な領域が存在する前記第2の領域に移動させた後に、前記第1の領域に記憶されているデータを消去するように構成された移動処理部(2,S93,S95)を更に備え、
    前記書込部は、前記移動処理部によって有効なデータが移動された前記第2の領域において、前記書込対象を書き込むように構成された(2,S94)、情報管理装置。
JP2016181757A 2016-09-16 2016-09-16 情報管理装置 Expired - Fee Related JP6561951B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016181757A JP6561951B2 (ja) 2016-09-16 2016-09-16 情報管理装置
DE102017215856.5A DE102017215856B4 (de) 2016-09-16 2017-09-08 Informationsmanagementvorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016181757A JP6561951B2 (ja) 2016-09-16 2016-09-16 情報管理装置

Publications (2)

Publication Number Publication Date
JP2018045595A true JP2018045595A (ja) 2018-03-22
JP6561951B2 JP6561951B2 (ja) 2019-08-21

Family

ID=61302603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016181757A Expired - Fee Related JP6561951B2 (ja) 2016-09-16 2016-09-16 情報管理装置

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117707434A (zh) * 2024-02-02 2024-03-15 深圳曦华科技有限公司 一种Flash的数据写入方法、装置、车辆以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009272028A (ja) * 2008-04-07 2009-11-19 Renesas Technology Corp 半導体集積回路およびその動作方法
JP2015082166A (ja) * 2013-10-22 2015-04-27 ルネサスエレクトロニクス株式会社 データ格納用フラッシュメモリの管理方法およびそのプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2785531B2 (ja) 1991-09-17 1998-08-13 ヤマハ株式会社 電子楽器
KR102015906B1 (ko) 2012-11-12 2019-08-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 읽기 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009272028A (ja) * 2008-04-07 2009-11-19 Renesas Technology Corp 半導体集積回路およびその動作方法
JP2015082166A (ja) * 2013-10-22 2015-04-27 ルネサスエレクトロニクス株式会社 データ格納用フラッシュメモリの管理方法およびそのプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117707434A (zh) * 2024-02-02 2024-03-15 深圳曦华科技有限公司 一种Flash的数据写入方法、装置、车辆以及存储介质
CN117707434B (zh) * 2024-02-02 2024-05-17 深圳曦华科技有限公司 一种Flash的数据写入方法、装置、车辆以及存储介质

Also Published As

Publication number Publication date
DE102017215856A1 (de) 2018-03-22
DE102017215856B4 (de) 2023-01-12
JP6561951B2 (ja) 2019-08-21

Similar Documents

Publication Publication Date Title
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US9367451B2 (en) Storage device management device and method for managing storage device
JP3692313B2 (ja) 不揮発性メモリの制御方法
JP5336060B2 (ja) 不揮発性メモリ装置およびそれを動作させる方法
KR100725390B1 (ko) 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
CN102693184B (zh) 处理具有非易失性存储器的系统的动态和静态数据
TW201833755A (zh) 資料儲存裝置及其資料維護方法
JP2004152302A (ja) 不揮発性メモリシステムにおいてブロックキャッシュを実行する方法および装置
CN106598493A (zh) 一种固态硬盘地址映射表管理方法
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
CN110674056A (zh) 一种垃圾回收方法及装置
CN109669889B (zh) 一种轻量型Nor Flash闪存控制方法和装置
JP2015191336A (ja) メモリ制御装置、情報処理装置とその制御方法、及びプログラム
JP2010182268A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5695112B2 (ja) データ記憶装置、データの記憶方法および車載用制御装置
JP6561951B2 (ja) 情報管理装置
US20140218767A1 (en) Image forming apparatus, memory management method for image forming apparatus, and program
JP2008047155A (ja) 一括消去型不揮発性メモリおよび携帯電話
JP6040895B2 (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
CN102033812A (zh) 用于管理闪存多个区块的方法和相关记忆装置及其控制器
JP6512091B2 (ja) 情報管理装置、情報管理方法及び情報管理プログラム
JP5787095B2 (ja) 不揮発性メモリへのデータ記憶方法
CN113703671B (zh) 一种数据块擦除方法及相关装置
CN107346288B (zh) 一种数据写入方法及装置
JP2013003655A (ja) フラッシュメモリにデータの書き込みを行う制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190529

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: 20190625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190708

R151 Written notification of patent or utility model registration

Ref document number: 6561951

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees