JP5666273B2 - データ格納装置及びデータ格納方法 - Google Patents

データ格納装置及びデータ格納方法 Download PDF

Info

Publication number
JP5666273B2
JP5666273B2 JP2010269927A JP2010269927A JP5666273B2 JP 5666273 B2 JP5666273 B2 JP 5666273B2 JP 2010269927 A JP2010269927 A JP 2010269927A JP 2010269927 A JP2010269927 A JP 2010269927A JP 5666273 B2 JP5666273 B2 JP 5666273B2
Authority
JP
Japan
Prior art keywords
data
block
latest block
latest
generated
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.)
Active
Application number
JP2010269927A
Other languages
English (en)
Other versions
JP2012118892A (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.)
Yazaki Energy System Corp
Original Assignee
Yazaki Energy System 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 Yazaki Energy System Corp filed Critical Yazaki Energy System Corp
Priority to JP2010269927A priority Critical patent/JP5666273B2/ja
Publication of JP2012118892A publication Critical patent/JP2012118892A/ja
Application granted granted Critical
Publication of JP5666273B2 publication Critical patent/JP5666273B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ格納装置及びデータ格納方法に係り、特に、上書き不可能なメモリに順次発生するデータを格納するデータ格納装置及びデータ格納方法に関するものである。
ガス漏れや火災などの警報器では、工場出荷時に設定された設定データ(例えばガス濃度の警報値など)、警報発生時の警報履歴、故障発生時の故障履歴、通電時間などをEEPROMに記録している。しかしながら、これらデータを格納するために、EEPROMの容量を大きくする必要がありコスト的に問題があった。
最近では、警報器を構成するマイコン内部のフラッシュメモリをEEPROMの代わりに使用してこれらデータを格納することが考えられている。これにより、EEPROMが必要なくなり、コストダウンとなる。
しかしながら、上記フラッシュメモリは、EEPROMと異なりデータの上書きをすることができない。このため、従来では、データが発生する毎に、フラッシュメモリに全種類のデータ(即ち、設定データ、通電時間、警報履歴、故障履歴)を追記している。
図10〜図14を参照して詳しく説明する。即ち、まず、工場出荷時において、例えば出荷操作が行われると警報器内のCPUは、図10(A)に示すように、フラッシュメモリの領域を2つのブロックB1と、ブロックB2と、に分け、両方のブロックB1、B2に格納されているデータを消去して、空き領域とする。
次に、警報器内のCPUは、図10(B)に示すように、外部からの通信により受信した設定データをブロックB1の先頭に書き込む。次に、警報器内のCPUは、通電時間、警報履歴1〜3、故障履歴1〜3の順にブロックB1に書き込む。なお、このとき出荷時であるので、通電時間としては0が書き込まれる。また、警報も故障も発生していない状態であるため、警報履歴1〜3、故障履歴1〜3としては空のデータが書き込まれる。
また、これら通電時間、警報履歴1〜3、故障履歴1〜3は、全て同じデータ長となるように、これらのうち最大データ長よりも短いデータ長のものにはデータ長調整用のエリアが設けられている。例えば、通電時間として、数バイト書き込めばよいところを、警報履歴1〜3、故障履歴1〜3のような長いデータ合わせて、数十バイト書き込んでいる。
その後、警報が発生すると、警報器内のCPUは、図11に示すように、警報履歴2を警報履歴1へ、警報履歴3を警報履歴2へ移動し、新たな警報履歴を警報履歴3とする全種類のデータ(設定データ、通電時間データ、警報履歴1〜3、故障履歴1〜3)を追記する。
その後、故障が発生すると、警報器内のCPUは、図12に示すように、故障履歴2を故障履歴1へ、故障履歴3を故障履歴2へ移動し、新たな故障履歴を故障履歴3とする全種類のデータを追記する。
その後、設置してから所定時間毎の計時が終了すると、警報器内のCPUは、図13に示すように、所定時間を加算した新たな通電時間を通電時間とする全種類のデータを追記する。ブロックB1の最後まで書き込むと、警報器内のCPUは、図14(A)に示すように、ブロックB2に格納したデータを全消去して空き領域にする。次に、警報器内のCPUは、図14(B)に示すように、消去したブロックB2の先頭に最新の全種類のデータ(即ち、ブロックB1に格納された全種類のデータのうち一番後ろの全種類のデータ)を書き込む。
この警報器にフラッシュメモリ内のデータを読み出す設定器を接続すると、警報器は、ブロックB2の後ろの領域からデータが書き込まれているか否かを判断し、データが書き込まれている領域に達すると、そこから通電時間、警報履歴1〜3、故障履歴1〜3の互いに等しいデータ長毎のデータを最新の故障履歴3〜1、最新の警報履歴3〜1、最新の通電時間として、設定器に送信する。
このように、従来では、データが発生する毎に、フラッシュメモリに全種類のデータ(即ち、設定データ、通電時間、警報履歴、故障履歴)を追記しているため、効率が悪い。また、フラッシュメモリは、消去可能回数がEEPROMに比べて少ないため、データを書き込む回数を少なくする必要があり、警報器での使用には問題がある。
そこで、本発明は、データが発生する毎に、書き込むデータ量を少なくすることにより、消去回数が削減でき、効率良く上書き不可なメモリを使用することができるデータ格納装置及びデータ格納方法を提供することを課題とする。
上述した課題を解決するための請求項1記載の発明は、上書き不可能なメモリに順次発生する複数種類のデータを格納するデータ格納装置において、前記メモリの領域内に複数のブロックを設け、前記複数のブロックの1つを最新ブロックとして設定する最新ブロック設定手段と、前記データが発生する毎に前記最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納するデータ格納手段と、前記最新ブロックに空き領域があるか否かを判定する空き領域判定手段と、前記空き領域判定手段により空き領域がないと判定された場合、前記最新ブロックを除いた他のブロックのデータを全消去する消去手段と、前記消去手段により全消去された後、前記最新ブロックの後ろから順にデータを読み取り、前記データの最後に付加されたデータ種類に基づいて種類毎に後ろから所定個づつのデータを抽出して、当該抽出したデータを前記他のブロックの先頭から順に書き込むデータ移動手段と、を備え、前記最新ブロック設定手段が、前記データ移動手段による書き込み終了後、当該他のブロックを最新ブロックとして設定することを特徴とするデータ格納装置に存する。
請求項2記載の発明は、上書き不可能なメモリに順次発生する複数種類のデータを格納するデータ格納装置において、前記メモリの領域内に複数のブロックを設け、前記複数のブロックの1つを最新ブロックとして設定する最新ブロック設定手段と、前記データが発生する毎に前記最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納するデータ格納手段と、前記データが発生する毎に上書き可能な第2メモリに前記発生したデータを上書きする第2データ格納手段と、前記最新ブロックに空き領域があるか否かを判定する空き領域判定手段と、前記空き領域判定手段により空き領域がないと判定された場合、前記最新ブロックを除いた他のブロックのデータを全消去する消去手段と、前記消去手段により全消去された後、前記第2メモリに格納された最新のデータを前記他のブロックの先頭から順に書き込むデータ移動手段と、を備え、前記最新ブロック設定手段が、前記データ移動手段による書き込み終了後、当該他のブロックを最新ブロックとして設定することを特徴とするデータ格納装置に存する。
請求項3記載の発明は、前記データとして、通電時間データが所定時間毎に発生するデータ格納装置において、前記各ブロックの先頭に格納されている通電時間データを比較し、最大の通電時間データが書き込まれているブロックを最新ブロックとして判定する最新ブロック判定手段と、前記最新ブロックの後ろから順にデータを読み取り、前記データの最後に付加されたデータ種類に基づいて種類毎に後ろから所定個づつのデータを最新データとして読み取る読取手段と、を備えたことを特徴とする請求項1又は2に記載のデータ格納装置に存する。
請求項4記載の発明は、前記読取手段及び前記データ移動手段が、前記データの最後に付加されているデータ種類からデータ長を判定し、そのデータ種類が書き込まれているエリアから判定したデータ長分前までのエリアのデータを、前記データ種類のデータであると判定することを特徴とする請求項3に記載のデータ格納装置に存する。
請求項5記載の発明は、上書き不可能なメモリに順次発生する複数種類のデータを格納するデータ格納方法において、前記メモリの領域に複数のブロックを設け、前記複数のブロックの1つを最新ブロックとして設定する最新ブロック設定工程と、前記データが発生する毎に前記最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納するデータ格納工程と、前記最新ブロックに空き領域があるか否かを判定する空き領域判定工程と、前記空き領域判定手段により空き領域がないと判定された場合、前記最新ブロックを除いた他のブロックのデータを全消去する消去工程と、前記消去工程において全消去された後、前記最新ブロックの後ろから順にデータを読み取り、前記データの最後に付加されたデータ種類に基づいて各種類毎に後ろから所定個づつのデータを抽出して、当該抽出したデータを前記他のブロックの先頭から順に書き込むデータ移動工程と、を備え、前記最新ブロック設定工程において、前記データ移動工程による書き込み終了後、当該他のブロックを最新ブロックとして設定することを特徴とするデータ格納方法に存する。
請求項6記載の発明は、上書き不可能なメモリに順次発生する複数種類のデータを格納するデータ格納方法において、前記メモリの領域内に複数のブロックを設け、前記複数のブロックの1つを最新ブロックとして設定する最新ブロック設定工程と、前記データが発生する毎に前記最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納するデータ格納工程と、前記データが発生する毎に上書き可能な第2メモリに前記発生したデータを上書きする第2データ格納工程と、前記最新ブロックに空き領域があるか否かを判定する空き領域判定工程と、前記空き領域判定工程により空き領域がないと判定された場合、前記最新ブロックを除いた他のブロックのデータを全消去する消去工程と、前記消去工程により全消去された後、前記第2メモリに格納された最新のデータを前記他のブロックの先頭から順に書き込むデータ移動工程と、を備え、前記最新ブロック設定工程が、前記データ移動工程による書き込み終了後、当該他のブロックを最新ブロックとして設定することを特徴とするデータ格納方法に存する。
以上説明したように請求項1記載の発明によれば、データ格納手段が、データが発生する毎に最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納し、データ移動手段が、消去手段により全消去された後、最新ブロックの後ろから順にデータを読み取り、データの最後に付加されたデータ種類に基づいて種類毎に後ろから所定個づつのデータを抽出して、当該抽出したデータを他のブロックの先頭から順に書き込む。従って、データの最後にデータ種類を付加することにより、データが発生したとき、全種類のデータを追記することなく、その発生したデータだけ後ろに追記しても、最新ブロックから種類毎に後ろから所定個づつのデータ、即ち最新データを読み取ることができる。これにより、データが発生する毎に、書き込むデータ量を少なくすることができ、消去回数が削減でき、効率良く上書き不可なメモリを使用することができる。
請求項2記載の発明によれば、データ格納手段が、データが発生する毎に最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納し、データ移動手段が、消去手段により全消去された後、第2メモリに格納された最新のデータを他のブロックの先頭から順に書き込む。従って、データの最後にデータ種類を付加することにより、データが発生したとき、全種類のデータを追記することなく、その発生したデータだけ後ろに追記しても、最新ブロックから種類毎に後ろから最新データを読み取ることができる。しかも、最新ブロックの後ろから順に読み取ることなく、最新ブロックに格納されている最新のデータを他のブロックの先頭に移動することができる。これにより、データが発生する毎に、書き込むデータ量を少なくすることができ、消去回数が削減でき、効率良く上書き不可なメモリを使用することができる。
請求項3記載の発明によれば、最新ブロック判定手段が、各ブロックの先頭に格納されている通電時間データを比較し、最大の通電時間データが書き込まれているブロックを最新ブロックとして判定し、読取手段が、最新ブロックの後ろから順にデータを読み取り、データの最後に付加されたデータ種類に基づいて種類毎に後ろから所定個づつのデータを最新データとして読み取るので、最新ブロックに関する情報を持っていなくても、各ブロックの何れが最新ブロックであるかを判定できる。
請求項4記載の発明によれば、読取手段及びデータ移動手段が、データの最後に付加されているデータ種類からデータ長を判定し、そのデータ種類が書き込まれているエリアから判定したデータ長分前までのエリアのデータを、データ種類のデータであると判定する。従って、各種類のデータのデータ長を同じにしなくても、データを特定することができるので、各種類のデータのデータ長を同じに調整するためのデータ長調整エリアを設ける必要がなく、無駄なデータがメモリに格納されることがない。
請求項5記載の発明によれば、データ格納工程において、データが発生する毎に最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納し、データ移動工程において、消去工程において全消去された後、最新ブロックの後ろから順にデータを読み取り、データの最後に付加されたデータ種類に基づいて種類毎に後ろから所定個づつのデータを抽出して、当該抽出したデータを他のブロックの先頭から順に書き込む。従って、データの最後にデータ種類を付加することにより、データが発生したとき、全種類のデータを追記することなく、その発生したデータだけ後ろに追記しても、最新ブロックから種類毎に後ろから所定個づつのデータ、即ち最新データを読み取ることができる。これにより、データが発生する毎に、書き込むデータ量を少なくすることができ、消去回数が削減でき、効率良く上書き不可なメモリを使用することができる。
請求項6記載の発明によれば、データ格納工程において、データが発生する毎に最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納し、データ移動工程において、消去工程により全消去された後、第2メモリに格納された最新のデータを他のブロックの先頭から順に書き込む。従って、データの最後にデータ種類を付加することにより、データが発生したとき、全種類のデータを追記することなく、その発生したデータだけ後ろに追記しても、最新ブロックから種類毎に後ろから最新データを読み取ることができる。これにより、データが発生する毎に、書き込むデータ量を少なくすることができ、消去回数が削減でき、効率良く上書き不可なメモリを使用することができる。
本発明のデータ格納装置を組み込んだ警報器の一実施形態を示すブロック図である。 図1に示すデータ格納装置を構成するフラッシュメモリに書き込まれる通電時間、設定データ、警報履歴、故障履歴の構成を示す図である。 図1に示すデータ格納装置を構成するCPUのデータ格納処理における処理手順を示すフローチャートである。 図1に示す警報器の工場出荷時におけるフラッシュメモリに格納されるデータを示す図である。 図1に示す警報器の通電時間書き込み時におけるフラッシュメモリに格納されるデータを示す図である。 図1に示す警報器の警報発生時におけるフラッシュメモリに格納されるデータを示す図である。 図1に示す警報器の故障発生時におけるフラッシュメモリに格納されるデータを示す図である。 図1に示す警報器のブロックB1の最後まで書き込んだときのフラッシュメモリに格納されるデータを示す図である。 図1に示す警報器の読み込み時の動作を説明するための説明図である。 従来の工場出荷時におけるフラッシュメモリに格納されるデータを示す図である。 従来の警報発生時におけるフラッシュメモリに格納されるデータを示す図である。 従来の故障発生時におけるフラッシュメモリに格納されるデータを示す図である。 従来の通電時間書き込み時におけるフラッシュメモリに格納されるデータを示す図である。 従来のブロックB1の最後まで書き込んだときのフラッシュメモリに格納されるデータを示す図である。
以下、本発明のデータ格納装置及びデータ格納方法について図面を参照して説明する。図1は、本発明のデータ格納装置を組み込んだ警報器の一実施形態を示すブロック図である。同図に示すように、警報器1は、警報器1全体の制御を司るマイクロコンピュータ(以下μCOM)2と、ガス漏れや火災などの異常を検出するセンサ3と、後述する設定器4を接続するための入出力端子5と、を備えている。
上記μCOM2は、処理プログラムに従って各種の処理を行うCPU2Aと、CPU2Aが行う処理のプログラムなどを格納したROM2Bと、CPU2Aでの各種の処理過程で利用するワークエリア、各種データを格納するデータ記憶エリアなどを有する上書き可能な第2メモリとしてのRAM2Cと、上書き不可能な不揮発性のメモリであるフラッシュメモリ2Dと、を備えている。上記CPU2Aは、センサ3からの出力に基づいて警報を発生する警報発生処理や、故障を検出する故障検出処理などを行う。
上記フラッシュメモリ2Dは、メモリ領域に2つのブロックB1、B2が設けられている。このフラッシュメモリ2Dには、通電時間、設定値データ、警報履歴、故障履歴といったデータが順次書き込まれる。これら通電時間、設定データ、警報履歴、故障履歴といったデータは、図2(A)〜(D)に示すように、先頭にチェックサムを書き込む領域、最後尾にデータ種類(即ち、通電時間、設定データ、警報履歴、故障履歴の何れであるかを示すデータ)を書き込む領域、チェックサムとデータ種類との間にデータ自体を書き込む領域が、設けられている。これらデータは、データ種類に応じてデータ長が異なり、設定データが一番長く、その次に警報履歴、故障履歴が長く、通電時間が一番短い。
次に、上述した構成のデータ格納装置の動作について図3〜図8を参照して説明する。図3は、図1に示すデータ格納装置を構成するCPU2Aのデータ格納処理における処理手順を示すフローチャートである。図4は、図1に示す警報器1の工場出荷時におけるフラッシュメモリ2Dに格納されるデータを示す図である。図5は、図1に示す警報器1の通電時間書き込み時におけるフラッシュメモリ2Dに格納されるデータを示す図である。図6は、図1に示す警報器1の警報発生時におけるフラッシュメモリ2Dに格納されるデータを示す図である。図7は、図1に示す警報器1の故障発生時におけるフラッシュメモリ2Dに格納されるデータを示す図である。図8は、図1に示す警報器1のブロックB1の最後まで書き込んだときのフラッシュメモリ2Dに格納されるデータを示す図である。
まず、CPU2Aは、電源のオンに応じて上記データ格納処理を開始する。まず、最初のステップS1において、CPU2Aは、警報器1が出荷モードであるか否かを判定する。出荷モードであれば(ステップS1でY)、CPU2Aは、図4(A)に示すように、フラッシュメモリ2D内の両ブロックB1、B2のデータを全消去して空き領域にする(ステップS2)。
次に、CPU2Aは、最新ブロック設定手段として働き、ブロックB1を最新ブロックとして設定する(ステップS3)。このステップS3が請求項中の最新ブロック設定工程に相当する。その後、CPU2A、図4(B)に示すように、データ格納手段として働き、ブロックB1の先頭に通電時間(通電時間データ)を格納し、その後ろに設定器4などの外部からの通信で得た設定データを格納する(ステップS4)。また、ステップS4において、CPU2Aは、第2データ格納手段として働き、通電時間をRAM2C内に格納する。ここでは、通電時間として0が書き込まれる。このステップS4が請求項中のデータ格納工程及び第2データ格納工程に相当する。
その後、CPU2Aは、出荷モードが解除されるのを待って(ステップS5でN)、次のステップS6に進む。出荷モードが解除されると、CPU2Aは、上述した警報発生処理、故障検出処理をこのデータ格納処理と並列に行う。
ステップS6では、CPU2Aは、空き領域判定手段として働き、最新ブロックが一杯であるか否かを判定する。具体的には、CPU2Aは、最新ブロックの最後尾からデータを読み込んで空データ「1」が所定バイト以上連続しているか否かを判定する。CPU2Aは、最後尾から空データが所定バイト以上連続していなければ最新ブロックが一杯であると判定し、最後尾から空データが所定バイト以上連続していれば最新ブロックが一杯でないと判定する。このステップS6が請求項中の空き領域判定工程に相当する。
最新ブロックが一杯ではないと判定すると(ステップS6でN)、次に、CPU2Aは、電源オンしてから開始させている所定時間毎の計時が終了したか否かを判定する(ステップS12)。所定時間の計時が終了したと判定すると(ステップS12でY)、CPU2Aは、図5に示すように、最新ブロック(図5の例ではブロックB1)の空き領域の先頭に前の通電時間に所定時間を加算した新たな通電時間2を書き込むと共に、RAM2C内に格納された通電時間に新たな通電時間を上書きして(ステップS13)、次のステップS14に進む。ステップS13により、RAM2C内には最新の通電時間が常に保存される。所定時間の計時が終了していなければ(ステップS12でN)、CPU2Aは、ステップS13に進むことなく、直ちにステップ14に進む。
ステップS14において、CPU2Aは、警報や故障、設定器4による設定データの更新要求などが生じて、フラッシュメモリ2Dに格納すべきデータが発生しているか否かを判定する。フラッシュメモリ2Dに格納すべきデータが発生していなければ(ステップS14でN)、CPU2Aは、直ちにステップS1に戻る。
一方、フラッシュメモリ2Dに格納すべきデータが発生していれば(ステップS14でY)、CPU2Aは、発生したデータを最新ブロックの空き領域の先頭に書き込んだ後(ステップS15)、ステップS1に戻る。
ステップS15の詳細について説明すると、例えば、警報が発生すると、CPU2Aは、図6に示すように、新たな警報履歴2を最新ブロック(図6に示す例ではブロックB1)の空き領域の先頭に書き込む。また、故障が発生すると、CPU2Aは、図7に示すように、新たな故障履歴3を最新ブロック(図7に示す例ではブロックB1)の空き領域の先頭に書き込む。
上述したステップS12〜S15において、CPU2Aはデータ格納手段として働く。また、ステップS12〜S15が請求項中のデータ格納工程に相当する。
これに対して、最新ブロックが一杯であると判定すると(ステップS6でY)、次に、CPU2Aは、図8(A)に示すように、消去手段として働き、最新ブロックを除いた他のブロック(図8の例ではブロックB2)に格納したデータを全消去して空き領域にする(ステップS7)。このステップS7が請求項中の消去工程に相当する。次に、CPU2Aは、RAM2C内に格納された最新の通電時間を他のブロックの先頭に書き込む(ステップS8)。
次に、CPU2Aは、図8(B)に示すように、最新ブロックに格納された設定データのうち一番後ろに格納されているものを検索して、通電時間の後ろに書き込む(ステップS9)。その後、CPU2Aは、図8(C)に示すように、最新ブロックに格納された警報履歴のうち後ろから3つ目までの警報履歴を検索して、設定データの後ろに書き込み、その後、図8(D)に示すように、最新ブロックに格納された故障履歴のうち後ろから3つ目までの故障履歴を検索して、警報履歴の後ろに書き込んだ後(ステップS10)、ステップS11に進む。
上記検索について詳細に説明すると、CPU2Aは、まず最新ブロック(ブロックB1)の最後尾から読み込みを開始する。CPU2Aは、最後尾にはデータの最後に付加されたデータ種類が格納されている。CPU2Aは、このデータ種類からブロックB1の最後に書き込まれたデータの種類を判定する。図8(C)に示す例では、CPU2Aは、警報履歴7が最新ブロックの最後に書き込まれていると判定する。CPU2Aは、判定したデータ種類からそのデータのデータ長を判定し、データ種類が書き込まれているエリアから判定したデータ長だけ前までのエリアのデータを、そのデータ種類のデータであると判定する。
図8(C)に示す例で説明すると、最後尾から警報履歴のデータ長だけ前までのエリアのデータを警報履歴7であると判定する。さらに、CPU2Aは、最新ブロックの先頭に向かってデータを読み込み、警報履歴7よりも前のエリアに格納されているデータ種類から、警報履歴7の前に書き込まれたデータの種類を判定する。図8(C)に示す例では、警報履歴6が警報履歴7の前に書き込まれていると判定する。このように、CPU2Aは、後ろから前に向かって順にデータを読み取って最新ブロックに格納された警報履歴のうち後ろから3つ目までを検索する。
図8(C)に示す例では、警報履歴7、6、5が最新ブロックに格納された警報履歴のうち後ろから3つ目までの警報履歴として検索される。CPU2Aは、これら3つの警報履歴7、6、5のうち一番前から順にブロックB2に書き込んでいく。即ち、警報履歴5を警報履歴1、警報履歴6を警報履歴2、警報履歴7を警報履歴3へ移動して追記する。
また、図8(D)に示す例では、故障履歴6、5、4が最新ブロックに格納された故障履歴のうち後ろから3つ目までの故障履歴として検索される。CPU2Aは、これら3つの故障履歴6、5、4のうち一番前のものから順にブロックB2に書き込んでいく。即ち、故障履歴4を故障履歴1、故障履歴5を故障履歴2、故障履歴6を故障履歴3へ移動して追記する。
上述したステップS8〜S10において、CPU2Aは、データ移動手段として働く。また、ステップS8〜S10が請求項中のデータ移動工程に相当する。
ステップS11において、CPU2Aは、最新ブロック設定手段として働き、上記他のブロック(図8に示す例ではブロックB2)を最新ブロックに設定し、次のステップS12に進む。このステップS11が請求項中の最新ブロック設定工程に相当する。
次に、設定器4により履歴の読み込み要求が行われたときの動作について説明する。まず、CPU2Aは、最新ブロック判定手段として働き、ブロックB1、B2の先頭に書き込まれている通電時間を比較し、最大値が書き込まれているブロックを最新ブロックとして判定する。その後、CPU2Aは、読取手段として働き、最新ブロックの後ろから読み出し、最初に見つかった通電時間を最新通電時間、最初に見つかった設定データを最新設定データ、後ろから3つ目までの警報履歴、故障履歴を最新警報履歴、最新故障履歴として、設定器4に送信する。
図9に示す例では、CPU2Aは、ブロックB2を最新ブロックとして判定し、通電時間3を最新通電時間、設定データ2を最新設定データ、警報履歴4、3、2を最新警報履歴、故障履歴3、2、1を最新故障履歴として、設定器4に対して送信する。
上述した実施形態によれば、CPU2Aが、フラッシュメモリ2Dの領域に2つのブロックB1、B2を設け、2つのブロックB1、B2の1つを最新ブロックとして設定し、データ(通電時間、設定データ、警報履歴、故障履歴)が発生する毎に最新ブロックの空き領域の先頭から順に発生したデータの最後にデータ種類を付加して格納している。また、CPU2Aが、最新ブロックに空き領域があるか判定し、空き領域がないと判定された場合、最新ブロックを除いた他のブロックのデータを消去した後に、最新ブロックの後ろから順にデータを読み取り、データの最後に付加されたデータ種類に基づいて種類毎に後ろから1個、又は、3個づつのデータを抽出して、抽出したデータを他のブロックの先頭から順に書き込む。その後、CPU2Aが、書き込み終了後に、その他のブロックを最新ブロックとして設定している。
このように、データの最後にデータ種類を付加することにより、データが発生したとき、従来例のように全種類のデータ(通電時間、設定データ、警報履歴1〜3、故障履歴1〜3)を追記することなく、その発生したデータだけ後ろに追記しても、最新ブロックから種類毎に後ろから3個づつのデータ、即ち最新データを読み取ることができる。これにより、データが発生する毎に、書き込むデータ量を少なくすることができ、消去回数が削減でき、効率良く上書き不可なメモリを使用することができる。
また、上述した実施形態によれば、CPU2Aは、通電時間に関してはRAM2Cに上書き保存して、全消去された後、RAM2Cに格納された最新の通電時間を他のブロックの先頭から順に書き込む。これにより、最新ブロックの後ろから順に読み取ることなく、最新ブロックに格納されている最新の通電時間を他のブロックの先頭に移動することができる。
また、上述した実施形態によれば、CPU2Aが、各ブロックB1、B2の先頭に格納されている通電時間を比較し、最大の通電時間が書き込まれているブロックを最新ブロックとして判定し、最新ブロックの後ろから順にデータを読み取り、データの最後に付加されたデータ種類に基づいて種類毎に後ろから1個(通電時間、設定データの場合)、又は、3個づつ(警報履歴、故障履歴の場合)のデータを最新データとして読み取るので、最新ブロックに関する情報を持っていなくても、各ブロックの何れが最新ブロックであるかを判定できる。
上述した実施形態によれば、CPU2Aが、データの最後に付加されているデータ種類からデータ長を判定し、そのデータ種類が書き込まれているエリアから判定したデータ長分前までのエリアのデータを、データ種類のデータであると判定する。従って、従来のように、通電時間、警報履歴、故障履歴のデータ長を同じにしなくても、データを特定することができるので、各種類のデータのデータ長を同じに調整するためのデータ長調整用のエリアを設ける必要がなく、無駄なデータがフラッシュメモリ2Dに格納されることがない。
なお、上述した実施形態によれば、CPU2Aに、データの最後に付加されたデータ種類からそのデータ長を判定する機能を持たせて、通電時間、設定データ、警報履歴、故障履歴のデータ長をそれぞれ可変にしていたが、本発明はこれに限ったものではない。例えば、従来と同様にデータ長調整用のエリアを設け、通電時間、設定データ、警報履歴、故障履歴の互いのデータ長を同じに設ければ、データ長を判定する機能をCPU2Aに持たせる必要がない。
また、上述した実施形態によれば、設定器4による読み込み時に、CPU2Aは、各ブロックB1、B2の先頭に格納されている通電時間から最新ブロックを判定していたが、本発明はこれに限ったものではない。例えば、フラッシュメモリ2DのブロックB1、B2とは別の領域に、最新ブロックを示すエリアを設け、そのエリアに格納されたブロックを最新ブロックとして判定するようにしてもよい。この場合、最新ブロックが一杯になったときに、他のブロックの先頭に通電時間を書き込む必要がない。
また、上述した実施形態によれば、フラッシュメモリ2Dには、2つのブロックB1、B2が設けられていたが、本発明はこれに限ったものではない。ブロックとしては、2つ以上のブロックを設ければよく、3つでも、4つでもよい。
また、上述した実施形態によれば、通電時間については、RAM2C内にも上書き保存して、最新ブロックが一杯になったときに、RAM2C内に保存された最新の通電時間を他のブロックの先頭に移動させていたが、本発明はこれに限ったものではない。例えば、警報履歴や故障履歴についてもRAM2C内にも上書き保存して、最新ブロックが一杯になったときに、RAM2C内に保存された最新の警報履歴や故障履歴を他のブロックの先頭に移動させてもよい。
また、前述した実施形態は本発明の代表的な形態を示したに過ぎず、本発明は、実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
1 警報器(データ格納装置)
2A CPU(最新ブロック設定手段、データ格納手段、空き領域判定手段、消去手段、データ移動手段、最新ブロック判定手段、読取手段)
2D フラッシュメモリ(メモリ)
B1 ブロック
B2 ブロック

