(57)【要約】【課題】ファイル本体の新規作成中や更新中、または管理情報の更新中に電源断が発生したとしても、システムを正常に起動することが出来るファイルシステムを提供する。【解決手段】本発明の制御装置のファイルシステムは、第一の不揮発性メモリに記憶されるファイル本体に対して第一及び第二の管理情報を設けると共に、高速アクセス可能な第二の不揮発性メモリ上に該第一及び第二の管理情報の書き込み状態を示す第一及び第二のフラグを設け、ファイル本体を更新するとき、第一のフラグと第二のフラグをクリアした後、ファイル本体が保存されたブロックとは別のブロックに更新したファイル本体を新規に保存し、更新したファイル本体に合わせて第一の管理情報を更新して第二の不揮発性メモリに第一のフラグをセットし、該第一のフラグをセットした後、更新したファイル本体に合わせて第二の管理情報を更新して第二のフラグをセットする。【選択図】図３
2017021561.tif 000002
【特許請求の範囲】
【請求項１】
ブロックごとに消去可能な第一の不揮発性メモリに、プロセッサと、前記第一の不揮発性メモリよりも高速にアクセス可能な第二の不揮発性メモリとが接続され、外部から入力された電源を変換する電源回路を備えた制御装置のファイルシステムであって、
前記第一の不揮発性メモリには、ファイル本体と、前記ファイル本体の格納状態を示す第一の管理情報と第二の管理情報とが保存可能であり、
前記第二の不揮発性メモリには、前記第一の管理情報の書き込み状態を示す第一のフラグと、前記第二の管理情報の書き込み状態を示す第二のフラグと、が保存され、
ファイルを保存するとき、前記プロセッサは前記第一のフラグと第二のフラグをクリアした後、前記第一の不揮発性メモリの空きブロックに前記ファイルのファイル本体を新規に保存し、
保存した前記ファイル本体に合わせて前記第一の管理情報を保存して前記第二の不揮発性メモリに前記第一のフラグをセットし、
該第一のフラグをセットした後、保存した前記ファイル本体に合わせて前記第二の管理情報を保存して前記第二のフラグをセットする、
ことを特徴とする制御装置のファイルシステム。
【請求項２】
前記第一の不揮発性メモリには、ファイル本体と、前記ファイル本体の格納状態を示す第一の管理情報と第二の管理情報とが保存されており、
前記ファイル本体を更新するために更新されたファイルを保存するとき、前記プロセッサは前記第一のフラグと第二のフラグをクリアした後、前記第一の不揮発性メモリの前記ファイル本体が保存されたブロックとは別の空ブロックに前記ファイルのファイル本体を新規に保存し、
保存した前記ファイル本体に合わせて前記第一の管理情報を更新保存して前記第二の不揮発性メモリに前記第一のフラグをセットし、
該第一のフラグをセットした後、保存した前記ファイル本体に合わせて前記第二の管理情報を更新保存して前記第二のフラグをセットする、
ことを特徴とする請求項１に記載の制御装置のファイルシステム。
【請求項３】
新規ファイルを作成するとき、前記プロセッサは前記第一のフラグと第二のフラグをクリアした後、空ブロックに前記新規ファイルのファイル本体を保存する、
ことを特徴とする請求項１に記載の制御装置のファイルシステム。
【請求項４】
前記制御装置の電源投入時に、前記プロセッサは前記第一のフラグと第二のフラグの状態を判定して、前記第一の管理情報の更新が正常に完了していれば、保存された前記ファイル本体及び前記第一の管理情報を使用してシステムを起動し、
前記第一の管理情報の更新が正常に完了していないときは、前記第二の管理情報を使用してシステムを起動する、
ことを特徴とする請求項１〜３の何れか１つに記載の制御装置のファイルシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置のファイルシステムに関し、特にシャットダウン処理を実行することができない制御装置のファイルシステムに関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリはブロック単位での消去が可能な書き換え可能な不揮発性メモリである。これを利用した記憶装置はＵＳＢメモリやＳＤカード、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等で広く利用されている。
【０００３】
フラッシュメモリは書き換え可能であるが、ＲＡＭのように高速に上書きできる訳では無く、ブロック毎に消去コマンドを発行し現在のデータを消去したうえで、新たなデータを書き込む必要があり、通常これらの処理には数十ｍｓ以上の時間がかかる。この数十ｍｓ以上のデータの書き換え中に電源電圧の低下が発生すると、当該データを含むブロック単位でデータの喪失や破損が発生する可能性がある。そのため書き換え中に電源電圧低下が発生しないように、フラッシュメモリを使用したシステムでは電源遮断時にシャットダウン処理が要求されることが多い。
【０００４】
特にフラッシュメモリに格納されたファームウェア等を更新する際は、更新中の電源遮断が発生すると次回の電源投入時にシステムが起動しない等の深刻な障害が発生する可能性があるため、絶対に電源を落とさない旨の警告を表示するなどの手段も多くみられる。
【０００５】
産業機器では任意のタイミングで電源を遮断可能でシャットダウン処理は不要という仕様の機器が多く存在する。これらの機器では内部的にフラッシュメモリを利用しているからといって、シャットダウン処理を要求することはユーザビリティの低下につながってしまう。
【０００６】
また、大容量コンデンサ等を備えることで、外部電源が遮断されても書き換え処理が終了するまで電源電圧を維持することも考えられるが、書き換え処理が終了するには数十ｍｓ以上と長い時間が必要になる。これだけの時間の電源維持を保証する回路を追加するとシステムの肥大化やコストアップにつながってしまう。
【０００７】
実際には書き換え中に電源遮断があった場合でも、データの消失や破損が発生しシステムが正常に起動しない、といった深刻な障害が発生しなければ問題にならないケースが多い。そのため書き換え中に電源遮断が発生した場合、書き換え前の状態に復旧する技術が提案されている（例えば、特許文献１，２）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第５５３３１４１号公報
【特許文献２】特開２００７−１３３５３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１では、予めフラッシュメモリ中にバックアップ領域を確保し、書き換えを行う毎にバックアップ領域にデータを退避する方法が提案されている。フラッシュメモリでは電源遮断が発生した場合、書き換えを行う領域を含むブロック単位でデータが破損する可能性がある。そのためバックアップをブロック単位で行う必要があるが、このバックアップ処理には数十ｍｓ単位の時間がかかる。このバックアップ処理は書き換えが行われる度に常に発生することになる。書き換えの頻度が低い場合には、この分の時間増加は問題にならないが、頻繁に書き込みが発生するシステムにおいては書き換え処理時間が倍増し、システムのパフォーマンスに深刻な影響を与える。
【００１０】
また、特許文献２では、フラッシュメモリに管理情報を持ち、ファイルを作成する際は予めファイルの最大サイズ２つ分の情報を管理情報に書き込む。そのうえで２つのデータのうちどちらが最新かを示すフラグを持ち、ファイル更新の際には古い方を更新していくことで電源遮断時に復旧できる方式が示されている。この方式では、ファイルの最大サイズ２つ分の領域が常に使用されるため、フラッシュメモリ容量の利用効率が悪いという問題がある。また管理領域を１つしか持たないため、初回のファイル作成の際に管理情報を書き込む際に電源断が発生すると管理情報のデータが破損し復旧が困難になってしまう。つまり、頻繁にファイルの新規作成が行われるシステムでは、電源断によるデータ破損のリスクを排除できないという問題がある。
【００１１】
そこで本発明の目的は、上記事情を鑑みてなされたものであり、ファイル本体の新規作成中や更新中、あるいは管理情報の更新中に電源断が発生したとしても、システムを正常に起動することが出来るファイルシステムを提供することである。
【課題を解決するための手段】
【００１２】
本願の請求項１に係る発明は、ブロックごとに消去可能な第一の不揮発性メモリに、プロセッサと、前記第一の不揮発性メモリよりも高速にアクセス可能な第二の不揮発性メモリとが接続され、外部から入力された電源を変換する電源回路を備えた制御装置のファイルシステムであって、前記第一の不揮発性メモリには、ファイル本体と、前記ファイル本体の格納状態を示す第一の管理情報と第二の管理情報とが保存可能であり、前記第二の不揮発性メモリには、前記第一の管理情報の書き込み状態を示す第一のフラグと、前記第二の管理情報の書き込み状態を示す第二のフラグと、が保存され、ファイルを保存するとき、前記プロセッサは前記第一のフラグと第二のフラグをクリアした後、前記第一の不揮発性メモリの空きブロックに前記ファイルのファイル本体を新規に保存し、保存した前記ファイル本体に合わせて前記第一の管理情報を保存して前記第二の不揮発性メモリに前記第一のフラグをセットし、該第一のフラグをセットした後、保存した前記ファイル本体に合わせて前記第二の管理情報を保存して前記第二のフラグをセットする、ことを特徴とする制御装置のファイルシステムである。
【００１３】
本願の請求項２に係る発明は、前記第一の不揮発性メモリには、ファイル本体と、前記ファイル本体の格納状態を示す第一の管理情報と第二の管理情報とが保存されており、前記ファイル本体を更新するために更新されたファイルを保存するとき、前記プロセッサは前記第一のフラグと第二のフラグをクリアした後、前記第一の不揮発性メモリの前記ファイル本体が保存されたブロックとは別の空ブロックに前記ファイルのファイル本体を新規に保存し、保存した前記ファイル本体に合わせて前記第一の管理情報を更新保存して前記第二の不揮発性メモリに前記第一のフラグをセットし、該第一のフラグをセットした後、保存した前記ファイル本体に合わせて前記第二の管理情報を更新保存して前記第二のフラグをセットする、ことを特徴とする請求項１に記載の制御装置のファイルシステムである。
【００１４】
本願の請求項３に係る発明は、新規ファイルを作成するとき、前記プロセッサは前記第一のフラグと第二のフラグをクリアした後、空ブロックに前記新規ファイルのファイル本体を保存する、ことを特徴とする請求項１に記載の制御装置のファイルシステムである。
【００１５】
本願の請求項４に係る発明は、前記制御装置の電源投入時に、前記プロセッサは前記第一のフラグと第二のフラグの状態を判定して、前記第一の管理情報の更新が正常に完了していれば、保存された前記ファイル本体及び前記第一の管理情報を使用してシステムを起動し、前記第一の管理情報の更新が正常に完了していないときは、前記第二の管理情報を使用してシステムを起動する、ことを特徴とする請求項１〜３の何れか１つに記載の制御装置のファイルシステムである。
【発明の効果】
【００１６】
本発明により、書込み中の電源断が発生した場合は高速にアクセス可能な不揮発性メモリに保存したフラグの状態で、いつ電源断が発生したか判別可能となる。フラグを判別して、データが正常に書き込まれていない場合には、これを破棄して書込み開始直前のデータに戻し、データが正常に書き込まれていたならば、そのまま正常に書き込まれたデータを使用することで、障害の発生を防ぐことが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態における制御装置のファイルシステムの概略構成図である。
【図２】本発明の実施形態におけるファイル更新時の概念図である。
【図３】本発明の実施形態における制御装置のファイルシステムの機能ブロック図である。
【図４】本発明の実施形態におけるファイル更新処理のフローチャートである。
【図５】本発明の実施形態における制御装置の電源遮断時のファイル更新状態を説明する図である。
【００１８】
以下、図面を参照して本発明の実施形態を説明する。
図１は本発明の一実施形態における制御装置１のファイルシステムの概略構成を示すブロック図である。ＣＰＵ２と不揮発性メモリ３、高速にアクセス可能な不揮発性メモリ４が同一のバス５に接続されている。不揮発性メモリ３は、フラッシュメモリが一般的であり、高速にアクセス可能な不揮発性メモリ４は、例えばバッテリバックアップされたＳＲＡＭや、ＭＲＡＭ、ＦｅＲＡＭ等が用いられる。なお、一般にＳＲＡＭは揮発性メモリであるが、バッテリバックアップすることにより制御装置１の電源ＯＦＦ時にもデータを保持することができるようになり、高速にアクセス可能な不揮発性メモリとして用いることができる。また、ＭＲＡＭ、ＦｅＲＡＭなどは不揮発性メモリであるため、バッテリバックアップは不要である。
【００１９】
制御装置１は外部電源入力より、電源回路６を介して電源を供給される。電源回路６は電源入力遮断後も高速にアクセス可能な不揮発性メモリ４への書込みは保証できる程度の短時間電源を保持可能である。高速にアクセス可能な不揮発性メモリ４は非常に高速なアクセスが可能であり、この書き込みを保証するといっても、電源回路６に電解コンデンサをいくつか追加する程度で実現できる。例えば高速にアクセス可能な不揮発性メモリ４へのアクセスは数百ｎｓ以下であるため、μファラッド程度の容量を持てば書き込み中の電源を保持できる計算になる。
【００２０】
不揮発性メモリ３に用いられるフラッシュメモリは、数ＫＢ〜数十ＫＢのセクタに分割して管理され、ファイルは複数のセクタに格納されたデータのリストとして保存される。またフラッシュメモリの内部は、セクタとは別にブロックという消去単位ごとに分割されている。
【００２１】
不揮発性メモリ３に用いられるフラッシュメモリの一部には、当該フラッシュメモリに格納されたファイルについて、使用しているセクタ番号やリストの繋がりといった管理情報が保存されており、一般的にファイルを更新する際は、ファイル本体を更新した後に、新しいファイル本体に合わせて管理情報が更新される。
【００２２】
電源遮断により、ファイルが破損／消失する場合には以下の２つのケースが考えられる。１つは、ファイル本体の更新時に電源が遮断することで、ファイル本体のデータが破損するケースである。もう１つは、管理情報を更新する際に電源が遮断し管理情報が不正となることで、ファイル本体がどこにどのようなつながりで保存されているか不明になる場合である。
【００２３】
そこで、本発明では、図２に示すように、ファイル本体の更新時には、既にファイル本体が書き込まれているセクタ（旧ファイル本体）のデータを書き換えるのではなく別の空いているセクタ（データが無効のセクタなど）に新ファイル本体として更新されたファイルを書き込む。その後、管理情報を新しいセクタに書き込んだファイル本体に合わせて更新する。この管理情報を異なるブロックに２つ（管理情報１，２）持ち、管理情報毎に更新が済んだ事を示すフラグを高速にアクセス可能な不揮発性メモリ４に保存する。また、同様に新規にファイル本体を保存するときは、ファイルを新規に保存し、その後、新規に保存したファイル本体に合わせて管理情報を更新する。
【００２４】
図３は、本実施形態における制御装置１の機能ブロック図を示しており、また、図４は、図３に示した各機能手段により実行されるファイル更新処理のフローチャートを示している。なお、制御装置１上のＣＰＵ２などのプロセッサがシステムプログラムを実行することで図３に示す各機能手段として機能する。
●［ステップＳＡ０１］ファイルの更新が開始されると、書込みフラグ管理手段１２が、高速にアクセス可能な不揮発性メモリ４に設けられている管理情報１書込み完了フラグ、および管理情報２書込み完了フラグを共にクリアする。
●［ステップＳＡ０２］ファイル書込み手段１０が、不揮発性メモリ３上の旧ファイル本体とは別の領域に新ファイル本体を保存する。
●［ステップＳＡ０３］管理情報更新手段１１が、不揮発性メモリ３上の管理情報１を新ファイル本体に合わせて更新する。
【００２５】
●［ステップＳＡ０４］書込みフラグ管理手段１２が、高速にアクセス可能な不揮発性メモリ４に設けられている管理情報１書込み完了フラグをセットする。
●［ステップＳＡ０５］管理情報更新手段１１が、不揮発性メモリ３上の管理情報２を新ファイル本体に合わせて更新する。
●［ステップＳＡ０６］書込みフラグ管理手段１２が、高速にアクセス可能な不揮発性メモリ４に設けられている管理情報２書込み完了フラグをセットする。
【００２６】
図４のフローチャートに従ってファイルの更新を行う場合、ファイル更新の前後において電源遮断が行われると、管理情報書込み完了フラグの状況は電源遮断のタイミングにより図５の表に示すパターンが考えられる。
【００２７】
ファイル更新中の電源断がなく図４のフローチャートに示す一連の処理が正常に終了した場合には、高速にアクセス可能な不揮発性メモリ４の上の管理情報１書込み完了フラグおよび管理情報２書込み完了フラグはともにセットされ、不揮発性メモリ３上の管理情報１、２は共に同じデータとなっている。そのため、次回の書き込み、及び読み出しでファイルの情報を参照する場合はどちらの管理情報を使用しても良い。
【００２８】
一方で、管理情報１書込み完了フラグおよび管理情報２書込み完了フラグが共にクリアされている場合、図４のフローチャートにおけるステップＳＡ０２またはステップＳＡ０３のいずれかの処理の過程において電源遮断が発生したことを意味する。そのため、管理情報２と旧ファイル本体を利用して、更新処理の開始前の状態に復旧する。より具体的には、不揮発性メモリ３上の管理情報２を管理情報１にコピーし、高速にアクセス可能な不揮発性メモリ４の上の管理情報１完了フラグおよび管理情報２完了フラグを共にセットすることにより、ファイルシステムを正常な状態へと復旧することができる。
【００２９】
また、管理情報１書込み完了フラグがセットされ、管理情報２書込み完了フラグがクリアされている場合、図４のフローチャートにおけるステップＳＡ０４までは正常終了しており、不揮発性メモリ３上の新ファイル本体と管理情報１は有効である。従って、不揮発性メモリ３上で管理情報１を管理情報２にコピーし、高速にアクセス可能な不揮発性メモリ４の上の管理情報２完了フラグをセットすることにより、ファイルシステムを正常な状態へと復旧することができる。
【００３０】
このように、システムは電源遮断があっても次回起動時に、「ファイルが更新された状態」、または「ファイルが更新される前の状態」のいずれかの状態になる。ファイルの初回書き込み時に電源断があった場合も、「正しいファイルが書き込まれた状態」、または「ファイルが書き込まれる前の状態」のいずれかの状態になるため、その状態に応じたファイルシステムの復旧処理を行うことで、ファイルシステムを正常な状態にすることができる。
【００３１】
なお、起動時に書込みフラグ管理手段１２が高速にアクセス可能な不揮発性メモリ４の上の書込み完了フラグのチェックを行い、最後のファイル作成及び更新が正常に行われなかった事を検出した場合は、通知手段１３により、ユーザにその旨を通知することもできる。通知手段１３としては、制御装置１が画面を備えている場合には、画面にメッセージを表示したり、また、音声やブザー、ＬＥＤを点灯させたりする等により通知することも考えられる。これにより、ユーザは最後の更新が正常に完了しなかったことを知ることができ、適切な対応をとることが可能となる。
【００３２】
以上説明したように、本発明により、書込み中の電源断が発生した場合は高速にアクセス可能な不揮発性メモリに保存したフラグの状態で、いつ電源断が発生したか判別可能となる。フラグを判別して、データが正常に書き込まれていない場合には、これを破棄して書込み開始直前のデータに戻し、データが正常に書き込まれていたならば、そのまま正常に書き込まれたデータを使用することで、障害の発生を防ぐことが可能となる。
【００３３】
高速にアクセス可能な不揮発性メモリ４として用いるＳＲＡＭ、ＭＲＡＭ、ＦｅＲＡＭなどは高速アクセス可能であり、電源遮断時の耐性を向上させるにあたり書き換え時間の増加を非常に少なくできる。また、高速にアクセス可能な不揮発性メモリ４の容量はごく僅かしか消費しない。
【００３４】
また、特許文献２では、ファイルの最大サイズ２つ分の領域が常に使用されるが、本発明では、ファイルの更新を行う際に更新する当該ファイルの正味のサイズ分のみ余分に使用するだけであるため、フラッシュメモリの利用効率も良い。また、管理情報を２つ保持するため管理情報の更新時の電源断においても、データの破損を必ず防ぐことが可能となる。
【００３５】
更に、ファイルの新規作成時においてもファイルの更新時と同様に、データが正常に書き込まれていない場合には、これを破棄して書込み開始直前のデータに戻し、データが正常に書き込まれていたならば、そのまま正常に書き込まれたデータを使用することで、障害の発生を防ぐことが可能となる。
【００３６】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【符号の説明】
【００３７】
１  制御装置
２  ＣＰＵ
３  不揮発性メモリ
４  高速にアクセス可能な不揮発性メモリ
５  バス
６  電源回路
１０  ファイル書込み手段
１１  管理情報更新手段
１２  書込みフラグ管理手段
１３  通知手段
【図１】
2017021561.tif 000003
【図２】
2017021561.tif 000004
【図３】
2017021561.tif 000005
【図４】
2017021561.tif 000006
【図５】
2017021561.tif 000007