JP6512091B2 - 情報管理装置、情報管理方法及び情報管理プログラム - Google Patents

情報管理装置、情報管理方法及び情報管理プログラム Download PDF

Info

Publication number
JP6512091B2
JP6512091B2 JP2015250220A JP2015250220A JP6512091B2 JP 6512091 B2 JP6512091 B2 JP 6512091B2 JP 2015250220 A JP2015250220 A JP 2015250220A JP 2015250220 A JP2015250220 A JP 2015250220A JP 6512091 B2 JP6512091 B2 JP 6512091B2
Authority
JP
Japan
Prior art keywords
data
value
record
unit
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.)
Expired - Fee Related
Application number
JP2015250220A
Other languages
English (en)
Other versions
JP2017117099A (ja
Inventor
洋平 藤田
洋平 藤田
康志 神田
康志 神田
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/ja
Publication of JP2017117099A publication Critical patent/JP2017117099A/ja
Application granted granted Critical
Publication of JP6512091B2 publication Critical patent/JP6512091B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

本開示は、フラッシュメモリに対するデータの更新を管理する情報管理装置に関する。
フラッシュメモリは、データの消去及び書き込みが可能な記録媒体であり、広く利用されている。フラッシュメモリの記録領域は、1ビットの値であるビット値を記録可能なセルが多数集まって構成されている。フラッシュメモリのセルは、ビット値「1」が書き込まれたセルにビット値「0」を直接書き込むことが可能である一方、ビット値「0」が書き込まれたセルにビット値「1」を直接書き込むことができないという特性を有する。このため、フラッシュメモリにおいて、セルに記録されたビット値「0」をビット値「1」に書き換えるには、セルに記録されたビット値をいったん消去する必要がある。また、このような特性を有するフラッシュメモリ以外に、消去状態(ビット値が「0」にも「1」にも確定していない)に対して書き込みが行われると、非消去状態(ビット値が「0」又は「1」に確定している)になる特性を有するフラッシュメモリがある。このようなフラッシュメモリの場合、非消去状態のビット値を書き換えるには、いったん消去して非消去状態を消去状態にする必要がある。ただし、フラッシュメモリは、ビット値の消去が、セル単位ではなく、複数のセルで構成されたブロック単位でしか行えないという特性を有する。ブロック単位での消去には時間を要することや、データの書き込み及び消去の回数には制限があることなどから、データを消去する頻度をできるだけ減らすことが求められる。
特許文献1には、記録されるデータごとに、そのデータが有効であるか無効であるかを示すフラグが記録され、フラグの書き換えによりデータの更新を行う構成が提案されている。すなわち、この構成では、データ更新の際、既に記録されている更新前のデータについてのフラグが無効を示すように書き換えられるとともに、更新後のデータが有効を示すフラグとともに空き領域に新たに書き込まれる。したがって、更新前のデータを消去することなくデータの更新が可能となる。
特開2004−213263号公報
前述したような構成では、データが更新されるたびに無効化されたデータが増加するため、記録領域における無効化されたデータの割合が高くなり、記録効率が低下してしまう。
本開示の一側面は、フラッシュメモリの記録効率の低下を抑制することを目的としている。
本開示の一側面は、複数種類のデータを識別するための識別子であるデータ識別子及びデータ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、データ部に記録されているデータ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理装置(1)であって、検索部(5、S110、S710)、有効化部(5、S120〜S130、S720〜S730)及び無効化部(5、S140〜S160、S740〜S760)を備える。検索部は、特定のデータ識別子のデータ値を第1の値から第2の値に更新する際、データ部に特定のデータ識別子及び第2の値が記録され、管理部に無効を示すフラグが記録されているレコードである再利用可能レコードを、複数のレコードから検索する処理を行う。有効化部は、検索部により再利用可能レコードが検索された場合、再利用可能レコードの管理部に記録されているフラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理を行う。無効化部は、データ部に特定のデータ識別子及び第1の値が記録され、管理部に有効を示すフラグが記録されているレコードである更新前レコードの管理部に記録されているフラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理を行う。
また、本開示の別の側面は、複数種類のデータを識別するための識別子であるデータ識別子及びデータ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、データ部に記録されているデータ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理方法である。この情報管理方法では、特定のデータ識別子のデータ値を第1の値から第2の値に更新する際、データ部に特定のデータ識別子及び第2の値が記録され、管理部に無効を示すフラグが記録されているレコードである再利用可能レコードを、複数のレコードから検索する処理(5、S110、S710)を行い、検索部により再利用可能レコードが検索された場合、再利用可能レコードの管理部に記録されているフラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理(5、S120〜S130、S720〜S730)を行い、データ部に特定のデータ識別子及び第1の値が記録され、管理部に有効を示すフラグが記録されているレコードである更新前レコードの管理部に記録されているフラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理(5、S140〜S160、S740〜S760)を行う。
さらに、本開示の別の側面は、複数種類のデータを識別するための識別子であるデータ識別子及びデータ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、データ部に記録されているデータ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理装置(1)としてコンピュータを機能させるための情報管理プログラムであって、検索部(5、S110、S710)、有効化部(5、S120〜S130、S720〜S730)及び無効化部(5、S140〜S160、S740〜S760)としてコンピュータを機能させる。検索部は、特定のデータ識別子のデータ値を第1の値から第2の値に更新する際、データ部に特定のデータ識別子及び第2の値が記録され、管理部に無効を示すフラグが記録されているレコードである再利用可能レコードを、複数のレコードから検索する処理を行う。有効化部は、検索部により再利用可能レコードが検索された場合、再利用可能レコードの管理部に記録されているフラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理を行う。無効化部は、データ部に特定のデータ識別子及び第1の値が記録され、管理部に有効を示すフラグが記録されているレコードである更新前レコードの管理部に記録されているフラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理を行う。
このような構成によれば、特定のデータ識別子のデータ値を更新する際、フラグを無効を示す状態から有効を示す状態に変更する処理を行うことで、無効を示すフラグが記録されていたレコードを再利用することができる。そのため、データ値を更新するたびに、無効を示すフラグが記録されているレコードが増加することを抑制することができる。したがって、フラッシュメモリに記録されている全データ中において、有効を示すフラグが記録されているレコードの割合が増加し、記録効率の低下を抑制することができる。
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
第1実施形態の情報管理装置の構成を示すブロック図である。 第1実施形態のフラッシュメモリにおける複数の仮想ブロックを示す図である。 第1実施形態のフラッシュメモリにおける仮想ブロックを示す図である。 第1実施形態のフラッシュメモリにおけるレコードを示す図である。 第1実施形態のフラッシュメモリにおけるレコードの具体例を示す図である。 第1実施形態のフラッシュメモリにおける消去動作を示す図である。 第1実施形態のフラッシュメモリにおけるフラグの書き換えを示す図である。 第1実施形態のフラッシュメモリにおけるデータの更新処理を示すフローチャートである。 第1実施形態のフラッシュメモリにおけるデータの更新処理の具体的事例である。 本開示及び従来技術のフラッシュメモリにおける更新処理を示す図である。 第2実施形態のフラッシュメモリにおける消去動作を示す図である。 第2実施形態のフラッシュメモリにおけるフラグの書き換えを示す図である。 第2実施形態のフラッシュメモリにおけるデータの更新処理を示すフローチャートである。 第2実施形態のフラッシュメモリにおけるデータの更新処理の具体的事例である。
以下、図面を参照しながら、本開示を実施するための形態を説明する。
[1.第1実施形態]
[1−1.構成]
図1に示す情報管理装置1は、記録媒体であるフラッシュメモリ3にデータを書き込んだり、そのデータを消去したりすることができる装置である。情報管理装置1は、各種の演算処理を行う周知のCPU5と、外部装置との入出力部として機能するI/O7と、フラッシュメモリ3へのデータの書き込みやデータの消去を行うフラッシュコントローラ9と、各種のソフトウェア等を記録しているROM11と、周知のRAM13と、を備えている。
このうち、ROM11には、フラッシュコントローラ9の動作を制御するソフトウェアであるフラッシュドライバのプログラムや各種のアプリケーションソフトウェアのプログラムが記録されている。
なお、情報管理装置1やフラッシュメモリ3等へは、電源15から電力が供給されている。
[1−2.ブロック構造]
フラッシュメモリ3のデータ記録領域は、図2に示すように、複数の仮想ブロック20に区分される。図3に示すように、各仮想ブロック20は、フラッシュメモリ3におけるデータの消去単位であるブロックが複数集まって構成された仮想的なブロックである。換言すれば、第1実施形態は、データの消去単位としてのブロックのサイズが比較的小さいフラッシュメモリ3が用いられることを前提としている。図2に示すように、仮想ブロック20は、データの管理単位として複数のレコード30を備える。
図4に示すように、レコード30は、それぞれがブロック1つ分の領域であるデータブロック70と管理ブロック80とに区分される。つまり、レコード30は、データブロック70と管理ブロック80との組である。具体的には、データブロック70は、複数種類のデータを識別するための識別子であるデータ識別子と、データ識別子ごとのデータの値であるデータ値と、を記録するための領域である。図5に示すように、データ識別子は、例えば変数の名前であり、データ値は、例えば変数の値である。また、管理ブロック80は、データブロックに記録されているデータ値が有効か無効かを示すフラグを記録するための領域である。
あるデータ識別子のデータのデータ値は、そのデータがとり得る複数種類のデータ値のうちの1つに選択的に定まる。換言すれば、同じデータ識別子を有するレコード30が複数存在する場合にも、後述する更新処理の途中の状態を除き、有効を示すフラグを有するレコード30は1つである。つまり、特定のデータ識別子のデータのデータ値は、そのデータ識別子を有するレコードに記録されているフラグを有効又は無効に切り替えることにより更新される。具体的には、フラグが有効を示していることは、当該フラグを有するレコード30のデータ値が、同じデータ識別子を有するレコード30のうち、最新のデータ値であることを意味している。逆に、フラグが無効を示していることは、当該フラグを有するレコード30のデータ値が、同じデータ識別子を有するレコード30のうち、最新のデータ値でないことを意味している。
[1−3.消去動作]
第1実施形態におけるフラッシュメモリ3の消去動作について説明する。第1実施形態で用いられるフラッシュメモリ3は、ビット値を消去する処理が行われた領域が、ビット値が確定しない状態である消去状態となり、消去状態の領域に「0」又は「1」のビット値が書き込まれると、ビット値が確定した状態である非消去状態となるように構成されている。なお、このような消去状態はブランクと呼ばれる。
以下、第1実施形態におけるフラッシュメモリ3の消去動作の具体例を図6を用いて説明する。
例えば図6の(A)のように「00001111」という8つのビット値が書き込まれた非消去状態のブロックに対し、データを消去する処理が行われると、図6の(B)のように、当該ブロック内のビット値が不定の状態になる。なお、上述したように、消去状態は、ビット値が「0」にも「1」にも確定せず、読み出すタイミングによっていずれのビット値が読み出されるか分からない状態であり、図6の(B)に示した8つのビット値「10110011」は、ある時点におけるビット値の一例を示している。消去状態か否かは、CPU5に付随するブランクチェックという機能を用いることで特定することができる。この状態から例えば図6の(C)のように「11110000」という8つのビット値が書き込まれると、書き込まれたビット値に確定し、非消去状態になる。
[1−4.データの更新処理]
図7を用いて、第1実施形態におけるフラグの書き換えについて説明する。フラグの書き換えは、[1−3]項で示したような第1実施形態におけるフラッシュメモリ3の特性を活用して行う。
図7に示すように、管理ブロック80は、複数の領域、本実施形態では8つの領域に区分される。これらの領域のうち、非消去状態の領域の数である非消去領域数が偶数のとき、フラグは有効を示し、非消去領域数が奇数のとき、フラグは無効を示す。
次に図8を用いて、CPU5がROM11に記録されているフラッシュドライバのプログラムに従い実行する更新処理(更新方法)について説明する。更新処理とは、更新対象データのデータ識別子について、データ値を第1の値から第2の値に更新することである。以下の説明では、データブロック70に更新対象データのデータ識別子及び第1の値が記録され、管理ブロック80に有効を示すフラグが記録されているレコード30を、更新前レコードと称する。また、データブロック70に更新対象データのデータ識別子及び第2の値が記録され、管理ブロック80に無効を示すフラグが記録されているレコード30を、再利用可能レコードと称する。
更新処理は、CPU5が、データの更新要求を受け取ることにより開始される。ステップ110では、再利用可能レコードを検索し、検索された再利用可能レコードの管理ブロック80に対し、データを消去する処理を行う必要があるか否かを判断する。ここで肯定判断されるとステップ120に進む。一方、否定判断されると、ステップ130に進む。なお、再利用可能レコードが検索されなかった場合には、更新後のデータ値のレコードを追記してステップ130に進み、再利用可能レコードに対する処理を、追記したレコードに対して行う。
再利用可能レコードの管理ブロック80のデータを消去する必要がある場合とは、データを消去しない限り、当該管理ブロック80の非消去領域数を、更新前レコードの管理ブロック80の非消去領域数の次の偶数にすることができない場合である。すなわち、第1実施形態では、再利用可能レコードの非消去領域数を、更新前レコードの非消去領域数の次の偶数となるように更新する。非消去領域数の最大値は8であるため、ここでいう「次の偶数」は、2→4→6→8→2→…の順で循環的に連続すると考える。例えば、再利用可能レコードの非消去領域数が、更新前レコードの非消去領域数の次の偶数よりも大きな値である場合、いったんデータを消去する必要がある。このため、更新前レコードを検索し、検索された更新前レコードの非消去領域数に基づいて、再利用可能レコードの管理ブロック80のデータを消去する必要があるか否かを判断する。
ステップ120では、再利用可能レコードの管理ブロック80のデータを消去する。これにより、再利用可能レコードの管理ブロック80を構成する領域はすべて消去領域になる。ステップ120の後、ステップ130に進む。
ステップ130では、再利用可能レコードの非消去領域数が、更新前レコードの管理ブロック80の非消去領域数の次の偶数となるように、データの書き込みを行う。つまり、管理ブロック80における必要数の消去領域を非消去領域にする。例えば、更新前レコードの非消去領域数が2であり、再利用可能レコードの非消去領域数が1である場合、再利用可能レコードの非消去領域数が4になるように、3つの消去領域を非消去領域にする。これにより、再利用可能レコードの非消去領域数が偶数となり、再利用可能レコードのフラグを無効を示す状態から有効を示す状態に変更する処理である有効化処理が行われる。
続くステップ140では、更新前レコードの管理ブロック80に消去領域があるか、換言すれば、管理ブロック80を構成する領域がすべて非消去領域であるか判断する。ここで否定判断されるとステップ150に進む。一方、肯定判断されるとステップ160に進む。
ステップ150では、更新前レコードの管理ブロック80のデータを消去する。これにより、更新前レコードの管理ブロック80を構成する領域はすべて消去領域になる。ステップ150の後、ステップ160に進む。
ステップ160では、更新前レコードの管理ブロック80の消去領域の1つの領域に対して、データの書き込みを行い、非消去領域にする。これにより、更新前レコードの非消去領域数が奇数となり、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更する処理である無効化処理が行われる。
ステップ160の後、データの更新処理は終了する。
以下、図9を用いて、データの更新処理の具体的事例について説明する。
更新対象データのデータ識別子であるデータAが、3種類のデータ値“0”、“1”、“2”をとり得るとし、“0”、“2”、“1”の順にデータ値を更新する処理について説明する。
まず、データA“0”からデータA“2”に更新する場合について説明する。この場合、図9の(A)に示すように、データブロック70にデータA“0”が記録され、管理ブロック80Aの非消去領域数が6である、つまり有効を示すフラグが記録されたレコードが更新前レコードに該当する。また、データブロック70にデータA“2”が記録され、管理ブロック80Cの非消去領域数が3である、つまり無効を示すフラグが記録されたレコードが再利用可能レコードに該当する。
まず、再利用可能レコードの管理ブロック80Cに対して、有効化処理を行う。有効化処理は、図9の(B)に示すように、再利用可能レコードの管理ブロック80Cの消去領域に、更新前レコードの管理ブロック80Aの非消去領域数(6つ)の次の偶数(8つ)まで書き込み、非消去領域にする。これにより、再利用可能レコードの管理ブロック80Cの非消去領域数は偶数となり、再利用可能レコードのフラグを無効を示す状態から有効を示す状態に変更される。次に、更新前レコードの管理ブロック80Aに対して、無効化処理を行う。無効化処理は、図9の(C)に示すように、更新前レコードの管理ブロック80Aの消去領域の1つの領域に対して、書き込みを実施し、非消去領域にする。これにより、更新前レコードの管理ブロック80Aの非消去領域数は奇数(7つ)となり、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更される。このような処理により、データA“0”からデータA“2”に更新される。
次に、データA“2”からデータA“1”に更新する場合について説明する。この場合、図9の(C)に示すように、データブロック70にデータA“2”が記録され、管理ブロック80Cの非消去領域数が8つである、つまり有効を示すフラグが記録されたレコードが更新前レコードに該当する。また、データブロック70にデータA“1”が記録され、管理ブロック80Bの非消去領域数が5である、つまり無効を示すフラグが記録されたレコードが再利用可能レコードに該当する。
まず、再利用可能レコードの管理ブロック80Bの非消去領域数を、更新前レコードの管理ブロック80Cの非消去領域数(8つ)の次の偶数(2個)にするため、再利用可能レコードの管理ブロック80Bをいったん消去する。そして、図9の(D)に示すように、すべて消去領域となった再利用可能レコードの管理ブロック80Bのうち2つの消去領域に書き込みを行い、非消去領域にする。これにより、再利用可能レコードの管理ブロック80Bの非消去領域数は偶数(2つ)となり、再利用可能レコードのフラグを無効を示す状態から有効を示す状態に変更される。次に、更新前レコードの管理ブロック80Cに消去領域がないため、更新前レコードの管理ブロック80Cを消去する。図9の(E)に示すように、すべて消去領域となった更新前レコードの管理ブロック80Cの消去領域の1つの領域に対して、書き込みを実施し、非消去領域にする。これにより、更新前レコードの管理ブロック80Cの非消去領域数(1つ)は奇数となり、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更される。このような処理により、データA“2”からデータA“1”に更新される。
[1−5.効果]
以上詳述した第1実施形態によれば、以下の効果が得られる。
(1a)第1実施形態のフラグは、管理ブロック80を構成する複数の領域のうち、非消去領域数が偶数のとき、データブロック70に記録されているデータ値が有効であることを示す。第1実施形態のフラグは、管理ブロック80を構成する複数の領域のうち、非消去領域数が奇数のとき、データブロック70に記録されているデータ値が無効であることを示す。
このような構成によれば、更新対象のデータのデータ識別子のデータ値を更新する際、管理ブロック80の非消去領域数が奇数の無効を示す状態から、書き込みを実施することで、非消去領域数が偶数になり、有効を示す状態になる。そのため、無効を示すフラグが記録されていたレコード30を再利用することができる。
図10の(B)に示すように、データA“0”からデータA“1”に更新する場合、従来の手法では、データA“1”のレコード30をフラッシュメモリ3に追記する必要があった。しかし、図10の(A)に示すように、本開示の手法を用いると、レコード30を追記することなく、フラグを無効から有効に変更することにより、無効を示すフラグが記録されていたレコード30を再利用することができる。したがって、データ値を更新するたびに、無効を示すフラグが記録されているレコード30が増加することを抑制することができる。その結果、フラッシュメモリ3に記録されている全データ中において、有効を示すフラグが記録されているレコード30の割合が増加し、記録効率の低下を抑制することができる。
(1b)第1実施形態のフラグは、データブロック70に記録されているデータ値が有効か無効かを複数のビット値で管理されている。このような構成によれば、更新対象データのデータ識別子のデータ値を更新するたびに、管理ブロック80のデータを消去する必要はなく、データの更新が複数回できる。
(1c)第1実施形態のフラグは、管理ブロック80を構成する複数の領域のうち非消去状態となっている領域の数によって、データブロック70に記録されているデータ値が有効か無効かを示す。このような構成によれば、レコード30を追記することなく、フラグを無効から有効に変更することにより、無効を示すフラグが記録されていたレコード30を再利用することができる。
(1d)第1実施形態の更新処理は、有効化処理の後に無効化処理を行う。具体的には、有効化処理では、再利用可能レコードの管理ブロック80の非消去領域数を、更新前レコードの管理ブロック80の非消去領域数の次の偶数にする。このような更新処理によれば、更新対象データのデータ識別子を有するレコード30について、フラグが有効を示すレコード30がどのタイミングにも必ず存在する。しかも、再利用可能レコードの非消去領域数と更新前レコードの非消去領域数とが同数になることがない。例えば、図10の(A)に示す本開示の手法では、データA“0”からデータA“1”に更新する場合、有効化処理後に、データA“1”が有効を示すフラグのレコード30とデータA“0”が有効を示すフラグのレコード30とが生じる。このタイミングで電源断等で更新処理が止まってしまった時、それぞれのレコード30の非消去領域数が同数ではないため、前に有効であったデータA“0”又は次に有効にすべきデータA“1”を判別することができる。
したがって、第1実施形態の更新処理によれば、電源断等で更新処理が止まってしまったとしても、どのデータ値が更新処理の停止前に有効であったデータなのか、あるいは、次に有効にすべきデータなのかを特定することができる。
なお、第1実施形態では、データブロック70がデータ部に相当し、管理ブロック80が管理部に相当する。また、S110が検索部としての処理に相当し、S120〜S130が有効化部としての処理に相当し、S140〜S160が無効化部としての処理に相当する。また、フラッシュドライバのプログラムが情報管理プログラムに相当し、更新処理に従った更新方法が情報管理方法に相当する。
[2.第2実施形態]
[2−1.第1実施形態との相違点]
第2実施形態は、基本的な構成は第1実施形態と同様であるため、共通する構成については説明を省略し、相違点を中心に説明する。なお、第1実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
前述した第1実施形態では、非消去領域数によりフラグの書き換えを行う。これに対し、第2実施形態では、複数ビットの値によりフラグの書き換えを行う点で第1実施形態と相違し、その相違点に伴い更新処理等が異なる。以下、異なる点を説明する。
[2−2.ブロック構造]
第2実施形態におけるフラッシュメモリ3は、図12に示すように、レコード30がデータ部600及び管理部610に区分されている。なお、第1実施形態では、データブロック70及び管理ブロック80のそれぞれが、消去単位としてのブロック1つ分で構成されていたが、第2実施形態では、データ部600及び管理部610は同一ブロックの一部で構成されている。つまり、第2実施形態における消去単位としてのブロックのサイズは、第1実施形態におけるブロックのサイズよりも大きいことが前提とされている。具体的には、第2実施形態のブロックのサイズは、第1実施形態における仮想ブロック20のサイズに相当する。
[2−3.消去動作]
第2実施形態におけるフラッシュメモリ3の消去動作について説明する。第2実施形態で用いられるフラッシュメモリ3は、ビット値「1」が書き込まれた領域にビット値「0」を書き込むことが可能である一方、ビット値「0」が書き込まれた領域にビット値「1」を書き込むことができず、データを消去する必要がある。データを消去すると、ブロック内のビットの値がすべて「1」になる。
例えば図11の(A)のように「00000000」という8つのビット値が書き込まれた状態で、データの消去が行われると、図11の(B)のように8つのビット値がすべて「1」になる。次に、図11の(C)のように、左端の1ビットの領域にビット値「0」が書き込まれると、ビット値は「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」のレコードを追記する。
次に図13を用いて、CPU5がROM11に記録されているフラッシュドライバのプログラムに従い実行する更新処理(更新方法)について説明する。更新処理とは、更新対象データのデータ識別子について、データ値を第1の値から第2の値に更新することである。以下の説明では、データ部600に更新対象データのデータ識別子及び第1の値が記録され、管理部610に有効を示すフラグが記録されているレコード30を、更新前レコードと称する。また、データ部600に更新対象データのデータ識別子及び第2の値が記録され、管理部610に無効を示すフラグが記録されているレコード30を、再利用可能レコードと称する。
更新処理は、CPU5が、データの更新要求を受け取ることにより開始される。ステップ710では、再利用可能レコードを検索し、データ値を更新するために更新後のデータ値のレコード30を追記する必要があるか否かを判断する。ここで肯定判断されるとステップ720に進む。一方、否定判断されると、ステップ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」の数の次の奇数よりも大きな値である場合も該当する。
ステップ720では、更新後のデータ値のレコードを追記する。具体的には、データ部600に更新対象データのデータ識別子及び第2の値が記録され、管理部610のビット値がすべて「1」のレコード30を追記する。ステップ720の後、ステップ730に進み、再利用可能レコードに対する処理を、追記したレコードに対して行う。
ステップ730では、再利用可能レコードの管理部610の「0」の数が、更新前レコードの管理部610の「0」の数の次の奇数となるように書き込みを行う。これにより、再利用可能レコードのフラグを無効を示す状態から有効を示す状態に変更する処理である有効化処理が行われる。具体的には、更新前レコードの管理部610の「0」の数が2であり、再利用可能レコードの管理部610の「0」の数が3の場合、再利用可能レコードの管理部610の「0」の数が5になるように、3つのビット値を書き込む。
続くステップ740では、更新前レコードの管理部610にビット値「1」が存在するか判断する。ここで否定判断されるとステップ750に進む。一方、肯定判断されるとステップ760に進む。
ステップ750では、更新前レコードを追記する。ただし、第2実施形態では、管理部610の8つのビット値のうち、「0」の数が奇数のときフラグが有効を示すことを前提としており、更新前レコードの管理部610にビット値「1」が存在しない場合がないため、ステップ750は実施せずにステップ760に進むことになる。換言すれば、例えば「0」の数が偶数のときフラグが有効を示すことを前提とした構成であれば、ステップ750の処理が実行され得る。ステップ750の後、ステップ760に進む。
ステップ760では、更新前レコードの管理部610の最小書き込み単位の「1」を「0」にする。具体的には、更新前レコードの管理部610「00011111」に、最小の書き込み単位の「1」を「0」にして、「00001111」にする。その結果、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更する処理である無効化処理が行われる。
ステップ760の後、データの更新処理は終了する。
以下、図14を用いて、データの更新処理の具体的事例について説明する。
更新対象データのデータ識別子であるデータAが、3種類のデータ値“0”、“1”、“2”をとり得るとし、“0”、“2”、“1”の順にデータ値を更新する処理について説明する。
まず、データA“0”からデータA“2”に更新する場合について説明する。この場合、図14の(A)に示すように、データ部600にデータA“0”が記録され、管理部610Aに「00000111」が記録されている、つまり有効を示すフラグが記録されたレコードが更新前レコードに該当する。また、データ部600にデータA“2”が記録され、管理部610Cに「00111111」が記録されている、つまり無効を示すフラグが記録されたレコードが再利用可能レコードに該当する。
まず、再利用可能レコードの管理部610Cに対して、有効化処理を行う。有効化処理は、図14の(B)に示すように、再利用可能レコードの管理部610Cの「0」の数(2つ)が、更新前レコードの管理部610Aの「0」の数(5つ)の次の奇数(7つ)となるように、5つのビット値に「0」を書き込む。これにより、再利用可能レコードのフラグを無効を示す状態から有効を示す状態に変更される。次に、更新前レコードの管理部610Aに対して、無効化処理を行う。無効化処理は、図14の(C)に示すように、更新前レコードの管理部610Aの最小書き込み単位の「1」を「0」にする。これにより、更新前レコードのフラグを有効を示す状態から無効を示す状態に変更される。このような処理により、データA“0”からデータA“2”に更新される。
次に、データA“2”からデータA“1”に更新する場合について説明する。この場合、図14の(C)に示すように、データ部600にデータA“2”が記録され、管理部610Cに「00000001」が記録されている、つまり有効を示すフラグが記録されたレコードが更新前レコードに該当する。また、データ部600にデータA“1”が記録され、管理部610Bに「00001111」が記録されている、つまり無効を示すフラグが記録されたレコードが再利用可能レコードに該当する。
まず、再利用可能レコードの管理部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”に更新される。
[2−5.効果]
以上詳述した第2実施形態によれば、前述した第1実施形態の効果に加え、以下の効果が得られる。
(2a)第2実施形態のフラグは、管理部610の8つのビット値のうち、「0」の数が奇数のとき有効を示し、「0」の数が偶数のとき無効を示す。このような構成によれば、フラグを無効から有効に変更することにより、無効を示すフラグが記録されていたレコード30を複数回再利用することができる。したがって、データ値を更新するたびに、無効を示すフラグが記録されているレコード30が増加することを抑制することができる。その結果、フラッシュメモリ3に記録されている全データ中において、有効を示すフラグが記録されているレコード30の割合が増加し、記録効率の低下を抑制することができる。
(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”を判別することができる。
したがって、第2実施形態の更新処理によれば、電源断等で更新処理が止まってしまったとしても、どのデータ値が更新処理の停止前に有効であったデータなのか、あるいは、次に有効にすべきデータなのかを特定することができる。
なお、第2実施形態では、S710が検索部としての処理に相当し、S720〜S730が有効化部としての処理に相当し、S740〜S760が無効化部としての処理に相当する。
[3.他の実施形態]
以上、本開示を実施するための形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
(3a)上記第1実施形態において、フラグは、管理ブロック80を構成する複数の領域のうち、非消去領域数が偶数のとき、データブロック70に記録されているデータ値が有効であり、非消去領域数が奇数のとき、データブロック70に記録されているデータ値が無効である例を示したが、これに限定されるものではない。例えば、フラグは、管理ブロック80を構成する複数の領域のうち、非消去領域数が奇数のとき、データブロック70に記録されているデータ値が無効であり、非消去領域数が偶数のとき、データブロック70に記録されているデータ値が有効であってもよい。また、非消去領域数により、データブロック70に記録されているデータ値が有効か無効かを示すことができればよい。
(3b)上記第1実施形態において、管理ブロック80は8つの領域に区分される例を示したが、これに限定されるものではなく、7つ以下の領域や9つ以上の領域に区分されていてもよい。
(3c)上記第2実施形態において、フラグは、管理部610の8つのビット値のうち、「0」の数が奇数のとき有効を示し、「0」の数が偶数のとき無効を示す例を示したが、これに限定されるものではない。例えば、フラグは、管理部610の8つのビット値のうち、「0」の数が偶数のとき有効を示し、「0」の数が奇数のとき無効を示してもよい。
(3d)上記第2実施形態において、管理部610は8ビットの値である例を示したが、これに限定されるものではなく、7ビット以下の値や9ビット以上の値であってもよい。
(3e)上記実施形態の構成は、ボデー系車両制御システムに適用されてもよい。例えば、車両に装備されたエアコン及びメータのうち少なくとも一方の有する機能がオン状態であるかオフ状態であるかを表す値が、データ値としてフラッシュメモリに記録されていてもよい。
(3f)上記第1実施形態において、レコード30はデータブロック70と管理ブロック80の組である例を示したが、これに限定されるものではない。レコード30に少なくとも、データブロック70と管理ブロック80が記録されていればよい。
同様に、上記第2実施形態において、レコード30はデータ部600及び管理部610の組である例を示したが、これに限定されるものではない。レコード30に少なくとも、データ部600及び管理部610が記録されていればよい。
(3g)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
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…管理部

Claims (10)

  1. 複数種類のデータを識別するための識別子であるデータ識別子及び前記データ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、前記データ部に記録されている前記データ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理装置(1)であって、
    特定のデータ識別子の前記データ値を第1の値から第2の値に更新する際、前記データ部に前記特定のデータ識別子及び前記第2の値が記録され、前記管理部に無効を示す前記フラグが記録されている前記レコードである再利用可能レコードを、複数の前記レコードから検索する処理を行う検索部(5、S110、S710)と、
    前記検索部により前記再利用可能レコードが検索された場合、前記再利用可能レコードの前記管理部に記録されている前記フラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理を行う有効化部(5、S120〜S130、S720〜S730)と、
    前記データ部に前記特定のデータ識別子及び前記第1の値が記録され、前記管理部に有効を示す前記フラグが記録されている前記レコードである更新前レコードの前記管理部に記録されている前記フラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理を行う無効化部(5、S140〜S160、S740〜S760)と、
    を備える情報管理装置。
  2. 請求項1に記載の情報管理装置であって、
    前記フラグは、前記データ部に記録されている前記データ値が有効か無効かを複数のビット値で管理されている、情報管理装置。
  3. 請求項1又は請求項2に記載の情報管理装置であって、
    前記フラッシュメモリは、ビット値を消去する処理が行われた領域が、ビット値が確定しない状態である消去状態となり、前記消去状態の領域に「0」又は「1」のビット値が書き込まれると、ビット値が確定した状態である非消去状態となるように構成され、
    前記管理部(80)は、複数の領域に区分され、
    前記フラグは、前記管理部を構成する複数の領域のうち、前記非消去状態である領域の数である非消去領域数により、前記データ部(70)に記録されている前記データ値が有効か無効かを示す、情報管理装置。
  4. 請求項3に記載の情報管理装置であって、
    前記無効化部(5、S140〜S160)は、前記有効化処理の後に前記無効化処理を行い、
    前記有効化部(5、S120、S130)は、前記有効化処理で変更される前記フラグの前記有効化処理後の前記非消去領域数が、前記有効化処理の後の前記無効化処理で変更される前記フラグの前記無効化処理前の前記非消去領域数と同数にならないように、前記非消去領域数を変更する、情報管理装置。
  5. 請求項1又は請求項2に記載の情報管理装置であって、
    前記管理部(610)は、複数ビットの値を前記フラグとして記録し、
    前記フラグは、前記管理部に記録されている前記複数ビットの値により、前記データ部(600)に記録されている前記データ値が有効か無効かを示す、情報管理装置。
  6. 請求項1、請求項2又は請求項5に記載の情報管理装置であって、
    前記管理部は、複数のビット値を前記フラグとして記録し、
    前記フラグは、前記管理部に記録されている前記複数のビット値のうち、特定のビット値の数である特定ビット数により、前記データ部に記録されている前記データ値が有効か無効かを示す、情報管理装置。
  7. 請求項6に記載の情報管理装置であって、
    前記無効化部(5、S740〜S760)は、前記有効化処理の後に前記無効化処理を行い、
    前記有効化部(5、S720、S730)は、前記有効化処理で変更される前記フラグの前記有効化処理後の前記特定ビット数が、前記有効化処理の後の前記無効化処理で変更される前記フラグの前記無効化処理前の前記特定ビット数と同数にならないように、前記特定ビット数を変更する、情報管理装置。
  8. 請求項1から請求項7までのいずれか1項に記載の情報管理装置であって、
    前記フラッシュメモリには、車両に装備されたエアコン及びメータのうち少なくとも一方の有する機能がオン状態であるかオフ状態であるかを表す値が、前記データ値として記録される、情報管理装置。
  9. 複数種類のデータを識別するための識別子であるデータ識別子及び前記データ識別子ごとのデータの値であるデータ値を記録するための領域であるデータ部(70,600)と、前記データ部に記録されている前記データ値が有効か無効かを示すフラグを記録するための領域である管理部(80,610)と、の組であるレコード(30)を、データの管理単位として複数備えるフラッシュメモリ(3)に対して、データの更新を管理する情報管理方法であって、
    特定のデータ識別子の前記データ値を第1の値から第2の値に更新する際、前記データ部に前記特定のデータ識別子及び前記第2の値が記録され、前記管理部に無効を示す前記フラグが記録されている前記レコードである再利用可能レコードを、複数の前記レコードから検索する処理である検索処理(5、S110、S710)を行い、
    前記検索処理により前記再利用可能レコードが検索された場合、前記再利用可能レコードの前記管理部に記録されている前記フラグを、無効を示す状態から有効を示す状態に変更する処理である有効化処理(5、S120〜S130、S720〜S730)を行い、
    前記データ部に前記特定のデータ識別子及び前記第1の値が記録され、前記管理部に有効を示す前記フラグが記録されている前記レコードである更新前レコードの前記管理部に記録されている前記フラグを、有効を示す状態から無効を示す状態に変更する処理である無効化処理(5、S140〜S160、S740〜S760)を行う、情報管理方法。
  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)、
    としてコンピュータを機能させる情報管理プログラム。
JP2015250220A 2015-12-22 2015-12-22 情報管理装置、情報管理方法及び情報管理プログラム Expired - Fee Related JP6512091B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015250220A JP6512091B2 (ja) 2015-12-22 2015-12-22 情報管理装置、情報管理方法及び情報管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015250220A JP6512091B2 (ja) 2015-12-22 2015-12-22 情報管理装置、情報管理方法及び情報管理プログラム

Publications (2)

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

Family

ID=59234453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015250220A Expired - Fee Related JP6512091B2 (ja) 2015-12-22 2015-12-22 情報管理装置、情報管理方法及び情報管理プログラム

Country Status (1)

Country Link
JP (1) JP6512091B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102271502B1 (ko) 2017-10-25 2021-07-01 삼성전자주식회사 메모리 장치 및 그 제어 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2225643B1 (en) * 2007-12-28 2020-05-06 Toshiba Memory Corporation Semiconductor storage device
JP6028670B2 (ja) * 2013-04-22 2016-11-16 株式会社デンソー データ記憶装置

Also Published As

Publication number Publication date
JP2017117099A (ja) 2017-06-29

Similar Documents

Publication Publication Date Title
KR100755700B1 (ko) 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
US9134918B2 (en) Physical compression of data with flat or systematic pattern
KR100725390B1 (ko) 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
CN102693184B (zh) 处理具有非易失性存储器的系统的动态和静态数据
KR100929371B1 (ko) 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법
JP2006235960A (ja) ガーベッジコレクション高速化方法
JP6008325B2 (ja) データ記憶システムおよびその制御方法
JP2007156633A (ja) メモリ装置及びメモリ制御方法
JP2007012058A (ja) フラッシュ様媒体におけるトランザクションレコードを格納するファイルシステム
US6256232B1 (en) Data access method capable of reducing the number of erasing to flash memory and data patch and access device using the same
JP2007012056A (ja) データ保全の先送りされた認証を有するファイルシステム
JP2007012054A (ja) ファイルシステム保全の最適化されたスタートアップ認証
JPWO2015128955A1 (ja) 記憶デバイス、記憶デバイスを有する装置、及び記憶制御方法
KR100746198B1 (ko) 데이터 저장장치, 데이터 저장방법, 및 그 기록매체
JP5695112B2 (ja) データ記憶装置、データの記憶方法および車載用制御装置
US7055083B2 (en) Method and apparatus for allocating CRC codes in a flash ROM
JP2016062319A (ja) データ読み出し装置、プログラムおよびデータ読み出し方法
JP6512091B2 (ja) 情報管理装置、情報管理方法及び情報管理プログラム
JP2012248094A (ja) 電子機器
US20110082995A1 (en) Information processing apparatus
JP6561951B2 (ja) 情報管理装置
KR100941423B1 (ko) 메모리의 페이지 할당 방법 및 이를 수행하기 위한프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체
JP2004062554A (ja) フラッシュメモリの管理方法
JP2007122419A (ja) 不揮発性データ更新システム、不揮発性データ更新方法及びプログラム
JP4468342B2 (ja) データ管理方法

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