(57)【要約】  【課題】  データ記録媒体にデータの実体が残っている場合には、ＦＡＴまたはディレクトリが破壊された場合でもデータを復活する。  【解決手段】  ユーザデータエリア２に記録されるデータの各ページは、データ部１１と冗長部１２とからなり、冗長部１２にリンク情報１４が記録されている。リンク情報は、そのブロックを書き込んだ直前に書き込まれたブロックの論理アドレス番号である。リンク情報１４が記録されていると、ディレクトリテーブル３および／またはＦＡＴチェイン４を読み出すことができなくても、ファイルの実体データが残っていれば、リンク情報１４を後ろから順にたどることによって、その実体データを復活できる。【選択図】  図１０
2006133923.tif 000002
【特許請求の範囲】
【請求項１】
記録されているデータが所定のデータ量のブロック単位で一括消去されると共に、所定長のデータ部毎に所定長の冗長部を有するデータ単位でデータが記録される不揮発性メモリを備えるデータ記録再生装置において、
データ部にデータを記録する時に、該データ部の上記冗長部にデータの記録順を識別できるリンク情報を記録するようにしたデータ記録再生装置。
【請求項２】
請求項１のデータ記録再生装置において、
上記不揮発性メモリがホスト側コンピュータによってアクセスされる外部記録媒体に含まれ、
上記ホスト側コンピュータによって上記不揮発性メモリの冗長部にデータ記録順のリンク情報を記録するデータ記録再生装置。
【請求項３】
請求項１のデータ記録再生装置において、
上記不揮発性メモリがホスト側コンピュータによってアクセスされる外部記録媒体に含まれ、
上記外部記録媒体の内部で、上記不揮発性メモリの冗長部にデータ記録順のリンク情報を記録するデータ記録再生装置。
【請求項４】
請求項１のデータ記録再生装置において、
上記リンク情報が直前に記録を行ったデータ単位の論理アドレス、直前に記録を行ったデータ単位の物理アドレス、直後に記録を行ったデータ単位の論理アドレス、直後に記録を行ったデータ単位の物理アドレスおよびデータを記録した順番で決定されるユニークなシーケンシャル番号の何れかであるデータ記録再生装置。
【請求項５】
記録されているデータが所定のデータ量のブロック単位で一括消去されると共に、所定長のデータ部毎に所定長の冗長部を有するデータ単位でデータが記録される不揮発性メモリを使用するデータ記録再生方法において、
データ部にデータを記録する時に、該データ部の上記冗長部にデータの記録順を識別できるリンク情報を記録するデータ記録再生方法。
【請求項６】
記録されているデータが所定のデータ量のブロック単位で一括消去されると共に、所定長のデータ部毎に所定長の冗長部を有するデータ単位でデータが記録される不揮発性メモリを使用するデータ記録再生方法をコンピュータに対して実行させるプログラムにおいて、
データ部にデータを記録する時に、該データ部の上記冗長部にデータの記録順を識別できるリンク情報を記録するデータ記録再生方法のプログラム。
【請求項７】
記録されているデータが所定のデータ量のブロック単位で一括消去されると共に、所定長のデータ部毎に所定長の冗長部を有するデータ単位でデータが記録される不揮発性メモリと、バッファ用メモリと、制御部と、ホスト側との接続用インターフェースとを備え、
上記制御部が上記不揮発性メモリにデータを記録する時に、該データ部の上記冗長部にデータの記録順を識別できるリンク情報を記録するデータ記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばＮＡＮＤ型フラッシュメモリに対して適用されるデータ記録再生装置、記録再生方法、プログラム並びにデータ記録媒体に関する。
【背景技術】
【０００２】
ディジタルスチルカメラ等では、ＭＳ−ＤＯＳ(Microsoft Disc Operating System)（
登録商標）互換のＦＡＴ(File Allocation Table)ファイルシステムが使用されている。
例えば下記特許文献１には、不揮発性メモリとしてのメモリカードに対してＦＡＴファイルシステムを適用するデータ記憶装置について記載されている。
【０００３】
【特許文献１】特開２００３−３０８２４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ユーザが誤って画像消去、メディアのフォーマット等を行った場合、または誤操作などで、ＦＡＴ等の管理エリアが壊れてしまった場合、メディア内に画像データが残っているが、そのデータに対するリンク情報が失われてしまうために、そのデータに対してアクセスすることができなくなる。
【０００５】
この状態で、パーソナルコンピュータのアプリケーションソフトウェアを使用して画像データを復活させることが可能な場合がある。画像データがメディア上に連続的に記録されている場合では、ＪＰＥＧ（Joint Photographic Experts Group)のマーカーをサーチ
することによって簡単に画像を復活することができる。しかしながら、記録削除等を繰り返した結果、データの並びが不連続になっている場合では、画像の復活が困難となる。
【０００６】
従って、この発明の目的は、データ本体が消去または上書きされるまでリンク情報が残っているようにし、リンク情報を利用して不連続なデータの並びであっても、簡単にデータの復活を可能とするデータ記録再生装置、記録再生方法、プログラム並びにデータ記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、この発明の第１の態様は、記録されているデータが所定のデータ量のブロック単位で一括消去されると共に、所定長のデータ部毎に所定長の冗長部を有するデータ単位でデータが記録される不揮発性メモリを備えるデータ記録再生装置において、
データ部にデータを記録する時に、該データ部の冗長部にデータの記録順を識別できるリンク情報を記録するようにしたデータ記録再生装置である。
【０００８】
この発明の第２の態様は、記録されているデータが所定のデータ量のブロック単位で一括消去されると共に、所定長のデータ部毎に所定長の冗長部を有するデータ単位でデータが記録される不揮発性メモリを使用するデータ記録再生方法において、
データ部にデータを記録する時に、該データ部の冗長部にデータの記録順を識別できるリンク情報を記録するデータ記録再生方法である。
【０００９】
この発明の第３の態様は、記録されているデータが所定のデータ量のブロック単位で一括消去されると共に、所定長のデータ部毎に所定長の冗長部を有するデータ単位でデータが記録される不揮発性メモリを使用するデータ記録再生方法をコンピュータに対して実行させるプログラムにおいて、
データ部にデータを記録する時に、該データ部の冗長部にデータの記録順を識別できるリンク情報を記録するデータ記録再生方法のプログラムである。
【００１０】
この発明の第４の態様は、記録されているデータが所定のデータ量のブロック単位で一括消去されると共に、所定長のデータ部毎に所定長の冗長部を有するデータ単位でデータが記録される不揮発性メモリと、バッファ用メモリと、制御部と、ホスト側との接続用インターフェースとを備え、
制御部が不揮発性メモリにデータを記録する時に、該データ部の冗長部にデータの記録順を識別できるリンク情報を記録するデータ記録媒体である。
【発明の効果】
【００１１】
この発明によれば、フラッシュメモリの冗長部にリンク情報を記録することによって、誤ってデータを削除した場合等で、不連続なデータであっても復活することができる。したがって、より多くのデータを高速に復活することができる。また、この発明では、データとリンク情報とが同じ記録再生単位に記録されるので、有効データが残っている限り、リンク情報も残り、リンク情報を別のファイル等で管理する方法と比較して、データを確実に復活することができる。
【発明を実施するための最良の形態】
【００１２】
この発明の一実施形態の説明に先立ち、従来の問題点について図１乃至図７を参照して説明する。この発明は、記憶メディアとしてＮＡＮＤ型フラッシュメモリに対して適用される。
【００１３】
ＭＳ−ＤＯＳ互換フォーマットでは、メディアに対するデータの読み出し／書き込みの単位がシリンダ、ヘッド、セクタと呼ばれている。セクタのサイズの倍数のサイズのクラスタが記録されているデータを管理するための単位として定められている。
【００１４】
ＮＡＮＤ型フラッシュメモリに適用される論理フォーマットでは、記憶領域がデータ消去の単位となる複数のブロックに分割されている。ブロックは、データ消去の単位であると同時に、ファイル管理上の最小単位である。すなわち、ファイルは、１つまたは複数のブロックに格納され、１つのブロックに複数のファイルが混在しない。さらに、１ブロックは、複数個のページからなる。フラッシュメモリに対してデータの書き込み／読み出しは、ページ単位で行われる。例えば１ページのサイズが５１２バイトとされている。
【００１５】
ＭＳ−ＤＯＳでは、ファイル管理データとして、ＭＢＲ(Master Boot Record)、ＰＢＲ(Partition Boot Record)、ＦＡＴおよびルートディレクトリエントリが規定されている
。一例として、フラッシュメモリに対して１個のパーティションが形成されるものとされている。
【００１６】
ＭＢＲは、ユーザ領域の先頭に配置される。ＭＢＲには各パーティションの情報（例えば開始ＬＢＡセクタ番号・サイズ等）が記録される。
【００１７】
ＰＢＲは、各パーティションの先頭セクタに配置される。ＰＢＲが記録されているセクタは、ＭＢＲ内の開始ＬＢＡセクタ番号に記述されている。なお、ＬＢＡセクタ番号とは、有効ブロック内（或いは有効ブロックの代替ブロック）の各セクタに一意的に付された番号である。ＬＢＡセクタ番号は、論理ブロック番号が０のブロックの先頭から昇順に付されている。
【００１８】
ＦＡＴは、ＰＢＲに続くセクタから複数のセクタにわたって記録される。ＦＡＴは、ユーザ領域で扱われるファイルの連結状態をクラスタ単位で表している。
【００１９】
メディア上に記録されているデータは、クラスタ単位で管理されている。一つのファイルが複数のクラスタで構成される場合には、一つのクラスタを読み出した後に次のクラスタを読み出す必要がある。しかしながら、次のクラスタは、フラッシュメモリ上で物理的に連続する位置に記録されているとは限らない。ＦＡＴは、あるクラスタに続くクラスタがどのクラスタであるかを示す情報である。このようにＦＡＴによって示されるクラスタの続く関係をＦＡＴチェインと称する。
【００２０】
メディア上に存在する全てのクラスタには、クラスタ番号０００２から始まるクラスタ番号が付されている。ＦＡＴ内の各格納領域に対しては、クラスタ番号が一義的に割り当てられている。各格納領域には、割り当てられているクラスタ番号のクラスタに接続された次のクラスタ番号が格納される。したがって、そのクラスタが割り当てられている格納領域に格納されているクラスタ番号を参照することによって、次のクラスタのクラスタ番号を知ることができる。
【００２１】
バックアップのために２つのＦＡＴが記録される。また、一つのＦＡＴの物理的なデータサイズは、フラッシュメモリ内のクラスタ数が変化しないので、一定である。
【００２２】
ルートディレクトリエントリには、ルートディレクトリに配置される各ファイルおよびサブディレクトリのエントリが記述される。ルートディレクトリエントリは、ＦＡＴが記録された最終セクタに続く次のセクタから記録される。ルートディレクトリエントリのデータサイズは、一定である。上述したファイル管理データに続く次のセクタからユーザエリアの最初のクラスタ（クラスタ番号「０２」）が開始する。
【００２３】
図１は、ＦＡＴファイルシステムにしたがってフラッシュメモリに対してデータを記録した時を説明するためのデータの一例である。以下の説明では、ブロックおよびセクタに代えてブロックおよびページの単位の処理を説明する。
【００２４】
図１において、参照符号１がファイル管理データを示し、参照符号２がユーザデータのエリアである。ユーザデータエリア２において、「論理」は、論理アドレスを意味する。例えば「論理０２」は、論理ブロックアドレス番号が２であることを表している。図１に示すように、ディレクトリテーブル３にＦＡＴチェイン４のスタート位置が記述される。ディレクトリテーブル３中の項目として、「Test1.dat 0002」と「Test2.dat 0005」とが示されている。 Test1.datおよびTest2.datがそれぞれファイル名であり、0002および0005がそのファイルの先頭のブロック番号を示している。
【００２５】
参照符号５で示すファイルのデータの実体で示されるように、「Test1.dat 」のファイルは、ブロック番号0002のブロック02からブロック番号0004のブロック04までは連続的に記録され、ブロック番号0005をスキップしてブロック番号0006および0007のブロック06および07に連続的に記録されている。「Test2.dat 」のファイルは、ブロック番号0005のブロック05にのみ記録されている。
【００２６】
このようにデータが記録されている場合では、ブロック番号0002から0009までのそれぞ
れが割り当てられたＦＡＴの格納領域に記録されるＦＡＴチェイン４には、図で示すように、後に続くブロック番号が記録される。ここで、ffffは、続くブロックがない、すなわち、最後のブロックであることを意味している。「Test1.dat 」のファイルの場合では、ブロック番号0002から0007に対してそれぞれ割り当てられた格納領域に、0003,0004,0006,ffff(Test2.dat のファイルの最後),0007,ffffが記録される。
【００２７】
図１に示すように、データが記録されている場合に、「Test1.dat 」のファイルを削除した場合には、図２に示すように、ディレクトリテーブル３において「Test1.dat」のフ
ァイルに対して削除マーク（×で示されている）が付けられ、ＦＡＴ内の「Test1.dat」
のファイルに関するチェイン情報がクリアされる。この場合、データの実体５は、消去されない。「Test2.dat」のファイルは、削除されていないので、ブロック番号0005に割り
当てられた格納領域の値は、ffffのままである。
【００２８】
図３は、フラッシュメモリがクイックフォーマットされた場合を示す。クイックフォーマットでは、ディレクトリテーブル３の情報とＦＡＴチェイン４とがクリアされるが、データの実体５は、消去されない。
【００２９】
図４は、何らかの誤動作によってディレクトリ３および／またはＦＡＴ４が破壊された場合を示す。この場合は、データにアクセスすることができないが、データの実体５は、フラッシュメモリ上に残っている。
【００３０】
図５は、フラッシュメモリをフルフォーマット（クイックフォーマットではないという意味）を行った場合を示している。この場合は、メモリ全体が消去されるので、ディレクトリテーブル３の情報とＦＡＴチェイン４とがクリアされるのに加えて、データの実体も消去される。すなわち、データに対して全て０または全てffのデータが上書きされる。この場合では、データの復活は、物理的に不可能である。
【００３１】
図２，図３および図４に示すように、通常の方法では、データにアクセスできないが、データの実体５がフラッシュメモリ内に残っている場合には、何らかの方法でデータを復活させることが従来、考えられている。
【００３２】
ＪＰＥＧファイルフォーマットでは、ファイルの中が２バイトのマーカコードで区切られている。ファイルの先頭には、ＳＯＩ(Start Of Image)のマーカコード（ｆｆｄ８）（１６進表示）が配置され、ファイルの終端には、ＥＯＩ(End Of Image)のマーカコード（ｆｆｄ９）（１６進表示）が配置されている。したがって、復活させようとするデータがＪＰＥＧの場合、データエリアをサーチしてＳＯＩからＥＯＩまでのデータの実体を切り出して１個のファイルとすることにより画像データを復活させることができる。
【００３３】
この方法は、図６に示すように、ブロック番号0002から0007まで「Test1.jpg 」のファイルのＦＡＴチェインが連続している場合には、データ６を正しく復活することができる。なお、ブロック番号0007のブロックの終端位置とＥＯＩの終端とが一致しないので、斜線で示された一部のダミー領域が存在する。
【００３４】
しかしながら、図７に示すように、ＪＰＥＧファイルのデータ６がブロック番号0002から0004までは、連続したブロックに記録され、ブロック番号0005のブロックをスキップしてブロック番号0006および0007に記録されている場合には、ＳＯＩからＥＯＩまでを切り出して１個のファイルとする方法を使用しても、ＪＰＥＧファイルに正しくアクセスできない。すなわち、図７に示す例では、ブロック番号0005のブロックに記録されている無関係なデータ（「Test2.dat 」）が切り出されたデータ中に含まれてしまうために、正しくＪＰＥＧファイルを取り出すことができない。この場合では、正しい画像データとなるようにブロック番号毎に試行錯誤しながら正しいＦＡＴチェインを推測する必要がある。
【００３５】
この発明は、正しいＦＡＴチェインを判断するためのヒントを記憶しておくことによって、試行錯誤の回数を大幅に減らし、より多くのデータを高速に復活するものである。ＦＡＴチェインの復活のためのヒントのデータをファイルのデータと別の管理エリアに記録すると、ファイルのデータとヒントのデータとの整合性がとれなくなるおそれがある。この発明は、ファイルのデータと同じデータ単位にＦＡＴチェインを復活するヒントとなる情報（以下、リンク情報と適宜称する）を記録するものである。
【００３６】
この発明の一実施形態では、リンク情報を各ページに付加されている冗長部に記録するものである。メモリカード等の外部記憶媒体、または内蔵フラッシュメモリとして使用される、ＮＡＮＤ型フラッシュメモリでは、図８に示すように、１ページ分のデータ部１１（５１２バイト）と共に、冗長部１２（１６バイト）のエリアが規定されている。
【００３７】
冗長部１２は、当該冗長部が格納されたブロックを管理するための情報である。冗長部１２は、ブロックの使用の可否を示すフラグ等が含まれている２バイトのフラグと、２バイトの論理アドレスと、７バイトの空きエリア１３と、３バイトのデータ（５１２バイトのデータ）用のエラー訂正符号（ＥＣＣ）パリティコードと、２バイトの冗長部用のエラー訂正符号（ＥＣＣ）パリティコードとから構成されている。但し、フラグは、冗長部用のエラー訂正符号化の対象とされていない。
【００３８】
この発明の一実施形態では、図９に示すように、７バイトの空きエリア１３の内の２バイトを使用してリンク情報１４を記録する。したがって、空きエリアは、１３'で示すよ
うに５バイトのサイズとなる。リンク情報１４は、論理アドレスと共にエラー訂正符号化される。２バイト程度のリンク情報を記録するために、コストおよび処理時間の増加分を少なくできる。
【００３９】
リンク情報１４は、このブロックを書き込んだ直前に書き込まれたブロックの論理アドレス番号である。かかるリンク情報１４を記録することによって、データを書き込んだ順番を後からたどることが可能となる。リンク情報１４として実際に記録されるデータは、直前のブロックの論理アドレス番号に限らず、直前の物理アドレス番号、直後の論理アドレス番号および直後の物理アドレス番号の何れかでも良い。さらに、メディア内でデータを記録した順番で決定されるユニークなシーケンシャル番号をリンク情報１４として使用しても良い。
【００４０】
図１０を参照して、リンク情報の使用方法について説明する。ここでは、簡単のために、ブロック番号＝論理アドレス＝物理アドレスの関係が存在しているものと仮定する。ユーザデータエリア２に記録されるデータの各ページは、上述したように、データ部１１と冗長部１２とからなり、冗長部１２にリンク情報１４が記録されている。１ブロックは、所定数のページからなるが、同一ブロックのリンク情報は、同一の情報である。
【００４１】
図１に示すのと同様にデータが記録されている場合では、各ブロック番号のページのそれぞれに記録されるリンク情報１４は、図１０に示すものとなる。ここでは、リンク情報１４がこのブロックを書き込んだ直前に書き込まれたブロックの論理アドレス番号である。ブロック番号０８および０９のブロックでは、データが書かれていないので、２バイトのリンク情報は、初期値である（００００）とされる。
【００４２】
ブロック番号０７のリンク情報１４は、直前に書き込まれたブロックのブロック番号（０００６）であり、ブロック番号０６のリンク情報１４は、直前に書き込まれたブロックのブロック番号（０００４）である。ブロック番号０５のリンク情報１４は、１ブロックに一つのファイルのデータが書かれているので、直前に書き込まれたブロックが存在せず、したがって、リンク情報１４が（００００）である。ブロック番号０４のリンク情報１４は、直前に書き込まれたブロックのブロック番号（０００３）であり、ブロック番号０３のリンク情報１４は、直前に書き込まれたブロックのブロック番号（０００２）である。
【００４３】
このように、リンク情報１４が記録されていると、ディレクトリテーブル３および／またはＦＡＴチェイン４を読み出すことができなくても、ファイルの実体データが残っていれば、リンク情報１４を後ろから順にたどることによって、その実体データを復活できる。リンク情報１４を直前に書き込まれたブロックの番号とせずに、次に書かれるブロックの番号としても良い。但し、直前に記録されたブロック番号を覚えておいて、次のデータと一緒に記録する方法は、既存の制御処理からの変更する量を少なくできる。
【００４４】
図１１は、この発明を適用できるディジタルカメラの構成の概略である。参照符号２１は、ＣＰＵ(Central Processing Unit)を示し、参照符号２２は、ＣＰＵバスである。Ｃ
ＰＵバス２２に対して、ＲＯＭ２３、ＲＡＭ２４、撮影部２５および画像処理部２６が接続されている。
【００４５】
ＲＯＭ２３には、プログラム等のデータが格納されている。ＲＡＭ２４は、ＣＰＵ２１が処理に使用するワーク用メモリである。撮影部２５は、ＣＣＤ（Charge Coupled Device)等の撮像素子から構成され、撮影部２５からディジタル化された撮影データが出力される。撮影データは、画像処理部２６にてＪＰＥＧによる圧縮処理を受ける。
【００４６】
ＣＰＵバス２２には、入出力インターフェース部３１を介して入力部３２、出力部３３、通信部３４、ＮＡＮＤフラッシュメモリ３５、メモリカードインターフェース３６が接続される。
【００４７】
入力部３２は、シャッターボタン等の複数のキーである。出力部３３は、ＬＣＤ（Liquid Crystal Display)等の表示部である。通信部３４は、パーソナルコンピュータと通信
を行う部分、例えばＵＳＢである。ＮＡＮＤフラッシュメモリ３５は、ディジタルカメラに内蔵されている。メモリカードインターフェース３６を介してリムーバブルなメモリカード３７が接続される。メモリカード３７は、ＮＡＮＤフラッシュメモリおよび制御部とを有する。
【００４８】
撮影部２５が撮影した画像は、出力部３３に表示される。入力部３２のシャッターボタンが押されると、撮影部２５によって画像が捕捉され、画像処理部２６でＪＰＥＧによる圧縮処理がなされ、ＪＰＥＧデータがＮＡＮＤフラッシュメモリ３５およびメモリカード３７の一方または両方に対して記録される。
【００４９】
図１２は、メモリカード３７の構成の一例を示す。メモリカード３７は、フラッシュメモリ４１と、書き込みデータおよび読み出しデータのバッファ用のＲＡＭ４２と、メモリカード３７の各部を制御するコントローラ４３と、インターフェース４４とからなる。インターフェース４４およびメモリカードインターフェース３６を介してディジタルカメラのＣＰＵ２１（ホストコンピュータとしての位置付けを有する）がメモリカード３７を直接制御する。フラッシュメモリ４１に対するアクセスは、物理ブロックアクセスである。ＣＰＵ２１は、内蔵されているＮＡＮＤフラッシュメモリ３５およびメモリカード３７に対して上述したように、各ページの冗長部に対してリンク情報の書き込みおよび読み出しを行う。
【００５０】
図１３は、メモリカード３７の構成の他の例を示す。図１２の構成例と相違するのは、コントローラ４３の代わりにＣＰＵ４４が設けられている点である。ＣＰＵ４４が各ページの冗長部に対してリンク情報の書き込みおよび読み出しを行う。ホスト側コンピュータとしてのＣＰＵ２１がメモリカード３７に対して論理ブロックアクセスを行う。したがって、ホスト側のＣＰＵ２１は、リンク情報の書き込みおよび読み出しの処理を行わないで良く、ＣＰＵ２１の既存の処理に対して追加する処理が不要である。
【００５１】
次に、図１４を参照してデータ記録時の処理について説明する。図１４に示されるフローチャートは、データを記録する時の処理の流れを全体として示し、この処理は、内蔵のフラッシュメモリ３５およびリムーバブルなメモリカード３７の両方に対して共通に適用できる。フラッシュメモリ３５または図１２に示すメモリカード３７のように、ＣＰＵ２１がアドレスを直接制御する場合には、図１４に示されるデータ記録時の処理もＣＰＵ２１によってなされる。
【００５２】
図１０に示すように、データおよびリンク情報を記録する例を参照して説明する。図１０の場合と同様に、簡単のために、ブロック番号＝論理アドレス＝物理アドレスの関係が存在しているものと仮定する。最初のステップＳ１において、ＦＡＴから空きクラスタＡが計算される。例えば空きクラスタ0002が求められる。ステップＳ２において、クラスタ番号0002から論理アドレスＢ例えば0002が計算される。
【００５３】
ステップＳ３において、論理アドレスＢに対してデータおよびリンク情報が記録される。ステップＳ３の処理について後で図１５を参照してより詳細に説明する。
【００５４】
記録処理後にＦＡＴにクラスタＡ例えば0002のチェインを更新する。具体的には、0002にffffを書く。そして、ファイルサイズ分のデータの記録が終了したか否かがステップＳ５にて判定される。終了していないと判定されたならば、処理がステップＳ１に戻り、ステップＳ２からＳ４までの処理が繰り返される。ファイルサイズ分のデータの記録が終了したと判定されたならば、ステップＳ６において、ディレクトリおよびＦＡＴのデータが記録されて記録処理が終了する。
【００５５】
図１４におけるデータ記録処理Ｓ３は、より詳細には、図１５に示すようになされる。一例として、論理アドレス0002に対してデータが記録され、２回目のデータ記録処理Ｓ３がなされる場合について説明する。最初にステップＳ３１において、未使用の物理ブロックＣ例えば0003が計算される。ステップＳ３２において、その物理ブロックＣに対してデータが記録される。ステップＳ３３において、物理ブロックＣの各ページの冗長部に論理アドレスＢ例えば0003が記録される。
【００５６】
ステップＳ３４では、物理ブロックＣの各ページの冗長部にリンク情報Ｘが記録される。直前に記録したブロックのアドレス例えば0002がリンク情報Ｘとして冗長部に記録される。ステップＳ３５において、物理ブロックＣのアドレス0003がＸとされる。なお、上述したように、リンク情報Ｘは、物理アドレスおよび論理アドレスの何れでも良く、シリアル番号でも良い。また、図１６のフローチャートに示すように、パワーオン時の初期化処理のステップＳ４１において、リンク情報Ｘとして初期値０が設定される。
【００５７】
そして、ステップＳ３６において、論理物理変換テーブル（論物テーブルと称する）が更新される。論物テーブルは、ＣＰＵ２１のワーク用のＲＡＭ２４に記憶されている。
【００５８】
図１０に示すように、ＣＰＵ２１の制御によってＲＡＭ４２内の画像をフラッシュメモリの例えばブロック番号０２，０３，０４，０６，０７のブロックに対してデータを書き込む場合の処理の流れを以下に示す。
【００５９】
ブロック番号０２にデータを書き込む時には、直前に書き込んだブロックが無いために、リンク情報として0000をデータと同時に書き込む。
【００６０】
引き続きブロック番号０３にデータを書き込む時に、リンク情報として直前に書き込んだブロック番号である0002をデータと同時に書き込む。
【００６１】
引き続きブロック番号０４にデータを書き込む時に、リンク情報として直前に書き込んだブロック番号である0003をデータと同時に書き込む。
【００６２】
引き続きブロック番号０６にデータを書き込む時に、リンク情報として直前に書き込んだブロック番号である0004をデータと同時に書き込む。
【００６３】
引き続きブロック番号０７にデータを書き込む時に、リンク情報として直前に書き込んだブロック番号である0006をデータと同時に書き込む。
【００６４】
図１３に示すように、ＣＰＵ４４を有するメモリカードの場合では、ＣＰＵ４４が上述したように、データを記録する処理を制御し、メモリカードの内部で自動的にリンク情報を記録する。このリンク情報は、通常、ホスト側からは見えない。そこで、リンク情報が必要となるデータ修復時に特殊なコマンド(例えばReadLong)を使用して、データと冗長部のリンク情報とを同時に読み出すことによって、リンク情報を使用可能とする。
【００６５】
ディレクトリまたはＦＡＴチェインが使用不可になり、一方、データが残っている場合、データの復活は、パーソナルコンピュータを使用してなされる。例えばＪＰＥＧファイルの復活処理について図１７を参照して説明する。
【００６６】
最初に、フラッシュメモリから論理アドレス順にデータと冗長部とを読み出す。パーソナルコンピュータのＲＡＭに読み込まれたデータに対して、論理アドレスの先頭からＪＰＥＧファイル６のＳＯＩのマーカコード（ｆｆｄ８）（１６進表示）が探される。
【００６７】
ＳＯＩのマーカコードを発見できると、物理アドレスまたは論理アドレスが0002であり、そこのリンク情報が0000であることが分かる。リンク情報として0002が記録されているブロックを探すと、ブロック番号０３のブロックが探せる。ブロック番号０３をリンク情報としているブロックは、ブロック番号０４のブロックである。ブロック番号０４をリンク情報としているブロックは、ブロック番号０６のブロックである。ブロック番号０６をリンク情報としているブロックは、ブロック番号０７のブロックである。ブロック番号０７に、ＥＯＩのマーカコード（ｆｆｄ９）（１６進表示）が記録されているので、ブロック番号０７がファイルの終端である。
【００６８】
ＥＯＩのマーカコードを発見できた場合には、ＳＯＩからＥＯＩまでのデータを切り出して画像データとして保存し、データの正当性を確認する。このようにして、ＪＰＥＧファイル６を復活することができる。
【００６９】
以上、この発明の実施の形態について具体的に説明したが、この発明は、上述の実施の形態に限定されるものではなく、この発明の技術的思想に基づく各種の変形が可能である。例えばこの発明は、ＮＡＮＤ型フラッシュメモリに限らず、データ記録時に冗長部が存在する不揮発性メモリ例えばＡＮＤ型フラッシュメモリに対しても適用できる。また、この発明は、ディジタルカメラに限定されず、動画データ、音楽データ等のディジタルデータの記録再生に対しても適用可能である。
【図面の簡単な説明】
【００７０】
【図１】この発明を適用できるＦＡＴファイルシステムにデータを記録した時の説明に使用する略線図である。
【図２】ＦＡＴファイルシステムにおいてデータを削除した場合を説明するための略線図である。
【図３】メディアをクィックフォーマットした場合を説明するための略線図である。
【図４】ＦＡＴファイルシステムにおいてディレクトリまたはＦＡＴが読めなくなった場合を説明するための略線図である。
【図５】メディアをフルフォーマットした場合を説明するための略線図である。
【図６】画像データが連続して記録されている場合のデータの復活を説明するための略線図である。
【図７】画像データが不連続に記録されて場合、データの復活ができないことを説明するための略線図である。
【図８】ＮＡＮＤフラッシュメモリのデータ構成を示す略線図である。
【図９】ＮＡＮＤフラッシュメモリのデータ構成において冗長部にリンク情報を記録した構成を示す略線図である。
【図１０】リンク情報の使用方法を説明するための略線図である。
【図１１】この発明を適用できるデータ処理システム例えばディジタルカメラの構成例を示すブロック図である。
【図１２】この発明を適用できるメモリカードの一例の構成を示すブロック図である。
【図１３】この発明を適用できるメモリカードの他の例の構成を示すブロック図である。
【図１４】この発明の一実施形態におけるデータ記録時の処理の流れを示すフローチャートである。
【図１５】この発明の一実施形態におけるデータ記録時の処理の流れをより詳細に示すフローチャートである。
【図１６】この発明の一実施形態におけるパワーオン時の初期化処理の流れを示すフローチャートである。
【図１７】この発明の一実施形態における壊れたメディアの修復処理を説明するための略線図である。
【符号の説明】
【００７１】
１  ファイル管理データ
２  ユーザデータエリア
３  ディレクトリテーブル
４  ＦＡＴチェイン
５  記録されているデータ
６  ＪＰＥＧファイル
１１  データ部
１２  冗長部
１４  リンク情報
２１  ＣＰＵ
２５  撮影部
３５  内蔵のＮＡＮＤ型フラッシュメモリ
３７  リムーバブルなメモリカード
４３  メモリカード内のコントローラ
４４  メモリカード内のＣＰＵ４４
【図１】
2006133923.tif 000003
【図２】
2006133923.tif 000004
【図３】
2006133923.tif 000005
【図４】
2006133923.tif 000006
【図５】
2006133923.tif 000007
【図６】
2006133923.tif 000008
【図７】
2006133923.tif 000009
【図８】
2006133923.tif 000010
【図９】
2006133923.tif 000011
【図１０】
2006133923.tif 000012
【図１１】
2006133923.tif 000013
【図１２】
2006133923.tif 000014
【図１３】
2006133923.tif 000015
【図１４】
2006133923.tif 000016
【図１５】
2006133923.tif 000017
【図１６】
2006133923.tif 000018
【図１７】
2006133923.tif 000019