(57)【特許請求の範囲】
【請求項１】
情報記憶媒体上において所定の最小記憶単位よりも大きい所定容量の領域を管理単位領域とする条件下で、同一の前記管理単位領域内に主情報たるデータを記憶するためのデータ領域と該データに係る管理情報を記憶するための管理情報領域とを設け、該管理情報領域には、データの無効状態、仮書き込み状態、有効状態を示す記憶状況情報を保持するための状態保持部と前記情報記憶媒体上に設定された前記各管理単位領域の一連の書き込み順位において自己が該当する書き込み順位によりも前に書き込まれた管理単位領域の書き込み順位を表す情報を保持するための先行順位保持部並びに該当するデータの所在位置を表すデータ位置情報を保持するためのデータ位置保持部とを含んでなる第一の状態記憶部と、前記状態保持部及び先行順位保持部を含んでなる第二の状態記憶部とを設定し、前記データ領域に対するデータの書き込み動作が中断されてから復旧させるときには、前記管理情報領域の状態保持部に保持された情報、先行順位保持部及びデータ位置保持部に保持された情報とを利用して、書き込みが中断されたデータを復旧させることを特徴とするデータ記憶方法。
【請求項２】
前記情報記憶媒体としてフラッシュメモリを適用することを特徴とする請求項１に記載のデータ記憶方法。
【請求項３】
前記状態保持部に、無効状態、仮書き込み状態、及び、有効状態の３状態が識別可能なように該３状態の何れにあるかを表す情報を保持することを特徴とする請求項１に記載のデータ記憶方法。
【請求項４】
前記第一の状態記憶部と第二の状態記憶部とにおける情報の書き込みは独立に行ない得るようにすることを特徴とする請求項１に記載のデータ記憶方法。
【請求項５】
前記状態保持部に保持される３状態を表す情報を、２バイトの情報における一方の１バイトの情報の有無の状態と他方の１バイトの情報の有無の状態との組合わせによって表すようにすることを特徴とする請求項１に記載のデータ記憶方法。
【請求項６】
前記データ領域に対するデータの書き込み動作が中断されてから復旧させるに際しては、前記管理情報領域の状態保持部において前記無効状態にあることを表す情報が保持された前記管理単位領域に関して各管理単位領域の前記系列順位で当該中断が発生したときのデータ有効化操作の最終順位に該当する管理単位領域を検索し、該最終順位に該当する管理単位領域を起点として、各該当する前記管理情報領域の先行順位保持部に保持された情報に基づいて前記系列順位を遡及するようにして各該当する管理単位領域のデータを復旧させることを特徴とする請求項３に記載のデータ記憶方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ記憶装置において、記憶領域の一部を使用して書き込み途中の状態を保持することによって書き込み中断があった場合でもデータを保護することを可能にする方法の改良に関する。
【０００２】
【従来の技術】
携帯情報端末や携帯電話機などにおいては、電話帳や予定表など様々な情報を格納するために、フラッシュメモリを使用することが多い。さらに、それぞれの情報を管理するために、何らかのファイルシステムを使用することが一般的である。尚、フラッシュメモリ等では、最小記憶単位であるビットの複数の集合で記憶単位であるバイトを構成し、複数バイト（数万バイト）で構成されたページが最小の消去単位として一括して扱われる。
【０００３】
情報記憶の管理形態として、例えばＦＡＴ ファイルシステム(ＩＳＯ/ＩＣＥ９２９３)を適用する場合、ファイルの管理情報とデータを別々のページに格納するため、どちらか一方を書き込んだ時点で電源の供給が絶たれるとファイルシステムの一貫性が維持され得ず、データの喪失が発生することがあった。
【０００４】
特に、携帯情報端末や携帯電話機では、一般の据え置き型の電子機器に比較し落下の衝撃などによって不用意に電源の供給が絶たれる危険性が高い。このため、電源の供給が絶たれることによる書き込みの中断から情報を保護するため、何らかの方策が必要になる。
【０００５】
従来より、突如電源が断たれてからの回復時にファイルの管理情報とデータを照合し、矛盾があったら修正するという技術がある。しかしながらこの従来技術の場合、書き込み途中のページがわからないため、全てのページを照合の対象にせねばならず修正に時間がかかる上、書き込み前の情報が残っていないため全ての情報を確実に修正できるとは限らない。
【０００６】
停電時のデータ回復動作を自動的に行い、データ回復時間を短縮するために、外部記憶装置内の複数のフラッシュメモリにホストからのデータと、ホストからのアクセスするアドレスとデータが書込まれているか、エラーの発生した物理セクタでないか、また無効なデータを格納していないかを判定するデータ無効フラグをもつ物理セクタ管理領域の２つの構成からなる物理セクタと、エラーの発生したアドレスを格納するエラー発生物理セクタアドレス管理領域と、フラッシュメモリ番号，ステータステーブル，フラッシュメモリ消去回数，ステータス無効フラグからなるフラッシュメモリ管理領域を、フラッシュメモリ内に持つようにした方法が提案されている（特開平１１−２７２５６９号公報）。
【０００７】
また、電源の遮断がフラッシュメモリのデータの消去単位であるブロックの消去後に発生すると、ブロックが消去されているにも拘わらず、ＦＡＴ及びディレクトリ領域のデータが更新されず、そのまま電源を再起動して、更新後の該当ファイルの読み込みを試みると、消去状態のファイル（ブロックのファイル）が読み込まれてしまうといった問題に対処すべく、書込処理等の処理内容を示す識別コードを動作履歴記憶領域に保持し、その書込処理等が正常終了すると、その識別コードを消去するようにし、その後、動作履歴記憶領域に残されている識別コードを解析して、該当するデータ領域等に格納されているデータを復旧させる方法が提案されている（特開２００１−８４１８０号公報）。
【０００８】
尚、フラッシュメモリのような一括消去型メモリを用いた情報記憶再生装置の記憶情報を管理する管理情報の部分的な変更を簡単に行う方法として、情報記憶再生装置に記憶しようとする一連の記憶情報を予め定められた単位フレームに分割し、分割した単位フレームの記憶情報と、この記憶情報に対応して設けた管理情報を一括消去単位であるブロックに共存するように記憶し、前記管理情報が予め定めた特定コードになったとき、この管理情報を初期状態と同等または無効または無効に準ずる機能にする予め定めたコードにして記憶情報を管理する管理情報を追加可能にし、記憶情報の一括消去動作を伴わずに管理情報の変更ができるようにする方法も提案されている（特開２０００−６７８５７号公報）。
【０００９】
【発明が解決しようとする課題】
上述の既提案の何れの技術も、フラッシュメモリのような一括消去型メモリを用いた情報記憶再生装置に適合するものではあるが、データ領域に対するデータの書き込み動作が中断されてから復旧させるときの手順は未だ煩雑であり場合によっては処理に時間が掛かる虞れがある。
【００１０】
そこで、本発明の目的は、データ領域に対するデータの書き込み動作が中断されても、簡素な手順で、より短時間で確実に、復旧させることができるデータ記憶方法を提供することにある。
【００１１】
【課題を解決するための手段】
上述の課題を解決するため、本発明によるデータ記憶方法は、次のような特徴を備えている。
【００１２】
（１）情報記憶媒体上において所定の最小記憶単位よりも大きい所定容量の領域を管理単位領域とする条件下で、同一の前記管理単位領域内に主情報たるデータを記憶するためのデータ領域と該データに係る管理情報を記憶するための管理情報領域とを設け、該管理情報領域には、データの無効状態、仮書き込み状態、有効状態を示す記憶状況情報を保持するための状態保持部と前記情報記憶媒体上に設定された前記各管理単位領域の一連の書き込み順位において自己が該当する書き込み順位によりも前に書き込まれた管理単位領域の書き込み順位を表す情報を保持するための先行順位保持部並びに該当するデータの所在位置を表すデータ位置情報を保持するためのデータ位置保持部とを含んでなる第一の状態記憶部と、前記状態保持部及び先行順位保持部を含んでなる第二の状態記憶部とを設定し、前記データ領域に対するデータの書き込み動作が中断されてから復旧させるときには、前記管理情報領域の状態保持部に保持された情報、先行順位保持部及びデータ位置保持部に保持された情報とを利用して、書き込みが中断されたデータを復旧させるデータ記憶方法。
【００１３】
（２）前記情報記憶媒体としてフラッシュメモリを適用する上記（１）のデータ記憶方法。
【００１４】
（３）前記状態保持部に、無効状態、仮書き込み状態、及び、有効状態の３状態が識別可能なように該３状態の何れにあるかを表す情報を保持する上記（１）のデータ記憶方法。
【００１５】
（４）前記第一の状態記憶部と第二の状態記憶部とにおける情報の書き込みは独立に行ない得るようにする上記（１）のデータ記憶方法。
【００１６】
（５）前記状態保持部に保持される３状態を表す情報を、２バイトの情報における一方の１バイトの情報の有無の状態と他方の１バイトの情報の有無の状態との組合わせによって表すようにする上記（１）のデータ記憶方法。
【００１７】
（６）前記データ領域に対するデータの書き込み動作が中断されてから復旧させるに際しては、前記管理情報領域の状態保持部において前記無効状態にあることを表す情報が保持された前記管理単位領域に関して各管理単位領域の前記系列順位で当該中断が発生したときのデータ有効化操作の最終順位に該当する管理単位領域を検索し、該最終順位に該当する管理単位領域を起点として、各該当する前記管理情報領域の先行順位保持部に保持された情報に基づいて前記系列順位を遡及するようにして各該当する管理単位領域のデータを復旧させる上記（３）のデータ記憶方法。
【００１９】
【発明の実施の形態】
以下、本発明によるデータ記憶方法の好適実施形態について図面を参照しながら詳細に説明する。
【００２０】
図１は、本発明にも適用される情報記憶媒体の例としてのフラッシュメモリの構成を示す概念図である。このフラッシュメモリ１自体は一般的なものである。図示の例では、最小記憶単位であるビットの複数の集合で記憶単位であるバイトが構成され、数万バイトでページ２が構成され、このページ２が最小の消去単位として一括して扱われる。即ち、本例では、ページ２が管理単位領域を構成する。任意のバイトへはページ消去後一度だけ書き込むことができ、一度書き込んだバイトを変更する場合は、一旦ページごと消去する必要がある。尚、フラッシュメモリ１の任意のバイトは、いつでも読み出すことができる。
【００２１】
図２は、図１のフラッシュメモリの各ページの記憶領域の区分の設定状況を示す図である。本実施形態においては、図示のようにフラッシュメモリ１の各ページ２をデータ領域３と管理情報領域４に区分する。データ領域３は、フラッシュメモリに本来記憶することを意図している例えば画像、音声、その他データ等の主情報たるデータを記憶するための領域である。管理情報領域４は、後に詳述するように、各ページの位置などデータ領域３に記憶されるデータに係る管理情報を記憶するための領域である。
【００２２】
図３は、図２の管理情報領域４の構成を示す概念図である。管理情報領域４には、第一の状態記憶部５と、第二の状態記憶部６とを割り当てる。第一の状態記憶部５は、データの記憶状況を表す情報を保持するための状態保持部７と、該当するデータの所在位置を表すデータ位置情報を保持するためのデータ位置保持部（図中「データ位置」と表記）８と、前記各管理単位領域（ページ）の系列中において自己が該当する順位（自らのページ）に先行する管理単位領域の順位（ページ位置）を表す情報を保持するための先行順位保持部（図中「先行ページ位置」と表記）９を含む。状態保持部７は、「無効状態(I)」「仮書き込み状態(T)」「有効状態(V)」の３つの状態のいずれかを保持する。
【００２３】
第二の状態記憶部６は、状態保持部７と同様の状態保持部１０と、先行順位保持部９と同様の先行順位保持部（図中「先行ページ位置」と表記）１１を含む。この状態保持部１０も、「無効状態(I)」「仮書き込み状態(T)」「有効状態(V)」の３つの状態のいずれかを保持する。
初期状態においては、第一の状態記憶部５の状態保持部７、および第二の状態記憶部６の状態保持部１０は「無効状態(I)」を保持している。
【００２４】
本実施形態では、状態保持部７，１０の情報を「無効状態(I)」から「仮書き込み状態(T)」へ、あるいは「仮書き込み状態(T)」から「有効状態(V)」へ変更する必要が生じる。これは、状態保持部２バイトを割り当て、両方のバイトともデータが書き込まれていなければ「無効状態(I)」、片方のバイトのみにデータが書き込まれていれば「仮書き込み状態(T)」、両方のバイトにデータが書き込まれていれば「有効状態(V)」を表現するようにすることで容易に実現可能である。
【００２５】
状態保持部７，１０に書き込み途中であることを意味する値の情報「仮書き込み状態(T)」を書き込むことで、書き込みが中断された場合にも、書き込み前の状態に戻すことが可能になる。さらに、データとその管理情報のようにひとまとまりに書き込む必要のあるデータを書き込む場合は、図７、８を用いて後に詳述するように、書き込みを行った一連のページを先行ページ番号に順番に記憶する。これにより、状態保持部を変更中に書き込みが中断された場合でも一連のページを検索し復旧処理を行うことができる。
【００２６】
次に、本実施形態の動作について説明する。フラッシュメモリ１にデータを書き込む場合、データの一部分であるブロックＡと、そのデータの位置Ｂの組が複数個与えられる。これらは、例えば、ファイルのインデックス情報とファイルの内容のデータであり、片方のみを書き込んだ段階で電源断などにより書き込みが中断してしまうとデータの一貫性が失われてしまう。本実施形態では、これらのデータをひとまとまりとして書き込む手順を提供する。
【００２７】
図４は、フラッシュメモリ１にデータを書き込む手順を示すフローチャートである。データの書き込みにおいては、最初にフラッシュメモリを検索して、同じ位置のデータがすでに記憶されているかどうかを調べる(４-１)。
【００２８】
図４における(４-１)の検索手順について詳細を図５に示す。同一部分の検索手順(４-１)では、フラッシュメモリの各ページ２の管理情報領域４を読み(５-１)、第一の状態記憶部５の状態保持部７が「無効状態(I)」以外であり(５-２)、かつ第二の状態記憶部６の状態保持部１０が「無効状態(I)」であり(５-３)、かつ第一の状態記憶部５のデータ位置８が書き込むデータの位置Ｂと同一の値であるページを検索する(５-４)。前記手順により、同じ位置のデータが記憶されているページが検索される。
【００２９】
以上、図５に基づいて述べた手順(４-１)によって、同じ位置のデータが記憶されたページが見つからなかった場合は、次に空きページの検索を行う(４-２)。
【００３０】
図４における空きページ検索(４-２)の手順について詳細を図６に示す。空きページの検索手順(４-２)では、フラッシュメモリの各ページ２，２の管理情報領域４を読み(６-１)、第一の状態記憶部５の状態保持部７の情報が「無効状態(I)」であるページを検索する(６-２)。これにより、空きページが検索される。
【００３１】
次に、空きページへの書き込みを行う(４-３)。空きページの書き込み手順では、データ領域３にブロックのデータＡを書き込み、第一の状態記憶部５のデータ位置８に書き込むデータの位置Ｂを記憶し、先行ページ番号９に直前に書き込んだページの番号を記憶し、最後に状態保持部７に「仮書き込み状態(T)」を記憶する。ただし、一度の書き込み手順のうちの最初のブロックである場合は、先行ページ番号９には何も書き込まない。
【００３２】
空きページの書き込み手順(４-３)について、手順実行後の管理情報領域４の状態の例を図７に示す。
【００３３】
次に、図４に戻って、同一部分の検索手順(４-１)において同じ位置のデータが記憶されたページが見つかった場合の手順について説明する。この場合は、次にページ無効化を行う(４-４)。ページ無効化では、同一部分の検索手順(４-１)で検索されたページの第二の状態記憶部の先行ページ番号１１に直前に書き込んだページの番号を記憶し、状態保持部１０に「仮書き込み状態(T)」を記憶する。ただし、一度の書き込み手順のうちの最初のブロックである場合は、先行ページ番号１１には何も書き込まない。ページ無効化の手順(４-４)を行った後、空きページの検索手順(４-２)、空きページの書き込み手順(４-３)を行う。
【００３４】
これらのページ無効化の手順(４-４)を実行した後の管理情報領域４の状態の例を図８に示す。
【００３５】
与えられた全てのブロックについて以上の手順を実行した後、次にページ有効化の手順(４-５)を実行する。ページ有効化の手順では、最初に書き込んだページから開始し、書き込んだ順に各ページを有効化する。ページの有効化では、第一の状態記憶部５および第二の状態記憶部６の状態保持部(７，１０)を参照し、これが「仮書き込み状態(T)」であった場合に「有効状態(V)」に変更する。
【００３６】
例として、図８の状態からページ有効化の手順(４-５)を実行した後の管理情報領域４の状態の例を図９に示す。
【００３７】
最後に、ページ消去の手順(４-６)を実行する。
この手順では、第二の状態記憶部６の状態保持部１０が「有効状態(V)」である全てのページを消去する。
【００３８】
次にデータの読み込みの手順について説明する。図１０はデータの読み込みの手順を示すフローチャートである。データの読み込みでは、目的の位置のブロックが書き込まれたページをフラッシュメモリから検索する。読み込み手順では、フラッシュメモリの各ページの管理情報領域４を読み(１０-１)、第二の状態記憶部６の状態保持部１０が「無効状態(I)」であり(１０-２)、かつ第一の状態記憶部５の状態保持部７が「有効状態(V)」であり(１０-３)、かつ第一の状態記憶部５のデータ位置８が目的のブロックの位置であるページを検索する(１０-４)。これにより、目的のブロックのデータが記憶されているページが検索されるので、このページのデータ領域３からデータを読み出す。
【００３９】
フラッシュメモリを組み込んだ装置において、フラッシュメモリへのデータ書き込み中に電源が切断されると、データを途中まで書き込んだ状態になってしまうことがある。この場合、データを書き込む前の状態に復旧させるために、データ復旧の手順を実行する。
【００４０】
データ復旧の手順について図１１のフローチャートに示す。
データ復旧においては、まず第一の状態記憶部５および第二の状態記憶部６の状態保持部(７，１０)の情報を参照し、この情報が「仮書き込み状態(T)」であるページを検索する(１１-１)。ページが見つからなかった場合は、空きページ復旧手順(１１−４)へ進む。見つかった場合は、書き込みが完了しなかったことを意味しており、書き込み開始前の状態に戻す必要がある。このために、最終ページ検索(１１-２)を行う。最終ページ検索は、書き込み処理において最後に書き込まれたページを検索する手順であり、各ページの管理情報領域４を調べることで容易に実現が可能である。最終ページが検索されたら、次にデータの書き込み手順において書き込みの途中であった一連のページを検索し復旧させる(１１−３)。この手順においては、最終ページ検索(１１-２)によって検索された最終ページを起点として、各ページの第一の状態記憶部５または第二の状態記憶部６にある先行ページ番号(９，１１)を参照し、書き込んだ際とは逆の順番にページを手繰る、即ち、各該当する前記管理情報領域の先行順位保持部に保持された情報に基づいて前記系列順位（ページ番号）を遡及することによって実行する。
【００４１】
このように検索された最終ページから系列順位（ページ番号）を遡及する手順の詳細を図１２にフローチャートで示す。
まず、現在のページ(手順の最初では、最終ページを指す)の管理情報領域４を参照する(１２-１)。第二の状態記憶部６の状態保持部１０が「無効状態(I)」である場合(１２-２)は、第二の状態記憶部６の先行ページ番号１１を次のページ番号として記憶する(１２-３)。さらに、書き込み手順と同じ手順で、現在のページのデータ領域３に書き込まれたデータを再度書き込む(１２-４)。また、第二の状態記憶部６の状態保持部１０が「無効状態(I)」でない場合は、第一の状態記憶部５の先行ページ番号９を次のページ番号として記憶する(１２-５)。さらに、現在のページを消去する(１２-６)。
【００４２】
最終ページ検索(１１-２)において、復旧すべきページが見つからなかった場合は、次に空きページの復旧を行う(１１−４)。空きページの復旧は、書き込みが完了したものの、消去中に電源が断たれたことにより消去が完了しなかったページを復旧させる手順である。空きページ復旧(１１−４)では、各ページの管理情報領域４を参照し、第二の状態記憶部６の状態保持部１０が「有効状態(V)」であるページを消去する。
【００４３】
本実施形態によれば、以上のようにして、書き込み手順を実行中に電源が断たれた場合でも、書き込み手順を完了するか、あるいは書き込み手順を実行する前の状態に戻すことができる。
【００４４】
上述の本発明の実施形態の作用効果を要約するに、第一には、電源が断たれたことなどにより書き込み手順が中断されても、書き込み手順開始前の状態に戻すことができるという点である。これにより、ファイルの名前が書き込まれているが実際のデータが書き込まれていない、といったデータの一貫性が失われた状態が起こらなくなる。その理由は、２つの状態記憶部を持つ管理情報領域を設け、書き込み前の管理情報を残したまま書き込みを行っており、さらに先行順位保持部に保持された情報である先行ページ番号に基づいて状態保持部書き込み中にこの動作が中断された場合でも先行ページ番号をたどって書き込み途中のページを遡及するようにして検索できるようにしたためである。
【００４５】
第二には、フラッシュメモリのように消去後一度しか書き込めない記憶装置でも、本方式が使用可能であるという点である。その理由は、管理情報領域に第一・第二の２つの状態記憶部を設けることにより、同じ場所への書き込みを１度だけにとどめることで、同じ領域への上書きを伴わずに書き込みを行うことができるためである。
【００４６】
以上、本発明によるデータ記憶方法の好適実施形態の構成および動作を詳述した。しかし、斯かる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではない。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であること、当業者には容易に理解できよう。
【００４７】
【発明の効果】
以上説明したように、本発明のデータ記憶方法によれば、データ領域に対するデータの書き込み動作が中断されても、簡素な手順で、より短時間で確実に、復旧させることができるデータ記憶方法を提供することができる。
【図面の簡単な説明】
【図１】本発明にも適用される情報記憶媒体の例としてのフラッシュメモリの構成を示す概念図である。
【図２】図１のフラッシュメモリの各ページの記憶領域の区分の設定状況を示す図である。
【図３】図２の管理情報領域の構成を示す概念図である。
【図４】フラッシュメモリにデータを書き込む手順を示すフローチャートである。
【図５】図４における検索手順の詳細を示すフローチャートである。
【図６】図４における空きページ検索の手順の詳細を示すフローチャートである。
【図７】空きページの書き込み手順を実行した後の管理情報領域の状態の例を示す概念図である。
【図８】ページ無効化の手順を実行した後の管理情報領域の状態の例を示す概念図である。
【図９】図８の状態からページ有効化の手順を実行した後の管理情報領域の状態の例を示す概念図である。
【図１０】データの読み込みの手順を示すフローチャートである。
【図１１】データ復旧の手順を示すフローチャートである。
【図１２】検索された最終ページから系列順位を遡及する手順の詳細を示すフローチャートである。
【符号の説明】
１          フラッシュメモリ
２          ページ
３          データ領域
４          管理情報領域
５          第一の状態記憶部
６          第二の状態記憶部
７          状態保持部
８          データ位置保持部
９          先行順位保持部
１０        状態保持部
１１        先行順位保持部
【図１】
0003978720.tif 000002
【図２】
0003978720.tif 000003
【図３】
0003978720.tif 000004
【図４】
0003978720.tif 000005
【図５】
0003978720.tif 000006
【図６】
0003978720.tif 000007
【図７】
0003978720.tif 000008
【図８】
0003978720.tif 000009
【図９】
0003978720.tif 000010
【図１０】
0003978720.tif 000011
【図１１】
0003978720.tif 000012
【図１２】
0003978720.tif 000013