(57)【要約】【課題】不揮発性メモリにおけるデータの長期的な保存に伴う経時的なデータ損傷を回避すること。【解決手段】データ保護システム１は、同一内容の領域コードを格納するフラッシュメモリ４Ａ，４Ｂと、このメモリ４Ａ，４Ｂのうち一方のメモリが異常な領域コードを有する場合に正常な領域コードを有する他方のメモリを使用するメモリとして選択すると共に前記一方のメモリにおいては前記異常な領域コードのデータを消去して前記正常な領域コードのデータを書き込む制御部３と有する。【選択図】図１
2016192018.tif 000002
【特許請求の範囲】
【請求項１】
同一の領域コードを格納した二つの不揮発性メモリと、
この二つのメモリのうち一方のメモリが異常な領域コードを有する場合に正常な領域コードを有する他方のメモリを使用するメモリとして選択すると共に前記一方のメモリにおいては前記異常な領域コードのデータを消去して前記正常な領域コードのデータの書き込みを行う制御部と
を有するデータ保護システム。
【請求項２】
同一の領域コードを格納した二つのセクタを有する不揮発性メモリと、
前記二つのセクタのうち一方のセクタが異常な領域コードを有する場合に正常な領域コードを有する他方のセクタを使用するセクタとして選択すると共に前記一方のセクタにおいては前記異常な領域コードのデータを消去して前記正常な領域コードのデータの書き込みを行う制御部と
を有するデータ保護システム。
【請求項３】
前記制御部は、前記二つのメモリのうちいずれかのメモリのデータ保持時間が所定時間を越えている場合に当該いずれかのメモリにおいて前記異常な領域コードを有するか否かの判断を行うこと
を特徴とする請求項１に記載のデータ保護システム。
【請求項４】
前記制御部は、前記二つのセクタのうちいずれかのセクタのデータ保持時間が所定時間を越えている場合に当該いずれかのセクタにおいて前記異常な領域コードを有するか否かの判断を行うこと
を特徴とする請求項２に記載のデータ保護システム。
【請求項５】
前記制御部は、電源投入時に、前記異常の領域コードを有するか否かの判断を行うことを特徴とする請求項３または４に記載のデータ保護システム。
【請求項６】
前記制御部は、前記不揮発性メモリに保存された全てのデータの再書き込みを周期的に行うことを特徴とする請求項１から５のいずれか１項に記載のデータ保護システム。
【請求項７】
前記制御部は、前記消去または書き込みに失敗した場合にこの失敗の警告信号を出力することを特徴とする請求項１から６のいずれか１項に記載のデータ保護システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は不揮発性メモリのデータをバックアップ保存するための技術に関する。
【背景技術】
【０００２】
組み込みシステムのコンピュータにおいては、電源投入により起動するプログラム、ＯＳ、アプリケーション、データ等がフラッシュメモリに格納されることが多い。フラッシュメモリは約１０万回書き換え可能、データ保持時間１０年以上であるが、最近は半導体のプロセスルールが小さくなったために性能が厳しく制限される傾向にある。
【０００３】
フラッシュメモリの書き換え回数制限を緩和するために書き換え領域の均一化などの対策が採られていたが、今後はデータ保持時間に対するも必要となる。組み込みシステム等の長時間運用する装置システムではデータ保持時間が不足する可能性がある。
【０００４】
フラッシュメモリにはバイト単位若しくはワード単位で操作できるＮＯＲ型とページ単位で操作するＮＡＮＤ型がある。ＵＳＢメモリやメモリカード等はＮＡＮＤ型が使用されており内部にて故障検出を行いページ単位での入れ替えが可能である。組み込みシステムにおいては何れも使用できるが主にＮＯＲ型のメモリが適用されることが多い。
【０００５】
組み込みシステムのコンピュータに電源が投入されるとフラッシュメモリからプログラムが読み出されてＣＰＵによって実行される。実行方法としては、プログラムをＲＡＭにコピーしてから実行する方法、フラッシュメモリから読み出して実行する方法がある（例えば特許文献１，２等）。
【０００６】
ＲＡＭにコピーして実行する方法では、ＣＰＵ起動によりフラッシュメモリ内のブートプログラムが動作し、同メモリ内のＯＳやディスクイメージをＲＡＭ上にコピーする。次ぎに、ＣＰＵはＲＡＭ上のＯＳを実行する。フラッシュメモリの消去と書き込みは当該メモリ上の設定情報とログ情報などに限定され他の領域は読み込みである。
【０００７】
フラッシュメモリから読み出して実行する方法では、ＣＰＵの起動により先ずフラッシュメモリ内のブートプログラムが読み出され、次に同メモリ内のＯＳが読み出されて起動する。ＲＡＭにコピーして実行する方法との違いはＣＰＵによる読み出し動作が常時行われることである。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００２−１０８７２４号公報
【特許文献２】特開２０１０−２６６５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
フラッシュメモリは長時間書き換えが行われていない場合、電荷抜けにより記録データが損傷することがある。例えば、データ保持時間が１０年を超えて使用するとデータの一部が消失することがある。これにより、プログラムをＲＡＭにコピーして実行する方法では次回起動したとき正常な動作を実行できなくなる。一方、フラッシュメモリから読み出して実行する方法では読み出した時点で正常な動作を実行できなくなる。
【００１０】
そこで、データの定期的な書き換えが考えられるが、その履歴がフラッシュメモリに記録されないので、データの書き換えを怠ることがある。
【００１１】
フラッシュメモリは上書きすることができないので、データを一度消去する必要であり、データを読み出せない期間が生じる。また、データの読み出しは高速であるが、書き込みと消去に時間を要し、その間は読み出しができないので、フラッシュメモリへのアクセスに支障があり、組み込みシステムの停止を余儀なくされる。
【００１２】
組み込みシステムによっては停止不要でデータの書き換えができる場合もあるが、その場での上書きはシステムの機能に支障をきたすこともある。また、フラッシュメモリの書き換え中に当該メモリにアクセスしない装置であれば停止は不要できる。しかしながら、書き換えを失敗したときの対応が困難となる。
【００１３】
データの書き換え途中で電源が停止したときの対応を考慮しておかなければならない。さらに、書き換えの過程で誤ったイメージを書き込むおそれもある。そして、万が一データが消失した場合、システムを停止して該当するモジュールを交換しなければならない。このとき、代替のモジュールが用意されていないので、復旧に時間を要する。
【００１４】
本発明は上記の事情に鑑みなされたもので不揮発性メモリにおけるデータの長期保存に伴う経時的なデータ損傷を回避することを課題とする。
【課題を解決するための手段】
【００１５】
本発明のデータ保護システムは、同一の領域コードを格納した二つの不揮発性メモリと、この二つのメモリのうち一方のメモリが異常な領域コードを有する場合に正常な領域コードを有する他方のメモリを使用するメモリとして選択すると共に前記一方のメモリにおいては前記異常な領域コードのデータを消去して前記正常な領域コードのデータの書き込みを行う制御部とを有する。
【００１６】
本発明のデータ保護システムは、同一の領域コードを格納した二つのセクタを有する不揮発性メモリと、前記二つのセクタのうち一方のセクタが異常な領域コードを有する場合に正常な領域コードを有する他方のセクタを使用するセクタとして選択すると共に前記一方のセクタにおいては前記異常な領域コードのデータを消去して前記正常な領域コードのデータの書き込みを行う制御部とを有する。
【発明の効果】
【００１７】
以上の発明によれば不揮発性メモリにおけるデータの長期保存に伴う経時的なデータ損傷を回避できる。
【図面の簡単な説明】
【００１８】
【図１】発明の第一実施形態のデータ保護システムを示したブロック図。
【図２】発明の第二実施形態のデータ保護システムを示したブロック図。
【図３】ログ情報を格納したフラッシュメモリのデータ保護の説明図。
【図４】発明のデータ保護システムによるデータ保護の手順を説明したフローチャート。
【図５】フラッシュメモリの領域コードを例示した一覧。
【発明を実施するための形態】
【００１９】
以下に図面を参照しながら本発明の実施形態について説明する。
【００２０】
図１に示された本実施形態のデータ保護システム１は、組み込みシステムに備えられたフラッシュメモリ４のデータ消失を防ぐためデータ保護システムであって、定期的にデータの書き換えを行う。本システム１では、同一の領域コードを有する２つのフラッシュメモリ４を用いてデータ保持を行い、データ消失を防ぐ。
【００２１】
データ保護システム１はＣＰＵ２と制御部３とフラッシュメモリ４Ａ，４Ｂを備える。
【００２２】
制御部３は例えばＡＳＩＣ（Application Specific Integrated Circuit）によって実装される。制御部３は前記組み込みシステムの起動時及びＣＰＵ２からの指令によりフラッシュメモリ４Ａ，４Ｂの切り替え判定処理を実行する。
【００２３】
この判定処理では、フラッシュメモリ４Ａ，４Ｂの複数領域の最後にある領域コードを読み出し、前記メモリ４Ａ，４Ｂのうち異常な領域コードを有するメモリがある場合、正常な領域コードを有する一方のメモリを「使用するメモリ」として選択する。次いで、前記異常な領域コードを有する他方のメモリにおいては、当該異常な領域コードのデータを消去すると共に「使用するメモリ」に保存された正常な領域コードのデータを書き込む。また、前記消去または書き込みに失敗した場合にはこの失敗の警告信号を出力する。
【００２４】
フラッシュメモリ４Ａ，４Ｂは領域コード「０１Ｈ，０１Ｈ，ＦＦＨ，ＦＦＨ」の領域にプログラムやデータ（ログ情報を含む）を格納している。組み込みシステムの電源投入によりデータ保護システム１が起動すると制御部３はフラッシュメモリ４Ａ，４Ｂの領域コードを読み出して適切なアドレスに割り当てる。領域コード「０１Ｈ，０１Ｈ，ＦＦＨ，ＦＦＨ」以外の他の領域は、消去状態または前回書き込みのデータが格納された状態となっている。
【００２５】
図５にフラッシュメモリ４Ａ，４Ｂの領域コードを例示した。
【００２６】
領域コード「ＦＦＨ，ＦＦＨ、ＦＦＨ，ＦＨＨ」は、「この領域は消去状態または書き込み中」を意味する。この領域コードは「制御部３による消去の対象とされない他の領域」としてアドレスが割り当てられる。
【００２７】
領域コード「０１Ｈ，ｘｘＨ，ＦＦＨ、ＦＦＨ（ｘｘ：０１Ｈ以外）」は、「この領域は領域コード書き込み中に異常発生」を意味する異常な領域コードである。この領域コードは「前記消去の対象となる他の領域」としてアドレスが割り当てられる。
【００２８】
領域コード「０１Ｈ，０１Ｈ，ＦＦＨ，ＦＦＨ」は、「この領域は使用可能な状態」を意味する正常な領域コードである。この領域コードを有するメモリが、データ保護システム１起動時（電源投入時）の制御部３による選択の対象となる。尚、この領域コードが存在しない場合に「異常な領域コード」を有するメモリであると判断される。
【００２９】
領域コード「０１Ｈ，０１Ｈ，０２Ｈ，０２Ｈ」は、「別領域にコピー済みでこの領域は使用不可」を意味する。この領域コードは「前記消去の対象とされない他の領域」としてアドレスが割り当てられる。
【００３０】
領域コード「０１Ｈ，０１Ｈ，０２Ｈ，ｘｘＨ（ｘｘ：０２Ｈ以外）」は、「この領域は領域コード書き込み中に異常発生」を意味する異常な領域コードである。この領域コードは「前記消去の対象となる他の領域」としてアドレスが割り当てられる。
【００３１】
領域コード「０１Ｈ，０１Ｈ，ｘｘＨ，ＦＦＨ（ｘｘ：０２Ｈ以外）」は、「この領域は領域コード書き込み中に異常発生」を意味する異常な領域コードである。この領域コードは「前記消去の対象となる他の領域」としてアドレスが割り当てられる。
【００３２】
また、データ保護システム１はフラッシュメモリ４Ａ，４Ｂ内の全てのデータを定期的に書き換えることによりデータの消失を防ぐ。すなわち、データ保護システム１は図３に示したようにＣＰＵ２に対してシリアルバスを介して接続されるリアルタイムクロック５（以下、ＲＴＣ５）を備える。特に、ＣＰＵ２がディアルコアＣＰＵである場合、ＣＰＵ２はＲＴＣ５とフラッシュメモリ４Ａ（または４Ｂ）に対して同時にアクセスできる。
【００３３】
フラッシュメモリ４Ａ，４ＢはＲＴＣ５で検出されたデータ書き換え時刻をログ情報７として保存し、制御部３は前記保存された時刻に基づきデータ書き換えを周期的に実行する。ＲＴＣ５は、コイン電池やスーパーキャパシタを備えることにより、システム１の電源が停止しても時間情報を保持できるようになっている。
【００３４】
図４を参照しながら本実施形態のデータ保護動作の一例について説明する。
【００３５】
データ保護システム１の電源投入時，電源投入後のデータ保護のステップＳ１〜Ｓ５，Ｓ６〜Ｓ１１について説明する。データ保護システム１の電源投入後、ＣＰＵ２はＲＴＣ５から定期的に現在時刻を読み出し、フラッシュメモリ４Ａ，４Ｂに記録されたログ情報７に基づき当該メモリ４Ａ，４Ｂのデータ再書き込み（書き換え）の時期を判断してデータの再書き込みの指令を制御部３に出力する。以下にその具体的な手順について説明する。
【００３６】
Ｓ１：データ保護システム１の電源が投入される。
【００３７】
Ｓ２：ＣＰＵ２はフラッシュメモリ４Ａ，４Ｂのログ情報７から当該メモリ４Ａ，４Ｂの更新日時を読み出すと共にＲＴＣ５から現在日時を読み出す。
【００３８】
Ｓ３：ＣＰＵ２は前記読み出した更新日時と現在日時とを比較して当該更新日時から現在日時に至る経過時間がフラッシュメモリ４Ａ，４Ｂの所定のデータ保持時間（例えば１０年）内であるか否かを判断する。前記経過時間が前記データ保持時間を越えている場合、Ｓ４に移行する。一方、超えていない場合はＳ６に移行する。
【００３９】
Ｓ４：制御部３はＣＰＵ２からフラッシュメモリ４Ａ，４Ｂの再書き込みの指令を受けて当該メモリ４Ａ，４Ｂのデータの再書き込みを実行する。
【００４０】
再書き込みの具体的な処理の手順（Ｓ４０１〜Ｓ４０６）について説明する。
【００４１】
（Ｓ４０１）フラッシュメモリ４Ａ，４Ｂの排他処理を行う。
【００４２】
具体的には、フラッシュメモリ４Ａ，４Ｂのデータ保存領域の領域コードを読み出し、いずれかのメモリ４Ａ，４Ｂにおいて異常な領域コードを有するか否かの判断を行う。そして、メモリ４Ａ，４Ｂのうち異常な領域コードを有するメモリがある場合、正常な領域コードを有する方のメモリを選択する。例えば、メモリ４Ａが正常な領域コード「０１Ｈ，０１Ｈ，ＦＦＨ，ＦＦＨ」を有する一方で、メモリ４Ｂが異常な領域コード（例えば図５の「０１Ｈ，ｘｘＨ，ＦＦＨ、ＦＦＨ（ｘｘ：０１Ｈ以外）」「０１Ｈ，０１Ｈ，０２Ｈ，ｘｘＨ（ｘｘ：０２Ｈ以外）」「０１Ｈ，０１Ｈ，ｘｘＨ，ＦＦＨ（ｘｘ：０２Ｈ以外）」のいずれか）を有する場合、メモリ４Ａが選択される。
【００４３】
（Ｓ４０２）フラッシュメモリ４Ｂの前記異常な領域コードのデータを消去して領域コード「ＦＦＨ，ＦＦＨ，ＦＨＨ，ＦＨＨ」でコードされた新領域を確保する。
【００４４】
（Ｓ４０３）フラッシュメモリ４Ａの正常な領域コード「０１Ｈ，０１Ｈ，０２Ｈ，０２Ｈ」をフラッシュメモリ４Ｂの前記新領域にコピーする。
【００４５】
本事例ではフラッシュメモリ４Ｂの領域コード「ＦＦＨ，ＦＦＨ、ＦＦＨ，ＦＦＨ」の領域にフラッシュメモリ４Ａの領域コード「０１Ｈ，０１Ｈ，０２Ｈ，０２Ｈ」における「０１Ｈ，０１Ｈ」のデータが書き込まれる。尚、この書き込みに失敗した場合、制御部３は書き込み過程を中止して異常信号を出力する。
【００４６】
（Ｓ４０４）次いで、フラッシュメモリ４Ｂの領域コード「０１Ｈ，０１Ｈ、ＦＦＨ，ＦＦＨ」に「０２Ｈ，０２Ｈ」のデータを書き込む。
【００４７】
（Ｓ４０５）ＣＰＵ２からフラッシュメモリ４Ａ，４Ｂのアドレス切り替えの指示を受けると、フラッシュメモリ４Ａを「使用するメモリ」としてアドレスを割り当てる一方で、フラッシュメモリ４Ｂを「使用しないメモリ」としてアドレスを割り当てる。
【００４８】
（Ｓ４０６）フラッシュメモリ４Ａ，４Ｂの排他処理を解除する。
【００４９】
Ｓ５：制御部３はフラッシュメモリ４Ｂに保存されたログ情報７にＳ４の書き込み日時を記録する。
【００５０】
Ｓ６：ＣＰＵ２はその内部タイマーの初期化を行う。
【００５１】
Ｓ７：フラッシュメモリ４Ａ，４Ｂは、制御部３による通常のデータ処理（保存、消去）に供される。
【００５２】
Ｓ８：ＣＰＵ２はＲＴＣ５で検出された日時が予定されたフラッシュメモリ４Ａ，４Ｂのいずれかのメモリの再書き込みの日時であるかの判断を行う。前記検出された日時が再書き込みの日時である場合はステップＳ９に移行し、再書き込みの日時でない場合はＳ７の処理が継続される。
【００５３】
Ｓ９：ＣＰＵ２はフラッシュメモリ４Ａ，４Ｂのログ情報７から当該メモリの前回の書き込み日時を読み出すと共にＲＴＣ５から現在日時を読み出す。
【００５４】
Ｓ１０：ＣＰＵ２は前記読み出した書き込み日時と現在日時とを比較して当該書き込み日時から現在日時に至る経過時間がフラッシュメモリ４Ａ，４Ｂの所定のデータ保持時間（例えば１０年）内であるかを判断する。前記経過時間が前記データ保持時間を越えている場合、Ｓ１１に移行する。一方、超えていない場合はＳ７に戻る。
【００５５】
Ｓ１１：制御部３はＣＰＵ２からフラッシュメモリ４Ａ（または４Ｂ）のデータの再書き込みの指令を受けて当該メモリに保存された全てのデータの再書き込みを実行する。Ｓ１１においても、Ｓ４（Ｓ４０１〜Ｓ４０４）のステップを実行してもよい。
【００５６】
Ｓ１２：制御部３はＳ１１の再書き込みを行ったフラッシュメモリ４Ａ（または４Ｂ）のログ情報７の記憶領域に当該書き込みの日時を書き込む。その後、Ｓ７に移行し、フラッシュメモリ４Ａ（または４Ｂ）は通常のデータ処理に供される。
【００５７】
以上のように本実施形態のデータ保護システム１によれば、フラッシュメモリ４Ａ，４Ｂにデータが書き込まれてから長い間動作し続けた場合でも自動的にデータの再書き込みが行われるので、データの長期的な保存に伴う経時的なデータ損傷を回避できる。
【００５８】
フラッシュメモリ４Ａ，４Ｂはデータ保持時間の制限があるので数年の周期でデータの書き換えが必要であるが、定期的に自動書き換えが実行されるので、データの維持管理の負担を軽減できる。
【００５９】
通常のフラッシュメモリの書き換え中は他のセクタであっても読み書きすることができない。そのため、フラッシュメモリから常時読み出す必要のある装置は装置を停止する必要がある。
【００６０】
これに対して、データ保護システム１は、フラッシュメモリ４Ａ，４Ｂが交互に切替えて使用され、データの消去や書き込み中であっても、正常なフラッシュメモリの読み出しが可能であり、組み込みシステムを停止させる必要がない。また、データの書き込みや消去に失敗が生じても、処理を停止するだけで現状維持できるので、組み込みシステムの停止には至らない。尚、前記失敗が生じた場合、その警告信号が出力されるので、ユーザに当該失敗を認識させることができる。
【００６１】
また、データの書き換えの過程で組み込みシステムの電源が停止した場合でも、フラッシュメモリ４Ａ，４Ｂにおいては正常なデータのイメージが残るので、電源が再投入された時に自動的に正常なイメージのデータで動作できる。
【００６２】
さらに、Ｓ４のデータの書き込み過程では現在使用しているデータのイメージをコピーするので誤ったイメージの書き込みを回避できる。
【００６３】
そして、データの書き込み日時がログ情報７として保存されるのでデータの保持時間の把握並びに周期なデータ書き込みが行え、データの長期保存に伴う経時的なデータの経時劣化を防止できる。特に、Ｓ１１においてＳ４（Ｓ４０１〜Ｓ４０４）のステップを実行すれば、定期的な自動書き換えの過程で異常な領域のデータを書き込むリスクを解消できる。
【００６４】
また、本発明の他の態様としてのデータ保護システムは、図２に例示したデータ保護システム１０のように、フラッシュメモリ４Ａ，４Ｂの代わりにフラッシュメモリ６を有する。フラッシュメモリ６は少なくとも二つのセクタ（セクタ６Ａ，６Ｂ）を有する。そして、このセクタ６Ａ，６Ｂを交互に切替えて使用する。フラッシュメモリ６のセクタ６Ａ，６Ｂにおいてもフラッシュメモリ４Ａ，４Ｂと同様にデータの書き込み時刻がログ情報７として記録される。
【００６５】
すなわち、本実施形態のデータ保護システム１０では、実施形態１と同様にステップＳ１〜Ｓ１２が実行される。特に、Ｓ４の過程では、制御部３は、フラッシュメモリ６においてセクタ６Ａ，６Ｂのうち一方のセクタが異常な領域コードを有する場合に、正常な領域コードを有する他方のセクタを「使用するセクタ」として選択すると共に前記一方のセクタにおいては前記異常な領域コードのデータを消去して前記正常な領域コードのデータを書き込む（Ｓ４０１〜Ｓ４０４）。そして、前記他方のセクタを「使用するセクタ」としてアドレスを割り当てると共に、前記一方のセクタを「使用しないセクタ」としてアドレスを割り当てる（Ｓ４０５）。その後、フラッシュメモリ６は通常のデータ処理に供される（Ｓ６，Ｓ７）。そして、セクタ６Ａ，６Ｂに保存されたログ情報７に基づきセクタ６Ａ，６Ｂの記憶領域の全てのデータの再書き込みが周期的に実行される（Ｓ８〜Ｓ１２）。
【００６６】
データ保護システム１０においても前述のデータ保護システム１と同様の効果が得られることは言うまでもない。特に、データ保護システム１０のように２つのセクタを有するフラッシュメモリ６を採用することにより、データバックアップ用のフラッシュメモリが不要となるので、データ保護のコスト削減が可能となる。
【００６７】
尚、本発明は以上説明した実施の態様に何ら限定することなく、当業者によって適宜変更して実施が可能であり、この変更された態様も発明の技術範囲に属する。
【００６８】
上述の実施形態のデータ保護システムは不揮発性メモリの一例であるフラッシュメモリに適用されたものであるが、本発明のデータ保護システムは、フラッシュメモリに限定されることなく、他の不揮発性メモリにおいても適用できる。
【符号の説明】
【００６９】
１，１０…データ保護システム
２…ＣＰＵ
３…制御部
４Ａ，４Ｂ，６…フラッシュメモリ（不揮発性メモリ）
６Ａ，６Ｂ…セクタ
【図１】
2016192018.tif 000003
【図２】
2016192018.tif 000004
【図３】
2016192018.tif 000005
【図４】
2016192018.tif 000006
【図５】
2016192018.tif 000007