Claims (6)

  1. 上書き不可能なメモリに順次発生する複数種類のデータを格納するデータ格納装置において、
    前記メモリの領域内に複数のブロックを設け、前記複数のブロックの1つを最新ブロックとして設定する最新ブロック設定手段と、
    前記データが発生する毎に前記最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納するデータ格納手段と、
    前記最新ブロックに空き領域があるか否かを判定する空き領域判定手段と、
    前記空き領域判定手段により空き領域がないと判定された場合、前記最新ブロックを除いた他のブロックのデータを全消去する消去手段と、
    前記消去手段により全消去された後、前記最新ブロックの後ろから順にデータを読み取り、前記データの最後に付加されたデータ種類に基づいて種類毎に後ろから所定個づつのデータを抽出して、当該抽出したデータを前記他のブロックの先頭から順に書き込むデータ移動手段と、を備え、
    前記最新ブロック設定手段が、前記データ移動手段による書き込み終了後、当該他のブロックを最新ブロックとして設定する
    ことを特徴とするデータ格納装置。
  2. 上書き不可能なメモリに順次発生する複数種類のデータを格納するデータ格納装置において、
    前記メモリの領域内に複数のブロックを設け、前記複数のブロックの1つを最新ブロックとして設定する最新ブロック設定手段と、
    前記データが発生する毎に前記最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納するデータ格納手段と、
    前記データが発生する毎に上書き可能な第2メモリに前記発生したデータを上書きする第2データ格納手段と、
    前記最新ブロックに空き領域があるか否かを判定する空き領域判定手段と、
    前記空き領域判定手段により空き領域がないと判定された場合、前記最新ブロックを除いた他のブロックのデータを全消去する消去手段と、
    前記消去手段により全消去された後、前記第2メモリに格納された最新のデータを前記他のブロックの先頭から順に書き込むデータ移動手段と、を備え、
    前記最新ブロック設定手段が、前記データ移動手段による書き込み終了後、当該他のブロックを最新ブロックとして設定する
    ことを特徴とするデータ格納装置。
  3. 前記データとして、通電時間データが所定時間毎に発生するデータ格納装置において、
    前記各ブロックの先頭に格納されている通電時間データを比較し、最大の通電時間データが書き込まれているブロックを最新ブロックとして判定する最新ブロック判定手段と、
    前記最新ブロックの後ろから順にデータを読み取り、前記データの最後に付加されたデータ種類に基づいて種類毎に後ろから所定個づつのデータを最新データとして読み取る読取手段と、
    を備えたことを特徴とする請求項1又は2に記載のデータ格納装置。
  4. 前記読取手段及び前記データ移動手段が、前記データの最後に付加されているデータ種類からデータ長を判定し、そのデータ種類が書き込まれているエリアから判定したデータ長分前までのエリアのデータを、前記データ種類のデータであると判定する
    ことを特徴とする請求項3に記載のデータ格納装置。
  5. 上書き不可能なメモリに順次発生する複数種類のデータを格納するデータ格納方法において、
    前記メモリの領域に複数のブロックを設け、前記複数のブロックの1つを最新ブロックとして設定する最新ブロック設定工程と、
    前記データが発生する毎に前記最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納するデータ格納工程と、
    前記最新ブロックに空き領域があるか否かを判定する空き領域判定工程と、
    前記空き領域判定手段により空き領域がないと判定された場合、前記最新ブロックを除いた他のブロックのデータを全消去する消去工程と、
    前記消去工程において全消去された後、前記最新ブロックの後ろから順にデータを読み取り、前記データの最後に付加されたデータ種類に基づいて各種類毎に後ろから所定個づつのデータを抽出して、当該抽出したデータを前記他のブロックの先頭から順に書き込むデータ移動工程と、を備え、
    前記最新ブロック設定工程において、前記データ移動工程による書き込み終了後、当該他のブロックを最新ブロックとして設定する
    ことを特徴とするデータ格納方法。
  6. 上書き不可能なメモリに順次発生する複数種類のデータを格納するデータ格納方法において、
    前記メモリの領域内に複数のブロックを設け、前記複数のブロックの1つを最新ブロックとして設定する最新ブロック設定工程と、
    前記データが発生する毎に前記最新ブロックの空き領域の先頭から順に当該発生したデータの最後にデータ種類を付加して格納するデータ格納工程と、
    前記データが発生する毎に上書き可能な第2メモリに前記発生したデータを上書きする第2データ格納工程と、
    前記最新ブロックに空き領域があるか否かを判定する空き領域判定工程と、
    前記空き領域判定工程により空き領域がないと判定された場合、前記最新ブロックを除いた他のブロックのデータを全消去する消去工程と、
    前記消去工程により全消去された後、前記第2メモリに格納された最新のデータを前記他のブロックの先頭から順に書き込むデータ移動工程と、を備え、
    前記最新ブロック設定工程が、前記データ移動工程による書き込み終了後、当該他のブロックを最新ブロックとして設定する
    ことを特徴とするデータ格納方法。
