(57)【特許請求の範囲】
【請求項１】
複数のクラスタに分割されたデータ領域と，前記クラスタに対応してマッピングされる複数のテーブル領域を含むファイル・アロケーション・テーブル（ＦＡＴ）と，少なくともファイル名と先頭FATポインタと前記クラスタ数からなるファイルサイズとが記録されるファイル属性領域を含むディレクトリとを有するファイルシステムのファイル管理装置において，
データ記録時において，前記先頭FATポインタに先頭のFATのアドレスを，前記ファイルサイズ（クラスタ数）に初期値をそれぞれ設定して，前記ディレクトリに新規のファイル属性領域を作成し，処理中のFATに後段のFATアドレスを格納しながら当該FATに対応するクラスタにデータを書き込む動作を繰り返してデータ書き込みを行い，最後尾のFATに終了コードを，前記ディレクトリのファイル属性領域のファイルサイズに使用クラスタ数をそれぞれ書き込んで記録動作を終了するデータ記録モジュールと，
前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値以外である第１のファイルを検出し，当該検出された第１のファイルのFATチェーンの各FATに対応するマップ領域に当該第１のファイルのファイル番号を格納してFATマップを生成し，前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値である第２のファイルを検出し，当該ファイル属性領域の先頭FATポインタに対応するマップ領域から，前記FATチェーン上であって未使用クラスタコードが格納されているFATの手前までのFATに対応するマップ領域まで，順次，ファイル番号を前記FATマップに追加格納し，当該作成されたFATマップに従って，前記FATの修復を行うFAT修復モジュールとを有し，
前記FAT修復モジュールは，前記作成されたFATマップを参照して，第２のファイルのファイル番号が格納されたFATマップの最後尾に対応するFATに終了コードを格納し，
前記FAT修復モジュールは，前記FATのデータと，前記作成されたFATマップのデータとを比較して，前記FATマップにはファイル番号が格納されておらず，対応するFATには未使用クラスタコード以外のコードが格納されている時に，当該FATに未使用クラスタコードを格納することを特徴とするファイル管理装置。
【請求項２】
複数のクラスタに分割されたデータ領域と，前記クラスタに対応してマッピングされる複数のテーブル領域を含むファイル・アロケーション・テーブル（ＦＡＴ）と，少なくともファイル名と先頭FATポインタと前記クラスタ数からなるファイルサイズとが記録されるファイル属性領域を含むディレクトリとを有するファイルシステムのファイル管理装置において，
データ記録時において，前記先頭FATポインタに先頭のFATのアドレスを，前記ファイルサイズ（クラスタ数）に初期値をそれぞれ設定して，前記ディレクトリに新規のファイル属性領域を作成し，処理中のFATに後段のFATアドレスを格納しながら当該FATに対応するクラスタにデータを書き込む動作を繰り返してデータ書き込みを行い，最後尾のFATに終了コードを，前記ディレクトリのファイル属性領域のファイルサイズに使用クラスタ数をそれぞれ書き込んで記録動作を終了するデータ記録モジュールと，
前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値以外である第１のファイルを検出し，当該検出された第１のファイルのFATチェーンの各FATに対応するマップ領域に当該第１のファイルのファイル番号を格納してFATマップを生成し，前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値である第２のファイルを検出し，当該ファイル属性領域の先頭FATポインタに対応するマップ領域から，前記FATチェーン上であって他のファイル番号が格納されているFATの手前までのFATに対応するマップ領域まで，順次，ファイル番号を前記FATマップに追加格納し，当該作成されたFATマップに従って，前記FATの修復を行うFAT修復モジュールとを有し，
前記FAT修復モジュールは，前記作成されたFATマップを参照して，第２のファイルのファイル番号が格納されたFATマップの最後尾に対応するFATに終了コードを格納し，
前記FAT修復モジュールは，前記FATのデータと，前記作成されたFATマップのデータとを比較して，前記FATマップにはファイル番号が格納されておらず，対応するFATには未使用クラスタコード以外のコードが格納されている時に，当該FATに未使用クラスタコードを格納することを特徴とするファイル管理装置。
【請求項３】
複数のクラスタに分割されたデータ領域と，前記クラスタに対応してマッピングされる複数のテーブル領域を含むファイル・アロケーション・テーブル（ＦＡＴ）と，少なくともファイル名と先頭FATポインタと前記クラスタ数からなるファイルサイズとが記録されるファイル属性領域を含むディレクトリとを有するファイルシステムのファイル管理装置において，
データ記録時において，前記先頭FATポインタに先頭のFATのアドレスを，前記ファイルサイズ（クラスタ数）に初期値をそれぞれ設定して，前記ディレクトリに新規のファイル属性領域を作成し，処理中のFATに後段のFATアドレスを格納しながら当該FATに対応するクラスタにデータを書き込む動作を繰り返してデータ書き込みを行い，最後尾のFATに終了コードを，前記ディレクトリのファイル属性領域のファイルサイズに使用クラスタ数をそれぞれ書き込んで記録動作を終了するデータ記録モジュールと，
前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値以外である第１のファイルを検出し，当該検出された第１のファイルのFATチェーンの各FATに対応するマップ領域に当該第１のファイルのファイル番号を格納してFATマップを生成し，前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値である第２のファイルを検出し，当該ファイル属性領域の先頭FATポインタに対応するFATに未使用クラスタコードが格納されている場合は，前記FATマップの当該FATに対応するマップ領域に，ファイル番号を追加格納し，当該作成されたFATマップに従って，前記FATの修復を行うFAT修復モジュールとを有し，
前記FAT修復モジュールは，第２のファイルのファイル番号が格納されたFATマップに対応するFATを先頭FATポインタとするファイル属性領域を，初期化し，
前記FAT修復モジュールは，前記FATのデータと，前記FATマップのデータとを比較して，前記FATマップにはファイル番号が格納されておらず，対応するFATには未使用クラスタコード以外のコードが格納されている時に，当該FATに未使用クラスタコードを格納することを特徴とするファイル管理装置。
【請求項４】
請求項１乃至３のいずれかに記載のファイル管理装置と，前記データ領域と，前記FATと，前記ディレクトリとを有するファイル装置とを有するファイルシステム。
【請求項５】
請求項４において，前記ファイル装置は，ハードディスク装置であることを特徴とするファイルシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，ハードディスクなどの大容量の記録媒体を有するファイルシステムにおいて，データの記録中に発生した障害により生成された欠陥ファイルの修復を可能とするファイルシステムと，それに内蔵されるファイル管理装置に関する。
【０００２】
【従来の技術】
ハードディスクを内蔵するファイルシステムは，主にコンピュータの外部記録媒体として使用されてきた。このようなコンピュータシステムにおけるファイルシステムでは，データの記録と読み出しを高い信頼性で行う必要があり，データ記録中に電源切断などの障害が発生してもデータの記録動作を正常に終了させることが期待されている。そのため，ファイルシステムに，電源電圧の低下を監視し低下した時に電源を供給できる機能を設け，電源が突然切断されても短時間電源を供給してデータの記録を正常に終了させることができるようにしている。或いは，ファイルシステムが，ディスクのファイル管理に使用されるファイル・アロケーション・テーブル（ＦＡＴ）を重複して備えて，傷害発生時に２つのＦＡＴを比較して欠陥ファイルが検出できるようにしている。そのため，複数のＦＡＴに対してファイル管理処理を行う必要がある。
【０００３】
一方で，近年におけるハードディスクなどの大容量の記録媒体のコストダウンに伴い，映像や音声のデータを記録する大容量のハードディスクを内蔵したビデオレコーダが開発されている。映像や音声は，コンピュータにおけるデータと異なり大容量の記録媒体を必要とするが，ハードディスクのコストダウンに伴い，家庭内に設置されるビデオレコーダの記録媒体をビデオテープからハードディスクに置き換えることが行われ始めている。
【０００４】
かかるハードディスク内蔵型ビデオレコーダは，映像や音声などのデータをMPEG2方式などで符号化，圧縮して，記録媒体であるハードディスクに記録する。記録されたデータは，再生時にハードディスクから読み出され，デコーダにより元の映像，音声データに変換して出力される。ハードディスクは，ビデオテープと異なりランダムアクセスが可能であり，録音しながら再生を可能とし，将来の家庭用ビデオレコーダとして有望視されている。また，ビデオレコーダ以外にもブロードバンドの普及に伴い，映像や音声を記録するハードディスク内蔵の記録再生装置の普及が有望視されている。
【０００５】
【発明が解決しようとする課題】
かかるハードディスクレコーダなどのファイルシステムにおいても，データ記録中の電源切断などに伴い記録動作が正常に終了せずに欠陥ファイルが作成されることを防止する機能が必要である。しかし，従来のコンピュータシステムにおけるファイルシステムのような，電源監視装置とバッテリを備えたりＦＡＴを複数設けたりして障害に対応することは，コストアップにつながり好ましくない。映像や音声に対する記録・再生の信頼性は，コンピュータのデータに対する信頼性ほど高くする必要がない一方，コストダウンがより優先度の高い課題である。
【０００６】
そこで，本発明の目的は，コストアップを伴わずに，電源切断などの障害が発生したことによる欠陥ファイルの修復を可能としたファイルシステム及びそれに内蔵されるファイル管理装置を提供することにある。
【０００７】
【課題を解決するための手段】
上記の目的を達成するために，本発明の一つの側面は，複数のクラスタに分割されたデータ領域と，前記クラスタに対応してマッピングされる複数のテーブル領域を含むファイル・アロケーション・テーブル（ＦＡＴ）と，少なくともファイル名と先頭FATポインタと前記クラスタ数からなるファイルサイズとが記録されるファイル属性領域を含むディレクトリとを有するファイルシステムのファイル管理装置において，
データ記録時において，前記先頭FATポインタに先頭のFATのアドレスを，前記ファイルサイズ（クラスタ数）に初期値をそれぞれ設定して，前記ディレクトリに新規のファイル属性領域を作成し，処理中のFATに後段のFATアドレスを格納しながら当該FATに対応するクラスタにデータを書き込む動作を繰り返してデータ書き込みを行い，最後尾のFATに終了コードを，前記ディレクトリのファイル属性領域のファイルサイズに使用クラスタ数をそれぞれ書き込んで記録動作を終了するデータ記録モジュールと，
前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値以外である第１のファイルを検出し，当該検出された第１のファイルのFATチェーンの各FATに対応するマップ領域に当該第１のファイルのファイル番号を格納してFATマップを生成し，前記FATマップに，ファイルサイズが初期値である第２のファイルのファイル番号を追加格納し，当該作成されたFATマップに従って，前記FATの修復を行うFAT修復モジュールとを有する。
【０００８】
上記の発明では，データ記録モジュールが，データ記録動作において，データ記録開始時にディレクトリの新規ファイル属性領域にファイルサイズの初期値を書き込み，データ記録終了時にファイルサイズとしてクラスタ数を書き込むことを前提にする。その前提を利用して，FAT修復モジュールが，ファイル属性領域のファイルサイズをチェックして，正常に書き込みが終了している第１のファイルと第２のファイルとを区別する。そして，FAT修復モジュールは，第１のファイルのFATチェーンを手繰り寄せて各FATに対応するマップ領域に第１のファイルのファイル番号を格納し，その後，第２のファイルのFATチェーンを手繰り寄せて各FATに対するマップ領域に第２のファイルのファイル番号を格納する。それにより，少なくともデータ記録がされた可能性があるクラスタに対応するFATをFATマップ上に特定することができ，当該FATマップを利用して欠陥ファイルのFATの修復を行うことができる。各ファイル番号は，ディレクトリ領域の先頭から何番目のファイルのディレクトリかを定義するファイルＩＤである。従って，ファイル番号はファイル名とは異なる。
【０００９】
この発明では，データの記録と再生の信頼性がそれほど高いことを要求されないハードディスクレコーダで，ストリームデータの記録がクラスタ単位で行われることを考慮して，FAT修復モジュールという簡便なソフトウエアにより欠陥ファイルの修復を行う。
【００１０】
上記の目的を達成するための本発明の第２の側面は，第１の側面のデータ記録モジュール及びFAT修復モジュールとを有するファイル管理装置と，少なくとも前記データ領域を有するファイル装置とを有するファイルシステムである。
【００１１】
【発明の実施の形態】
以下，図面を参照して本発明の実施の形態例を説明する。しかしながら，本発明の保護範囲は，以下の実施の形態例に限定されるものではなく，特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【００１２】
図１は，本実施の形態におけるファイルシステムの全体構成図である。このファイルシステムは，例えばハードディスクレコーダとして機能し，電源装置１２と，ファイル管理装置１４と，ファイル装置であるディスク装置１６とを有する。ファイル管理装置１４は，映像や音声などの入力信号INをデジタル化し，そのデジタルデータをMPEG2方式などで符号化・圧縮するエンコーダ１８と，符号化・圧縮されたデータをディスク装置１６に書き込んだり，読み出したりを行うディスク管理部２０と，読み出したデータを，解凍・復号化するデコーダ２２とを有する。更に，ファイル管理装置１４は，ディスク管理部２０のディスク管理機能を制御するプログラムなどが格納されたメモリ２６と，そのプログラムを実行するＣＰＵ２４と，それらを接続するＣＰＵバス２８を有する。従って，ＣＰＵ２４からの書き込み命令や読み出し命令に応答して，ディスク管理部２０がストリームデータの書き込みや読み出しをディスク装置１６に対して行う。
【００１３】
メモリ２６には，ディスク装置１６へのデータ書き込みを制御するデータ記録モジュールプログラム，データの読み出しを制御するデータ読み出しモジュールプログラム，記録動作中の電源切断に伴う欠陥ファイルを修復するためのFAT修復モジュールプログラム等が格納される。
【００１４】
図２は，本実施の形態におけるファイル管理装置の詳細構成図である。図２のファイル管理装置１４は，図１にも示したエンコーダ１８，ディスク管理部２０，デコーダ２２，ＣＰＵ２４，プログラムメモリ２６，ＣＰＵバス２８を有する。
【００１５】
更に，ファイル管理装置１４は，エンコーダ１８の周りに，コンポジット信号であるアナログ映像入力信号VinをNTSC方式やPAL方式に従ってデコードしてデジタル信号に変換する映像デコーダ３０と，アナログ音声入力信号SLin，SRin（左右の音声信号）を入力して所定のサンプリングレートでデジタル信号に変換する音声アナログ・デジタル変換回路３２と，ビットクロックBCLKを入力して音声ADCにサンプリングクロックを供給するPLL回路３４と，圧縮処理時のデータを一時的に記録するメモリ３６と，エンコーダの制御プログラムを格納するプログラムメモリ３８と，エンコード時の一時的データ記録メモリ４０とを有する。
【００１６】
また，デコーダ２２に対して，解凍，復号化した映像信号を増幅してアナログ映像信号Voutを出力する映像増幅回路４４と，解凍，復号化したデジタル音声信号をアナログ音声信号SLout,SRoutに変換する音声デジタル・アナログ変換回路４８と，デコード時の一時的データ記録メモリ４２とを有する。
【００１７】
ＣＰＵバス２８には，ＣＰＵ２４とプログラムメモリ２６に加えて，ＣＰＵ用のワークメモリ５６と，記録開始時，終了時を記録するためのタイマー５８とを有する。また，ディスク管理部２０は，ハードディスクインターフェース（IDEインターフェース）やＣＰＵライト・リード用レジスタを内蔵し，バッファ５２を介してディスクの入出力ピン５４が接続されている。この入出力ピン５４にディスク装置１６が接続される。このディスク管理部２０は，例えば単独のASICで実現されるが，ＣＰＵバス２８に接続されているＣＰＵ２４とそのメモリ２６，５６らと一体に内蔵されたシステムＬＳＩで実現されることもできる。
【００１８】
上記のファイル管理装置１４では，入力映像信号Vinと入力音声信号SLin,SRinがそれぞれデジタル信号に変換され，エンコーダ１８で符号化，圧縮され，デジタルデータストリームがディスク管理部２０のデータバッファ５０に供給される。そして，そのストリームデータが，ディスク管理部２０の制御によって，ハードディスク装置１６に書き込まれる。ストリームデータの記録動作は，プログラムメモリ２６のデータ記録モジュールにより制御され，新規ファイルとしてディスク装置１６内に記録される。具体的な記録動作は後述する。
【００１９】
図３は，ディスク装置の記録領域の構成図である。システム管理領域６０は，データ領域のクラスタサイズや作成されたファイル数などの基本パラメータが格納され，数１０バイト程度で構成される。ファイル・アロケーション・テーブル（FAT）領域６２は，データ領域６６内のクラスタに物理的に１対１に対応してマッピングされた複数のテーブル領域であり，FATサイズが４バイトとすると，そのクラスタ数倍の容量を有する。ディレクトリ領域６４は，ファイル毎に属性が格納されるファイル属性領域を有し，このファイル属性には，ファイル名，ファイルサイズ，先頭FATポインタなどが含まれる。各ファイル属性領域には，ディレクトリ領域６４の先頭から何番目のファイルかを示すファイル番号（又はファイルＩＤ）が割り当てられる。このファイル番号は全ファイル数を最大値とする桁数を有する。そして，データ領域６６は，複数のクラスタに分割され，それらにストリームデータが格納される。１つのファイルは，通常複数のクラスタチェーンで構成され，どのクラスタがファイルに属しているかを示すクラスタのアロケーション情報が，FATに格納される。
【００２０】
図４は，ディレクトリ，FAT及びデータ領域の関係を示す図である。ディレクトリ領域６４内にファイル毎に生成されるファイル属性領域には，ファイル名，記録開始時間，記録終了時間，ファイルサイズ（使用クラスタ数），削除禁止の有無，ファイル形式などのシステム属性１，２，先頭FATポインタ，記録，再生に必要な各種パラメータなどの属性データが格納される。記録，再生に必要なパラメータは，例えば多重化方式（MPEG1，MPEG2TS，MPEG2PSのいずれか），ビットレート（kbps)，エンコードモード（コンスタントビットレートかバリアブルビットレートか），エンコード対象ビデオ方式（NTSC，PALなど），解像度変換フィルタ（D1，HD1，SIF，QSIF，2/3D1，3/4D1など），システムビットレート係数（バリアブルビットレートの最大変動レンジを示す係数），音声サンプリング周波数などであり，通常新規ファイル作成時に，デフォルト値が格納される。図中に各領域の容量値の一例が示される。
【００２１】
ファイル名は，図示されるとおり３２バイトの容量を有し，新規ファイル作成時に，前述のファイル番号（２バイト）を文字列に変換した，例えば文字列「ＤＶＲ−００００」に対応するコード（８バイト）と，残り２４バイトのNULLコードとが格納される。また，新規ファイル作成後は，ファイル名はユーザにより変更可能である。但し，ファイル番号（ファイルＩＤ）はユーザにより変更されることはない。
【００２２】
FAT領域６２には，データ領域の複数のクラスタに物理的に１対１に対応付けられた複数のFATが設けられる。図４の例では，データ領域６６には，クラスタが０〜Ｋ〜Ｌと設けられ，それらに物理的に１対１に対応付けられたＬ＋１個のFATが設けられている。そして，ディレクトリ領域６４内に生成されるファイル属性領域の先頭FATポインタには，ファイルを構成する複数のクラスタ（クラスタチェーン）の先頭クラスタに対するFATのアドレス（図４ではＫ）が格納される。この先頭FATポインタを参照することで，ファイルを構成する複数のクラスタの先頭クラスタを判別することができる。また，FATには，ファイルを構成する複数のクラスタ（クラスタチェーン）に対応するFATチェーンにおける，後段のFATのアドレスが格納される。つまり，後段のFATを示すFATポインタが，FATに格納される。従って，FAT内のアドレス（FATポインタ）を参照することで，それに続く後段のクラスタを判別することができる。
【００２３】
図５は，記録動作のフローチャート図であり，図６は，その中の新規ファイル作成サブルーチンのフローチャート図，図７は，ファイルクローズサブルーチンのフローチャート図である。従って，これらのフローチャートは，図２のプログラムメモリ２６内に格納されたデータ記録モジュールプログラムの処理フローを示す。また，図８は，記録動作の処理を説明するための図である。以下，フローチャートに従って，データ記録動作を説明する。
【００２４】
ファイルシステムがフォーマットされた初期状態では，FAT領域内の各FATには，クラスタの未使用状態（空き）をユニークに示す未使用クラスタコード，例えば「0xFFFFFFFF」（１６進法による４バイトの最上位値）が格納されている。そして，クラスタが使用状態になると，次段のクラスタに対応するFATアドレスか，FAT終了コードが格納される。FAT終了コードは，例えば「0xFFFFFFFE」などの通常起こり得ないコードが選ばれる。
【００２５】
また，初期化状態では，ディレクトリ領域も初期値として例えば「0xFFFFFFFFF」が格納される。
【００２６】
さて，データ記録動作が始まると，最初に新規ファイルが作成される（S10）。図６の新規ファイル作成サブルーチンにより，システム管理領域６０内のトータルファイル数がインクリメント（＋１）され（S12），ディレクトリ領域６４内に新規のファイル属性領域が作成される（S14）。新規ファイル属性領域の作成は，ディレクトリ領域６４を検索して，空いている領域に新規のファイル属性領域が割り当てられる。前述のとおり，このファイル属性領域には，ファイル番号がユニークに割り当てられる。
【００２７】
割り当てられた新規のファイル属性領域には，図４で示した属性データが格納される（S16）。具体的には，デフォルトのファイル名（例えば，ファイル番号を変換した文字列）が格納され，タイマー５８が示す時刻が記録開始時間として格納され，ファイルサイズに初期値として使用クラスタ数＝０が格納される。更に，FAT領域内を検索して，いずれのファイルにも割り当てられていない空きFATを検出し，そのアドレスを，先頭FATポインタに格納する。その結果，図４に示したとおり，新規ファイルの先頭クラスタが，FATポインタに格納されたFATアドレスで特定される。また，ファイル属性領域の記録パラメータには，デフォルト値若しくは指定された値が格納される（S18）。以上で新規ファイル属性領域の作成ルーチンを終了する。
【００２８】
本実施の形態のファイルシステムでは，ディレクトリ領域に設けられる各ファイルに対応するファイル属性領域に，２バイトのファイル番号（ファイルＩＤ）が割り当てられ，ファイル名とは区別される。このファイル番号は，ディレクトリ領域の何番目のファイル属性領域であるかを示すバイナリデータであるので，ファイルを区別するための内部処理において，処理の簡易化及び高速化を図ることができる。
【００２９】
例えば，番組を録音しながら再生するタイムシフト再生では，再生側が記録側を追い越してはいけないというルールが守られる必要があるが，その場合に，録音中と同じファイルを再生しているのか，録音中と異なるファイルを再生しているのかを判断する必要がある。その場合に，このファイル番号を比較することで，高速にその判断処理を行うことができる。また，後述するFATマップに格納されるファイル識別情報も，このファイル番号（ファイルＩＤ）が利用される。
【００３０】
ディレクトリのファイル属性領域のファイル名を利用すると，ファイル名が３２バイトと大容量であり，区別に必要な処理が遅くなり好ましくない。
【００３１】
図５に戻り，工程S20〜S24が全てのストリームデータの記録が終了するまで繰り返される。最初は，先頭FATポインタに格納されているアドレスのFATに対して，FATを検索して空きFATを検出し（S20），その空きFATのアドレスを，先頭のFAT内にFATポインタとして格納する（S22）。これにより，先頭FATと２番目のFATからなるFATチェーンが生成される。そして，先頭FATに対応するクラスタ内に，ストリームデータを書き込む（S24）。クラスタの容量は，例えば５１２バイトであり，この程度の容量は，0.5秒程度の映像，音声データに対応する。ストリームデータの書き込み動作は，図２において，エンコーダ１８，ディスク管理部２０，メモリ５０，ディスク管理部２０，ディスク装置１６の流れで行われ，ストリームデータがFATで指定されたクラスタに格納される。
【００３２】
先頭FATに対する処理S20〜S24が終了すると，２番目のFATに対しても，同様の処理S20〜S24が行われる。２番目のFATの処理においては，工程S20にて，その後段の３番目のクラスタに対応するFATのアドレスが２番目のFATにFATポインタとして格納される。上記処理S20〜S24は，全てのストリームデータの書き込みが終了するまで繰り返される（S25）。このように，現在のFATにFATポインタとして次のFATアドレスが格納され，シーケンシャルなFATチェーンが順次生成される。
【００３３】
図８に示される例では，先頭FATのアドレスが「１２」，２番目のFATアドレスが「４５」，３番目のFATアドレスが「１０２」，４番目が「１５０」，５番目が「１９２」となっていて，それぞれのアドレスが前段のFATにFATポインタとして格納される。この例では，FATチェーンがとびとびのアドレスで形成されているが，通常は，シーケンシャルなアドレスで形成される場合が多い。
【００３４】
全てのストリームデータの書き込みが終了すると（S25），ファイルクローズ処理（S26）が実行される。ファイルクローズ処理は，図７に示されるとおり，最後尾のFATに，FAT終了コードNLを書き込む（S28）とともに，ディレクトリ領域のファイル属性領域のファイルサイズに，使用したクラスタ数を格納する（S30）。データストリームを書き込んだ時点では，最後尾のFATには，次段のFATアドレスが格納されている。従って，ファイルクローズ処理では，その次段FATアドレスが，終了コードNLに置き換えられる。また，ストリームデータを書き込んだ時点では，ファイル属性領域のファイルサイズには，クラスタ数＝０が格納されているが，ファイルクローズ処理では，そのファイルサイズが，使用したクラスタ数に置き換えられる。
【００３５】
このように，記録動作が開始すると，最初にディレクトリのファイル属性領域にファイルサイズ＝０が格納され，先頭FATポインタに先頭のFATアドレスが格納される。そして，正常に記録動作が終了すると，最後尾のFATにFAT終了コードが格納され，ファイルサイズに使用クラスタ数が格納される。本実施の形態では，後述するとおり，この記録制御を考慮して欠陥ファイルの検出を行う。
【００３６】
次に，本実施の形態の欠陥ファイル修復動作について説明する。前述のデータ記録動作によれば，データ記録中に電源切断などが発生して記録動作が正常に終了しなかった場合，（１）最終クラスタに対応するFATのFATポインタを終了コードにする処理と，（２）ファイルサイズを使用クラスタ数にする処理とが未完のままになっている。従って，不良ファイルは，（１）最終クラスタに対応するFATのFATポインタが終了コードになっていない，（２）ファイルサイズが初期値（＝０）のままになっているによって，検出することが可能になる。本実施の形態では，この状態を考慮して，欠陥ファイルの修復を実現する。
【００３７】
図９は，欠陥ファイル修復動作のフローチャート図である。また，図１０は，欠陥ファイルの修復動作を説明するための実施例を示す図である。図１０（Ａ）は修復動作前のFAT状態を，図１０（Ｂ）は修復動作後のFAT状態を示し，図１０（Ｃ）（Ｄ）は，それぞれ修復動作中に作成されるFATマップを示す。図１０の各表は，縦軸が１６進法で表示された４桁のアドレスを示し，横軸が縦軸の最下位ビットを00〜0Fで示している。また，FAT状態（Ａ）（Ｂ）には，FATポインタが書き込まれ，空欄は初期値の未使用クラスタコードが格納されているものとする。また，FATマップ（Ｃ）（Ｄ）には，ファイル番号が書き込まれている。
【００３８】
修復動作を説明にあたり，以下のファイルが作成されていたとする。
【００３９】
ファイル１：先頭FAT＝00，ファイルサイズ＝4
ファイル２：先頭FAT＝04，ファイルサイズ＝9
ファイル３：先頭FAT＝15，ファイルサイズ＝14
ファイル４：先頭FAT＝09，ファイルサイズ＝0（実質サイズ＝4）
ファイル５：先頭FAT＝12，ファイルサイズ＝0（実質サイズ＝3）
ファイル６：先頭FAT＝0D，ファイルサイズ＝0（実質サイズ＝0）
上記の先頭FATポインタとファイルサイズは，ディレクトリ領域内のファイル属性領域に書き込まれている。また，実質ファイルサイズは，FAT状態を参照することにより検出することが可能であるが，ディレクトリ領域を参照しても検出できない。
【００４０】
上記の例では，ファイル１，２，３は，ファイルサイズが初期値＝０以外になっているので，正常ファイルである。また，ファイル４，５，６は，ファイルサイズが初期値＝０のままであるので，欠陥ファイルである。
【００４１】
図１０（Ａ）に示された修復前のFAT状態によれば，（Ａ）の図表の横に記述したとおり，ファイル１は，先頭FATアドレスが「00」で，FATチェーン00−01−02−03となっている。また，ファイル２は，先頭FATアドレスが「04」で，FATチェーン04−05−06−07−08−1A−1B−1C−1Dとなっている。更に，ファイル３は，先頭FATアドレスが「15」であり，FATチェーン15−16−17−18−19−1E−1F−20−21−22−23−24−25−26となっている。これらは，いずれも正常ファイルであり，最後尾のFAT「03」「1D」「26」のFATポインタは終了コードNLになっている。
【００４２】
更に，ファイル４は，先頭FATアドレスが「09」であり，FATチェーン09−0A−0B−0Cであり，最後尾思われるFAT「0D」のFATポインタ値は未使用クラスタコード（空欄）となっている。従って，FAT「0C」に対応するクラスタにデータストリームを記録している時に，電源切断などにより記録動作が中断したと推測される。従って，実質的な最終FATは「0D」の一つ手前の「0C」である。
【００４３】
ファイル５は，先頭FATアドレスが「12」で，FATチェーン12−13−14であり，最後尾のFAT「14」のFATポインタは「15」となっているが，FAT「15」は，ファイル３の先頭FATと重なっている。従って，ファイル５も，FAT「14」に対応するクラスタにデータを記録している時に電源切断んで中断したものと推測できる。従って，実質的な最終FATは「15」の一つ手前の「14」である。
【００４４】
また，ファイル６は，先頭FATアドレスが「0D」ではあるが，そのFAT「0D」にはFATポインタとして未使用クラスタコード（空欄）が格納されている。従って，ファイル６の場合は，ディレクトリ領域に新規ファイル属性領域を作成したが，未だFATにもクラスタにもFATポインタやデータの書き込みを行う前に電源が切断したものと推測される。
【００４５】
以上の修復前のFAT状態に対して，欠陥ファイル修復動作が行われる場合について説明する。図９に示されるFAT修復モジュールにより，ディレクトリ領域を検索して欠陥ファイルの検出が行われる（S40）。ここでは，ファイル領域のファイルサイズが初期値の「０」のままになっているものがあるか否かにより検出される。欠陥ファイルが存在する場合は（S42），工程S44，S46，S48が実行される。
【００４６】
工程S44では，ディレクトリ領域のファイル領域において，ファイルサイズが初期値「０」以外になっている正常ファイルを検出し，それに関してFATマップを作成する。FATマップは，各FATがどのファイルに対応しているかを示すものであり，欠陥ファイル修復のために一時的に利用されるテーブルである。従って，このFATマップは，例えば，ＣＰＵのワークメモリ５６や，ディスク装置内のテンポラリ領域に作成される。ファイルシステムの最大ファイル数の上限が，２バイト（２16）で表現できる最大値の65535個とすると，FATマップのそれぞれの領域は２バイトの容量であり，FATマップは，そのクラスタ数倍の容量を有する。また，FATマップは，最初に未使用コード，例えば「0xFFFF」で初期化される。
【００４７】
ファイルサイズが初期値「０」以外である正常ファイル１を検出し，その先頭FATポインタとFAT状態から，使用クラスタのFATアドレスを検出し，FATマップ内の対応するアドレス領域にファイル番号「01」を順次格納する。その結果，図１０（Ｃ）のFATマップには，アドレス00−02−03にファイル番号「01」が格納される。正常ファイル２，３についても，同様の処理が行われ，図１０（Ｃ）のFATマップには，ファイル番号「02」「03」がそれぞれ格納される。これらの処理は，いずれも先頭FATポインタとファイルサイズ，終了クラスタコードから使用クラスタを検出することで，簡単に行うことができる。これにより，FATマップには，正常ファイルの使用中クラスタがマッピングされたことになる。
【００４８】
次に，工程S46では，ファイルサイズが初期値の「０」のままになっている欠陥ファイルについて，FATマップにそのファイル番号を追加する。その結果，図１０（Ｄ）に示したFATマップが生成される。この処理でも，工程S44と同様に，先頭FATポインタとFATのFATポインタを参照して，FATマップの対応するアドレスにファイル番号を埋め込んでいく。但し，欠陥ファイルの場合は，ファイルサイズ＝０となったままであり，最終FATのFATポインタに終了クラスタコードNLが書き込まれていないので，次の条件を検出するまでを１つのファイルとする。
【００４９】
条件１：FATポインタが未使用クラスタコードになっている。（ファイル４の場合）
条件２：FATマップ上のコードが未使用コードでなく，既に存在するファイル番号コードである。（ファイル５の場合）
条件３：先頭FATポインタが示すFATのFATポインタが未使用クラスタコードである。（ファイル６の場合）
そして，ワークメモリ領域内にファイルサイズをカウントするクラスタカウンタを設定し，欠陥ファイルについてFATマップにファイル番号を格納するたびに，そのクラスタカウンタをインクリメント（＋１）し，ファイルサイズのカウントも同時に行う。
【００５０】
ファイル４の場合は，先頭FATポインタの「09」から条件１が満たされるまでの一連のアドレス09−0A−0B−0Cが，使用クラスタであると検出され，FATマップ内の上記アドレス内に，ファイル番号「04」を格納する。その時のクラスタカウンタは４になっている。また，ファイル５の場合は，先頭FATポインタの「12」から条件２が満たされるまでの一連のアドレス12−13−14が，使用クラスタと検出され，FATマップのそのアドレス内にファイル番号「05」が格納される。FATマップのアドレス「15」には，既に正常ファイルの番号「03」が格納されているので，ファイル５の使用クラスタは，アドレス「14」までと判定される。この場合のクラスタカウンタは３になっている。
【００５１】
上記のファイル４，５の場合は，使用クラスタが検出されているので，図１０（Ｂ）に示されるとおり，FATの最終FAT「0C」と「14」に終了コードNLを書き込み，ディレクトリ領域のファイル属性領域に，ファイルサイズをそれぞれ検出された使用クラスタ数に書き換える。最終FATのアドレスは，FATとFATマップを参照することにより判別可能である。
【００５２】
ファイル６の場合は，先頭FATポインタの「0D」が条件（３）に該当するので，FATマップのアドレス「0D」にファイル番号「06」が格納されるだけである。しかし，ファイル６の場合は，FATマップのアドレス「0D」の領域にファイル番号「06」が格納されているが，FATのアドレス「0D」の領域には未使用クラスタコードが格納されている。従って，アドレス「0D」に対応するクラスタは未使用状態であり，ファイル６は何らデータがクラスタに書き込まれていないと判断される。その結果，ファイル６に対しては，ストリームデータが記録されていないので，通常のファイル削除処理が行われる。
【００５３】
通常のファイル削除処理は，対応するディレクトリ領域とFAT領域を初期化する処理である。ファイル６の場合は，ディレクトリ領域の対応ファイル属性領域には，初期値が格納される。また，FAT領域には何らFATポインタが格納されていないので，FAT領域には何も処理は行われない。通常のファイル削除処理では，先頭FATポインタのFATからファイルサイズ分のFATに初期値を格納する処理が行われる。ファイル６の場合は，ファイルサイズ＝０のままであるので，FATへの初期化処理は行われない。その結果，図１０（Ｂ）のFATのアドレス「0D」は不使用クラスタコード（初期値）のままである。
【００５４】
次に，工程S48では，使用中のクラスタを示すクラスタチェーンに該当しないクラスタを，使用中クラスタから不使用クラスタに切り換える処理が行われる。具体的には，図１０（Ｄ）のFATマップと図１０（Ｂ）のFATとを，全アドレスについて比較し，矛盾がないか否かを確認する。例えば，矛盾がある状態とは，FATマップは空欄（初期値）のままであるが，FATには未使用クラスタコード以外のコードになっている場合や，それとは逆の，FATマップには初期値以外のコードになっているが，FATには未使用クラスタコードになっている場合である。
【００５５】
上記前者の場合は，ディレクトリ領域のファイル属性領域からチェックした結果，クラスタは未使用と判明しているが，FATには未使用クラスタコード以外のコードが格納されている場合である。このクラスタは，新規ファイル作成時に空きクラスタとして検出されないので，その後データを記録することができない。従って，クラスタ整理のために，該当FATに未使用クラスタコードを書き込んで，その後のクラスタ使用を可能にする。また，上記後者の場合は，通常ありえない状態であり，通常のファイル削除処理により，ディレクトリ領域のみが初期化される。
【００５６】
以上の修復動作により，欠陥ファイルのうちクラスタにデータが記録された形跡があるファイルについては，そのクラスタの範囲で正常ファイルに修復される。また，欠陥ファイルのうちクラスタにデータが記録された形跡がないファイルについては，削除される。従って，記録したデータの大部分が削除されることなく，正常ファイルとしてリカバリされることになる。
【００５７】
上記の実施例では，FATマップを正常ファイルから先に作成し，その後欠陥ファイルについて作成することにより，正常ファイルのクラスタが，欠陥ファイルについて誤って特定されている可能性のあるクラスタ（例えばファイル４，５の最終FATのクラスタ）に置き換えられることが防止される。また，データ記録動作で，最初にファイルサイズが初期値（＝０）に設定されることを利用して，ディレクトリのファイル領域のファイルサイズを参照するだけで，欠陥ファイルを検出することができる。
【００５８】
また，上記実施例では，ファイル管理装置１４が，複数の半導体デバイスからなるシステムボードの形態で実現されているが，ファイル管理部２０とＣＰＵ，プログラムメモリ２６，ＲＡＭ５６，タイマー５８を一体化したシステムＬＳＩで実現することも可能である。
【００５９】
上記の欠陥ファイル修復処理は，ユーザによって能動的に指示された時に行われることもあれば，タイマーにより定期的に指示された時に行われても良い。つまり，修復が必要な時に，プログラムメモリ２６内のFAT修復モジュールが実行される。
【００６０】
以上，実施の形態例をまとめると以下の付記の通りである。
【００６１】
（付記１）複数のクラスタに分割されたデータ領域と，前記クラスタに対応してマッピングされる複数のテーブル領域を含むファイル・アロケーション・テーブル（ＦＡＴ）と，少なくともファイル名と先頭FATポインタとが記録されるファイル属性領域を含むディレクトリとを有するファイルシステムのファイル管理装置において，
データ記録時において，処理中のFATに後段のFATアドレスを格納してFATチェーンを作成しながら当該FATに対応するクラスタにデータを書き込む動作を繰り返してデータ書き込みを行うデータ記録モジュールと，
前記ディレクトリのファイル属性領域の先頭FATポインタと前記FATチェーンにしたがって，各ファイルのFATチェーンの各FATに対応するマップ領域にファイル番号を格納してFATマップを生成し，当該作成されたFATマップに従って，前記FATの修復を行うFAT修復モジュールと
を有することを特徴とするファイル管理装置。
【００６２】
（付記２）複数のクラスタに分割されたデータ領域と，前記クラスタに対応してマッピングされる複数のテーブル領域を含むファイル・アロケーション・テーブル（ＦＡＴ）と，少なくともファイル名と先頭FATポインタと前記クラスタ数からなるファイルサイズとが記録されるファイル属性領域を含むディレクトリとを有するファイルシステムのファイル管理装置において，
データ記録時において，前記先頭FATポインタに先頭のFATのアドレスを，前記ファイルサイズ（クラスタ数）に初期値をそれぞれ設定して，前記ディレクトリに新規のファイル属性領域を作成し，処理中のFATに後段のFATアドレスを格納しながら当該FATに対応するクラスタにデータを書き込む動作を繰り返してデータ書き込みを行い，最後尾のFATに終了コードを，前記ディレクトリのファイル属性領域のファイルサイズに使用クラスタ数をそれぞれ書き込んで記録動作を終了するデータ記録モジュールと，
前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値以外である第１のファイルを検出し，当該検出された第１のファイルのFATチェーンの各FATに対応するマップ領域に当該第１のファイルのファイル番号を格納してFATマップを生成し，前記FATマップに，ファイルサイズが初期値である第２のファイルのファイル番号を追加格納し，当該作成されたFATマップに従って，前記FATの修復を行うFAT修復モジュールと
を有することを特徴とするファイル管理装置。
【００６３】
（付記３）付記２において，
前記FAT修復モジュールは，前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値である第２のファイルを検出し，当該ファイル属性領域の先頭FATポインタに対応するマップ領域から，前記FATチェーン上であって未使用クラスタコードが格納されているFATの手前までのFATに対応するマップ領域まで，順次，ファイル番号を格納することを特徴とするファイル管理装置。
【００６４】
（付記４）付記２において，
前記FAT修復モジュールは，前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値である第２のファイルを検出し，当該ファイル属性領域の先頭FATポインタに対応するマップ領域から，前記FATチェーン上であって他のファイル番号が格納されているFATの手前までのFATに対応するマップ領域まで，順次，ファイル番号を格納することを特徴とするファイル管理装置。
【００６５】
（付記５）付記１において，
前記FAT修復モジュールは，前記ディレクトリのファイル属性領域を検索しファイルサイズが初期値である第２のファイルを検出し，当該ファイル属性領域の先頭FATポインタに対応するFATに未使用クラスタコードが格納されている場合は，当該FATに対応するマップ領域に，ファイル番号を格納することを特徴とするファイル管理装置。
【００６６】
（付記６）付記３または４のいずれかにおいて，
前記FAT修復モジュールは，前記作成されたFATマップを参照して，第２のファイルのファイル番号が格納されたFATマップの最後尾に対応するFATに終了コードを格納することを特徴とするファイル管理装置。
【００６７】
（付記７）付記６において，
前記FAT修復モジュールは，前記FATのデータと，前記作成されたFATマップのデータとを比較して，前記FATマップにはファイル番号が格納されておらず，対応するFATには未使用クラスタコード以外のコードが格納されている時に，当該FATに未使用クラスタコードを格納することを特徴とするファイル管理装置。
【００６８】
（付記８）付記５において，
前記FAT修復モジュールは，第２のファイルのファイル番号が格納されたFATマップに対応するFATを先頭FATポインタとするファイル属性領域を，初期化することを特徴とするファイル管理装置。
【００６９】
（付記９）付記８において，
前記FAT修復モジュールは，前記FATのデータと，前記FATマップのデータとを比較して，前記FATマップにはファイル番号が格納されておらず，対応するFATには未使用クラスタコード以外のコードが格納されている時に，当該FATに未使用クラスタコードを格納することを特徴とするファイル管理装置。
【００７０】
（付記１０）付記２において，
前記FATは，初期化された時，各FATに未使用クラスタコードが格納されることを特徴とするファイル管理装置。
【００７１】
（付記１１）付記２において，
更に，入力映像信号及び／又は入力音声信号を符号化するエンコーダと，前記符号化されたデータを復号化するデコーダとを有し，
前記エンコーダにより符号化されたデータが前記クラスタに順次格納され，前記クラスタから読み出された符号化されたデータが，前記デコーダにより復号化されることを特徴とするファイル管理装置。
【００７２】
（付記１２）付記１乃至５のいずれかに記載のファイル管理装置と，
前記データ領域と，前記FATと，前記ディレクトリとを有するファイル装置とを有するファイルシステム。
【００７３】
（付記１３）付記１２において，
前記ファイル装置は，ハードディスク装置であることを特徴とするファイルシステム。
【００７４】
（付記１４）付記１２において，
前記データ領域に記録されるデータは，映像信号及び／又は音声信号を符号化したストリームデータであることを特徴とするファイルシステム。
【００７５】
【発明の効果】
以上，本発明によれば，電源監視手段やバッテリを設けることなく，またFATを重複して作成することなく，欠陥ファイルの修復を行うことができる。
【図面の簡単な説明】
【図１】本実施の形態におけるファイルシステムの全体構成図である。
【図２】本実施の形態におけるファイル管理装置の詳細構成図である。
【図３】ディスク装置の記録領域の構成図である。
【図４】ディレクトリ，FAT及びデータ領域の関係を示す図である。
【図５】記録動作のフローチャート図である。
【図６】新規ファイル作成サブルーチンのフローチャート図である。
【図７】ファイルクローズサブルーチンのフローチャート図である。
【図８】記録動作の処理を説明するための図である。
【図９】本実施の形態における欠陥ファイル修復動作のフローチャート図である。
【図１０】欠陥ファイルの修復動作を説明するための実施例を示す図である。
【符号の説明】
１０      ファイルシステム
１４      ファイル管理装置
１６      ファイル装置，ディスク装置
１８      エンコーダ
２０      ディスク管理部
２２      デコーダ
２６      プログラムメモリ（データ記録モジュール，FAT修復モジュールが格納されている）
６２      ファイル・アロケーション・テーブル（FAT）領域
６４      ディレクトリ領域
６６      データ領域
【図１】
0004157294.tif 000002
【図２】
0004157294.tif 000003
【図３】
0004157294.tif 000004
【図４】
0004157294.tif 000005
【図５】
0004157294.tif 000006
【図６】
0004157294.tif 000007
【図７】
0004157294.tif 000008
【図８】
0004157294.tif 000009
【図９】
0004157294.tif 000010
【図１０】
0004157294.tif 000011