(57)【要約】【課題】フラッシュメモリの利用効率を高めると共に、電圧検知回路及びバックアップ電源を不要とした不揮発性記憶装置を提供する。【解決手段】フラッシュメモリ３０の領域Ａにバックアップデータを順次書込み、領域Ａのデータ消去済み領域の残容量がデータ２４個分となったときに領域Ｂのデータを全て消去し、その後該残容量がゼロとなったときに書込み先メモリを領域Ａから領域Ｂに切り換える第１のバックアップデータ書込み処理と、領域Ｂにバックデータを順次書込み、領域Ｂの消去済み領域の残容量がデータ２４個分となったときに、領域Ａのデータを全て消去し、その後該残量がゼロとなったときに書込み先メモリを領域Ｂから領域Ａに切り換える第２のバックアップデータ書込み処理を、交互に繰り返し実行するメモリ制御手段１１を備える。【選択図】  図１
2008225922.tif 000002
【特許請求の範囲】
【請求項１】
第１のフラッシュメモリ及び第２のフラッシュメモリと、
前記第１のフラッシュメモリに、所定条件下で書込み要求が発生するバックアップデータを順次書込み、前記第１のフラッシュメモリのデータ消去済み領域の残容量が第１の所定値以下となったときに、前記第２のフラッシュメモリのデータを消去し、また、前記第１のフラッシュメモリの消去済み領域の残容量が該第１の所定値以下に設定された第２の所定値以下となったときに、書込み先メモリを前記第１のフラッシュメモリから前記第２のフラッシュメモリに切り換える第１のバックアップデータ書込み処理と、
前記第２のフラッシュメモリに前記バックアップデータを順次書込み、前記第２のフラッシュメモリの消去済み領域の残容量が第３の所定値以下となったときに、前記第１のフラッシュメモリのデータを消去し、また、前記第２のフラッシュメモリの消去済み領域の残容量が該第３の所定値以下に設定された第４の所定値以下となったときに、書込み先メモリを前記第２のフラッシュメモリから前記第１のフラッシュメモリに切り換える第２のバックアップデータ書込み処理とを、交互に繰り返し実行するメモリ制御手段とを備えたことを特徴とする不揮発性記憶装置。
【請求項２】
エラー検知手段を有する機器に搭載して使用され、
前記所定条件は前記エラー検知手段によりエラーが検知されることであり、前記書込み要求は前記エラー検知手段によりエラーが検知されたときに発生し、前記バックアップデータは、該エラーの種別を示すエラーコードのデータであることを特徴とする請求項１記載の不揮発性記憶装置。
【請求項３】
前記第１のフラッシュメモリ及び前記第２のフラッシュメモリは、単一のメモリの記憶領域内に割り当てられた部分的な記憶領域であることを特徴とする請求項１又は請求項２記載の不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリにバックアップデータを保持する不揮発性記憶装置に関する。
【背景技術】
【０００２】
従来より、フラッシュメモリやＥＥＰＲＯＭ等の不揮発性メモリを有して、電源遮断時にも保持する必要があるバックアップデータを該不揮発性メモリに保持するようにした不揮発記憶装置が知られている。
【０００３】
ここで、不揮発性メモリとしてＥＥＰＲＯＭを使用する場合は、ＥＥＰＲＯＭがマイコンとは別のパッケージとなるのが一般的である。そのため、マイコン周辺の回路スペースが大きくなるという不都合がある。そこで、近年は、マイコンにフラッシュメモリを内蔵させて、該フラッシュメモリにバックアップデータを記憶するようにした構成が採用されるようになってきている。
【０００４】
このように、マイコンに内蔵されたフラッシュメモリを使用することで、マイコン周辺の回路スペースを小さくすることができる。そして、従来のフラッシュメモリを使用した不揮発性記憶装置は、例えば図３（ａ）に示したように、揮発性のＲＡＭ５５と不揮発性のフラッシュメモリ５６とを備えて、ＣＰＵ５４とＲＡＭ５５及びフラッシュメモリ５６間で、データの書込みと読出しを行うように構成されていた。図３（ａ）に示した不揮発性記憶装置には、電源５０からの電力供給をＯＮ／ＯＦＦするスイッチ５１と、バックアップ電源５２（コンデンサや二次電池）と、電源電圧を検知する電圧検知回路５３とが備えられている。
【０００５】
そして、スイッチ５１がＯＮからＯＦＦに切り換えられて、或いは停電や電源プラグ（図示しない）の抜けが生じて、電圧検知回路５３により電源電圧の低下が検知されたときに、ＣＰＵ５４がそれまでＲＡＭ５５に保持されていたバックアップデータをフラッシュメモリ５６に転送するようにしていた。
【０００６】
ここで、フラッシュメモリは、その仕様上、所定サイズの容量単位でしかメモリに保持されたデータを消去することができない。また、フラッシュメモリのデータ消去の可能回数には制限がある。そこで、図３（ｂ）に示したように、フラッシュメモリ５６をデータ消去単位である例えば６４byteごとの領域（領域(1)，領域(2)，…，領域(N)）に分割し、Ｎ個の領域を巡回させるようにしてデータの消去とバックアップデータの転送を行う領域を切り換えることで、フラッシュメモリ５６の使用可能期間を延ばすようにした構成が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００２-３４２１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述した特許文献１記載の不揮発性記憶装置では、フラッシュメモリ５６のデータ消去単位ごとに、ＲＡＭ５５からフラッシュメモリ５６にバックアップデータを転送していた。そのため、バックアップデータを転送するタイミングによっては、図３（ｃ）に示したように、各領域の一部にしかデータが書き込まれていない状態でバックアップデータが保持される場合があり、フラッシュメモリ５６の利用効率が低いという不都合があった。
【０００８】
また、電圧検知回路５３により電源電圧の低下が検知されたときに、ＲＡＭ５５からフラッシュメモリ５６へのバックアップデータの転送を行う構成であるため、電圧検知回路５３とバックアップ電源５２を備えることが必須となる。また、電源電圧の低下が検知されてから、フラッシュメモリ５６のいずれかの領域のデータを消去してバックアップデータを転送する場合、フラッシュメモリ５６の消去にはある程度時間を要するため、容量の大きいバックアップ電源５２を備える必要がある。そして、電圧検知回路５３及びバックアップ電源５２を備えることで、部品コストの増大と部品搭載スペースの拡大が生じるという不都合があった。
【０００９】
本発明は上記背景を鑑みてなされたものであり、フラッシュメモリの利用効率を高めると共に、電圧検知回路及びバックアップ電源を不要とした不揮発性記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は上記目的を達成するためになされたものであり、第１のフラッシュメモリ及び第２のフラッシュメモリと、前記第１のフラッシュメモリに、所定条件下で書込み要求が発生するバックアップデータを順次書込み、前記第１のフラッシュメモリのデータ消去済み領域の残容量が第１の所定値以下となったときに、前記第２のフラッシュメモリのデータを消去し、また、前記第１のフラッシュメモリの消去済み領域の残容量が該第１の所定値以下に設定された第２の所定値以下となったときに、書込み先メモリを前記第１のフラッシュメモリから前記第２のフラッシュメモリに切り換える第１のバックアップデータ書込み処理と、前記第２のフラッシュメモリに前記バックアップデータを順次書込み、前記第２のフラッシュメモリの消去済み領域の残容量が第３の所定値以下となったときに、前記第１のフラッシュメモリのデータを消去し、また、前記第２のフラッシュメモリの消去済み領域の残容量が該第３の所定値以下に設定された第４の所定値以下となったときに、書込み先メモリを前記第２のフラッシュメモリから前記第１のフラッシュメモリに切り換える第２のバックアップデータ書込み処理とを、交互に繰り返し実行するメモリ制御手段とを備えたことを特徴とする。
【００１１】
かかる本発明によれば、前記メモリ制御手段は、前記第１のバックアップデータ書込み処理によって、前記第１のフラッシュメモリを書込み先メモリとしてバックアップデータを書き込むときは、前記第１のフラッシュメモリのデータ消去済み領域の残容量が前記第１の所定値以下となったときに、前記第２のフラッシュメモリのデータを消去する。そして、前記メモリ制御手段は、前記第１のフラッシュメモリのデータ消去済み領域の残容量が前記第２の所定値以下となったときに、書込み先メモリを前記第１のフラッシュメモリから前記第２のフラッシュメモリに切り換える。
【００１２】
また、同様にして、前記メモリ制御手段は、前記第２のバックアップデータ書込み処理によって、前記第２のフラッシュメモリを書込み先メモリとしてバックアップデータを書き込むときは、前記フラッシュメモリのデータ消去済み領域の残容量が前記第３の所定値以下となったときに、前記第１のフラッシュメモリのデータを消去する。そして、前記メモリ制御手段は、前記第２のフラッシュメモリのデータ消去済み領域の残容量が前記第４の所定値以下となったときに、書込み先メモリを前記第２のフラッシュメモリから前記第１のフラッシュメモリに切り換える。
【００１３】
この場合、前記第１のフラッシュメモリのデータ消去済み領域の残量が僅かになるまで、前記第１のフラッシュメモリにバックアップデータが書き込まれ、また、同様に、前記第２のフラッシュメモリのデータ消去済み領域の残量が僅かになるまで、前記第２のフラッシュメモリにバックアップデータが書き込まれる。そのため、前記第１のフラッシュメモリ及び前記第２のフラッシュメモリの使用効率を高めることができる。
【００１４】
そして、このように、データ消去済み領域の残容量が僅かになってから、前記第１のフラッシュメモリ及び前記第２のフラッシュメモリのデータが消去される。そのため、前記第１のフラッシュメモリ及び前記第２のフラッシュメモリのデータ消去頻度を減少させて、前記第１のフラッシュメモリ及び前記第２のフラッシュメモリの使用期限を延ばすことができる。
【００１５】
さらに、前記メモリ制御手段は、前記第１のバックアップデータ書込み処理の実行時に前記第２のフラッシュメモリのデータを消去し、また、前記第２のバックアップデータ書込み処理の実行時に前記第１のフラッシュメモリのデータを消去する。そのため、電源が遮断されてからバックアップデータを転送する場合に必要であった、バックアップ電源及び電圧検知回路を備える必要がない。
【００１６】
また、エラー検知手段を有する機器に搭載して使用され、前記所定条件は前記エラー検知手段によりエラーが検知されることであり、前記書込み要求は前記エラー検知手段によりエラーが検知されたときに発生し、前記バックアップデータは、該エラーの種別を示すエラーコードのデータであることを特徴とする。
【００１７】
かかる本発明によれば、前記エラー検知手段により検知されたエラーの種別を示すエラーコードが、前記メモリ制御手段により前記第１のフラッシュメモリ又は前記第２のフラッシュメモリに順次書き込まれていく。この場合、前記第１のフラッシュメモリと前記第２のフラッシュメモリの少なくともいずれか一方に、データ消去済み領域の残容量が僅かになるまで前記エラーコードのデータが書き込まれた状態が維持される。そのため、前記機器のメンテナンス者等は、前記第１のフラッシュメモリ又は前記第２のフラッシュメモリに書き込まれたエラーコードを参照して、過去のエラーの発生履歴を認識することができる。
【００１８】
また、前記第１のフラッシュメモリ及び前記第２のフラッシュメモリは、単一のフラッシュメモリの記憶領域内に割り当てられた部分的な記憶領域であることを特徴とする。
【００１９】
かかる発明によれば、単一のフラッシュメモリを使用する場合であっても、前記第１のフラッシュメモリ及び前記第２のフラッシュメモリを構成することができる。
【発明を実施するための最良の形態】
【００２０】
本発明の実施の形態について、図１〜図２を参照して説明する。図１は本発明の不揮発性記憶装置の構成図、図２は図１に示したメモリ制御手段によるフラッシュメモリへのデータ書込み処理及びデータ消去処理のフローチャートである。
【００２１】
図１を参照して、ＣＰＵ１０は、ＲＡＭ２０及びフラッシュメモリ３０とデータ読出しと書込みが可能に接続されており、スイッチ２を介して、電源１からＣＰＵ１０、ＲＡＭ２０、及びフラッシュメモリ３０に電力が供給される。なお、本実施の形態の不揮発性記憶装置は燃焼機器に備えられ、該燃焼機器のエラーを検知するためのセンサ４０の検出信号がＣＰＵ１０に入力されている。
【００２２】
また、ＣＰＵ１０に制御用のプログラムを実行させることにより、ＣＰＵ１０は、フラッシュメモリ３０へのデータの書込みとフラッシュメモリ３０に書き込まれたデータの消去を行うメモリ制御手段１１、及びセンサ４０の検出信号等に基づいて該燃焼機器のエラーを検知するエラー検知手段１２として機能する。
【００２３】
図１（ｂ）を参照して、フラッシュメモリ３０は１０２４byteを消去単位とし、アドレス0000h（ｈは１６進数であることを示す）〜03FFhを範囲とする領域Ａ（図中３０ａ、本発明の第１のフラッシュメモリに相当する）と、アドレス0400h〜07FFhを範囲とする領域Ｂ（図中３０ｂ、本発明の第２のフラッシュメモリに相当する）とを有している。
【００２４】
また、図１（ｃ）を参照して、メモリ制御手段１１は、領域Ａへのデータの書込みを、先頭アドレス0000hから、データ(1)→0000h、データ(2)→0001h、データ(3)→0002h、…と、アドレスを１ずつ増加させて行う（本発明の順次書込み、に相当する）。また、メモリ制御手段１１は、領域Ｂへのデータの書込みも、同様に先頭アドレス0400hからアドレスを１ずつ増加させて行う（本発明の順次書込み、に相当する）。
【００２５】
次に、図２に示したフローチャートに従って、メモリ制御手段１１によるフラッシュメモリ３０の領域Ａ及び領域Ｂに対するデータの書込みと領域Ａ及び領域Ｂのデータ消去の実行手順について説明する。
【００２６】
図１（ａ）を参照して、スイッチ２がＯＮ操作されて、電源１からＣＰＵ１０、ＲＡＭ２０、及びフラッシュメモリ３０への電力供給が開始されると、ＣＰＵ１０は制御プログラムの実行を開始して、メモリ制御手段１１が図２に示したフローチャートを実行する。
【００２７】
図２のＳＴＥＰ１で、メモリ制御手段１１は、エラー検知手段１２により燃焼機器のエラーが検知されのを待つ。そして、エラー検知手段により燃焼機器のエラーが検知されたときにＳＴＥＰ２に進み、メモリ制御手段１１はフラッシュメモリ３０の書込みアドレスを取得する。
【００２８】
具体的には、メモリ制御手段１１は、先ず、フラッシュメモリ３０の先頭アドレス0000hのデータが消去されているか否かを確認する。なお、フラッシュメモリ３０のデータが消去された領域からは、FFhのデータが読み出される。そのため、メモリ制御手段１１は、FFhのデータが読み出されたアドレスを、データが消去されたアドレスと判断する。
【００２９】
次に、メモリ制御手段１１は、先頭アドレス0000hのデータが消去されていないときは、フラッシュメモリ３０の先頭アドレス0000hから最終アドレス07FFhに向かって、アドレスをインクリメントしながらデータが消去されている最初のアドレスを見つける。そして、メモリ制御手段１１は、このようにして見つけたアドレスを書込みアドレスとして取得し、ＲＡＭ２０の変数領域２１に設定されたアドレス変数Ａd_cntにセットする。なお、フラッシュメモリ３０は、初期状態においては全ての領域のデータが消去された状態になっている。
【００３０】
一方、アドレス0000hのデータが消去されているときは、後述するＳＴＥＰ２０の処理により、領域Ａのデータが全て消去された状態となっている。そこで、メモリ制御手段１１は、領域Ｂについてデータの消去状況を確認する。
【００３１】
領域Ｂの先頭アドレス0400hのデータが消去されていないときは、メモリ制御手段１１は、領域Ｂの先頭アドレス0400hから最終アドレス07FFhに向かって、アドレスをインクリメントしながらデータが消去されている最初のアドレスを見つける。そして、メモリ制御手段１１は、このようにして見つけたアドレスを書き込みアドレスとして取得し、アドレス変数Ａd_cntにセットする。また、データが消去されたアドレスが見つからなかったとき（0400hから07FFhの全てのアドレスにデータが書き込まれていたとき）は、メモリ制御手段ｌ１は、領域Ａの先頭アドレス0000hを書込みアドレスとして取得し、アドレス変数Ａd_cntにセットする。
【００３２】
また、領域Ｂの先頭アドレス0400hのデータが消去されているときには、後述するＳＴＥＰ３０の処理により、領域Ｂのデータが全て消去されている。そのため、領域Ａと領域Ｂのデータが全て消去された状態となっている。そこで、この場合は、メモリ制御手段１１は、領域Ａの先頭アドレス0000hを書込みアドレスとして取得し、アドレス変数Ａd_cntにセットする。
【００３３】
次のＳＴＥＰ３で、メモリ制御手段１１は、Ａd_cntが0400hよりも小さいか否かを判断する。そして、Ａd_cntが0400hよりも小さいとき、即ち領域Ａのアドレス範囲（0000h〜03FFh）内であるときはＳＴＥＰ４に進み、メモリ制御手段１１は、Ａd_cntが示すアドレスにエラーコードを書込む。
【００３４】
そして、ＳＴＥＰ５に進み、メモリ制御手段１１は、Ａd_cntが03E7h（領域Ａの先頭アドレス0000hから1000番目のアドレス）であるか否かを判断する。Ａd_cntが03E7hであったときはＳＴＥＰ３０に分岐し、メモリ制御手段１１は領域Ｂのデータを消去してＳＴＥＰ１に進む。これにより、領域Ａのデータ消去済み領域の残容量がゼロとなる前に、領域Ａのデータ消去済み領域の残容量が僅かになった（領域Ａのアドレス数1024-1000=24個のデータ分の残容量，本発明の第１の所定値に相当する）段階で、領域Ｂのデータが全て消去される。
【００３５】
一方、ＳＴＥＰ５でＡd_cntが03E7hでなかったときにはＳＴＥＰ１に進み、領域Ｂのデータは消去されない。そして、ＳＴＥＰ１以降の処理が再び実行される。
【００３６】
また、ＳＴＥＰ３でＡd_cntが0400h以上となったときにはＳＴＥＰ１０に分岐する。そして、メモリ制御手段１１は、Ａd_cntが示すアドレスにエラーコードを書込む。続くＳＴＥＰ１１で、メモリ制御手段１１は、Ａd_cntが07E7h（領域Ｂの先頭アドレス0400hから1000番目のアドレス）であるか否かを判断する。Ａd_cntが07E7hであったときはＳＴＥＰ２０に分岐し、メモリ制御手段１１は領域Ａのデータを消去してＳＴＥＰ１に進む。
【００３７】
これにより、領域Ｂのデータ消去済み領域の残容量がゼロとなる前に、領域Ｂのデータ消去済み領域の残容量が僅かになった（領域Ｂのアドレス数1024-1000=24個のデータ分の残容量，本発明の第３の所定値に相当する）段階で、領域Ａのデータが全て消去される。
【００３８】
一方、ＳＴＥＰ１１でＡd_cntが07E7hでなかったときにはＳＴＥＰ１に進み、領域Ａのデータは消去されない。そして、ＳＴＥＰ１以降の処理が再び実行される。
【００３９】
なお、ＳＴＥＰ４，ＳＴＥＰ５，及びＳＴＥＰ３０による処理が、本発明の第１のバックアップデータ書込み処理に相当する。また、ＳＴＥＰ１０，ＳＴＥＰ１１，及びＳＴＥＰ２０による処理が、本発明の第２のバックアップデータ書込み処理に相当する。
【００４０】
また、ＳＴＥＰ３０で領域Ｂのデータを消去した場合、ＳＴＥＰ３からＳＴＥＰ１０に分岐して、バックアップデータの書込み先がフラッシュメモリ３０の領域Ａから領域Ｂに切換わるのは、Ａd_cntが03FFhから0400hになったときになる。そのため、本発明のバックアップデータの書込み先が領域Ａ（本発明の第１のフラッシュメモリに相当する）から領域Ｂ（本発明の第２のフラッシュメモリに相当する）に切換わる条件である、領域Ａのデータ消去済み領域の残容量についての第２の所定値はゼロとなる。
【００４１】
また、ＳＴＥＰ２０で領域Ａのデータを消去した場合、ＳＴＥＰ３からＳＴＥＰ４に進んで、バックアップデータの書込み先がフラッシュメモリ３０の領域Ｂから領域Ａに切換わるのは、Ａd_cntが07FFhから0000hになったときになる。そのため、本発明のバックアップデータの書込み先を領域Ｂ（本発明の第２のフラッシュメモリに相当する）から領域Ａ（本発明の第１のフラッシュメモリに相当する）に切換えるときの条件である、領域Ｂのデータ消去済み領域の残容量についての第４の所定値はゼロとなる。
【００４２】
なお、本発明の第２の所定値は第１の所定値（本実施の形態ではデータ２４個分のデータ消去済み領域の残容量）以下に設定すればよく、また、本発明の第４の所定値は第３の所定値（本実施の形態ではデータ２４個分のデータ消去済み領域の残容量）以下に設定すればよい。
【００４３】
以上説明した図２のフローチャートによる処理によって、図１（ｃ）に示したように、フラッシュメモリ３０の領域Ａ（図中３０ａ）と領域Ｂ（図中３０ｂ）には、アドレスがインクリメントされて昇順にエラーコードが順次書込まれる。そのため、フラッシュメモリ３０の使用効率を高めることができる。
【００４４】
また、領域ＡについてはＳＴＥＰ１１及びＳＴＥＰ２０の処理により、また、領域ＢについてはＳＴＥＰ５及びＳＴＥＰ３０に処理により、データ消去済み領域の残容量が僅か（データ２４個分）になったときに、全てのデータ消去される。そのため、データ消去の頻度を低くして、フラッシュメモリ３０の使用期間（寿命）を伸ばすことができる。
【００４５】
また、初期状態を除けば、領域Ａが書込み先メモリとして選択されているときは、領域Ｂには1024個分の過去に発生したエラーのエラーコードが書込まれた状態となる。同様に、領域Ｂが書込み先メモリとして選択されているときは、領域Ａには1024個分の過去に発生したエラーのエラーコードが書込まれた状態となる。そのため、メンテナンス作業者等は、フラッシュメモリ３０から、少なくとも1024個分の直近に発生したエラーの履歴を読み出すことができる。
【００４６】
また、本実施の形態では、エラーが検知される毎にエラーコードがフラッシュメモリ３０に書込まれる。そのため、電源が遮断されたときに、ＲＡＭ等の揮発性メモリに保持されたデータをフラッシュメモリ等の不揮発メモリに転送する構成のように、電圧検知回路及びバックアップ電源を備える必要はない。
【００４７】
また、本実施の形態では、図１（ｂ）及び図１（ｃ）に示したように、単一のフラッシュメモリ３０の記憶領域内に割り当てられた部分的な領域３０ａを本発明の第１のフラッシュメモリとし、また、部分的な領域３０ｂを本発明の第２のフラッシュメモリとしたが、第１のフラッシュメモリと第２のフラッシュメモリを別個のフラッシュメモリに割り当てる構成としてもよい。
【００４８】
なお、本実施の形態では、本発明のバックアップデータとして、燃焼機器のエラーの種類を示すエラーコードをフラッシュメモリに書込む例を示したが、他の種類のバックアップデータをフラッシュメモリに書込む場合にも、本発明の効果を得ることができる。
【図面の簡単な説明】
【００４９】
【図１】本発明の不揮発性記憶装置の構成図。
【図２】図１に示したメモリ制御手段によるフラッシュメモリのデータ書込み処理及びデータ消去処理のフローチャート。
【図３】従来の不揮発性記憶装置の構成図。
【符号の説明】
【００５０】
１…電源、２…スイッチ、１０…ＣＰＵ、１１…メモリ制御手段、１２…エラー検知手段、２０…ＲＡＭ、２１…変数領域、３０…フラッシュメモリ、３０ａ…フラッシュメモリの領域Ａ、３０ｂ…フラッシュメモリの領域Ｂ
【図１】
2008225922.tif 000003
【図２】
2008225922.tif 000004
【図３】
2008225922.tif 000005