(57)【要約】【課題】キャッシュメモリを備えたディスクアレイ装置において、ホストコンピュータからコマンドに付加された形式で送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを直接キャッシュメモリに書き込めるようにすることにより、ディスクアレイ装置の書き込み性能を向上させる。【解決手段】キャッシュメモリ１４には、キャッシュ領域１４１以外に、ホストコンピュータ２０からコマンドに付加された形式で送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを一時的に格納するＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３が設けられている。ホストディレクタ１１は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３を構成する複数のエントリの内の、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの受信前に予め決定しておき、ホストコンピュータ２０からＩｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたコマンドが送られてきたとき、上記予め決定しているエントリにＩｍｍｅｄｉａｔｅ  Ｄａｔａを格納する。【選択図】      図１
2004227211.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
前記キャッシュメモリが、ホストコンピュータからコマンドに付加された形式で送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを一時的に格納するＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域を有し、且つ、
Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの受信前に、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域を構成する複数のエントリの中からＩｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを予め決定しておき、前記ホストコンピュータからＩｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたコマンドが送られてきたとき、前記予め決定しておいたエントリに前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを書き込むホストディレクタを備えたことを特徴とするディスクアレイ装置。
【請求項２】
請求項１記載のディスクアレイ装置において、
前記ホストディレクタが、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを、前記キャッシュ領域に転送する構成を有することを特徴とするディスクアレイ装置。
【請求項３】
請求項１記載のディスクアレイ装置において、
前記ホストディレクタが、定期的に、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを、前記キャッシュ領域に転送する構成を有することを特徴とするディスクアレイ装置。
【請求項４】
請求項２または３記載のディスクアレイ装置において、
前記ホストディレクタが、前記ホストコンピュータからリードコマンドが送られてきたとき、該リードコマンドによって要求されているデータが前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されている場合は、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域から該当するデータを読み出して前記ホストコンピュータへ転送する構成を有することを特徴とするディスクアレイ装置。
【請求項５】
複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
前記キャッシュメモリが、ホストコンピュータからコマンドに付加された形式で送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを一時的に格納するＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域を有し、且つ、
前記ホストコンピュータとの接続時に、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域を構成する複数のエントリの中からＩｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを決定し、該決定したエントリを示すエントリ情報を格納先記憶部に格納する初期化処理手段と、
前記ホストコンピュータからＩｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたコマンドが送られてきたとき、前記格納先記憶部に格納されているエントリ情報によって示される前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域中のエントリに、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを格納し、その後、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域中の空きエントリの中からＩｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを決定し、該決定したエントリを前記格納先記憶部に格納するコマンド処理手段とを備えたことを特徴とするディスクアレイ装置。
【請求項６】
請求項５記載のディスクアレイ装置において、
前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを、前記キャッシュ領域に格納するデータ転送手段を備えたことを特徴とするディスクアレイ装置。
【請求項７】
請求項５記載のディスクアレイ装置において、
前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを、定期的に前記キャッシュ領域に格納するデータ転送手段を備えたことを特徴とするディスクアレイ装置。
【請求項８】
請求項６または７記載のディスクアレイ装置において、
前記コマンド処理手段が、前記ホストコンピュータからリードコマンドが送られてきたとき、該リードコマンドによって要求されているデータが前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されている場合は、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域から該当するデータを読み出して前記ホストコンピュータへ転送する構成を有することを特徴とするディスクアレイ装置。
【請求項９】
複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域およびホストコンピュータからコマンドに付加された形式で送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを一時的に格納するＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
コンピュータを、
前記ホストコンピュータとの接続時に、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域を構成する複数のエントリの中からＩｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを決定し、該決定したエントリを示すエントリ情報を格納先記憶部に格納する初期化処理手段、
前記ホストコンピュータからＩｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたコマンドが送られてきたとき、前記格納先記憶部に格納されているエントリ情報によって示される前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域中のエントリに、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを格納し、その後、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域中の空きエントリの中からＩｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを決定し、該決定したエントリを前記格納先記憶部に格納するコマンド処理手段として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリを備えたディスクアレイ装置に関し、特に、ホストコンピュータからディスクアレイ装置にデータを書き込む際の書き込み性能を向上させる技術に関する。
【０００２】
【従来の技術】
近年、ディスクアレイ装置においては、スループット向上のためにキャッシュメモリの搭載が不可欠になっている。ディスクアレイ装置の全容量の中で、アクセス頻度が高い領域は限られているので、その部分のデータをキャッシュメモリ上にコピーしておくことによりホストコンピュータへの応答を速く行うことができる。
【０００３】
図９は従来のディスクアレイ装置において、ライトコマンドを受信したときの処理を示す流れ図である（例えば、特許文献１参照）。
【０００４】
図９に示すように、従来のディスクアレイ装置は、ホストコンピュータからライトコマンドを受信すると（ステップＳ９１）、キャッシュメモリ上のページの中からデータを書き込むページを選択し、そのページを占有する（ステップＳ９２）。その後、ディスクアレイ装置は、データの書き込み（転送）が可能であることを示すＲｅａｄｙ  Ｔｏ  Ｔｒａｎｓｆｅｒ信号をホストコンピュータに送信することで、データ転送処理を起動する（ステップＳ９３）。これにより、ホストコンピュータは、ライトデータをディスクアレイ装置に転送し、ディスクアレイ装置は、ホストコンピュータから送られてきたライトデータをステップＳ９２で占有したキャッシュページに書き込む。データの書き込みが完了すると（ステップＳ９４）、ディスクアレイ装置は、ステップＳ９２で占有したキャッシュページを解放した後（ステップＳ９５）、データの書き込みが完了したことを示すレスポンス（ライトコマンドが正常終了したことを示すレスポンス）をホストコンピュータに返す（ステップＳ９６）。
【０００５】
図１０は、図９の流れ図に示す処理が行われているときに、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示したシーケンス図である。
【０００６】
図１０に示すように、先ず、ホストコンピュータからディスクアレイ装置にライトコマンドが送信される（シーケンス１０１）。これにより、ディスクアレイ装置において、図９に示したステップＳ９１〜Ｓ９３の処理が行われる。ステップＳ９３において、ディスクアレイ装置は、ホストコンピュータに対してＲｅａｄｙ  Ｔｏ  Ｔｒａｎｓｆｅｒ信号を送信する（シーケンス１０２）。ホストコンピュータは、Ｒｅａｄｙ  Ｔｏ  Ｔｒａｎｓｆｅｒ信号を受信すると、ライトデータをディスクアレイ装置に送信する（シーケンス１０３）。ディスクアレイ装置は、ホストコンピュータから送られてきたライトデータをキャッシュページに書き込み、書き込みが完了すると、キャッシュページを解放する。その後、ディスクアレイ装置は、データの書き込みが完了したことを示すレスポンスをホストコンピュータに送信する（シーケンス１０４）。つまり、従来のディスクアレイ装置は、ＳＣＳＩインタフェース仕様に従ってデータの書き込みを行っている。
【０００７】
【特許文献１】
特開２００２−２７８８３３号公報
【０００８】
【発明が解決しようとする課題】
ところで、近年、ＩＥＴＦ（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）により提案されているｉＳＣＳＩ仕様が注目されている。これは、ＴＣＰ／ＩＰネットワーク上でＳＣＳＩインタフェースを実装することができるといった特徴を有する。また、ｉＳＣＳＩインタフェース仕様では、ディスクアレイ装置への書き込み性能を向上させるために、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａといった仕様が追加されている。
【０００９】
図１１は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを使用してデータの書き込みを行う際に、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示すシーケンス図である。同図に示すように、ホストコンピュータは、ライトコマンドにＩｍｍｅｄｉａｔｅ  Ｄａｔａを付加してディスクアレイ装置へ送信する（シーケンス１１１）。ディスクアレイ装置は、ホストコンピュータから送られてきたライトコマンドに従って、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みを行う。その後、ディスクアレイ装置は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの書き込み完了を示すレスポンスをホストコンピュータに返す（シーケンス１１２）。図１０と比較して分かるように、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを使用してデータの書き込みを行うようにすると、ディスクアレイ装置とホストコンピュータとの間で信号をやり取りする回数が少なくなり、インタフェースの負荷が低減するので、書き込み性能の向上が期待できる。
【００１０】
しかしながら、上述した従来のディスクアレイ装置では、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを使用したデータの書き込み処理を行うことができないという問題がある。即ち、従来のディスクアレイ装置は、ライトコマンドを受信したとき、キャッシュページを占有し、その後、ホストコンピュータにＲｅａｄｙ  Ｔｏ  Ｔｒａｎｓｆｅｒ信号を送信してライトデータの転送を要求するようにしているので、ライトコマンドと一緒に送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを使用したデータの書き込みは不可能であった。
【００１１】
また、例えば、ディスクアレイ装置内にバッファを設け、ライトコマンドに付加されて送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを上記バッファに一時的に格納しておき、キャッシュページが占有された段階で、バッファに格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａをキャッシュメモリに書き込むという方法も考えられるが、この方法では、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの転送が、ホストコンピュータからバッファへの転送と、バッファからキャッシュメモリへの転送との２段階になってしまうため、書き込み性能が低下してしまう恐れがある。
【００１２】
【発明の目的】
そこで、本発明の目的は、ライトコマンドに付加された形式でホストコンピュータから送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａをキャッシュメモリに直接書き込めるようにすることにより、ディスクアレイ装置の書き込み性能を向上させることにある。
【００１３】
【課題を解決するための手段】
本発明にかかる第１のディスクアレイ装置は、上記目的を達成するため、
複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
前記キャッシュメモリが、ホストコンピュータからコマンドに付加された形式で送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを一時的に格納するＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域を有し、且つ、
Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの受信前に、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域を構成する複数のエントリの中からＩｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを予め決定しておき、前記ホストコンピュータからＩｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたコマンドが送られてきたとき、前記予め決定しておいたエントリに前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを書き込むホストディレクタを備えたことを特徴とする。
【００１４】
また、本発明にかかる第２のディスクアレイ装置は、第１のディスクアレイ装置において、
前記ホストディレクタが、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを、前記キャッシュ領域に転送する構成を有することを特徴とする。
【００１５】
また、本発明にかかる第３のディスクアレイ装置は、第１のディスクアレイ装置において、
前記ホストディレクタが、定期的に、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを前記キャッシュ領域に転送する構成を有することを特徴とする。
【００１６】
また、本発明にかかる第４のディスクアレイ装置は、ホストコンピュータからのリードコマンドによって要求されたデータがＩｍｍｅｄｉａｔｅ  Ｄａｔａにしか格納されていない段階でも、要求されたデータをホストコンピュータへ転送できるようにするため、第２または第３のディスクアレイ装置において、
前記ホストディレクタが、前記ホストコンピュータからリードコマンドが送られてきたとき、該リードコマンドによって要求されているデータが前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されている場合は、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域から該当するデータを読み出して前記ホストコンピュータへ転送する構成を有することを特徴とする。
【００１７】
また、本発明にかかる第５のディスクアレイ装置は、
複数のディスク装置から構成されるディスクユニットと、該ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域を有するキャッシュメモリとを備えたディスクアレイ装置において、
前記キャッシュメモリが、ホストコンピュータからコマンドに付加された形式で送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを一時的に格納するＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域を有し、且つ、
前記ホストコンピュータとの接続時に、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域を構成する複数のエントリの中からＩｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを決定し、該決定したエントリを示すエントリ情報を格納先記憶部に格納する初期化処理手段と、
前記ホストコンピュータからＩｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたコマンドが送られてきたとき、前記格納先記憶部に格納されているエントリ情報によって示される前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域中のエントリに、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを格納し、その後、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域中の空きエントリの中からＩｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを決定し、該決定したエントリを前記格納先記憶部に格納するコマンド処理手段とを備えたことを特徴とする。
【００１８】
また、本発明にかかる第６のディスクアレイ装置は、第５のディスクアレイ装置において、
前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを、前記キャッシュ領域に格納するデータ転送手段を備えたことを特徴とする。
【００１９】
また、本発明にかかる第７のディスクアレイ装置は、第５のディスクアレイ装置において、
前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを、定期的に前記キャッシュ領域に格納するデータ転送手段を備えたことを特徴とする。
【００２０】
また、本発明にかかる第８のディスクアレイ装置は、第６または第７のディスクアレイ装置において、、
前記コマンド処理手段が、前記ホストコンピュータからリードコマンドが送られてきたとき、該リードコマンドによって要求されているデータが前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されている場合は、前記Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域から該当するデータを読み出して前記ホストコンピュータへ転送する構成を有することを特徴とする。
【００２１】
【作用】
キャッシュメモリには、ディスクユニットに格納されているデータの一部の写しが格納されるキャッシュ領域以外に、ホストコンピュータからコマンドに付加された形式で送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを一時的に格納するＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域が設けられている。ホストディレクタは、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域を構成する複数のエントリの内の、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの受信前に予め決定しておき、ホストコンピュータからＩｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたコマンドが送られてきたとき、上記予め決定しているエントリにＩｍｍｅｄｉａｔｅ  Ｄａｔａを格納する。このように、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたコマンドを受信したとき、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを直接キャッシュメモリ上のＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域に書き込むことができるので、ディスクアレイ装置の書き込み性能を向上させることができる。
【００２２】
また、ホストディレクタは、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａの内の、キャッシュ領域に格納されていないＩｍｍｅｄｉａｔｅ  Ｄａｔａをキャッシュ領域に格納する処理も行う。この処理は、例えば、定期的に行う。更に、ホストディレクタは、ホストコンピュータからリードコマンドが送られてきたとき、このリードコマンドによって要求されているデータがＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域に格納されている場合は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域から該当するデータを読み出し、ホストコンピュータに転送する。
【００２３】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２４】
【構成の説明】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００２５】
図１は本発明の実施例のブロック図であり、ディスクアレイ装置１０と、ホストコンピュータ２０とから構成されている。
【００２６】
ディスクアレイ装置１０は、ホストディレクタ１１と、ディスクディレクタ１２と、磁気ディスクユニット１３と、キャッシュメモリ１４と、記録媒体Ｋとを備えている。
【００２７】
磁気ディスクユニット１３は、複数の磁気ディスク装置１３−１〜１３−ｍから構成されている。
【００２８】
キャッシュメモリ１４には、キャッシュ領域１４１と、キャッシュ管理領域１４２と、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３と、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４とが設けられている。
【００２９】
キャッシュ領域１４１には、磁気ディスクユニット１３の記憶領域を所定サイズのページに分割したときの、一部のページの写しが格納されている。
【００３０】
キャッシュ管理領域１４２には、キャッシュ領域１４１を構成する各キャッシュページを管理するための情報（例えば、そのキャッシュページが有効であるか否かを示す有効ビット，そのキャッシュページに磁気ディスクユニット１３上のどのページのデータが格納されているのかを示すページ情報など）が格納される。
【００３１】
Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３は、エントリ番号「１」〜「ｎ」が付与されたｎ個のエントリから構成されており、各エントリには、ホストコンピュータ２０からライトコマンドに付加されて送られてきたＩｍｍｅｄｉａｔｅ  Ｄａｔａが一時的に格納される。なお、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３を構成する各エントリのサイズは全て同じであり、１アドレス分のデータを書き込むことができるサイズとなっている。
【００３２】
Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４には、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３を構成する各エントリを管理するための情報が格納される。
【００３３】
図２にＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４の内容例を示す。同図に示すように、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４には、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３を構成する各エントリ（図２の例では、エントリ番号「１」〜「ｎ」）毎のＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報（エントリ番号、有効ビット及びアドレス情報からなる）が格納される。
【００３４】
エントリ番号は、そのＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報が管理しているエントリのエントリ番号を表す。有効ビットは、そのＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報が管理しているエントリにホストコンピュータ２０からのＩｍｍｅｄｉａｔｅ  Ｄａｔａが格納されたときに“１”（有効）にされ、管理しているエントリ中のＩｍｍｅｄｉａｔｅ  Ｄａｔａがキャッシュ領域１４１に転送されたとき“０”（無効）にされるものであり、ホストコンピュータから送られてきたＩｍｍｅｄｉａｔｅ  Ｄａｔａを格納可能であるか否かを表示すると共に、ホストコンピュータ２０からリードコマンドが送られてきたときに行われるリード処理や、後述するデータ転送処理（Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａをキャッシュ領域１４１に転送する処理）において、そのエントリが処理対象になるか否かを表示する。アドレス情報は、そのＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報が管理しているエントリに格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａのアドレス（Ｉｍｍｅｄｉａｔｅ  Ｄａｔａと共に送られてきたライトコマンドに含まれていたライトアドレス）を表す情報である。なお、初期状態においては、各Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報の有効ビットは全て“０”（無効）になっており、また、アドレス情報は設定されていない。
【００３５】
ディスクディレクタ１２は、キャッシュ領域１４１に格納されているデータを磁気ディスクユニット１３に書き込む機能や、磁気ディスクユニット１３に格納されているデータをキャッシュ領域１４１に書き込む機能を有する。
【００３６】
ホストディレクタ１１は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの受信前にＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３を構成する複数のエントリの中からＩｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを予め決定しておき、ホストコンピュータ２０からＩｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたライトコマンドが送られてきたとき、上記予め決定しておいたエントリにＩｍｍｅｄｉａｔｅ  Ｄａｔａを格納する機能や、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａの内の、キャッシュ領域１４１への転送（格納）が済んでいないＩｍｍｅｄｉａｔｅ  Ｄａｔａをキャッシュ領域１４１に転送する機能や、ホストコンピュータ２０からリードコマンドが送られてきたとき、このリードコマンドによって要求されているデータが、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３に存在する場合は、該当するデータをＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３から読み出してホストコンピュータ２０に転送する機能などを有する。
【００３７】
このような機能を有するホストディレクタ１１は、例えば、ＣＰＵによって実現されるものであり、図３に示すような構成を有する。同図に示すように、ホストディレクタ１１は、初期化処理手段１１１と、格納先記憶部１１２ａを備えたコマンド処理手段１１２と、データ転送手段１１３とを備えている。
【００３８】
初期化処理手段１１１は、ホストディレクタ１１とホストコンピュータ２０とが接続されたことを認識したとき、キャッシュメモリ１４中のＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４を初期化する機能や、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３を構成する複数のエントリの中からＩｍｍｅｄｉａｔｅ  Ｄａｔａを格納するエントリを決定し（本実施例では、先頭のエントリとする）、決定したエントリのエントリ番号をコマンド処理手段１１２に通知する機能を備えている。
【００３９】
コマンド処理手段１１２は、初期化処理手段１１１から通知されたエントリ番号を格納先記憶部１１２ａに格納する機能や、ホストコンピュータ２０からＩｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたライトコマンドが送られてきたとき、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３を構成する複数のエントリの内の、格納先記憶部１１２ａに格納されているエントリ番号によって示されるエントリにＩｍｍｅｄｉａｔｅ  Ｄａｔａを書き込む機能や、格納先記憶部１１２ａに格納されているエントリ番号に従ってＩｍｍｅｄｉａｔｅ  Ｄａｔａを書き込んだ後、次に送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａに備えて格納先記憶部１１２ａに格納されているエントリ番号を更新する機能や、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報の内の、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを書き込んだエントリに対応するＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報を更新（有効ビットを“１”にし、アドレス情報にライトコマンドに含まれていたライトアドレスを設定する）する機能や、ホストコンピュータ２０からリードコマンドが送られてきたとき、このリードコマンドによって要求されているデータが、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３のエントリの内の、有効ビットが“１”（有効）になっているエントリに格納されている場合は、そのエントリに格納されているデータをホストコンピュータ２０に転送する機能などを有する。
【００４０】
データ転送手段１１３は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを、キャッシュ領域１４１の該当するキャッシュページに転送（格納）する機能を有する。
【００４１】
記録媒体Ｋは、ディスク、半導体メモリ、その他の記録媒体であり、ＣＰＵからなるホストディレクタ１１上に初期化処理手段１１１、コマンド処理手段１１２、データ転送手段１１３を実現するためのプログラムが記録されている。このプログラムは、ホストディレクタ１１によって読み取られ、その動作を制御することで、ホストディレクタ１１上に初期化処理手段１１１、コマンド処理手段１１２、データ転送手段１１３を実現する。
【００４２】
【動作の説明】
次に、本実施例の動作について図面を参照して詳細に説明する。
【００４３】
先ず、ホストディレクタ１１内の初期化処理手段１１１及びコマンド処理手段１１２が行う初期化処理について説明する。
【００４４】
ホストディレクタ１１内の初期化処理手段１１１は、ホストコンピュータ２０とホストディレクタ１１とが接続されたことを認識すると、先ず、図４の流れ図に示すように、キャッシュメモリ１４上のＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４を初期化する（ステップＳ４１）。具体的には、図２に示すように、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４に格納されている各Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報中の有効ビットを全て“０”（無効）にすると共に、アドレス情報を未設定の状態にする。
【００４５】
次に、初期化処理手段１１１は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの格納先にするエントリを示す情報として、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３を構成しているｎ個のエントリの内の、先頭のエントリのエントリ番号「１」をコマンド処理手段１１２に通知する（ステップＳ４２）。
【００４６】
コマンド処理手段１１２は、初期化処理手段１１１からエントリ番号「１」が通知されると、図５の流れ図に示すように、通知されたエントリ番号「１」を格納先記憶部１１２ａに格納する（ステップＳ５１）。
【００４７】
以上が初期化処理手段１１１、コマンド処理手段１１２で行われる初期化処理である。
【００４８】
次に、ホストコンピュータ２０からのコマンドを受信したときにホストディレクタ１１内のコマンド処理手段１１２において行われるコマンド処理について説明する。なお、ホストコンピュータ２０からは、ライトコマンド、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたライト及びリードコマンドの３種類のコマンドが送られてくるものとする。
【００４９】
ホストディレクタ１１内のコマンド処理手段１１２は、ホストコンピュータ２０からのコマンドを受信すると、図６の流れ図に示すように、先ず、受信したコマンドがライトコマンドであるのか、リードコマンドであるのかを判定する（ステップＳ６０１）。ライトコマンドであると判定した場合（ステップＳ６０１がＹＥＳ）は、ライトコマンドにＩｍｍｅｄｉａｔｅ  Ｄａｔａが付加されているか否かをチェックする（ステップＳ６０２）。
【００５０】
そして、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａが付加されている場合（ステップＳ６０２がＹＥＳ）は、ライトコマンドに付加されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３を構成するエントリの内の、格納先記憶部１１２ａ中のエントリ番号が指し示しているエントリに格納する（ステップＳ６０３）。
【００５１】
その後、コマンド処理手段１１２は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４に格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報の内の、ステップＳ６０３でＩｍｍｅｄｉａｔｅ  Ｄａｔａを書き込んだエントリを管理しているＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報を更新する（ステップＳ６０４）。具体的には、該当するＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報中の有効ビットを“１”にすると共に、アドレス情報にライトアドレス（ライトコマンドに含まれていたライトアドレス）を設定する。
【００５２】
更に、コマンド処理手段１１２は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４を参照して、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３中に存在する空きエントリ（対応するＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報中の有効ビットが“１”になっているエントリ）の中から最もエントリ番号が若いエントリを１つ選択する（ステップＳ６０５）。そして、選択したエントリのエントリ番号を、次にＩｍｍｅｄｉａｔｅ  Ｄａｔａ付きのライトコマンドを受信したときに、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを書き込むエントリを指し示すエントリ情報として格納先記憶部１１２ａに格納する（ステップＳ６０６）。その後、コマンド処理手段１１２は、ホストコンピュータ２０にレスポンスを返す等のコマンド完了処理を行う（ステップＳ６０７）。以上が、ライトコマンドにＩｍｍｅｄｉａｔｅ  Ｄａｔａが付加されていた場合の動作である。なお、ステップＳ６０５、Ｓ６０６の代わりに、格納先記憶部１１２ａに格納されているエントリ番号を＋１するようにしても良い。
【００５３】
これに対して、受信したライトコマンドにＩｍｍｅｄｉａｔｅ  Ｄａｔａが付加されていない場合（ステップＳ６０２がＮＯ）は、コマンド処理手段１１２は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４を参照し、有効ビットが“１”で、且つアドレス情報が上記ライトコマンドに含まれているライトアドレスと同一のＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報が存在するか否かを調べる（ステップＳ６０８）。つまり、今回受信したライトコマンドが書き込もうとしているデータと同一アドレスのＩｍｍｅｄｉａｔｅ  ＤａｔａがＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３に格納されているか否かを調べる。
【００５４】
そして、そのようなＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報が存在する場合（ステップＳ６０８がＹＥＳ）は、コマンド処理手段１１２は、ホストコンピュータ２０にデータを要求し、この要求に応答してホストコンピュータ２０から送られてくるデータを受信する（ステップＳ６０９）。
【００５５】
その後、コマンド処理手段１１２は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４を検索し、有効ビットが“１”で、且つアドレス情報が今回受信したライトコマンドに含まれているライトアドレスが一致するＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報の内の、最もエントリ番号が大きいＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報を探し出す。そして、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３を構成するエントリの内の、上記探し出したＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報によって管理されているエントリの内容を、ステップＳ６０９で受信したデータで置き換える（ステップＳ６１０）。その後、コマンド処理手段１１２は、前述したステップＳ６０７の処理を行う。
【００５６】
これに対して、条件を満たすＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報が存在しない場合（ステップＳ６０８がＮＯ）は、コマンド処理手段１１２は、通常のキャッシュメモリを使用したライト処理を行う（ステップＳ６１１）。以上が、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの付加されていないライトコマンドを受信したときの動作である。
【００５７】
次に、リードコマンドを受信したときの動作を説明する。
【００５８】
コマンド処理手段１１２は、ホストコンピュータ２０から送られてきたコマンドがリードコマンドであると判断すると（図６、ステップＳ６０１がＮＯ）、図７の流れ図に示すように、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４を参照し、有効ビットが“１”で、且つアドレス情報が上記リードコマンドに含まれているリードアドレスと同一のＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報が存在するか否かを調べる（ステップＳ７０１）。つまり、今回受信したリードコマンドが読み出そうとしているデータと同一アドレスのＩｍｍｅｄｉａｔｅ  ＤａｔａがＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３に格納されているか否かを調べる。
【００５９】
そして、上記条件を満たすＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報が存在する場合（ステップＳ７０１がＹＥＳ）は、上記条件を満たすＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報によって管理されているエントリの内の、最もエントリ番号が大きいエントリ（最も新しいＩｍｍｅｄｉａｔｅ  Ｄａｔａが格納されているエントリ）からデータを読み出し、読み出したデータをホストコンピュータ２０へ転送する（ステップＳ７０２）。
【００６０】
これに対して、上記条件を満たすＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報が存在しない場合（ステップＳ７０１がＮＯ）は、通常のキャッシュメモリを使用したリード処理を行う（ステップＳ７０３）。以上がリードコマンドを受信したときの動作である。
【００６１】
次に、図８の流れ図を参照してデータ転送手段１１３が行うデータ転送処理について説明する。
【００６２】
データ転送手段１１３は、定期的に図８の流れ図に示す処理を行うものであり、先ず、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４に格納されている第１番目のＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報（エントリ番号「１」のエントリを管理するＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報）に注目する（ステップＳ８１、Ｓ８２）。
【００６３】
その後、現在注目している第１番目のＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報中の有効ビットが“１”になっているか否かを調べる（ステップＳ８３）。
【００６４】
そして、有効ビットが“１”になっている場合には、ステップＳ８４のデータ転送処理を行う。以下にステップＳ８４で行うデータ転送処理について詳しく説明する。
【００６５】
先ず、現在注目している第ｋ（ｋ＝１）番目のＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報中のアドレス情報によって特定されるデータを含んだキャッシュページがキャッシュ領域１４１に存在するか否かを、キャッシュ管理領域１４２を参照して判断する。
そして、存在すると判断した場合には、該当するキャッシュページ内の該当する位置に、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３の第１番目のエントリに格納されているＩｍｍｅｄｉａｔｅ  Ｄａｔａを転送（格納）する。これに対して、存在しないと判断した場合は、ディスクディレクタ１２を使用して、該当するページの内容を磁気ディスクユニット１３からキャッシュ領域１４１にコピーし、その後、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３の第１番目のエントリに格納されているデータを、該当するキャッシュページ内の該当する部分に転送する。更に、キャッシュ管理領域１４２に対する更新処理を行う。以上が、ステップＳ８４で行うデータ転送処理の詳細である。
【００６６】
次に、現在注目している第１番目のＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報中の有効ビットを“０”に更新した後（ステップＳ８５）、第２番目のＩｍｍｅｄｉａｔｅ  Ｄａｔａ管理情報に注目する（ステップＳ８６、Ｓ８２）。以下、ステップＳ８３の判断結果がＮＯとなるまで、前述した処理と同様の処理を繰り返し行う。そして、ステップＳ８３の判断結果がＮＯとなると、データ転送手段１１３は、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域１４３の先頭エントリのエントリ番号「１」をコマンド処理手段１１２に通知する（ステップＳ８７）。
【００６７】
コマンド処理手段１１２は、データ転送手段１１３からエントリ番号「１」が通知された場合も、初期化処理手段１１１からエントリ番号が通知された場合と同様に、通知されたエントリ番号「１」を格納先記憶部１１２ａに格納する（図５、ステップＳ５１）。
【００６８】
【発明の効果】
以上説明したように、本発明のディスクアレイ装置は、ホストコンピュータからコマンドに付加された形式で送られてくるＩｍｍｅｄｉａｔｅ  Ｄａｔａを一時的に格納するＩｍｍｅｄｉａｔｅ  Ｄａｔａ領域を有するキャッシュメモリと、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域を構成する複数のエントリの内の、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの書き込みに使用するエントリを、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの受信前に予め決定しておき、ホストコンピュータからＩｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたコマンドが送られてきたとき、上記予め決定しているエントリにＩｍｍｅｄｉａｔｅ  Ｄａｔａを格納するホストディレクタとを備えており、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたライトコマンドを受信したときに、Ｉｍｍｅｄｉａｔｅ  Ｄａｔａを直接キャッシュメモリに書き込むことができるので、ディスクアレイの書き込み性能を向上させることができる。
【図面の簡単な説明】
【図１】本発明の実施例のブロック図である。
【図２】Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域１４４の内容例を示す図である。
【図３】ホストディレクタ１１の構成例を示すブロック図である。
【図４】初期化処理手段１１１の処理例を示す流れ図である。
【図５】エントリ番号が通知されたときのコマンド処理手段１１２の処理例を示す流れ図である。
【図６】コマンド受信時のコマンド処理手段１１３の処理例を示す流れ図である。
【図７】コマンド受信時のコマンド処理手段１１３の処理例を示す流れ図である。
【図８】テープ転送手段１１３の処理例を示す流れ図である。
【図９】従来の技術を説明するための流れ図である。
【図１０】図９の流れ図に示す処理を行う際に、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示すシーケンス図である。
【図１１】Ｉｍｍｅｄｉａｔｅ  Ｄａｔａの付加されたコマンドを使用してデータの書き込みを行う際に、ディスクアレイ装置とホストコンピュータとの間でやり取りされる信号を示すシーケンス図である。
【符号の説明】
１０…ディスクアレイ装置
１１…ホストディレクタ
１１１…初期化処理手段
１１２…コマンド処理手段
１１２ａ…格納先記憶部
１１３…データ転送手段
１２…ディスクディレクタ
１３…磁気ディスクユニット
１３−１〜１３−ｍ…磁気ディスク装置
１４…キャッシュメモリ
１４１…キャッシュ領域
１４２…キャッシュ管理領域
１４３…Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ領域
１４４…Ｉｍｍｅｄｉａｔｅ  Ｄａｔａ管理領域
Ｋ…記録媒体
２０…ホストコンピュータ
【図１】
2004227211.tif 000003
【図２】
2004227211.tif 000004
【図３】
2004227211.tif 000005
【図４】
2004227211.tif 000006
【図５】
2004227211.tif 000007
【図６】
2004227211.tif 000008
【図７】
2004227211.tif 000009
【図８】
2004227211.tif 000010
【図９】
2004227211.tif 000011
【図１０】
2004227211.tif 000012
【図１１】
2004227211.tif 000013