(57)【要約】【課題】あるホスト（あるいは、あるアプリケーション）からのアクセスのキャッシュヒット率が別のホスト（あるいは、別のアプリケーション）からのアクセスパターンの影響を受けないようにする。【解決手段】セグメント情報設定手段４１は、ホスト１１または１２からの設定コマンドに基づいて、セグメント情報管理テーブル６２内の情報を設定する。Ｉ／Ｏ管理手段４２は、セグメント情報管理テーブル６２の設定内容と、キャッシュ管理テーブル６１に管理されている各キャッシュセグメントに対応するＬＲＵリンクのリンク状態とに従って、ホスト１１または１２からのＩ／Ｏ要求がどのアクセスグループに対応するものであるかを認識し、各キャッシュセグメントに割り当てられた分割容量を考慮した上で、キャッシュセグメント毎のキャッシュメモリ５２の追い出し制御を行う。【選択図】　　　　図１
2004139349.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリを持ちホストからアクセスされるディスクアレイ装置において、
キャッシュメモリをアクセスグループに対応する複数のキャッシュセグメントに分割して管理するために、キャッシュセグメント識別子とアクセスグループとを定義し、
キャッシュセグメント識別子毎に当該キャッシュセグメントに対する分割容量の基準値を管理するセグメント管理テーブルと、各アクセスグループと各キャッシュセグメントとの対応付けを示す情報を管理するアクセスグループ管理テーブルとからなるセグメント情報管理テーブルと、
キャッシュメモリの追い出し制御を管理するためにキャッシュセグメントの数だけ設けられるＬＲＵリンクのリンク状態を示す情報を管理するキャッシュ管理テーブルと、
ホストからの設定コマンドに基づいて、前記セグメント情報管理テーブル内の情報を設定するセグメント情報設定手段と、
前記セグメント情報管理テーブルの設定内容と、前記キャッシュ管理テーブルに管理されている各キャッシュセグメントに対応するＬＲＵリンクのリンク状態とに従って、ホストからのＩ／Ｏ要求がどのアクセスグループに対応するものであるかを認識し、各キャッシュセグメントに割り当てられた分割容量を考慮した上で、キャッシュセグメント毎のキャッシュメモリの追い出し制御を行うＩ／Ｏ管理手段と
を有することを特徴とするディスクアレイ装置におけるキャッシュメモリ分割管理方式。
【請求項２】
セグメント情報管理テーブル内のセグメント管理テーブルが、分割容量の基準値として、各キャッシュセグメントに割り当てられた固定的な使用量を１００分率で示す割り当て基準値を保持し、
セグメント情報管理テーブル内のアクセスグループ管理テーブルが、アクセスグループの識別情報とキャッシュセグメント番号との対応情報を保持し、
Ｉ／Ｏ管理手段が、ホストからのＩ／Ｏを指示するコマンドに対応するアクセスグループを判断し、前記アクセスグループ管理テーブルを参照して当該アクセスグループに割り当てられているキャッシュセグメントを認識し、前記セグメント管理テーブルを参照して各キャッシュセグメントの割り当て基準値を認識し、キャッシュ管理テーブルを参照して現時点における各キャッシュセグメントのデータ割り当て量を判断し、以上の判断・認識に基づいてどのキャッシュセグメントからデータを追い出すかを判断し、その判断に従ってキャッシュメモリにおけるデータの追い出しおよび格納の制御を行うことを特徴とする請求項１記載のディスクアレイ装置におけるキャッシュメモリ分割管理方式。
【請求項３】
キャッシュメモリを持ちホストからアクセスされるディスクアレイ装置において、
キャッシュメモリをアクセスグループに対応する複数のキャッシュセグメントに分割して管理するために、キャッシュセグメント識別子とアクセスグループとを定義し、
キャッシュセグメント識別子毎に当該キャッシュセグメントに対する可変の分割容量の基準値を管理するセグメント管理テーブルと、各アクセスグループと各キャッシュセグメントとの対応付けを示す情報を管理するアクセスグループ管理テーブルとからなるセグメント情報管理テーブルと、
キャッシュメモリの追い出し制御を管理するためにキャッシュセグメントの数だけ設けられるＬＲＵリンクのリンク状態を示す情報を管理するキャッシュ管理テーブルと、
ホストからのアクセスパターンに基づいて分割容量を動的に変更する制御を行うために各キャッシュセグメントに対するアクセス頻度を管理し、現時点において各キャッシュセグメントに割り当てられた分割容量を示す情報を保持するセグメント内部管理テーブルと、
ホストからの設定コマンドに基づいて、前記セグメント情報管理テーブル内の情報を設定するセグメント情報設定手段と、
前記セグメント情報管理テーブルの設定内容と、前記キャッシュ管理テーブルに管理されている各キャッシュセグメントに対応するＬＲＵリンクのリンク状態と、前記セグメント内部管理テーブル内の現時点における分割容量を示す情報とに従って、ホストからのＩ／Ｏ要求がどのアクセスグループに対応するものであるかを認識し、各キャッシュセグメントに割り当てられた分割容量を考慮した上で、キャッシュセグメント毎のキャッシュメモリの追い出し制御を行うＩ／Ｏ管理手段と、
前記セグメント内部管理テーブルで管理されているアクセス頻度と前記セグメント管理テーブル内の可変の分割容量の基準値とに基づいて、各キャッシュセグメントに割り当てられるべき分割容量を示す値を決定する割り当て基準値決定手段と
を有することを特徴とするディスクアレイ装置におけるキャッシュメモリ分割管理方式。
【請求項４】
セグメント情報管理テーブル内のセグメント管理テーブルが、可変の分割容量の基準値として、各キャッシュセグメントに対する可変的な使用量を示す情報である使用量上限，使用量下限，および優先度を保持し、
セグメント情報管理テーブル内のアクセスグループ管理テーブルが、アクセスグループの識別情報とキャッシュセグメント番号との対応情報を保持し、
セグメント内部管理テーブルが、アクセス頻度を管理する情報であるアクセスカウントおよびアクセスレベルと、現時点における分割容量を示す情報である割り当て基準値とを保持し、
Ｉ／Ｏ管理手段が、ホストからのＩ／Ｏを指示するコマンドに対応するアクセスグループを判断し、前記アクセスグループ管理テーブルを参照して当該アクセスグループに割り当てられているキャッシュセグメントを認識し、前記セグメント内部管理テーブルを参照して現時点における各キャッシュセグメントの割り当て基準値を認識し、キャッシュ管理テーブルを参照して現時点における各キャッシュセグメントのデータ割り当て量を判断し、以上の判断・認識に基づいてどのキャッシュセグメントからデータを追い出すかを判断し、その判断に従ってキャッシュメモリにおけるデータの追い出しおよび格納の制御を行い、
割り当て基準値決定手段が、前記セグメント管理テーブルおよび前記セグメント内部管理テーブルを参照して、各アクセスレベルのキャッシュセグメントの割り当て基準値を使用量上限と使用量下限との範囲内で決定する処理をアクセスレベルの高い順に行い、その際に、同一アクセスレベルのキャッシュセグメントに関する割り当て基準値の配分については各キャッシュセグメントの優先度を考慮することを特徴とする請求項３記載のディスクアレイ装置におけるキャッシュメモリ分割管理方式。
【請求項５】
ホストからの設定コマンドによってセグメント情報管理テーブル内の情報の設定変更を動的に行うことが可能であり、設定変更後のＩ／Ｏ処理では当該設定変更を反映させてキャッシュ管理テーブルで管理される各キャッシュセグメントのＬＲＵリンクのリンク状態を変更することによって、各キャッシュセグメントの分割容量を動的に変更できることを特徴とする請求項１，請求項２，請求項３，または請求項４記載のディスクアレイ装置におけるキャッシュメモリ分割管理方式。
【請求項６】
コマンドを受信したポートによってアクセスグループが振り分けられており、アクセスグループ管理テーブルとしてポート管理テーブルが採用されることを特徴とする請求項１，請求項２，請求項３，請求項４，または請求項５記載のディスクアレイ装置におけるキャッシュメモリ分割管理方式。
【請求項７】
コマンドで指示された論理ディスク番号によってアクセスグループが振り分けられており、アクセスグループ管理テーブルとして論理ディスク管理テーブルが採用されることを特徴とする請求項１，請求項２，請求項３，請求項４，または請求項５記載のディスクアレイ装置におけるキャッシュメモリ分割管理方式。
【請求項８】
コマンドの発行元のホストのホストＩＤによってアクセスグループが振り分けられており、アクセスグループ管理テーブルとしてホスト管理テーブルが採用されることを特徴とする請求項１，請求項２，請求項３，請求項４，または請求項５記載のディスクアレイ装置におけるキャッシュメモリ分割管理方式。
【請求項９】
キャッシュメモリを持ちホストからアクセスされるディスクアレイ装置において、
キャッシュセグメント識別子毎に当該キャッシュセグメントに対する分割容量の基準値を管理するセグメント管理テーブルと、各アクセスグループと各キャッシュセグメントとの対応付けを示す情報を管理するアクセスグループ管理テーブルとからなるセグメント情報管理テーブル，およびキャッシュメモリの追い出し制御を管理するためにキャッシュセグメントの数だけ設けられるＬＲＵリンクのリンク状態を示す情報を管理するキャッシュ管理テーブルが存在することを前提として、
コントローラを、ホストからの設定コマンドに基づいて、前記セグメント情報管理テーブル内の情報を設定するセグメント情報設定手段，および前記セグメント情報管理テーブルの設定内容と、前記キャッシュ管理テーブルに管理されている各キャッシュセグメントに対応するＬＲＵリンクのリンク状態とに従って、ホストからのＩ／Ｏ要求がどのアクセスグループに対応するものであるかを認識し、各キャッシュセグメントに割り当てられた分割容量を考慮した上で、キャッシュセグメント毎のキャッシュメモリの追い出し制御を行うＩ／Ｏ管理手段として機能させるためのプログラム。
【請求項１０】
セグメント情報管理テーブル内のセグメント管理テーブルが、分割容量の基準値として、各キャッシュセグメントに割り当てられた固定的な使用量を１００分率で示す割り当て基準値を保持し、セグメント情報管理テーブル内のアクセスグループ管理テーブルが、アクセスグループの識別情報とキャッシュセグメント番号との対応情報を保持することを特徴とするディスクアレイ装置におけるコントローラを、セグメント情報設定手段およびＩ／Ｏ管理手段として機能させる際に、当該Ｉ／Ｏ管理手段が、ホストからのＩ／Ｏを指示するコマンドに対応するアクセスグループを判断し、前記アクセスグループ管理テーブルを参照して当該アクセスグループに割り当てられているキャッシュセグメントを認識し、前記セグメント管理テーブルを参照して各キャッシュセグメントの割り当て基準値を認識し、キャッシュ管理テーブルを参照して現時点における各キャッシュセグメントのデータ割り当て量を判断し、以上の判断・認識に基づいてどのキャッシュセグメントからデータを追い出すかを判断し、その判断に従ってキャッシュメモリにおけるデータの追い出しおよび格納の制御を行うことを特徴とする請求項９記載のプログラム。
【請求項１１】
キャッシュメモリを持ちホストからアクセスされるディスクアレイ装置において、
キャッシュセグメント識別子毎に当該キャッシュセグメントに対する可変の分割容量の基準値を管理するセグメント管理テーブルと、各アクセスグループと各キャッシュセグメントとの対応付けを示す情報を管理するアクセスグループ管理テーブルとからなるセグメント情報管理テーブル，キャッシュメモリの追い出し制御を管理するためにキャッシュセグメントの数だけ設けられるＬＲＵリンクのリンク状態を示す情報を管理するキャッシュ管理テーブル，およびホストからのアクセスパターンに基づいて分割容量を動的に変更する制御を行うために各キャッシュセグメントに対するアクセス頻度を管理し、現時点において各キャッシュセグメントに割り当てられた分割容量を示す情報を保持するセグメント内部管理テーブルが存在することを前提として、
コントローラを、ホストからの設定コマンドに基づいて、前記セグメント情報管理テーブル内の情報を設定するセグメント情報設定手段，前記セグメント情報管理テーブルの設定内容と、前記キャッシュ管理テーブルに管理されている各キャッシュセグメントに対応するＬＲＵリンクのリンク状態と、前記セグメント内部管理テーブル内の現時点における分割容量を示す情報とに従って、ホストからのＩ／Ｏ要求がどのアクセスグループに対応するものであるかを認識し、各キャッシュセグメントに割り当てられた分割容量を考慮した上で、キャッシュセグメント毎のキャッシュメモリの追い出し制御を行うＩ／Ｏ管理手段，および前記セグメント内部管理テーブルで管理されているアクセス頻度と前記セグメント管理テーブル内の可変の分割容量の基準値とに基づいて、各キャッシュセグメントに割り当てられるべき分割容量を示す値を決定する割り当て基準値決定手段として機能させるためのプログラム。
【請求項１２】
セグメント情報管理テーブル内のセグメント管理テーブルが、可変の分割容量の基準値として、各キャッシュセグメントに対する可変的な使用量を示す情報である使用量上限，使用量下限，および優先度を保持し、セグメント情報管理テーブル内のアクセスグループ管理テーブルが、アクセスグループの識別情報とキャッシュセグメント番号との対応情報を保持し、セグメント内部管理テーブルが、アクセス頻度を管理する情報であるアクセスカウントおよびアクセスレベルと、現時点における分割容量を示す情報である割り当て基準値とを保持することを特徴とするディスクアレイ装置におけるコントローラを、セグメント情報設定手段，Ｉ／Ｏ管理手段，および割り当て基準値決定手段として機能させる際に、当該Ｉ／Ｏ管理手段が、ホストからのＩ／Ｏを指示するコマンドに対応するアクセスグループを判断し、前記アクセスグループ管理テーブルを参照して当該アクセスグループに割り当てられているキャッシュセグメントを認識し、前記セグメント内部管理テーブルを参照して現時点における各キャッシュセグメントの割り当て基準値を認識し、キャッシュ管理テーブルを参照して現時点における各キャッシュセグメントのデータ割り当て量を判断し、以上の判断・認識に基づいてどのキャッシュセグメントからデータを追い出すかを判断し、その判断に従ってキャッシュメモリにおけるデータの追い出しおよび格納の制御を行うことを特徴とし、当該割り当て基準値決定手段が、前記セグメント管理テーブルおよび前記セグメント内部管理テーブルを参照して、各アクセスレベルのキャッシュセグメントの割り当て基準値を使用量上限と使用量下限との範囲内で決定する処理をアクセスレベルの高い順に行い、その場合に、同一アクセスレベルのキャッシュセグメントに関する割り当て基準値の配分については各キャッシュセグメントの優先度を考慮することを特徴とする請求項１１記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリを持ちホストコンピュータ（以下では単に「ホスト」と表記する）からアクセスされるディスクアレイ装置に適用されるディスクアレイ装置おけるキャッシュメモリ分割管理方式に関する。
【０００２】
【従来の技術】
１台のディスクアレイ装置に複数のホストを接続し、ストレージを共有するシステム（コンピュータシステム）が見られる。
【０００３】
このようなシステムにおいては、ディスクアレイ装置に複数のポートが実装されており、ポート毎に別のホストを接続するのが一般的であるが、同一ポートに複数のホストを接続することも可能である。
【０００４】
このようなシステムにおいては、ストレージ上のデータを共有することが可能であるが、必ずしも共有するだけではなく、それぞれのホストが専用のデータを構築することも可能である。
【０００５】
このようなシステムでは、複数のホストが別々にアクセスしているときの性能が要求されるのはもちろんのことであるが、複数のホストが同時にアクセスしたからといって極端に応答が遅くならないような動作が期待される。１台のディスクアレイ装置に複数のホストが接続されている以上、ディスクアレイ装置内のハードウェア資源は競合するので、ディスクアレイ装置は装置内のハードウェア資源を適切に分散して使用する必要がある。
【０００６】
ディスクアレイ装置において、特に性能上重要な役割を果たしているものとしてキャッシュメモリがある。ディスクアレイ装置内のデータはディスクに全て記憶されているが、その中でより頻繁にアクセスされるデータをキャッシュメモリにコピーしておく。ディスクからデータを読み出す速度に比べて、キャッシュメモリからデータを読み出す速度は非常に高速であるので、キャッシュヒット率はディスクアレイ装置の平均的性能に大きく関わってくる。
【０００７】
高いキャッシュヒット率を得るためのキャッシュアルゴリズムとして一般的で有効な方法が、ＬＲＵ（Ｌｅａｓｔ　Ｒｅａｃｅｎｔｌｙ　Ｕｓｅｄ）制御方式である。
【０００８】
この制御方式は、キャッシュメモリ上の全てのデータを順番にリンクしておき、アクセスされたデータをリンクの一番先頭につなぎ直し、また、キャッシュミスした場合には一番最後尾のデータの追い出し制御を行う方式である。この制御方式によれば、１回アクセスされたデータに対してその後すぐに再度アクセスがあればキャッシュヒットし、またしばらくアクセスがなければそのデータは追い出されるので、頻繁にアクセスされるデータほどキャッシュヒットするため、高いキャッシュヒット率が期待できる。
【０００９】
なお、従来より、キャッシュメモリを複数のセグメントに分割する技術が考察されていた（例えば、特許文献１および特許文献２参照）。ただし、後述するような「アクセスグループ」の考え方を採用して、そのアクセスグループに従ってディスクアレイ装置におけるキャッシュメモリの分割単位を決定する手法は、従来技術には存在しなかった。
【００１０】
【特許文献１】
特開２００１−１４２７７８号公報（第６−７頁、図１）
【００１１】
【特許文献２】
特開平７−３１９７７１号公報（第４頁、図１）
【００１２】
【発明が解決しようとする課題】
上述した従来のＬＲＵ制御方式によるキャッシュアルゴリズムでは、キャッシュ容量に比べて広範囲にランダムアクセスがあると、キャッシュヒットは期待できない。このこと自体はやむを得ないことであるが、このとき問題なのは、それまでキャッシュメモリ上にあったデータが追い出されてしまうことにある。つまり、キャッシュヒットが期待できるようなアクセスパターンとキャッシュヒットが期待できないようなアクセスパターンとが混在していると、キャッシュヒットが期待できるアクセスパターンのほうも影響を受け、混在していないときに比べてキャッシュヒット率が低下する。
【００１３】
このような現象が特に問題となるのは、最初に述べたマルチホスト環境においてである。すなわち、あるホストは特定の狭い領域にアクセスしており、別のホストは広範囲にアクセスがあるようなケースである。このような場合には、狭い領域にアクセスしているホストは本来高いキャッシュヒット率が期待されるが、広範囲にアクセスしているホストの影響でキャッシュヒット率が下がってしまう。特に、狭い領域にアクセスしているホストのアクセスが休止している間に広範囲にアクセスしているホストからのアクセスがキャッシュデータを追い出してしまうことがあると、狭い領域にアクセスしているホストからのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）がほとんどキャッシュミスになってしまう。
【００１４】
このような現象が発生すると、キャッシュヒットが期待できるはずの一のホスト上のアプリケーションが、他のホストの動作によって性能が落ち、性能予測がしにくいシステムになってしまうため、他のホストのアクセスによっても性能の変化の少ない制御が求められている。
【００１５】
単純な例では、バックアップ処理を行うためのホストや、実業務は行わず開発評価を行うためのホストが存在するケースである。バックアップ処理は大量のデータを移動する処理なのでもともとキャッシュヒットが期待できない処理であるし、また開発評価を行うためのホストは実業務を行うホストの性能に影響を与えないことが望まれる。本発明は、特にこのような環境を想定してなされたものである。
【００１６】
本発明の目的は、上述の点に鑑み、アクセスグループ（アクセスグループの内容については後述する）毎に別々のキャッシュメモリの分割領域（キャッシュセグメント）を使用することで、複数のホストからのアクセスをキャッシュ分割制御することにより、１台のディスクアレイ装置に対して複数のホストからアクセスされる場合（１つのホスト上の複数のアプリケーションからアクセスされる場合を含む）でも、あるホスト（あるいは、あるアプリケーション）からのアクセスのキャッシュヒット率が別のホスト（あるいは、別のアプリケーション）からのアクセスパターンの影響を受けないようにすることができるディスクアレイ装置におけるキャッシュメモリ分割管理方式を提供することにある。
【００１７】
【課題を解決するための手段】
本発明のディスクアレイ装置におけるキャッシュメモリ分割管理方式は、キャッシュメモリを持ちホストからアクセスされるディスクアレイ装置において、キャッシュメモリをアクセスグループに対応する複数のキャッシュセグメントに分割して管理するために、キャッシュセグメント識別子（キャッシュセグメント番号等）とアクセスグループとを定義し、キャッシュセグメント識別子毎に当該キャッシュセグメントに対する分割容量の基準値を管理するセグメント管理テーブルと、各アクセスグループと各キャッシュセグメントとの対応付けを示す情報を管理するアクセスグループ管理テーブル（例えば、ポート管理テーブル，論理ディスク管理テーブル，またはホスト管理テーブル）とからなるセグメント情報管理テーブルと、キャッシュメモリの追い出し制御を管理するためにキャッシュセグメントの数だけ設けられるＬＲＵリンク（キャッシュセグメント毎に設けられ当該キャッシュセグメント上のデータをリンクしているＬＲＵリンク）のリンク状態を示す情報を管理するキャッシュ管理テーブルと、ホストからの設定コマンドに基づいて、前記セグメント情報管理テーブル内の情報を設定するセグメント情報設定手段と、前記セグメント情報管理テーブルの設定内容と、前記キャッシュ管理テーブルに管理されている各キャッシュセグメントに対応するＬＲＵリンクのリンク状態とに従って、ホストからのＩ／Ｏ要求がどのアクセスグループに対応するものであるかを認識し、各キャッシュセグメントに割り当てられた分割容量を考慮した上で、キャッシュセグメント毎のキャッシュメモリの追い出し制御を行うＩ／Ｏ管理手段とを有する。
【００１８】
ここで、このディスクアレイ装置におけるキャッシュメモリ分割管理方式は、より具体的には、セグメント情報管理テーブル内のセグメント管理テーブルが、分割容量の基準値として、各キャッシュセグメントに割り当てられた固定的な使用量を１００分率で示す割り当て基準値を保持し、セグメント情報管理テーブル内のアクセスグループ管理テーブルが、アクセスグループの識別情報（ポート番号，論理ディスク番号，ホストＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）等）とキャッシュセグメント番号との対応情報を保持し、Ｉ／Ｏ管理手段が、ホストからのＩ／Ｏを指示するコマンドに対応するアクセスグループを判断し、前記アクセスグループ管理テーブルを参照して当該アクセスグループに割り当てられているキャッシュセグメントを認識し、前記セグメント管理テーブルを参照して各キャッシュセグメントの割り当て基準値を認識し、キャッシュ管理テーブルを参照して現時点における各キャッシュセグメントのデータ割り当て量を判断し、以上の判断・認識に基づいてどのキャッシュセグメントからデータを追い出すかを判断し、その判断に従ってキャッシュメモリにおけるデータの追い出しおよび格納の制御を行うことを特徴とするように構成することが考えられる。
【００１９】
また、本発明のディスクアレイ装置におけるキャッシュメモリ分割管理方式は、キャッシュメモリを持ちホストからアクセスされるディスクアレイ装置において、キャッシュメモリをアクセスグループに対応する複数のキャッシュセグメントに分割して管理するために、キャッシュセグメント識別子とアクセスグループとを定義し、キャッシュセグメント識別子毎に当該キャッシュセグメントに対する可変の分割容量の基準値を管理するセグメント管理テーブルと、各アクセスグループと各キャッシュセグメントとの対応付けを示す情報を管理するアクセスグループ管理テーブルとからなるセグメント情報管理テーブルと、キャッシュメモリの追い出し制御を管理するためにキャッシュセグメントの数だけ設けられるＬＲＵリンクのリンク状態を示す情報を管理するキャッシュ管理テーブルと、ホストからのアクセスパターンに基づいて分割容量を動的に変更する制御を行うために各キャッシュセグメントに対するアクセス頻度を管理し、現時点において各キャッシュセグメントに割り当てられた分割容量を示す情報を保持するセグメント内部管理テーブルと、ホストからの設定コマンドに基づいて、前記セグメント情報管理テーブル内の情報を設定するセグメント情報設定手段と、前記セグメント情報管理テーブルの設定内容と、前記キャッシュ管理テーブルに管理されている各キャッシュセグメントに対応するＬＲＵリンクのリンク状態と、前記セグメント内部管理テーブル内の現時点における分割容量を示す情報とに従って、ホストからのＩ／Ｏ要求がどのアクセスグループに対応するものであるかを認識し、各キャッシュセグメントに割り当てられた分割容量を考慮した上で、キャッシュセグメント毎のキャッシュメモリの追い出し制御を行うＩ／Ｏ管理手段と、前記セグメント内部管理テーブルで管理されているアクセス頻度と前記セグメント管理テーブル内の可変の分割容量の基準値とに基づいて、各キャッシュセグメントに割り当てられるべき分割容量を示す値を決定する割り当て基準値決定手段とを有するように構成することも可能である。
【００２０】
ここで、このディスクアレイ装置におけるキャッシュメモリ分割管理方式は、より具体的には、セグメント情報管理テーブル内のセグメント管理テーブルが、可変の分割容量の基準値として、各キャッシュセグメントに対する可変的な使用量を示す情報である使用量上限，使用量下限，および優先度を保持し、セグメント情報管理テーブル内のアクセスグループ管理テーブルが、アクセスグループの識別情報とキャッシュセグメント番号との対応情報を保持し、セグメント内部管理テーブルが、アクセス頻度を管理する情報であるアクセスカウントおよびアクセスレベルと、現時点における分割容量を示す情報である割り当て基準値とを保持し、Ｉ／Ｏ管理手段が、ホストからのＩ／Ｏを指示するコマンドに対応するアクセスグループを判断し、前記アクセスグループ管理テーブルを参照して当該アクセスグループに割り当てられているキャッシュセグメントを認識し、前記セグメント内部管理テーブルを参照して現時点における各キャッシュセグメントの割り当て基準値を認識し、キャッシュ管理テーブルを参照して現時点における各キャッシュセグメントのデータ割り当て量を判断し、以上の判断・認識に基づいてどのキャッシュセグメントからデータを追い出すかを判断し、その判断に従ってキャッシュメモリにおけるデータの追い出しおよび格納の制御を行い、割り当て基準値決定手段が、前記セグメント管理テーブルおよび前記セグメント内部管理テーブルを参照して、各アクセスレベルのキャッシュセグメントの割り当て基準値を使用量上限と使用量下限との範囲内で決定する処理をアクセスレベルの高い順に行い、その際に、同一アクセスレベルのキャッシュセグメントに関する割り当て基準値の配分（使用量上限の値を割り当てられない場合の配分）については各キャッシュセグメントの優先度を考慮することを特徴とするように構成することが考えられる。
【００２１】
なお、上記のディスクアレイ装置におけるキャッシュメモリ分割管理方式のそれぞれについては、ホストからの設定コマンドによってセグメント情報管理テーブル内の情報の設定変更を動的に行うことが可能であり、設定変更後のＩ／Ｏ処理では当該設定変更を反映させてキャッシュ管理テーブルで管理される各キャッシュセグメントのＬＲＵリンクのリンク状態を変更することによって、各キャッシュセグメントの分割容量を動的に変更できるように構成することが、一般的である。
【００２２】
また、本発明は、キャッシュメモリを持ちホストからアクセスされるディスクアレイ装置において、キャッシュセグメント識別子毎に当該キャッシュセグメントに対する分割容量の基準値を管理するセグメント管理テーブルと、各アクセスグループと各キャッシュセグメントとの対応付けを示す情報を管理するアクセスグループ管理テーブルとからなるセグメント情報管理テーブル，およびキャッシュメモリの追い出し制御を管理するためにキャッシュセグメントの数だけ設けられるＬＲＵリンクのリンク状態を示す情報を管理するキャッシュ管理テーブルが存在することを前提として、コントローラを、ホストからの設定コマンドに基づいて、前記セグメント情報管理テーブル内の情報を設定するセグメント情報設定手段，および前記セグメント情報管理テーブルの設定内容と、前記キャッシュ管理テーブルに管理されている各キャッシュセグメントに対応するＬＲＵリンクのリンク状態とに従って、ホストからのＩ／Ｏ要求がどのアクセスグループに対応するものであるかを認識し、各キャッシュセグメントに割り当てられた分割容量を考慮した上で、キャッシュセグメント毎のキャッシュメモリの追い出し制御を行うＩ／Ｏ管理手段として機能させるためのプログラムの態様で実現することも可能である。
【００２３】
さらに、本発明は、キャッシュメモリを持ちホストからアクセスされるディスクアレイ装置において、キャッシュセグメント識別子毎に当該キャッシュセグメントに対する可変の分割容量の基準値を管理するセグメント管理テーブルと、各アクセスグループと各キャッシュセグメントとの対応付けを示す情報を管理するアクセスグループ管理テーブルとからなるセグメント情報管理テーブル，キャッシュメモリの追い出し制御を管理するためにキャッシュセグメントの数だけ設けられるＬＲＵリンクのリンク状態を示す情報を管理するキャッシュ管理テーブル，およびホストからのアクセスパターンに基づいて分割容量を動的に変更する制御を行うために各キャッシュセグメントに対するアクセス頻度を管理し、現時点において各キャッシュセグメントに割り当てられた分割容量を示す情報を保持するセグメント内部管理テーブルが存在することを前提として、コントローラを、ホストからの設定コマンドに基づいて、前記セグメント情報管理テーブル内の情報を設定するセグメント情報設定手段，前記セグメント情報管理テーブルの設定内容と、前記キャッシュ管理テーブルに管理されている各キャッシュセグメントに対応するＬＲＵリンクのリンク状態と、前記セグメント内部管理テーブル内の現時点における分割容量を示す情報とに従って、ホストからのＩ／Ｏ要求がどのアクセスグループに対応するものであるかを認識し、各キャッシュセグメントに割り当てられた分割容量を考慮した上で、キャッシュセグメント毎のキャッシュメモリの追い出し制御を行うＩ／Ｏ管理手段，および前記セグメント内部管理テーブルで管理されているアクセス頻度と前記セグメント管理テーブル内の可変の分割容量の基準値とに基づいて、各キャッシュセグメントに割り当てられるべき分割容量を示す値を決定する割り当て基準値決定手段として機能させるためのプログラムの態様で実現することも可能である。
【００２４】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【００２５】
（１）　第１の実施の形態
【００２６】
図１は、本発明の第１の実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式の構成を示すブロック図である。
【００２７】
図１を参照すると、本実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式は、複数のホスト（ホスト１１およびホスト１２）と、ディスクアレイ装置１００とを含んで構成されている。
【００２８】
ディスクアレイ装置１００は、複数のポート３１〜３４を有している。ここで、ポート３１およびポート３２はホスト１１のポート２１およびポート２２と接続し、ポート３３およびポート３４はホスト１２のポート２３およびポート２４と接続している。これにより、ディスクアレイ装置１００は、２台のホスト１１およびホスト１２と、それぞれ２ポートずつを介して接続している。２ポートずつ接続するのはパス障害に備えたものである。
【００２９】
また、ディスクアレイ装置１００は、コントローラ４０と、制御メモリ５１と、キャッシュメモリ５２と、ディスク７１〜７３とを持っている。
【００３０】
コントローラ４０は、ホスト１１およびホスト１２からのコマンドに従って、ディスク７１〜７３へのデータの読み書きおよびキャッシュメモリ５２への読み書きを制御する。
【００３１】
このコントローラ４０は、セグメント情報設定手段４１と、Ｉ／Ｏ管理手段４２とを含んで構成されている。
【００３２】
制御メモリ５１は、コントローラ４０が前記の制御のために使用するメモリである。本実施の形態においては、制御メモリ５１は、通常のキャッシュ管理を行うためのキャッシュ管理テーブル６１（ＬＲＵ制御テーブル）と、キャッシュセグメント情報を制御・管理するためのセグメント情報管理テーブル６２とを保持している。
【００３３】
セグメント情報管理テーブル６２は、図３に示すように、セグメント管理テーブルと、ポート管理テーブルとからなっている。
【００３４】
セグメント管理テーブルは、各キャッシュセグメントに対する分割容量の基準値を示す情報を管理している。ここで、「分割容量の基準値」とは、キャッシュメモリ５２の全体の容量をそれぞれのキャッシュセグメントにどのくらいの量だけ割り当てるかを示す指標をいう。最も単純なケースでは、本実施の形態に示すように、分割割合をそのまま「割り当て基準値」として示す値が、この分割容量の基準値に該当する。ディスクアレイ装置１００は、このような分割容量の基準値の指定に従って動作することで、キャッシュセグメント量の管理を可能とする。
【００３５】
本実施の形態では、キャッシュセグメントの識別子（キャッシュセグメント番号）として、＃０〜＃３までが定義されており、セグメント管理テーブルはキャッシュセグメント＃０〜＃３のそれぞれに対しての割り当て基準値を１００分率で記憶・管理している。例えば、図３中の（ａ）では、キャッシュセグメント＃０の割り当て基準値が１００％であり、他のキャッシュセグメントの割り当て基準値が０％となっている。
【００３６】
ポート管理テーブルは、アクセスグループの振り分けを管理するテーブルであるアクセスグループ管理テーブルに該当する。
【００３７】
「アクセスグループ」とは、ディスクアレイ装置１００がＩ／Ｏを指示するコマンドをいずれかのホストから受信したときに、そのコマンドに含まれる情報によって判別できるような条件で設定されるグループをいう。
【００３８】
このアクセスグループの判別条件の例としては、コマンドを受信したポート（そのポート番号），コマンドで指示された論理ディスク番号，およびコマンドの発行元のホストのホストＩＤといった各情報があげられる。これらの情報は、いずれも受信したコマンドに含まれる情報であるため、ディスクアレイ装置１００では、保持している設定値によって、そのコマンドに対応するキャッシュセグメントを判定することが可能となる。
【００３９】
本実施の形態では、コマンドを受信したポートによってアクセスグループが振り分けられている。したがって、アクセスグループ管理テーブルとして、ポート管理テーブルが採用されている。
【００４０】
このポート管理テーブルは、それぞれのポート３１〜３４（ポート番号が＃０〜＃３のポート）で受信したコマンドがどのキャッシュセグメントを使用するべきかを記憶・管理している。例えば、図３中の（ａ）では、全てのポートがキャッシュセグメント＃０（キャッシュセグメント番号が＃０のキャッシュセグメント）に割り当てられている。すなわち、図３中の（ａ）の状態は、実質的には、キャッシュメモリ５２の分割が行われていない状態である。
【００４１】
キャッシュ管理テーブル６１は、キャッシュメモリ５２の各キャッシュセグメントに対応するＬＲＵリンクの内容（図４参照）を示す情報を管理している。図４中の（ａ）においては、キャッシュメモリ５２上に存在するデータ〔０〕〜〔９〕が全てキャッシュセグメント＃０ＬＲＵリンクにつながるデータとして管理されている。
【００４２】
図２は、本実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式のＩ／Ｏ管理処理（Ｉ／Ｏ管理手段４２による処理）を示す流れ図である。この処理は、Ｉ／Ｏ指示コマンド受け取りステップ２０１と、アクセスグループ判断ステップ２０２と、キャッシュセグメント認識ステップ２０３と、割り当て基準値認識ステップ２０４と、データ割り当て量判断ステップ２０５と、データ追い出し対象キャッシュセグメント判断ステップ２０６と、追い出し・格納制御ステップ２０７とからなる。
【００４３】
図３〜図５は、本実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式の具体的な動作を説明するための図である。
【００４４】
すなわち、図３は、上記でも言及したように、本実施の形態の具体的な動作におけるセグメント情報管理テーブル６２の内容の変遷を示す図である。
【００４５】
また、図４および図５は、上記でも一部言及したように、本実施の形態の具体的な動作におけるキャッシュ管理テーブル６１の内容の変遷を説明するための図である。
【００４６】
次に、図１〜図５を参照して、上記のように構成された本実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式の全体の動作について詳細に説明する。
【００４７】
第１に、キャッシュセグメント情報設定処理時の動作（セグメント情報設定手段４１の動作）について説明する。
【００４８】
図３中の（ａ）は、このキャッシュセグメント情報設定（設定変更）処理前におけるセグメント情報管理テーブル６２の状態を示す図である。
【００４９】
これが、ホスト１１またはホスト１２からの設定コマンド（キャッシュセグメント情報の設定を指示するコマンド）によって、図３中の（ｂ）に示すように設定されるものとする。
【００５０】
すなわち、ディスクアレイ装置１００内のコントローラ４０中のセグメント情報設定手段４１は、当該設定コマンドに基づき、セグメント情報管理テーブル６２（ポート管理テーブルおよびセグメント管理テーブル）中のキャッシュセグメント情報の設定変更を行う。
【００５１】
この設定では、ポート管理テーブルにおいて、ポート番号が＃０のポート３１とポート番号が＃１のポート３２とがキャッシュセグメント＃０に関連付けられ、ポート番号が＃２のポート３３とポート番号が＃３のポート３４とがキャッシュセグメント＃１に関連付けられる。これは、つまり、ホスト１１とキャッシュセグメント＃０とが一対一の関係に設定され、ホスト１２とキャッシュセグメント＃１とが一対一の関係に設定されることを示している。
【００５２】
また、セグメント管理テーブルにおいて、キャッシュセグメント＃０の割り当て基準値が７０％に設定され、キャッシュセグメント＃１の割り当て基準値が３０％に設定される。これは、ホスト１１がキャッシュ容量の７０％を使用することを示し、ホスト１２がキャッシュ容量の３０％を使用することを示す。
【００５３】
第２に、上記のようにして図３中の（ｂ）に示す設定が行われた後の、ディスクアレイ装置１００におけるＩ／Ｏ管理処理時の動作（Ｉ／Ｏ管理手段４２の動作）について説明する（図２参照）。
【００５４】
セグメント情報管理テーブル６２が、図３中の（ａ）のような状態から図３中の（ｂ）に示すような状態に設定（動的な設定変更）されると、コントローラ４０内のＩ／Ｏ管理手段４２は以下に示すような処理を行う（図２参照）。
【００５５】
まず、Ｉ／Ｏを指示するコマンドを受け取ると（ステップ２０１）、そのコマンドに対応するアクセスグループを判断する（ステップ２０２）。すなわち、どのポートから（つまり、どのホストから）、当該コマンドを受信したかを判断する。
【００５６】
その上で、セグメント情報管理テーブル６２内のポート管理テーブルを参照して、当該アクセスグループに割り当てられているキャッシュセグメント（そのキャッシュセグメント番号）を認識する（ステップ２０３）。
【００５７】
また、Ｉ／Ｏ管理手段４２は、セグメント情報管理テーブル６２内のセグメント管理テーブルを参照して、各キャッシュセグメントの割り当て基準値を認識する（ステップ２０４）。
【００５８】
さらに、Ｉ／Ｏ管理手段４２は、キャッシュ管理テーブル６１を参照して、現時点における各キャッシュセグメントのデータ割り当て量（どれだけのデータが各キャッシュセグメントＬＲＵリンクにつながれているか）を判断する（ステップ２０５）。
【００５９】
そして、Ｉ／Ｏ管理手段４２は、以上のステップ２０２〜ステップ２０５の判断・認識に基づいて、どのキャッシュセグメントからデータを追い出すかを判断し（ステップ２０６）、その判断に従ってキャッシュメモリ５２におけるデータの追い出しおよび格納の制御を行う（ステップ２０７）。
【００６０】
例えば、ＬＲＵリンクの状態が図４および図５に示すような場合には、以下のような処理が行われる。
【００６１】
図４中の（ａ）は、図３中の（ｂ）の設定が行われた瞬間におけるキャッシュメモリ５２に関するＬＲＵリンクの状態を示す図である（キャッシュ管理テーブル６１の内容はこのようなＬＲＵリンクの状態を示すものとなっている）。この時点では、まだキャッシュメモリ５２上の全てのデータ（データ〔０〕〜〔９〕）はキャッシュセグメント＃０ＬＲＵリンクにつながっている（全データがキャッシュセグメント＃０に割り当てられている）。
【００６２】
ここで、ディスクアレイ装置１００が、ホスト１２からポート３３またはポート３４を介して、データ〔１０〕のＩ／Ｏを指示するコマンドを受信した場合の、ＬＲＵリンクの状態は、図４中の（ｂ）に示すようになる。
【００６３】
すなわち、ホスト１２からの上記のコマンドで要求されたＩ／Ｏの対象のデータ〔１０〕のためにキャッシュメモリ５２からデータ〔９〕が追い出され、キャッシュセグメント＃０ＬＲＵリンクはデータ〔０〕〜〔８〕からなるリンクとなり、データ〔１０〕だけからなるキャッシュセグメント＃１ＬＲＵリンクが作られる。
【００６４】
さらに、ホスト１２からポート３３またはポート３４を介してデータ〔１１〕およびデータ〔１２〕のＩ／Ｏが要求された後のＬＲＵリンクの状態は、図４中の（ｃ）に示すようになる。
【００６５】
この場合にも、上記と同様な動作が行われるので、キャッシュセグメント＃０ＬＲＵリンクからデータ〔７〕およびデータ〔８〕が追い出され、キャッシュセグメント＃１ＬＲＵリンクにデータ〔１１〕およびデータ〔１２〕がつながれる。
【００６６】
この時点で、キャッシュセグメント＃０ＬＲＵリンクとキャッシュセグメント＃１ＬＲＵリンクとの間におけるデータ割り当ての割合は、図３中の（ｂ）に示すセグメント管理テーブル上の設定通り、７０％と３０％となった。
【００６７】
図５中の（ａ）は、この状態から、さらに、ホスト１２よりデータ〔１３〕〜〔１５〕のＩ／Ｏが要求された場合の、ＬＲＵリンクの状態を示す図である。
【００６８】
この場合には、これまでとは異なる動作となる。すなわち、キャッシュセグメント＃１ＬＲＵリンク上にすでに３０％のデータが保持されているので、キャッシュセグメント＃０ＬＲＵリンクを乱さずに、キャッシュセグメント＃１ＬＲＵリンク内でＬＲＵ制御が行われる。
【００６９】
さらに、ホスト１２からデータ〔１６〕〜〔１８〕のＩ／Ｏが要求された場合にも、同様に、図５中の（ｂ）に示すように、キャッシュセグメント＃１ＬＲＵリンクだけで追い出し制御が行われる。
【００７０】
なお、図５中の（ｂ）までの過程で、ホスト１２から次々と新たなデータのＩ／Ｏの要求があったが、図５中の（ｂ）に示すように、全キャッシュ容量の７０％のデータ〔０〕〜〔６〕がキャッシュセグメント＃０に保護されて残っているため、次にホスト１１からこれらのデータへのアクセスがあればキャッシュヒットすることになる。
【００７１】
（２）　第１の実施の形態の変形形態
【００７２】
上記の第１の実施の形態に対しては、下記のような変形形態を考えることができる。
【００７３】
先にも述べたように、アクセスグループの判別条件の例としては、コマンドを受信したポートの他に、コマンドで指示された論理ディスク番号や、コマンドの発行元のホストのホストＩＤが考えられる。
【００７４】
したがって、アクセスグループ管理テーブルとして、第１の実施の形態におけるポート管理テーブルの代わりに、論理ディスク管理テーブル（各論理ディスクと各キャッシュセグメントとの対応を示すテーブル）や、ホスト管理テーブル（各ホストと各キャッシュセグメントとの対応を示すテーブル）を採用することが可能である。
【００７５】
また、第１の実施の形態では、複数のホストからディスクアレイ装置１００にアクセスが行われる場合を考えたが、１つのホストしか存在しないシステムであっても、ホスト上に複数のアプリケーションが存在する場合には、本発明を適用することが可能であり、有意義である。
【００７６】
図６は、上述のような考え方に基づく、第１の実施の形態の変形形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式の具体例の構成を示すブロック図である。
【００７７】
また、図７は、この変形形態の具体的な動作を説明するための図である。
【００７８】
図６を参照すると、このディスクアレイ装置におけるキャッシュメモリ分割管理方式においては、ディスクアレイ装置１００は、１つのポート３１を介してホスト１１に接続されているのみである。しかし、ホスト１１上で複数のアプリケーション（アプリケーション１１１およびアプリケーション１１２）が動作しており、それぞれのアプリケーションが別の論理ディスクに対してアクセスを行っている。
【００７９】
このようなケースでは、やはりキャッシュメモリ５２の使用に関して、上記の第１の実施の形態と全く同様の問題が起こりうる。
【００８０】
制御メモリ５１は、通常のキャッシュ管理を行うためのキャッシュ管理テーブル６１（ＬＲＵ制御テーブル）と、キャッシュセグメント情報を制御・管理するためのセグメント情報管理テーブル６２とを保持している。
【００８１】
本変形形態では、セグメント情報管理テーブル６２は、図７に示すように、セグメント管理テーブルと、アクセスグループ管理テーブルに該当する論理ディスク管理テーブルとからなる。
【００８２】
上述のように、この変形形態では、受信したコマンドで指示された論理ディスク番号によって、アクセスグループが定義されている。したがって、セグメント管理テーブルに関しては第１の実施の形態と全く同様であるが、論理ディスク管理テーブルにおいては、論理ディスク＃０〜＃３（論理ディスク番号が＃０〜＃３の論理ディスク）の各々に対してキャッシュセグメント番号が割り当てられている。
【００８３】
また、このディスクアレイ装置におけるキャッシュメモリ分割管理方式が適用されるシステムにおいては、ホストは１つしか存在しないが、当該ホスト（ホスト１１）上のアプリケーションが複数存在することによって、本発明の適用の意義が生じている。
【００８４】
本例では、アプリケーション１１１が論理ディスク＃０および論理ディスク＃１にアクセスし、アプリケーション１１２が論理ディスク＃２および論理ディスク＃３にアクセスしているものとしており、図７に示すような論理ディスク管理テーブルの設定がなされている。
【００８５】
本例で示されるように、アクセスグループを論理ディスク番号によって定義する場合でも、第１の実施の形態と全く同様のキャッシュ分割制御を実現することができる。
【００８６】
同様に、アクセスグループをホストＩＤによって定義する場合でも、第１の実施の形態と全く同様のキャッシュ分割制御を実現することができる。
【００８７】
図８は、このような場合におけるディスクアレイ装置におけるキャッシュメモリ分割管理方式の具体例の構成を示すブロック図である。
【００８８】
この場合には、セグメント情報管理テーブル６２は、セグメント管理テーブルと、アクセスグループ管理テーブルに該当するホスト管理テーブルとからなる。また、キャッシュメモリ５２は、ホストＩＤ（ホストＡ，ホストＢ，およびホストＣとする）に基づいて、各キャッシュセグメントに分割されている。
【００８９】
（３）　第２の実施の形態
【００９０】
図９は、本発明の第２の実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式の構成を示すブロック図である。
【００９１】
図９を参照すると、本実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式は、複数のホスト（ホスト１１，ホスト１２，およびホスト１３）と、ディスクアレイ装置１００とを含んで構成されている。
【００９２】
ディスクアレイ装置１００は、複数のポート３１〜３３を有している。ここで、ポート３１はホスト１１のポート２１と接続し、ポート３２はホスト１２のポート２２と接続し、ポート３３はホスト１３のポート２３と接続している（ディスクアレイ装置１００は３つのポート３１〜３３を介して３台のホスト１１〜１３に接続している）。
【００９３】
また、ディスクアレイ装置１００は、コントローラ４０と、制御メモリ５１と、キャッシュメモリ５２と、ディスク７１〜７３とを持っている。
【００９４】
コントローラ４０は、ホスト１１〜１３からのコマンドに従って、ディスク７１〜７３へのデータの読み書きおよびキャッシュメモリ５２への読み書きを制御する。
【００９５】
このコントローラ４０は、セグメント情報設定手段４１と、Ｉ／Ｏ管理手段４２と、割り当て基準値決定手段４３とを含んで構成されている。
【００９６】
本実施の形態においては、制御メモリ５１は、通常のキャッシュ管理を行うためのキャッシュ管理テーブル６１（ＬＲＵ制御テーブル）と、キャッシュセグメント情報を制御・管理するためのセグメント情報管理テーブル６２と、セグメント内部管理テーブル６３とを保持している。
【００９７】
図１０は、本実施の形態におけるセグメント情報管理テーブル６２の具体的な内容を示す図である。
【００９８】
セグメント情報管理テーブル６２は、図１０に示すように、セグメント管理テーブルと、アクセスグループ管理テーブルに該当するポート管理テーブルとからなっている。本実施の形態では、第１の実施の形態と同様に、ポートによってアクセスグループが定義されている。
【００９９】
本実施の形態では、セグメント管理テーブルは、各キャッシュセグメントに対する使用量上限（最大キャッシュ利用可能量），使用量下限（最小保証量），および優先度を示す情報を管理している（キャッシュセグメント＃０〜＃３に対して、使用量上限，使用量下限，および優先度という３つの基準値を設定できる）。このように、本実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式では、設定コマンドによって設定されたキャッシュメモリ５２の使用量を示す複数の分割容量の基準値（ここでは、使用量上限，使用量下限，および優先度）に従って、アクセスグループ毎にキャッシュメモリ５２が可変の割合で分割されて使用され、分割割合を動的に管理することが可能である。なお、可変の割合で分割する場合における分割容量の基準値として、上記の３つの情報が必ず要求されるわけではなく（例えば、使用量上限および使用量下限の一方だけを指定することも可能である）、また、他の情報を採用することも可能である。
【０１００】
本実施の形態においては、キャッシュセグメントの分割割合は、上限値（使用量上限の値）と下限値（使用量下限の値）との間で可変であり、また設定された優先度によって制御される。本実施の形態によれば、キャッシュメモリ５２を単に固定の割合で分割制御するだけでなく、アクセスの状況等に応じてある程度動的に分割割合を変更することで、キャッシュメモリ５２をより有効に使用することが可能となる。
【０１０１】
ここで、「アクセスの状況等に応じてある程度動的に分割割合を変更する」という場合の動的な変更は、自動的に行われ、具体的には、ホストからのアクセスパターンに基づいて制御される。例えば、アクセスが集中しているときには多めに使用され、アクセスが少ないときは少なめに使用される。そして、このような制御を行うために、アクセス頻度を管理するテーブルが必要となる。そのテーブルが、図１１に示すようなセグメント内部管理テーブル６３である。
【０１０２】
図１１は、図１０中のセグメント管理テーブルの設定に従って動作するために必要なセグメント内部管理テーブル６３の具体例を示す図である。
【０１０３】
このセグメント内部管理テーブル６３は、キャッシュセグメント毎に、割り当て基準値，アクセスカウント，およびアクセスレベルを示す情報を保持している。
【０１０４】
割り当て基準値は、各キャッシュセグメントに実際にどの程度のキャッシュ容量を割り当てるかを割合（１００分率）で示す情報であり、本実施の形態では、第１の実施の形態とは異なり（図３参照）、この値は内部で管理する動的な値となっている。
【０１０５】
アクセスカウントは、各キャッシュセグメントをアクセスした回数を示す情報である。この値は、ＬＲＵを操作するたびに＋１し、一定時間毎にクリアする。これにより、最近のアクセス状況を管理することができる。
【０１０６】
アクセスレベルは、アクセスカウントの値から決まる値である。図１１に示す例では、アクセスカウントが１００以上のときにアクセスレベルを２とし、アクセスカウントが０のときにアクセスレベルを０とし、それ以外のときにはアクセスレベルを１とする。
【０１０７】
図１２および図１３は、本実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式の割り当て基準値決定処理（割り当て基準値決定手段４３による処理）を示す流れ図である。この処理は、アクセスレベル２割り当て基準値決定ステップ１２０１と、アクセスレベル１割り当て基準値決定ステップ１２０２と、アクセスレベル０割り当て基準値決定ステップ１２０３と、割り当て基準値ＭＡＸ設定可否判定ステップ１３０１と、全キャッシュセグメント割り当て基準値ＭＡＸ決定ステップ１３０２と、優先度同一判定ステップ１３０３と、等分割り当て基準値配分ステップ１３０４と、優先度加重割り当て基準値配分ステップ１３０５とからなる（ステップ１２０１〜１２０３の各々の処理の詳細な内容がステップ１３０１〜１３０５に示す処理となる）。
【０１０８】
次に、図９〜図１３を参照して、上記のように構成された本実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式の全体の動作について説明する。
【０１０９】
ディスクアレイ装置１００内のコントローラ４０中のセグメント情報設定手段４１およびＩ／Ｏ管理手段４２の動作は、第１の実施の形態におけるセグメント情報設定手段４１およびＩ／Ｏ管理手段４２の動作と同様なものとなる。ただし、セグメント情報設定手段４１によって設定されるセグメント管理テーブル内の情報の内容は、第１の実施の形態における割り当て基準値ではなく、図１０に示すような使用量上限，使用量下限，および優先度である。また、Ｉ／Ｏ管理手段４２によって参照される割り当て基準値は、セグメント情報管理テーブル６２内の値ではなく、その時点においてセグメント内部管理テーブル６３内に設定されている値である。
【０１１０】
以下では、本実施の形態において特有な割り当て基準値決定手段４３の動作について詳細に説明する。
【０１１１】
図１１中の（ａ）は、図１０に示すような情報がセグメント情報管理テーブル６２に設定された場合の、セグメント内部管理テーブル６３の最初の状態を示す図である。
【０１１２】
コントローラ４０内の割り当て基準値決定手段４３は、この最初の状態では、セグメント内部管理テーブル６３に対し、各キャッシュセグメント＃０〜＃３について、図１０中のセグメント管理テーブルにおける使用量上限の値の７０、３０、３０、０の重みをそのままに、合計が１００となるように、５４、２３、２３、０と、割り当て基準値を設定している。先述のように、コントローラ４０は、Ｉ／Ｏ管理処理を実行する際に、この割り当て基準値に従って制御を行う。
【０１１３】
この割り当て基準値は、アクセスカウントの値によって決まるアクセスレベルによって動的に変化する。
【０１１４】
すなわち、割り当て基準値決定手段４３は、アクセスレベルから割り当て基準値を決定する処理を以下のように行う（図１２および図１３参照）。
【０１１５】
割り当て基準値決定手段４３は、各アクセスレベルのキャッシュセグメントの割り当て基準値の決定を、図１２中のステップ１２０１〜１２０３に示すように、アクセスレベルの高い順に行う。そして、各アクセスレベルのキャッシュセグメントについて割り当て基準値を決定する処理を、図１３中のステップ１３０１〜１３０５に示すような処理の流れで行う。
【０１１６】
すなわち、割り当て基準値決定手段４３は、まず、現在の処理対象のアクセスレベル（同一のアクセスレベル）の全てのキャッシュセグメントの割り当て基準値を使用量上限の値（図１３においては「ＭＡＸ」と表記している）に設定できるか否かを判定する（ステップ１３０１）。この判定においては、他のアクセスレベルのキャッシュセグメントの割り当て基準値も含めて割り当て基準値の合計が１００を超えないかどうかや、他のアクセスレベルのキャッシュセグメントに使用量下限の値を割り当てられるか否か等が、考慮される。
【０１１７】
ステップ１３０１で「処理対象のアクセスレベルの全てのキャッシュセグメントの割り当て基準値を使用量上限の値に設定できる」と判定した場合には、当該アクセスレベルの全てのキャッシュセグメントの割り当て基準値を使用量上限の値に決定する（ステップ１３０２）。
【０１１８】
一方、ステップ１３０１で「処理対象のアクセスレベルの全てのキャッシュセグメントについては割り当て基準値を使用量上限の値に設定できない」と判定した場合には、当該アクセスレベルの全てのキャッシュセグメントの優先度が等しいか否かを判定する（ステップ１３０３）。
【０１１９】
ステップ１３０３で「当該アクセスレベルの全てのキャッシュセグメントの優先度が等しい」と判定した場合には、他のアクセスレベルのキャッシュセグメントの割り当て基準値も含めて割り当て基準値の合計が１００を超えないようにすることや、他のアクセスレベルのキャッシュセグメントに対して使用量下限の値の割り当てを確保できるようにすること等を考慮した上で、当該アクセスレベルの全てのキャッシュセグメントの割り当て基準値を等分に配分する（ステップ１３０４）。
【０１２０】
一方、ステップ１３０３で「当該アクセスレベルの全てのキャッシュセグメントの優先度が等しいわけではない」と判定した場合には、他のアクセスレベルのキャッシュセグメントの割り当て基準値も含めて割り当て基準値の合計が１００を超えないようにすることや、他のアクセスレベルのキャッシュセグメントに対して使用量下限の値の割り当てを確保できるようにすること等を考慮した上で、当該アクセスレベルの各キャッシュセグメントの割り当て基準値を優先度の重みをかけて配分する（ステップ１３０５）。
【０１２１】
ここで、具体例として、アクセスカウントおよびアクセスレベルが図１１中の（ｂ）や（ｃ）のような値であった場合における割り当て基準値の決定処理を説明する。
【０１２２】
図１１中の（ｂ）の状態では、キャッシュセグメント＃０に高負荷のアクセスがあり、アクセスレベルが２であるので、ステップ１２０１の処理として、まず、キャッシュセグメント＃０の割り当て基準値の決定が行われる。
【０１２３】
この場合、ステップ１３０１の判定に従って、キャッシュセグメント＃０の割り当て基準値は、図１０における使用量上限の値、すなわち７０に決定される（ステップ１３０２）。
【０１２４】
次に、キャッシュセグメント＃１およびキャッシュセグメント＃２に低負荷のアクセスがあり、アクセスレベルが１であるので、ステップ１２０２の処理として、これらのキャッシュセグメントの割り当て基準値の決定が行われる。
【０１２５】
この場合、図１０における使用量上限の値に従って、キャッシュセグメント＃１およびキャッシュセグメント＃２のそれぞれについて割り当て基準値を３０ずつとしてしまうと、割り当て基準値の合計が１００以上となってしまう。したがって、ステップ１３０１の判定（「使用量上限の値に設定できない」という判断）に基づいて、キャッシュセグメント＃１およびキャッシュセグメント＃２の割り当て基準値の合計が３０以下になるように決定しなくてはならない。
【０１２６】
ここで、両者の優先度が等しければ１５ずつとなるが、図１０によればキャッシュセグメント＃１とキャッシュセグメント＃２とについて異なる優先度が設定されているので、ステップ１３０３の判定（「優先度が等しくない」という判断）に従って、キャッシュセグメント＃１の割り当て基準値が２０と決定され、キャッシュセグメント＃２の割り当て基準値が１０と決定される（ステップ１３０５）。すなわち、図１１中の（ｂ）の状態で示すように、セグメント内部管理テーブル６３中のキャッシュセグメント＃１およびキャッシュセグメント＃２に対する割り当て基準値として、２０および１０が設定される。なお、このような場合に、優先度による重みをどの程度にするかはあらかじめ決めておく必要がある。
【０１２７】
最後に、ステップ１２０３の処理として、アクセスレベルが０のキャッシュセグメント＃３の割り当て基準量が０と決定される（キャッシュセグメント＃３については図１０に示すように使用量上限の値が０である）。
【０１２８】
図１１中の（ｃ）の状態は、図１１中の（ｂ）の状態からキャッシュセグメント＃０へのアクセスがなくなった場合の状態である。
【０１２９】
この状態では、まず、ステップ１２０２の処理として、アクセスレベルが１のキャッシュセグメント＃１およびキャッシュセグメント＃２の割り当て基準値が決定される。
【０１３０】
この場合、ステップ１３０１の判定およびステップ１３０２の処理に従って、キャッシュセグメント＃１およびキャッシュセグメント＃２の割り当て基準値が、図１０における使用量上限の値、すなわち３０ずつに決定される。
【０１３１】
次に、キャッシュセグメント＃０に関しては、ステップ１２０３の処理として、残りの値（１００から２×３０を引いた値）の４０が割り当てられることになる（キャッシュセグメント＃３の割り当て基準値は図１１中の（ｂ）の場合と同様に０である）。
【０１３２】
なお、割り当て基準値は、必ず使用量下限の値以上となっていなければならないが、上記のケースでは全て上回っているので問題はない。仮にキャッシュセグメント＃０の使用量下限の値が５０となっていれば、図１１中の（ｃ）のケースでは、キャッシュセグメント＃１およびキャッシュセグメント＃２の割り当て基準値を決定する段階で、これを考慮しなくてはならなくなる。すなわち、キャッシュセグメント＃１およびキャッシュセグメント＃２の割り当て基準値の合計が５０以下となるように調整される。
【０１３３】
（４）　第２の実施の形態の変形形態
【０１３４】
上記の第２の実施の形態に対しても、第１の実施の形態に対すると同様に、上記の（２）に示すような変形形態を考えることができる。すなわち、アクセスグループの判別条件として、コマンドを受信したポートの代わりに、コマンドで指示された論理ディスク番号や、コマンドの発行元のホストのホストＩＤを採用することができる。つまり、アクセスグループ管理テーブルとして、ポート管理テーブルの代わりに、論理ディスク管理テーブル（各論理ディスクと各キャッシュセグメントとの対応を示すテーブル）や、ホスト管理テーブル（各ホストと各キャッシュセグメントとの対応を示すテーブル）を採用することが可能である。
【０１３５】
（５）　第３の実施の形態
【０１３６】
図１４は、本発明の第３の実施の形態の構成を示すブロック図である。
【０１３７】
図１４を参照すると、本発明の第３の実施の形態は、図１に示した第１の実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式に対して、キャッシュメモリ分割管理制御プログラム１４００を備える点が異なっている。
【０１３８】
キャッシュメモリ分割管理制御プログラム１４００は、ディスクアレイ装置１００に読み込まれ、当該ディスクアレイ装置１００の動作をコントローラ４０（セグメント情報設定手段４１およびＩ／Ｏ管理手段４２）として制御する。キャッシュメモリ分割管理制御プログラム１４００の制御によるディスクアレイ装置１００の動作（制御メモリ５１およびキャッシュメモリ５２が存在することを前提とするコントローラ４０の動作）は、第１の実施の形態におけるコントローラ４０（セグメント情報設定手段４１およびＩ／Ｏ管理手段４２）の動作と全く同様になるので、その詳しい説明を割愛する。
【０１３９】
（６）　第４の実施の形態
【０１４０】
図１５は、本発明の第４の実施の形態の構成を示すブロック図である。
【０１４１】
図１５を参照すると、本発明の第４の実施の形態は、図９に示した第２の実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式に対して、キャッシュメモリ分割管理制御プログラム１５００を備える点が異なっている。
【０１４２】
キャッシュメモリ分割管理制御プログラム１５００は、ディスクアレイ装置１００に読み込まれ、当該ディスクアレイ装置１００の動作をコントローラ４０（セグメント情報設定手段４１，Ｉ／Ｏ管理手段４２，および割り当て基準値決定手段４３）として制御する。キャッシュメモリ分割管理制御プログラム１５００の制御によるディスクアレイ装置１００の動作（制御メモリ５１およびキャッシュメモリ５２が存在することを前提とするコントローラ４０の動作）は、第１の実施の形態におけるコントローラ４０（セグメント情報設定手段４１，Ｉ／Ｏ管理手段４２，および割り当て基準値決定手段４３）の動作と全く同様になるので、その詳しい説明を割愛する。
【０１４３】
【発明の効果】
以上説明したように、本発明によると、あらかじめアクセスグループによるキャッシュ分割の設定をしておくことにより、あるホスト（ホストの代わりにアプリケーションが該当する場合もある）から次々とキャッシュヒットしないデータが要求されて追い出し制御が行われても、キャッシュ分割されているので、キャッシュメモリ上の別のホストからのアクセスデータが保護され、キャッシュヒットをある程度期待することができるという効果が生じる。すなわち、ディスクアレイ装置において、あるホストのアクセスパターンにより別のホストのキャッシュヒット率が影響を受けることがなくなるという効果が生じる。
【０１４４】
また、本発明では、分割容量の基準値（１００分率で表した割り当て基準値等）や、アクセスグループとキャッシュセグメント識別子（キャッシュセグメント番号等）との関連付けの設定および設定変更を、ディスクアレイ装置が動作中でも、動的に実行することが可能であり、それによってすぐにディスクアレイ装置のキャッシュセグメントの分割の状態を動的に変更することができる。したがって、システム構築時だけではなく、その後のホストやアプリケーションの追加や削除等に従って最適な設定値が変わっても、その変化に適切に対処できて、システムの動作を止めずに最適値を再設定でき、すぐにそれを反映させることが可能となり、運用上有用なものとなる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式の構成を示すブロック図である。
【図２】図１に示すディスクアレイ装置におけるキャッシュメモリ分割管理方式のＩ／Ｏ管理処理を示す流れ図である。
【図３】図１に示すディスクアレイ装置におけるキャッシュメモリ分割管理方式の具体的な動作を説明するための図である。
【図４】図１に示すディスクアレイ装置におけるキャッシュメモリ分割管理方式の具体的な動作を説明するための図である。
【図５】図１に示すディスクアレイ装置におけるキャッシュメモリ分割管理方式の具体的な動作を説明するための図である。
【図６】本発明の第１の実施の形態に係るキャッシュメモリ分割管理方式の変形形態の一例の構成を示すブロック図である。
【図７】図６に示すディスクアレイ装置におけるキャッシュメモリ分割管理方式の具体的な動作を説明するための図である。
【図８】本発明の第１の実施の形態に係るキャッシュメモリ分割管理方式の変形形態の他の例の構成を示すブロック図である。
【図９】本発明の第２の実施の形態に係るディスクアレイ装置におけるキャッシュメモリ分割管理方式の構成を示すブロック図である。
【図１０】図９に示すディスクアレイ装置におけるキャッシュメモリ分割管理方式の具体的な動作を説明するための図である。
【図１１】図９に示すディスクアレイ装置におけるキャッシュメモリ分割管理方式の具体的な動作を説明するための図である。
【図１２】図９に示すディスクアレイ装置におけるキャッシュメモリ分割管理方式の割り当て基準値決定処理を示す流れ図である。
【図１３】図９に示すディスクアレイ装置におけるキャッシュメモリ分割管理方式の割り当て基準値決定処理を示す流れ図である。
【図１４】本発明の第３の実施の形態の構成を示すブロック図である。
【図１５】本発明の第４の実施の形態の構成を示すブロック図である。
【符号の説明】
１１，１２，１３　ホスト
２１，２２，２３，２４，３１，３２，３３，３４　ポート
４０　コントローラ
４１　セグメント情報設定手段
４２　Ｉ／Ｏ管理手段
４３　割り当て基準値決定手段
５１　制御メモリ
５２　キャッシュメモリ
６１　キャッシュ管理テーブル
６２　セグメント情報管理テーブル
６３　セグメント内部管理テーブル
７１，７２，７３　ディスク
１００　ディスクアレイ装置
１１１，１１２　アプリケーション
１４００，１５００　キャッシュメモリ分割管理制御プログラム
【図１】
2004139349.tif 000003
【図２】
2004139349.tif 000004
【図３】
2004139349.tif 000005
【図４】
2004139349.tif 000006
【図５】
2004139349.tif 000007
【図６】
2004139349.tif 000008
【図７】
2004139349.tif 000009
【図８】
2004139349.tif 000010
【図９】
2004139349.tif 000011
【図１０】
2004139349.tif 000012
【図１１】
2004139349.tif 000013
【図１２】
2004139349.tif 000014
【図１３】
2004139349.tif 000015
【図１４】
2004139349.tif 000016
【図１５】
2004139349.tif 000017