(57)【要約】【課題】デフラグ実行時におけるデフラグ実行対象の蓄積装置へのアクセスを伴うアプリケーションの動作速度に与える影響を従来のものよりも低減化することができる記録再生装置及び記録再生方法を提供すること。【解決手段】記録再生装置１００は、ファイルシステム部１０と、蓄積装置制御部２０とを備え、ファイルシステム部１０は、ファイル入出力管理部１１と、データバッファ１２と、コマンド送受信部１３と、ファイル管理部１４と、コマンドバッファ１５と、ファイル管理テーブル１６ａ及びファイル分断情報１６ｂを記憶するファイル管理バッファ１６と、デフラグ手順コマンド生成部１７と、デフラグ手順バッファ１８とを備え、デフラグ手順コマンド生成部１７は、コマンドバッファ１５が空のときファイル分断情報１６ｂを基にデフラグ手順情報を生成する。【選択図】図１
2009093712.tif 000002
【特許請求の範囲】
【請求項１】
ファイルデータを蓄積する蓄積装置に対する制御コマンドを一時的に格納するコマンド格納手段と、前記コマンド格納手段が空のとき前記蓄積装置において複数の領域に分断されて記録されたファイルデータのうち少なくとも１つの分断箇所の分断化を解消するための分断化解消コマンドを生成する分断化解消コマンド生成手段とを備えたことを特徴とする記録再生装置。
【請求項２】
前記分断化解消コマンド生成手段は、複数の領域に分断されて記録された前記ファイルデータの分断箇所の情報を示すファイル分断情報に基づいて前記分断化解消コマンドを生成することを特徴とする請求項１に記載の記録再生装置。
【請求項３】
前記分断化解消コマンド生成手段は、前記蓄積装置において前記ファイルデータを管理するためのファイル管理テーブルと、前記ファイル分断情報とに基づき、前記ファイルデータの分断化を解消するための分断化解消手順情報を生成することを特徴とする請求項２に記載の記録再生装置。
【請求項４】
ファイルデータを蓄積する蓄積装置に対する制御コマンドを一時的に格納するコマンド格納手段を備えた記録再生装置において、前記ファイルデータを記録又は再生する記録再生方法であって、
前記コマンド格納手段が空のとき前記蓄積装置において複数の領域に分断されて記録されたファイルデータのうち少なくとも１つの分断箇所の分断化を解消するための分断化解消コマンドを生成し分断化解消を実行するステップを含むことを特徴とする記録再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばハードディスクドライブに対してファイルの記録及び再生を行う記録再生装置及び記録再生方法に関する。
【背景技術】
【０００２】
データを蓄積する蓄積装置、例えばハードディスクドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）に対し、文書データや画像データ等を含むファイル（以下、単に「ファイル」という。）の記録再生を繰り返すと、ファイルが分断されて記録され、この分断化（フラグメンテーション）が記録再生の速度を低下させる１つの要因となる。この解決策としては、フラグメンテーションの解消（デフラグメンテーション、略語：デフラグ）がある。デフラグ用のツールは既に実現されており、例えばマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）はこのツールを標準ツールとして提供している。
【０００３】
デフラグの実行によりＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の使用量や蓄積装置へのアクセス回数が増加するため、一般的にデフラグの実行中はＣＰＵや蓄積装置を使用する他のアプリケーションなどの動作が遅くなる。
【０００４】
また、ファイルの分断化は、ファイルを記録しようとする連続空き領域がファイルのサイズよりも小さい場合に発生するが、一般的にはファイルを記録し始めた時点ではそのファイルのサイズは不明であるため、記録装置上の複数の連続空き領域の中から記録しようとするファイルにとって最適な空き領域を選択することはできない。連続空き領域の中でサイズの最も大きい領域を選択するのが無難であるが、ファイルの記録を繰り返すうちにその領域はだんだんと小さくなり、いつかは記録するファイルのサイズよりも小さくなる。ファイル記録の際に、ファイルのサイズよりも小さな連続空き領域を選択したときに、ファイルが分断記録されないだけの連続した空き領域を確保するためにデフラグを実行してからファイルを記録するという方法も考えられるが、この方法によりファイルの分断化は回避できるものの、そのファイルの記録に要する時間はデフラグにより移動するデータの量に応じて長くなる。
【０００５】
したがって、他のアプリケーションによるＣＰＵや蓄積装置へのアクセスが少ないと想定されるタイミングを計ってデフラグを実行するのが一般的である。例えば、ユーザが指示したときに実行するもの（例えば、特許文献１参照）、予め指定された時刻に実行するもの（例えば、特許文献２及び３参照）、システム終了時に実行するもの（例えば、特許文献４参照）、既に分かっている別のアプリケーションが動作する時間帯を避けて実行するもの（例えば、特許文献３及び５参照）、他の記録再生動作を利用して効率的に実行するもの（例えば、特許文献６参照）などが既に提案されている。
【特許文献１】特開２００１−２８０９７６号公報
【特許文献２】特開２００４−２６４９５３号公報
【特許文献３】特開２００５−９２４８４号公報
【特許文献４】特開２００４−１２９６５号公報
【特許文献５】特開２００３−２８３９７１号公報
【特許文献６】特開２００２−２６８９２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、一般的なデフラグのツールは一度デフラグの動作が開始すると、デフラグが終了するまで中断することなく動作を続ける。また、デフラグのツールは、ファイル分断状況の調査から始めるので、フラグメンテーションがほとんど発生していない場合でもある程度まとまった時間を要する。したがって、ＣＰＵや蓄積装置などのリソースを大量に消費するアプリケーションとデフラグとが同時に動作している間は互いの処理速度が遅くなる。特にＨＤＤなどの蓄積装置へのアクセスが競合すると、互いのアクセス速度が著しく低下する。その結果、デフラグの動作により、デフラグ動作対象の記録装置へのアクセスを伴うアプリケーションの動作速度が遅くなる。したがって、アプリケーションの動作速度を落とさないようにするには、デフラグとアプリケーションとが同時に動作しないようにすることが求められる。
【０００７】
一般的には、同じホスト上で動作する他のアプリケーションが動作していない時、又は他のアプリケーションへの影響が小さいと想定される時を狙って、手動又は自動でデフラグを実行するが、デフラグとアプリケーションとが同時に動作することは、確率は低いがあり得る。
【０００８】
例えば、特許文献１に示された、ユーザが指示したときにデフラグを実行するものは、複数のユーザが扱うシステムにおいては、デフラグを指示したユーザ以外のユーザがアプリケーションを使用する可能性があり、その場合はデフラグとアプリケーションとが同時に動作することとなる。また、デフラグを指示したユーザ本人でも、デフラグを指示した直後に急にアプリケーションを使用しなければならないこともあり、その場合は、動作速度が遅い状態でアプリケーションを動作させるか、デフラグを中断する必要がある。
【０００９】
また、特許文献２及び３に示された、予め指定された時刻にデフラグを実行するものは、複数のユーザが扱うシステムにおいては、指定された時刻に誰かが使用する可能性がある。
【００１０】
また、特許文献４に示された、システム終了時にデフラグを実行するものは、２４時間運用中はデフラグが実行されないので、適用できない。
【００１１】
また、特許文献３及び５に示された、既に分かっている別のアプリケーションが動作する時間帯を避けてデフラグを実行するものは、他のすべてのアプリケーションの動作スケジュールが事前に分かっている場合のみ有効である。
【００１２】
また、特許文献６に示された、他の記録再生動作を利用して効率的にデフラグを実行するものは、その記録再生動作が行われていないファイルのデフラグは実行されない。
【００１３】
以上のように、従来のものにおいては、デフラグとアプリケーションとが同時に動作することがあり、アプリケーションの動作速度がデフラグの実行によって低下するという課題があった。
【００１４】
本発明は、このような事情に鑑みてなされたものであり、デフラグ実行時におけるデフラグ実行対象の蓄積装置へのアクセスを伴うアプリケーションの動作速度に与える影響を従来のものよりも低減化することができる記録再生装置及び記録再生方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の記録再生装置は、ファイルデータを蓄積する蓄積装置に対する制御コマンドを一時的に格納するコマンド格納手段と、前記コマンド格納手段が空のとき前記蓄積装置において複数の領域に分断されて記録されたファイルデータのうち少なくとも１つの分断箇所の分断化を解消するための分断化解消コマンドを生成する分断化解消コマンド生成手段とを備えた構成を有している。
【００１６】
この構成により、本発明の記録再生装置は、コマンド格納手段が空のとき少なくとも１つの分断箇所に対応する分断解消コマンドを生成してデフラグを実行することで、デフラグの実行単位を細かくすることにより、少なくとも１つの分断箇所に対するデフラグ実行時間を短くすることができる。したがって、本発明の記録再生装置は、アプリケーションの動作速度に与える影響を従来のものよりも低減化することができる。
【００１７】
また、本発明の記録再生装置は、前記分断化解消コマンド生成手段が、複数の領域に分断されて記録された前記ファイルデータの分断箇所の情報を示すファイル分断情報に基づいて前記分断化解消コマンドを生成する構成を有している。
【００１８】
この構成により、本発明の記録再生装置は、ファイル分断情報に基づいて分断解消コマンドを生成することにより、蓄積装置におけるファイルの分断箇所をＣＰＵを極力使用せずに比較的高速に検索することができて好ましい。
【００１９】
また、本発明の記録再生装置は、前記分断化解消コマンド生成手段は、前記蓄積装置において前記ファイルデータを管理するためのファイル管理テーブルと、前記ファイル分断情報とに基づき、前記ファイルデータの分断化を解消するための分断化解消手順情報を生成する構成を有している。
【００２０】
この構成により、本発明の記録再生装置は、生成した分断化解消手順情報に基づいてデフラグを実行することができる。
【００２１】
本発明の記録再生方法は、ファイルデータを蓄積する蓄積装置に対する制御コマンドを一時的に格納するコマンド格納手段を備えた記録再生装置において、前記ファイルデータを記録又は再生する記録再生方法であって、前記コマンド格納手段が空のとき前記蓄積装置において複数の領域に分断されて記録されたファイルデータのうち少なくとも１つの分断箇所の分断化を解消するための分断化解消コマンドを生成し分断化解消を実行するステップを含む構成を有している。
【００２２】
この構成により、本発明の記録再生方法は、コマンド格納手段が空のとき少なくとも１つの分断箇所に対応する分断解消コマンドを生成してデフラグを実行することで、デフラグの実行単位を細かくすることにより、少なくとも１つの分断箇所に対するデフラグ実行時間を短くすることができる。したがって、本発明の記録再生方法は、アプリケーションの動作速度に与える影響を従来のものよりも低減化することができる。
【発明の効果】
【００２３】
本発明は、デフラグ実行時におけるデフラグ実行対象の蓄積装置へのアクセスを伴うアプリケーションの動作速度に与える影響を従来のものよりも低減化することができるという効果を有する記録再生装置及び記録再生方法を提供することができるものである。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の一実施の形態について図面を用いて説明する。図１は、本実施の形態における記録再生装置１００の概略構成を示すブロック図である。
【００２５】
図１に示すように、本実施の形態における記録再生装置１００は、ファイルシステム部１０と、蓄積装置制御部２０とを備えている。なお、図示を省略したが、記録再生装置１００は、ＣＰＵやメモリなどを備えている。また、ファイルシステム部１０及び蓄積装置制御部２０は、例えばＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）として動作するソフトウェアプログラムで構成される。このソフトウェアプログラムは、記録再生装置１００のメモリにロードされ、ＣＰＵによって処理される。
【００２６】
ファイルシステム部１０は、ＶＦＳ（Ｖｉｒｔｕａｌ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）１０ａと、ファイルシステム１０ｂとを備え、蓄積装置１０２（例えばＨＤＤ）を制御するための制御コマンド（以下「蓄積装置制御コマンド」という。）を蓄積装置制御部２０に出力するものである。この蓄積装置制御コマンドは、ファイルの記録、再生及び消去に関するコマンド（以下「ファイル記録再生コマンド」という。）を含む。
【００２７】
ＶＦＳ１０ａは、仕様の異なるファイルシステムに対し、共通のインターフェースを提供するものである。ファイルシステム１０ｂは、例えばｅｘｔ２ｆｓ（ｓｅｃｏｎｄ  ＥＸＴｅｎｄｅｄ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＪＦＳ（Ｊｏｕｒｎａｌｅｄ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＸＦＳ（ｅＸｔｅｒｎａｌ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）などが存在する。
【００２８】
ファイルシステム部１０は、通常のＯＳではファイルシステム及びファイルシステムのドライバに相当する部分である。一般的に、蓄積装置１０２はセクタと呼ばれるブロック単位で管理されており、ファイル単位での管理はされない。ファイルシステム部１０はファイルを蓄積装置１０２内のどの部分に格納するかを管理するためのシステムであり、ファイルシステム部１０を備えることにより、ユーザはファイルが蓄積装置１０２内のどの部分に格納されているかを全く意識せずに蓄積装置１０２に対してファイルを記録・再生することができ、ファイル単位での管理が可能となる。ファイル管理やファイル記録再生速度などの観点から、すべてのファイルは分断されずに連続するブロックに記録されるのが望ましいが、ファイルの記録・消去を繰り返すうちに、蓄積装置１０２の空き領域の都合上、ファイルの分断化は避けられなくなる。
【００２９】
蓄積装置制御部２０は、蓄積装置制御コマンド変換部２０ａと、蓄積装置通信部２０ｂとを備え、蓄積装置１０２のインターフェース用コマンドを生成するものである。蓄積装置制御コマンド変換部２０ａは、ファイルシステム部１０から出力される蓄積装置制御コマンドを蓄積装置通信部２０ｂと蓄積装置１０２との間で使用するプロトコルの規格で決められたフォーマットに従って変換して蓄積装置通信部２０ｂに出力するものである。蓄積装置通信部２０ｂは、例えばＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）やＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）などの規格に基づいて蓄積装置１０２と通信するものである。
【００３０】
次に、本実施の形態における記録再生装置１００の詳細な構成について説明する。図２は、本実施の形態における記録再生装置１００の詳細な構成を示している。なお、図２においてはＶＦＳ１０ａ（図１参照）の図示を省略した。理由は、ＶＦＳ１０ａは、ファイルシステム１０ｂの種類に関係なく、アプリケーション１０１から単一のインターフェースで操作できるものであり、以下の説明では単一のファイルシステムに関する説明のみ行うためである。また、近年のほとんどのＯＳは、記録装置の記録再生動作の遅さをカバーするために蓄積装置との間にキャッシュを持っており、ファイルの記録再生は蓄積装置に対して直接行われずキャッシュを介して行われるため、頻繁にアクセスされるファイルの記録再生速度が大幅に改善される。したがって、一般のファイルシステムでは、キャッシュへの記録再生及びキャッシュから蓄積装置への記録再生に関わる機能ブロックが存在するが、図２においては図の複雑化を避けるため、ＯＳのキャッシュに関わる部分の図示は省略した。
【００３１】
図２に示すように、本実施の形態における記録再生装置１００は、蓄積装置１０２に格納されたファイルを管理するファイルシステム部１０と、蓄積装置１０２を制御する蓄積装置制御部２０とを備えている。
【００３２】
ファイルシステム部１０は、ファイル入出力管理部１１と、データバッファ１２と、コマンド送受信部１３と、ファイル管理部１４と、コマンドバッファ１５と、ファイル管理テーブル１６ａ及びファイル分断情報１６ｂを記憶するファイル管理バッファ１６と、デフラグ手順コマンド生成部１７と、デフラグ手順バッファ１８とを備えている。
【００３３】
ファイル入出力管理部１１は、ファイル実データの入出力を管理するものである。また、ファイル入出力管理部１１は、アプリケーション１０１からコマンド及びファイル名などのファイル情報を入力し、ファイル管理部１４に出力するものである。
【００３４】
データバッファ１２は、ファイル実データを一時的に蓄えるものである。
【００３５】
コマンド送受信部１３は、後述するコマンドバッファ１５及びデフラグ手順コマンド生成部１７から蓄積装置制御コマンドを受信するものである。また、コマンド送受信部１３は、蓄積装置制御コマンドを蓄積装置制御部２０に送信するとともに、蓄積装置制御部２０に対してファイル実データを送受信するようになっている。
【００３６】
さらに、コマンド送受信部１３は、コマンドバッファ１５が空か否かを確認するようになっている。そして、コマンド送受信部１３は、コマンドバッファ１５が空のとき、デフラグの手順を示すデフラグ手順情報をデフラグ手順コマンド生成部１７に生成するよう指示するようになっている。なお、デフラグ手順情報は、特許請求の範囲に記載の分断化解消手順情報に対応する。
【００３７】
ファイル管理部１４は、ファイルの記録、再生及び消去に関する管理を行うものである。また、ファイル管理部１４は、ファイル管理バッファ１６に記憶されたファイル管理テーブル１６ａ及びファイル分断情報１６ｂを管理するものである。
【００３８】
コマンドバッファ１５は、ファイル管理部１４からの蓄積装置制御コマンドを一時的に蓄え、コマンド送受信部１３に出力するものである。なお、コマンドバッファ１５は、本発明のコマンド格納手段に対応する。
【００３９】
ファイル管理バッファ１６は、ファイル管理テーブル１６ａ及びファイル分断情報１６ｂを記憶するものである。ここで、ファイル管理テーブル１６ａは、ファイル実データが蓄積装置１０２内のどの部分に格納されているかを管理するためのテーブルであり、一般的には例えばＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）と呼ばれているものである。ファイルの記録・再生・消去に関しては、ファイル管理部１４がファイル管理テーブル１６ａを参照しながら実行するようになっている。
【００４０】
なお、ファイル管理テーブル１６ａは、実際には蓄積装置１０２内で管理されているが、通常はパフォーマンス向上のため、起動時（ソフトウェアプログラムが記録再生装置１００にマウントされたとき）にファイル管理バッファ１６内に一部又は全部がコピーされ、テーブルの内容については一定時間ごとに蓄積装置１０２内にコピーすることで、定期的に同期をとるような仕組みになっている。同期をとる仕組みについては、図２への記載を省略した。
【００４１】
次に、ファイル分断情報１６ｂは、蓄積装置１０２におけるファイルの分断箇所を高速に検索するための情報であり、ファイルが分断されて記録されるときには、ファイル管理部１４は、ファイル管理テーブル１６ａを更新し、分断された箇所を示す情報をファイル分断情報１６ｂに登録するようになっている。ここで、ファイル分断情報１６ｂは、実装されていなくてもファイル管理テーブル１６ａを参照すれば得られる情報である。しかしながら、デフラグの動作がアプリケーション１０１の動作を極力妨げないようにするため、分断されているファイルとファイルの分断箇所とを示す情報をデフラグ手順コマンド生成部１７がＣＰＵを極力使用せずに高速に検索できるよう、ファイルシステム部１０がファイル分断情報１６ｂを持つことが好ましい。
【００４２】
デフラグ手順コマンド生成部１７は、コマンド送受信部１３の指示に従って、ファイル分断情報１６ｂを基にデフラグの手順を示すデフラグ手順情報を生成するものである。また、デフラグ手順コマンド生成部１７は、生成したデフラグ手順情報を蓄積装置制御コマンドに変換してコマンド送受信部１３に出力するものである。この蓄積装置制御コマンドは、コマンド送受信部１３によって蓄積装置制御部２０に出力されるようになっている。なお、デフラグ手順コマンド生成部１７は、本発明の分断化解消コマンド生成手段に対応する。また、デフラグ手順コマンド生成部１７がコマンド送受信部１３に出力するコマンドは、特許請求の範囲に記載の分断化解消コマンドに対応する。
【００４３】
デフラグ手順バッファ１８は、デフラグ手順コマンド生成部１７が生成したデフラグ手順情報を一時的に蓄えるものである。
【００４４】
以上のように、本実施の形態におけるファイルシステム部１０は、蓄積装置１０２におけるファイルの分断化の解消を考慮した管理システムになっている。
【００４５】
なお、ＯＳが提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）で使用できるように、ファイルシステムのドライバとしてＶＦＳ１０ａの下に他のファイルシステムと同様にファイルシステム１０ｂを実装するのが望ましいが、蓄積装置１０２を管理するアプリケーション１０１でファイルシステム１０ｂを実装し、独自ＡＰＩで動作させることもできる。
【００４６】
次に、本実施の形態における記録再生装置１００の動作について説明する。以下において（１）ファイルの記録、再生、消去に関する動作説明、（２）デフラグに関する処理の動作説明の順で記載する。
【００４７】
（１）ファイルの記録、再生、消去に関する動作説明
ファイルシステム部１０が、アプリケーション１０１の指示により、（ａ）ファイルを蓄積装置１０２に記録するとき、（ｂ）ファイルを蓄積装置１０２から再生するとき、（ｃ）ファイルを蓄積装置１０２から消去するときについての動作をそれぞれ説明する。
【００４８】
（ａ）アプリケーション１０１の指示によりファイルを蓄積装置１０２に記録するとき、ファイルシステム部１０は次のように動作する。
【００４９】
ファイル入出力管理部１１は、蓄積装置１０２に記録するファイルのファイルサイズが未知数であるため、データサイズをカウントしながらアプリケーション１０１からのファイル実データをデータバッファ１２に送る。データバッファ１２は、ファイル入出力管理部１１からファイル実データを一時的に蓄える。
【００５０】
前述の動作と並行して、ファイル入出力管理部１１は、記録するファイルのファイル情報をアプリケーション１０１から受け取り、ファイル管理部１４にファイル情報を送る。ここで、ファイル情報はファイル名情報及びファイルのデータサイズ情報（書き込み時はファイル全体のサイズは未知数なので、実データがデータバッファ１２に送られたサイズ）などで構成されるファイルに関する情報である。
【００５１】
ファイル管理部１４は、指定されたファイルと同じ名前のファイルが存在しないか確認する。指定されたファイルと同じ名前のファイルが存在しない場合は、そのファイルを登録し、ファイル管理バッファ１６に記憶されたファイル管理テーブル１６ａを基に蓄積装置１０２の空き領域を探し、ファイル実データを蓄積装置１０２に格納するためアドレス情報を決定し、動作モード（記録）、データ格納先頭アドレス、データ長の情報をセットでコマンドバッファ１５にファイル記録コマンドとして格納する。指定されたファイルと同じ名前のファイルが存在する場合は、指定されたファイルの記録前又は記録後に既に記録されていた同じ名前のファイルを消去するか、既に記録されていた同じ名前のファイルの記録領域を空き領域として、指定されたファイルを記録する。
【００５２】
また、ファイル管理部１４は、ファイルが分断されて記録される場合は、分断数分の動作モード（記録）、データ格納先頭アドレス、データ長の情報をセットでコマンドバッファ１５にファイル記録コマンドとして格納する。その後、ファイル管理部１４は、ファイルの記録場所に関する情報をファイル管理テーブル１６ａに追加登録する。
【００５３】
コマンド送受信部１３は、データバッファ１２及びコマンドバッファ１５からそれぞれファイル実データ及びファイル記録コマンドを取り出し、蓄積装置制御部２０に渡す。蓄積装置制御部２０は、ファイル実データを蓄積装置１０２に記録する。
【００５４】
（ｂ）アプリケーション１０１の指示によりファイルを蓄積装置１０２から再生するとき、ファイルシステム部１０は次のように動作する。
【００５５】
ファイル入出力管理部１１は、再生するファイルのファイル情報をアプリケーション１０１から受け取り、ファイル管理部１４に送る。
【００５６】
ファイル管理部１４は、ファイル情報及びファイル管理テーブル１６ａの情報を基にそのファイルが格納されている場所を探し、指定されたファイルと同じ名前のファイルが存在する場合は、動作モード（再生）、データ格納先頭アドレス、データ長の情報をセットでコマンドバッファ１５にファイル再生コマンドとして格納する。また、ファイル管理部１４は、ファイルが分断されて記録されている場合は、分断数分の動作モード、データ格納先頭アドレス、データ長の情報をセットでコマンドバッファ１５にファイル再生コマンドとして格納する。
【００５７】
コマンド送受信部１３は、コマンドバッファ１５からファイル再生コマンドを取り出し、蓄積装置制御部２０に渡し、蓄積装置制御部２０は、アプリケーション１０１が指示したファイル実データを蓄積装置１０２から取り出す。取り出されたファイル実データは、データバッファ１２に格納される。ファイル入出力管理部１１は、データバッファ１２からファイル実データを受け取り、アプリケーション１０１に渡す。
【００５８】
（ｃ）アプリケーション１０１の指示によりファイルを蓄積装置１０２から消去するとき、ファイルシステム部１０は次のように動作する。
【００５９】
ファイル入出力管理部１１は、消去するファイルのファイル情報をアプリケーション１０１から受け取り、ファイル管理部１４に送る。
【００６０】
ファイル管理部１４は、アプリケーション１０１によって指定されたファイル名と同じ名前のファイルが存在する場合は、そのファイルの登録を抹消し、ファイル情報及びファイル管理テーブル１６ａの情報を基に該当するファイルが格納されている場所を探し、その場所を未使用領域としてファイル管理テーブル１６ａに登録する。
【００６１】
（２）デフラグに関する処理
以下の説明では、（ａ）デフラグに関する処理の概要、（ｂ）デフラグに関する処理の具体例の順に説明する。
【００６２】
（ａ）デフラグに関する処理の概要
デフラグ手順コマンド生成部１７は、分断されて記録されたファイルがあるか否かをファイル管理部１４に問い合わせる。ファイル管理部１４は、デフラグ手順コマンド生成部１７から分断ファイルの情報の問い合わせがあると、ファイル分断情報１６ｂを参照し、分断ファイルがないときには分断ファイルがないことを示す情報をデフラグ手順コマンド生成部１７に返す。一方、ファイル管理部１４は、分断ファイルがあるときには分断ファイルのファイル名情報及び分断箇所を示す情報（以下「分断箇所情報」という。）をデフラグ手順コマンド生成部１７に渡す。ここで、分断箇所が多い場合はデフラグ処理の時間が長くなり、アプリケーションの動作を長時間妨げる恐れがあるので、ファイル管理部１４は、分断ファイルや分断箇所が複数あるときは、１回のデフラグ処理の時間をできるだけ短くするため、そのうちの１つのファイルのファイル名情報及び分断箇所情報をデフラグ手順コマンド生成部１７に渡すのが好ましい。この処理でデフラグされなかった分断箇所は、次回以降にコマンド送受信部１３から指示されるときに１箇所ずつデフラグ処理を行えばよい。
【００６３】
その後、ファイル管理部１４は、デフラグ手順コマンド生成部１７に送ったファイル名情報及び分断箇所情報をファイル分断情報１６ｂから消去する。このとき、アプリケーション１０１からのファイル入出力があるとファイル管理テーブル１６ａが不整合となるため、ファイル管理部１４は、ファイル入出力管理部１１からの指示を受け付けないよう自身をロックする。
【００６４】
デフラグ手順コマンド生成部１７は、ファイル名情報及び分断箇所情報を受け取ると、デフラグ手順情報を生成し、デフラグ手順バッファ１８に一時蓄える。デフラグ手順コマンド生成部１７は、デフラグ手順バッファ１８に蓄えられたデフラグ手順情報を蓄積装置制御コマンドに変換してコマンド送受信部１３に渡すとともに、デフラグ手順情報に応じたファイル管理テーブル１６ａの更新情報をファイル管理部１４に送る。このとき、ファイル管理部１４は、デフラグ手順コマンド生成部１７から受け取ったファイル管理テーブル１６ａの更新情報を基にファイル管理テーブル１６ａを更新した後、ファイル入出力管理部１１からの指示を受け付けるよう自身のロックを解除する。
【００６５】
また、デフラグ手順コマンド生成部１７は、デフラグ処理により移動するブロック数が多くブロックの移動に長時間を要すると判断した場合に複数のデフラグ手順に分割する機能があれば、１回のデフラグ処理に要する時間を短くすることができる。
【００６６】
コマンド送受信部１３は、デフラグ手順コマンド生成部１７から受け取った、デフラグを実行するための蓄積装置制御コマンドを蓄積装置制御部２０に渡す。蓄積装置制御部２０は、蓄積装置１０２のインターフェース用のコマンドを生成し、蓄積装置１０２に対して蓄積装置制御コマンドを発行する。
【００６７】
（ｂ）デフラグに関する処理の具体例
現在の蓄積装置はＨＤＤ１台で数十ＧＢから数百ＧＢの容量があり、このＨＤＤのブロック数は数百万〜数千万程度あるが、ここでは説明を簡略化するため、蓄積装置１０２の実データ用の容量を６ブロックとし、ファイルシステムは動作説明のための簡単な仕組みのものとする。
【００６８】
ファイル管理のためのテーブルとして、ファイル管理テーブル１６ａ、ファイル分断情報１６ｂ、デフラグ手順バッファ１８を用意する。ファイルの記録時は、ファイル管理テーブル１６ａに示された空きブロックのうちアドレスの小さい方から順に必要数のブロックを使用する。ファイルの記録時にファイルが分断されることとなったら、ファイル管理部１４は、分断されたファイルのファイル名情報と、分断された先頭のブロック番号情報とをファイル分断情報１６ｂに記録する。ここでブロック番号はファイル先頭から数えた、０を基準としたブロックのアドレスを意味する。例えば３ブロック目でファイルが分断された場合はブロックのアドレスとして２が記録され、５ブロック目及び１０ブロック目でファイルが分断された場合はブロックのアドレスとして４及び９が記録される。
【００６９】
以下、ファイルを記録したり消去したりしたときに、どのように記録・消去され、どのようにデフラグが実行されるかについて、ファイル管理テーブル１６ａ、ファイル分断情報１６ｂ、デフラグ手順バッファ１８の内容の遷移を交えて図３〜５を参照しながら説明する。
【００７０】
初期状態はファイルが蓄積装置１０２に何も記録されていない状態とし、未使用領域として、０、１、２、３、４、５のアドレスが登録されているものとする（図３（ａ））。
【００７１】
ここで、ファイルＡ（ブロックサイズ＝１）が蓄積装置１０２に記録される場合、ファイル管理テーブル１６ａの未使用領域の先頭に登録されているアドレス０にファイルＡの実データが格納され、ファイル管理テーブル１６ａの未使用領域から格納アドレス０が外される。同時に、ファイル管理テーブル１６ａにファイルＡを登録し、ファイルＡの格納アドレス０が登録される。ファイルは分断されないため、ファイル分断情報１６ｂは変更されない（図３（ｂ））。
【００７２】
次にファイルＢ（ブロックサイズ＝２）が記録される場合、ファイル管理テーブル１６ａの未使用領域の先頭に登録されているアドレス１及び２にＢの実データが格納され、ファイル管理テーブル１６ａの未使用領域から格納アドレス１及び２が外される。同時に、ファイル管理テーブル１６ａにファイルＢを登録し、ファイルＢの格納アドレス１及び２が登録される。ファイルは分断されないため、ファイル分断情報１６ｂは変更されない（図３（ｃ））。
【００７３】
次にファイルＡを消去する場合、ファイル管理テーブル１６ａのファイルＡに登録されているアドレス０からファイルＡの実データを消去し（実際は実データを消去する処理は不要であるが、説明のため図３（ｄ）ではファイルＡの実データを消去している）、ファイル管理テーブル１６ａのファイルＡは消去され、さらに未使用領域として格納アドレス０が復活する。ファイルは分断されないため、ファイル分断情報１６ｂは変更されない（図３（ｄ））。
【００７４】
次にファイルＣ（ブロックサイズ＝３）が記録される場合、ファイル管理テーブル１６ａの未使用領域の先頭に登録されているアドレス０、３、４にファイルＣの実データが格納され、ファイル管理テーブル１６ａの未使用領域から格納アドレス０、３、４が外される。同時に、ファイル管理テーブル１６ａにファイルＣが登録され、格納アドレス０、３、４が登録される。ファイルＣはアドレス０の次にアドレス３に分断されたため、ファイルＣが２ブロック目で分断されていることを示す分断アドレス１がファイル分断情報１６ｂに登録される（図３（ｅ））。
【００７５】
次に、分断されたファイルに対し、どのようにデフラグを実行するかについて図４のフローチャートを用いて説明する。
【００７６】
まず、コマンド送受信部１３は、コマンドバッファ１５にファイル記録再生コマンドが存在するか否かを確認する（ステップＳ１１）。
【００７７】
ステップＳ１１においてコマンドバッファ１５にファイル記録再生コマンドが存在する場合、コマンド送受信部１３は、コマンドバッファ１５からファイル記録再生コマンドを取得し（ステップＳ１２）、蓄積装置制御部２０に蓄積装置制御コマンドとして送信する（ステップＳ１３）。
【００７８】
一方、ステップＳ１１においてコマンドバッファ１５にファイル記録再生コマンドが存在しない場合、デフラグ手順コマンド生成部１７は、ファイル管理部１４を経由してファイル分断情報１６ｂを確認し（ステップＳ１４）、ファイル分断情報が存在するか否かを判断する（ステップＳ１５）。
【００７９】
ステップＳ１５においてファイル分断情報が存在しない場合、すなわちファイル分断情報１６ｂに分断アドレス情報が登録されていない場合はどのファイルも分断されていないので、デフラグ手順コマンド生成部１７は、処理をコマンド送受信部１３に戻す。
【００８０】
一方、ステップＳ１５においてファイル分断情報が存在する場合、すなわちファイル分断情報１６ｂに分断アドレス情報が登録されている場合、デフラグ手順コマンド生成部１７は、そのうちの１つの分断アドレス情報を取り出しデフラグ手順コマンドを生成する（ステップＳ１６）。
【００８１】
ここで、デフラグ手順コマンドの生成について図５を用いて説明する。図５（ａ）はデフラグ前における各情報を示し、図５（ｂ）はデフラグ後における各情報を示している。
【００８２】
図５（ａ）に示す例では、ファイル分断情報１６ｂからファイルＣがアドレス１で分断されていることが分かるので、デフラグ手順コマンド生成部１７は、デフラグ手順コマンドを生成し、コマンド送受信部１３は、蓄積装置制御部２０に蓄積装置制御コマンドとして送信する。以下、具体的に説明する。
【００８３】
図５（ａ）に示すように、ファイル管理テーブル１６ａを参照すると、ファイルＣはアドレス０、３、４のブロックに記録され、ファイルＢはアドレス１、２のブロックに記録されているのが分かる。そこで、ファイルＣの先頭から２ブロック目にあたるアドレス３から最後のアドレス４までをファイルＣの先頭から１ブロック目のアドレス（０）＋１であるアドレス１に移動する。すなわち、ファイルＣの実データをアドレス３からアドレス１に、アドレス４からアドレス２にそれぞれ移動する。移動先となった元々のアドレス１、２は移動ブロック数である２だけ後ろに移動する。すなわち、ファイルＢの実データをアドレス１からアドレス３に、アドレス２からアドレス４に移動する。ここまでの処理をまとめると、アドレス１、２とアドレス３、４とを入れ替えることになる。その結果、図５（ｂ）に示すように、ファイルＣが格納されるアドレスは０、１、２になるのでファイルＣの実データが連続になり、ファイルＢが格納されるアドレスは３、４に移動されるが分断はされない。
【００８４】
デフラグの手順としては、移動元アドレス＝３、移動先アドレス＝１、移動ブロック数＝２であるので、デフラグ手順コマンド生成部１７は、再生：アドレス＝３から２ブロック、再生：アドレス＝１から２ブロック、記録：アドレス＝１から４ブロックというシーケンス情報をデフラグ手順バッファ１８に記録する（図５（ａ）右端）。
【００８５】
ここで再生対象のブロックに格納されているファイルの実データは、記録再生装置１００のメモリ（図示省略）内に再生された順に一時的に記録されるため、アドレス３、４、１、２の順で当該メモリ内に記録されるものとする。これに合わせて、ファイル管理部１４は、ファイル管理テーブル１６ａの内容を、ファイルＣの格納アドレスを０、１、２、ファイルＢの格納アドレスを３、４に更新する。また、ファイル管理部１４は、ファイル分断情報１６ｂから、ファイルＣの分断アドレスを消去する。
【００８６】
以上のように、本実施の形態における記録再生装置１００によれば、コマンド送受信部１３は、コマンドバッファ１５が空のとき、デフラグの手順を示すデフラグ手順情報をデフラグ手順コマンド生成部１７に生成するよう指示し、デフラグ手順コマンド生成部１７は、ファイルの分断情報を基に１箇所ずつデフラグ手順情報を生成し、１つのデフラグ動作が終了するとコマンド送受信部１３に処理を戻す構成としたので、デフラグ実行時におけるデフラグ実行対象の蓄積装置１０２へのアクセスを伴うアプリケーション１０１の動作速度に与える影響を従来のものよりも低減化することができる。
【００８７】
また、本実施の形態における記録再生装置１００は、前述のように構成されているので、従来のものとは異なり、複数のユーザが扱うシステムや２４時間運用するシステムにおいてもデフラグを実行することができ、かつ、デフラグ実行時におけるデフラグ実行対象の蓄積装置１０２へのアクセスを伴うアプリケーション１０１の動作速度に与える影響を従来のものよりも低減化することができる。
【産業上の利用可能性】
【００８８】
以上のように、本発明に係る記録再生装置及び記録再生方法は、デフラグ実行時におけるデフラグ実行対象の蓄積装置１０２へのアクセスを伴うアプリケーションの動作速度に与える影響を従来のものよりも低減化することができるという効果を有し、ハードディスクドライブ等に対してファイルの記録及び再生を行う記録再生装置及び記録再生方法等として有用である。
【図面の簡単な説明】
【００８９】
【図１】本発明に係る記録再生装置の一実施の形態における概略構成を示すブロック図
【図２】本発明に係る記録再生装置の一実施の形態における詳細な構成を示すブロック図
【図３】本発明に係る記録再生装置の一実施の形態におけるデフラグ処理の説明図
【図４】本発明に係る記録再生装置の一実施の形態におけるデフラグ処理の各ステップを示すフローチャート
【図５】本発明に係る記録再生装置の一実施の形態におけるデフラグ手順コマンドの生成についての説明図
【符号の説明】
【００９０】
１０  ファイルシステム部
１０ａ  ＶＦＳ
１０ｂ  ファイルシステム
１１  ファイル入出力管理部
１２  データバッファ
１３  コマンド送受信部
１４  ファイル管理部
１５  コマンドバッファ（コマンド格納手段）
１６  ファイル管理バッファ
１６ａ  ファイル管理テーブル
１６ｂ  ファイル分断情報
１７  デフラグ手順コマンド生成部（分断化解消コマンド生成手段）
１８  デフラグ手順バッファ
２０  蓄積装置制御部
２０ａ  蓄積装置制御コマンド変換部
２０ｂ  蓄積装置通信部
１００  記録再生装置
１０１  アプリケーション
１０２  蓄積装置
【図１】
2009093712.tif 000003
【図２】
2009093712.tif 000004
【図３】
2009093712.tif 000005
【図４】
2009093712.tif 000006
【図５】
2009093712.tif 000007