(57)【要約】【課題】ディスク全域にわたって速度変動の少ない安定したデータ転送を実現し、動画や音声などのサイズの大きいファイルを記憶するのに好適なディスク記憶装置を提供する。【解決手段】１以上の定数の連続するセクタ２のまとまりをブロック３、２以上の定数の連続するブロックのまとまりをエリア４として、ディスクの全記録領域１をブロック３およびエリア４の単位で論理的に分割しておく。エリア毎の未使用ブロックの先頭ＬＢＡおよび未使用ブロック数を管理する未使用ブロック管理テーブル５と、ディスクに記録されているファイルのファイル名とファイルを構成する全てのブロックの先頭ＬＢＡを管理するファイル管理テーブル８とを用意し、各テーブルを参照してディスクに対するファイルの読み書き、消去を行う。【選択図】  図２
2004220734.tif 000002
【特許請求の範囲】
【請求項１】
記録領域がセクタの単位で論理的に分割されたディスクに対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うディスク記憶装置のファイル操作機構であって、
１以上の所定数の連続する前記セクタのまとまりをブロック、２以上の所定数の連続する前記ブロックのまとまりをエリアとして、前記エリア毎の未使用のブロックに属する先頭のセクタの番号と未使用のブロック数とを管理する未使用ブロック管理手段と、
前記ディスクに記録されているファイルのファイル名と当該ファイルを構成する全てのブロックに属する先頭のセクタの番号とを管理するファイル管理手段と、
前記未使用ブロック管理手段及び前記ファイル管理手段によってそれぞれ管理されている情報に基づいて前記ディスクに対するファイルの操作を前記ディスク記憶装置を通して実行するファイル操作手段と
を具備することを特徴とするディスク記憶装置のファイル操作機構。
【請求項２】
請求項１に記載のディスク記憶装置のファイル操作機構であって、
前記ファイル操作手段は、前記未使用ブロック管理手段により管理されている未使用ブロック数に基づいて、前記ディスクの最外周または最内周より順に未使用のブロックを含む１以上のエリアを検出し、前記未使用ブロック管理手段により管理されている当該未使用ブロックの先頭のセクタの番号の情報に基づいて、ファイルデータを１ブロック分ずつ前記検出した１以上のエリア内の先頭の未使用ブロックに書き込む第１のファイル書き込み手順を前記ディスク記憶装置を通して実行することを特徴とするディスク記憶装置のファイル操作機構。
【請求項３】
請求項２に記載のディスク記憶装置のファイル操作機構であって、
前記第１のファイル書き込み手順を実行する前記ファイル操作手段は、前記未使用ブロック管理手段により管理されている未使用ブロック数に基づいて、前記ディスクの最外周または最内周より順に未使用ブロックを含む１以上のエリアを検出し、前記未使用ブロック管理手段により管理されている当該未使用ブロックの先頭のセクタの番号に基づいて、ファイルデータを前記１つ以上のエリア内の１つ以上の未使用ブロックに連続して書き込む第２のファイル書き込み手順と、前記第１のファイル書き込み手順とを切り替えて、前記ディスク記憶装置を通して実行することを特徴とするディスク記憶装置のファイル操作機構。
【請求項４】
請求項２に記載のディスク記憶装置のファイル操作機構であって、
前記ファイル操作手段は、読み込もうとしているファイルを構成するデータを含む全てのブロックの先頭のセクタの番号を前記ファイル管理手段によって管理されている情報より取得し、この取得した情報に基づいて前記ディスクから該当するファイルデータを読み込むファイル読み込み手順を前記ディスク記憶装置を通して実行することを特徴とするディスク記憶装置のファイル操作機構。
【請求項５】
請求項２に記載のディスク記憶装置のファイル操作機構であって、
前記ファイル操作手段は、消去しようとしているファイルを構成するデータを含む全てのブロックの先頭のセクタの番号を前記ファイル管理手段によって管理されている情報より取得し、この取得した情報に基づいて前記ディスクから該当するファイルデータを消去するファイル消去手順を前記ディスク記憶装置を通して実行することを特徴とするディスク記憶装置のファイル操作機構。
【請求項６】
請求項２に記載のディスク記憶装置のファイル操作機構であって、
前記ファイル操作手段は、前記ディスク記憶装置の外部データ転送速度と前記ディスクに対するデータの書き込み速度との差を吸収するデータバッファのデータ蓄積量に基づいて、前記ディスクの外周側より未使用ブロックを含むエリアを検出するか前記ディスクの内周側より未使用ブロックを含むエリアを検出するかを切り替えることを特徴とするディスク記憶装置のファイル操作機構。
【請求項７】
請求項１に記載のディスク記憶装置のファイル操作機構であって、
前記未使用ブロック管理手段及び前記ファイル管理手段はそれぞれ、前記ファイル操作手段によるファイル操作の完了に対応して、管理している情報の更新を行うことを特徴とするディスク記憶装置のファイル操作機構。
【請求項８】
請求項１に記載のディスク記憶装置のファイル操作機構であって、
前記未使用ブロック管理手段及び前記ファイル管理手段はそれぞれ、前記ディスクの記録領域に情報を記録して管理することを特徴とするディスク記憶装置のファイル操作機構。
【請求項９】
記録領域がセクタの単位で論理的に分割されたディスクに対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うディスク記憶装置のファイル操作方法であって、
１以上の所定数の連続する前記セクタのまとまりをブロック、２以上の所定数の連続する前記ブロックのまとまりをエリアとして、前記エリア毎の未使用のブロックに属する先頭のセクタの番号と未使用のブロック数とを管理するとともに、前記ディスクに記録されているファイルのファイル名と当該ファイルを構成する全てのブロックに属する先頭のセクタの番号とを管理し、これらの管理されている情報に基づいて前記ディスクに対するファイルの操作を行うことを特徴とするディスク記憶装置のファイル操作方法。
【請求項１０】
請求項９に記載のディスク記憶装置のファイル操作方法であって、
前記管理されている未使用ブロック数に基づいて、前記ディスクの最外周または最内周より順に未使用のブロックを含む１以上のエリアを検出し、前記管理されている当該未使用ブロックの先頭のセクタの番号の情報に基づいて、ファイルデータを１ブロック分ずつ前記検出した１以上のエリア内の先頭の未使用ブロックに書き込むことを特徴とするディスク記憶装置のファイル操作方法。
【請求項１１】
請求項１０に記載のディスク記憶装置のファイル操作方法であって、
読み込もうとしているファイルを構成するデータを含む全てのブロックの先頭のセクタの番号を前記管理されている情報より取得し、この取得した情報に基づいて前記ディスクから該当するファイルデータを読み込むことを特徴とするディスク記憶装置のファイル操作方法。
【請求項１２】
請求項１０に記載のディスク記憶装置のファイル操作方法であって、
消去しようとしているファイルを構成するデータを含む全てのブロックの先頭のセクタの番号を前記管理されている情報より取得し、この取得した情報に基づいて前記ディスクから該当するファイルデータを消去することを特徴とするディスク記憶装置のファイル操作方法。
【請求項１３】
請求項９に記載のディスク記憶装置のファイル操作方法であって、
前記ディスク記憶装置の外部データ転送速度と前記ディスクに対するデータの書き込み速度との差を吸収するデータバッファのデータ蓄積量に基づいて、前記ディスクの外周側より未使用ブロックを含むエリアを検出するか前記ディスクの内周側より未使用ブロックを含むエリアを検出するかを切り替えることを特徴とするディスク記憶装置のファイル操作方法。
【請求項１４】
請求項９に記載のディスク記憶装置のファイル操作方法であって、
前記ファイル操作の完了に対応して、前記管理情報の更新を行うことを特徴とするディスク記憶装置のファイル操作方法。
【請求項１５】
請求項９に記載のディスク記憶装置のファイル操作方法であって、
前記管理情報が前記ディスクの記録領域に記録されることを特徴とするディスク記憶装置のファイル操作方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハードディスクドライブなどのディスク記憶装置のファイル操作機構及びファイル操作方法に関する。
【０００２】
【従来の技術】
ハードディスクドライブなどのディスク記憶装置をＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの記憶装置として使用する場合、ディスク記録面のサーボエリアを除いた部分にデータの記録が行われる。このときデータはセクタと呼ばれる５１２バイトの単位で扱われる。各セクタにはトラックの移動方向に沿って昇順かつディスクの外周から内周に向かって昇順にＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）なる通し番号が付けられ、このＬＢＡでリード／ライト時のセクタの指定が行われる。
【０００３】
一方、ディスク上のファイルを管理する仕組みとしてＦＡＴファイルシステムがある。このＦＡＴファイルシステムは、ディスク上のファイルをディレクトリエントリとＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）を用いて管理する仕組みである。ディレクトリエントリには、ファイル毎に、そのファイル名とファイルデータの先頭が記録されているクラスタの番号（開始クラスタ番号）が記録されている。ＦＡＴには、クラスタがどのような順番で繋がって一つのファイルを構成しているかといった情報がテーブル形式で記録されている。なお、クラスタとは、その容量がセクタの容量の２のべき乗倍となるように連続するセクタをまとめた単位である。
【０００４】
ファイルを読み込む場合は、ディレクトリエントリから該当するファイル名を検索し、このファイル名に対応して記録されている開始クラスタ番号を読み込む。この開始クラスタ番号が指しているクラスタからデータを読み込んだ後、ＦＡＴから当該開始クラスタ番号のクラスタの次のクラスタを確認し、そのクラスタからデータを読み込む。以降同様にＦＡＴを参照しながらディスクからデータを読み込む。
【０００５】
ここで物理的に連続するセクタにファイルデータを記録することができれば、ヘッドの移動（シーク）は最小で済み、ファイル操作に要する時間も最小で済むことになる。しかし、ディスク記憶装置をＰＣに用いた場合、ファイルの記録と削除が頻繁に行われることから、空き領域が次第に離散化し、結果的にディスク内での一つのファイルデータの配置が不連続となる現象（フラグメンテーション）が進む。このフラグメンテーションの度合が高くなるとファイルアクセス時のシーク回数が増え、それだけアクセス時間が長くなってしまう。さらに、シーク動作はヘッドのメカニカルな移動を伴うことから、シーク回数の増加は消費電力の増大、動作音の頻発（騒音の発生）、機械的消耗などを招く。
【０００６】
なお、本発明に関連する技術には、たとえば特許文献１、特許文献２などがある。この特許文献１は、異なるパーティションにファイルを分けて記録する技術である。特許文献２は、ＳＣＳＩ接続された複数のハードディスクにまとまったデータを１回の操作で分けて入れる技術である。
【０００７】
【特許文献１】
特開平５−８１０９１号公報（図１）
【特許文献２】
特開平１１−３３８６４４公報（図２）。
【０００８】
【発明が解決しようとする課題】
ハードディスクドライブなどのディスク記憶装置では、ファイルの記録と消去が繰り返されるうちにファイルデータのフラグメンテーションが進む。フラグメンテーションが進むと、ファイルデータのアクセスにおいてシークが多発し、ファイルアクセス時間が増大するという問題が発生していた。また、シークの多発による消費電力の増大や、シーク動作音による騒音、さらには機械的消耗等といった問題も招いていた。
【０００９】
本発明はこのような課題を解決するためになされたもので、ファイルの読み書き、消去などのファイル操作時に変位の大きいシークの発生を抑止し、ディスク全域にわたって速度変動の少ないデータ転送を実現することのできるディスク記憶装置のファイル操作機構とファイル操作方法の提供を目的とする。
【００１０】
【課題を解決するための手段】
かかる目的を達成するために、第１の発明のディスク記憶装置のファイル操作機構は、記録領域がセクタの単位で論理的に分割されたディスクに対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うディスク記憶装置のファイル操作機構であって、１以上の所定数の連続する前記セクタのまとまりをブロック、２以上の所定数の連続する前記ブロックのまとまりをエリアとして、前記エリア毎の未使用のブロックに属する先頭のセクタの番号と未使用のブロック数とを管理する未使用ブロック管理手段と、前記ディスクに記録されているファイルのファイル名と当該ファイルを構成する全てのブロックに属する先頭のセクタの番号とを管理するファイル管理手段と、前記未使用ブロック管理手段及び前記ファイル管理手段によってそれぞれ管理されている情報に基づいて前記ディスクに対するファイルの操作を前記ディスク記憶装置を通して実行するファイル操作手段とを具備するものである。
【００１１】
より具体的には、第２の発明において、前記ファイル操作手段は、前記未使用ブロック管理手段により管理されている未使用ブロック数に基づいて、前記ディスクの最外周または最内周より順に未使用のブロックを含む１以上のエリアを検出し、前記未使用ブロック管理手段により管理されている当該未使用ブロックの先頭のセクタの番号の情報に基づいて、ファイルデータを１ブロック分ずつ前記検出した１以上のエリア内の先頭の未使用ブロックに書き込む第１のファイル書き込み手順を前記ディスク記憶装置を通して実行するものである。
【００１２】
この発明において、ファイルデータは、ディスクの記録領域を均等に分割する、１以上の連続する各エリアに１ブロック分ずつ書き込まれて行くので、一つのファイルデータのアクセス時に変位の大きいシークが発生するのを抑止でき、ディスク全域にわたって速度変動の少ないデータ転送が実現される。
【００１３】
また、動画や音声のような比較的大容量のファイルが記録される製品に本発明が利用される場合には１つのブロックに含まれるセクタの数を大きくとることが有効である。１つのブロックに含まれるセクタの数を大きくすると、小さいサイズのファイルの書き込みによって未使用のセクタが多数発生し、記録領域の利用効率が低下する。しかしその反面、エリア毎の未使用のブロックの先頭ＬＢＡと未使用のブロック数の情報、ファイルのファイル名と当該ファイルを構成する全てのブロックの先頭ＬＢＡの情報の量が少なくなるので、それらの情報量をディスクに記録することによるユーザデータ領域の消費量が少なくなる。また、ファイルサイズが大きければ未使用のセクタが発生するブロック数は少なくて済むので、結果的に記録領域の利用効率が向上する。
【００１４】
第３の発明のディスク記憶装置のファイル操作機構において、前記第１のファイル書き込み手順を実行するファイル操作手段は、前記未使用ブロック管理手段により管理されている未使用ブロック数に基づいて、前記ディスクの最外周または最内周より順に未使用ブロックを含む１以上のエリアを検出し、前記未使用ブロック管理手段により管理されている当該未使用ブロックの先頭のセクタの番号に基づいて、ファイルデータを前記１つ以上のエリア内の１つ以上の未使用ブロックに連続して書き込む第２のファイル書き込み手順と、前記第１のファイル書き込み手順とを切り替えて、前記ディスク記憶装置を通して実行することを特徴とする。
【００１５】
これによれば、エリアに存在する１以上の未使用ブロックにファイルデータを連続して書き込むことによってファイルアクセスの速度を重視した第２のファイル書き込み手順と、シーク発生を抑制しかつ速度的に安定したデータ転送を実現する第１のファイル書き込み手順とを適宜切り替えて実行することができる。
【００１６】
第４の発明のディスク記憶装置のファイル操作機構において、前記ファイル操作手段は、読み込もうとしているファイルを構成するデータを含む全てのブロックの先頭のセクタの番号を前記ファイル管理手段によって管理されている情報より取得し、この取得した情報に基づいて前記ディスクから該当するファイルデータを読み込むファイル読み込み手順を前記ディスク記憶装置を通して実行することを特徴とする。
【００１７】
第５の発明のディスク記憶装置のファイル操作機構において、前記ファイル操作手段は、消去しようとしているファイルを構成するデータを含む全てのブロックの先頭のセクタの番号を前記ファイル管理手段によって管理されている情報より取得し、この取得した情報に基づいて前記ディスクから該当するファイルデータを消去するファイル消去手順を前記ディスク記憶装置を通して実行することを特徴とする。
【００１８】
第６の発明のディスク記憶装置のファイル操作機構において、前記ファイル操作手段は、前記ディスク記憶装置の外部データ転送速度と前記ディスクに対するデータの書き込み速度との差を吸収するデータバッファのデータ蓄積量に基づいて、前記ディスクの外周側より未使用ブロックを含むエリアを検出するか前記ディスクの内周側より未使用ブロックを含むエリアを検出するかを切り替えることを特徴とする。
【００１９】
すなわち、この発明では、データバッファのデータ蓄積量が大きい場合にはディスクの外周側より未使用ブロックを含むエリアの検出を行って高速なエリアへの書き込みを行うことで、外部のホスト装置からディスク記憶装置へ比較的大きなサイズのデータを転送する場合のデータ転送レートが向上する。逆に、データバッファのデータ蓄積量が少ない場合にはディスクの内周側より未使用ブロックを含むエリアの検出を行って比較的低速なエリアへの書き込みを行う。これによりホスト装置からディスク記憶装置への全体的なデータ転送レートが向上する。
【００２０】
第７の発明のディスク記憶装置のファイル操作機構において、前記未使用ブロック管理手段及び前記ファイル管理手段はそれぞれ、前記ファイル操作手段によるファイル操作の完了に対応して、管理している情報の更新を行うことを特徴とする。
【００２１】
第８の発明のディスク記憶装置のファイル操作機構において、前記未使用ブロック管理手段及び前記ファイル管理手段はそれぞれ、前記ディスクの記録領域に情報を記録して管理することを特徴とする。
【００２２】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
【００２３】
図１に、本発明の一実施形態であるディスク記憶装置のファイル操作機構を採用した場合の、ディスク記録領域の論理的な分割構造を示す。
【００２４】
同図において、全記録領域１は、ディスクにおいてユーザデータを記録することの可能な全体領域である。一般的なハードディスクドライブの場合、全記録領域１は、符号２に示す５１２バイト長のセクタと呼ばれる単位で分割されており、これらのセクタ２はＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）と呼ばれる通し番号によって管理されている。図１において、ＬＢＡ  ０はディスク最外周の先頭のセクタ、ＬＢＡ  Ｌ−１はディスク最内周の最後のセクタである。
【００２５】
ユーザデータが記録される全記録領域１において、Ｎ個の連続するセクタのまとまりをここではブロック（Ｂｌｏｃｋ）３と呼ぶ。Ｎの値は１以上の予め定められた定数である。Ｎの値は記録されるユーザデータのサイズを考慮して決めることができる。動画や音声のような比較的大容量のデータが記録される製品に利用される場合にはＮの値を大き目にとればよい。なお、図１の例ではＮの値は３としている。
【００２６】
図２に示すように、このブロック３はさらに連続するＰ個単位にまとめられてグループ化されている。このグループをエリア（Ａｒｅａ）４と呼ぶことにする。Ｐの値は２以上の予め定められた定数である。なお、図２の例ではＰの値は３である。
【００２７】
各エリア４に対してそれぞれ、未使用ブロック管理テーブル５が用意されている。未使用のブロックとはデータが未記録のブロックである。この未使用ブロック管理テーブル５は、全記録領域１において特定のブロックにまとめてあるいは複数のブロックに分割して記録されている。図３にこの未使用ブロック管理テーブル５の構成を示す。この未使用ブロック管理テーブル５はエリア４内の未使用ブロック３の先頭ＬＢＡ（未使用のブロックに属する先頭のセクタのＬＢＡ）を管理する未使用ブロックリスト６と、自エリア４内の未使用ブロックの数を管理するカウンタ７とを有する。
【００２８】
ファイルはファイル管理テーブルによって管理される。図４にこのファイル管理テーブル８の構成を示す。このファイル管理テーブル８は、未使用ブロック管理テーブル５と同様、全記録領域１において特定のブロックにまとめてあるいは複数のブロックに分割して記録されている。ファイル管理テーブル８はファイル名９とそのファイルを構成する全てのブロック３の先頭ＬＢＡの番号１０とで構成される。
【００２９】
次に、以上のように全記録領域１がブロック３及びエリア４の単位で分割されたディスクに対してファイル操作などの各種操作を行う手順を説明する。
【００３０】
図５及び図６に未使用ブロック管理テーブル５の変更の例を、図７にファイル管理テーブル８の変更の例を示す。
【００３１】
まず、初期化の手順を説明する。図８にこの初期化手順の流れを示す。
【００３２】
各エリアの未使用ブロック管理テーブル５を作成する。このとき全てのエリアの未使用ブロック管理テーブル５の未使用ブロックリスト６に、当該エリアに属する全ブロックの先頭ＬＢＡを格納し（図５の１）、未使用ブロック数を管理するカウンタ７にその全ブロック数の値をセットする。このようにして作成したエリア毎の未使用ブロック管理テーブル５をディスク上の特定のブロックに書き込む（ステップ８０１）。続いて、空のファイル管理テーブル８を作成し、ディスク上の特定のブロックに書き込む（ステップ８０２）。
【００３３】
次に、ファイル書き込み手順を説明する。図９にファイル書き込み手順の流れを示す。
【００３４】
まず、ファイル管理テーブル８に今回書き込もうとしているファイル名９を書き込む（ステップ９０１）。ディスクの最外周より昇順もしくは最内周より降順に、未使用ブロック管理テーブル５のカウンタ７の値を調べて未使用ブロックをもつエリアを検出する（ステップ９０２）。最初に検出したエリアの未使用ブロック管理テーブル５の未使用ブロックリスト６から先頭の未使用ブロックの先頭ＬＢＡを読み出す（ステップ９０３）。そして１ブロック分のファイルデータをステップ９０３で読み出した先頭ＬＢＡに基づいて上記未使用ブロックに書き込む（ステップ９０４）。
【００３５】
ファイルデータを書き込んだエリアの未使用ブロックリスト６から、ステップ９０４で書き込みに使用したブロックの先頭ＬＢＡを削除する。また、同エリアのカウンタ７の値をデクリメントする（ステップ９０５）。続いて、ファイル管理テーブル８にステップ９０５で未使用ブロックリスト６から削除した先頭ＬＢＡをファイル名と対応付けて記入する（ステップ９０６）。
【００３６】
続きのファイルデータが残っているならば（ステップ９０７のＮＯ）ステップ９０２に戻って次のエリアを検出し、ステップ９０３からステップ９０６までの処理を同様に実行する。書き込むファイルデータが終了したなら（ステップ９０７のＹＥＳ）ファイル書き込み手順を終了する。
【００３７】
なお、エリアをディスク最外周より昇順に検出する場合で、もし検出エリアがディスク最内周のエリアであるＭＡＸエリアに達したなら、続いてディスク最内周から降順にエリアの検出を行う。また、エリアをディスク最内周より降順に検出する場合で、もし検出エリアがディスク最外周のエリアであるＭＩＮエリアに達したなら、続いてディスク最外周から昇順にエリアの検出を行う。
【００３８】
図２に示す最初のファイルＡの書き込みを完了した時点の未使用ブロックリスト６の内容を図５の２に、ファイル管理テーブル８の内容を図７の２に示す。この後、続いて図２に示すファイルＢ、ファイルＣ、ファイルＤを追記した後の未使用ブロックリスト６の内容の変化を図５の３、４、５に、ファイル管理テーブル８の内容の変化を図７の３、４、５にそれぞれ示す。
【００３９】
次に、ファイルの読み込み手順を説明する。図１０にファイルの読み込み手順の流れを示す。
【００４０】
まず、ファイル管理テーブル８から、今回読み込もうとしているファイル名を検索する（ステップ１００１）。検索したファイル名に対応してファイル管理テーブル８に登録されている最初のブロックの先頭ＬＢＡを読み出す（ステップ１００２）。読み出した先頭ＬＢＡに基づいてディスクから１ブロック分のファイルデータを読み出す（ステップ１００３）。ファイル管理テーブル８に次のブロックの先頭ＬＢＡがあれば（ステップ１００４のＹＥＳ）、ステップ１００２に戻り、次の１ブロック分のデータを読み出し、ファイル管理テーブル８に次のブロックの先頭ＬＢＡが無ければ（ステップ１００４のＮＯ）、ファイルの読み込み手順を終了する。
【００４１】
次に、ファイルの消去方法を説明する。図１１にファイル消去手順の流れを示す。
【００４２】
まず、ファイル管理テーブル８から今回消去しようとしているファイル名を検索する（ステップ１１０１）。検索したファイル名に対応してファイル管理テーブル８に登録されている全てのブロックの先頭ＬＢＡを読み出し（ステップ１１０２）、これらの先頭ＬＢＡに基づいてディスクから該当する各ブロックのファイルデータを消去する（ステップ１１０３）。
【００４３】
この後、ファイル管理テーブル８から、消去したファイルに対応する全てのブロックの先頭ＬＢＡ番号を消去する（ステップ１１０４）。ここで、ディスク上のデータの消去（ステップ１１０３）は省略することもできる。ステップ１１０４を行うことで該当ブロックは書き込み可能となり、ステップ１１０３を行わなくても次に該当ブロックを使用する時に上書きされ、前のデータは自動的に消去される。続いて、ファイル管理テーブル８から消去した先頭ＬＢＡを、ファイルデータの消去が行われたブロックを含む各エリアそれぞれの未使用ブロック管理テーブル５の未使用ブロックリスト６に追記するとともに、当該未使用ブロック管理テーブル５内のカウンタ７の値を追記したブロック数だけアップする（ステップ１１０５）。
【００４４】
その後、未使用ブロックリスト６をエリアごとにソートする（ステップ１１０６）。但し、ステップ１１０５において、初めから昇順或いは降順に並ぶように未使用ブロックリスト６にブロックの先頭ＬＢＡが追記される場合は、このソートを省略してもよい。
【００４５】
図２に示すファイルＡ、Ｃ、Ｄが順に消去される場合の未使用ブロックリスト６の内容の変化を図６の６、７、８に示し、ファイル管理テーブル８の内容の変化を図７の６、７、８に示す。
【００４６】
図１２に、以上のファイル操作が実行されるディスク記憶装置１００と、そのファイル操作機構を含むＰＣなどのホスト装置２００の電気的な構成を示す。
【００４７】
ディスク記憶装置１００において、プリアンプ１１は回転するディスク１２から磁気ヘッド１３によって読み出された信号を増幅するリードアンプと、ディスク１２に書き込むデータをライト電流に変換するライトアンプとを有する。リード／ライト信号処理回路１４はディスク１２への書き込むデータの符号化処理及びディスク１２からの読み込みデータの復号化処理などの各種信号処理を行う回路である。ハードディスクコントローラ（ＨＤＣ）１５はホスト装置２００との間でのデータ転送を処理するコントローラである。データバッファ１６は、ディスク１２に対するデータの読み書きの速度とホスト装置２００との間でのデータ転送速度との差を吸収するために転送データを一時的に保持するメモリである。システムコントローラ１７はディスク記憶装置１００全体の動作を制御する。システムコントローラ１７はボイスコイルモータ（ＶＣＭ）１９を駆動するＶＣＭ駆動回路２０にシークやヘッドの位置決めのための制御量を出力したり、スピンドルモータ（ＳＰＭ）２１を駆動するＳＰＭ駆動回路２２に制御信号を供給してディスク１２を所定の回転数で駆動するように制御する。
【００４８】
ホスト装置２００は、ディスク記憶装置１００に対してデータの読み書き、消去のためのコマンドを送って、ディスク記憶装置１００にディスク１２に対するファイル操作を実行させる。コマンドには操作対象のセクタのＬＢＡが含まれている。
【００４９】
ホスト装置２００は、具体的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１、システムＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３２、システムバス３３、ディスク記憶装置１００とのインタフェース３４を有している。ＣＰＵ３１は、システムＲＡＭ３２に記憶されている、ファイル操作プログラム１８に基づいて上記の初期化手順、書き込み手順、読み込み手順及び消去手順などのファイル操作をディスク記憶装置１００を通して実行する。
【００５０】
また、システムＲＡＭ３２にはテーブル保存部２３が確保され、ここに未使用ブロック管理テーブル５及びファイル管理テーブル８の内容が保存される。ＣＰＵ３１がファイル操作プログラム１８に基づいてファイル操作を行う際には、上記テーブル保存部２３に確保されている未使用ブロック管理テーブル５及びファイル管理テーブル８を参照することによって高速に処理が行われる。
【００５１】
以上説明したディスク記憶装置のファイル操作機構によれば、ファイルデータが、ディスク全記録領域１を均等に分割する、１以上の連続する各エリアに１ブロック分ずつ書き込まれるので、一つのファイルデータのアクセス時に変位の大きいシークが発生する事態を抑止でき、速度的に安定したデータ転送が実現される。また、シーク回数の低減により、省電力、シーク動作音による騒音低減、ディスク記憶装置１００そのものの長寿命化といった効果が得られる。
【００５２】
ところで、ディスク記憶装置１００ではディスク１２に対するデータの読み書きの速度がディスク１２の外周側と内周側とで線速度の差の分だけ異なる。そこで、図１２に示したように、ホスト装置２００に上記ディスク内外周での読み書きの速度の差を吸収可能なサイズのリードライト用のバッファ２４を設けることによって、見かけ上の読み書きの速度をより一定にすることが可能になる。
【００５３】
また、ホスト装置２００では、ファイルの書き込み、読み込み、消去などのファイル操作命令が発生する以前に、ディスク１２に記録されている未使用ブロック管理テーブル５及びファイル管理テーブル８の内容がシステムＲＡＭ３２に読み込まれ、実際にファイル操作命令が発生した場合にはシステムＲＡＭ３２から未使用ブロック管理テーブル５及びファイル管理テーブル８の内容を参照してファイル操作のための手順が実行される。そしてファイル操作の完了に対応してシステムＲＡＭ３２内の未使用ブロック管理テーブル５及びファイル管理テーブル８の内容が更新され、その更新内容がディスク１２に書き戻される。これによってディスク１２に記録されている未使用ブロック管理テーブル５及びファイル管理テーブル８をファイル操作の都度読み込む場合に比べ、高速にファイル操作命令を実行することができる。
【００５４】
次に、ファイルアクセス速度を重視した第２のファイル書き込み手順について説明する。この第２のファイル書き込み手順は、シーク発生を抑制して読み書き速度変動を抑制できる前述のファイル書き込み手順との間で切り替えて実行させることができる。
【００５５】
以下に、このファイルアクセス速度を重視した第２のファイル書き込み手順を説明する。図１３にこの第２のファイル書き込み手順の流れを示す。
【００５６】
まず、ファイル管理テーブル８に今回書き込もうとしているファイル名９を書き込む（ステップ１３０１）。ディスクの最外周より昇順もしくは最内周より降順に、未使用ブロック管理テーブル５のカウンタ７の値を調べて未使用ブロックをもつエリアを検出する（ステップ１３０２）。最初に検出したエリアの未使用ブロック管理テーブル５の未使用ブロックリスト６から先頭の未使用ブロックの先頭ＬＢＡを読み出す（ステップ１３０３）。そして１ブロック分のファイルデータをステップ１３０３で読み出した先頭ＬＢＡに基づいて上記未使用ブロックに書き込む（ステップ１３０４）。
【００５７】
ファイルデータを書き込んだエリアの未使用ブロックリスト６から、ステップ１３０４で書き込みに使用したブロックの先頭ＬＢＡを削除する。また、同エリアのカウンタ７の値をデクリメントする（ステップ１３０５）。続いて、ファイル管理テーブル８にステップ１３０５で未使用ブロックリスト６から削除した先頭ＬＢＡをファイル名と対応付けて記入する（ステップ１３０６）。
【００５８】
続きのファイルデータが残っているならば（ステップ１３０７のＮＯ）、同じエリアに次の未使用ブロックが有るかどうかを調べ（ステップ１３０８）、次の未使用ブロックが有れば、ステップ１３０３に戻り、同じエリアに次の未使用ブロックに次の１ブロック分のファイルデータを書き込む。同じエリアに次の未使用ブロックが無ければステップ１３０２に戻って、未使用ブロックをもつ次のエリアの検出を行い、ステップ１３０３からステップ１３０６までの処理を同様に実行する。書き込むファイルデータが終了したなら（ステップ１３０７のＹＥＳ）、第２のファイル書き込み手順を終了する。
【００５９】
このようにして第２のファイル書き込み手順によれば、一つのファイルデータが一つのエリアあるいは連続する複数のエリアに集中して配置される。したがって、高速なファイルアクセスが可能になる。
【００６０】
次に、ファイル書き込み時に、未使用ブロックを含むエリアをディスク１２の外周側から昇順に検出するか、内周側から降順に検出するかをライト用のデータバッファ１６のバッファリング量に基づいて最適に切り替える制御手順を説明する。図１４に、この制御手順の流れを示す。
【００６１】
ディスク１２の外周側は内周側よりも読み書き速度が高いので、バッファリング量がある値以上に大きい場合には（ステップ１４０１のＹＥＳ）、ディスク外周側より未使用ブロックを含むエリアの検出を行い（ステップ１４０２）、バッファリング量がある値未満の場合にはディスク内周側より未使用ブロックを含むエリアの検出を行う（ステップ１４０３）。これによりバッファオーバフローによりホスト装置がデータ転送を待たされる確率を低減することができ、書き込み速度を向上させることができる。
【００６２】
さらに、制御プログラム１８は、未使用ブロックリスト６の断片の度合いを測定して、断片の度合いが閾値に達したときに自動的にソーティングを行う手順を含むものであってよい。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、ファイルの読み書き、消去などのファイル操作時に変位の大きいシークの発生を抑止でき、ディスク全域にわたって速度変動の少ないデータ転送を実現することができる。また、サイズの大きいファイルが記録される場合においての記録領域の利用効率を高めることができる。
【図面の簡単な説明】
【図１】本発明の一実施形態であるディスク記憶装置のファイル操作機構を採用した場合のディスク記録領域の論理的な分割構造を示す図である。
【図２】図１に示す記録領域の論理的な分割構造とファイルデータとの関係を示す図である。
【図３】未使用ブロック管理テーブルの構成を示す図である。
【図４】ファイル管理テーブルの構成を示す図である。
【図５】未使用ブロック管理テーブルの変更の例を示す図である。
【図６】図５に続く未使用ブロック管理テーブルの変更の例を示す図である。
【図７】ファイル管理テーブルの変更の例を示す図である。
【図８】ファイル操作のための初期化手順の流れを示すフローチャートである。
【図９】ファイル書き込み手順の流れを示すフローチャートである。
【図１０】ファイルの読み込み手順の流れを示すフローチャートである。
【図１１】ファイル消去手順の流れを示すフローチャートである。
【図１２】本発明の一実施形態であるディスク記憶装置とそのファイル操作機構を含むホスト装置の電気的な構成を示すブロック図である。
【図１３】第２のファイル書き込み手順の流れを示すフローチャートである。
【図１４】バッファリング量に基づくエリア検出のための制御手順を示すフローチャートである。
【符号の説明】
１      全記録領域
２      セクタ
３      ブロック
４      エリア
５      使用ブロック管理テーブル
６      未使用ブロックリスト
７      カウンタ
８      ファイル管理テーブル
１２      ディスク
１８      ファイル操作プログラム
２３      テーブル保存部
２４      リードライト用のバッファ
３１      ＣＰＵ
３２      システムＲＡＭ
１００      ディスク記憶装置
２００      ホスト装置
【図１】
2004220734.tif 000003
【図２】
2004220734.tif 000004
【図３】
2004220734.tif 000005
【図４】
2004220734.tif 000006
【図５】
2004220734.tif 000007
【図６】
2004220734.tif 000008
【図７】
2004220734.tif 000009
【図８】
2004220734.tif 000010
【図９】
2004220734.tif 000011
【図１０】
2004220734.tif 000012
【図１１】
2004220734.tif 000013
【図１２】
2004220734.tif 000014
【図１３】
2004220734.tif 000015
【図１４】
2004220734.tif 000016