(57)【特許請求の範囲】
【請求項１】
記録媒体にアクセスするヘッドと、ホストにより発行された複数のコマンドからなるコマンドキューを記憶するメモリと、実行中の実行コマンドの実行が終了してからの前記ヘッドと前記記録媒体との相対的な移動距離に応じたシーク時間が最も小さいコマンドである最適解コマンドを前記コマンドキューの中から検索し、該最適解コマンドが優先実行されるように前記コマンドキューにおけるコマンドを並び替える並び替え処理を行う並び替え手段とを備え、ホストにより発行されたコマンドに基づいて、所定の動作を行う記憶装置において、
前記並び替え手段は、最適解コマンドの検索中に前記シーク時間が所定時間以内であるコマンドを検索した時点で、該検索したコマンドが最適解コマンドとして優先実行されるように前記コマンドキューにおけるコマンドの並び替えを行って並び替え処理を終了することを特徴とする記憶装置。
【請求項２】
前記並び替え手段は、予め決められた検索時間が経過した時点で、該検索時間内に検索したコマンドのうち前記シーク時間が最も小さいコマンドが最適解コマンドとして優先実行されるように前記コマンドキューにおけるコマンドの並び替えを行って並び替え処理を終了することを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記並び替え手段は、前記ホストに対してステータス応答を即時に返すことができる特殊コマンドを検索した場合、該特殊コマンドが優先実行されるように前記コマンドキューにおけるコマンドの並び替えを行うことを特徴とする請求項１または２に記載の記憶装置。
【請求項４】
前記メモリは、第１メモリと第１メモリより高速アクセス可能な第２メモリとから構成され、
前記ホストにより発行された複数のコマンドを、コマンドの並べ替え処理に不要な第１コマンド情報と、前記並べ替え処理に必要な第２コマンド情報にそれぞれ分離する分離手段と、
前記第１コマンド情報をキューをなすようにして前記第１メモリに格納し、前記第１コマンド情報とリンクされた状態で前記第２コマンド情報をキューをなすようにして前記第２メモリに格納するコマンド情報格納手段と、をさらに備え、
前記並び替え手段は、前記最適解コマンドを前記第２メモリに格納されたコマンドキューの中から検索することを特徴とする請求項１、２または３に記載の記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ等の外部記憶装置として用いられる記憶装置に関するものであり、特に、コマンドの並べ替え処理の時間の短縮化、磁気ディスクに対するアクセス時間の短縮化を図ることができる記憶装置に関するものである。
【０００２】
コンピュータ等の外部記憶装置としては、大容量の磁気ディスクを記録媒体とする記憶装置が主流を占めている。この種の記憶装置は、データ転送速度の向上、磁気ディスクの特性改善、磁気ヘッドの改良等により、年々、高密度化している。この高密度化にともなって、アクセス時間、処理時間も短縮化する必要があり、その効果的な解決手段が切望されている。
【０００３】
【従来の技術】
図９は、従来における記憶装置１０の構成を示すブロック図である。この図において、記憶装置１０は、ＳＣＳＩ（Small Computer System Interface）を介して、コンピュータ等のホスト３０に接続されており、このホスト３０からのコマンド（たとえば、ライトコマンド、リードコマンド）に基づいて、ライト動作、リード動作等を行う。ここで、ライト動作とは、後述する磁気ディスク１７に対してデータを書き込む動作をいい、ライトコマンドは、上記ライト動作を実行させるためのコマンドである。また、リード動作とは、磁気ディスク１７からデータを読み込む動作をいい、リードコマンドは、上記リード動作を実行させるためのコマンドである。
【０００４】
また、コマンドは、周知のＣＤＢ（Command Descriptor Block）と呼ばれる形式で記述されており、コマンドの種別を示すコマンドコード、当該コマンドを実行する際の磁気ディスク１７上のアドレス等の情報を含んでいる。制御部１１は、Ｉ／Ｆ部１２を介して受信された、ホスト３０からのコマンドの解析、ホスト３０へのステータスの送信、コマンドのキューイング、コマンドの並べ替え処理等を行う。ここで、コマンドのキューイングとは、ホスト３０より順次発行されるコマンドを、図１０（ａ）に示したコマンドキューＱ1 に追加することをいう。このコマンドキューＱ1 は、バッファメモリ１３に記憶されており、コマンドキューＱ1 の先頭のコマンドから順次実行される。
【０００５】
図１０（ａ）に示した例では、コマンドキューＱ1 は、コマンドＣ1 〜Ｃ4 という都合４つのコマンドからなる。また、コマンドの並べ替え処理とは、実行中のコマンドのつぎに実行すべきコマンドをコマンドキューＱ1 の中から選択し、この選択されたコマンドをコマンドキューＱ1 の先頭へ移動させる処理をいう。ここで、選択されるコマンドは、後述するシーク時間が最も短いコマンドである。
【０００６】
図９に戻り、バッファメモリ１３は、上述したコマンドキューＱ1 、磁気ディスク１７から読み出されたデータ、磁気ディスク１７へ書き込むべきデータを一時的に記憶する。コマンド実行部１４は、コマンドキューＱ1 において先頭のコマンドから順次実行することで、磁気ディスク１７からデータを読み出したり、磁気ディスク１７にデータを書き込むための制御を行う。リード／ライト部１５は、磁気ディスク１７に書き込むデータに変調をかける変調回路（図示略）や、パラレルのデータをシリアルデータに変換するパラレル／シリアル変換回路や、磁気ディスク１７から読み出されたデータを復調する復調回路（図示略）等を備えている。
【０００７】
ヘッド１６は、磁気ディスク１７に近接配置されており、磁気的作用により、磁気ディスク１７へデータを書き込む一方、磁気ディスク１７からデータを読み出す。具体的には、ヘッド１６は、書き込み時にコイル（図示略）に供給される記録電流により発生する磁界により磁気ディスク１７に対してデータの書き込みを行う一方、磁気ディスク１７に記録されているデータを磁気的に再生電圧として検知する。このヘッド１６は、ＶＣＭ（Voice Coil Motor）１８により磁気ディスク１７の記録面に沿って移動される。
【０００８】
磁気ディスク１７は、磁気的にデータを記録する円板上の記録媒体であり、ＳＰＭ（SPindle Motor）１９により、高速回転駆動される。サーボ部２０は、ＶＣＭ１８およびＳＰＭ１９に供給されるそれぞれの駆動電流を制御することで、磁気ディスク１７に対するヘッド１６の位置決め制御を行う。
【０００９】
つぎに、従来における記憶装置１０の動作について、図１０（ａ）、（ｂ）、図１１および図１２を参照しつつ説明する。以下においては、上述したコマンドの並べ替え処理について詳述する。図９に示したホスト３０からコマンドが順次送信されると、これらのコマンドは、Ｉ／Ｆ部１２を介して制御部１１に順次入力される。これにより、制御部１１は、コマンドを解析した後、入力された順に、コマンドを、バッファメモリ１３におけるコマンドキューにキューイングする。また、コマンド実行部１４は、コマンドキューの先頭のコマンドを実行する。
【００１０】
ここで、図１２に示したコマンドＣ0 がコマンド実行部１４により実行されており、かつバッファメモリ１３に図１０（ａ）に示したコマンドキューＱ1 が記憶されているものとする。すなわち、図１２に示したようにヘッド１６は、磁気ディスク１７のトラックＴＲ1 にオントラックしており、コマンドＣ0 に応じて、たとえば、トラックＴＲ1 のセクタからデータを読み出しているものとする。また、図１０（ａ）に示したコマンドキューＱ1 は、コマンドＣ1 〜コマンドＣ4 からなる。
【００１１】
このように、コマンドＣ0 の実行中においては、図９に示した制御部１１は、図１１に示したフローチャートにしたがって、コマンドの並べ替え処理を実行する。すなわち、図１１に示したステップＳＡ１では、制御部１１は、コマンドキューＱ1 （図１０（ａ）参照）における先頭のコマンドＣ1 を最適解コマンドとして初期設定するとともに、つぎのコマンドＣ2 を比較対象コマンドとして初期設定した後、ステップＳＡ２へ進む。ここで、最適解コマンドとは、実行中のコマンドＣ0 のつぎに実行されるコマンドをいい、コマンドキューＱ1 のなかで、コマンドＣ0 の実行が終了してからのヘッド１６のシーク時間が短いコマンドをいう。
【００１２】
また、最適解コマンドとして初期設定されるコマンドは、コマンドキューＱ1 における並べ替え可能なコマンドであり、たとえば、リードコマンド、ライトコマンド等である。なお、コマンドキューＱ1 の先頭のコマンドが並べ替えできないコマンドである場合には、先頭より下にキューイングされているコマンドであって、かつ先頭に最も近いコマンドが最適解コマンドとして初期設定される。
【００１３】
ステップＳＡ２では、制御部１１は、比較対象コマンド（＝コマンドＣ2 ）が並べ替え可能なコマンド（リードコマンド、ライトコマンド等）であるか否かを判断する。この場合、判断結果が「Ｙｅｓ」であるものとすると、制御部１１は、ステップＳＡ３へ進む。なお、ステップＳＡ２の判断結果が「Ｎｏ」である場合、制御部１１は、ステップＳＡ７へ進む。
【００１４】
ステップＳＡ３では、制御部１１は、最適解コマンド（＝コマンドＣ1 ）の物理アドレス、および比較対象コマンド（＝コマンドＣ2 ）の物理アドレスをそれぞれ求めた後、ステップＳＡ４へ進む。上記最適解コマンドの物理アドレスは、最適解コマンドの実行を開始する際の、図１２に示した磁気ディスク１７上のヘッド１６の位置である。同様にして、比較対象コマンドは、比較対象コマンドの実行を開始する際の、磁気ディスク１７上のヘッド１６の位置である。
【００１５】
ステップＳＡ４では、制御部１１は、最適解コマンドの第１シーク時間Ｔ1 および比較対象コマンドの第２シーク時間Ｔ2 をそれぞれ求めた後、ステップＳＡ５へ進む。ここで、第１シーク時間Ｔ1 は、実行中のコマンド（この場合、コマンドＣ0 ）が終了した時点から最適解コマンド（この場合、コマンドＣ1 ）の実行を開始する時点までの時間をいう。いいかえれば、第１シーク時間Ｔ1 は、図１２に示した実行中のコマンドＣ0 が終了したときにヘッド１６が位置するａ点から、最適解コマンドの実行が開始される点までにおけるヘッド１６の移動に要する時間をいう。
【００１６】
同様にして、第２シーク時間Ｔ2 は、実行中のコマンド（この場合、コマンドＣ0 ）が終了した時点から比較対象コマンド（この場合、コマンドＣ2 ）の実行を開始する時点までの時間をいう。いいかえれば、第２シーク時間Ｔ2 は、図１２に示した実行中のコマンドＣ0 が終了したときにヘッド１６が位置するａ点から、比較対象コマンドの実行が開始される点までにおけるヘッド１６の移動に要する時間をいう。
【００１７】
ステップＳＡ５では、制御部１１は、第２シーク時間Ｔ2 が第１シーク時間Ｔ1 より短いか否かを判断する。この場合、判断結果が「Ｎｏ」であるものとすると、制御部１１は、ステップＳＡ７へ進む。なお、ステップＳＡ５の判断結果が「Ｙｅｓ」である場合、制御部１１は、ステップＳＡ６へ進む。ステップＳＡ６では、制御部１１は、比較対象コマンドを最適解コマンドとして登録した後、ステップＳＡ７へ進む。
【００１８】
ステップＳＡ７では、制御部１１は、コマンドキューＱ1 （図１０（ａ）参照）における最終コマンド（この場合、コマンドＣ4 ）を比較対象コマンドとした比較を終了したか否かを判断する。この場合、制御部１１は、判断結果を「Ｎｏ」として、ステップＳＡ８へ進む。ステップＳＡ８では、制御部１１は、コマンドキューＱ1 （図１０（ａ）参照）におけるつぎのコマンドＣ3 を比較対象コマンドとして、ステップＳＡ２へ戻る。
【００１９】
以後、ステップＳＡ２以降においては、上述した動作と同様にして、コマンドＣ2 、Ｃ3 を比較対象コマンドとする処理が実行される。そして、ステップＳＡ８において、図１０（ａ）に示したコマンドＣ4 （最終コマンド）が比較対象コマンドとされると、ステップＳＡ２では、制御部１１は、比較対象コマンド（＝コマンドＣ4 ）が並べ替え可能なコマンド（リードコマンド、ライトコマンド等）であるか否かを判断し、この場合、判断結果が「Ｙｅｓ」であるものとすると、制御部１１は、ステップＳＡ３へ進む。
【００２０】
ステップＳＡ３では、制御部１１は、最適解コマンド（たとえば、コマンドＣ1 ）の物理アドレス、および比較対象コマンド（＝コマンドＣ4 ）の物理アドレスをそれぞれ求めた後、ステップＳＡ４へ進む。ステップＳＡ４では、制御部１１は、最適解コマンド（＝コマンドＣ1 ）の第１シーク時間Ｔ1 および比較対象コマンド（＝コマンドＣ4 ）の第２シーク時間Ｔ2 をそれぞれ求めた後、ステップＳＡ５へ進む。
【００２１】
ステップＳＡ５では、制御部１１は、第２シーク時間Ｔ2 が第１シーク時間Ｔ1 より短いか否かを判断し、この場合、判断結果が「Ｙｅｓ」であるものとすると、制御部１１は、ステップＳＡ６へ進む。ステップＳＡ６では、制御部１１は、比較対象コマンド（＝コマンドＣ4 ）を最適解コマンドとして登録した後、ステップＳＡ７へ進む。
【００２２】
ステップＳＡ７では、制御部１１は、コマンドキューＱ1 （図１０（ａ）参照）における最終コマンド（この場合、コマンドＣ4 ）を比較対象コマンドとした比較を終了したか否かを判断し、この場合、制御部１１は、判断結果を「Ｙｅｓ」として、ステップＳＡ９へ進む。ステップＳＡ９では、制御部１１は、図１０（ｂ）に示したように、コマンドキューＱ1 において、最適解コマンド（＝コマンドＣ4 ）を現在位置（図１０（ａ）参照）から先頭へ移動させる。
【００２３】
そして、図１２に示したように現在実行中のコマンドＣ0 の実行が終了すると、ステップＳＡ１０では、コマンド実行部１４は、図１０（ｂ）に示したコマンドキューＱ1 の先頭のコマンドＣ4 （＝最適解コマンド）を実行する。このとき、ヘッド１６は、トラックＴＲ1 上のａ点に位置しているものとする。そして、サーボ部２０は、コマンド実行部１４の制御の下で、ＶＣＭ１８を制御することで、図１２に示したヘッド１６をＹ方向に移動させる。
【００２４】
これにより、ヘッド１６は、トラックＴＲ1 からトラックＴＲ3 まで移動される。ここで、トラックＴＲ3 は、コマンドＣ4 （最適解コマンド）が実行されるトラックである。また、ヘッド１６の移動中においては、磁気ディスク１７がＸ方向に移動しているため、ヘッド１６は、ａ点からｂ点までを結ぶ軌跡Ｓ1 を描きつつ移動する。そして、ヘッド１６がｂ点に位置するとヘッド１６の移動が停止され、ヘッド１６は、磁気ディスク１７の回転待ちとなる。そして、ヘッド１６がｃ点に位置すると、コマンドＣ4 が実行される。
【００２５】
【発明が解決しようとする課題】
ところで、前述したように、従来の記憶装置においては、図１０（ａ）に示したコマンドキューＱ1 を構成するすべてのコマンドＣ1 〜Ｃ4 について最適解コマンドを決定するための比較を行っている旨を述べた。しかしながら、従来の記憶装置においては、コマンドキューを構成するコマンドの数が増えるにしたがって、比較回数が増加するためその分、最適解コマンドを求め、コマンドの並べ替えが終了するまでに時間がかかる。
【００２６】
たとえば、図１０（ｃ）に示した７つのコマンドＣ1 〜Ｃ7 からなり、かつ最適解コマンド（この場合、コマンドＣ4 とする）が最後に位置しているコマンドキューＱ2 の場合には、最適解コマンド（＝コマンドＣ4 ）が決定されるまでに、図１２に示したヘッド１６が一定時間内シーク領域Ａを越えてしまい、磁気ディスク１７が１回転（または２回転以上）してしまうというオーバヘッドが発生する。ここで、一定時間内シーク領域Ａは、ヘッド１６が一定時間内に移動したときに位置する領域である。すなわち、従来の記憶装置においては、コマンドキューを構成するすべてのコマンドについて最適解コマンドを決定するための比較を行っているため、コマンド数が多い場合に、コマンドの並べ替え処理に長時間を要し、さらにオーバヘッドが発生した場合、磁気ディスク１７に対するアクセス時間が長くなるという問題があった。
【００２７】
また、従来の記憶装置においては、アクセス速度が比較的遅いバッファメモリ１３にコマンドキューを記憶させ、このバッファメモリ１３にアクセスすることで、コマンドの並べ替えを行っているため、コマンドキューを構成するコマンドの数が増えるにしたがって、トータルのアクセス時間が長くなるため、コマンドの並べ替え処理に長時間を要するという問題があった。
【００２８】
本発明は、上記に鑑みてなされたもので、コマンドの並べ替え処理の時間の短縮化、磁気ディスクに対するアクセス時間の短縮化を図ることができる記憶装置を提供することを目的とする。
【００２９】
【課題を解決するための手段】
上記目的を達成するために、請求項１にかかる発明は、記録媒体（後述する実施の形態１の磁気ディスク１７に相当）にアクセスするヘッド（後述する実施の形態１のヘッド１６に相当）と、ホスト（後述する実施の形態１のホスト３０に相当）により発行された複数のコマンドからなるコマンドキューを記憶するメモリ（後述する実施の形態１のバッファメモリ１３に相当）と、実行中の実行コマンドの実行が終了してからの前記ヘッドと前記記録媒体との相対的な移動距離に応じたシーク時間が最も小さいコマンドである最適解コマンドを前記コマンドキューの中から検索し、該最適解コマンドが優先実行されるように前記コマンドキューにおけるコマンドを並び替える並び替え処理を行う並び替え手段（後述する実施の形態１の制御部４１に相当）とを備え、ホストにより発行されたコマンドに基づいて、所定の動作を行う記憶装置において、前記並び替え手段は、最適解コマンドの検索中に前記シーク時間が所定時間以内であるコマンドを検索した時点で、該検索したコマンドが最適解コマンドとして優先実行されるように前記コマンドキューにおけるコマンドの並び替えを行って並び替え処理を終了することを特徴とする。
【００３０】
この請求項１にかかる発明によれば、実行コマンドが実行されると、コマンドキューの中から所定の条件にしたがって、つぎに実行すべきコマンドが検索される。この検索中においては、ヘッドと記録媒体との相対的な移動距離に応じた時間が所定時間以内であるコマンドが検索された時点で、当該コマンドが優先実行されるようにコマンドキューにおける並べ替えが行われて並べ替え処理が終了される。
【００３１】
このように、請求項１にかかる発明によれば、コマンドキューにおけるすべてのコマンドが検索されていない場合であっても、所定の条件を満した時点で、当該コマンドが優先実行されるようにコマンドの並べ替えを行って並べ替え処理を終了するようにしたので、従来のようにコマンドキューにおけるすべてのコマンドを検索対象とする場合に比して、コマンドの並べ替え処理の時間を短縮化することができる。
【００３２】
また、請求項２にかかる発明は、請求項１に記載の記憶装置において、前記並び替え手段は、予め決められた検索時間が経過した時点で、該検索時間内に検索したコマンドのうち前記シーク時間が最も小さいコマンドが最適解コマンドとして優先実行されるように前記コマンドキューにおけるコマンドの並び替えを行って並び替え処理を終了することを特徴とする。
【００３３】
この請求項２にかかる発明によれば、予め決められた検索時間が経過した時点で、その検索時間内に検索したコマンドのうちシーク時間が最も小さいコマンドが最適解コマンドとして優先実行されるようにコマンドキューにおけるコマンドの並び替えを行って並び替え処理を終了するようにしたので、従来のようにコマンドキューにおけるすべてのコマンドを検索対象とする場合に比して、コマンドの並べ替え処理の時間を短縮化することができる。
【００３４】
また、請求項３にかかる発明は、請求項１または２に記載の記憶装置において、前記並び替え手段は、前記ホストに対してステータス応答を即時に返すことができる特殊コマンドを検索した場合、該特殊コマンドが優先実行されるように前記コマンドキューにおけるコマンドの並び替えを行うことを特徴とする。
【００３５】
この請求項３にかかる発明によれば、ホストに対してステータス応答を即時に返すことができる特殊コマンドを検索した場合、特殊コマンドが優先実行されるようにコマンドキューにおけるコマンドの並び替えが行われる。
【００３６】
このように、請求項３にかかる発明によれば、ホストに対してステータス応答を即時に返すことができる特殊コマンドが他のコマンドより優先的に実行されるようにコマンドの並べ替えを行うようにしたので、コマンドキューにおけるコマンドの数をいち早く減らすことができるため、後に行われるコマンドの並べ替えに要する時間を短縮することができる。
【００３７】
また、請求項４にかかる発明は、請求項１、２または３に記載の記憶装置において、前記メモリは、第１メモリと第１メモリより高速アクセス可能な第２メモリとから構成され、前記ホストにより発行された複数のコマンドを、コマンドの並べ替え処理に不要な第１コマンド情報と、前記並べ替え処理に必要な第２コマンド情報にそれぞれ分離する分離手段と、前記第１コマンド情報をキューをなすようにして前記第１メモリに格納し、前記第１コマンド情報とリンクされた状態で前記第２コマンド情報をキューをなすようにして前記第２メモリに格納するコマンド情報格納手段と、をさらに備え、前記並び替え手段は、前記最適解コマンドを前記第２メモリに格納されたコマンドキューの中から検索することを特徴とする。
【００３８】
この請求項４にかかる発明によれば、コマンドを第１コマンド情報と第２コマンド情報とに分離し、並べ替え処理に必要な第２コマンド情報を高速アクセス可能な第２メモリに記憶させて、この第２メモリにアクセスすることでコマンドの実行順位の並べ替えを行うようにしたので、従来の記憶装置に比して、第２メモリへのアクセス時間が短縮化される分だけ、コマンドの並べ替え処理に要する時間を短縮化することができる。
【００３９】
【発明の実施の形態】
以下、図面を参照して本発明にかかる記憶装置の実施の形態１〜３について詳細に説明する。
【００４０】
（実施の形態１）
図１は、本発明にかかる実施の形態１の構成を示すブロック図である。この図において、図９の各部に対応する部分には同一の符号を付け、その説明を省略する。図１に示した記憶装置４０においては、図９に示した制御部１１に代えて制御部４１が設けられている。この制御部４１は、制御部１１（図９参照）と同様にして、Ｉ／Ｆ部１２を介して受信された、ホスト３０からのコマンドの解析、ホスト３０へのステータスの送信、コマンドのキューイング、コマンドの並べ替え処理等を行う。ただし、制御部４１におけるコマンドの並べ替え処理は、後述するように、制御部１１におけるコマンドの並べ替え処理とは異なる。
【００４１】
つぎに、実施の形態１の動作について、図２（ａ）、（ｂ）、図３および図４を参照しつつ説明する。以下においては、上述したコマンドの並べ替え処理について詳述する。図１に示したホスト３０からコマンドが順次送信されると、これらのコマンドは、Ｉ／Ｆ部１２を介して制御部４１に順次入力される。これにより、制御部４１は、コマンドを解析した後、入力された順に、コマンドを、バッファメモリ１３におけるコマンドキューにキューイングする。また、コマンド実行部１４は、コマンドキューの先頭のコマンドを実行する。
【００４２】
ここで、図４に示したコマンドＣ0 がコマンド実行部１４により実行されており、かつバッファメモリ１３に図２（ａ）に示したコマンドキューＱ3 が記憶されているものとする。すなわち、図４に示したようにヘッド１６は、磁気ディスク１７のトラックＴＲ1 にオントラックしているものとする。また、図２（ａ）に示したコマンドキューＱ3 は、コマンドＣ1 〜コマンドＣ7 からなる。
【００４３】
このように、コマンドＣ0 の実行中においては、図１に示した制御部４１は、図３に示したフローチャートにしたがって、コマンドの並べ替え処理を実行する。すなわち、図３に示したステップＳＢ１では、ステップＳＡ１（図１１参照）と同様にして、制御部４１は、コマンドキューＱ3 （図２（ａ）参照）における先頭のコマンドＣ1 を最適解コマンドとして初期設定するとともに、つぎのコマンドＣ2 を比較対象コマンドとして初期設定した後、ステップＳＢ２へ進む。
【００４４】
ステップＳＢ２では、制御部４１は、図示しないタイマをリセットすることで、計時結果ｔを０にした後、ステップＳＢ３へ進む。ステップＳＢ３では、制御部４１は、比較対象コマンド（＝コマンドＣ2 ）が並べ替え可能なコマンド（リードコマンド、ライトコマンド等）であるか否かを判断し、この場合、判断結果が「Ｙｅｓ」であるものとすると、ステップＳＢ４へ進む。なお、ステップＳＢ２の判断結果が「Ｎｏ」である場合、制御部４１は、ステップＳＢ８へ進む。
【００４５】
ステップＳＢ４では、制御部４１は、ステップＳＡ３（図１１参照）と同様にして、最適解コマンド（＝コマンドＣ1 ）の物理アドレス、および比較対象コマンド（＝コマンドＣ2 ）の物理アドレスをそれぞれ求めた後、ステップＳＢ５へ進む。上記最適解コマンドの物理アドレスは、最適解コマンドの実行を開始する際の、図４に示した磁気ディスク１７上のヘッド１６の位置である。同様にして、比較対象コマンドは、比較対象コマンドの実行を開始する際の、磁気ディスク１７上のヘッド１６の位置である。
【００４６】
ステップＳＢ５では、制御部４１は、最適解コマンド（＝コマンドＣ1 ）の第１シーク時間Ｔ1 および比較対象コマンド（＝コマンドＣ2 ）の第２シーク時間Ｔ2 をそれぞれ求めた後、ステップＳＢ６へ進む。ここで、第１シーク時間Ｔ1 は、図４に示した実行中のコマンドＣ0 が終了したときにヘッド１６が位置するａ点から、最適解コマンド（＝コマンドＣ1 ）の実行が開始される点までにおけるヘッド１６の移動に要する時間をいう。同様にして、第２シーク時間Ｔ2 は、図４に示した実行中のコマンドＣ0 が終了したときにヘッド１６が位置するａ点から、比較対象コマンド（＝コマンドＣ2 ）の実行が開始される点までにおけるヘッド１６の移動に要する時間をいう。
【００４７】
ステップＳＢ６では、制御部４１は、第２シーク時間Ｔ2 が第１シーク時間Ｔ1 より短いか否かを判断する。この場合、判断結果が「Ｎｏ」であるものとすると、制御部４１は、ステップＳＢ８へ進む。なお、ステップＳＢ６の判断結果が「Ｙｅｓ」である場合、制御部４１は、ステップＳＢ７へ進む。ステップＳＢ７では、制御部４１は、比較対象コマンドを最適解コマンドとして登録した後、ステップＳＢ８へ進む。
【００４８】
ステップＳＢ８では、制御部４１は、タイマの計時結果ｔがしきい値時間ＴＨを越えたか否か、またはステップＳＢ７において最適解コマンドとされた比較対象コマンドの第２シーク時間Ｔ2 がしきい値時間ＴＳより短いか否かを判断する。ここで、しきい値時間ＴＨは、実行中のコマンドＣ0 が実行されてから実行が終了するまでの時間である。また、しきい値時間ＴＳは、図４に示した実行中のコマンドＣ0 が終了してからのヘッド１６と磁気ディスク１７との相対的な移動距離に応じた時間であり、たとえば、１ｍｓである。したがって、しきい値時間ＴＳ内においては、ヘッド１６は、ａ点を始点として一定時間内シーク領域Ａ内のいずれかの点に位置することになる。この場合、ステップＳＢ８の判断結果が「Ｎｏ」であるものとすると、制御部４１は、ステップＳＢ９へ進む。
【００４９】
ステップＳＢ９では、制御部４１は、コマンドキューＱ3 （図２（ａ）参照）における最終コマンド（この場合、コマンドＣ7 ）を比較対象コマンドとした比較を終了したか否かを判断する。この場合、制御部４１は、判断結果を「Ｎｏ」として、ステップＳＢ１０へ進む。ステップＳＢ１０では、制御部４１は、コマンドキューＱ3 （図２（ａ）参照）におけるつぎのコマンドＣ3 を比較対象コマンドとして、ステップＳＢ３へ戻る。
【００５０】
ステップＳＢ３では、制御部４１は、上述した動作と同様にして、比較対象コマンド（＝コマンドＣ3 ）が並べ替え可能なコマンドであるか否かを判断し、この場合、判断結果が「Ｙｅｓ」であるものとすると、ステップＳＢ４へ進む。ステップＳＢ４では、制御部４１は、最適解コマンド（たとえば、コマンドＣ1 ）の物理アドレス、および比較対象コマンド（＝コマンドＣ3 ）の物理アドレスをそれぞれ求めた後、ステップＳＢ５へ進む。ステップＳＢ５では、制御部４１は、最適解コマンド（＝コマンドＣ1 ）の第１シーク時間Ｔ1 および比較対象コマンド（＝コマンドＣ3 ）の第２シーク時間Ｔ2 をそれぞれ求めた後、ステップＳＢ６へ進む。
【００５１】
ステップＳＢ６では、制御部４１は、第２シーク時間Ｔ2 が第１シーク時間Ｔ1 より短いか否かを判断する。この場合、判断結果が「Ｙｅｓ」であるものとすると、制御部４１は、ステップＳＢ７へ進む。ステップＳＢ７では、制御部４１は、比較対象コマンド（＝コマンドＣ3 ）を最適解コマンドとして登録した後、ステップＳＢ８へ進む。
【００５２】
ステップＳＢ８では、制御部４１は、タイマの計時結果ｔがしきい値時間ＴＨを越えたか否か、またはステップＳＢ７において最適解コマンドとされた比較対象コマンドの第２シーク時間Ｔ2 がしきい値時間ＴＳより短いか否かを判断する。この場合、ステップＳＢ７において最適解コマンドとされた比較対象コマンド（＝コマンドＣ3 ）の第２シーク時間Ｔ2 がしきい値時間ＴＳより短いものとすると、制御部４１は、ステップＳＢ８の判断結果を「Ｙｅｓ」として、ステップＳＢ１１へ進む。ここで注意すべきは、図２（ａ）に示したコマンドキューＱ3 においては、コマンドＣ4 〜Ｃ7 が比較対象コマンドとされることなく、最適解コマンドと比較対象コマンドとの比較が終了している。
【００５３】
ステップＳＢ１１では、制御部４１は、図２（ｂ）に示したように、コマンドキューＱ3 において、最適解コマンド（＝コマンドＣ3 ）を現在位置（図２（ａ）参照）から先頭へ移動させる。そして、図４に示したように現在実行中のコマンドＣ0 の実行が終了すると、ステップＳＢ１２では、コマンド実行部１４は、図２（ｂ）に示したコマンドキューＱ3 の先頭のコマンドＣ3 （＝最適解コマンド）を実行する。このとき、ヘッド１６は、トラックＴＲ1 上のａ点に位置しているものとする。そして、サーボ部２０は、コマンド実行部１４の制御の下で、ＶＣＭ１８を制御することで、図４に示したヘッド１６をＹ方向に移動させる。
【００５４】
これにより、ヘッド１６は、トラックＴＲ1 からトラックＴＲ3 まで移動される。ここで、トラックＴＲ3 は、コマンドＣ3 （＝最適解コマンド）が実行されるトラックである。また、ヘッド１６の移動中においては、磁気ディスク１７がＸ方向に移動しているため、ヘッド１６は、ａ点からｂ点までを結ぶ軌跡Ｓ1 を描きつつ移動する。そして、ヘッド１６が一定時間内シーク領域Ａ内のｂ点に位置するとヘッド１６の移動が停止され、ヘッド１６は、磁気ディスク１７の回転待ちとなる。そして、ヘッド１６がｃ点に位置すると、コマンドＣ3 が実行される。
【００５５】
また、ステップＳＢ８において、タイマの計時結果ｔがしきい値時間ＴＨを越えた場合には、制御部４１は、判断結果を「Ｙｅｓ」として、ステップＳＢ１１へ進む。すなわち、この場合には、図２（ａ）に示したコマンドキューＱ3 における最終コマンド（＝コマンドＣ7 ）が比較対象コマンドとされる前に、最適解コマンドと比較対象コマンドとの比較が終了している。
【００５６】
ステップＳＢ１１では、制御部４１は、図２（ｂ）に示したように、コマンドキューＱ3 において、タイマの計時結果ｔがしきい値を超えた時点での最適解コマンドを現在位置（図２（ａ）参照）から先頭へ移動させる。そして、図４に示したように現在実行中のコマンドＣ0 の実行が終了すると、ステップＳＢ１２では、コマンド実行部１４は、図２（ｂ）に示したコマンドキューＱ3 の先頭のコマンド（＝最適解コマンド）を実行する。
【００５７】
以上説明したように、実施の形態１によれば、コマンドキューにおけるすべてのコマンドが比較対象コマンドとして比較されない場合であっても、所定の条件を満した時点で、当該コマンドが優先実行されるようにコマンドの並べ替えを行うようにしたので、従来のようにコマンドキューにおけるすべてのコマンドを検索対象とする場合に比して、コマンドの並べ替え処理の時間を短縮化することができる。
【００５８】
なお、実施の形態１においては、最適解コマンドが決定された時点で、時間に余裕がある場合に、つぎの候補の最適解コマンドを決定する処理を行い、コマンドの並べ替え処理を行うようにしてもよい。この場合には、より良い条件の最適解コマンドを決定することができる。
【００５９】
（実施の形態２）
さて、上述した実施の形態１においては、図４に示した実行中のコマンドＣ0 が終了してからのヘッド１６と磁気ディスク１７との相対的な移動距離に応じた時間がしきい値ＴＳ内となるようなコマンドがコマンドキューＱ3 の中から見つかった時点で、上記コマンドを最適解コマンドとした例について説明した。ここで、ホスト３０へステータスを即時に応答できるようなコマンド（たとえば、ライトキャッシュコマンド）がコマンドキューの中に存在する場合、このコマンドを他のコマンドに優先させて実行するようにしてもよい。以下、この場合を実施の形態２として説明する。
【００６０】
なお、実施の形態２の構成は、図１に示した構成と同様である。ただし、実施の形態２においては、後述するように、図１に示した制御部４１の機能が実施の形態１の場合と一部異なる。
【００６１】
つぎに、実施の形態２の動作について、図２（ａ）、（ｂ）、図４および図５を参照しつつ説明する。ここで、図４に示したコマンドＣ0 がコマンド実行部１４により実行されており、かつバッファメモリ１３に図２（ａ）に示したコマンドキューＱ3 が記憶されているものとする。すなわち、図２（ａ）に示したコマンドキューＱ3 は、コマンドＣ1 〜コマンドＣ7 からなり、コマンドＣ3 は、上述したように、ホスト３０へステータスを即時に応答できるようなコマンド（たとえば、ライトキャッシュコマンド）であるものとする。以下、上記コマンドをステータス即時応答可能コマンドと称する。ここで、ライトキャッシュコマンドは、ホスト３０からのデータをバッファメモリ１３に書き込むことを指示するコマンドである。
【００６２】
このように、コマンドＣ0 の実行中においては、図１に示した制御部４１は、図５に示したフローチャートにしたがって、コマンドの並べ替え処理を実行する。すなわち、図５に示したステップＳＣ１では、制御部４１は、コマンドキューＱ3 （図２（ａ）参照）における先頭のコマンドＣ1 を最適解コマンドとして初期設定するとともに、つぎのコマンドＣ2 を比較対象コマンドとして初期設定した後、ステップＳＣ２へ進む。
【００６３】
ステップＳＣ２では、制御部４１は、フラグＡをリセット、すなわちフラグＡに０を代入した後、ステップＳＣ３へ進む。ここで、フラグＡは、図２（ａ）に示したコマンドキューＱ3 において、ステータス即時応答可能コマンドが存在しているか否かを示すフラグである。すなわち、フラグＡが０である場合、コマンドキューＱ3 にステータス即時応答可能コマンドが存在していないことを表しており、フラグＡが１である場合、コマンドキューＱ3 にステータス即時応答可能コマンドが存在していることを表している。
【００６４】
ステップＳＣ３では、制御部４１は、比較対象コマンド（＝コマンドＣ2 ）が並べ替え可能なコマンド（リードコマンド、ライトコマンド、ステータス即時応答可能コマンド等）であるか否かを判断し、この場合、判断結果が「Ｙｅｓ」であるものとすると、ステップＳＣ４へ進む。なお、ステップＳＣ３の判断結果が「Ｎｏ」である場合、制御部４１は、ステップＳＣ１２へ進む。
【００６５】
ステップＳＣ４では、制御部４１は、比較対象コマンド（＝コマンドＣ2 ）がステータス即時応答可能コマンドであるか否かを判断し、この場合、判断結果が「Ｎｏ」であるものとすると、ステップＳＣ５へ進む。ステップＳＣ５では、制御部４１は、フラグＡがセット、すなわち、フラグＡが１であるか否かを判断する。この場合、フラグＡが０であるため、制御部４１は、ステップＳＣ５の判断結果を「Ｎｏ」として、ステップＳＣ６へ進む。なお、ステップＳＣ５の判断結果が「Ｙｅｓ」である場合、制御部４１は、ステップＳＣ１２へ進む。
【００６６】
ステップＳＣ６では、制御部４１は、ステップＳＡ３およびステップＳＡ４（図１１参照）と同様にして、最適解コマンド（＝コマンドＣ1 ）の物理アドレス、および比較対象コマンド（＝コマンドＣ2 ）の物理アドレスをそれぞれ求める。つぎに、制御部４１は、最適解コマンド（＝コマンドＣ1 ）の第１シーク時間Ｔ1 および比較対象コマンド（＝コマンドＣ2 ）の第２シーク時間Ｔ2 をそれぞれ求めた後、ステップＳＣ７へ進む。
【００６７】
ステップＳＣ７では、制御部４１は、第２シーク時間Ｔ2 が第１シーク時間Ｔ1 より短いか否かを判断する。この場合、判断結果が「Ｎｏ」であるものとすると、制御部４１は、ステップＳＣ１２へ進む。なお、ステップＳＣ７の判断結果が「Ｙｅｓ」である場合、制御部４１は、ステップＳＣ８へ進む。ステップＳＣ８では、制御部４１は、比較対象コマンドを最適解コマンドとして登録した後、ステップＳＣ１２へ進む。
【００６８】
ステップＳＣ１２では、制御部４１は、コマンドキューＱ3 （図２（ａ）参照）における最終コマンド（この場合、コマンドＣ7 ）を比較対象コマンドとした比較を終了したか否かを判断する。この場合、制御部４１は、判断結果を「Ｎｏ」として、ステップＳＣ１３へ進む。ステップＳＣ１３では、制御部４１は、コマンドキューＱ3 （図２（ａ）参照）におけるつぎのコマンドＣ3 （＝ステータス即時応答可能コマンド）を比較対象コマンドとして、ステップＳＣ３へ戻る。
【００６９】
ステップＳＣ３では、制御部４１は、上述した動作と同様にして、比較対象コマンド（＝コマンドＣ3 ）が並べ替え可能なコマンドであるか否かを判断し、この場合、判断結果が「Ｙｅｓ」であるため、ステップＳＣ４へ進む。ステップＳＣ４では、制御部４１は、比較対象コマンド（＝コマンドＣ3 ＝ステータス即時応答可能コマンド）がステータス即時応答可能コマンドであるか否かを判断し、この場合、判断結果が「Ｙｅｓ」であるため、判断結果を「Ｙｅｓ」として、ステップＳＣ９へ進む。
【００７０】
ステップＳＣ９では、制御部４１は、フラグＡがセット、すなわち、フラグＡが１であるか否かを判断し、この場合、フラグＡが０であるため、判断結果を「Ｎｏ」として、ステップＳＣ１０へ進む。なお、ステップＳＣ９の判断結果が「Ｙｅｓ」である場合、制御部４１は、ステップＳＣ６へ進む。ステップＳＣ１０では、制御部４１は、フラグＡをセット、すなわち、フラグＡに１を代入した後、ステップＳＣ１１へ進む。ステップＳＣ１１では、制御部４１は、比較対象コマンド（＝コマンドＣ3 ＝ステータス即時応答可能コマンド）を最適解コマンドとして登録した後、ステップＳＣ１２へ進む。
【００７１】
ステップＳＣ１２では、制御部４１は、判断結果を「Ｎｏ」として、ステップＳＣ１３へ進む。ステップＳＣ１３では、制御部４１は、コマンドキューＱ3 （図２（ａ）参照）におけるつぎのコマンドＣ4 を比較対象コマンドとして、ステップＳＣ３へ戻る。以後、上述した動作が繰り返される。すなわち、この場合、フラグＡが１であるため、ステップＳＣ１２において判断結果が「Ｙｅｓ」となった時点では、最適解コマンドは、ステータス即時応答可能コマンド（たとえば、コマンドＣ3 ：図２（ａ）参照）である。
【００７２】
そして、ステップＳＣ１４では、制御部４１は、図２（ｂ）に示したように、コマンドキューＱ3 において、最適解コマンド（＝コマンドＣ3 ＝ステータス即時応答可能コマンド）を現在位置（図２（ａ）参照）から先頭へ移動させる。そして、現在実行中のコマンドＣ0 の実行が終了すると、ステップＳＣ１５では、コマンド実行部１４は、図２（ｂ）に示したコマンドキューＱ3 の先頭のコマンドＣ3 （＝ステータス即時応答可能コマンド）を実行する。これにより、コマンド実行部１４は、バッファメモリ１３にデータを書き込む。そして、制御部４１は、完了を表すステータスをＩ／Ｆ部１２およびＳＣＳＩ（図示略）を介して、ホスト３０へ送信するとともに、コマンドキューＱ3 （図２（ｂ）参照）における先頭のコマンドＣ3 を削除する。
【００７３】
以上説明したように、実施の形態２によれば、ホスト３０に対してステータス応答を即時に返すことができるステータス即時応答可能コマンドが他のコマンドより優先的に実行されるようにコマンドの並べ替えを行うようにしたので、コマンドキューにおけるコマンドの数をいち早く減らすことができるため、後に行われるコマンドの並べ替えに要する時間を短縮することができる。また、実施の形態２によれば、ステータス即時応答可能コマンドによりステータスが即時にホスト３０へ返されるので、ホスト３０の待ち時間を短縮できる。
【００７４】
（実施の形態３）
さて、前述した実施の形態１および２においては、図１に示したバッファメモリ１３に、ホスト３０からの一連のコマンドをコマンドキューとして記憶させ、バッファメモリ１３にアクセスすることにより、コマンドの並べ替え処理を行う例について説明した。しかしながら、別の手法として、図６に示したように一連のコマンドをＲＡＭ５２およびバッファメモリ５３に記憶させて、コマンドの並べ替え処理を行うようにしてもよい。以下においては、この場合を実施の形態３として説明する。
【００７５】
図６は、本発明にかかる実施の形態３の構成を示したブロック図である。この図において、図１の各部に対応する部分には同一の符号を付ける。図６に示した記憶装置５０においては、図１に示した制御部４１およびバッファメモリ１３に代えて、制御部５１およびバッファメモリ５３が設けられているとともに、ＲＡＭ（Random Access Memory）５２が新たに設けられている。
【００７６】
図６に示した制御部５１は、前述した制御部４１（図１参照）と同様の機能に加えて、後述するコマンド分離機能を備えている。ＲＡＭ５２は、バッファメモリ５３（バッファメモリ１３：図１および図９参照）に比してアクセス（リード／ライト）速度が速く、かつバッファメモリ５３に比して小容量のメモリである。このＲＡＭ５２には、図８に示した第１コマンド情報１００Ａ1 〜１００Ａn が記憶される。これら第１コマンド情報１００Ａ1 〜１００Ａn は、ホスト３０から送信されたコマンドＣ1 〜Ｃn の一部の情報であり、実施の形態１および２において説明したコマンドの並べ替え処理に必要な情報である。ここで、並べ替え処理に必要な情報としては、コマンドの種類を表す情報、磁気ディスク１７上のアクセス位置、当該コマンドを発行したホスト３０に関する情報、当該コマンドに前後でリンクしているコマンドのポインタ情報等である。
【００７７】
また、バッファメモリ５３には、第２コマンド情報１００Ｂ1 〜１００Ｂn が記憶される。これら第２コマンド情報１００Ｂ1 〜１００Ｂn は、コマンドの並べ替え処理に不要な情報である。ここで、並べ替え処理に不要な情報とは、ホスト３０からのＣＤＢ形式のコマンド情報、当該コマンドが実行中であるか否かを表す情報、エラー情報等である。このように、ホスト３０からのコマンドＣ1 〜Ｃn は、第１コマンド情報１００Ａ1 〜１００Ａn と、第２コマンド情報１００Ｂ1 〜１００Ｂn とにそれぞれ分離される。
【００７８】
つぎに、上述した実施の形態３の動作について説明する。この場合、図８に示したＲＡＭ５２およびバッファメモリ５３には、いずれのデータも記憶されていないものとする。このような状態で、ホスト３０から図７（ａ）に示したコマンドＣ1 が送信されると、このコマンドＣ1 は、ＳＣＳＩおよびＩ／Ｆ部１２を介して、制御部５１に受信される。これにより、制御部５１は、図７（ａ）に示したようにコマンドＣ1 を第１コマンド情報１００Ａ1 と第２コマンド情報１００Ｂ1 とにそれぞれ分離する。
【００７９】
つぎに、制御部５１は、第１コマンド情報１００Ａ1 をＲＡＭ５２の先頭アドレスに記憶させるとともに、第２コマンド情報１００Ｂ1 をバッファメモリ５３の先頭アドレスに記憶させる。このとき、第１コマンド情報１００Ａ1 と第２コマンド情報１００Ｂ1 とがリンクしていることを示すリンク情報が、ＲＡＭ５２およびバッファメモリ５３にそれぞれ記憶される。なお、実施の形態３においては、上記リンク情報を記憶させずに、第１コマンド情報１００Ａ1 の（相対）アドレスと、第２コマンド情報１００Ｂ1 の（相対）アドレスとが一致するように、ＲＡＭ５２およびバッファメモリ５３に第１コマンド情報１００Ａ1 および第２コマンド情報１００Ｂ1 をそれぞれ記憶させておくことにより、リンク関係を明示するようにしてもよい。
【００８０】
つぎに、ホスト３０からのコマンドＣ2 （図７（ｂ）参照）を受信すると、制御部５１は、上述した動作と同様にして、コマンドＣ2 を第１コマンド情報１００Ａ2 と第２コマンド情報１００Ｂ2 とにそれぞれ分離した後、これらを図８に示したＲＡＭ５２およびバッファメモリ５３にそれぞれ記憶させる。以後、制御部５１は、コマンドを受信する毎に、当該コマンドを分離した後、分離された第１コマンド情報および第２コマンド情報をＲＡＭ５２およびバッファメモリ５３へ記憶させる。
【００８１】
そして、ホスト３０からのコマンドＣn （図７（ｃ）参照）を受信すると、制御部５１は、上述した動作と同様にして、コマンドＣn を第１コマンド情報１００Ａn と第２コマンド情報１００Ｂn とにそれぞれ分離した後、これらを図８に示したＲＡＭ５２およびバッファメモリ５３にそれぞれ記憶させる。このとき、ＲＡＭ５２およびバッファメモリ５３には、前述したコマンドキューＱ3 （図２（ａ）参照）と同様のキューが生成されている。
【００８２】
すなわち、図８に示したＲＡＭ５２には、第１コマンド情報１００Ａ1 〜１００Ａn からなるキューが生成されており、これらの第１コマンド情報１００Ａ1 〜１００Ａn は、前述したように、コマンドの並べ替え処理に必要な情報である。一方、バッファメモリ５３には、第２コマンド情報１００Ｂ1 〜１００Ｂn からなるキューが生成されており、これらの第２コマンド情報１００Ｂ1 〜１００Ｂn は、前述したように、コマンドの並べ替え処理に不要な情報である。
【００８３】
そして、制御部５１は、前述した実施の形態１または実施の形態２において説明したコマンドの並べ替え処理（図３、図５参照）を実行する。この場合、制御部５１は、図８に示したＲＡＭ５２にのみアクセスし、コマンドの並べ替え処理を実行する。すなわち、制御部５１は、第１コマンド情報１００Ａ1 〜１００Ａn を実施の形態１または２におけるコマンドとして扱い、並べ替え処理を実行する。
【００８４】
以上説明したように、実施の形態３によれば、コマンドの並べ替え処理において、高速アクセス可能なＲＡＭ５２にアクセスしているため、前述した従来のバッファメモリ１３（図９参照）に比して短時間で並べ替え処理を行うことができる。
【００８５】
以上本発明にかかる実施の形態１〜３について図面を参照して詳述してきたが、具体的な構成例はこれらの実施の形態１〜３に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。たとえば実施の形態１〜３は、二つまたは三つを組み合わせることも可能である。
【００８６】
【発明の効果】
以上説明したように、請求項１にかかる発明によれば、コマンドキューにおけるすべてのコマンドが検索されていない場合であっても、所定の条件を満した時点で、当該コマンドが優先実行されるようにコマンドの並べ替えを行って並べ替え処理を終了するようにしたので、従来のようにコマンドキューにおけるすべてのコマンドを検索対象とする場合に比して、コマンドの並べ替え処理の時間を短縮化することができるという効果を奏する。
【００８７】
また、請求項２にかかる発明によれば、予め決められた検索時間が経過した時点で、その検索時間内に検索したコマンドのうちシーク時間が最も小さいコマンドが最適解コマンドとして優先実行されるようにコマンドキューにおけるコマンドの並び替えを行って並び替え処理を終了するようにしたので、従来のようにコマンドキューにおけるすべてのコマンドを検索対象とする場合に比して、コマンドの並べ替え処理の時間を短縮化することができるという効果を奏する。
【００８８】
また、請求項３にかかる発明によれば、ホストに対してステータス応答を即時に返すことができる特殊コマンドが他のコマンドより優先的に実行されるようにコマンドの並べ替えを行うようにしたので、コマンドキューにおけるコマンドの数をいち早く減らすことができるため、後に行われるコマンドの並べ替えに要する時間を短縮することができるという効果を奏する。
【００８９】
また、請求項４にかかる発明によれば、コマンドを第１コマンド情報と第２コマンド情報とに分離し、並べ替え処理に必要な第２コマンド情報を高速アクセス可能な第２メモリに記憶させて、この第２メモリにアクセスすることでコマンドの実行順位の並べ替えを行うようにしたので、従来の記憶装置に比して、第２メモリへのアクセス時間が短縮化される分だけ、コマンドの並べ替え処理に要する時間を短縮化することができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明にかかる実施の形態１および２の構成を示すブロック図である。
【図２】同実施の形態１および２におけるコマンド並べ替え処理を説明する図である。
【図３】同実施の形態１におけるコマンド並べ替え処理を説明するフローチャートである。
【図４】同実施の形態１におけるシーク動作を説明する図である。
【図５】同実施の形態２におけるコマンド並べ替え処理を説明するフローチャートである。
【図６】本発明にかかる実施の形態３の構成を示すブロック図である。
【図７】図６に示した制御部５１におけるコマンドの分離動作を説明する図である。
【図８】図６に示したＲＡＭ５２およびバッファメモリ５３におけるデータ構造を示す図である。
【図９】従来の記憶装置１０の構成を示すブロック図である。
【図１０】従来の記憶装置１０におけるコマンド並べ替え処理を説明する図である。
【図１１】従来の記憶装置１０におけるコマンド並べ替え処理を説明するフローチャートである。
【図１２】従来の記憶装置１０におけるシーク動作を説明する図である。
【符号の説明】
１３  バッファメモリ
１６  ヘッド
１７  磁気ディスク
３０  ホスト
４０  記憶装置
４１  制御部
５０  記憶装置
５１  制御部
５２  ＲＡＭ
５３  バッファメモリ
【図１】
0003712567.tif 000002
【図２】
0003712567.tif 000003
【図３】
0003712567.tif 000004
【図４】
0003712567.tif 000005
【図５】
0003712567.tif 000006
【図６】
0003712567.tif 000007
【図７】
0003712567.tif 000008
【図８】
0003712567.tif 000009
【図９】
0003712567.tif 000010
【図１０】
0003712567.tif 000011
【図１１】
0003712567.tif 000012
【図１２】
0003712567.tif 000013