(57)【要約】  【課題】  ＦＡＴ上で削除されているが、メモリ上に残っている実データを削除時、またはメディア挿入時に消去して記録処理の高速化を図る。  【解決手段】  ステップＳ１１で削除するファイルのディレクトリエントリを検索し、Ｓ１２でディレクトリエントリに対して削除マークを書き込み、Ｓ１３で先頭クラスタ番号から開始して終端位置ＥＯＦに到達するまで、ブロック単位で削除されるクラスタ番号が検索される。そのクラスタ番号を特定する情報をリストして保持する。Ｓ１４において、先頭クラスタ番号から終端位置ＥＯＦに達するまでＦＡＴエントリの内容をクリアする。Ｓ１５においては、削除した数だけ、未使用クラスタ数が加算される。Ｓ１６において、Ｓ１３の検索結果から、消去コマンドを発行する開始ＬＢＡおよびセクタ数を算出する。Ｓ１７において、消去コマンドが実行され、ブロック単位でクラスタ群が消去される。【選択図】  図５
2006155461.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータ量の単位で構成される消去ブロックを単位としてデータが記録される記録媒体のデータを管理する情報処理装置において、
ファイルシステム上で対応する管理情報を削除したことに伴って消去可能となったファイルの実データであって、空き領域と判定する単位の整数倍の実データを検索し、
検索された上記実データを消去するように、上記記録媒体を制御する制御部を有する情報処理装置。
【請求項２】
請求項１の情報処理装置において、
上記記録媒体は、半導体メモリであることを特徴とする情報処理装置。
【請求項３】
請求項１の情報処理装置において、
上記制御部は、上記記録媒体に保持されているデータを削除する時に追加的に上記検索された実データの消去を行う情報処理装置。
【請求項４】
請求項１の情報処理装置において、
上記記録媒体がリムーバブルな記録媒体であって、
上記制御部は、上記記録媒体の挿入時に上記ファイルシステム管理情報をスキャンして上記実データを検索し、上記検索された実データの消去を行う情報処理装置。
【請求項５】
所定のデータ量の単位で構成される消去ブロックを単位としてデータが記録される記録媒体のデータを管理する情報処理方法において、
ファイルシステム上で対応する管理情報を削除したことに伴って消去可能となったファイルの実データであって、空き領域と判定する単位の整数倍の実データを検索するステップと、
検索された上記実データを消去するステップとからなる情報処理方法。
【請求項６】
請求項５の情報処理方法において、
上記記録媒体は、半導体メモリであることを特徴とする情報処理方法。
【請求項７】
請求項５の情報処理方法において、
上記記録媒体に保持されているデータを削除する時に追加的に上記検索された実データの消去を行う情報処理方法。
【請求項８】
請求項５の情報処理方法において、
上記記録媒体がリムーバブルな記録媒体であって、
上記記録媒体の挿入時に上記ファイルシステム管理情報をスキャンして上記実データを検索し、上記検索された実データの消去を行う情報処理方法。
【請求項９】
記録されているデータが所定のデータ量の単位で一括消去される記録媒体に対する情報処理方法をコンピュータに対して実行させるプログラムにおいて、
ファイルシステム上で対応する管理情報を削除したことに伴って消去可能となったファイルの実データであって、空き領域と判定する単位の整数倍の実データを検索するステップと、
検索された上記実データを消去するステップとからなる情報処理方法のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、一括消去型の半導体メモリに対して適用される情報処理装置、情報処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
ディジタルビデオカメラ、ディジタルスチルカメラ、パーソナルコンピュータ、携帯情報端末、据え置き型ビデオレコーダー等では、ＭＳ−ＤＯＳ(Microsoft Disc Operating
System)（登録商標）互換のＦＡＴ(File Allocation Table)ファイルシステムが使用されて静止画や動画、音声（または音楽）といった各種データを記録することがなされている。例えば下記特許文献１、特許文献２および特許文献３には、一括消去型の半導体メモリ（以下フラッシュメモリと称する）としてのメモリカードに対してＦＡＴファイルシステムを適用するデータ記憶装置について記載されている。
【０００３】
【特許文献１】特開２００３−２６３８９４号公報
【０００４】
【特許文献２】特開２００３−２９６１７７号公報
【０００５】
【特許文献３】特開２００３−３０８２４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＦＡＴ１６／３２では、ファイルシステムとしてファイル削除処理を実行しても、ＦＡＴの内容が書き換えられるだけで、実データが記録されているクラスタの内容はそのまま残る。つまり、そのクラスタが位置する消去ブロックも使用状態のままということになり、次回の記録の前のどこかの時点で、消去ブロックの内容を消去して未使用状態に戻さないと再利用できず、メモリを有効利用できない問題がある。
【０００７】
特許文献１には、半導体メモリのコントローラが管理する論理物理変換管理テーブルのアルゴリズムとして、可能な限り予め消去された未使用ブロックに対してデータの書き込みを行い、消去動作を省略して書き込みを高速に行うことが記載されている。
【０００８】
かかる特許文献１における「未消去ブロック」は、上述したようなＦＡＴファイルシステムにおける削除されずにデータが残されたままという意味とは相違する。この発明は、削除済みデータを保持しているブロックを消去しておくことによって、次回の記録時に消去のオーバーヘッドが生じなくするものである。
【０００９】
すなわち、この発明の目的は、ファイル削除時に、消去ブロック単位で削除されるクラスタ群が存在する場合、その消去ブロックの実データを消去しておくことによって、その消去ブロックを次回の記録時に速やかに記録可能とすることができる情報処理装置、情報処理方法、並びにプログラムを提供することにある。
【００１０】
この発明の他の目的は、メモリカードのようなリムーバブルなデータ記録媒体を挿入する時に、その媒体のＦＡＴ全体をスキャンすることで消去可能なブロックを調べ、スキャン後に消去を行うようにした情報処理装置、情報処理方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上述した課題を解決するために、この発明の第１の態様は、所定のデータ量の単位で構成される消去ブロックを単位としてデータが記録される記録媒体のデータを管理する情報処理装置において、
ファイルシステム上で対応する管理情報を削除したことに伴って消去可能となったファイルの実データであって、空き領域と判定する単位の整数倍の実データを検索し、
検索された実データを消去するように、記録媒体を制御する制御部を有する情報処理装置である。
【００１２】
この発明の第２の態様は、所定のデータ量の単位で構成される消去ブロックを単位としてデータが記録される記録媒体のデータを管理する情報処理方法において、
ファイルシステム上で対応する管理情報を削除したことに伴って消去可能となったファイルの実データであって、空き領域と判定する単位の整数倍の実データを検索するステップと、
検索された実データを消去するステップとからなる情報処理方法である。
【００１３】
この発明の第３の態様は、記録されているデータが所定のデータ量の単位で一括消去される記録媒体に対する情報処理方法をコンピュータに対して実行させるプログラムにおいて、
ファイルシステム上で対応する管理情報を削除したことに伴って消去可能となったファイルの実データであって、空き領域と判定する単位の整数倍の実データを検索するステップと、
検索された実データを消去するステップとからなる情報処理方法のプログラムである。
【発明の効果】
【００１４】
この発明によれば、ファイル削除時に未使用ブロックを準備しておくことが可能となり、次回の記録時に未使用ブロックを用いて速やかに記録処理を実行可能となる。従来と比較して、ファイルシステムのレベルから見て削除済み、つまり、未使用と判断できるクラスタに対応する消去ブロックに対して記録を行う際に、事前に消去ブロックの内容を消去して未使用に戻しておくので、実際に記録が開始されるまでの時間を短縮できる。
【００１５】
この発明では、従来と比較して、ファイルシステムのレベルから見て削除済み、つまり、未使用と判断できるクラスタに対応する消去ブロックに対して記録を行う際に、事前に消去ブロックの内容を消去して未使用に戻しておくので、実際に記録が開始されるまでの時間を短縮できる。例えば、静止画の高速連写記録などでは、記録開始までの処理を逐一速やかに行わないと、記録動作が破綻してしまう恐れがあり、そのようなケースにおいてこの発明が有効である。
【発明を実施するための最良の形態】
【００１６】
この発明の一実施形態の説明に先立ち、ＦＡＴ１６およびＦＡＴ３２のファイルシステムについて説明する。図１は、リムーバブルな半導体メモリ例えばフラッシュメモリをＦＡＴ１６でフォーマットした場合のデータ構造を示す。図２は、半導体メモリをＦＡＴ３２でフォーマットした場合のデータ構造を示す。ＦＡＴ１６は、ＦＡＴを１６ビットで管理するもので、ＦＡＴ３２は、ＦＡＴを３２ビットで管理するものである。フラッシュメモリの具体例は、メモリースティック（商品名）であり、その規格は、「メモリースティックＰＲＯフォーマット仕様書 ver.1.01-01」に規定されている。
【００１７】
ＦＡＴファイルシステムでは、複数個のセクタで構成されるクラスタを単位としてデータが管理される。クラスタのサイズは、セクタのサイズの倍数とされている。例えば１セクタが５１２バイトとされ、１クラスタのサイズがｍ（ｍ＝１，２，４，・・・，６４，１２８）個のセクタからなるものとされる。ｍ＝６４の場合では、１クラスタが３２Ｋバイトとされている。
【００１８】
従来、このクラスタサイズは、フラッシュメモリの消去ブロックのサイズより大きかった。しかしながら、近年、フラッシュメモリの容量の増加に伴い、消去ブロックのサイズが最大のクラスタサイズを超えるようになってきた。そういった事情を考慮して、特許文献２では、動画記録時に空き領域と判定するサイズをクラスタ単位ではなく、消去ブロック単位（の整数倍）とすることにより、記録効率を向上させている。図１および図２では、消去ブロックと表記するが、以下の説明では、単にブロックと称する。
【００１９】
図１および図２においては、ブロックのサイズよりクラスタのサイズが小さく、さらに、クラスタのサイズのｎ倍（ｎは２以上の整数）が１ブロックのサイズとなる。例えば１ブロックのサイズが１２８Ｋバイト、１クラスタのサイズが３２Ｋバイトとされ、１ブロック内に（ｎ＝４）クラスタが含まれる。したがって、クラスタ番号０〜３＝ブロックＮ、クラスタ番号４〜７＝ブロックＮ＋１、・・・の関係の配置を有している。
【００２０】
ＭＳ−ＤＯＳ等では、ファイル管理データとして、ＭＢＲ(Master Boot Record)、ＰＢＲ(Partition Boot Record)、ＦＡＴおよびルートディレクトリエントリが規定されてい
る。ＰＢＲは、ＢＰＢ(BIOS Parameter Block)と呼ばれることもある。一例として、フラッシュメモリに対して１個のパーティションが形成されるものとされている。
【００２１】
ＭＢＲは、記録媒体の先頭（ＬＢＡ＝０）に配置される。ＭＢＲには各パーティションの情報（例えば開始ＬＢＡセクタ番号・サイズ等）が記録される。
【００２２】
ＰＢＲは、各パーティションの先頭セクタに配置される。ＰＢＲが記録されているセクタは、ＭＢＲ内の開始ＬＢＡセクタ番号に記述されている。なお、ＬＢＡセクタ番号とは、有効ブロック内（或いは有効ブロックの代替ブロック）の各セクタに一意的に付された番号である。ＬＢＡセクタ番号は、ＬＢＡ（論理ブロック番号）が０のブロックの先頭から昇順に付されている。
【００２３】
ＦＡＴは、ＰＢＲに続くセクタから複数のセクタにわたって記録される。ＦＡＴは、ユーザ領域で扱われるファイルの連結状態をクラスタ単位で表している。なお、バックアップのために二つのＦＡＴ１、ＦＡＴ２（以下、単にＦＡＴと称する）が記録されている。また、一つのＦＡＴの物理的なデータサイズは、フラッシュメモリ内のクラスタ数が変化しない限り、一定である。
【００２４】
メディア上に記録されているデータは、クラスタ単位で管理されている。一つのファイルが複数のクラスタで構成される場合には、一つのクラスタを読み出した後に次のクラスタを読み出す必要がある。しかしながら、次のクラスタは、フラッシュメモリ上で物理的に連続する位置に記録されているとは限らない。ＦＡＴは、あるクラスタに続くクラスタがどのクラスタであるかを示す情報である。このようにＦＡＴによって示されるクラスタの続く関係をＦＡＴチェインと称する。
【００２５】
メディア上に存在する全てのクラスタには、クラスタ番号０００２から始まるクラスタ番号が付されている。ＦＡＴ内の各エントリに対しては、クラスタ番号が一義的に割り当てられている。各エントリには、割り当てられているクラスタ番号のクラスタに接続された次のクラスタ番号が格納される。したがって、そのクラスタが割り当てられているエントリに格納されているクラスタ番号を参照することによって、次のクラスタのクラスタ番号を知ることができる。
【００２６】
ＦＡＴ１６の場合では、ルートディレクトリエントリに限って、ＦＡＴが記録された最終セクタに続く次のセクタから記録される。ＦＡＴの直後から始まるルートディレクトリエントリ格納領域には、ルートディレクトリに配置される各ファイルおよびディレクトリのエントリが記述される。ルートディレクトリエントリ格納領域のデータサイズは、一定である。上述したファイル管理データに続く次のセクタからユーザエリアの最初のクラスタ（クラスタ番号「０２」）が開始する。なお、ＦＡＴ３２では、ルートディレクトリエントリも、サブディレクトリと同様にして、ユーザデータエリア内に記録されている。
【００２７】
図３は、ＦＡＴファイルシステム例えばＦＡＴ３２にしたがってフラッシュメモリに対してデータを記録した時を説明するためのデータの一例である。図３ＡがＦＡＴを示し、図３Ｂがディレクトリエントリの情報構造を示す。
【００２８】
ディレクトリエントリは、３２バイトのデータからなり、「名前」（８バイト）、「拡張名」（３バイト）、「属性」（１バイト）、「予約（未定義を意味する」（１バイト）、「作成時刻」（３バイト）、「作成日時」（２バイト）、「最終アクセス日付」（２バイト）、「先頭クラスタ番号（high）」（２バイト）、「記録時刻」（２バイト）、「記録日付」（２バイト）、「先頭クラスタ番号（low）」（２バイト）、「ファイルサイズ
」（４バイト）が先頭から順に配置されている。図３Ｂでは、バイト位置が２種類の表記法で示されている。その一つは、０から始まる１６進で表したものであり、他のものは、１から始まる１０進で表したものである。
【００２９】
ディレクトリエントリは、１ファイル毎または１ディレクトリ毎に対応しており、図３の例では、４個のファイルに対応して４個のエントリが記録されている。第１のファイルのディレクトリエントリには、先頭クラスタ番号として（０００００００７ｈ）（ｈは、１６進表記を意味する。以下同様）が記録されている。図３Ａに示すＦＡＴの対応するエントリには、（０００００００８ｈ）が記録されている。（０００００００８ｈ）に対応するエントリには、（０００００００９ｈ）が記録されている。（０００００００９ｈ）に対応するエントリには、ファイルの終端クラスタを意味するデータＥＯＦ例えば（０ＦＦＦＦＦＦＦｈ）が記録されている。ＦＡＴ１６の場合のＥＯＦは、（ＦＦＦＦｈ）である。なお、図３えにおいて、「−」は、未使用クラスタに対応するエントリを表しており、例えば全て０のデータが書かれている。
【００３０】
第１のファイルは、クラスタ番号の（０００００００７ｈ）から（０００００００９ｈ）までに連続的に記録されている。他のファイルに関するクラスタの連鎖情報もＦＡＴに保持されている。例えば第３のファイルの場合では、先頭のクラスタ番号が（００００００１Ｂｈ）とされ、以下、（００００００１１ｈ）→（００００００１２ｈ）→（００００００１３ｈ）→（００００００１４ｈ）→（０００００００３ｈ）と記録される。
【００３１】
以上のように、各ファイルは、ファイル名、作成日時、先頭クラスタ番号、ファイルサイズ等を保持するディレクトリエントリと、クラスタの連鎖情報を保持するＦＡＴと、クラスタ単位で記録されているファイルの実体である実データの３個の要素に基づいて記録媒体上に記録されている。３個の要素の記録位置は、ひとまとまりになっているわけでなく、点在している。
【００３２】
ＦＡＴ１６またはＦＡＴ３２において、記録済みのファイルを削除する処理について図４を参照して説明する。最初にステップＳ１において、削除するファイル名のディレクトリエントリを検索する。ステップＳ２において、検索したディレクトリエントリを削除する。削除の操作は、先頭の１バイト、すなわち、名前の先頭に対して削除マークとしてのコードＥ５ｈを書き込む。ステップＳ３において、ディレクトリエントリの先頭クラスタ番号から開始してＦＡＴを参照しながら終端位置ＥＯＦに到達するまで、ＦＡＴのファイルに関する連鎖情報がクリアされる。クリアは、ゼロデータを書き込むことでなされる。
【００３３】
以上の処理でファイルの削除処理が完了する。すなわち、従来では、ＦＡＴファイルシステムにおいてファイルを削除する処理は、ディレクトリエントリに対して所定の値を書き込み、ＦＡＴをクリアすることである。その際に、記録媒体のデータ領域に書かれている実データに対する処理がなされず、実データは、残されたままである。本明細書における「削除」の用語は、ディレクトリエントリに対して所定の値を書き込み、ＦＡＴをクリアする処理を意味する。
【００３４】
このように削除済みファイルの実データの内容を保持しているブロックを再利用する場合には、そのブロックの内容を消去する必要がある。ここで、半導体メモリ例えばフラッシュメモリを構成するブロックの内容を消去するとは、物理的、例えば電気的にブロックの内容を２進表現で全て"1"にすることを意味する。フラッシュメモリは、全て"1"の情報から書き込まれた内容によって該当するビットを"0"に変えることによってデータを保持
する。一実施形態におけるフラッシュメモリの性質上、"1"→"0"の書き込みは可能であるが、"0"→"1"の書き込みが不可能であるので、全て"1"に戻す処理、すなわち、消去を行
ってから書き込みを行う必要がある。この消去に要する時間がオーバーヘッドとして生じる。本明細書における「消去」の用語は、ブロックの内容を物理的に全て"1"に戻すこと
を意味する。
【００３５】
なお、未使用ブロックの内容をホスト例えば記録再生装置が読んだときに、値が"1"と
読めるのか、それとも"0"と読めるかは、半導体メモリ内のコントローラの処理に依存し
ている。すなわち、フラッシュメモリ自体が保持している状態としては、"1"の場合でも
、半導体メモリ内のコントローラがそのまま"1"としてホストに返すのか、反転させて"0"として返すのかは、コントローラ、半導体メモリの種類等に依存している。使用中の有効データについては、当然反転させないが、未使用状態に限っては、値を"1"のままホスト
に返すか、"0"に反転して返すのかの何れの場合もありうる。
【００３６】
この発明の一実施形態では、ファイル削除時に追加的処理として、ブロック単位で削除できるクラスタ群が存在するのか否かを判定し、若し、そのようなクラスタ群が存在する場合には、そのブロックの内容を消去しておくものである。このような処理を行っておくことによって、次回の記録時に未使用ブロックとして扱われ、消去が不要なために速やかに記録処理を実行することが可能となる。
【００３７】
図５は、この発明の一実施形態において、ホスト例えば記録再生装置のＣＰＵの制御によって実行されるファイル削除時の処理の流れを示す。最初にステップＳ１１において、削除するファイルのディレクトリエントリを検索する。ステップＳ１２において、検索したディレクトリエントリの先頭の１バイト、すなわち、名前の先頭に対して削除マークとしてのコードＥ５ｈを書き込む。ステップＳ１１およびＳ１２は、従来の図４に示す処理におけるステップＳ１およびＳ２と同様のものである。
【００３８】
ステップＳ１３において、ディレクトリエントリの先頭クラスタ番号から開始してＦＡＴを参照しながら終端位置ＥＯＦに到達するまで、ブロック単位で削除されるクラスタ番号が検索される。検索されたクラスタ番号を特定する情報例えば開始クラスタ番号およびブロック数の情報をリストして保持する。ステップＳ１４において、先頭クラスタ番号から終端位置ＥＯＦに達するまでＦＡＴエントリの内容をクリアする。
【００３９】
ステップＳ１５においては、削除した数だけ、未使用（空き）クラスタ数が加算される。なお、図示は省略するが、保持している未使用クラスタ数は、記録した数だけ減算される。ステップＳ１６において、ステップＳ１３の検索結果から、消去コマンドを発行する開始ＬＢＡ（論理ブロック番号）およびセクタ数を算出する。ステップＳ１７において、消去コマンドが実行され、ブロック単位でクラスタ群が消去される。メモリースティックＰＲＯにおいては、消去コマンドは、「ＥＲＡＳＥコマンド」と称される。
【００４０】
図６は、ブロックサイズとクラスタサイズの関係を算出する処理の流れを示す。ステップＳ２１において、メモリカードのブロックサイズが取得される。一例として、メモリースティックＰＲＯにおいては、図１および図２に示すユーザデータエリアとは別のシステムエリアに対してメモリカードを制御するのに必要とされる情報が記録されているアトリビュート情報エリアが設けられている。このエリアの"Device Information"に保持されている情報の一つとして「ブロックサイズ」があるので、この情報を参照してブロックサイズを取得できる。
【００４１】
次にステップＳ２２において、メモリカードのクラスタサイズが取得される。クラスタサイズは、ＰＢＲ中の"PBRSecClus"（１クラスタ当たりのセクタ数）と、"PBRBytsPerSec"（１セクタ当たりのバイト数）とを掛け算することによって算出することができる。ス
テップＳ２３では、ブロックサイズ÷クラスタサイズの商、すなわち、１ブロックを構成するクラスタの個数Ｘが計算され、Ｘの値が保持される。１ブロックを構成するクラスタの個数Ｘは、ステップＳ１３の処理で使用される。図１および図２に示される例では、Ｘ＝４である。
【００４２】
図７は、ステップＳ１３の処理をより詳細に示す。最初のステップＳ３１において、クラスタ番号をＸで割り算し、ステップＳ３２において、割り切れたか否かが判断される。割り切れたことは、そのクラスタ番号がブロックの先頭に位置していることを意味する。ステップＳ３２において、割り切れなかったと判定される場合には、ステップＳ３３にて次のクラスタが検索される。ステップＳ３４では、次のクラスタがファイルの終端ＥＯＦか否かが判定される。若し、ＥＯＦであれば、処理が終了する。そうでない場合には、処理がステップＳ３１に戻り、上述したステップＳ３１およびＳ３２がなされる。
【００４３】
ステップＳ３２において、割り切れたと判定される場合では、処理がステップＳ３５に移り、そのクラスタ番号が開始クラスタ番号として保持される。ステップＳ３６では、次のクラスタが検索され、ステップＳ３７では、次のクラスタがファイルの終端ＥＯＦか否かが判定される。若し、ＥＯＦであれば、処理が終了する。そうでない場合には、処理がステップＳ３８に戻り、連続しているか否かが判定される。
【００４４】
ステップＳ３８において、連続していると判定される場合には、ステップＳ３９において連続数をインクリメントする。連続していない場合では、ステップＳ４０において、連続数を０に初期化してステップＳ３３の次のクラスタの検索の処理に移る。連続数をインクリメントしたステップＳ３９の後のステップＳ４１では、連続数がＸ例えば４に等しくなったか否かが判定される。
【００４５】
ステップＳ４１において、連続数がＸに達していないと判定されると、ステップＳ３６の次のクラスタの検索の処理に戻る。ステップＳ４１において、連続数がＸに達したと判定されると、ステップＳ４２において、ステップＳ３５で保持したクラスタ番号およびブロック数が保持される。保持されるクラスタ番号は、ブロックの先頭の開始クラスタ番号である。
【００４６】
ステップＳ４２では、リストの形式でクラスタ番号と連続するブロック数の値が保持される。例えば開始クラスタ番号○○に対応する消去ブロックから３ブロック分消去可能と判定された場合には、リストの１行には、「クラスタ番号○○  ３」の内容が書かれる。ステップＳ４２の後のステップＳ４３において、連続数が０にされ、処理がステップＳ３６の次のクラスタの検索に戻る。
【００４７】
図８は、開始クラスタ番号に対応する開始ＬＢＡの算出の式を示す。図６の処理で算出している、ブロックサイズとクラスタサイズとの関係から、ブロック数をセクタ数に換算することによって、消去コマンドを発行する際に必要とされる「開始ＬＢＡ」および「セクタ数」が分かる。なお、ＦＡＴ１６／３２に関する詳細に関するリファレンスとして、"Microsoft Extensible Firmware Initiative FAT32 File System"が存在し、図８の計算式における各用語は、このリファレンスにおける用語である。但し、このリファレンスでは、"PBR"の代わりに、同じ意味の"BPB"の表記が使用されている。
【００４８】
図８Ａは、ＦＡＴ１６の場合の換算式を示す。データ領域の開始ＬＢＡは、図１におけるデータ領域の先頭の位置Ａ２に対応する。「パーティションの開始ＬＢＡ」は、図１におけるＰＢＲの先頭の位置Ａ１に対応する。"PBRRsvdSecCnt"は、ＰＢＲと、ＰＢＲおよ
びＦＡＴ１間に存在する隙間のデータ量をとを合計したデータ量を表しており、ＰＢＲの中に含まれている情報である。"PBRFATSz16"は、ＦＡＴのサイズを表している。"PBRNumFATs"は、ＦＡＴの数を表している。これらの情報もＰＢＲの中に含まれている。ＦＡＴの数は、２である。"PBRRootEntCnt×32÷PBRBytsPerSec"は、ルートディレクトリエントリのデータ量を表している。総セクタ数が１６ビット空間を超える場合には、ＦＡＴのデータ量の計算において、ＦＡＴのサイズが"PBRFATSz32"に変更される。
【００４９】
また、クラスタ番号Ｎの開始ＬＢＡは、総クラスタ数Ｎからディレクトリエントリに割り当てられたクラスタ数"PBRRootClus"（ここでは２）を減算した値に、クラスタ当たり
のセクタ数"PBRSecPerClus"を乗算することによって計算される。
【００５０】
図８Ｂに示すＦＡＴ３２の場合も、ＦＡＴ１６の場合と同様に、開始クラスタ番号および開始クラスタ番号に対応する開始ＬＢＡを計算することができる。データ領域の開始ＬＢＡは、図２におけるデータ領域の先頭の位置Ａ１２に対応する。「パーティションの開始ＬＢＡ」は、図２におけるＰＢＲの先頭の位置Ａ１１に対応する。"PBRRsvdSecCnt"は
、ＰＢＲと、隙間のデータ量と、ＦＳｉｎｆｏのデータ量とを合計したものを示している。ＦＡＴ３２では、ＦＡＴ１６と比較してルートディレクトリエントリが存在しないので、ルートディレクトリエントリに関する項目が数式内に存在しない。
【００５１】
上述した一実施形態では、ファイル削除時に追加的処理として、ブロック単位で削除できるクラスタ群が存在する場合には、そのブロックの内容を消去しておくものである。以下に述べるこの発明の他の実施形態は、記録媒体例えばメモリカードの挿入時に消去処理を行うものである。
【００５２】
メモリカードが挿入されるタイミングとしては、二つの場合がありうる。一つは、パワーＯＮの状態でメモリカードを挿入する場合であり、他の一つは、メモリカードを挿入してからパワーをＯＮする場合である。他の場合において、パワーＯＮの度に消去処理を行うようにしても良いが、メモリカードが交換されていなければ、毎回、消去処理を行う必要がない。
【００５３】
図９のフローチャートは、この発明の他の実施形態において、ホスト例えば記録再生装置のＣＰＵの制御によって実行される、メモリカードの挿入時に消去処理を行う他の実施形態の処理の流れを示す。ステップＳ５１では、メモリカードのブロックサイズや製造シリアル番号などを取得する。次にステップＳ５２において、メモリカードのクラスタサイズが取得される。ステップＳ５３では、ブロックサイズ÷クラスタサイズの商、すなわち、１ブロックを構成するクラスタの個数Ｘを計算され、Ｘの値が保持される。このステップＳ５１、Ｓ５２、Ｓ５３の処理は、図６におけるステップＳ２１、Ｓ２２およびＳ２３の処理と同様のものである。メモリカードの製造シリアル番号（４バイト）は、"Device
Information"に含まれている。
【００５４】
ステップＳ５４において、ＦＡＴがスキャンされる。このステップでは、消去対象の判定と未使用（空き）クラスタ数の集計がなされる。前述した図７に示されるフローチャートにおいては、ファイル削除時に削除したクラスタ群の中でブロック単位で消去できるものを検索している。図９のフローチャートでは、削除したファイルに限らず、ＦＡＴ全体で削除マークとしてのコードＥ５ｈが書かれているディレクトリエントリが検索され、そのディレクトリエントリに対応するクラスタ群がブロック単位で消去可能か否かが検索される。並行してメモリカード全体の未使用（空き）クラスタ数が計数される。この発明の他の実施形態による処理のために限らず、通常、半導体メモリの残容量を調べるために、ＦＡＴがスキャンされることもあるので、そのスキャン時に消去処理を行うようにできる。
【００５５】
ステップＳ５５では、取得した製造シリアル番号などと現在保持している製造シリアル番号などとを比較する。製造シリアル番号に限らず、メモリカードを一意に識別できる情報を使用できる。例えば"Device Information"には、製造メーカコード（１バイト）、製造商品コード（３バイト）、ＩＤ（１６バイト）などが含まれており、これらの情報をメモリカードを一意に特定する情報として使用しても良い。
【００５６】
ステップＳ５６において、両者が一致するか否かが判定される。一致すると判定されると、ステップＳ５７において、ステップＳ５４において集計した未使用クラスタ数と、現在保持している未使用クラスタ数とが比較される。
【００５７】
ＦＡＴ３２の場合では、"FSInfo"（図２参照）の中の"FSIFreeCount"（４バイト）を見ることによって、現在保持している未使用クラスタ数が分かる。"FSInfo"の位置は、ＰＢＲ中の"PBRFSInfo"を参照すれば分かる。ＦＡＴ１６の場合では、"FSInfo"が存在しない
ので、例えばＰＢＲの直後に位置するセクタ（５１２バイト）などを利用して"FSIFreeCount"に相当する情報が保持される。
【００５８】
ステップＳ５７の比較の結果がステップＳ５８において判定される。集計した未使用クラスタ数と、現在保持している未使用クラスタ数とが一致する場合には、メモリカードの未使用クラスタ数が保持されている状態と変化していないこと、すなわち、メモリカードが交換されていないことを意味するので、消去処理が省略可能と判断され、処理が終了する。両者が一致しないと判定されると、ステップＳ６０において、未使用クラスタ数が保持される。
【００５９】
ステップＳ５６において、取得した製造シリアル番号などと現在保持している製造シリアル番号などとが不一致と判定されると、ステップＳ５９において、ステップＳ５１において取得された製造シリアル番号などが記録再生装置内の不揮発性メモリに保持される。そして、ステップＳ６０において、未使用クラスタ数が保持される。ステップＳ６１では、ステップＳ５４において消去対象として検索されたクラスタ群が消去される。消去処理は、上述したこの発明の一実施形態におけるのと同様に、ホストが消去コマンドをメモリカードに対して与えることで実行される。
【００６０】
ステップＳ６１の消去処理において、メモリカード上の実データが消去される。
【００６１】
上述したこの発明の一実施形態および他の実施形態は、ソフトウェアによって実装可能であり、図１０に示すように、アプリケーション⇔ファイルシステム⇔デバイスドライバ⇔記録媒体の階層構造で実装される。アプリケーションがファイルレベルでファイルシステムに対してアクセス要求を行い、ファイルシステムがアクセスに対してファイルレベルでアクセス応答を行う。ファイルシステムは、デバイスドライバに対してクラスタレベルでアクセス要求を行い、デバイスドライバがファイルシステムに対してクラスタレベルでアクセス応答を行う。デバイスドライバは、記録媒体に対してセクタレベルでアクセス要求を行い、記録媒体がデバイスドライバに対してセクタレベルでアクセス応答を行う。
【００６２】
図１１は、ファイルシステムの構成例を示す。ファイルシステム１１は、記録制御部１２およびメディア制御部１３からなる。記録制御部１２は、ディレクトリエントリ制御部１４、クラスタ制御部１５、ＦＡＴ制御部１６を有している。メディア制御部１３は、位置算出部１７を有している。デバイスドライバ１８がメディアとしての半導体メモリ１９を制御する。メディア制御部１３の位置算出部１７がデバイスドライバ１８と結合されている。記録制御部１２の処理として、上述したようなブロック単位で削除されるクラスタ群の判定、消去コマンドの発行、消去処理の実行等の処理が従来の処理に追加される。
【００６３】
図１２は、この発明をディジタルビデオカメラに対して適用した場合の構成例を概略的に示す。光学レンズ部２１を介して被写体像がＣＣＤ（Charge Coupled Device)等の撮像素子からからなる光電変換部２２に供給され、被写体像に応じた撮像信号が得られる。撮像信号が画像信号処理部２３に供給される。画像信号処理部２３は、撮像信号に対してγ補正、解像度変換等の処理を行う。また、画像信号処理部２３は、静止画の場合では例えばＪＰＥＧ（Joint Photographic Experts Group)によって圧縮処理を行い、動画の場合
では例えばＭＰＥＧ２(Moving Picture Experts Group Phase 2)等の画像圧縮処理を行う。
【００６４】
画像信号処理部２３に対して画像入出力部２４および液晶ディスプレイ２５が接続されている。画像入出力部２４は、外部から所定方式のビデオ信号が入力可能とされている。この入力されたビデオ信号が画像信号処理部２３の処理を経て液晶ディスプレイ２５に表示させることが可能とされている。また、画像信号処理部２３は、画像入出力部２４を介して入力されたビデオ信号について、光電変換部２２から入力されたアナログビデオ信号と同様にして、記録用データに変換してドライブ３３に転送することもできる。これに対応して画像入出力部２４は、例えばＤＶ(Digital Video)フォーマットなどの所定方式に
従った映像（画像）信号出力端子／映像信号入力端子を備える。液晶ディスプレイ２５は、ディジタルビデオカメラ本体に設けられたもので、撮影中の画像、再生画像等を表示する。
【００６５】
音声入出力部２６を介して、マイクロホン、記録メディア等の外部から音声信号が入力され、入力音声信号が音声処理部２７に供給される。音声処理部２７は、ＡＴＲＡＣ(Adaptive Transfer Acoustic Coding)、ＭＰ３(MPEG1 Audio Layer 3)等の圧縮処理を行う。音声入出力部２６を介して出力される音声信号がヘッドホン等の再生装置で再生され、また、出力される圧縮音声信号が記録メディアに記録される。
【００６６】
参照符号２８は、ＣＰＵ(Central Processing Unit)を示し、ＣＰＵ２８に対して、Ｒ
ＡＭ２９、ＲＯＭ３０、操作入力部３１、通信部３２およびドライブ３３が接続されている。
【００６７】
内蔵メモリであるＲＡＭ２９は、ＣＰＵ２１が処理に使用するワーク用メモリである。内蔵メモリであるＲＯＭ３０には、プログラム等のデータが格納されている。操作入力部３１は、操作ボタン等の複数のキーである。ＧＵＩの構成の操作入力部を使用しても良い。通信部３２に対して有線ネットワーク（ＵＳＢ、Ethernet（商標）、ＩＥＥＥ(Institute of Electrical and Electronics Engineers) １３９４等）または無線ネットワーク（IEEE802.11a/b/g、Bluetooth等）が接続される。ドライブ３３は、メモリカード等のリムーバブルな半導体メモリを制御するドライブである。
【００６８】
ＣＰＵ２８がドライブ３３を介して半導体メモリに対してデータを書き込み、また、半導体メモリからデータを再生する。撮影された画像データが圧縮されて半導体メモリに記録される。半導体メモリに記録されているデータがＦＡＴ１６／３２のファイルシステムによって管理される。上述したように、ＣＰＵ２８が半導体メモリを管理する場合、ファイルの削除時の追加処理として、または半導体メモリの挿入時になされる処理として、ブロック単位で消去可能なクラスタ群が検索され、そのクラスタ群が消去される。
【００６９】
図１３は、この発明をパーソナルコンピュータに対して適用した場合の構成例を概略的に示す。図１３において、参照符号４１がＣＰＵを示し、４２がＣＰＵバスを示す。ＣＰＵバス４２に対して  内蔵メモリであるＲＯＭ４３およびＲＡＭ４４が接続されている。ＲＯＭ４３には、プログラム等のデータが格納されている。ＲＡＭ４４は、ＣＰＵ４１が処理に使用するワーク用メモリである。
【００７０】
ＣＰＵバス４２に対して、デバイスコントローラとしての入出力インターフェース４５が接続されている。デバイスとして、入力部４６、出力部４７、通信部４８および記憶部４９が設けられている。入力部４６には，キーボード、マウス、スキャナ、マイクロホンが含まれている。出力部４７には、ディスプレイ、スピーカ、プリンタ、プロッタが含まれている。通信部４８には、ＵＳＢ、ＩＥＥＥ１３９４、ブルートゥース、ＩＥＥ８０２．１１ａ／ｂ／ｇのそれぞれの方式で通信を行う部分が含まれている。記憶部４９には、光ディスク、磁気ディスク、光磁気ディスク、半導体メモリが含まれている。
【００７１】
ＣＰＵ４１が入出力インターフェース４５を介して記憶部４９に含まれる半導体メモリに対してデータを書き込み、また、メモリカードからデータを再生する。上述したように、半導体メモリに記録されているデータがＦＡＴ１６／３２のファイルシステムによって管理され、ブロック単位で消去可能なクラスタ群が検索され、そのクラスタ群が消去される。
【００７２】
図１４は、この発明による半導体メモリの管理を概略的に示す。半導体メモリ５１は、フラッシュメモリ５２、コントローラ５３およびホストとのインターフェース５４とから構成されている。コントローラ５３は、ホスト側の記録再生装置６１からのみ制御される構成に限らず、ＣＰＵの構成とされ、記録再生装置６１のＣＰＵ６２と分離して制御が可能とされる場合もある。記録再生装置６１は、ＣＰＵ６２と半導体メモリ５１とのインターフェース６３を有している。
【００７３】
記録再生装置６１が半導体メモリ５１に対してＬＢＡ（論理アドレス）によってアクセスを行う。半導体メモリ５１のコントローラ５３が管理する論理物理変換テーブル５４によって論理物理変換され、対応するブロック内のページにアクセスされる。
【００７４】
冒頭に挙げた特許文献１には、論理物理変換管理テーブル５４のアルゴリズムとして、可能な限り予め消去された未使用ブロックに対してデータの書き込み（更新、変更をも含む）を行い、消去動作を省略して書き込みを高速に行うことが記載されている。特許文献１における「未消去ブロック」とは、「書き込みアクセスに対して新たな未使用ブロックを割り当てたことにより、データを保持しておく必要がなくなったブロック」のことである。
【００７５】
かかる特許文献１における「未消去ブロック」は、この発明における「ＦＡＴファイルシステムにおける削除されずにデータが残されたままのブロック」という意味とは相違する。上述したように、この発明は、削除済みデータを保持しているブロックを消去しておくことによって、次回の記録時に消去のオーバーヘッドが生じなくするものであり、特許文献１に記載のものとは相違するものである。
【００７６】
以上、この発明の実施の形態について具体的に説明したが、この発明は、上述の実施の形態に限定されるものではなく、この発明の技術的思想に基づく各種の変形が可能である。例えば上述した説明では、１ブロックを空き領域と判定するサイズとしているが、ブロックのサイズによっては、１ブロックより小なるサイズ例えば１／２ブロック、または複数ブロックを空き領域と判定することも可能である。また、この発明は、メモリースティックに限らず、「ＣＦ＋and CompactFlash Specification Revision 2.1」に規定される
コンパクトフラッシュに対しても適用できる。さらに、この発明は、ＳＤメモリカードに対しても適用できる。よりさらに、この発明は、ファイルシステムとしてＦＡＴ１６／３２以外のファイルシステム例えばＵＤＦ(Universal Disc Format)に対しても適用できる
。
【図面の簡単な説明】
【００７７】
【図１】この発明を適用できるＦＡＴ１６でフォーマットされた半導体メモリの説明に使用する略線図である。
【図２】この発明を適用できるＦＡＴ３２でフォーマットされた半導体メモリの説明に使用する略線図である。
【図３】ＦＡＴおよびディレクトリエントリの一例を説明するための略線図である。
【図４】従来のファイル削除処理を説明するためのフローチャートである。
【図５】この発明によるファイル削除処理を説明するためのフローチャートである。
【図６】ブロックサイズとクラスタサイズの関係を算出する処理を説明するためのフローチャートである。
【図７】ブロック単位で削除可能なクラスタ群を判定する処理を説明するためのフローチャートである。
【図８】クラスタ番号に対応する論理アドレスの算出式を示す略線図である。
【図９】メディア挿入時（パワーＯＮ時）になされる消去処理を説明するためのフローチャートである。
【図１０】この発明を適用できるファイルシステムの位置付けを説明するための略線図である。
【図１１】この発明を適用できるＦＡＴ１６／３２ファイルシステムの構成例を示すブロック図である。
【図１２】この発明を適用できるディジタルビデオカメラの構成例を示すブロック図である。
【図１３】この発明を適用できるパーソナルコンピュータの構成例を示すブロック図である。
【図１４】記録再生装置と半導体メモリの関係を説明するためのブロック図である。
【符号の説明】
【００７８】
２１  光学レンズ部
２２  光電変換部
２８，４１  ＣＰＵ
３３  ドライブ
【図１】
2006155461.tif 000003
【図２】
2006155461.tif 000004
【図３】
2006155461.tif 000005
【図４】
2006155461.tif 000006
【図５】
2006155461.tif 000007
【図６】
2006155461.tif 000008
【図７】
2006155461.tif 000009
【図８】
2006155461.tif 000010
【図９】
2006155461.tif 000011
【図１０】
2006155461.tif 000012
【図１１】
2006155461.tif 000013
【図１２】
2006155461.tif 000014
【図１３】
2006155461.tif 000015
【図１４】
2006155461.tif 000016