JP2010269927A 2010-12-03 2010-12-03 データ格納装置及びデータ格納方法 Active JP5666273B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010269927A JP5666273B2 (ja) 2010-12-03 2010-12-03 データ格納装置及びデータ格納方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010269927A JP5666273B2 (ja) 2010-12-03 2010-12-03 データ格納装置及びデータ格納方法

Publications (2)

Publication Number Publication Date
JP2012118892A JP2012118892A (ja) 2012-06-21
JP5666273B2 true JP5666273B2 (ja) 2015-02-12

Family

ID=46501605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010269927A Active JP5666273B2 (ja) 2010-12-03 2010-12-03 データ格納装置及びデータ格納方法

Country Status (1)

Country Link
JP (1) JP5666273B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5851819B2 (ja) * 2011-12-15 2016-02-03 矢崎エナジーシステム株式会社 データ書込読取装置及びデータ書込読取方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61226847A (ja) * 1985-03-30 1986-10-08 Toshiba Corp ブロツク内管理方法
JPH04243439A (ja) * 1991-01-18 1992-08-31 Nec Software Ltd コンピュータにおける可変長レコードアクセス方式
JPH07140268A (ja) * 1993-11-18 1995-06-02 Sony Tektronix Corp 通電時間記録装置
US6535949B1 (en) * 1999-04-19 2003-03-18 Research In Motion Limited Portable electronic device having a log-structured file system in flash memory
JP2003076604A (ja) * 2001-09-03 2003-03-14 Nec Access Technica Ltd フラッシュメモリのログ情報収集方式および方法
US20050036387A1 (en) * 2002-04-24 2005-02-17 Seal Brian K. Method of using flash memory for storing metering data
JP2007237682A (ja) * 2006-03-10 2007-09-20 Oki Data Corp 画像形成装置
JP2008146521A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 自動車用電子制御装置
JP2009003604A (ja) * 2007-06-20 2009-01-08 Victor Co Of Japan Ltd ログ情報記録装置及びログ情報記録方法
JP2009064369A (ja) * 2007-09-10 2009-03-26 Fuji Electric Fa Components & Systems Co Ltd 警報器
JP4829202B2 (ja) * 2007-11-02 2011-12-07 株式会社日立製作所 記憶装置及びメモリ制御方法
US8090692B2 (en) * 2008-09-10 2012-01-03 Infinite Memory Ltd Method for using an OTP storage device
JP5100593B2 (ja) * 2008-09-26 2012-12-19 株式会社コナミデジタルエンタテインメント 情報処理装置、情報処理方法、ならびに、プログラム

