(57)【要約】【課題】ディスクに書き込まれているファイルの保全性を向上させることのできるファイルシステム、ファイル操作機構、ファイル操作方法を提供する。【解決手段】１以上の定数の連続するセクタ２のまとまりをブロック３として、ディスクの全記録領域１をブロックの単位で論理的に分割しておく。個々のブロックはヘッダー部４とデータ部５とで構成する。ヘッダー部４はファイル名と、連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭のセクタのＬＢＡと、連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭のセクタのＬＢＡと、先頭からのブロック番号などの情報を含む。また、ファイル名と、そのファイルの先頭のデータが書き込まれているブロックの先頭のセクタのＬＢＡを列記したファイル管理テーブルを用意する。ファイル操作は、各ブロックのヘッダー部の情報とファイル管理テーブルとに基づいて行う。【選択図】  図１
2004220355.tif 000002
【特許請求の範囲】
【請求項１】
記録領域がセクタの単位で分割されるとともに１以上の所定数の連続する前記セクタのまとまりをブロックとして記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成された記録媒体と、
前記所定のパラメータの１つである前記ファイルのファイル名と、当該ファイルの先頭からのデータが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号とを管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて前記記録媒体に対するファイルの操作を実行するファイル操作手段と
を具備することを特徴とするファイルシステム。
【請求項２】
請求項１に記載のファイルシステムであって、
前記ヘッダー部には、
前記ファイル名と、
連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭の前記セクタの番号である次ブロック先頭番号と、
連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭の前記セクタの番号である前ブロック先頭番号と、
連続する同じファイル名のファイルデータが書き込まれているブロック群における先頭からの通し番号であるブロック番号と
が少なくとも前記所定のパラメータとして記憶されていることを特徴とするファイルシステム。
【請求項３】
請求項２に記載のファイルシステムであって、
前記ファイル操作手段は、ファイルの書き込み時、前記ファイル管理テーブルに当該ファイルの名前と前記スタートブロック先頭番号とを書き込み、前記ファイルのデータを書き込もうとしている前記各ブロックの前記ヘッダー部と前記データ部への書き込みを行うことを特徴とするファイルシステム。
【請求項４】
請求項２に記載のファイルシステムであって、
前記ファイル操作手段は、前記ファイルの読み込み時、前記ファイル管理テーブルから当該ファイルのファイル名に対応する前記スタートブロック先頭番号を読み出し、このスタートブロック先頭番号に基づいて該当するブロックの前記ヘッダー部と前記データ部を読み込み、前記読み込んだヘッダー部に含まれる前記次ブロック先頭番号に基づいて次のブロックの前記ヘッダー部と前記データ部を読み込み、前記ファイル名に対応する全てのファイルデータの読み込みが終了するまで、前記次ブロック先頭番号に基づく次のブロックの前記ヘッダー部と前記データ部の読み込みを繰り返すことを特徴とするファイルシステム。
【請求項５】
請求項２に記載のファイルシステムであって、
前記ファイル操作手段は、前記ファイルの消去時、前記ファイル管理テーブルから当該ファイルのファイル名に対応する前記スタートブロック先頭番号を読み出すとともに、前記ファイル管理テーブル内の前記ファイル名を消去し、前記読み出したスタートブロック先頭番号に基づいて該当するブロックの前記ヘッダー部を読み込むとともに当該ヘッダー部内のファイル名を消去し、当該ヘッダー部に含まれる前記次ブロック先頭番号を読み出し、当該ファイル名に対応する全てのファイルデータの消去が終了するまで、前記次ブロック先頭番号に基づく前記ヘッダー部の読み込みと当該ヘッダー部内の前記ファイル名の消去を繰り返すことを特徴とするファイルシステム。
【請求項６】
請求項２に記載のファイルシステムであって、
同一の前記ファイル管理テーブルが前記記録媒体の記録領域にそれぞれ優先順位が与えられて多重に記録され、前記ファイル操作手段は、優先順位の高い前記ファイル管理テーブルから順に読み込みを試み、一部の前記ファイル管理テーブルが破損していた場合、他の前記ファイル管理テーブルで前記一部のファイル管理テーブルを修復することを特徴とするファイルシステム。
【請求項７】
請求項１に記載のファイルシステムであって、
前記ファイル操作手段は、前記ブロックの前記ヘッダー部の情報に基づいて前記ファイル管理テーブルを再構築することを特徴とするファイルシステム。
【請求項８】
請求項２に記載のファイルシステムであって、
前記ファイル操作手段は、前記ブロックの前記ヘッダー部の情報に基づいて、読み込み不可のブロックの次のブロックの先頭の前記セクタの番号を求めることを特徴とするファイルシステム。
【請求項９】
請求項２に記載のファイルシステムであって、
前記ファイル操作手段は、全ての前記ブロックの前記ヘッダー部を読み込み、読み込んだ前記ヘッダー部から読み込み対象である前記ファイル名をもつ読み込み可能なブロックを全て検索し、この検索した各ブロックの前記ヘッダー部に含まれている前記ブロック番号と前記ブロック先頭番号を抽出し、これら読み込み可能なブロックの前記次ブロック先頭番号と前記前ブロック先頭番号の値を、前記読み込み可能な各ブロックが連続するように修正することを特徴とするファイルシステム。
【請求項１０】
記録領域がセクタの単位で分割された記録媒体に対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うファイル操作機構であって、
１以上の所定数の連続する前記セクタのまとまりをブロックとして前記記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成され、
前記所定のパラメータの１つである前記ファイルのファイル名と、当該ファイルの先頭データが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号とを管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて前記記録媒体に対するファイルの操作を実行するファイル操作手段を具備することを特徴とするファイル操作機構。
【請求項１１】
記録領域がセクタの単位で分割された記録媒体に対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うファイル操作方法であって、
１以上の所定数の連続する前記セクタのまとまりをブロックとして前記記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成され、
前記記録媒体に書き込まれているファイルのファイル名と、前記ファイルの先頭データが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号との対応を管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、
このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて、前記記録媒体に対するファイルの操作を行うことを特徴とするファイル操作方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばハードディスクドライブなどに対するファイルシステム、ファイル操作機構、ファイル操作方法に関する。
【０００２】
【従来の技術】
ハードディスクドライブなどのディスク記憶装置をＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの記憶装置として使用する場合、ディスク記録面のサーボエリアを除いた部分にデータの記録が行われる。このときデータはセクタと呼ばれる５１２バイトの単位で扱われる。各セクタにはトラックの移動方向に沿って昇順かつディスクの外周から内周に向かって昇順にＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）なる通し番号が付けられ、このＬＢＡでリード／ライト時のセクタの指定が行われる。
【０００３】
一方、ディスク上のファイルを管理する仕組みとしてＦＡＴファイルシステムがある。このＦＡＴファイルシステムは、ディスク上のファイルをディレクトリエントリとＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）を用いて管理する仕組みである。ディレクトリエントリには、ファイル毎に、そのファイル名とファイルデータの先頭が記録されているクラスタの番号（開始クラスタ番号）が記録されている。ＦＡＴには、クラスタがどのような順番で繋がって一つのファイルを構成しているかといった情報がテーブル形式で記録されている。なお、クラスタとは、その容量がセクタの容量の２のべき乗倍となるように連続するセクタをまとめた単位である。
【０００４】
ファイルを読み込む場合は、ディレクトリエントリから該当するファイル名を検索し、このファイル名に対応して記録されている開始クラスタ番号を読み込む。この開始クラスタ番号が指しているクラスタからデータを読み込んだ後、ＦＡＴから当該開始クラスタ番号のクラスタの次のクラスタを確認し、そのクラスタからデータを読み込む。以降同様にＦＡＴを参照しながらディスクからデータを読み込む。
【０００５】
なお、本発明に関連する技術には、たとえば特許文献１、特許文献２などがある。特許文献１は、異なるパーティションにファイルを分けて記録する技術である。特許文献２は、ＳＣＳＩ接続された複数のハードディスクにまとまったデータを１回の操作で分けて入れる技術である。
【０００６】
【特許文献１】
特開平５−８１０９１号公報（図１）
【特許文献２】
特開平１１−３３８６４４公報（図２）。
【０００７】
【発明が解決しようとする課題】
しかしながら、ディレクトリエントリとＦＡＴはディスクに記録されているため、何らかのトラブルでこれらが壊れてしまった場合、ファイルのデータ本体に損傷がないにもかかわらず、ファイルを読み込めなくなってしまうという問題があった。つまりＦＡＴファイルシステムは、ＬＢＡのディスク上の位置情報をテーブル形式にまとめて一括管理するので、そのテーブル情報が破壊されてしまうと、ＬＢＡの位置が分からなくなりファイルを読み込めなくなってしまう。
【０００８】
本発明はこのような課題を解決するためになされたもので、ディスクなどの記録媒体に書き込まれているファイルの保全性の向上を図ることのできるファイルシステム、ファイル操作機構、ファイル操作方法の提供を目的とする。
【０００９】
【課題を解決するための手段】
かかる目的を達成するために、本発明のファイルシステムは、記録領域がセクタの単位で分割されるとともに１以上の所定数の連続する前記セクタのまとまりをブロックとして記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成された記録媒体と、前記所定のパラメータの１つである前記ファイルのファイル名と、当該ファイルの先頭からのデータが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号とを管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて前記記録媒体に対するファイルの操作を実行するファイル操作手段とを具備する。
【００１０】
本発明において、前記ヘッダー部には、前記ファイル名と、連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭の前記セクタの番号である次ブロック先頭番号と、連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭の前記セクタの番号である前ブロック先頭番号と、連続する同じファイル名のファイルデータが書き込まれているブロック群における先頭からの通し番号であるブロック番号とが少なくとも前記所定のパラメータとして記憶されている。
【００１１】
本発明のファイルシステムにおいて、ファイル操作手段は、ファイルの書き込み時、前記ファイル管理テーブルに当該ファイルの名前と前記スタートブロック先頭番号とを書き込み、前記ファイルのデータを書き込もうとしている前記各ブロックの前記ヘッダー部と前記データ部への書き込みを行う。
【００１２】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ファイルの読み込み時、前記ファイル管理テーブルから当該ファイルのファイル名に対応する前記スタートブロック先頭番号を読み出し、このスタートブロック先頭番号に基づいて該当するブロックの前記ヘッダー部と前記データ部を読み込み、前記読み込んだヘッダー部に含まれる前記次ブロック先頭番号に基づいて次のブロックの前記ヘッダー部と前記データ部を読み込み、前記ファイル名に対応する全てのファイルデータの読み込みが終了するまで、前記次ブロック先頭番号に基づく次のブロックの前記ヘッダー部と前記データ部の読み込みを繰り返す。
【００１３】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ファイルの消去時、前記ファイル管理テーブルから当該ファイルのファイル名に対応する前記スタートブロック先頭番号を読み出すとともに、前記ファイル管理テーブル内の前記ファイル名を消去し、前記読み出したスタートブロック先頭番号に基づいて該当するブロックの前記ヘッダー部を読み込むとともに当該ヘッダー部内のファイル名を消去し、当該ヘッダー部に含まれる前記次ブロック先頭番号を読み出し、当該ファイル名に対応する全てのファイルデータの消去が終了するまで、前記次ブロック先頭番号に基づく前記ヘッダー部の読み込みと当該ヘッダー部内の前記ファイル名の消去を繰り返す。
【００１４】
本発明のファイルシステムにおいて、同一の前記ファイル管理テーブルが前記記録媒体の記録領域にそれぞれ優先順位が与えられて多重に記録され、前記ファイル操作手段は、優先順位の高い前記ファイル管理テーブルから順に読み込みを試み、一部の前記ファイル管理テーブルが破損していた場合、他の前記ファイル管理テーブルで前記一部のファイル管理テーブルを修復する。
【００１５】
本発明では、ファイル管理テーブルの冗長化により、何らかのトラブルで通常使用するファイル管理テーブルが破損しても、予備のファイル管理テーブルによってファイルの読み込みが不能に陥る確率を低減できるという効果を奏し得る。
【００１６】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ブロックの前記ヘッダー部の情報に基づいて前記ファイル管理テーブルを再構築する。
【００１７】
本発明では記録媒体上の全てのファイル管理テーブルが破損したとしても、各ブロックのヘッダー部に記述された情報によってファイル管理テーブルを再構築することができ、ファイルが読み込み不能になることを、より確実に防止することができる。
【００１８】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ブロックの前記ヘッダー部の情報に基づいて、読み込み不可のブロックの次のブロックの先頭の前記セクタの番号を求める。
【００１９】
本発明では、記録媒体の記録領域の利用効率の向上効果とともに、ファイルデータが書き込まれている一部のブロックが不良で読み込めなくなったとしても、他の読み込みが可能なブロックのヘッダー部に記述されている情報に基づいて、不良ブロックのヘッダー部に記述されているはずの次ブロック先頭番号を再生することができる。このことによって、不良ブロック以外のブロックからのファイルデータの読み込みは保証される。動画や音声などのデータであれば数ブロック程度のデータの欠落は一般ユーザにとっては大きな損害とならず、逆に不良ブロック以外のデータの読み込みが保証されることの有用性は大きい。
【００２０】
本発明のファイルシステムにおいて、ファイル操作手段は、全ての前記ブロックの前記ヘッダー部を読み込み、読み込んだ前記ヘッダー部から読み込み対象である前記ファイル名をもつ読み込み可能なブロックを全て検索し、この検索した各ブロックの前記ヘッダー部に含まれている前記ブロック番号と前記ブロック先頭番号を抽出し、これら読み込み可能なブロックの前記次ブロック先頭番号と前記前ブロック先頭番号の値を、前記読み込み可能な各ブロックが連続するように修正する。
【００２１】
本発明によれば、特に動画や音声などのサイズの大きいファイルを記録媒体に記憶する場合において、記録領域の利用効率が向上する。また、不良ブロック以外のブロックからのファイルデータの読み込みが保証される。
【００２２】
本発明のファイル操作機構は、記録領域がセクタの単位で分割された記録媒体に対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うファイル操作機構であって、１以上の所定数の連続する前記セクタのまとまりをブロックとして前記記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成され、前記所定のパラメータの１つである前記ファイルのファイル名と、当該ファイルの先頭データが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号とを管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて前記記録媒体に対するファイルの操作を実行するファイル操作手段を具備する。
【００２３】
本発明のファイル操作方法は、記録領域がセクタの単位で分割された記録媒体に対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うファイル操作方法であって、１以上の所定数の連続する前記セクタのまとまりをブロックとして前記記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成され、前記記録媒体に書き込まれているファイルのファイル名と、前記ファイルの先頭データが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号との対応を管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて、前記記録媒体に対するファイルの操作を行う。
【００２４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
【００２５】
図１は、本発明の一実施形態であるディスク記憶装置に用いられているディスク記録領域の論理的な分割構造を示す図である。
【００２６】
同図において、全記録領域１はディスクにおいてユーザデータを記録することの可能な全体領域である。一般的なディスク記憶装置の場合、全記録領域１は、符号２に示す５１２バイト長のセクタと呼ばれる単位で分割されており、これらのセクタ２はＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）と呼ばれる通し番号により管理される。図１において、ＬＢＡ０はディスク最外周の先頭のセクタ、ＬＢＡＬ−１はディスク最内周の最後のセクタである。
【００２７】
ユーザデータが記録される全記録領域１において、Ｎ個の連続するセクタのまとまりをここではブロック３と呼ぶことにする。Ｎの値は１以上の予め定められた整数（定数）である。Ｎの値は記録されるユーザデータのサイズを考慮して決めることができる。動画や音声のような比較的大容量のデータが記録される製品に当該ディスク記憶装置が利用されるならばＮの値を大き目にとればよい。なお、図１の例ではＮの値は３としている。
【００２８】
ブロック３はヘッダー部４とデータ部５で構成されている。ヘッダー部４は、ファイル名６と、連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭のセクタのＬＢＡ（次ブロック先頭ＬＢＡと呼ぶ。）７と、連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭のセクタのＬＢＡ（前ブロック先頭ＬＢＡと呼ぶ。）８と、連続する同じファイル名６のファイルデータが書き込まれているブロック群における先頭からの番号（ブロック番号と呼ぶ。）９と、その他（ファイル長、作成日、ＥＴＣ）１０とで構成されている。
【００２９】
なお、ヘッダー部４のファイル名５において、未使用ファイルは”０”などの特定マークを入れる。次ブロック先頭ＬＢＡ７において次が無い場合は自身のブロックの先頭のセクタのＬＢＡ（自ブロック先頭ＬＢＡと呼ぶ。）が入る。前ブロック先頭ＬＢＡ８において前が無い場合には自ブロック先頭ＬＢＡが入る。
【００３０】
ディスク上のファイルを管理するための情報として、図２に示すように、ファイル名１２と、そのファイルの先頭のデータが書き込まれているブロック（スタートブロックと呼ぶ。）の先頭のセクタのＬＢＡ（スタートブロック先頭ＬＢＡと呼ぶ。）１３を列記したファイル管理テーブル１１を用意する。このファイル管理テーブル１１は、ディスク上の特定のブロックに記録される。この特定ブロックはトラブル時に備え、複数その複製が別の決められたブロックに確保されている。
【００３１】
ところで、動画や音声のような比較的大容量のファイルが記録される製品に本発明が利用される場合には、ブロックを構成するセクタ数のＮの値は大きくとることが有効である。Ｎの値を大きくすると、小さいサイズのファイルの書き込みによって未使用のセクタが発生し、記録領域の利用効率が低下するが、その反面、全記録領域でのヘッダー部の数が少なくなるので、ヘッダー部による記録領域の消費量が少なくなる。また、ファイルサイズが大きければ未使用のセクタが発生するブロック数は少なくて済むので、結果的に記録領域の利用効率が向上する。
【００３２】
次に、以上のように全記録領域１がブロックの単位で分割されたディスクに対してファイル操作などの各種操作を行う手順を説明する。
【００３３】
まず、初期化の手順を説明する。図３にこの初期化手順を示す。
【００３４】
ファイル管理テーブル１１のファイル名を全て”０”などの未使用ファイル名に書き換える（ステップ３０１）。続いて、全ブロックのヘッダー部内のファイル名を”０”などの未使用ファイル名に書き換える（ステップ３０２）。
【００３５】
次に、ファイル書き込み手順を説明する。図４にファイル書き込み手順を示す。
【００３６】
まず、ファイル管理テーブル１１の未使用ファイル名の一つに、今回書き込もうとするファイル名を上書きする（ステップ４０１）。続いてスタートブロックとして使用するための未使用ブロックの先頭のセクタのＬＢＡ番号を、上記ファイル名と対にしてファイル管理テーブル１１に書き込む（ステップ４０２）。次に、ファイルデータを書き込もうとしている各ブロックのヘッダー部のパラメータとして、今回書き込むファイル名、次ブロック先頭ＬＢＡ、前ブロック先頭ＬＢＡ、ブロック番号、その他を書き込む（ステップ４０３）。ただし、スタートブロックのヘッダー部には前ブロック先頭ＬＢＡとして自ブロック先頭ＬＢＡを、ブロック番号として”０”を書き込む。ファイルの最終データが書き込まれるブロックのヘッダー部には次ブロック先頭ＬＢＡとして自ブロック先頭ＬＢＡを書き込む。
【００３７】
続いて、各ブロックのデータ部にファイルデータを書き込む（ステップ４０４）。ファイルの全データの書き込みが終了するまでステップ４０３を繰り返す（ステップ４０５）。
【００３８】
次に、ファイル読み込み手順を説明する。図５にファイル読み込み手順を示す。
【００３９】
まず、ファイル管理テーブル１１から今回読み込もうとするファイル名を検索する（ステップ５０１）。次に、この検索したファイル名と対になってファイル管理テーブル１１に書き込まれているスタートブロック先頭ＬＢＡを読み出す（ステップ５０２）。この読み出されたスタートブロック先頭ＬＢＡに基づいて該当するブロックのヘッダー部とデータ部を読み込む（ステップ５０３）。
【００４０】
続いて、読み出されたヘッダー部を分析して、その中の次ブロック先頭ＬＢＡを読み出し（ステップ５０４）、その後ステップ５０３とステップ５０４を繰り返す。そして読み出されたヘッダー部の次ブロック先頭ＬＢＡが自ブロック先頭ＬＢＡであった場合には（ステップ５０５のＹＥＳ）、最終ブロックであるとしてファイルデータの読み込みを終了する（ステップ５０６）。
【００４１】
次に、ファイルの消去方法を説明する。図６にファイル消去手順を示す。
【００４２】
まず、ファイル管理テーブル１１から消去しようとするファイル名を検索する（ステップ６０１）。次に、この検索したファイル名と対になってファイル管理テーブル１１に書き込まれているスタートブロック先頭ＬＢＡを読み出し（ステップ６０２）、そのファイル管理テーブル１１内のファイル名を未使用の値（”０”）に書き換える（ステップ６０３）。
【００４３】
続いて、読み出したスタートブロック先頭ＬＢＡに基づいて該当するブロックのヘッダー部を読み込み（ステップ６０４）、このヘッダー内のファイル名を未使用の値（”０”）に書き換える（ステップ６０５）。続いて読み出されたヘッダー部を分析してその中の次ブロック先頭ＬＢＡを読み出し（ステップ６０６）、ステップ６０４からステップ６０６を繰り返す。そして読み出されたヘッダー部の次ブロック先頭ＬＢＡが自ブロック先頭ＬＢＡであった場合には（ステップ６０７のＹＥＳ）、最終ブロックであるとして消去手順を終了する。
【００４４】
次に、ファイル管理テーブル１１が何らかのトラブルで読めなかった場合の修復の動作を説明する。図７にこの場合の処理手順を示す。
【００４５】
ファイル管理テーブル１１は、ディスク上のたとえば互いに離間した複数の特定記録領域にそれぞれ同一内容を持たせて多重に記録されており、すなわちファイル管理テーブル１１にはトラブルに備えての冗長性を持たせている。最初に読み込むように決められたファイル管理テーブル（ｉ＝１番目のファイル管理テーブル）を読み込めなかった場合には（ステップ７０１のＹＥＳ）、次に順位が割り当てられている別のファイル管理テーブル（ｉ＝２番目のファイル管理テーブル）の読み込みを試み（ステップ７０２）、それでも読み込めなかった場合にはさらに次の優先順位のファイル管理テーブル１１を読み込む。読み込めなかったファイル管理テーブル１１が発生した場合には読み込みに成功したファイル管理テーブル１１の内容で読み込みが失敗したファイル管理テーブル１１を上書きして復旧を行う。最初に読み込むように決められたファイル管理テーブルが読み込めた場合、たとえばファイル書き込み手順などを実行する（ステップ７０７）。
【００４６】
もしも全てのファイル管理テーブル１１の読み込みに失敗した場合は（ステップ７０３のＹＥＳ）、全てのブロックのヘッダー部を読み込み（ステップ７０４）、ブロック番号が”０”であるヘッダー部内のファイル名と当該ブロックの先頭のセクタのＬＢＡに基づいてファイル管理テーブル１１を再構築し（ステップ７０５）、この再構築したファイル管理テーブル１１をディスク上の特定ブロックに上書きする（ステップ７０６）。
【００４７】
次に、ファイルデータの読み込み途中でブロックが一箇所読めなくなった場合の復旧の動作を説明する。図８にこの場合の処理手順を示す。
【００４８】
まず、読み込もうとしているファイル名で、読み込めないブロック（不良ブロックと呼ぶ。）よりもブロック番号が大きいブロックを探し出す（ステップ８０１）。このブロックを探し出す方法としては、たとえば、読み込めないブロックの先頭ＬＢＡからＬＢＡが大きくなる向きに該当ブロックを順に探す方法、ブロック番号が最大か最小のブロックから順に全てのブロックを探す方法、全ブロックをランダムに探す方法、あるいは、上記の方法を複数組み合わせて行う方法などがある。
【００４９】
続いて、探し出したブロックのヘッダー部を読み込み（ステップ８０２）、このヘッダー部を分析してブロック番号を読み込む（ステップ８０３）。次に、この読み込んだブロック番号が不良ブロックの次のブロックのブロック番号であるかどうかを判定し（ステップ８０４）、ＮＯなら、上記の探し出したブロックのヘッダー部から前ブロック先頭ＬＢＡを読み込む（ステップ８０５）。そしてこの読み込んだ前ブロック先頭ＬＢＡに基づいて前のブロックのヘッダー部を読み込み（ステップ８０６）、ステップ８０３に戻る。
【００５０】
ステップ８０４で、読み込んだブロック番号が不良ブロックの次のブロックのブロック番号と一致した場合は、上記読み込んだ前ブロック先頭ＬＢＡをヘッダー部にもつブロックの先頭ＬＢＡを、不良ブロックのヘッダー部内の次ブロック先頭ＬＢＡの値として書き込む（ステップ８０７）。
【００５１】
このようにして読み込めなかったブロック内に記述されていたであろう次ブロック先頭ＬＢＡを復旧することができ、この次ブロック先頭ＬＢＡに基づいて次のブロック以降のブロックからのデータの読み込みが行われる。これにより、１ブロック分のデータの読み込みは不可であるが、その他のブロックのデータの読み込みは保証される。動画や音声などのデータであれば１ブロック分のデータの欠落はさほど問題とならず、不良ブロック以外のデータの読み込みが保証されることの有用性は大きい。
【００５２】
また、ファイルデータの読み込み途中でブロックが複数個所、読めなくなった場合には、上記ブロックが一箇所読めなくなった場合の復旧手順を繰り返し、各不良ブロックの次のブロックの先頭ＬＢＡを一つずつ復旧することで、不良ブロック以外の全てのブロックからファイルデータを読み込むことが可能である。
【００５３】
さらに、ファイルデータの読み込み途中でブロックが複数個所、読めなくなった場合の別の復旧手順としては以下がある。図９に、この復旧の手順を示す。
【００５４】
まず、ディスク上の全ブロックのヘッダー部を読み込む（ステップ９０１）。読み込んだヘッダー部から今回読み込もうとしているファイル名をもつ全てのブロックを検索する（ステップ９０２）。このとき読め込めないブロックは無視する。
【００５５】
次に、検索した各ブロックのヘッダー部よりブロック番号とブロック先頭ＬＢＡを読み出し、これらをまとめた表を作成する（ステップ９０３）。この表のデータを、ブロック番号でソートし、低い番号から高い番号に並び替える（ステップ９０４）。この結果、読めないブロックのブロック番号が除外された表が作成される。
【００５６】
続いてこの表から、読み込めたブロックの次ブロック先頭ＬＢＡと前ブロック先頭ＬＢＡの値を、読めないブロックを除いて、各ブロックが連続するように修正する（ステップ９０５）。
【００５７】
これによって、読み込めない部分の除いて各ブロックのファイルデータを連続して読み込むことが可能になる。
【００５８】
図１０に、以上のファイル操作が実行されるディスク記憶装置１００と、そのファイル操作機構を含むＰＣなどのホスト装置２００の電気的な構成を示す。
【００５９】
ディスク記憶装置１００において、プリアンプ２４は回転するディスク２５から磁気ヘッド２６によって読み出された信号を増幅するリードアンプと、ディスク２５に書き込むデータをライト電流に変換するライトアンプとを有する。リード／ライト信号処理回路２７はディスク２５への書き込むデータの符号化処理およびディスク２５からの読み込みデータの復号化処理などの各種信号処理を行う回路である。ハードディスクコントローラ（ＨＤＣ）１５はホスト装置２００との間でのデータ転送を処理するコントローラである。データバッファ１６は、ディスク２５に対するデータの読み書きの速度とホスト装置２００との間でのデータ転送速度との差を吸収するために転送データを一時的に保持するメモリである。システムコントローラ１７はディスク記憶装置１００全体の動作を制御する。システムコントローラ１７はボイスコイルモータ（ＶＣＭ）１９を駆動するＶＣＭ駆動回路２０にシークやヘッドの位置決めのための制御量を出力したり、スピンドルモータ（ＳＰＭ）２１を駆動するＳＰＭ駆動回路２２に制御信号を供給してディスク２５を所定の回転数で駆動するように制御する。
【００６０】
ホスト装置２００は、ディスク記憶装置１００に対してデータの読み書き、消去などのためのコマンドを送って、ディスク記憶装置１００にディスク２５に対するファイル操作を実行させる。コマンドには操作対象のセクタのＬＢＡが含まれている。
【００６１】
ホスト装置２００は、具体的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１、システムＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３２、システムバス３３、ディスク記憶装置１００とのインタフェース３４を有している。ＣＰＵ３１は、システムＲＡＭ３２に記憶されている制御プログラム１８を実行する。制御プログラム１８には、少なくとも、ディスク２５の記録領域を図１に示したようにブロックの単位で分割した論理フォーマットに構成するためのブロック化手順３５と、上記の初期化手順、書き込み手順、読み込み手順、消去手順、および各種の復旧手順などの操作をディスク記憶装置１００を通して実行するためのファイル操作手順３６とが含まれている。
【００６２】
以上説明したディスク記憶装置のファイル操作機構によれば、ファイル管理テーブル１１の冗長化により、何らかのトラブルで通常使用するファイル管理テーブル１１が破損しても、予備のファイル管理テーブル１１によってファイルの読み込みが不能に陥る確率を低減できる。また、全てのファイル管理テーブル１１が破損したとしても、ブロックのヘッダー部に記述された情報によって、ファイル管理テーブル１１を再構築することができ、ファイルが読み込み不能になることを、より確実に防止することができる。
【００６３】
また、このディスク記憶装置のファイル操作機構によれば、仮にファイルデータが書き込まれている一部のブロックが不良で読み込めなくなったとしても、他の読み込みが可能なブロックのヘッダー部に記述されている情報に基づいて、不良ブロックのヘッダー部に記述されているはずの次ブロック先頭ＬＢＡを再生することができる。このことによって、不良ブロック以外のブロックからのファイルデータの読み込みは保証される。動画や音声などのデータであれば１ブロック分のデータの欠落はさほど問題とならないので、不良ブロック以外のデータの読み込みが保証されることの有用性は大きい。
【００６４】
さらに、このディスク記憶装置のファイル操作機構では、従来のＦＡＴファイルシステムのクラスタをブロックとして扱うことで、従来のＦＡＴシステムと併用して使用することも可能である。
【００６５】
なお、本発明は上述したいずれの実施形態にも限定されず、本発明の技術思想の範囲内で適宜変更して実施できる。
【００６６】
【発明の効果】
以上説明したように、本発明によれば、ディスク記録領域の利用効率の向上とともに、ディスクに書き込まれているファイルの保全性の向上を図ることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態であるディスク記憶装置に用いられているディスク記録領域の論理的な分割構造を示す図である。
【図２】ファイル管理テーブルの構成を示す図である。
【図３】ファイル操作のための初期化手順を示すフローチャートである。
【図４】ファイル書き込み手順を示すフローチャートである。
【図５】ファイルの読み込み手順を示すフローチャートである。
【図６】ファイル消去手順を示すフローチャートである。
【図７】ファイル管理テーブルの修復手順を示すフローチャートである。
【図８】一部のブロック破損時の復旧手順を示すフローチャートである。
【図９】複数箇所のブロック破損時の復旧手順を示すフローチャートである。
【図１０】本発明のファイル操作機構を採用したディスク記憶装置とホスト装置の電気的な構成を示すブロック図である。
【符号の説明】
１      全記録領域
２      セクタ
３      ブロック
４      ヘッダー部
５      データ部
６      ファイル名
７      次ブロック先頭ＬＢＡ
８      前ブロック先頭ＬＢＡ
９      ブロック番号
１１      ファイル管理テーブル
１８      制御プログラム
２５      ディスク
３１      ＣＰＵ
３２      システムＲＡＭ
３５      ブロック化手順
３６      ファイル操作手順
【図１】
2004220355.tif 000003
【図２】
2004220355.tif 000004
【図３】
2004220355.tif 000005
【図４】
2004220355.tif 000006
【図５】
2004220355.tif 000007
【図６】
2004220355.tif 000008
【図７】
2004220355.tif 000009
【図８】
2004220355.tif 000010
【図９】
2004220355.tif 000011
【図１０】
2004220355.tif 000012