(57)【要約】【課題】従来の技術では、書き込み命令及び読み出し命令の全て対し、磁気ディスク制御装置のコマンド実行に優先順位がなく、エラーが発生した場合の再試行の最大時間も一定であったため、終了応答を送信し平均的な性能を重視する場合と、終了応答未送信でコマンドの応答時間を重視する場合とにおいて、時間設定を変更することが出来なかった。【解決手段】磁気ディスク制御装置に対し、モード設定すること又はコマンド指示により、書き込み時の処理監視時間及び読み出し時の処理監視時間を、各々独立に設定可能とし、用途／目的別にコマンドの処理監視時間を切り替える。磁気ディスク制御装置内でのコマンド並び替え時のコマンド選択が最適となり、磁気ディスクの性能を最大限に引き出すことができる。【選択図】　図１
2004139482.tif 000002
【特許請求の範囲】
【請求項１】
上位装置からの書き込み命令により、受領したデータを磁気ディスク装置に書き込む機能を有し、また読み込み命令により、磁気ディスク装置のデータをホストコンピュータに送信する機能を有する磁気ディスク制御装置において、命令別にコマンド処理時間の監視を実施することを特徴とした磁気ディスク制御装置のコマンド処理時間監視設定方法。
【請求項２】
請求項１記載の磁気ディスク制御装置のコマンド処理時間監視設定方法において、命令毎にコマンド処理監視時間を設定可能とするコマンド処理時間監視設定方法。
【請求項３】
請求項２記載の磁気ディスク制御装置のコマンド処理時間監視設定方法において、上位装置への終了報告を実施しているか否かにより、命令毎にコマンド処理監視時間を変更するコマンド処理時間監視設定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、磁気ディスク制御装置へのコマンド処理監視時間の設定方法に関し、特に、命令（コマンド）別に必要に応じ、コマンド処理監視時間の設定を変更する方法に関する。
【０００２】
【従来の技術】
従来の磁気ディスク制御装置においては、媒体への書き込み及び読み込み処理において、エラーが発生した場合の再試行の最大時間をモードセレクトコマンドにより、設定する方法が一般的となっていた。この仕様は、ＡＮＳＩ（米国規格協会）による規格で定められたものであり、書き込み処理及び読み込み処理のそれぞれに共通のパラメータ設定により行われる。
【０００３】
また最近のタグキューイング機能の普及に伴い、マルチコマンド受領時のコマンド並び替えに伴う、コマンドの沈み込み現象防止のため、コマンド受領から一定時間経過した後は優先してそのコマンドの処理を実施する制御方法が採用されている。つまり、タグキューイング実施時、磁気ディスク制御装置は、シーク時間及び回転待ちを考慮し、性能が最適となるようにコマンドの並び替えを実施する。物理的に離れた場所の読み出し／書き込み処理は、他の命令（コマンド）を先に実施するため、応答時間が遅れる。この応答時間の遅れ（沈み込み）を防止するため、コマンド受領から一定時間経過してもコマンド実行に移行しない命令は、優先的にそのコマンド処理を実施する機能がある。ただし、この方法も全ての命令（コマンド）に対し、一律の設定時間となっている。
【０００４】
【特許文献１】特開平１１−１９４９６３号公報
【発明が解決しようとする課題】
従来の技術では、書き込み命令及び読み出し命令の全てのコマンドに対し、磁気ディスク制御装置のコマンド実行には優先順位がなく、エラーが発生した場合の再試行の最大時間も一定であった。このため、上位装置が平均的な性能を重視する場合と、コマンドの応答時間を重視する場合とを区別することなく、時間設定を変更することが出来なかった。
【０００５】
一般に、上位装置がディスクアレイ制御システムの場合、要求別に次の命令（コマンド）が考えられる。まず、ディスクアレイ制御システムの上位ホストコンピュータからの読み出し命令（コマンド）では、ディスクアレイ制御システムのキャッシュ内に要求データが存在していなければ、磁気ディスク制御装置に対し、ディスクアレイ制御システムから読み出し命令（コマンド）が発行される。読み出し命令（コマンド）は、上位ホストコンピュータからの直接の要求であるため、上位ホストコンピュータの監視時間以内の処理が磁気ディスク制御装置に求められる。
【０００６】
また、ディスクアレイ制御システムの上位ホストコンピュータからの書き込み命令（コマンド）では、通常、ディスクアレイ制御システム内のキャッシュにデータを書き込んだ時点で、上位ホストコンピュータに終了報告を実施し、その後、磁気ディスク制御装置に対し、書き込み命令（コマンド）を発行し、磁気ディスク媒体へ書き込む。従って、上位ホストコンピュータに終了報告しているため、処理時間の監視は障害の場合以外には必要が無い。
【０００７】
ディスクアレイ制御システムの場合、一般に、連続的な書き込み動作以外は、パリティデータを更新する必要がある。このため磁気ディスク制御装置に対し、書き込み命令（コマンド）を発行する前に、読み出し命令（コマンド）を発行する。その読み込み命令（コマンド）については、書き込み命令（コマンド）に付随して生じる読み込み命令（コマンド）のため、処理時間の監視は障害の場合以外には必要無い。
【０００８】
ディスクアレイ制御システムの上位ホストコンピュータから、書き込み命令（コマンド）が発行された場合に、ディスクアレイ制御システム内のキャッシュに障害が発生していることもあるので、磁気ディスク制御装置に対し書き込みが完了した後、上位ホストコンピュータに終了報告を実施するため、上位ホストコンピュータの監視時間以内の処理が磁気ディスク制御装置に求められることもある。
【０００９】
以上の様に、ディスクアレイ制御システムでは、読み出し命令（コマンド）及び書き込み命令（コマンド）それぞれに処理時間の規定が必要な場合と、障害を考慮しなければ不要な場合とが生じる。
【００１０】
しかしながら、コマンド処理監視時間の設定は一律に為されており、監視時間の短い方に合わせざるを得ず、磁気ディスク制御装置及び磁気ディスク装置の性能を最大限引き出すことが出来ないという課題があった。
【００１１】
本発明の目的は、ディスクアレイ制御システムが用途別に処理監視時間を変更可能とすることにより、磁気ディスク制御装置等の最大限の性能を引き出すことにある。
【００１２】
【課題を解決するための手段】
磁気ディスク制御装置に対し、モード設定又はコマンド指示により、書き込み時の処理監視時間及び読み出し時の処理監視時間を、各々独立に設定可能とする。
【００１３】
【発明の実施の形態】
以下、図面に示す実施例により説明する。図１、図２は、本発明を適用した磁気ディスク制御装置の一実施例のブロック図を示したものである。
図１において、１０はディスクアレイシステム（上位装置）、２０は磁気ディスク制御装置を示し、ディスクアレイシステム（上位装置）１０及び、磁気ディスク制御装置２０はドライブインターフェース５０を介し接続される。
【００１４】
７０は磁気ディスクを示し、磁気ディスク制御装置２０は、ホストコンピュータ１０とのデータの転送等を制御するインターフェースコントローラ２１、磁気ディスク７０とのデータの転送等を制御するハードディスクコントローラ２２、また、それらのデータ転送速度の違いを吸収し、制御装置２０内部のデータ転送を制御するバッファコントローラ２３及びバッファ（Ｃａｃｈｅ）２４、それらを制御する制御プロセッサ２６、制御情報等を格納する揮発性の内部メモリ３０により構成される。
【００１５】
図２において、１０はディスクアレイシステム（上位装置）、２０は磁気ディスク制御装置、９０はホストコンピュータを示し、ディスクアレイシステム（上位装置）１０及び磁気ディスク制御装置２０は、ドライブインターフェース５０を介し接続される。ホストコンピュータ９０及びディスクアレイシステム（上位装置）１０はホストインターフェース８０を介し接続される。ディスクアレイシステム（上位装置）１０には複数台の磁気ディスク制御装置２０が接続されている。ディスクアレイシステム（上位装置）１０はキャッシュメモリ１１を備えている。
【００１６】
ディスクアレイシステム（上位装置）１０から発行された書き込み（ライト）命令は、ホストインターフェース５０を介し、インターフェースコントローラ２１により制御プロセッサ２６に通知される。制御プロセッサ２６は、書き込み（ライト）命令を受領すると、要求アドレス、レングス、コマンド受領時間をコマンドキューテーブル３１にセーブする。そしてディスクアレイシステム（上位装置）１０からのデータ受領起動をインターフェースコントローラ２１、バッファコントローラ２３に、また、同時にアドレス、レングス３１に基づいてハードディスクコントローラ２２にライト起動を実施し、磁気ディスク７０に書きこみ動作を行う。磁気ディスク７０への書きこみに異常が発生せず、正常に終了した場合は、インタフェースコントローラ２１を介して、ホストコンピュータ１０に正常終了報告を実施する。
【００１７】
ディスクアレイシステム（上位装置）１０から発行された読み出し（リード）命令は、ホストインターフェース５０を介し、インターフェースコントローラ２１により制御プロセッサ２６に通知される。
【００１８】
制御プロセッサ２６は、読み出し（リード）命令を受領すると、その要求アドレス、レングス、コマンド受領時間をコマンドキューテーブル３１にセーブする。次にアドレス、レングス３１に基づいてハードディスクコントローラ２２にリード起動を実施し、バッファコントローラ２３の起動と共に磁気ディスク７０からの読み込みを行う。同時に、ディスクアレイシステム（上位装置）１０へのデータ受領起動をインターフェースコントローラ２１に実施する。磁気ディスク７０への読み出しにつき異常が発生せず、正常に終了した場合は、インタフェースコントローラ２１を介して、ホストコンピュータ１０に正常終了報告を実施する。
【００１９】
磁気ディスク７０への書きこみ又は読み出し処理中に、位置付け障害その他の異常を検出した場合は、磁気ディスク７０への書き込み又は書きこみの再試行を実施する。この再試行は、モード設定コマンドで指定されるリカバリタイムリミット値３２を越えて新たな再試行を実施しない論理によって、コマンドの応答時間が所定値以内に納まるよう、保証している。
【００２０】
つまり、再試行処理では、コマンドキューテーブル３１のコマンド受領時刻と現在の時刻とを比較し、リカバリタイムリミット値３２を超えている場合は、新たな再試行を実施しないようになっている。リカバリタイムリミット値３２は、ＡＮＳＩ（米国規格協会）による規格であり、書き込み処理及び読み出し処理に共通したパラメータで設定される。
【００２１】
ディスクアレイシステム（上位装置）１０よりの書き込み（ライト）及び読み出し（リード）命令は、タグキューイング機能を使用することにより、前に発行した命令（コマンド）が終了する前に、次ぎの命令（コマンド）を受領可能である。このタグキューイング機能を使用して、複数命令（コマンド）を受領した磁気ディスク制御装置２０は、受領した命令（コマンド）をコマンドキューテーブル３１に格納し、並び替え処理を実施する。
【００２２】
即ち、そのコマンドキューテーブル３１に格納された命令（コマンド）の中から、磁気ディスク制御装置２０はシーク時間及び回転待ち時間を考慮して最短の時間で処理できる命令（コマンド）を選択する。
【００２３】
このタグキューイング機能によるコマンドの並び替え処理により、平均のコマンド処理時間において、最速の性能を実現することが可能である。しかしながら、物理的に離れた場所の読み出し／書き込み処理は、他の命令（コマンド）を先に実施するため、応答時間が遅れる。例えば、大半の命令（コマンド）が磁気ディスク７０の外周に集中していた場合、内周への命令（コマンド）は実行が後に廻され（沈み込み）、外周の命令（コマンド）のみを実行することになる。
【００２４】
この沈み込みによる応答時間の遅れを防止するため、コマンド受領から一定時間経過してもコマンド実行に移行しない命令は、優先的にそのコマンド処理を実施する機能が用いられている。すなわち、コマンドキューテーブル３１のコマンド受領時刻と現在の時刻を比較し、コマンド受領から一定時間を超えている命令（コマンド）が存在した場合は、優先してコマンド実行を実施する。
【００２５】
この時間は、前述のリカバリタイムリミット値３２を基に計算してもよい。例えば、リカバリタイムリミット値３２の半分の値を、このコマンド優先実行時間に用いる方法である。この方法では、全ての命令（コマンド）に対し、共通の時間割り当てとなる。この処理監視時間と平均の性能はトレードオフの関係にあり、処理監視時間が長いほど、平均の性能は向上することになる。
【００２６】
ディスクアレイシステム（上位装置）１０は、複数台の磁気ディスク制御装置２０が接続されているが、一般にＲＡＩＤ５（Ｒｅｄｕｎｄａｎｔ　Ａｒｒａｙｓ　ｏｆ　Ｉｎｅｘｐｅｎｓｉｖｅ　Ｄｉｓｋｓ　５）構成の場合は次の処理手順となる。
ディスクアレイシステム１０へのホストコンピュータ９０からの読み出し命令（コマンド）では、ディスクアレイシステム１０のキャッシュメモリ１１内に要求データが存在していなければ、磁気ディスク制御装置２０に対し、ディスクアレイシステム１０から読み出し命令（コマンド）が発行される。
【００２７】
読み出し命令（コマンド）は、上位ホストコンピュータ９０からの直接の要求であるため、上位ホストコンピュータ９０の監視時間以内の処理が磁気ディスク制御装置２０に求められる。
【００２８】
ディスクアレイシステム１０の上位ホストコンピュータ９０からの書き込み命令（コマンド）では、通常、ディスクアレイシステム１０内のキャッシュメモリ１１にデータを受領した時点で、上位ホストコンピュータ９０に終了報告を実施する。その後、磁気ディスク制御装置２０に対し、書き込み命令（コマンド）が発行される。
【００２９】
従って、上位ホストコンピュータ９０に終了報告を実施しているため、障害が生じたとき以外には、処理時間の制約は無い。ディスクアレイシステム１０の場合、連続的な書き込み動作以外は、パリティデータを更新するために磁気ディスク制御装置２０に対し書き込み命令（コマンド）を発行する前に、磁気ディスク制御装置２０に対し、読み出し命令（コマンド）を発行する。
【００３０】
すなわち、ＲＡＩＤ５構成では、新しいパリティデータを作成するためにデータ部においてもパリティ部においても、一度はデータを読み込む必要がある。読み出し命令（コマンド）は、上位ホストコンピュータ９０に終了報告を実施している上位ホストコンピュータ９０からの書き込み命令（コマンド）に付随する、読み出し命令（コマンド）のため、処理時間に関する制約は、障害発生時以外には、無い。
【００３１】
上記のようなディスクアレイシステム１０の上位ホストコンピュータ９０からの書き込み命令（コマンド）でも、ディスクアレイシステム１０内のキャッシュメモリ１１の障害が発生している場合には、磁気ディスク制御装置２０に対し書き込みが完了した後、上位ホストコンピュータ９０に終了報告を実施するため、上位ホストコンピュータ９０の監視時間以内の処理が磁気ディスク制御装置に求められる。
【００３２】
以上の様に、磁気ディスク制御装置２０の上位装置がディスクアレイシステム１０の場合には、読み出し命令（コマンド）及び書き込み命令（コマンド）それぞれに処理時間の規定が必要になる場合と不要な場合が生じる。また処理時間の規定が不要なディスクアレイシステム１０が、上位ホストコンピュータ９０に終了報告を実施している場合においても、通信系の不良等の障害における回復を実施するために、監視時間は設ける必要がある。
【００３３】
以上を整理すると、図３のように、目的／用途により、コマンド処理監視時間を分類することができる。目的／用途により、コマンド処理監視時間の要求は異なるが、コマンド処理監視時間の設定が従来は一律にしか出来なかったため、処理時間の厳しい方に合わせる必要があり、性能を最大限に引き出すことが出来なかった。
【００３４】
この問題を解決ため、予めディスクアレイシステム１０は磁気ディスク制御装置２０への書き込み命令（コマンド）及び読み出し命令（コマンド）を発行する前に、読み出し及び書き込み時の監視時間を２段階で設定しておく。
【００３５】
つまり、監視時間（ａ）３３（図１）は、ホストコンピュータ９０へ終了報告を実施していない命令（コマンド）におけるホストコピュータ９０の監視時間以内の値とする。監視時間（ｂ）３４は、ホストコンピュータ９０へ終了報告を実施している場合の障害のみを考慮した監視時間とする。ディスクアレイシステム１０は、磁気ディスク制御装置２０への書き込み命令（コマンド）及び読み出し命令（コマンド）を発行する段階で、コマンド内のベンダユニークなビット情報により、監視時間（ａ）３３を使用する処理か、監視時間（ｂ）３４を使用する処理かを設定する。
【００３６】
ＳＣＳＩインタフェースではコマンドの最終バイトであるコントロールバイトのビット６、７にベンダユニークビットが割り当てられているため、当ビットを使用する。
【００３７】
この方法を使用した場合の監視時間設定例を以下に示す。
ホストコンピュータ９０からディスクアレイシステム１０への命令（コマンド）に対する監視時間を５秒とする。ホストコンピュータ９０へ終了報告を実施していない命令（コマンド）における監視時間（ａ）３３は、エラー終了時のリカバリの時間を考慮して、４秒と設定する。
【００３８】
ホストコンピュータ９０へ終了報告を実施している場合の障害のみを考慮した監視時間（ｂ）３４は、３０秒と設定する。かかる設定は、予めディスクアレイシステム１０が、磁気ディスク制御装置２０への書き込み命令（コマンド）及び読み出し命令（コマンド）を発行する前に、モード設定コマンドを使用して行う。
【００３９】
ディスクアレイシステム１０のホストコンピュータ９０からの読み出し命令（コマンド）では、ディスクアレイシステム１０のキャッシュメモリ１１内に要求データが存在していなければ、磁気ディスク制御装置２０に対し、監視時間（ａ）３３を使用することを指示するためにコマンド内のベンダユニークビットを設定し、ディスクアレイシステム１０から読み込み命令（コマンド）を発行する。
【００４０】
また、ディスクアレイシステム１０の上位ホストコンピュータ９０からの書き込み命令（コマンド）では、通常、ディスクアレイシステム１０内のキャッシュメモリ１１にデータを受領した時点で、上位ホストコンピュータ９０に終了報告を実施し、その後磁気ディスク制御装置２０に対し、監視時間（ｂ）３４を使用することを指示するためにコマンド内のベンダユニークビットを設定し、ディスクアレイシステム１０から書き込み命令（コマンド）を発行する。
【００４１】
パリティデータを更新するために磁気ディスク制御装置２０に対し書き込み命令（コマンド）を発行する前の磁気ディスク制御装置２０に対しての読み出し命令（コマンド）では、監視時間（ｂ）３４を使用することを指示するためにコマンド内のベンダユニークビットを設定し、ディスクアレイシステム１０から読み込み命令（コマンド）を発行する。
【００４２】
ディスクアレイシステム１０の上位ホストコンピュータ９０からの書き込み命令（コマンド）でも、ディスクアレイシステム１０内のキャッシュメモリ１１の障害が発生し得ることを考慮する場合には、磁気ディスク制御装置２０に対し、監視時間（ａ）３３を使用することを指示するコマンド内のベンダユニークビットを設定し、ディスクアレイシステム１０から書き込み命令（コマンド）を発行する。
【００４３】
以上は、コマンド内の命令でコマンド監視時間を段階的に設定した例であるが、ＦＣ＿ＡＬインタフェースのようなコマンドがパケット化されているケースにおいては、コマンドフレーム内の空き領域を利用し、コマンド毎に時間を設定することも可能である。かかる方法では、書き込み命令（コマンド）／読み出し命令（コマンド）の処理ブロック数、先読みの際のリード命令（コマンド）を考慮して、細かく監視時間を設定することが可能である。
【００４４】
【発明の効果】
以上、説明したように、上位装置から目的／用途別にコマンド処理監視時間を設定することにより、磁気ディスク制御装置内でのコマンド並び替えの際のコマンド選択が最適となり、磁気ディスクの性能を最大限に引き出す効果がある。
【図面の簡単な説明】
【図１】本発明を適用した磁気ディスク制御装置の一実施例のブロック図を示したものである。
【図２】本発明を適用した磁気ディスク制御装置の別の実施例のブロック図を示したものである。
【図３】目的／用途により分類したコマンド処理監視時間を説明するための図である。
【符号の説明】
１０……ディスクアレイシステム（上位装置）
１１……キャッシュメモリ
２０……磁気ディスク制御装置
２１……インターフェースコントローラ
２２……ハードディスクコントローラ
２３……バッファコントローラ
２４……バッファ（Ｃａｃｈｅ）
２６……制御プロセッサ
３０……内部メモリ
３１……コマンドキューテーブル
３２……リカバリタイムリミット値
３３……監視時間（ａ）
３４……監視時間（ｂ）
５０……ドライブインタフェース
７０……磁気ディスク
８０……ホストインタフェース
９０……ホストコンピュータ
【図１】
2004139482.tif 000003
【図２】
2004139482.tif 000004
【図３】
2004139482.tif 000005