Also Published As

Publication number Publication date
JP2012118892A (ja) 2012-06-21

Similar Documents

Publication Publication Date Title
US20100061150A1 (en) Logged-based flash memory system and logged-based method for recovering a flash memory system
JP4215746B2 (ja) 情報処理装置および寿命監視方法
CN101344868B (zh) 数据备份和获取的方法和装置
JP2010020586A (ja) データ処理装置
US10120791B2 (en) Data read apparatus, data read method, and storage medium storing data read program
TW201526007A (zh) Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統
JP4997798B2 (ja) 不揮発性半導体記憶装置およびメモリシステム
JP5666273B2 (ja) データ格納装置及びデータ格納方法
JP5851819B2 (ja) データ書込読取装置及びデータ書込読取方法
JP2009093528A (ja) メモリデータ管理装置
JP5983512B2 (ja) 書き込み装置
JP2014041468A (ja) フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリ制御方法
US20110082995A1 (en) Information processing apparatus
JP2007193905A (ja) 半導体記憶装置
JP6040895B2 (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
CN109299018B (zh) 一种Flash存储器中历史数据的读取方法及装置
JP2013200919A (ja) 不揮発性半導体メモリ装置、及び、その制御方法
JP6119682B2 (ja) 電子制御装置
JP4866114B2 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
JP2008225922A (ja) 不揮発性記憶装置
JP2009295089A (ja) メモリアクセス制御方法及びメモリ制御装置、コンピュータプログラム
JP4468342B2 (ja) データ管理方法
JP2016151922A (ja) メモリ制御装置及びメモリ制御方法
JP7317609B2 (ja) 電子制御装置
CN111258982B (zh) 一种历史数据存储管理方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20120926

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120927

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20121005

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140717

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141210

R150 Certificate of patent or registration of utility model

Ref document number: 5666273

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250