(57)【特許請求の範囲】
【請求項１】
データを記憶する記憶領域を複数有するデータ記憶手段と、
割り当てられた処理期間の１つを１単位時間とし、１つの割り当てられた処理期間で、ランダムアクセス可能な記録媒体にデータを書き込み、あるいは前記記録媒体に記録されているデータを読み出す記録媒体処理手段と、
前記記録媒体に記録されているデータを前記データ記憶手段の１つの記憶領域に読み出す読み出しコマンド、および前記１つの記憶領域に読み出されたデータを用いて前記記録媒体へのデータの書き込みを行う書き込みコマンドを、前記１つの割り当てられた処理期間で前記記憶領域毎に発行して、前記記録媒体処理手段と前記データ記憶手段の動作を制御する動作制御手段とを有し、
前記動作制御手段では、前記１つの割り当てられた処理期間で、前記コマンドの発行を複数同時に行わず、前記データ記憶手段の複数の記憶領域のうち先に使用された１つの記憶領域の処理状態に応じて後に使用する異なる記憶領域の処理状態を設定することとし、
前記先に使用された１つの記憶領域の処理状態が前記読み出しコマンドの発行であるときには、前記後に使用する異なる記憶領域の処理状態を前記読み出しコマンドの発行および前記書き込みコマンドの発行としないで、前記１つの記憶領域に対する前記読み出しコマンドの発行後から該読み出しコマンドの処理完了前に、前記異なる記憶領域に対する前記読み出しコマンドを発行し、
前記先に使用された１つの記憶領域の処理状態が前記書き込みコマンドの発行であるときには、前記後に使用する異なる記憶領域の処理状態を前記読み出しコマンドの発行および前記書き込みコマンドの発行としないで、前記１つの記憶領域に対する前記書き込みコマンドの発行後から該書き込みコマンドの処理完了前に、前記異なる記憶領域に対する前記読み出しコマンド又は前記書き込みコマンドを発行することを特徴とするデータ記録再生装置。
【請求項２】
前記動作制御手段では、前記１つの記憶領域に対する前記読み出しコマンドの発行後から該読み出しコマンドの処理完了前に、前記１つの割り当てられた処理期間で前記記録媒体に記録されているデータを前記データ記憶手段の１つの記憶領域に読み出したり、又は前記１つの記憶領域に対する前記書き込みコマンドの発行後から該書き込みコマンドの処理完了前に、前記１つの割り当てられた処理期間で前記１つの記憶領域に読み出されたデータを用いて前記記録媒体へのデータを書き込んだりすることの完了が確認できない場合、前記読み出しコマンド又は前記書き込みコマンドを再度発行することを特徴とする請求項１に記載のデータ記録再生装置。
【請求項３】
前記１つの割り当てられた処理期間で、前記記録媒体に記録されているデータを前記データ記憶手段の１つの記憶領域に読み出したとき、前記１つの記憶領域に空き領域があるときには、前記１つの割り当てられた処理期間の次の割り当てられた処理期間で、再度前記記録媒体に記録されているデータを前記データ記憶手段の１つの記憶領域に読み出すことを特徴とする請求項１又は２に記載のデータ記録再生装置。
【請求項４】
前記動作制御手段では、前記記録媒体から前記データ記憶手段の１つの記憶領域にデータを読み出したのち前記記録媒体に再記録させるエントリ情報を、前記記憶領域毎に順次設けて前記コマンドの発行を制御すると共に、前記エントリ情報をＦＩＦＯ(First In First Out)のデータ構造として管理して、前記エントリ情報の古い順からコマンドの発行状態の判別を行い、前記データ記憶手段の１つの記憶領域に対する前記コマンドの発行後から該コマンドの処理完了前に、異なる記憶領域に対する前記コマンドを発行することを特徴とする請求項１〜３のいずれか１項に記載のデータ記録再生装置。
【請求項５】
前記動作制御手段では、前記コマンドを発行して、前記記録媒体に記録されているデータを前記記憶領域に読み出したのち、前記読み出されたデータとは異なる前記記録媒体の位置に再記録させることを特徴とする請求項１〜４のいずれか１項に記載のデータ記録再生装置。
【請求項６】
前記動作制御手段では、前記コマンドを発行して、前記記録媒体に分割して記録されているデータを前記記憶領域に読み出したのち、前記記録媒体の連続する位置に再記録させることを特徴とする請求項１〜５のいずれか１項に記載のデータ記録再生装置。
【請求項７】
割り当てられた処理期間の１つを１単位時間とし、１つの割り当てられた処理期間で、ランダムアクセス可能な記録媒体にデータを書き込み、あるいは前記記録媒体に記録されているデータを読み出すものとし、
前記ランダムアクセス可能な記録媒体に記録されているデータを複数の記憶領域の１つに読み出す読み出しコマンド、および前記１つの記憶領域に読み出されたデータを用いて前記記録媒体へのデータの書き込みを行う書き込みコマンドを、前記１つの割り当てられた処理期間で前記記憶領域毎に発行することで、前記ランダムアクセス可能な記録媒体に記録されているデータを用いた再記録処理を行うものとし、
前記コマンドの発行は、前記１つの割り当てられた処理期間で、前記コマンドの発行を複数同時に行わず、前記データ記憶手段の複数の記憶領域のうち先に使用された１つの記憶領域の処理状態に応じて後に使用する異なる記憶領域の処理状態を設定することとし、
前記先に使用された１つの記憶領域の処理状態が前記読み出しコマンドの発行であるときには、前記後に使用する異なる記憶領域の処理状態を前記読み出しコマンドの発行および前記書き込みコマンドの発行としないで、前記１つの記憶領域に対する前記読み出しコマンドの発行後から該読み出しコマンドの処理完了前に、前記異なる記憶領域に対する前記読み出しコマンドを発行し、
前記先に使用された１つの記憶領域の処理状態が前記書き込みコマンドの発行であるときには、前記後に使用する異なる記憶領域の処理状態を前記読み出しコマンドの発行および前記書き込みコマンドの発行としないで、前記１つの記憶領域に対する前記書き込みコマンドの発行後から該書き込みコマンドの処理完了前に、前記異なる記憶領域に対する前記読み出しコマンド又は前記書き込みコマンドを発行することを特徴とするデータ再記録処理方法。
【請求項８】
前記１つの記憶領域に対する前記読み出しコマンドの発行後から該読み出しコマンドの処理完了前に、前記１つの割り当てられた処理期間で前記記録媒体に記録されているデータを前記データ記憶手段の１つの記憶領域に読み出したり、又は前記１つの記憶領域に対する前記書き込みコマンドの発行後から該書き込みコマンドの処理完了前に、前記１つの割り当てられた処理期間で前記１つの記憶領域に読み出されたデータを用いて前記記録媒体へのデータを書き込んだりすることの完了が確認できない場合、前記読み出しコマンド又は前記書き込みコマンドを再度発行することを特徴とする請求項７に記載のデータ再記録処理方法。
【請求項９】
前記１つの割り当てられた処理期間で、前記記録媒体に記録されているデータを前記データ記憶手段の１つの記憶領域に読み出したとき、前記１つの記憶領域に空き領域があるときには、前記１つの割り当てられた処理期間の次の割り当てられた処理期間で、再度前記記録媒体に記録されているデータを前記データ記憶手段の１つの記憶領域に読み出すことを特徴とする請求項７又は８に記載のデータ再記録処理方法。
【請求項１０】
前記記録媒体から前記１つの記憶領域にデータを読み出したのち前記記録媒体に再記録させるエントリ情報を、前記記憶領域毎に順次設けて前記コマンドの発行を制御すると共に、前記エントリ情報をＦＩＦＯ(First In First Out)のデータ構造として管理して、前記エントリ情報の古い順からコマンドの発行状態の判別を行い、前記１つの記憶領域に対する前記コマンドの発行後から該コマンドの処理完了前に、異なる記憶領域に対する前記コマンドを発行することを特徴とする請求項７〜９のいずれか１項に記載のデータ再記録処理方法。
【請求項１１】
前記コマンドを発行して、前記記録媒体に記録されているデータを前記記憶領域に読み出したのち、前記読み出されたデータとは異なる前記記録媒体の位置に再記録することを特徴とする請求項７〜１０のいずれか１項に記載のデータ再記録処理方法。
【請求項１２】
前記コマンドを発行して、前記記録媒体に分割して記録されているデータを前記記憶領域に読み出したのち、前記記録媒体の連続する位置に再記録することを特徴とする請求項７〜１１のいずれか１項に記載のデータ再記録処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データ記録再生装置とデータ再記録処理方法に関する。詳しくは、ランダムアクセス可能な記録媒体に記録されているデータを複数の記憶領域の１つに読み出すコマンド、および１つの記憶領域に読み出されたデータを用いて記録媒体へのデータの書き込みを行うコマンドを、記憶領域毎に発行することで、ランダムアクセス可能な記録媒体に記録されているデータを用いた再記録処理を行い、コマンドの発行は、１つの記憶領域に対するコマンドの発行後から該コマンドの処理完了前に、異なる記憶領域に対するコマンドを発行することにより、再記録処理の効率良く行うものである。
【０００２】
【従来の技術】
従来、ランダムアクセスが可能な記録媒体例えばハードディスクに動画等の素材データを記録し、この記録媒体に記録された素材データから所望の部分を選択して新たなデータファイルを作成するノンリニア編集等が行われている。このようなデータの編集やファイルの作成あるいは不要となったファイルやデータの消去が繰り返し行われると、記録媒体上の未記録領域の細分化が進む。また、未記録領域の細分化が進むと、新たに記録するデータは記録媒体上に分散して記録されることとなる。このため、細分化された未記録領域にデータを記録したり、分散して記録されたデータを読み出す場合、例えばハードディスクの所望の位置まで信号記録再生用ヘッドを移動させるためのシーク時間や、所望の位置までディスクが回転されるまでの回転待ち時間が発生して、所望のデータを効率よく読み出すことができなくなってしまう。
【０００３】
このため、例えば図１２に示すように、細分化されたデータを記録媒体からバッファメモリに読み出すと共に、この読み出したデータを連続した領域に再配置する処理、いわゆるデフラグ処理が行われている。このデフラグ処理では、図１３に示すように、デフラグ処理の対象であるデータをハードディスク等からバッファメモリに読み出すための「ＲＥＡＤコマンド発行」、発行されたＲＥＡＤコマンドを処理することによりＲＥＡＤコマンドで示されたデータをバッファメモリに読み出す「ＲＥＡＤ処理」、バッファメモリに読み出されたデータを再度ハードディスクに記録するための「ＷＲＩＴＥコマンド発行」、発行されたＷＲＩＴＥコマンドを実行して、バッファメモリのデータをハードディスクに記録する「ＷＲＩＴＥ処理」の順序に処理が行われる。なお、動画等の映像データあるいは音声データのようにリアルタイムな再生を目的としたファイルのデフラグ処理は、Ａ／Ｖコンパイル処理とも呼ばれている。
【０００４】
【発明が解決しようとする課題】
ところで、ハードディスクに記録されたファイルのデータ量は、バッファメモリのメモリ容量よりも大きい場合が多く、ファイルのデータをバッファメモリに読み出したのち記録し直す操作を１回行うだけでは、このデフラグ（Ａ／Ｖコンパイル）処理を完了することはできない。このため、デフラグ処理ではデータの再記録処理が繰り返し行われる。
【０００５】
ここで、例えば１つのバッファメモリを用いてデフラグ処理を行うと共に、繰り返し行われる再記録操作を効率よく行うものとするために、「ＲＥＡＤ処理」の完了を待たず「ＷＲＩＴＥコマンド発行」を行うと、ＲＥＡＤコマンドで示されたデータがバッファメモリに用意されていないうちに、ハードディスクへのデータの書き込みが行われて、ＲＥＡＤコマンドで示されたデータを正しく記録できない場合が生じてしまう。また、「ＷＲＩＴＥ処理」の完了を待たず「ＲＥＡＤコマンド発行」を行うと、バッファメモリに読み出されているデータが次のＲＥＡＤコマンドで示されたデータに書き換えられてしまうおそれもある。
【０００６】
このため、１回の再配置で用いるデータのデータ量をバッファメモリのメモリ容量と等しくあるいはメモリ容量よりも少なく設定して、図１４に示すように「ＲＥＡＤコマンド発行」、「ＲＥＡＤ処理」、「ＷＲＩＴＥコマンド発行」、「ＷＲＩＴＥ処理」の順序に処理を行って１回の再記録操作を完了させたのち、次の再記録操作が行われている。
【０００７】
このように、コマンドの発行とコマンドに応じた操作を順番に繰り返し行うものとした場合には、データの読み出しや書き込みが行われているときに次の操作の準備が行われていないため、ハードディスクの利用効率が低下して、デフラグ処理に要する時間が長くなってしまう。
【０００８】
また、デフラグ処理だけでなく、記録されているデータを別の位置にコピーする場合にも同様に、バッファメモリへのデータの読み出しやバッファメモリに読み出されているデータを別の領域に書き込む処理が行われることから、コピー処理の場合にも処理時間が長くなってしまう。
【０００９】
そこで、この発明では、効率よくデータの再記録処理を行うことができるデータ記録再生装置およびデータ再記録処理方法を提供ものである。
【００１０】
【課題を解決するための手段】
この発明に係るデータ記録再生装置は、データを記憶する記憶領域を複数有するデータ記憶手段と、ランダムアクセス可能な記録媒体にデータを書き込み、あるいは記録媒体に記録されているデータを読み出す記録媒体処理手段と、記録媒体に記録されているデータをデータ記憶手段の１つの記憶領域に読み出すコマンド、および１つの記憶領域に読み出されたデータを用いて記録媒体へのデータの書き込みを行うコマンドを、記憶領域毎に発行して、記録媒体処理手段とデータ記憶手段の動作を制御する動作制御手段とを有し、動作制御手段では、データ記憶手段の１つの記憶領域に対するコマンドの発行後から該コマンドの処理完了前に、異なる記憶領域に対するコマンドを発行するものである。また、データ記録再生装置では、割り当てられた処理期間で、ランダムアクセス可能な記録媒体にデータを書き込み、あるいは記録媒体に記録されているデータを読み出すものである。
【００１１】
次に、データ再記録方法は、ランダムアクセス可能な記録媒体に記録されているデータを複数の記憶領域の１つに読み出すコマンド、および１つの記憶領域に読み出されたデータを用いて記録媒体へのデータの書き込みを行うコマンドを、記憶領域毎に発行することで、ランダムアクセス可能な記録媒体に記録されているデータを用いた再記録処理を行うものとし、コマンドの発行は、１つの記憶領域に対するコマンドの発行後から該コマンドの処理完了前に、異なる記憶領域に対するコマンドを発行するものである。また、データ再記録方法では、割り当てられた処理期間で、ランダムアクセス可能な記録媒体にデータを書き込み、あるいは記録媒体に記録されているデータを読み出すものである。
【００１２】
この発明においては、ランダムアクセス可能な記録媒体に記録されているデータ、例えばハードディスクに記録されているデータをバッファメモリの１つのバンクに読み出すＲＥＡＤコマンド、および１つのバンクに読み出されたデータをハードディスクに書き込むＷＲＩＴＥコマンドを、バンク毎に発行することで、データのコピー処理やデフラグ処理を行い、１つのバンクに対するコマンドが発行されてから、このコマンドの処理が完了前に、異なるバンクに対するコマンドが発行される。
【００１３】
また、例えばハードディスクから１つのバンクにデータを読み出したのちハードディスクにこのデータを再記録させるエントリ情報を、バンク毎に順次設けてコマンドの発行を制御すると共に、このエントリ情報がＦＩＦＯ(First In First Out)のデータ構造として管理されて、エントリ情報の古い順からコマンドの発行状態が判別されて、１つのバンクに対するコマンドが発行されてから、このコマンドの処理が完了前に、異なるバンクに対するコマンドが発行される。
【００１４】
【発明の実施の形態】
以下、図を参照しながら、この発明の実施の一形態について説明する。図１はランダムアクセス可能な記録媒体を用いたデータ記録再生装置、例えばハードディスクを用いて映像および／または音声データ等の記録再生を行うＡＶディスクレコーダを用いたシステムの構成を示す図である。
【００１５】
ＡＶディスクレコーダ１０には、映像および／または音声データ等を入力するためのデータ入力装置としてビデオカメラ１００，１１０が接続されている。また、ＡＶディスクレコーダ１０の動作を制御して、記録されている映像および／または音声データの編集処理等を行うアプリケーション装置１２０が接続されている。
【００１６】
図２はＡＶディスクレコーダ１０の構成を示している。ＡＶディスクレコーダ１０の入出力処理部１１aでは、ビデオカメラ１００から、例えばＳＭＰＴＥ２５９Ｍで規格化されたシリアルディジタルインタフェース（ＳＤI）フォーマットの形式として伝送されてきた素材の映像および／または音声データ（以下「入力データ」という）に対して符号化処理等を行い、データ量を削減して記録データＷＳaとする。また、ハードディスク３０から読み出された再生データＲＳaが供給されたときには、この再生データＲＳaの復号化処理を行い、映像および／または音声データとして出力する。また、入出力処理部１１bも入出力処理部１１aと同様にビデオカメラ１１０からの入力データの符号化処理や読み出された再生データＲＳbの復号化処理等を行う。この入出力処理部１１a，１１bは、後述する制御部２２から制御バス５０を介して供給された制御信号ＣＴa，ＣＴbに基づいて制御される。
【００１７】
入出力処理部１１aあるいは入出力処理部１１bで生成された記録データＷＳは、ＤＭＡバス５１を介してバッファメモリ１５の１つのバンクに供給される。また、ハードディスク３０から読み出された再生データＲＳはバッファメモリ１５に保持されたのち、ＤＭＡバス５１を介して入出力処理部１１aあるいは入出力処理部１１bに供給される。
【００１８】
ＤＭＡバス５１はＤＭＡコントローラ１６によって制御されると共に、ＤＭＡコントローラ１６の動作は制御部２２から制御バス５０を介して供給された制御信号ＣＢＤに基づいて制御される。
【００１９】
バッファメモリ１５に保持された記録データＷＳはＳＣＳＩバス５２を介してハードディスク３０に記録される。また、ハードディスク３０から読み出された再生データＲＳはＳＣＳＩバス５２を介してバッファメモリ１５に保持される。
【００２０】
ここで、バッファメモリ１５に保持された記録データＷＳのハードディスク３０への書き込みやハードディスク３０に記録されたデータの読み出し、および入出力処理部１１とバッファメモリ１５間のデータ転送は、割り当てられた処理期間、例えば図示しないタイムスロット発生回路で発生されたタイムスロットの、割り当てられたタイムスロットで行われる。
【００２１】
ＳＣＳＩバス５２はＳＣＳＩコントローラ３５によって制御されると共に、ＳＣＳＩコントローラ３５の動作は制御部２２から制御バス５０を介して供給された制御信号ＣＢＳに基づいて制御される。
【００２２】
外部インタフェース回路２１には、アプリケーション装置１２０が接続されており、このアプリケーション装置１２０からの各種の制御信号ＣＭを受け付けて、制御バス５０を介して制御部２２に供給する。
【００２３】
制御部２２では、入出力処理部１１、ＤＭＡコントローラ１６やＳＣＳＩコントローラ３５を介してバッファメモリ１５やハードディスク３０を制御して、入出力処理部１１に供給された入力データのデータ量を圧縮して記録データとしてハードディスク３０に記録したり、ハードディスク３０に記録されているデータを復号化して、映像および／または音声データとして出力させる。さらに、ハードディスク３０での処理を効率よく行うことができるように、分断化して記録されているデータを連続する領域に再配置するデフラグ処理を行う。このデフラグ処理では、制御部２２からＳＣＳＩコントローラ３５に制御信号ＣＢＳとしてコマンドを供給すると共に、ＳＣＳＩコントローラ３５では、制御部２２からのコマンドをバッファメモリ１５やハードディスク３０に応じたコマンドとしてバッファメモリ１５やハードディスク３０の動作を制御してデフラグ処理を行う。
【００２４】
次に、ハードディスク３０に記録されているデータのデフラグ処理について説明する。ここで、デフラグ処理を行う際には、バッファメモリ１５の複数のバンクを用いるものとして、ハードディスク３０に分散して記録されているデータを１つのバンクに読み出すと共に、この読み出したデータをハードディスク３０の連続する領域に書き込むことで、データの再配置を行う。
【００２５】
図３は、バッファメモリ１５の２つのバンクＡ，Ｂを交互に使用してデフラグ処理を行う場合の動作を示している。ここで、デフラグ処理を行う場合の１つの操作、すなわちコマンド発行の操作や発行されたコマンドを実行する操作は１単位時間、例えば１タイムスロットで行うものとする。
【００２６】
まずタイムスロットＴＳ1では、バッファメモリ１５のバンクＡに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-A）」とする。この「ＲＥＡＤコマンド発行（ＲＣ-A）」では、デフラグ処理の対象とした再配置するデータをハードディスク３０からバッファメモリ１５のバンクＡに読み出すためのコマンドを、制御部２２からＳＣＳＩコントローラ３５を介して発行する。
【００２７】
タイムスロットＴＳ2では、タイムスロットＴＳ1での「ＲＥＡＤコマンド発行」に応じた処理を実行する。ここで、バンクＡに対する処理状態は図４に示すように「ＲＥＡＤコマンド発行」から処理の完了を確認する「ＲＥＡＤ完了待ち（ＲＤ-A）」に移行する。なお、バンクＢに対する処理状態も図４と同様に遷移する。
【００２８】
ここで、複数のバンクを用いてデフラグ処理を行う場合、コマンド発行が複数同時に行われることがないように、先に使用されたバンクの処理状態に応じて後に使用するバンクに対する処理状態を図５に示すように設定する。すなわち、先に使用されたバンクＸの処理状態が「ＲＥＡＤコマンド発行（ＲＣ-X）」であるときには、後に使用するバンクＹに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-Y）」や「ＷＲＩＴＥコマンド発行（ＷＣ-Y）」とすることができないと共に、「ＲＥＡＤ完了待ち（ＲＤ-X）」であるときには、後に使用するバンクに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-Y）」の状態にできるものとする。また、先に使用されたバンクの処理状態が「ＷＲＩＴＥコマンド発行（ＷＣ-X）」であるときには、後に使用するバンクに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-Y）」や「ＷＲＩＴＥコマンド発行（ＷＣ-Y）」とすることができないと共に、「ＷＲＩＴＥ完了待ち（ＷＤ-X）」であるときには、後に使用するバンクに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-Y）」や「ＷＲＩＴＥコマンド発行（ＷＣ-Y）」の状態にできるものとする。
【００２９】
このため、タイムスロットＴＳ2ではバンクＡに対する処理状態が「ＲＥＡＤ完了待ち（ＲＤ-A）」であることから、バンクＢに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-B）」として、再配置する次のデータをハードディスク３０からバッファメモリ１５のバンクＢに読み出すためのコマンド発行を行う。
【００３０】
このタイムスロットＴＳ2で、バンクＡに対してのデータの読み出しが完了すると、次のタイムスロットＴＳ3ではバンクＡに対する処理状態を「ＷＲＩＴＥコマンド発行（ＷＣ-A）」とする。この「ＷＲＩＴＥコマンド発行（ＷＣ-A）」では、バンクＡに読み出されているデータをハードディスク３０の連続する領域に記録するコマンドを制御部２２からＳＣＳＩコントローラ３５を介して発行する。また、タイムスロットＴＳ3では、タイムスロットＴＳ2での「ＲＥＡＤコマンド発行（ＲＣ-B）」に応じた処理を実行すると共に、バンクＢに対する処理状態は「ＲＥＡＤコマンド発行」から処理の完了を確認する「ＲＥＡＤ完了待ち（ＲＤ-B）」に移行する。
【００３１】
タイムスロットＴＳ4では、タイムスロットＴＳ3での「ＷＲＩＴＥコマンド発行」に応じた処理を実行する。また、バンクＡに対する処理状態は「ＷＲＩＴＥコマンド発行」から処理の完了を確認する「ＷＲＩＴＥ完了待ち（ＷＤ-A）」に移行する。さらに、タイムスロットＴＳ3で、バンクＢに対してのデータの読み出しが完了すると、次のタイムスロットＴＳ4では、バンクＡに対する処理状態がコマンド発行でないことから、バンクＢに対する処理状態は「ＷＲＩＴＥコマンド発行（ＷＣ-B）」に移行する。
【００３２】
タイムスロットＴＳ5では、タイムスロットＴＳ4での「ＷＲＩＴＥコマンド発行」に応じた処理を実行する。また、バンクＢに対する処理状態は「ＷＲＩＴＥコマンド発行」から処理の完了を確認する「ＷＲＩＴＥ完了待ち（ＷＤ-B）」に移行する。さらに、タイムスロットＴＳ5ではバンクＢに対する処理状態が「ＷＲＩＴＥ完了待ち（ＷＤ-B）」であることから、バンクＡに読み出されているデータの書き込みがタイムスロットＴＳ4で完了しているときには、次のタイムスロットＴＳ5で、バンクＡに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-A）」として、再配置する次のデータをハードディスク３０からバッファメモリ１５のバンクＡに読み出すためのコマンド発行を行う。
【００３３】
タイムスロットＴＳ6ではバンクＡに対する処理状態が「ＲＥＡＤ完了待ち（ＲＤ-A）」であることから、バンクＢに読み出されているデータの書き込みがタイムスロットＴＳ5で完了しているときには、次のタイムスロットＴＳ6で、バンクＢに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-B）」として、再配置する次のデータをハードディスク３０からバッファメモリ１５のバンクＢに読み出すためのコマンド発行を行う。
【００３４】
このように、タイムスロットＴＳ1〜Ｔ4までの処理によって、バンクＡを使用した１回の再配置が完了すると共に、タイムスロットＴＳ2〜Ｔ5までの処理によって、バンクＢを使用した１回の再配置が完了する。以下同様な処理を繰り返し行うことで、分断化して記録されているデータを連続した領域に再配置することができる。
【００３５】
なお、「ＲＥＡＤ完了待ち」や「ＷＲＩＴＥ完了待ち」で、データの読み出しや書き込みが正しく完了したことを確認できない場合、図４に示すようにコマンド発行が再度行われる。なお、コマンド発行を再度行う場合にも、図５に示す条件を満たすタイミングでコマンド発行が行われる。
【００３６】
このように、一方のバンクでコマンドが実行されているときに他方のバンクに対するコマンドを発行して、２つのバンクを同時に用いてデフラグ処理を行うことにより、５タイムスロットで２回の再配置が可能となる。このため、１つのバンクを用いて４タイムスロットで１回の再配置を行う場合や、２つのバンクを交互に用いて再配置を行う場合に比べて、効率良くデフラグ処理を行うことができる。
【００３７】
ところで、上述したように１回のデータ読み出しで１つのバンクに読み出されたデータをハードディスク３０に記録し直すものとした場合、１回のデータ読み出しで読み出されるデータ量が少ないときには、デフラグ処理中にバッファメモリ１５からハードディスク３０にデータを書き込む回数が多くなってしまう。このため、１回のデータの読み出しを行ったときにバンクに空き領域があるときには再度データの読み出しを行うことでバンクに保持されるデータ量を多いものとして、データ書き込みの際のデータ量を多くすることにより記録回数を少なくして効率よくデフラグ処理を行うものとしても良い。
【００３８】
次に、１回のデータの読み出しではバンクに空き領域があるため、データの読み出しを２回行う場合のデフラグ処理について図６を用いて説明する。タイムスロットＴＳ11では、バッファメモリ１５のバンクＡに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-A）」とする。
【００３９】
図７は、バンクＡおよびバンクＢに対する処理の状態遷移図を示しており、「ＲＥＡＤコマンド発行」を行ったときに、バンクに空き領域があるときには再度次のデータを読み出すための「ＲＥＡＤコマンド発行」を次のタイムスロットで行う場合を示している。
【００４０】
タイムスロットＴＳ11からタイムスロットＴＳ12に進むと、タイムスロットＴＳ12では、タイムスロットＴＳ11での「ＲＥＡＤコマンド発行」に応じた処理を実行して、バンクＡにハードディスク３０から再配置するデータを読み出す。また、１回のデータの読み出しではバンクに空き領域があるため、バンクＡに対する処理状態は、再度「ＲＥＡＤコマンド発行（ＲＣ-A）」となる。
【００４１】
タイムスロットＴＳ13では、タイムスロットＴＳ12での「ＲＥＡＤコマンド発行」に応じた処理を実行する。また、バンクＡの処理状態は、「ＲＥＡＤコマンド発行」が２度目あることから、「ＲＥＡＤコマンド発行」に応じた処理の完了を確認する「ＲＥＡＤ完了待ち（ＲＤ-A）」に移行する。
【００４２】
ここで、図５に示したように、先に使用されたバンクＸの処理状態が「ＲＥＡＤコマンド発行（ＲＣ-X）」であるときには、後に使用するバンクＹに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-Y）」や「ＷＲＩＴＥコマンド発行（ＷＣ-Y）」とすることができないと共に、「ＲＥＡＤ完了待ち（ＲＤ-X）」であるときには、後に使用するバンクＹに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-Y）」とすることが可能である。このため、タイムスロットＴＳ13では、バンクＡの処理状態が「ＲＥＡＤ完了待ち（ＲＤ-A）」であることから、バンクＢに対する処理状態を「ＲＥＡＤコマンド発行（ＲＤ-B）」とする。
【００４３】
タイムスロットＴＳ13で、バンクＡに対してのデータ読み出しが完了すると、次のタイムスロットＴＳ14では、バンクＡに対する処理状態を「ＷＲＩＴＥコマンド発行（ＷＣ-A）とする。また、タイムスロットＴＳ14では、タイムスロットＴＳ13での「ＲＥＡＤコマンド発行（ＲＣ-B）」に応じた処理を実行する。
【００４４】
タイムスロットＴＳ15では、タイムスロットＴＳ14での「ＷＲＩＴＥコマンド発行（ＷＣ-A）」に応じた処理を実行する。また、バンクＡに対する処理状態は「ＷＲＩＴＥコマンド発行」から処理の完了を確認する「ＷＲＩＴＥ完了待ち（ＷＤ-A）」に移行する。さらに、タイムスロットＴＳ15ではバンクＡに対する処理状態が「ＷＲＩＴＥ完了待ち（ＷＤ-A）」であることから、バンクＢに対する処理状態を２度目の「ＲＥＡＤコマンド発行（ＲＤ-B）」とする。
【００４５】
タイムスロットＴＳ16では、タイムスロットＴＳ15での「ＲＥＡＤコマンド発行（ＲＣ-B）」に応じた処理を実行すると共に、バンクＢに対する処理状態は「ＲＥＡＤコマンド発行」から処理の完了を確認する「ＲＥＡＤ完了待ち（ＲＤ-B）」に移行する。さらに、タイムスロットＴＳ16ではバンクＢに対する処理状態が「ＲＥＡＤ完了待ち（ＲＤ-B）」であることから、バンクＡに読み出されているデータの書き込みがタイムスロットＴＳ15で完了しているときには、このタイムスロットＴＳ16で、バンクＡに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-A）」として、再配置する次のデータをハードディスク３０からバッファメモリ１５のバンクＡに読み出すためのコマンド発行を行う。
【００４６】
このタイムスロットＴＳ16で、バンクＢに対してのデータの読み出しが完了すると、次のタイムスロットＴＳ17ではバンクＢに対する処理状態を「ＷＲＩＴＥコマンド発行（ＷＣ-B）」とする。また、タイムスロットＴＳ17では、タイムスロットＴＳ16での「ＲＥＡＤコマンド発行（ＲＣ-B）」に応じた処理を実行する。
【００４７】
タイムスロットＴＳ18では、タイムスロットＴＳ17での「ＷＲＩＴＥコマンド発行（ＷＣ-B）」に応じた処理を実行する。また、バンクＢに対する処理状態は「ＷＲＩＴＥコマンド発行」から処理の完了を確認する「ＷＲＩＴＥ完了待ち（ＷＤ-B）」に移行する。さらに、タイムスロットＴＳ18ではバンクＢに対する処理状態が「ＷＲＩＴＥ完了待ち（ＷＤ-B）」であることから、バンクＡに対する処理状態を２度目の「ＲＥＡＤコマンド発行（ＲＤ-A）」とする。
【００４８】
タイムスロットＴＳ19では、タイムスロットＴＳ18での「ＲＥＡＤコマンド発行（ＲＣ-A）」に応じた処理を実行すると共に、バンクＡに対する処理状態は「ＲＥＡＤコマンド発行」から処理の完了を確認する「ＲＥＡＤ完了待ち（ＲＤ-A）」に移行する。さらに、タイムスロットＴＳ19ではバンクＡに対する処理状態が「ＲＥＡＤ完了待ち（ＲＤ-A）」であることから、バンクＢに読み出されているデータの書き込みがタイムスロットＴＳ18で完了しているときには、このタイムスロットＴＳ19で、バンクＢに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-A）」とする。
【００４９】
このようにして、タイムスロットＴＳ11〜T15の処理によってバンクＡを用いた１回の再配置が完了すると共に、タイムスロットＴＳ13〜T18の処理によってバンクＢを用いた１回の再配置が完了する。
【００５０】
以下同様な処理を行うことにより、２つのバンクを用いて「ＲＥＡＤコマンド発行」を２回実施することによりバンクのメモリ容量を有効に活用し、９タイムスロットで１サイクルの再配置を行うことができる。
【００５１】
さらに、上述の場合には２つのバンクを用いてデフラグ処理を行うものとしたが、３つのバッファを用いるものとしても良い。ここで、図８に３つのバンクを使用したときの動作を示す。なお、３つのバンクＡ，Ｂ，Ｃの状態遷移は図４と同一であると共に、「ＲＥＡＤコマンド発行」や「ＷＲＩＴＥコマンド」に応じた処理が２タイムスロットを要する場合の動作を示している。タイムスロットＴＳ31では、バッファメモリ１５のバンクＡに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-A）」とする。
【００５２】
タイムスロットＴＳ32では、タイムスロットＴＳ31での「ＲＥＡＤコマンド発行（ＲＣ-A）」に応じた処理を実行する。また、図５に示す「コマンド発行」の判別条件に基づき、最初に使用されたバンクＡの処理状態が「ＲＥＡＤコマンド発行（ＲＣ-A）」や「ＷＲＩＴＥコマンド発行（ＷＣ-A）」でないことから、２番目に使用するバンクＢに次のデータを読み出すため、バンクＢに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-B）」とする。
【００５３】
タイムスロットＴＳ33では、「ＲＥＡＤコマンド発行」に応じた処理が２タイムスロットを要することから、バンクＡに対する処理状態を「ＲＥＡＤ完了待ち（ＲＤ-A）」とする。また、バンクＢについては、タイムスロットＴＳ32での「ＲＥＡＤコマンド発行（ＲＣ-B）」に応じた処理の実行中であり、バンクＡおよびバンクＢの処理状態は「ＷＲＩＴＥコマンド発行（ＷＣ-A，ＷＣ-B）」の状態とならない。このため、図５に示す「コマンド発行」の判別条件に基づき、３番目に使用するバンクＣに次のデータを読み出すため、バンクＣに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-C）」とする。
【００５４】
このタイムスロットＴＳ33で、バンクＡに対してのデータの読み出しが完了すると、次のタイムスロットＴＳ34ではバンクＡに対する処理状態を「ＷＲＩＴＥコマンド発行（ＷＣ-A）」とする。また、「ＲＥＡＤコマンド発行（ＲＣ-B）」に応じた処理も２タイムスロットを要することから、タイムスロットＴＳ34でバンクＢに対する処理状態は「ＲＥＡＤ完了待ち（ＲＤ-B）」となると共に、バンクＣはタイムスロットＴＳ33での「ＲＥＡＤコマンド発行（ＲＣ-C）」に応じた処理の実行中となる。
【００５５】
タイムスロットＴＳ34でバンクＢに対してのデータの読み出しが完了してタイムスロットＴＳ35となると、先に使用されたバンクＡではタイムスロットＴＳ34の「ＷＲＩＴＥコマンド発行（ＷＣ-A）」に応じた処理が行われており、バンクＡの処理状態が「ＲＥＡＤコマンド発行（ＲＣ-A）」や「ＷＲＩＴＥコマンド発行（ＷＣ-A）」でないことから、バンクＢの処理状態を「ＷＲＩＴＥコマンド発行（ＷＣ-B）」とする。また、タイムスロットＴＳ35でバンクＣに対する処理状態は「ＲＥＡＤ完了待ち（ＲＤ-C）」となる。
【００５６】
タイムスロットＴＳ36では、「ＷＲＩＴＥコマンド発行（ＷＣ-A）」に応じた処理が２タイムスロットを要することから、バンクＡに対する処理状態を「ＷＲＩＴＥ完了待ち（ＷＤ-A）」とする。また、バンクＢについては、タイムスロットＴＳ35での「ＷＲＩＴＥコマンド発行（ＷＣ-B）」に応じた処理の実行中であり、バンクＡおよびバンクＢの処理状態は「コマンド発行（ＲＣ-A，ＷＣ-A，ＲＣ-B，ＷＣ-B）」の状態とならない。このため、タイムスロットＴＳ35でバンクＣに対してのデータの読み出しが完了してタイムスロットＴＳ36となると、バンクＣに対する処理状態は「ＷＲＩＴＥコマンド発行（ＷＣ-C）」となる。
【００５７】
タイムスロットＴＳ37では、バンクＢに対する処理状態を「ＷＲＩＴＥ完了待ち（ＷＤ-B）」とする。また、バンクＣについては、タイムスロットＴＳ36での「ＷＲＩＴＥコマンド発行（ＷＣ-C）」に応じた処理の実行中であり、バンクＢおよびバンクＣの処理状態は「コマンド発行（ＲＣ-B，ＷＣ-B，ＲＣ-C，ＷＣ-C）」の状態とならない。このため、バンクＡに読み出されているデータの書き込みがタイムスロットＴＳ36で完了しているときには、次のタイムスロットＴＳ37で、バンクＡに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-A）」として、再配置する次のデータをハードディスク３０からバッファメモリ１５のバンクＡに読み出すためのコマンド発行を行う。
【００５８】
以下同様に処理することにより、ＲＥＡＤコマンドやＷＲＩＴＥコマンドに対する応答が２タイムスロットを要する場合に、３つのバンクを使用することでタイムスロット毎に順次ＲＥＡＤコマンドやＷＲＩＴＥコマンドを発行することが可能となり、３つのバンクを同時に用いてデフラグ処理を更に効率よく行うことができる。
【００５９】
また、３つのバンクＡ，Ｂ，Ｃの状態遷移図が図７に示す場合であっても、図９に示すようにデフラグ処理を行うことができる。
【００６０】
タイムスロットＴＳ51では、バッファメモリ１５のバンクＡに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-A）」とする。タイムスロットＴＳ51からタイムスロットＴＳ52に進むと、タイムスロットＴＳ52では、タイムスロットＴＳ51での「ＲＥＡＤコマンド発行」に応じた処理を実行して、バンクＡにハードディスク３０から再配置するデータを読み出す。また、１回のデータの読み出しではバンクに空き領域があるため、バンクＡに対する処理状態は、再度「ＲＥＡＤコマンド発行（ＲＣ-A）」となる。
【００６１】
タイムスロットＴＳ53では、タイムスロットＴＳ52での「ＲＥＡＤコマンド発行」に応じた処理を実行する。また、バンクＡの処理状態は、「ＲＥＡＤコマンド発行」が２度目あることから、「ＲＥＡＤコマンド発行」に応じた処理の完了を確認する「ＲＥＡＤ完了待ち（ＲＤ-A）」に移行する。
【００６２】
ここで、先に使用されたバンクＡの処理状態が「ＲＥＡＤコマンド発行（ＲＣ-A）」や「ＷＲＩＴＥコマンド発行（ＷＣ-A）」でないことから、次に使用するバンクＢに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-B）」とする。
【００６３】
タイムスロットＴＳ53で、バンクＡに対してのデータ読み出しが完了すると、次のタイムスロットＴＳ54では、バンクＡに対する処理状態を「ＷＲＩＴＥコマンド発行（ＷＣ-A）とする。また、タイムスロットＴＳ54では、タイムスロットＴＳ53での「ＲＥＡＤコマンド発行（ＲＣ-B）」に応じた処理を実行する。
【００６４】
タイムスロットＴＳ55では、タイムスロットＴＳ54での「ＷＲＩＴＥコマンド発行（ＷＣ-A）」に応じた処理を実行する。また、バンクＡに対する処理状態は「ＷＲＩＴＥコマンド発行」から処理の完了を確認する「ＷＲＩＴＥ完了待ち（ＷＤ-A）」に移行する。さらに、タイムスロットＴＳ55ではバンクＡに対する処理状態が「ＷＲＩＴＥ完了待ち（ＷＤ-A）」であることから、バンクＢに対する処理状態を２度目の「ＲＥＡＤコマンド発行（ＲＤ-B）」とする。
【００６５】
タイムスロットＴＳ56では、タイムスロットＴＳ55での「ＲＥＡＤコマンド発行（ＲＣ-B）」に応じた処理を実行すると共に、バンクＢに対する処理状態は「ＲＥＡＤコマンド発行」から処理の完了を確認する「ＲＥＡＤ完了待ち（ＲＤ-B）」に移行する。さらに、タイムスロットＴＳ56ではバンクＢに対する処理状態が「ＲＥＡＤ完了待ち（ＲＤ-B）」であることから、バンクＡに読み出されているデータの書き込みがタイムスロットＴＳ55で完了しているときには、このタイムスロットＴＳ56で、バンクＣに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-C）」として、再配置する次のデータをハードディスク３０からバッファメモリ１５のバンクＣに読み出すためのコマンド発行を行う。
【００６６】
このタイムスロットＴＳ56で、バンクＢに対してのデータの読み出しが完了すると、次のタイムスロットＴＳ57ではバンクＢに対する処理状態を「ＷＲＩＴＥコマンド発行（ＷＣ-B）」とする。また、タイムスロットＴＳ57では、タイムスロットＴＳ56での「ＲＥＡＤコマンド発行（ＲＣ-B）」に応じた処理を実行する。
【００６７】
タイムスロットＴＳ58では、タイムスロットＴＳ57での「ＷＲＩＴＥコマンド発行（ＷＣ-B）」に応じた処理を実行する。また、バンクＢに対する処理状態は「ＷＲＩＴＥコマンド発行」から処理の完了を確認する「ＷＲＩＴＥ完了待ち（ＷＤ-B）」に移行する。さらに、タイムスロットＴＳ58ではバンクＢに対する処理状態が「ＷＲＩＴＥ完了待ち（ＷＤ-B）」であることから、バンクＣに対する処理状態を２度目の「ＲＥＡＤコマンド発行（ＲＤ-A）」とする。
【００６８】
タイムスロットＴＳ59では、タイムスロットＴＳ58での「ＲＥＡＤコマンド発行（ＲＣ-C）」に応じた処理を実行すると共に、バンクＣに対する処理状態は「ＲＥＡＤコマンド発行」から処理の完了を確認する「ＲＥＡＤ完了待ち（ＲＤ-A）」に移行する。さらに、タイムスロットＴＳ59ではバンクＣに対する処理状態が「ＲＥＡＤ完了待ち（ＲＤ-A）」であることから、バンクＢに読み出されているデータの書き込みがタイムスロットＴＳ58で完了しているときには、このタイムスロットＴＳ59で、バンクＣに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-A）」とする。以下同様な処理を行うことで、３つのバンクを用いてデフラグ処理を行うことができる。
【００６９】
ところで、上述のように例えば３つのバンクを用いて各バンクの状態を制御するときには、いずれのバンクがどのような処理状態であるか示すエントリ情報を、制御部２２内にＦＩＦＯ(First In First Out)のデータ構造として管理することにより、容易に図８や図９に示す動作を行うことができる。
【００７０】
図１０は、エントリ情報の管理動作を示すフローチャートである。ハードディスク３０にフラグメンテーション領域が生じて、この領域に対するデフラグ処理が開始されると、ステップＳＴ１では、図７の状態遷移図に基づいてＦＩＦＯ内のエントリ情報を、コマンドの発行状況やデータの転送状況に応じて遷移させてステップＳＴ２に進む。
【００７１】
ステップＳＴ２では、ステップＳＴ１で「ＷＲＩＴＥ完了待ち」の状態から「ＥＮＤ」の状態に遷移して処理の完了したエントリ情報の領域を検出して、ＦＩＦＯ内のこの領域を解放したのちステップＳＴ３に進む。
【００７２】
ステップＳＴ３では、デフラグ処理するデータが残っているか否かの判別が行われる。ここで、データが残っているときにはステップＳＴ４に進み、残っていないときにはステップＳＴ６に進む。
【００７３】
ステップＳＴ４では、残っているデータのデフラグ処理を行うためにエントリ情報の領域をＦＩＦＯに確保できるか否かの判別を行い、確保できるときにはステップＳＴ５に進み、確保できないときにはステップＳＴ６に進む。
【００７４】
ステップＳＴ５では、ＦＩＦＯにエントリ情報の領域を確保して、この領域にエントリ情報を割り付ける。ここで、デフラグ処理を開始したときには、このステップＳＴ５によってＦＩＦＯにエントリ情報が最初に割り付けられてステップＳＴ６に進む。ここで、バッファメモリ１５の３つのバンクを用いてデフラグ処理を行うことから、ＦＩＦＯは各バンクの処理状態を管理できるように３つのエントリ情報のための領域を確保できるように構成する。また、バッファメモリ１５のバンクの使用順序をバンクＡ，バンクＢ，バンクＣの順としたときには、バンクＡに対する処理状態が「ＲＥＡＤコマンド発行」であることを示すエントリ情報がＦＩＦＯの最初の領域に割り付けられる。
【００７５】
ステップＳＴ６では、ＦＩＦＯ内にエントリ情報の領域が確保されているか否かを判別して、エントリ情報の領域が確保されていると判別したときにはステップＳＴ７に進む。
【００７６】
ステップＳＴ７では、ＦＩＦＯ内の最古の領域のエントリ情報をコマンド発行判別用のエントリ情報に設定してステップＳＴ８に進む。
【００７７】
ステップＳＴ８では、コマンド発行判別用のエントリ情報が「コマンド発行」の状態であるか否かを判別する。ここで、コマンド発行状態であると判別されたときにはステップＳＴ９に進み、エントリ情報で示されたコマンドを発行してステップＳＴ１に戻る。すなわち、エントリ情報が例えばバンクＡに対する処理状態が「ＲＥＡＤコマンド発行」であることを示すときには、ＲＥＡＤコマンドを発行してステップＳＴ１に戻る。このように、ステップＳＴ１からステップＳＴ９までの処理によって上述の図９に示すタイムスロットＴＳ51の処理が行われる。
【００７８】
図１１は、ステップＳＴ１のタイミングにおける制御部２２内のエントリ情報を示しており、タイムスロットＴＳ31では、バンクＡに対するエントリ情報のみがＦＩＦＯに割り付けられる。なお、図１１において、破線で囲まれていない「ＲＥＡＤコマンド発行（ＲＣ）」と「ＷＲＩＴＥコマンド発行（ＷＣ）」は、ＦＩＦＯに割り付けられて実行されていない状態であることを示しており、破線で囲まれた「ＲＥＡＤコマンド発行（ＲＣ）」と「ＷＲＩＴＥコマンド発行（ＷＣ）」が実行されたことを示している。
【００７９】
バンクＡに対する「ＲＥＡＤコマンド発行（ＲＣ-A）」を実行してステップＳＴ１に戻ると、次のステップＳＴ１では、上述したようにエントリ情報を、コマンドの発行状況やデータの転送状況に応じて遷移させる。ここで、２回のデータ読み出しを行うことから、エントリ情報はバンクＡに対する処理状態を「ＲＥＡＤコマンド発行（ＲＣ-A）」の状態で保持してステップＳＴ２に進むと共に、領域を開放するエントリ情報の領域がないことからステップＳＴ３に進む。
【００８０】
また、デフラグ処理するデータが残っているときにはステップＳＴ３からステップＳＴ４に進むと共に、エントリ情報の領域は１つであることから、新たなエントリ情報の領域を確保できるものと判別されてステップＳＴ５に進む。
【００８１】
ステップＳＴ５では、ＦＩＦＯにエントリ情報の領域を新たに確保して、この領域にエントリ情報を割り付ける。すなわち、バンクＡの次に使用されるバンクＢの処理状態が「ＲＥＡＤコマンド発行」であることを示すエントリ情報が新たに確保された領域に割り付けられる。
【００８２】
その後、ステップＳＴ６からステップＳＴ７に進むと、ステップＳＴ７ではＦＩＦＯ内の最古の領域のエントリ情報をコマンド発行判別用のエントリ情報に設定してステップＳＴ８に進む。
【００８３】
ステップＳＴ８では、コマンド発行判別用のエントリ情報がコマンド発行状態であるか否かを判別する。ここで、コマンド発行判別用のエントリ情報では、バンクＡの処理状態が「ＲＥＡＤコマンド発行」であることが示されていることからステップＳＴ９に進み、最古の領域のエントリ情報で示されたコマンドを発行してステップＳＴ１に戻る。
【００８４】
このように、ステップＳＴ１からステップＳＴ９までの処理が２回目に行われると図９に示すタイムスロットＴＳ52の処理が行われることとなる。また、タイムスロットＴＳ52の処理が行われたときには、図１１に示すようにバンクＡおよびバンクＢのエントリ情報がＦＩＦＯに割り付けられている。
【００８５】
バンクＡに対する「ＲＥＡＤコマンド発行（ＲＣ-A）」を実行してステップＳＴ１に戻ると、次のステップＳＴ１では、バンクＡのエントリ情報を「ＲＥＡＤコマンド発行」から次の状態である「ＲＥＡＤ完了待ち」に遷移させると共に、バンクＢのエントリ情報すなわち「ＲＥＡＤコマンド発行」は実行されていないことからバンクＢのエントリ情報を遷移させることなくステップＳＴ２に進み、さらに領域を開放するエントリ情報の領域がまだないことからステップＳＴ３に進む。
【００８６】
また、デフラグ処理が完了していないデータが残っているときにはステップＳＴ３からステップＳＴ４に進むと共に、エントリ情報の領域は２つであることから、新たなエントリ情報の領域を確保できるものと判別されてステップＳＴ５に進む。
【００８７】
ステップＳＴ５では、ＦＩＦＯにエントリ情報の領域を新たに確保して、この領域にエントリ情報を割り付ける。すなわち、バンクＢの次に使用されるバンクＣの処理状態が「ＲＥＡＤコマンド発行」であることを示すエントリ情報が新たに確保された領域に割り付けられる。
【００８８】
その後、ステップＳＴ６からステップＳＴ７に進むと、ステップＳＴ７ではＦＩＦＯ内の最古の領域のエントリ情報をコマンド発行判別用のエントリ情報に設定してステップＳＴ８に進む。
【００８９】
ステップＳＴ８では、コマンド発行判別用のエントリ情報がコマンド発行状態であるか否かを判別する。ここで、コマンド発行判別用のエントリ情報では、バンクＡの処理状態が「ＲＥＡＤ完了待ち（ＲＤ-A）」であることが示されていることからステップＳＴ１０に進む。
【００９０】
ステップＳＴ１０では、次に古いエントリ情報の領域がＦＩＦＯに確保されているか否かを判別し、確保されていないときにはステップＳＴ１に戻り、確保されているときにはステップＳＴ１１に進む。ここで、バンクＡに対するエントリ情報の後に、バンクＢに対するエントリ情報の領域が確保されていることからステップＳＴ１１に進む。
【００９１】
ステップＳＴ１１では、次に古い領域のエントリ情報をコマンド発行判別用のエントリ情報として設定してステップＳＴ８に戻る。すなわち、バンクＢに対する処理状態が「ＲＥＡＤコマンド発行」であることを示すエントリ情報がコマンド発行判別用のエントリ情報として設定されてステップＳＴ８に戻る。このため次のステップＳＴ８ではコマンド発行状態であると判別されてステップＳＴ９に進み、エントリ情報で示されたコマンド、すなわちバンクＢに対する「ＲＥＡＤコマンド発行（ＲＣ-A）」を実行してステップＳＴ１に戻る。以上の処理によって図９に示すタイムスロットＴＳ53の処理が行われる。このタイムスロットＴＳ53の処理が行われたときには、バンクＡとバンクＢおよびバンクＣのエントリ情報がＦＩＦＯに割り付けられた状態となり、３つのエントリ情報がＦＩＦＯに割り付けられるとステップＳＴ４からステップＳＴ６に進む。
【００９２】
また、タイムスロットＴＳ55の処理が行われると、バンクＡに対する処理状態が「ＷＲＩＴＥ完了待ち（ＷＤ-A）」から「ＥＮＤ」に状態が遷移するので、ステップＳＴ２の処理によって、バンクＡに対するエントリ情報の領域が解放されて、バンクＢに対するエントリ情報の領域が最古となる。さらに、バンクＣに対するエントリ情報の領域の後に、バンクＡに対する新たなエントリ情報の領域が確保される。
【００９３】
その後、デフラグ処理するデータがなくなるとステップＳＴ３からステップＳＴ６に進むと共に、各バンクの処理状態が「ＥＮＤ」となってエントリ情報の領域が解放されて、ステップＳＴ６でＦＩＦＯ内にエントリ情報の領域が確保されていないと判別されたときには、デフラグ処理を完了する。
【００９４】
このように、エントリ情報をＦＩＦＯのデータ構造で管理すると共に、古い順からエントリ情報の内容を判別してコマンドが同時に発行されることがないように制御すると共に、バンクの処理状態が完了であることを示すエントリ情報の領域を順次開放して新たなエントリ情報の領域として用いるものとすれば、図９に示す３つのバンクを用いたデフラグ処理を簡単に実行することができる。なお、図１０におけるステップＳＴ１での処理を変更して、図１１に示す「ＲＥＡＤコマンド発行」の実行を２回から１回に変更すると共に「コマンド完了待ち」を２タイムスロットとするだけで、図８に示すデフラグ処理も簡単に行うことができる。
【００９５】
また、制御部２２に記憶するエントリ情報を、デフラグ処理中にＡＶディスクレコーダ１０に対する電力の供給が停止されても、消去されることがないように記憶すれば、電力の供給が停止されてデフラグ処理が中断されても、記憶されているエントリ情報を利用して中断されたデフラグ処理を再開できる。
【００９６】
また、上述の場合、ＡＶディスクレコーダ１０では、複数の入出力処理部１１とハードディスク３間でのデータ転送を正しく行うことができるように、各入出力処理部１１に対してタイムスロットを割り当てて、割り当てられたタイムスロットで対応する入出力処理部１１とハードディスク３０間でデータ転送を行うために、デフラグ処理も１タイムスロット毎にバンクの処理状態を遷移させるものとしている。しかし、エントリ情報をＦＩＦＯのデータ構造で管理すると共に、古い順からエントリ情報の内容を判別してコマンドが同時に発行されることがないように制御する、すなわち先に使用されているバンクに対してコマンドが発行されてからコマンドに対する処理が完了する前に次に使用されるバンクに対するコマンドを発行すると共に、１つのバンクに対する処理を完了したエントリ情報の領域を順次開放して新たなエントリ情報の領域として用いるものとすれば、タイムスロットを用いていないデータ処理装置であっても、上述の場合と同様にしてデフラグ処理を効率良く行うことができる。
【００９７】
例えば、コンピュータ装置等でのデフラグ処理においても、複数のバンクを用いてデータの再配置を行うと共に、エントリ情報を利用してコマンドが同時に発行されないように制御すれば、コマンド処理中に次のコマンドを発行することができるので効率よくデフラグ処理を行うことが可能となる。
【００９８】
なお、バッファメモリ１５の複数のバンクに代えてバッファメモリを複数設けるものとして、上述のバンクと同様にバッファメモリを用いてデフラグ処理を行うものとしても良いことは勿論である。
【００９９】
また、細分化されているデータを読み出して連続した領域に再配置するデフラグ処理だけでなく、ハードディスク３０に記録されているデータを別の領域に再度記録するコピー処理の場合にも、上述のデフラグ処理の場合と同様にバッファメモリやバンクを用いると共にコマンド発行を行うことで効率よくコピー処理を行うことができる。またデフラグ処理やコピー処理が行われて再記録されるデータは、ハードディスク３０から読み出されたデータに限られるものではなく、読み出されたデータの加工や修正等を行ってからハードディスク３０に書き込むものとしても良い。さらに、ランダムアクセス可能な記録媒体は、ハードディスク３０に限られるものではなく光ディスクや半導体メモリ等を用いるものとしても良いことは勿論である。
【０１００】
【発明の効果】
この発明によれば、ランダムアクセス可能な記録媒体に記録されているデータを複数の記憶領域の１つに読み出すコマンド、および１つの記憶領域に読み出されたデータを用いて記録媒体へのデータの書き込みを行うコマンドが記憶領域毎に発行されて、ランダムアクセス可能な記録媒体に記録されているデータを用いた再記録処理が行われると共に、コマンドの発行は、１つの記憶領域に対するコマンドの発行後からコマンドの処理完了前に、異なる記憶領域に対するコマンドが発行される。このため、１つの記憶領域に対するデータの書き込みや読み出しが完了したときに、速やかに次の記憶領域に対するデータの書き込みや読み出しを行うことが可能となり、効率よく再記録処理を行うことができる。
【０１０１】
また、記録媒体から１つの記憶領域にデータを読み出したのち記録媒体に再記録させるエントリ情報が記憶領域毎に順次設けられて、コマンドの発行が制御されると共に、このエントリ情報がＦＩＦＯ(First In First Out)のデータ構造として管理されて、エントリ情報の古い順からコマンドの発行状態の判別が行われて、１つの記憶領域に対するコマンドの発行後から該コマンドの処理完了前に、異なる記憶領域に対するコマンドが発行される。このため、コマンドの発行の制御を簡単に行うことができる。
【０１０２】
また、コマンドを発行して、記録媒体に記録されているデータが記憶領域に読み出されたのち、読み出されたデータとは異なる記録媒体の位置に再記録されるので、効率よくコピー処理を行うことができる。さらに、コマンドを発行して、記録媒体に分割して記録されているデータが記憶領域に読み出されたのち、記録媒体の連続する位置に再記録されるので、効率よくデフラグ処理を行うことができる。
【図面の簡単な説明】
【図１】システムの構成を示す図である。
【図２】ＡＶディスクレコーダの構成を示す図である。
【図３】２つのバンクを用いたデフラグ処理を示す図である。
【図４】バンクの状態遷移図である。
【図５】コマンド発行条件を示す図である。
【図６】２つのバンクを用いてデータ読み出しを２回行う場合のデフラグ処理を示す図である。
【図７】空き領域の判別を含めた状態遷移図である。
【図８】３つのバンクを用いたデフラグ処理を示す図である。
【図９】３つのバンクを用いてデータ読み出しを２回行う場合のデフラグ処理を示す図である。
【図１０】エントリ情報の管理動作を示すフローチャートである。
【図１１】制御部内のエントリ情報を示す図である。
【図１２】デフラグ処理を説明するための図である。
【図１３】デフラグ処理での処理順序を示す図である。
【図１４】従来のデフラグ処理動作を示す図である。
【符号の説明】
１０・・・ＡＶディスクレコーダ、１１・・・入出力処理部、１５・・・バッファメモリ、１６・・・ＤＭＡコントローラ、２１・・・外部インタフェース回路、２２・・・制御部、３０・・・ハードディスク、３５・・・ＳＣＳＩコントローラ、５０・・・制御バス、５１・・・ＤＭＡバス、５２・・・ＳＣＳＩバス、１００，１１０・・・ビデオカメラ、１２０・・・アプリケーション装置
【図１】
0004474742.tif 000002
【図２】
0004474742.tif 000003
【図３】
0004474742.tif 000004
【図４】
0004474742.tif 000005
【図５】
0004474742.tif 000006
【図６】
0004474742.tif 000007
【図７】
0004474742.tif 000008
【図８】
0004474742.tif 000009
【図９】
0004474742.tif 000010
【図１０】
0004474742.tif 000011
【図１１】
0004474742.tif 000012
【図１２】
0004474742.tif 000013
【図１３】
0004474742.tif 000014
【図１４】
0004474742.tif 000015